?? gl.asm
字號(hào):
DB 080H,090H,0A0H,083H,0C9H,086H,0C1H,0E1H
; 8, 9, A, b, C, d, E, F
DB 0A2H,0CBH,0E0H,0F7H,0C2H,092H,0FFH,0FFH
; H, L, P, -, K, Y, 空
; 10, 11, 12, 13, 14, 15, 16
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
;----------------------------
;
RTJWD: RET
JWD: MOV A,JCS
XRL A,TTIMER1
JZ RTJWD
MOV JCS,TTIMER1
;
MOV R2,WDTEMP0
MOV R3,WDTEMP1
;
MOV A,WDTEMP1
JNB ACC.7,NMTEMP1
SETB TTB
SETB STB
SETB CTB
SJMP RTJWD
NMTEMP1:MOV B,#91H
LCALL RDBA
XCH A,B
MOV A,R2
CLR C
SUBB A,B
MOV B,#90H
LCALL RDBA
XCH A,B
MOV A,R3
SUBB A,B
JC NTKD01
CLR TTB
SJMP NTKD00
NTKD01: SETB TTB
NTKD00: MOV R2,WDTEMP0
MOV R3,WDTEMP1
JB STB,REFV0
MOV A,R2
ADD A,#1
DA A
MOV R2,A
MOV A,R3
ADDC A,#0
DA A
MOV R3,A
REFV0: MOV B,#93H
LCALL RDBA
XCH A,B
MOV A,R2
CLR C
SUBB A,B
MOV B,#92H
LCALL RDBA
XCH A,B
MOV A,R3
SUBB A,B
JC NTKD11
CLR STB
SJMP NTKD101
NTKD11: SETB STB
NTKD101:MOV R2,WDTEMP0
MOV R3,WDTEMP1
JB CTB,REFV1
MOV A,R2
ADD A,#1
DA A
MOV R2,A
MOV A,R3
ADDC A,#0
DA A
MOV R3,A
REFV1: MOV B,#95H
LCALL RDBA
XCH A,B
MOV A,R2
CLR C
SUBB A,B
MOV B,#94H
LCALL RDBA
XCH A,B
MOV A,R3
SUBB A,B
JC NTKD21
CLR CTB
LJMP RTJWD
NTKD21: SETB CTB
LJMP RTJWD
;----------------------------
;檢測(cè)故障,并給出故障代碼
CHECK: NOP
;1燃燒器故障
MOV C,XHRSQ
ANL C,DHRSQ
JC NTGZ1
JB RSQER,NTGZ1
LCALL DLY10MS
JB RSQER,NTGZ1
LCALL DLY10MS
JB RSQER,NTGZ1
SETB ERRO
MOV ERRONO,#1 ;燃燒器故障
LJMP RTCH
;
NTGZ1: JNB TQS,NTGZ2
LCALL DLY10MS
JNB TQS,NTGZ2
LCALL DLY10MS
JNB TQS,NTGZ2
SETB ERRO
MOV ERRONO,#2 ;缺水故障
LJMP RTCH
;
NTGZ2: JNB TDS,NTGZ3
JB TGS,NTGZ3
LCALL DLY10MS
JNB TDS,NTGZ3
JB TGS,NTGZ3
LCALL DLY10MS
JNB TDS,NTGZ3
JB TGS,NTGZ3
SETB ERRO
MOV ERRONO,#3 ;水位傳感器故障
LJMP RTCH
;
NTGZ3: JB RSHL,NTCH0
NOP ;熱水狀態(tài)
;
MOV A,WDTEMP1
JB ACC.7,NTGZ4
MOV A,#00H
CLR C
SUBB A,WDTEMP0
MOV A,#02H
SUBB A,WDTEMP1
JNC NTGZ5
SETB ERRO
MOV ERRONO,#4 ;溫度傳感器斷路
SJMP RTCH
NTGZ4: MOV A,#13H
CLR C
SUBB A,WDTEMP0
MOV A,#80H
SUBB A,WDTEMP1
JNC RTCH
SETB ERRO
MOV ERRONO,#5 ;溫度傳感器短路
SJMP RTCH
NTGZ5: MOV A,#05H
CLR C
SUBB A,WDTEMP0
MOV A,#01H
SUBB A,WDTEMP1
JNC NTGZ6
SETB ERRO
MOV ERRONO,#6 ;溫度超過105℃
SJMP RTCH
NTGZ6: MOV B,#91H
LCALL RDBA
ADD A,#15H
DA A
MOV F0,C
CLR C
SUBB A,WDTEMP0
MOV B,#90H
LCALL RDBA
JNB F0,JNJ
PUSH PSW
ADD A,#1
POP PSW
JNJ: SUBB A,WDTEMP1
JNC NTCH0
SETB ERRO
MOV ERRONO,#7 ;溫度超過停爐溫度15℃
SJMP RTCH
NTCH0: JB ZHQL,RTCH
NOP ;蒸汽狀態(tài)
JNB TCY,RTCH
LCALL DLY10MS
JNB TCY,RTCH
LCALL DLY10MS
JNB TCY,RTCH
SETB ERRO
MOV ERRONO,#8 ;壓力超過范圍
SJMP RTCH
RTCH:
RET
;----------------------------
;顯示錯(cuò)誤指示
DISPERR:JNB SETFG,RTCH
MOV A,ERRONO
CJNE A,#1,NTERR0
MOV LED3,#0C1H ;E-02
MOV LED2,#0F7H
MOV LED1,#088H
MOV LED0,#0C4H
SJMP RTDSPER
NTERR0: CJNE A,#2,NTERR1
MOV LED3,#0C1H ;E-03
MOV LED2,#0F7H
MOV LED1,#088H
MOV LED0,#094H
SJMP RTDSPER
NTERR1: CJNE A,#3,NTERR2
MOV LED3,#0C1H ;E-01
MOV LED2,#0F7H
MOV LED1,#088H
MOV LED0,#0BEH
SJMP RTDSPER
NTERR2: CJNE A,#4,NTERR3
MOV LED3,#0C1H ;E-05
MOV LED2,#0F7H
MOV LED1,#088H
MOV LED0,#092H
SJMP RTDSPER
NTERR3: CJNE A,#5,NTERR4
MOV LED3,#0C1H ;E-05
MOV LED2,#0F7H
MOV LED1,#088H
MOV LED0,#091H
SJMP RTDSPER
NTERR4: CJNE A,#6,NTERR5
MOV LED3,#0C1H ;E-04
MOV LED2,#0F7H
MOV LED1,#088H
MOV LED0,#0B2H
SJMP RTDSPER
NTERR5: CJNE A,#7,NTERR6
MOV LED3,#0C1H ;E-04
MOV LED2,#0F7H
MOV LED1,#088H
MOV LED0,#0B2H
SJMP RTDSPER
NTERR6: CJNE A,#8,NTERR7
MOV LED3,#0C1H ;E-04
MOV LED2,#0F7H
MOV LED1,#088H
MOV LED0,#0B2H
NTERR7:
RTDSPER:RET
;----------------------------
;現(xiàn)在時(shí)間和啟動(dòng)時(shí)間,當(dāng)設(shè)置啟動(dòng)時(shí)間大于停止時(shí)間時(shí)不運(yùn)行
STEN: MOV A,TTIMER1
XRL A,ZTIME
JZ RTSTEN
MOV ZTIME,TTIMER1 ;每變化一秒檢查一次
MOV B,#98H
LCALL RDBA
MOV R2,A
MOV B,#99H
LCALL RDBA
MOV R3,A ;讀出啟動(dòng)時(shí)間(R2,R3)
MOV B,#9AH
LCALL RDBA
MOV R4,A
MOV B,#9BH
LCALL RDBA
MOV R5,A ;讀出停止時(shí)間(R4.R5)
;
MOV A,R2
XRL A,R4
JNZ NTSTEN0
MOV A,R3
XRL A,R5
JNZ NTSTEN0 ;判斷啟動(dòng)時(shí)間和停止時(shí)間是否相等
SETB ERUN ;置允許運(yùn)行標(biāo)志
SJMP RTSTEN
NTSTEN0:MOV A,TTIMER2
CLR C
SUBB A,R3
MOV A,TTIMER3
SUBB A,R2
JC NTSTEN1 ;判斷現(xiàn)在時(shí)間是否大于啟動(dòng)時(shí)間
MOV A,TTIMER2
CLR C
SUBB A,R5
MOV A,TTIMER3
SUBB A,R4
JNC NTSTEN1 ;判斷現(xiàn)在時(shí)間是否小于停止時(shí)間
SETB ERUN
JNB SETFG,RTSTEN
CPL QTIME
SETB TTIME
SJMP RTSTEN
NTSTEN1:SETB XH ;小火
SETB DH ;大火
SETB JSH ;進(jìn)水
SETB CHSH ;出水
CLR ERUN ;清除允許運(yùn)行標(biāo)志
JNB SETFG,RTSTEN
SETB QTIME
CPL TTIME
RTSTEN: RET
;----------------------------
;
CONTROL:PUSH PSW
PUSH ACC
MOV C,XH
MOV XHRSQ,C
MOV C,DH
MOV DHRSQ,C ;大火小火合用繼電器
MOV C,JSH
MOV JSB,C
MOV C,CHSH
MOV CSB,C
JB TGS,NOMBE0 ;高水位電極,在手動(dòng),自動(dòng)加水出水時(shí)起作用
SETB JSH ;只要檢測(cè)到高水位就無條件關(guān)閉進(jìn)水泵
;
NOMBE0: JB TQS,KM ;只要檢測(cè)到缺水或低水位就無條件關(guān)閉出水泵自動(dòng)加水出水時(shí)起作用
JB TDS,KM
SJMP NOMBE
KM: SETB CHSH
;
NOMBE: JB RUNL,UUUT ;未運(yùn)行返回
LCALL CHECK
JNB ERRO,YTHD
SETB XH
SETB DH
SETB JSH
SETB CHSH ;在檢測(cè)有故障時(shí),馬上關(guān)閉四個(gè)繼電器
LCALL DISPERR
JB ERRS,NOMERR
CLR BELL
SETB ERRS
SJMP YTHD
NOMERR: MOV A,JCS3
XRL A,TTIMER1
JNZ UUUT
CPL BELL
SJMP YTHD
UUUT: LJMP RTCON
YTHD: MOV A,TTIMER1
ADD A,#4
CJNE A,#120,DKHLK
DKHLK: JC LSNN
SUBB A,#120
LSNN: MOV JCS3,A
JB ERRO,UUUT
LCALL STEN ;判斷是否在啟動(dòng)時(shí)間內(nèi)
JNB ERUN,UUUT ;在沒有故障時(shí),并且在運(yùn)行時(shí)間內(nèi)則向下執(zhí)行
;
JNB TDS,NCON0 ;低水位電極
CLR JSH ;進(jìn)水
;
NCON0: JB RSHL,NTCON2
JNB ZHQL,NTCON2
JB SETFG,RSHLJ
LCALL JWD
RSHLJ: MOV C,CTB ;熱水狀態(tài)下
;
JB TQS,KL ;只要檢測(cè)到缺水或低水位就無條件關(guān)閉出水泵
JB TDS,KL
MOV CHSH,C
SJMP KLL
KL: SETB CHSH
;
KLL: JB TTB,NTCON0
JB STB,NTCON0
SETB XH
SETB DH ;到達(dá)停爐溫度停止加熱
LJMP RTCON
NTCON0: JNB TTB,NTCON1
JNB STB,NTCON1
SETB XH ;未到達(dá)停爐溫度和使用溫度打開大火燃燒器
CLR DH
LJMP RTCON
NTCON1: JNB TTB,NTCON2
JB STB,NTCON2
JNB XH,NTCON2
MOV C,DH
MOV XH,C
SETB DH
LJMP RTCON
NTCON2: JNB RSHL,RTCON
JB ZHQL,RTCON
SETB DH
JNB SETFG,NTCON3
MOV A,LED0 ;在蒸汽狀態(tài)下
CJNE A,#0FDH,NTYL0
SETB XH ;高壓
SJMP RTCON
NTYL0: CJNE A,#0DFH,RTCON
CLR XH ;低壓
SJMP RTCON
;
NTCON3: MOV A,JCS
XRL A,TTIMER1
JZ RTCON
MOV JCS,TTIMER1
JB TGZ,NTCON4 ;在蒸汽狀態(tài)下時(shí),有設(shè)置按鍵查詢時(shí),在此處檢測(cè)高低壓
LCALL DLY10MS
JB TGZ,NTCON4
LCALL DLY10MS
JB TGZ,NTCON4
SETB XH ;高壓
SJMP RTCON
NTCON4: JB TDZ,RTCON
LCALL DLY10MS
JB TDZ,RTCON
LCALL DLY10MS
JB TDZ,RTCON
CLR XH ;低壓
;
RTCON: POP ACC
POP PSW
RET
;----------------------------
;在待機(jī)狀態(tài)下,操作進(jìn)水泵和出水泵
JCHSH: PUSH ACC
JNB SETL,LPPL
JNB RUNL,LPPL
JNB TQJS,NTJCH0
MOV A,TTIMER1 ;在待機(jī)狀態(tài)下執(zhí)行
ADD A,#5
CJNE A,#120,DKH0
DKH0: JC LS0
SUBB A,#120
LS0: MOV JCS1,A
CLR TQJS
CLR KFLG
NTJCH0: JB KFLG,NTJCHG0
MOV A,JCS1
XRL A,TTIMER1
JNZ LPPL
POP ACC
PUSH ACC
CJNE A,#5,NNR0
CLR JSH
SETB CHSH
NNR0: CJNE A,#6,LPPL
SETB JSH
CLR CHSH
SJMP LPPL
NTJCHG0:SETB TQJS
SETB JSH
SETB CHSH
LPPL: POP ACC
RET
;----------------------------
;
DISPY: PUSH ACC
PUSH PSW
;
SETB TXS
JB TGZ,NTDY
MOV LED3,#0E0H ;高壓
MOV LED2,#0D7H
MOV LED1,#0FDH
MOV LED0,#0FDH
LJMP RTDSPY
NTDY: JB TDZ,NTZY
MOV LED3,#0E0H ;低壓
MOV LED2,#0D7H
MOV LED1,#0DFH
MOV LED0,#0DFH
LJMP RTDSPY
NTZY: MOV LED3,#0E0H ;中壓
MOV LED2,#0D7H
MOV LED1,#0F7H
MOV LED0,#0F7H
RTDSPY: CLR TXS
POP PSW
POP ACC
RET
;----------------------------
;
K5W: SETB ADSU
MOV A,JCS0
JZ K5W0
MOV A,JCS0
CJNE A,#10,RTK5W
DEC JCS0
K5W0: MOV A,TM0
ADD A,#1
DA A
MOV TM0,A
MOV A,TM1
JNB ACC.0,XYYB1
MOV TM0,#0
XYYB1: JNC XYYB0
MOV TM1,#1
MOV TM0,#0
SJMP JXJ3
XYYB0: MOV TM1,#0
JXJ3: MOV R3,TM1
MOV R2,TM0
LCALL DISPWD
RTK5W: LCALL DLY100
INC JCS0
RET
;----------------------------
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -