標(biāo)題: 51單片機(jī)匯編語言溫度自動控制系統(tǒng) [打印本頁]
作者: 51mcu 時(shí)間: 2018-12-30 08:19
標(biāo)題: 51單片機(jī)匯編語言溫度自動控制系統(tǒng)
這是一款51單片機(jī)匯編語言溫度自動控制系統(tǒng),電路簡單,采用不帶字庫的128X64液晶屏作為顯示器,程序采用匯編語言編程。
單片機(jī)匯編語言溫度自動控制系統(tǒng).rar
(91.19 KB, 下載次數(shù): 46)
2018-12-30 08:16 上傳
點(diǎn)擊文件名下載附件
51單片機(jī)匯編語言溫度自動控制系統(tǒng)
下載積分: 黑幣 -5
單片機(jī)匯編語言溫度自動控制系統(tǒng).jpg (194.71 KB, 下載次數(shù): 55)
下載附件
仿真圖
2018-12-30 08:17 上傳
單片機(jī)源程序:
;****************************資源分配**************************
FLAG1 EQU 54H;是否檢測到DS18B20標(biāo)志位
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 ;顯示數(shù)據(jù)
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 ;清設(shè)置鍵
CLR FLAG2 ;清確認(rèn)鍵
MOV COUNT,#0 ;中斷次數(shù)計(jì)數(shù)
SETB IT0
SETB EX0
SETB EA
LCALL INT ;LCD12864初始化子程序
LCALL CLEAR ;LDC12864清屏子程序
LCALL DISPLAY1 ;顯示"溫度自動控制系統(tǒng)"
LCALL DISPLAY2 ;顯示"設(shè)置溫度"
LCALL DISPLAY3 ;顯示預(yù)設(shè)的溫度
LCALL DISPLAY4 ;顯示"實(shí)際溫度"
LCALL DISPLAY5
LCALL GET_TEMPER ;調(diào)用讀溫度子程序
ACALL DISPLAY5 ;調(diào)用顯示
M:
LCALL GET_TEMPER
LCALL DELAY1
MM: LCALL DISPLAY3
MM1: JB F0,MM4 ;是否按上"設(shè)置"鍵
JNB F1,M ;是否按下"確認(rèn)"鍵
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 ;中斷計(jì)數(shù)器加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 ;按下設(shè)置鍵
MOV COUNT,#1
MOV P2,#0F0H
SETB EX0
RETI
LOOP11: ;按下"確認(rèn)"鍵
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: ;顯示"自動溫度控制系統(tǒng)" 循環(huán)效果
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 ;統(tǒng)
mov code,#7
lcall writeright2
LCALL DELAY1
RET
DISPLAY2: ;顯示"設(shè)置溫度"
mov column3,#16 ;設(shè)
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
;顯示預(yù)設(shè)的溫度
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: ;顯示"實(shí)際溫度"
mov column3,#16 ;實(shí)
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: ;顯示實(shí)際的溫度
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 ;實(shí)際溫度
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 ;態(tài)
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 ;態(tài)
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 ;態(tài)
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 ;實(shí)際溫度
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復(fù)位初始化子程序***********
INIT_1820:
SETB P3.1
NOP
CLR P3.1;主機(jī)發(fā)出延時(shí)537微秒的復(fù)位低脈沖
MOV R1,#3
TSR1: MOV R0,#107
DJNZ R0,$
DJNZ R1,TSR1
SETB P3.1 ;然后拉高數(shù)據(jù)線
NOP
NOP
NOP
MOV R0,#25H
TSR2: JNB P3.1,TSR3 ;等待DS18B20回應(yīng)
DJNZ R0,TSR2
LJMP TSR4 ; 延時(shí)
TSR3: SETB FLAG1 ; 置標(biāo)志位,表示DS1820存在
LJMP TSR5
TSR4: CLR FLAG1 ; 清標(biāo)志位,表示DS1820不存在
LJMP TSR7
TSR5: MOV R0,#117
TSR6: DJNZ R0,TSR6 ; 時(shí)序要求延時(shí)一段時(shí)間
TSR7: SETB P3.1
RET ; 讀出轉(zhuǎn)換后的溫度值
;***********************讀溫度子程序*****************
GET_TEMPER:
SETB P3.1
LCALL INIT_1820;先復(fù)位DS18B20
JB FLAG1,TSS2
RET ; 判斷DS1820是否存在?若DS18B20不存在則返回
TSS2:
MOV A,#0CCH ; 跳過ROM匹配
LCALL WRITE_1820
MOV A,#44H ; 發(fā)出溫度轉(zhuǎn)換命令
LCALL WRITE_1820;通過調(diào)用顯示子程序?qū)崿F(xiàn)延時(shí)一段時(shí)間,等待AD轉(zhuǎn)換結(jié)束,12位的話750微秒
LCALL DISPLAY
LCALL INIT_1820;準(zhǔn)備讀溫度前先復(fù)位
MOV A,#0CCH ; 跳過ROM匹配
LCALL WRITE_1820
MOV A,#0BEH ; 發(fā)出讀溫度命令
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
;**********************左半屏寫入數(shù)字子程序**************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
;************右半屏寫入數(shù)字子程序*******************
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
;*******************右半屏寫入數(shù)字子程序****************
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
;***********************寫顯示數(shù)據(jù)子程序(左)******************
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
;************************寫顯示數(shù)據(jù)子程序(右)**************
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 ;設(shè)置顯示起始行為第一行
LCALL PRM0
LCALL PRR0
MOVCOM,#3FH ;開顯示設(shè)置
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
;***********************延時(shí)子程序*************
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統(tǒng)
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設(shè)
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實(shí)
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態(tài)
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
歡迎光臨 (http://www.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |