?? 12864.asm
字號(hào):
;****************************資源分配**************************
FLAG1 EQU 54H;是否檢測(cè)到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 ;顯示"溫度自動(dòng)控制系統(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
LJMP LOOP1
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:
ACALL SHIFT1
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
SETB EX0
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: ;顯示"自動(dòng)溫度控制系統(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 ;動(dòng)
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 ;動(dòng)
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 ;動(dòng)
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 ;動(dòng)
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 ;動(dòng)
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
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -