?? gl.asm
字號:
;----------------------------
LIGHT0 EQU 20H
LIGHT1 EQU 21H
LEDNO EQU 30H
LED0 EQU 31H
LED1 EQU 32H
LED2 EQU 33H
LED3 EQU 34H
BUF0 EQU 35H
BUF1 EQU 36H
BUF2 EQU 37H
BUF3 EQU 38H
KEY EQU 39H
WD0 EQU 3AH
WD1 EQU 3BH
WD2 EQU 3CH
WD3 EQU 3DH
WD4 EQU 3EH
WDTEMP1 EQU 3FH ;最后所得溫度值(-10.0—+150.0),帶符號
WDTEMP0 EQU 40H ;最后所得溫度值(-10.0—+150.0),帶符號
TTIMER3 EQU 41H ;
TTIMER2 EQU 42H ;當前時間
TTIMER1 EQU 43H
TTIMER0 EQU 44H
SETBNO EQU 45H ;指示在按哪一個設置鍵
JCS EQU 46H
JCS0 EQU 47H
KEYE EQU 49H
TM0 EQU 4AH
TM1 EQU 4BH
BFKEY EQU 4CH
JCS1 EQU 4DH
ZTIME EQU 4EH
ERRONO EQU 4FH
JCS2 EQU 50H
JCS3 EQU 51H
;----------------------------
;位定義
TTEMP BIT 04H ;停爐溫度指示燈,=0亮
STEMP BIT 05H ;使用溫度指示燈,=0亮
CTEMP BIT 06H ;出水溫度指示燈,=0亮
XTIME BIT 07H ;現在時間指示燈,=0亮
QTIME BIT 01H ;啟動時間指示燈,=0亮
TTIME BIT 02H ;停止時間指示燈,=0亮
TQJS BIT 00H ;在特殊情況下加水或出水
SETFG BIT 03H ;在運行時按下設置鍵標識,0表示按下
;
ZHQL BIT 08H ;蒸汽標志
RSHL BIT 09H ;熱水標志
RUNL BIT 0AH ;運行標志
SETL BIT 0BH ;設定標志
CHSH BIT 0CH ;出水
JSH BIT 0DH ;進水
DH BIT 0EH ;大火
XH BIT 0FH ;小火
WDSTA BIT 10H ;指示是否第一次讀數
ZANC BIT 11H ;
TXS BIT 12H ;數碼顯示是否論循顯示標志
ADSU BIT 13H ;有5,6鍵操作標志
KFLG BIT 14H ;按鍵變化標志
ERUN BIT 15H ;運行時間內標志
ERRO BIT 16H ;產生故障標志
TTB BIT 17H ;停爐溫度標志
STB BIT 18H ;使用溫度標志
CTB BIT 19H ;出水溫度標志
ERRS BIT 20H ;是否確認錯誤標志=1,已確認
;----------------------------
;P0.0------b ;數碼管顯示管腳對應字段
;P0.1------a
;P0.2------f
;P0.3------g
;P0.4------e
;P0.5------d
;P0.6------c
;P0.7------dp
;控制外部繼電器動作管腳定義,各繼電器均在管腳輸出0時動作
CSB BIT P3.1 ;出水泵繼電器
JSB BIT P3.2 ;進水泵繼電器
DHRSQ BIT P3.3 ;燃燒繼電器1
XHRSQ BIT P3.4 ;燃燒繼電器0
RSQER BIT P3.5 ;燃燒器故障
;外部傳入內部的信號
TGZ BIT P3.0 ;高針
TGS BIT P1.3 ;高水位電極
TQS BIT P1.4 ;缺水電極
TDS BIT P1.5 ;低水位電極
TCY BIT P1.6 ;超壓保護
TDZ BIT P1.7 ;低針
;
CLK BIT P1.0
DO BIT P1.1 ;TLC549CP管腳定義
CS BIT P1.2
;
WP BIT P2.0
SCL BIT P2.1
SDA BIT P2.2 ;AT24C02 管腳定義
KEY6 BIT P2.3
BELL BIT P2.4 ;蜂鳴器控制=1響;=0不響
YM2 BIT P2.5
YM1 BIT P2.6
YM0 BIT P2.7
;----------------------------
; AT89S52 Extensions
;
WDTRST EQU 0A6H ;看門狗控制寄存器
AUXR1 EQU 0A2H
AUXR EQU 08EH
;----------------------------
ORG 0000H
LJMP MAIN
;
ORG 000BH
MOV TL0,#01CH
MOV TH0,#0FCH ;4 MS for 12M
LJMP TINT0
;
ORG 0030H
MAIN: MOV SP, #52H
MOV 8EH,#08H
CLR BELL
LCALL DLY100 ;上電時笛聲響100MS
SETB BELL
;
MOV R0,#07FH ;內部128個RAM地址內容清零,特殊功能寄存器不處理
LP: MOV @R0,#0
DJNZ R0,LP
;
MOV B,#96H ;讀出上次存入的現在時間
LCALL RDBA
CJNE A,#0FFH,FFSJT
CLR A
LCALL WRBA
FFSJT: MOV TTIMER3,A
MOV B,#97H
LCALL RDBA
CJNE A,#0FFH,FFSJT0
CLR A
LCALL WRBA
FFSJT0: MOV TTIMER2,A
;
MOV TMOD,#001H ;定時器0設置并開啟
SETB ET0
SETB EA
SETB TR0
;
NOP
NOP
NOP
QD: NOP
NOP
NOP
JNB P3.6,$
LCALL WWDT
MOV LIGHT0,#0FFH
MOV LIGHT1,#0FFH
MOV LED0,#09CH
MOV LED1,#0DDH
MOV LED2,#0DDH
MOV LED3,#0C9H ;各指示燈及數碼管顯示圓環
LCALL KEYDOWN
MOV A,KEYE
XRL A,#2
JNZ QD ;判斷是否按下啟動鍵
QD0: LCALL WWDT
LCALL KEYUP
MOV A,KEYE
JNZ QD0 ;判斷是否按鍵已放開
CLR BELL
LCALL DLY100
LCALL DLY100
SETB BELL
;
MOV B,#10H ;讀出上次存入的蒸汽和熱水標志
LCALL RDBA
ORL A,#0FCH
MOV LIGHT1,A
;
CLR WDSTA
CLR ERRO
CLR ADSU
MOV ERRONO,#0 ;錯誤號清零
MOV SETBNO,#0 ;參數初始化
;
NOP
NOP
NOP
LOOP: NOP
NOP
NOP
LCALL WWDT
LCALL JSWD
LCALL CONTROL
;
JB SETFG,NTYS
MOV A,JCS2
XRL A,TTIMER1
JNZ NTXS
MOV SETBNO,#0
SETB SETFG
MOV A,LIGHT0
ORL A,#0F6H
MOV LIGHT0,A
SJMP NTXS
;
NTYS: JNB SETL,NTLG
JB ERRO,NTXS
MOV A,JCS
XRL A,TTIMER1
JZ NTXS
MOV JCS,TTIMER1
;
JB RSHL,YLQK
LCALL DISPXW
SJMP NTXS
YLQK: LCALL DISPY
SJMP NTXS
NTLG: JB XTIME,NTXS
JB ADSU,NTXS
MOV R3,TTIMER3
MOV R2,TTIMER2
MOV TM1,R3
MOV TM0,R2
LCALL DISPTM ;顯示現在時間
;
NTXS: LCALL KEYUP
MOV A,KEYE
XRL A,#0
JNZ DJ0
MOV BFKEY,#0
MOV JCS0,#0
CLR KFLG
LJMP LOOP
DJ0: LCALL KEYDOWN
MOV A,KEYE
XRL A,#0FFH
JNZ KXT
LJMP NTXS
;
KXT: MOV A,KEYE
XRL A,BFKEY
JZ NTJ0
MOV BFKEY,KEYE
SETB KFLG
;
NTJ0: MOV A,KEYE
;
CJNE A,#01,NTJ1
JNB KFLG,QUIT
CLR KFLG
CLR ERRS
CLR BELL ;"停止"鍵
LCALL DLY100
SETB BELL
CLR ERRO
MOV SETBNO,#0
CLR ADSU
JNB SETL,QUIT
JNB RUNL,QUIT
LJMP QD
QUIT: SETB SETL
SETB RUNL
SETB XH ;小火
SETB DH ;大火
SETB JSH ;進水
SETB CHSH ;出水
MOV A,LIGHT0
ORL A,#0F6H
MOV LIGHT0,A
LJMP LOOP
;
NTJ1: CJNE A,#02,NTQD
JNB RUNL,NEXTLP ;"啟動"鍵
JNB SETL,NEXTLP
;
MOV A,TTIMER3 ;運行時把記錄當時時間
MOV B,#9CH
LCALL WRBA
MOV A,TTIMER2
MOV B,#9DH
LCALL WRBA
;
CLR RUNL
SETB XH
SETB DH
SETB JSH
SETB CHSH
CLR BELL
LCALL DLY100
SETB BELL
NEXTLP: LJMP LOOP
;
NTQD: CJNE A,#03,NTJ2
JNB SETL,NZQSB
JNB RUNL,NZQSB
JNB KFLG,NZQSB ;蒸汽熱水轉換
CLR KFLG
MOV C,RSHL
MOV ZHQL,C
CPL C
MOV RSHL,C
;
ORL LIGHT0,#0FCH
MOV B,#10H ;存入的蒸汽和熱水標志
MOV A,LIGHT1
LCALL WRBA
;
CLR BELL
LCALL DLY100
SETB BELL
NZQSB: LJMP LOOP
;
NTJ2: CJNE A,#04,NTJ3
JNB KFLG,NZQSB0 ;"設置"鍵
CLR KFLG
JNB RUNL,BXGCS
CLR SETL
SETB RUNL
SETB XH
SETB DH
SETB JSH
SETB CHSH
SJMP NOMSET
BXGCS: MOV A,TTIMER1
ADD A,#5
CJNE A,#120,DKH
DKH: JC LS
SUBB A,#120
LS: MOV JCS2,A
CLR SETFG
;
NOMSET: LCALL SETCON
CLR BELL
LCALL DLY100
SETB BELL
NZQSB0: LJMP LOOP
NTJ3: CJNE A,#05,NTJ4 ;"+"
LCALL JCHSH
LCALL YXSH
JB SETL,NTJ5
MOV A,SETBNO
SUBB A,#4
JNC TADD
LCALL K5W
LJMP LOOP
TADD: LCALL K5T
LJMP LOOP
;
NTJ4: CJNE A,#06,NTJ5 ;"-"
LCALL JCHSH
LCALL YXSH
JB SETL,NTJ5
MOV A,SETBNO
SUBB A,#4
JNC TADD1
LCALL K6W
LJMP LOOP
TADD1: LCALL K6T
LJMP LOOP
NTJ5:
;
LJMP LOOP
;++++++++++++++++++++++++++++
;
TINT0: PUSH ACC
PUSH PSW
;
MOV A,TTIMER0
CJNE A,#249,JS0
MOV TTIMER0,#0
JS1: MOV A,TTIMER1
CJNE A,#119,JS2
MOV TTIMER1,#0
MOV A,TTIMER2
CJNE A,#59H,JS3
MOV TTIMER2,#0
MOV A,TTIMER3
CJNE A,#23H,JS4
MOV TTIMER3,#0
SJMP JANJ
JS4: MOV A,TTIMER3
ADD A,#1
DA A
MOV TTIMER3,A
SJMP JANJ
JS3: MOV A,TTIMER2
ADD A,#1
DA A
MOV TTIMER2,A
SJMP JANJ
JS2: INC TTIMER1
SJMP JANJ
JS0: INC TTIMER0
;
JANJ: MOV P0,#0FFH
SETB KEY6
CLR YM0
CLR YM1
CLR YM2
NOP
NOP
JB KEY6,X2
MOV KEY,#1
SJMP XS0
X2: SETB YM0
CLR YM1
CLR YM2
NOP
NOP
JB KEY6,X3
MOV KEY,#2
SJMP XS0
X3: CLR YM0
SETB YM1
CLR YM2
NOP
NOP
JB KEY6,X4
MOV KEY,#3
SJMP XS0
X4: SETB YM0
SETB YM1
CLR YM2
NOP
NOP
JB KEY6,X5
MOV KEY,#4
SJMP XS0
X5: CLR YM0
CLR YM1
SETB YM2
NOP
NOP
JB KEY6,X6
MOV KEY,#5
SJMP XS0
X6: SETB YM0
CLR YM1
SETB YM2
NOP
NOP
JB KEY6,XS0
MOV KEY,#6
;
XS0: JB TXS,RTT00
SETB YM0
SETB YM1
SETB YM2
MOV A,LEDNO
CJNE A,#0,NTLED1
MOV P0,LED0
CLR YM0
CLR YM1
CLR YM2
SJMP RTT0
NTLED1: CJNE A,#1,NTLED2
MOV P0,LED1
SETB YM0
CLR YM1
CLR YM2
SJMP RTT0
NTLED2: CJNE A,#2,NTLED3
MOV P0,LED2
CLR YM0
SETB YM1
CLR YM2
SJMP RTT0
NTLED3: CJNE A,#3,NTLED4
MOV P0,LED3
SETB YM0
SETB YM1
CLR YM2
SJMP RTT0
NTLED4: CJNE A,#4,NTLED5
MOV P0,LIGHT0
CLR YM0
CLR YM1
SETB YM2
SJMP RTT0
NTLED5: CJNE A,#5,NTLED6
MOV P0,LIGHT1
SETB YM0
CLR YM1
SETB YM2
NTLED6: MOV LEDNO,#0FFH
;
RTT0: INC LEDNO
RTT00: POP PSW
POP ACC
RETI
;
;++++++++++++++++++++++++++++
;
DATA0: DB 088H,0BEH,0C4H,094H,0B2H,091H,081H,0BCH
; 0, 1, 2, 3, 4, 5, 6, 7 數碼管顯示編碼
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -