這是一款51單片機匯編語言溫度自動控制系統,電路簡單,采用不帶字庫的128X64液晶屏作為顯示器,程序采用匯編語言編程。
單片機匯編語言溫度自動控制系統.rar
(91.19 KB, 下載次數: 46)
2018-12-30 08:16 上傳
點擊文件名下載附件
51單片機匯編語言溫度自動控制系統 下載積分: 黑幣 -5
單片機匯編語言溫度自動控制系統.jpg (194.71 KB, 下載次數: 55)
下載附件
仿真圖
2018-12-30 08:17 上傳
單片機源程序:
;****************************資源分配************************** FLAG1 EQU 54H;是否檢測到DS18B20標志位 FLAG2 EQU 00H COUNT EQU 63H CSA EQU P0.4 CSB EQU P0.3 RS EQU P0.2 RW EQU P0.1 E EQU P0.0 COM EQU 21H ;命令字 DAT EQU 22H ;顯示數據 column EQU 23H ;列 pagef EQU 24h ;頁 cpage EQU 25H ccolumn EQU 26H ;列(0-15) CODE EQU 27h column2 EQU 52H pagef2 equ 60h cpage2 EQU 61H ccolumn2 EQU 62H column3 EQU 2eH pagef3 equ 2fh cpage3 EQU 30H ccolumn3 EQU 31H column4 EQU 32H pagef4 equ 33h cpage4 EQU 34H ccolumn4 EQU 35H column5 EQU 36H pagef5 equ 37h cpage5 EQU 38H ccolumn5 EQU 39H ;*****************************主程序開始****************** ORG 0000H LJMP START ORG 0003H LJMP INT0 ;外部中斷 ORG 0030H START: MOV SP,#70H MOV P2,#0F0H CLR A CLR F0 ;清設置鍵 CLR FLAG2 ;清確認鍵 MOV COUNT,#0 ;中斷次數計數 SETB IT0 SETB EX0 SETB EA LCALL INT ;LCD12864初始化子程序 LCALL CLEAR ;LDC12864清屏子程序 LCALL DISPLAY1 ;顯示"溫度自動控制系統" LCALL DISPLAY2 ;顯示"設置溫度" LCALL DISPLAY3 ;顯示預設的溫度 LCALL DISPLAY4 ;顯示"實際溫度" LCALL DISPLAY5 LCALL GET_TEMPER ;調用讀溫度子程序 ACALL DISPLAY5 ;調用顯示 M: LCALL GET_TEMPER LCALL DELAY1 MM: LCALL DISPLAY3 MM1: JB F0,MM4 ;是否按上"設置"鍵 JNB F1,M ;是否按下"確認"鍵 MOV A,48H CJNE A,43H,MM5 MOV A,55H CJNE A,42H,MM5 MOV A,56H CJNE A,41H,MM5 LJMP MM8 MM4: MOV A,COUNT CJNE A,#1,MM2 LCALL DISPLAY8 LCALL DISPLAY8 LJMP MM MM2: CJNE A,#2,MM3 LCALL DISPLAY9 LCALL DISPLAY9 MM3: CJNE A,#3,MM LCALL DISPLAY10 LCALL DISPLAY10 LJMP MM MM5: JC MM7 LJMP MM6 MM6: LCALL DISPLAY6 CLR P0.5 SETB P0.6 SETB P0.7 LJMP M MM7: LCALL DISPLAY7 SETB P0.5 CLR P0.6 SETB P0.7 LJMP M MM8: LCALL DISPLAY11 SETB P0.5 SETB P0.6 CLR P0.7 LJMP M ;***********************外部中斷0子程序************** INT0: CLR EX0 INC COUNT ;中斷計數器加1 CPL P3.0 MOV DPTR,#JS MOV A,P2 MOV P2,#0FH MOV 47H,P2 JNB ACC.4,E1 JNB ACC.5,E2 JNB ACC.6,E3 JNB ACC.7,E4 SETB EX0 RETI E1: MOV 20H,#0 LJMP KEYH E2: MOV 20H,#4 LJMP KEYH E3: MOV 20H,#8 LJMP KEYH E4: MOV 20H,#12 LJMP KEYH KEYH:MOV A,47H JNB ACC.0,D0 JNB ACC.1,D1 JNB ACC.2,D2 JNB ACC.3,D3 SETB EX0 RETI D0: MOV A,#0 ADD A,20H MOV 59H,A MOV B,#3 MUL AB JMP @A+DPTR D1: MOV A,#1 ADD A,20H MOV 59H,A MOV B,#3 MUL AB JMP @A+DPTR D2: MOV A,#2 ADD A,20H MOV 59H,A MOV B,#3 MUL AB JMP @A+DPTR D3: MOV A,#3 ADD A,20H MOV 59H,A MOV B,#3 MUL AB JMP @A+DPTR JS: LJMP LOOP0 LJMPLOOP1 LJMP LOOP2 LJMP LOOP3 LJMP LOOP4 LJMP LOOP5 LJMP LOOP6 LJMP LOOP7 LJMP LOOP8 LJMP LOOP9 LJMP LOOP10 LJMP LOOP11 LOOP0: ACALL SHIFT1 MOV P2,#0F0H SETB EX0 RETI LOOP1: ACALLSHIFT1 MOV P2,#0F0H SETB EX0 RETI LOOP2: ACALL SHIFT1 MOV P2,#0F0H SETB EX0 RETI LOOP3: ACALL SHIFT1 MOV P2,#0F0H SETB EX0 RETI LOOP4: ACALL SHIFT1 MOV P2,#0F0H SETB EX0 RETI LOOP5: ACALL SHIFT1 MOV P2,#0F0H SETB EX0 RETI LOOP6: ACALL SHIFT1 MOV P2,#0F0H SETB EX0 RETI LOOP7: ACALL SHIFT1 MOV P2,#0F0H SETB EX0 RETI LOOP8: ACALL SHIFT1 MOV P2,#0F0H SETBEX0 RETI LOOP9: ACALL SHIFT1 MOV P2,#0F0H SETB EX0 RETI LOOP10: SETB F0 ;按下設置鍵 MOV COUNT,#1 MOV P2,#0F0H SETB EX0 RETI LOOP11: ;按下"確認"鍵 CLR F0 SETB F1 MOV COUNT,#0 MOV P2,#0F0H SETB EX0 RETI SHIFT1: JB F0,LLL LJMP EXIT LLL: MOV A,COUNT CJNE A,#2,LLL1 MOV 48H,59H LJMP EXIT LLL1: CJNE A,#3,LLL2 MOV 55H,59H LJMP EXIT LLL2: CJNE A,#4,EXIT MOV 56H,59H SETB F1 CLR F0 EXIT: RET ;*************************顯示子程序************************* DISPLAY1: ;顯示"自動溫度控制系統" 循環效果 mov column4,#48 mov pagef4,#0 ;溫 mov code,#0 lcall writeright2 LCALL DELAY1 mov column4,#32 mov pagef4,#0 ;溫 mov code,#0 lcall writeright2 mov column4,#48 mov pagef4,#0 ;度 mov code,#1 lcall writeright2 LCALL DELAY1 mov column4,#16 mov pagef4,#0 ;溫 mov code,#0 lcall writeright2 mov column4,#32 mov pagef4,#0 ;度 mov code,#1 lcall writeright2 mov column4,#48 mov pagef4,#0 ;自 mov code,#2 lcall writeright2 LCALL DELAY1 mov column4,#0 mov pagef4,#0 ;溫 mov code,#0 lcall writeright2 mov column4,#16 mov pagef4,#0 ;度 mov code,#1 lcall writeright2 mov column4,#32 mov pagef4,#0 ;自 mov code,#2 lcall writeright2 mov column4,#48 mov pagef4,#0 ;動 mov code,#3 lcall writeright2 LCALL DELAY1 mov column3,#48 mov pagef3,#0 ;溫 mov code,#0 lcall writeleft2 mov column4,#0 mov pagef4,#0 ;度 mov code,#1 lcall writeright2 mov column4,#16 mov pagef4,#0 ;自 mov code,#2 lcall writeright2 mov column4,#32 mov pagef4,#0 ;動 mov code,#3 lcall writeright2 mov column4,#48 mov pagef4,#0 ;控 mov code,#4 lcall writeright2 LCALL DELAY1 mov column3,#32 mov pagef3,#0 ;溫 mov code,#0 lcall writeleft2 mov column3,#48 mov pagef3,#0 ;度 mov code,#1 lcall writeleft2 mov column4,#0 mov pagef4,#0 ;自 mov code,#2 lcall writeright2 mov column4,#16 mov pagef4,#0 ;動 mov code,#3 lcall writeright2 mov column4,#32 mov pagef4,#0 ;控 mov code,#4 lcall writeright2 mov column4,#48 mov pagef4,#0 ;制 mov code,#5 lcall writeright2 LCALL DELAY1 mov column3,#16 mov pagef3,#0 ;溫 mov code,#0 lcall writeleft2 mov column3,#32 mov pagef3,#0 ;度 mov code,#1 lcall writeleft2 mov column3,#48 mov pagef3,#0 ;自 mov code,#2 lcall writeleft2 mov column4,#0 mov pagef4,#0 ;動 mov code,#3 lcall writeright2 mov column4,#16 mov pagef4,#0 ;控 mov code,#4 lcall writeright2 mov column4,#32 mov pagef4,#0 ;制 mov code,#5 lcall writeright2 mov column4,#48 mov pagef4,#0 ;系 mov code,#6 lcall writeright2 LCALL DELAY1 mov column3,#0 mov pagef3,#0 ;溫 mov code,#0 lcall writeleft2 mov column3,#16 mov pagef3,#0 ;度 mov code,#1 lcall writeleft2 mov column3,#32 mov pagef3,#0 ;自 mov code,#2 lcall writeleft2 mov column3,#48 mov pagef3,#0 ;動 mov code,#3 lcall writeleft2 mov column4,#0 mov pagef4,#0 ;控 mov code,#4 lcall writeright2 mov column4,#16 mov pagef4,#0 ;制 mov code,#5 lcall writeright2 mov column4,#32 mov pagef4,#0 ;系 mov code,#6 lcall writeright2 mov column4,#48 mov pagef4,#0 ;統 mov code,#7 lcall writeright2 LCALL DELAY1 RET DISPLAY2: ;顯示"設置溫度" mov column3,#16 ;設 mov pagef3,#2 mov code,#8 lcall writeleft2 LCALL DELAY1 mov column3,#32 ;置 mov pagef3,#2 mov code,#9 LCALL writeleft2 LCALL DELAY1 mov column3,#48 ;溫 mov pagef3,#2 mov code,#0 lcall writeleft2 LCALL DELAY1 mov column4,#0 ;度 mov pagef4,#2 mov code,#1 lcall writeright2 LCALL DELAY1 RET DISPLAY3: mov column2,#16 mov pagef2,#2 mov code,#10 lcall writeright ;顯示預設的溫度 mov column2,#24 mov pagef2,#2 mov code,48H lcall writeright mov column2,#32 mov pagef2,#2 mov code,55H lcall writeright mov column2,#40 mov pagef2,#2 ;. mov code,#11 lcall writeright mov column2,#48 mov pagef2,#2 mov code,56H lcall writeright RET DISPLAY4: ;顯示"實際溫度" mov column3,#16 ;實 mov pagef3,#4 mov code,#10 lcall writeleft2 LCALL DELAY1 mov column3,#32 ;際 mov pagef3,#4 mov code,#11 lcall writeleft2 LCALL DELAY1 mov column3,#48 ;溫 mov pagef3,#4 mov code,#0 lcall writeleft2 LCALL DELAY1 mov column3,#0 ;度 mov pagef3,#4 mov code,#1 lcall writeright2 LCALL DELAY1 RET DISPLAY5: ;顯示實際的溫度 MOV A,29H MOV C,40H ;28的位地址 RRC A MOV C,41H RRC A MOV C,42H RRC A MOV C,43H RRC A MOV 51H,A ANL 29H,#0FH MOV A,29H MOV B,#6 MUL AB MOV 50H,A mov a,51H mov b,#10 div ab mov 43H,a mov 42H,b MOV A,50H MOV B,#10 DIV AB MOV 41H,A MOV 40H,B mov column2,#16 mov pagef2,#4 mov code,#10 lcall writeright mov column2,#24 ;實際溫度 mov pagef2,#4 mov code,43h lcall writeright mov column2,#32 mov pagef2,#4 mov code,42h lcall writeright mov column2,#40 mov pagef2,#4 ;. mov code,#11 lcall writeright mov column2,#48 mov pagef2,#4 mov code,41h lcall writeright RET DISPLAY6: mov column3,#24 mov pagef3,#6 ;狀 mov code,#13 lcall writeleft2 LCALL DELAY1 mov column3,#40 mov pagef3,#6 ;態 mov code,#14 lcall writeleft2 LCALL DELAY1 mov column,#56 mov pagef,#6 ; : mov code,#10 lcall writeleft LCALL DELAY1 mov column4,#0 mov pagef4,#6 ;加 mov code,#15 lcall writeright2 LCALL DELAY1 mov column4,#16 mov pagef4,#6 ;熱 mov code,#16 lcall writeright2 LCALL DELAY1 mov column4,#32 mov pagef4,#6 ; ! mov code,#19 lcall writeright2 LCALL DELAY1 RET DISPLAY7: mov column3,#24 mov pagef3,#6 ;狀 mov code,#13 lcall writeleft2 LCALL DELAY1 mov column3,#40 mov pagef3,#6 ;態 mov code,#14 lcall writeleft2 LCALL DELAY1 mov column,#56 mov pagef,#6 ; : mov code,#10 lcall writeleft LCALL DELAY1 mov column4,#0 mov pagef4,#6 ;降 mov code,#17 lcall writeright2 LCALL DELAY1 mov column4,#16 mov pagef4,#6 ;溫 mov code,#0 lcall writeright2 LCALL DELAY1 mov column4,#32 mov pagef4,#6 ;! mov code,#19 lcall writeright2 LCALL DELAY1 RET DISPLAY8: mov column2,#24 mov pagef2,#2 mov code,48H lcall writeright LCALL DELAY LCALL DELAY mov column2,#24 mov pagef2,#2 mov code,#12 lcall writeright RET DISPLAY9: mov column2,#32 mov pagef2,#2 mov code,55H lcall writeright LCALL DELAY LCALL DELAY mov column2,#32 mov pagef2,#2 mov code,#12 lcall writeright RET DISPLAY10: mov column2,#48 mov pagef2,#2 mov code,56H lcall writeright LCALL DELAY LCALL DELAY mov column2,#48 mov pagef2,#2 mov code,#12 lcall writeright RET DISPLAY11: mov column3,#24 mov pagef3,#6 ;狀 mov code,#13 lcall writeleft2 LCALL DELAY1 mov column3,#40 mov pagef3,#6 ;態 mov code,#14 lcall writeleft2 LCALL DELAY1 mov column,#56 mov pagef,#6 ; : mov code,#10 lcall writeleft LCALL DELAY1 mov column4,#0 mov pagef4,#6 ;降 mov code,#20 lcall writeright2 LCALL DELAY1 mov column4,#16 mov pagef4,#6 ;溫 mov code,#21 lcall writeright2 LCALL DELAY1 mov column4,#32 mov pagef4,#6 ;! mov code,#19 lcall writeright2 LCALL DELAY1 RET DISPLAY: mov column2,#24 mov pagef2,#2 mov code,48H lcall writeright mov column2,#32 mov pagef2,#2 mov code,55H lcall writeright mov column2,#40 mov pagef2,#2 ;. mov code,#11 lcall writeright mov column2,#48 mov pagef2,#2 mov code,56H lcall writeright MOV A,29H MOV C,40H ;28的位地址 RRC A MOV C,41H RRC A MOV C,42H RRC A MOV C,43H RRC A MOV 51H,A ANL 29H,#0FH MOV A,29H MOV B,#6 MUL AB MOV 50H,A mov a,51H mov b,#10 div ab mov 43H,a mov 42H,b MOV A,50H MOV B,#10 DIV AB MOV 41H,A MOV 40H,B mov column2,#24 ;實際溫度 mov pagef2,#4 mov code,43h lcall writeright mov column2,#32 mov pagef2,#4 mov code,42h lcall writeright mov column2,#40 mov pagef2,#4 ;. mov code,#11 lcall writeright mov column2,#48 mov pagef2,#4 mov code,41h lcall writeright RET ;***********************DS18B20復位初始化子程序*********** INIT_1820: SETB P3.1 NOP CLR P3.1;主機發出延時537微秒的復位低脈沖 MOV R1,#3 TSR1: MOV R0,#107 DJNZ R0,$ DJNZ R1,TSR1 SETB P3.1 ;然后拉高數據線 NOP NOP NOP MOV R0,#25H TSR2: JNB P3.1,TSR3 ;等待DS18B20回應 DJNZ R0,TSR2 LJMP TSR4 ; 延時 TSR3: SETB FLAG1 ; 置標志位,表示DS1820存在 LJMP TSR5 TSR4: CLR FLAG1 ; 清標志位,表示DS1820不存在 LJMP TSR7 TSR5: MOV R0,#117 TSR6: DJNZ R0,TSR6 ; 時序要求延時一段時間 TSR7: SETB P3.1 RET ; 讀出轉換后的溫度值 ;***********************讀溫度子程序***************** GET_TEMPER: SETB P3.1 LCALL INIT_1820;先復位DS18B20 JB FLAG1,TSS2 RET ; 判斷DS1820是否存在?若DS18B20不存在則返回 TSS2: MOV A,#0CCH ; 跳過ROM匹配 LCALL WRITE_1820 MOV A,#44H ; 發出溫度轉換命令 LCALL WRITE_1820;通過調用顯示子程序實現延時一段時間,等待AD轉換結束,12位的話750微秒 LCALL DISPLAY LCALL INIT_1820;準備讀溫度前先復位 MOV A,#0CCH ; 跳過ROM匹配 LCALL WRITE_1820 MOV A,#0BEH ; 發出讀溫度命令 LCALL WRITE_1820 LCALL READ_18200 RET ;*************************寫命令子程序********** WRITE_1820: MOV R2,#8 CLR C WR1: CLR P3.1 MOV R3,#6 DJNZ R3,$ RRC A MOV P3.1,C MOV R3,#23 DJNZ R3,$ SETB P3.1 NOP DJNZ R2,WR1 SETB P3.1 RET ;***********************讀命令子程序*********** READ_18200: MOV R4,#2 MOV R1,#29H RE00: MOV R2,#8 RE01: CLR C SETB P3.1 NOP NOP CLR P3.1 NOP NOP NOP SETB P3.1 MOV R3,#9 RE10: DJNZ R3,RE10 MOV C,P3.1 MOV R3,#23 RE20: DJNZ R3,RE20 RRC A DJNZ R2,RE01 MOV @R1,A DEC R1 DJNZ R4,RE00 RET ;**********************左半屏寫入數字子程序**************8 writeleft: mov dptr,#table1 push column mov cpage,#2 mov ccolumn,#0 mov a,pagef anl a,#07h orl a,#0b8h ;頁地址,第0頁 mov com,a lcall prm0 mov a,column anl a,#3fh orl a,#40h ;列地址,第0列 mov com,a lcall prm0 mov a,code mov b,#16 mul ab add a,dpl mov dpl,a mov a,b addc a,dph mov dph,a lp1: mov a,#00h movc a,@a+dptr mov dat,a lcall prm1 inc ccolumn mov a,ccolumn inc dptr cjne a,#8,lp1 dec cpage inc pagef mov a,cpage jz over1 mov a,pagef anl a,#07h orl a,#0b8h mov com,a lcall prm0 pop column mov a,column anl a,#3fh orl a,#40h mov com,a lcall prm0 mov ccolumn,#0 ljmp lp1 over1: ret ;************右半屏寫入數字子程序******************* writeright: mov dptr,#table1 push column2 mov cpage2,#2 mov ccolumn2,#0 mov a,pagef2 anl a,#07h orl a,#0b8h mov com,a lcall prr0 mov a,column2 anl a,#3fh orl a,#40h mov com,a lcall prr0 mov a,code mov b,#16 mul ab add a,dpl mov dpl,a mov a,b addc a,dph mov dph,a lp2: mov a,#00h movc a,@a+dptr mov dat,a lcall prr1 inc ccolumn2 mov a,ccolumn2 inc dptr cjne a,#8,lp2 dec cpage2 inc pagef2 mov a,cpage2 jz over2 mov a,pagef2 anl a,#07h orl a,#0b8h mov com,a lcall prr0 pop column2 mov a,column2 anl a,#3fh orl a,#40h mov com,a lcall prr0 mov ccolumn2,#0 ljmp lp2 over2: ret ;*****************左半屏寫入漢字子程序***************** writeleft2: mov dptr,#table2 push column3 mov cpage3,#2 mov ccolumn3,#0 mov a,pagef3 anl a,#07h orl a,#0b8h mov com,a lcall prm0 mov a,column3 anl a,#3fh orl a,#40h mov com,a lcall prm0 mov a,code mov b,#32 mul ab add a,dpl mov dpl,a mov a,b addc a,dph mov dph,a lp3: mov a,#00h movc a,@a+dptr mov dat,a lcall prm1 inc ccolumn3 mov a,ccolumn3 inc dptr cjne a,#16,lp3 dec cpage3 inc pagef3 mov a,cpage3 jz over3 mov a,pagef3 anl a,#07h orl a,#0b8h mov com,a lcall prm0 pop column3 mov a,column3 anl a,#3fh orl a,#40h mov com,a lcall prm0 mov ccolumn3,#0 ljmp lp3 over3: ret ;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;; writeright2: ; 右半屏寫入漢字子程序 mov dptr,#table2 push column4 mov cpage4,#2 mov ccolumn4,#0 mov a,pagef4 anl a,#07h orl a,#0b8h mov com,a lcall prr0 mov a,column4 anl a,#3fh orl a,#40h mov com,a lcall prr0 mov a,code mov b,#32 mul ab add a,dpl mov dpl,a mov a,b addc a,dph mov dph,a lp4: mov a,#00h movc a,@a+dptr mov dat,a lcall prr1 inc ccolumn4 mov a,ccolumn4 inc dptr cjne a,#16,lp4 dec cpage4 inc pagef4 mov a,cpage4 jz over4 mov a,pagef4 anl a,#07h orl a,#0b8h mov com,a lcall prr0 pop column4 mov a,column4 anl a,#3fh orl a,#40h mov com,a lcall prr0 mov ccolumn4,#0 ljmp lp4 over4: ret ;*******************右半屏寫入數字子程序**************** writeleft1: mov dptr,#table1 push column2 mov cpage2,#2 mov ccolumn2,#0 mov a,pagef2 anl a,#07h orl a,#0b8h mov com,a lcall prm0 mov a,column2 anl a,#3fh orl a,#40h mov com,a lcall prm0 mov a,code mov b,#16 mul ab add a,dpl mov dpl,a mov a,b addc a,dph mov dph,a lp9: mov a,#00h movc a,@a+dptr mov dat,a lcall prm1 inc ccolumn2 mov a,ccolumn2 inc dptr cjne a,#8,lp9 dec cpage2 inc pagef2 mov a,cpage2 jz over9 mov a,pagef2 anl a,#07h orl a,#0b8h mov com,a lcall prm0 pop column2 mov a,column2 anl a,#3fh orl a,#40h mov com,a lcall prm0 mov ccolumn2,#0 ljmp lp9 over9: ret ;*********************寫指令代碼子程序(左)******************* PRM0: CLR CSA SETB CSB CLRrs SETB rw PRM01: MOV P1,#0FFH SETB E MOVA,P1 CLRE JB ACC.7,PRM01 CLRrw MOVP1,COM SETB E CLRE RET ;***********************寫顯示數據子程序(左)****************** PRM1: CLR CSA SETB CSB CLRrs SETB rw PRM11: MOV P1,#0FFH SETB E MOVA,P1 CLRE JB ACC.7,PRM11 SETB rs CLRrw MOVP1,DAT SETB E CLRE RET ;********************寫指令代碼子程序(右)*************** PRR0: CLR CSB SETB CSA CLRrs SETB rw PRR01: MOV P1,#0FFH SETB E MOVA,P1 CLRE JB ACC.7,PRR01 CLRrw MOVP1,COM SETB E CLRE RET ;************************寫顯示數據子程序(右)************** PRR1: CLR CSB SETB CSA CLRrs SETB rw PRR11: MOV P1,#0FFH SETB E MOVA,P1 CLRE JB ACC.7,PRR11 SETB rs CLRrw MOVP1,DAT SETB E CLRE RET ;*********************LCD12864初始化子程序************** INT: MOV COM,#0C0H ;設置顯示起始行為第一行 LCALL PRM0 LCALL PRR0 MOVCOM,#3FH ;開顯示設置 LCALL PRM0 LCALL PRR0 RET ;**************************LCD12864液晶清屏子程序***************** CLEAR: MOV R4,#00H CLEAR1: MOV A,R4 ORLA,#0B8H MOVCOM,A LCALL PRM0 LCALL PRR0 MOVCOM,#40H LCALL PRM0 LCALL PRR0 MOVR3,#40H CLEAR2: MOV DAT,#00H LCALL PRM1 LCALL PRR1 DJNZ R3,CLEAR2 INCR4 CJNE R4,#08H,CLEAR1 RET ;***********************延時子程序************* DELAY: MOV R0,#20 SS: MOV R1,#20 DJNZ R1,$ DJNZ R0,SS RET DELAY1:MOV R0,#5 YY: MOV R1,#110 QQ: MOV R2,#200 DJNZ R2,$ DJNZ R1,QQ DJNZ R0,YY RET table1: DB 0F0h, 0F8h, 0Ch, 04h DB 04h, 0Ch, 0F8h, 0F0h ;0 DB 0Fh, 1Fh, 30h, 20h DB 20h, 30h, 1Fh, 0Fh DB 00h, 00h, 08h, 0F8h ;1 DB 0FCh, 00h, 00h, 00h DB 00h, 00h, 20h, 3Fh DB 3Fh, 20h, 00h, 00h DB 30h, 38h, 0Ch, 04h DB 04h, 0Ch, 0F8h, 0F0h DB 20h, 30h, 38h, 2Ch ;2 DB 26h, 23h, 21h, 38h DB 10h, 18h, 0Ch, 84h DB 84h, 0CCh, 78h, 30h DB 08h, 18h, 30h, 20h DB 20h, 31h, 1Fh, 0Eh ;3 DB 00h, 0C0h, 70h, 18h DB 0FCh, 0FEh, 00h, 00h DB 07h, 05h, 04h, 24h DB 3Fh, 3Fh, 24h, 04h ;4 DB 0FCh, 0FCh, 0C4h, 44h DB 44h, 0C4h, 84h, 04h DB 08h, 18h, 30h, 20h DB 20h, 30h, 1Fh, 0Fh ;5 DB 0F0h, 0F8h, 8Ch, 44h DB 44h, 0CCh, 98h, 10h DB 0Fh, 1Fh, 30h, 20h DB 20h, 30h, 1Fh, 0Fh ;6 DB 1Ch, 0Ch, 0Ch, 0Ch DB 0CCh, 0ECh, 3Ch, 1Ch DB 00h, 00h, 3Ch, 3Fh DB 03h, 00h, 00h, 00h ;7 DB 30h, 78h, 0CCh, 84h DB 84h, 0CCh, 78h, 30h DB 0Eh, 1Fh, 31h, 20h DB 20h, 31h, 1Fh, 0Eh ;8 DB 0F0h, 0F8h, 0Ch, 04h DB 04h, 0Ch, 0F8h, 0F0h DB 08h, 19h, 33h, 22h DB 22h, 33h, 1Fh, 0Fh ;9 DB 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h DB 00h, 00h, 33h, 33h, 00h, 00h, 00h, 00h ;: 10 DB 00H,00H,00H,00H,00H,00H,00H,00H ; 11 . DB 00H,00H,30H,30H,00H,00H,00H,00H DB 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h DB 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h ;空 12 DB 80H, 80H, 80H, 80H, 80H, 80H, 80H, 80H, DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;一 13 table2: DB 10h, 22h, 64h, 0Ch, 80h, 00h, 0FEh, 92h ;0 溫 DB 92h, 92h, 92h, 92h, 0FFh, 02h, 00h, 00h DB 04h, 04h, 0FEh, 01h, 40h, 7Eh, 42h, 42h DB 7Eh, 42h, 7Eh, 42h, 42h, 7Eh, 40h, 00h DB 00h, 00h, 0FCh, 24h, 24h, 24h, 0FCh, 0A5h ;1度 DB 0A6h, 0A4h, 0FCh, 24h, 34h, 26h, 04h, 00h DB 40h, 20h, 9Fh, 80h, 42h, 42h, 26h, 2Ah DB 12h, 2Ah, 26h, 42h, 40h, 0C0h, 40h, 00h DB 00h, 00h, 00h, 0F8h, 48h, 4Ch, 4Ah, 49h ;2自 DB 48h, 48h, 48h, 0FCh, 08h, 00h, 00h, 00h DB 00h, 00h, 00h, 0FFh, 44h, 44h, 44h, 44h DB 44h, 44h, 44h, 0FFh, 00h, 00h, 00h, 00h DB 20h, 24h, 24h, 0E4h, 26h, 34h, 20h, 10h ;3動 DB 10h, 0FFh, 10h, 10h, 10h, 0F8h, 10h, 00h DB 08h, 1Ch, 0Bh, 08h, 08h, 8Ah, 4Ch, 30h DB 0Ch, 03h, 40h, 80h, 40h, 3Fh, 00h, 00h DB 10h, 10h, 10h, 0FFh, 90h, 50h, 0Ch, 44h ;4控 DB 24h, 15h, 06h, 14h, 24h, 54h, 0Ch, 00h DB 02h, 42h, 81h, 7Fh, 00h, 40h, 42h, 42h DB 42h, 42h, 7Eh, 42h, 43h, 62h, 40h, 00h DB 40h, 60h, 5Eh, 48h, 48h, 0FFh, 48h, 4Ch ;5制 DB 68h, 40h, 0F8h, 00h, 00h, 0FFh, 00h, 00h DB 00h, 00h, 3Fh, 01h, 01h, 0FFh, 11h, 21h DB 1Fh, 00h, 07h, 40h, 80h, 7Fh, 00h, 00h DB 00h, 02h, 22h, 22h, 32h, 2Eh, 0A2h, 62h ;6系 DB 22h, 22h, 91h, 09h, 01h, 00h, 00h, 00h DB 00h, 00h, 42h, 22h, 1Ah, 43h, 82h, 7Eh DB 02h, 02h, 0Ah, 13h, 66h, 00h, 00h, 00h DB 20h, 30h, 0ACh, 63h, 30h, 88h, 0C8h, 0A8h ;7統 DB 99h, 8Eh, 88h, 0A8h, 0CCh, 88h, 00h, 00h DB 22h, 67h, 22h, 12h, 92h, 40h, 30h, 0Fh DB 00h, 00h, 3Fh, 40h, 40h, 41h, 70h, 00h DB 40h, 40h, 42h, 0CCh, 00h, 40h, 0A0h, 9Fh ;8設 DB 81h, 81h, 81h, 9Fh, 0A0h, 20h, 20h, 00h DB 00h, 00h, 00h, 7Fh, 0A0h, 90h, 40h, 43h DB 2Ch, 10h, 28h, 26h, 41h, 0C0h, 40h, 00h DB 00h, 10h, 17h, 0D5h, 55h, 57h, 55h, 7Dh ;9置 DB 55h, 57h, 55h, 0D5h, 17h, 10h, 00h, 00h DB 40h, 40h, 40h, 7Fh, 55h, 55h, 55h, 55h DB 55h, 55h, 55h, 7Fh, 40h, 60h, 40h, 00h DB 10h, 0Ch, 04h, 44h, 8Ch, 94h, 35h, 06h ;10實 DB 0F4h, 04h, 04h, 04h, 04h, 14h, 0Ch, 00h DB 02h, 82h, 82h, 42h, 42h, 23h, 12h, 0Eh DB 03h, 0Ah, 12h, 22h, 42h, 0C3h, 02h, 00h DB 00h, 0FEh, 02h, 22h, 0DAh, 06h, 40h, 42h ;11際 DB 42h, 42h, 0C2h, 42h, 43h, 62h, 40h, 00h DB 00h, 0FFh, 08h, 10h, 08h, 07h, 10h, 08h DB 46h, 80h, 7Fh, 00h, 02h, 04h, 18h, 00h DB 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, ;12 空白 DB 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h DB 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h DB 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h DB 00h, 08h, 30h, 00h, 0FFh, 20h, 20h, 20h ;13 狀 DB 20h, 0FFh, 20h, 22h, 24h, 30h, 20h, 00h DB 08h, 0Ch, 02h, 01h,0FFh, 40h, 20h, 1Ch DB 03h, 00h, 03h, 0Ch, 30h, 60h, 20h, 00h DB 04h, 04h, 84h, 84h, 44h, 24h, 54h, 8Fh ;14態 DB 14h, 24h, 44h, 44h, 84h, 86h, 84h, 00h DB 01h, 21h, 1Ch, 00h, 3Ch, 40h, 42h, 4Ch DB 40h, 40h, 70h, 04h, 08h, 31h, 00h, 00h DB 10h, 10h, 10h, 0FFh, 10h, 10h, 0F8h, 10h ;15 加 DB 00h, 0F8h, 08h, 08h, 08h, 0FCh, 08h, 00h DB 40h, 20h, 1Eh, 01h, 20h, 40h, 3Fh, 00h DB 00h, 7Fh, 20h, 20h, 20h, 7Fh, 00h, 00h DB 00h, 88h, 88h, 48h, 0FFh, 48h, 28h, 08h ;16 熱 DB 48h, 0FFh, 08h, 08h, 0FCh, 08h, 00h, 00h DB 80h, 60h, 04h, 08h, 27h, 0C0h, 08h, 04h DB 23h, 0C0h, 01h, 00h, 27h, 48h, 0C6h, 00h DB 00h, 0FEh, 02h, 22h, 0DAh, 06h, 88h, 44h ;17 降 DB 57h, 0A4h, 54h, 4Ch, 84h, 80h, 80h, 00h DB 00h, 0FFh, 08h, 10h, 08h, 07h, 10h, 1Eh DB 12h, 0FFh, 12h, 12h, 18h, 11h, 00h, 00h DB 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h ;18 : DB 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h DB 00h, 00h, 33h, 33h, 00h, 00h, 00h, 00h DB 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h DB 00h, 00h, 00h, 00h, 00h, 00h, 1Ch, 0FEh ;19 ! DB 0FEh, 1Ch, 00h, 00h, 00h, 00h, 00h, 00h DB 00h, 00h, 00h, 00h, 00h, 00h, 00h, 33h DB 33h, 00h, 00h, 00h, 00h, 00h, 00h, 00h DB 00h, 80h, 60h, 0F8h, 07h, 00h, 7Eh, 22h ;20保 DB 22h, 0E2h, 22h, 22h, 3Fh, 82h, 00h, 00h DB 01h, 00h, 00h, 0FFh, 41h, 21h, 11h, 09h DB 05h, 0FFh, 05h, 09h, 31h, 61h, 21h, 00h DB 10h, 10h, 10h, 0FFh, 90 h, 50h, 48h, 48h ;21持 DB 48h, 7Fh, 48h, 0CCh, 68h, 40h, 00h, 00h DB 02h, 42h, 81h, 7Fh, 00h, 02h, 06h, 1Ah DB 02h, 42h, 82h, 7Fh, 02h, 03h, 02h, 00h END
|