📄 ada682.asm
字号:
JBC ZTBZ1,5
JMP GZM2
JBC ZTBZ1,6
JMP GZM2
JBC ZTBZ1,4
JMP GZM2
JBC ZTBZ1,6
JMP GZM2
JBC ZTBZ1,7
JMP GZM2
JBC ZTBZ1,7
JMP GZM2
JBS PORT7,0
CALL SET_2 ;调用负离子发生器子程序
GZM2:WDTC
MOV A,@0X09
IOW IOC50
MOV A,@0X0B
IOW IOC60
MOV A,@0X00
IOW IOC70
NOP
BS PORT5,7
BS PORT7,0
BC PORT5,2
BC PORT5,1
BC PORT5,6
JBC PORT6,0 ;检测定时键S3是否有按下?
BC ZTBZ1,4
JBC ZTBZ1,5
JMP GZM3
JBC ZTBZ1,6
JMP GZM3
JBC ZTBZ1,4
JMP GZM3
JBC ZTBZ2,6
JMP GZM3
JBC ZTBZ1,7
JMP GZM3
JBC ZTBZ1,7
JMP GZM3
JBS PORT6,0
CALL SET_3 ;定时设置
GZM3:MOV A,@0XC1
IOW IOC50
MOV A,@0X0A
IOW IOC60
MOV A,@0X00
IOW IOC70
NOP
BS PORT7,0
BS PORT6,0
BC PORT5,2
BC PORT5,1
BC PORT5,3
NOP
JBC PORT5,7 ;检测静音键S4是否按下?
BC ZTBZ2,6
JBC ZTBZ1,5
JMP GZM4
JBC ZTBZ1,6
JMP GZM4
JBC ZTBZ1,4
JMP GZM4
JBC ZTBZ2,6
JMP GZM4
JBC ZTBZ1,7
JMP GZM4
JBC ZTBZ1,7
JMP GZM4
JBS PORT5,7 ;检测静音键S4是否释放?
CALL SET_4
GZM4:MOV A,@0X41
IOW IOC50
MOV A,@0X0A
IOW IOC60
MOV A,@0X01
IOW IOC70
NOP
BS PORT5,7
BS PORT6,0
BC PORT5,2
BC PORT5,1
BC PORT5,3
NOP
JBC PORT7,0 ;检测SPEED键S5是否按下?
BC ZTBZ1,7
JBC ZTBZ1,5
JMP GZM5
JBC ZTBZ1,6
JMP GZM5
JBC ZTBZ1,4
JMP GZM5
JBC ZTBZ1,6
JMP GZM5
JBC ZTBZ1,7
JMP GZM5
JBC ZTBZ1,7
JMP GZM5
JBS PORT7,0
CALL SET_5
GZM5:MOV A,@0X41
IOW IOC50
MOV A,@0X0B
IOW IOC60
MOV A,@0X00
IOW IOC70
NOP
BS PORT5,7
BS PORT7,0
BC PORT5,2
BC PORT5,1
BC PORT5,3
NOP
JBC PORT6,0 ;检测模式键MODE是否有按下?
BC ZTBZ2,7
JBC ZTBZ1,5
JMP GZM6
JBC ZTBZ1,6
JMP GZM6
JBC ZTBZ1,4
JMP GZM6
JBC ZTBZ2,6
JMP GZM6
JBC ZTBZ1,7
JMP GZM6
JBC ZTBZ2,7
JMP GZM6
JBS PORT6,0 ;检测模式键MODE是否释放?
CALL SET_6
GZM6:RET
;***********************************************************
; 粉尘传感器检测
;***********************************************************
FCCGQ:MOV A,CNT2
MOV CNT3,A
MOV A,@0X80
SUB A,CNT3
JBS STATUS,2
JMP FCCG1
MOV A,@0X04
JMP FCCG4
FCCG1:MOV A,@0X40
SUB A,CNT3
JBS STATUS,2
JMP FCCG2
MOV A,@0X03
JMP FCCG4
FCCG2:MOV A,@0X26
SUB A,CNT3
JBS STATUS,2
JMP FCCG3
MOV A,@0X02
JMP FCCG4
FCCG3:MOV A,@0X01
FCCG4:MOV CNT4,A
CLR CNT1
CLR CNT2
RET
;***********************************************************
; 功能模块控制子程序
;***********************************************************
SET_1:BS ZTBZ1,5 ;置按键S1
CALL TIME ;计数器各变量清0
BS ZTBZ1,2 ;置蜂鸣器响标志
JBC ZTBZ1,0 ;判断开关状态是ON&OFF?
JMP SPE1 ;开关为ON,则停止工作
;*****************净化器开机********************************
JBC ZTBZ1,1 ;开关为OFF,则开启工作
BS PORT6,5
JBS ZTBZ1,1
BC PORT6,5
CALL ZS_M
MOV A,@0X03
MOV FSCS,A
BS ZTBZ1,0
BC ZTBZ2,1
BS ZTBZ2,5 ;开机2S标志位
CLR DSCS
RET
;*****************净化器关机********************************
SPE1:BC PORT6,5 ;电机停止工作
BC PORT5,5
BC PORT6,2
BC PORT6,4
CLR DSCS ;清定时变量寄存器
CLR FSCS
CLR JZDY_H
CLR JZDY_L
BC ZTBZ1,1 ;置负离子为关状态
BC ZTBZ2,1 ;置净化器为MANUAL模式
BC ZTBZ2,3
BC ZTBZ1,0 ;净化器开关为关
RET
SET_2:BS ZTBZ1,6
BS ZTBZ1,2 ;置蜂鸣器响标志
JBS ZTBZ1,1 ;负离子发生器控制程序
JMP FLZ_1
BC PORT6,5
BC ZTBZ1,1
RET
FLZ_1:BS PORT6,5
BS ZTBZ1,1
RET
SET_3:BS ZTBZ1,4
CALL TIME ;清定时计数各变量寄存器
BS ZTBZ1,2 ;置蜂鸣器响标志
MOV A,DSCS
XOR A,@0X0 ;定时2小时
JBS STATUS,2
JMP SET1
MOV A,@0X02
MOV DSCS,A
JMP SET4
SET1:MOV A,DSCS ;定时4小时
XOR A,@0X02
JBS STATUS,2
JMP SET2
MOV A,@0X04
MOV DSCS,A
JMP SET4
SET2:MOV A,DSCS ;定时8小时
XOR A,@0X04
JBS STATUS,2
JMP SET3
MOV A,@0X08
MOV DSCS,A
JMP SET4
SET3:MOV A,DSCS ;不定时
XOR A,@0X08
JBS STATUS,2
JMP SET4
MOV A,@0X0
MOV DSCS,A
SET4:RET
SET_4:BS ZTBZ2,6
JBC ZTBZ2,1 ;判断净化器工作模式?
RET
BS ZTBZ1,2 ;置蜂鸣器响标志
MOV A,FSCS ;若是静音档,则跳到低档
XOR A,@0X01
JBS STATUS,2
JMP ZS_1
CALL ZS_L
MOV A,@0X02
MOV FSCS,A
RET
ZS_1:CALL ZS_J ;若是其他档,则跳到静音档
MOV A,@0X01
MOV FSCS,A
RET
SET_5:BS ZTBZ1,7
JBC ZTBZ2,1 ;判断净化器工作模式?
RET
BS ZTBZ1,2 ;置蜂鸣器响标志
MOV A,FSCS ;静音档跳到低档
XOR A,@0X01
JBS STATUS,2
JMP ZS_2
CALL ZS_L
MOV A,@0X02
MOV FSCS,A
JMP ZS_5
ZS_2:MOV A,FSCS ;中档
XOR A,@0X02
JBS STATUS,2
JMP ZS_3
CALL ZS_M
MOV A,@0X03
MOV FSCS,A
JMP ZS_5
ZS_3:MOV A,FSCS ;高档
XOR A,@0X03
JBS STATUS,2
JMP ZS_4
CALL ZS_H
MOV A,@0X04
MOV FSCS,A
JMP ZS_5
ZS_4:MOV A,FSCS ;从高档跳到低档
XOR A,@0X04
JBS STATUS,2
JMP ZS_5
CALL ZS_L
MOV A,@0X02
MOV FSCS,A
ZS_5:RET
SET_6:BS ZTBZ2,7
BS ZTBZ1,2
JBS ZTBZ2,1 ;判断净化器工作模式?
JMP ZS_6
BC ZTBZ2,1
BC ZTBZ2,3
BS PORT6,6 ;关粉尘器开关
MOV A,@0X09
IOW IOC90
JMP ZS_7
ZS_6:BS ZTBZ2,1
BS ZTBZ2,3
CALL ZS_L
MOV A,@0X02
MOV FSCS,A
CLR KJTM
CLR JZDY_H
CLR JZDY_L
CLR AUTO_30S
BS ZTBZ2,0
BC PORT6,6 ;开粉尘器开关
MOV A,@0X19
IOW IOC90
ZS_7:RET
;***********************************************************
; 定时变量初始化
;***********************************************************
TIME:CLR TIME1
CLR TIME2
CLR TIME3
CLR TIME4
RET
;***********************************************************
; 电机风速子程序
;***********************************************************
ZS_J:BC PORT5,5 ;静音档
BS PORT6,2
BC PORT6,4
RET
ZS_L:BC PORT5,5 ;低档
BC PORT6,2
BS PORT6,4
RET
ZS_M:BC PORT5,5 ;中档
BC PORT6,2
BS PORT6,4
RET
ZS_H:BS PORT5,5 ;高档
BC PORT6,2
BC PORT6,4
RET
;***********************************************************
; 中断服务程序
;***********************************************************
ZDFWCX:MOV STORE_A,A ;保护现场
SWAP STORE_A
SWAPA STATUS
MOV STORE_STATUS,A
DISI ;关中断
JBS IMR,0 ;判断是否TCC溢出中断?
JMP ZD0 ;不是,转ZD0
BC IMR,0 ;是,TCC中断标志位清0
INC TIME1 ;12.5MS计数寄存器加1
MOV A,TIME1
XOR A,@0XA0
JBS STATUS,2 ;是否1S到了?
JMP ZDFW1
CLR TIME1 ;清10MS计数寄存器
INC TIME2 ;秒加1
JBC ZTBZ2,1
JMP ZDFW
JBS ZTBZ2,0 ;判断是否有第一次测量标志
INC AUTO_30S
ZDFW:MOV A,TIME2
XOR A,@0X3C ;是否1M到了?
JBS STATUS,2
JMP ZDFW1
CLR TIME2 ;清秒计数寄存器
INC TIME3 ;分钟加1
INC KJTM
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -