📄 ysjkz.asm
字号:
JMP KEYEND2
MOV A,ADRH
MOV ADDATA1,A
MOV A,ADRL
MOV ADDATA2,A
MOV A,85H ;?1?:
MOV TEMPL,A
MOV A,0A1H
MOV TEMPH,A
MOV A,ADDATA2
SUB A,TEMPL
MOV A,ADDATA1
SBC A,TEMPH
SNZ C
JMP KEYEND1
JMP KEYEND
KEYEND3:
SNZ PA.6
JMP KEY3
SNZ PA.7
JMP KEY4
KEYEND:
RET
KEYIN ENDP
;**************************************************
;制冷处理
COOL PROC
MOV A,00000001B ;设置系统8分频为采样时钟
MOV ACSR,A
MOV A,00011001B ;通道1采样
MOV ADCR,A
MOV A,02H
MOV COUNT0,A
COOL1:
CLR ADCR.7 ;
SET ADCR.7 ;AD转换复位
CLR ADCR.7 ;开始AD转换
COOL2:
CALL LEDSHOW
SZ ADCR.6
JMP COOL2
MOV A,ADRH
MOV ADDATA1,A
CLR ADDATA2
;判断是否温度传感器短路或开路
MOV A,20
SBC A,ADDATA1
SNZ C
JMP $+6 ;大于20
SET QCOL ;小于20启动继电器
;CLR GG
JMP COOLEND3
NOP
NOP
NOP
MOV A,0F5H
SBC A,ADDATA1
SZ C
JMP $+5 ;小于F5温度检测?
SET QCOL ;大于F5关闭继电器
;CLR GG
JMP COOLEND3
NOP
NOP
CLR QCOL
SNZ COL ;判断有无制冷要求
JMP COOLEND3 ;关闭制冷继电器
;判断有无制冷条件
MOV A,0DBH
SBC A,ADDATA1
SZ C
JMP COOLEND0 ;大于15关闭继电器
MOV A,0E5H ;小于15E?
SBC A,ADDATA1
SNZ C
JMP COOLEND1 ;大于6启动继电器
JMP COOLEND0 ;小于6关闭继电器
COOLEND0: ;进行制冷启动
;SZ QSJ
;JMP COOLEND3;缺水
SET Q5
CLR PC1
SET PD0
JMP COOLEND2
COOLEND1: ;关闭制冷继电器
CLR Q5
CLR PD0 ;启动保温
SET PC1
JMP COOLEND2
COOLEND3: ;关闭制冷继电器
CLR Q5
SET PC1
SET PD0
JMP COOLEND2
COOLEND2:
RET
COOL ENDP
;**************************************************
;温度查询1
READTMP PROC
MOV A,00000001B ;设置系统8分频为采样时钟
MOV ACSR,A
MOV A,00011000B ;通道0采样
MOV ADCR,A
MOV A,02H
MOV COUNT0,A
READTMP1:
CLR ADCR.7 ;
SET ADCR.7 ;AD转换复位
CLR ADCR.7 ;开始AD转换
READTMP2:
CALL LEDSHOW
SZ ADCR.6
JMP READTMP2
MOV A,ADRH
MOV ADDATA1,A
CLR ADDATA2
SDZ COUNT0
;判断是否温度传感器短路或开路
MOV A,20
SBC A,ADDATA1
SNZ C
JMP $+6 ;大于20
SET QHOT ;小于20启动继电器
;CLR GG
CLR TEMPT
JMP TEMPCHEND1
NOP
NOP
NOP
MOV A,0F5H
SBC A,ADDATA1
SZ C
JMP TEMPTEST ;小于F5温度检测?
SET QHOT ;大于F5关闭继电器
;CLR GG
CLR TEMPT
RET
TEMPTEST:
CLR QHOT
CLR TEMPT
MOV A,99
MOV COUNT0,A
MOV A,10H ;????
MOV TBLP,A
TEMPCH1:
CLR C
TABRDL TEMPL
MOV A,ADDATA1
SBC A,TEMPL
SZ C
JMP TEMPCHEND
INC TEMPT
INC TBLP
SDZ COUNT0
JMP TEMPCH1
JMP TEMPCHEND
TEMPCHEND:
SNZ HOT ;判断有无加热要求
JMP TEMPCHEND1 ;关闭加热继电器
;判断有无加热条件
MOV A,80
SBC A,TEMPT
SNZ C
JMP $+4 ;大于80关闭继电器
JMP TEMPCHEND0 ;小于80启动继电器
NOP
NOP
MOV A,90
SBC A,TEMPT
SNZ C
JMP TEMPCHEND1 ;大于90关闭继电器
JMP TEMPCHEND0 ;小于90启动继电器
TEMPCHEND0: ;进行加热启动
;SZ QSJ
;JMP TEMPCHEND1;缺水
SET Q4
JMP TEMPCHEND3
TEMPCHEND1: ;关闭加热继电器
CLR Q4
JMP TEMPCHEND3
TEMPCHEND3:
MOV A,TEMPT
MOV COUNT2,A
CLR COUNT1
MOV A,8H
MOV COUNT0,A
ZJCL11:
CLR C
RLC COUNT2
MOV A,COUNT1
ADC A,COUNT1
DAA COUNT1
SDZ COUNT0
JMP ZJCL11
SZ QCOL;????
RET;???????
MOV A,COUNT1
MOV LCD3,A
AND A,00001111B
MOV LCD2,A
CLR TBLP
MOV A,LCD2
MOV TBLP,A
TABRDL LCD2
SWAP LCD3
MOV A,LCD3
AND A,00001111B
MOV LCD3,A
MOV A,LCD3
MOV TBLP,A
TABRDL LCD3
RET
READTMP ENDP
;******************************************************
QST PROC ;缺水检查
SET DY
SNZ DY
JMP QST1
CLR GG
SET QSJ ;设定缺水警
CLR Q2 ;关闭所有继电器
CLR Q3
RET
QST1:
SNZ QSJ
RET
CLR GG
SET ZDCX ;启动自动冲洗
RET
QST ENDP
;******************************************************
SMT PROC ;满水检测
SET GY
SNZ GY
JMP DY1
JMP GY1
DY1: ;低压情况处理未满水
SZ TJI
JMP DY11 ;处于停机状态
SZ ZSM
JMP DY11 ;处于加水满状态
RET ;处于其他状态
DY11:
CLR GG
SET ZS ;从停机道造水
RET
GY1: ;高压情况处理(水满)
SNZ ZDCX ;上机满水状态
JMP GY01
CLR GG
CLR Q2 ;关闭继电器(造水冲洗)
CLR Q3
SET ZSM ;
MOV A,00H
MOV LCD1,A
GY01:
SZ ZS ;加水状态
JMP GY10
SZ ZSM ;满水等待状态
JMP GY11
CLR GG
SET TJI
CLR Q2
CLR Q3
RET ;其他状态
GY10: ;加水状态到水满状态
CLR GG
SET ZSM
CLR BYT ;延时
CLR ZST3 ;清一次造水时间
CLR ZST4
RET
GY11: ;加水满状态到停机状态
CLR LCD1
CLR ZST3 ;清一次造水时间
CLR ZST4
MOV A,BYT
XOR A,20 ;泵延时20秒
SNZ Z
RET
CLR BYT
CLR GG
SET TJI
RET
SMT ENDP
;************************************************
;蜂鳴器驱动
BEEP PROC
CALL LEDSHOW
CLR COUNT2
BEEP1:
SET BUZZ
MOV A,40
MOV COUNT1,A
SDZ COUNT1
JMP $-1
CLR PC0
MOV A,40
MOV COUNT1,A
SDZ COUNT1
JMP $-1
SDZ COUNT2
JMP BEEP1
RET
BEEP ENDP
;**************************************************
CXTP PROC ;冲洗时间判断
SZ ZDCX
JMP CXTP1
SZ QZCX
JMP CXTP2
RET
CXTP1:
CLR C
MOV A,CXT
SUB A,10 ;???????20
SNZ C
JMP CXK
CLR CXT ;满20秒,进入停机状态
CLR GG
SET TJI
JMP CXG
CXTP2:
MOV A,CXT
XOR A,60 ;?????60;强制冲洗60妙
SNZ Z
JMP CXK
CLR CXT ;满90秒,进入停机状态
CLR GG
SET TJI
JMP CXG
CXK:
SET Q2 ;打开冲洗继电器
SET Q3
RET
CXG:
CLR Q2
CLR Q3 ;关闭冲洗继电器
RET
CXTP ENDP
;************************************************************
;************************************************************
;led显示
LEDSHOW PROC
SET PA.4
SET PB.7
SET PA.5
MOV A,LCD1
CALL LEDS
CLR PA.5
CALL DELAY
SET PA.5
SET PB.7
SET PA.4
MOV A,LCD2
CALL LEDS
CLR PA.4
CALL DELAY
SET PA.4
SET PA.5
SET PB.7
MOV A,LCD3
CALL LEDS
CLR PB.7
CALL DELAY
SET PA.4
SET PA.5
;SET PB.7
RET
LEDSHOW ENDP
LEDS PROC
MOV COUNT0,A
MOV A,08H
MOV COUNT2,A
EE_SD1: RLC COUNT0
SZ C
SET SDA
SNZ C
CLR SDA
SET SCL
NOP
CLR SCL
SDZ COUNT2
JMP EE_SD1
RET
LEDS ENDP
DELAY PROC
MOV A,24H
MOV DCOUNT0,A
MOV A,24H
MOV DCOUNT1,A
DEL6MS0:
MOV DCOUNT1,A
DEL6MS1:
SDZ DCOUNT1
JMP DEL6MS1
SDZ DCOUNT0
JMP DEL6MS0
RET
DELAY ENDP
;**********************************************
XUH PROC
RL LCD4
SDZ LCD5
RET
MOV A,04H
MOV LCD5,A
SET LCD4
CLR LCD4.0
CLR LCD4.3
RET
XUH ENDP
;***********************************************
ORG 0700H
TABLE1: DC 00C0H,00F9H,00A4H,00B0H,0099H
DC 0092H,0082H,00F8H,0080H,0090H
ORG 0710H
TABLE2:
DC 00EBH,00EAH,00E9H,00E8H,00E7H
DC 00E6H,00E5H,00E4H,00E3H,00E2H
DC 00E1H,00E0H,00DFH,00DEH,00DDH
DC 00DCH,00DBH,00DAH,00D9H,00D7H
DC 00D6H,00D4H,00D2H,00D1H,00CFH
DC 00CEH,00CDH,00CBH,00C9H,00C7H
DC 00C5H,00C3H,00C2H,00C0H,00BFH
DC 00BEH,00BCH,00DAH,00B8H,00B6H
DC 00B4H,00B2H,00B0H,00AFH,00ADH
DC 00AAH,00A8H,00A6H,00A4H,00A2H
DC 009FH,009DH,009BH,009BH,0099H
DC 0097H,0095H,0093H,0091H,008FH
DC 008DH,008BH,0089H,0087H,0085H
DC 0083H,0080H,007EH,007DH,007BH
DC 0079H,0077H,0075H,0073H,0071H
DC 006EH,006CH,006AH,0069H,0067H
DC 0066H,0064H,0063H,0062H,0061H
DC 0061H,005FH,005DH,005BH,0059H
DC 0055H,0053H,0051H,004FH,004DH
DC 004BH,0049H,0047H,0046H,0045H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -