📄 tt226.asm
字号:
NEXT79: CJNE R3,#36H,NEXT7A
MOV R1,#0D4H
MOV A,R4
MOV @R1,A
MOV R1,#0D5H
MOV A,R5
MOV @R1,A ;保存第3路第3次定时结束时间
NOP
NOP
LJMP DDG11 ;转去等待键释放
NEXT7A: CJNE R3,#46H,NEXT7B
MOV R1,#0D6H
MOV A,R4
MOV @R1,A
MOV R1,#0D7H
MOV A,R5
MOV @R1,A ;保存第4路第3次定时结束时间
NOP
NOP
LJMP DDG11 ;转去等待键释放
NEXT7B: CJNE R3,#56H,NEXT7C
MOV R1,#0D8H
MOV A,R4
MOV @R1,A
MOV R1,#0D9H
MOV A,R5
MOV @R1,A ;保存第5路第3次定时结束时间
NOP
NOP
LJMP DDG11 ;转去等待键释放
NEXT7C: CJNE R3,#66H,NEXT7D
MOV R1,#0DAH
MOV A,R4
MOV @R1,A
MOV R1,#0DBH
MOV A,R5
MOV @R1,A ;保存第6路第3次定时结束时间
NOP
NOP
LJMP DDG11 ;转去等待键释放
NEXT7D: CJNE R3,#76H,NEXT7E
MOV R1,#0DCH
MOV A,R4
MOV @R1,A
MOV R1,#0DDH
MOV A,R5
MOV @R1,A ;保存第7路第3次定时结束时间
NOP
NOP
LJMP DDG11 ;转去等待键释放
NEXT7E: CJNE R3,#86H,DDBG
MOV R1,#0DEH
MOV A,R4
MOV @R1,A
MOV R1,#0DFH
MOV A,R5
MOV @R1,A ;保存第8路第3次定时结束时间
NOP
NOP
LJMP DDG11
DDBG: NOP
NOP
LCALL XSHI
MOV P2,#00H
SETB P0.6
SETB P0.7
JNB P0.6,DDBG
JNB P0.7,DDBG
NOP
NOP
LJMP CXSM ;返回
DDG11: MOV 6CH,#10
YVDF: NOP
NOP
LCALL XSHI
NOP
NOP
DJNZ 6CH,YVDF
NOP
NOP
LJMP CXSM ;返回
XSHI: MOV 3EH,#3 ;存放扫描需要显示的位数
MOV A,#0EAH
CJNE A,14H,VYB
MOV R0,#1BH
NOP
NOP
AJMP LK
VYB: MOV A,#0DEH
CJNE A,6AH,MN ;按下是否是定时键
MOV R0,#0BH
NOP
NOP
AJMP LK
MN: MOV A,#0BFH
CJNE A,70H,MZ
MOV R0,#0BH ;是否进入单独启动/停止定时
NOP
NOP
AJMP LK
MZ: MOV A,#0A5H
CJNE A,67H,MBN ;判断是否显示日期和星期
MOV R0,#6DH
NOP
NOP
AJMP LK
MBN: MOV R0,#03H
LK: MOV A,#01H
MOV 3FH,A
NEXT: MOV A,3FH
MOV P2,A ;指向第一位数码管
MOV A,@R0
ANL A,#0FH
LCALL BNHJ ;显示个位秒/分/时/星期
LCALL DIR
MOV A,3FH
RL A
MOV 3FH,A
MOV P2,A ;指向第二位数码管
MOV A,@R0
SWAP A
ANL A,#0FH
LCALL BNHJ ;显示十位秒/分/时
INC R0
MOV A,3FH
RL A
MOV 3FH,A
LCALL DIR
DJNZ 3EH,NEXT
NOP
NOP
RET
BNHJ: CJNE A,#00H,BN1
CLR P0.3
CLR P0.2
CLR P0.1
CLR P0.0
NOP
NOP
RET
BN1: CJNE A,#01H,BN2
CLR P0.3
CLR P0.2
CLR P0.1
SETB P0.0
NOP
NOP
RET
BN2: CJNE A,#02H,BN3
CLR P0.3
CLR P0.2
SETB P0.1
CLR P0.0
NOP
NOP
RET
BN3: CJNE A,#03H,BN4
CLR P0.3
CLR P0.2
SETB P0.1
SETB P0.0
NOP
NOP
RET
BN4: CJNE A,#04H,BN5
CLR P0.3
SETB P0.2
CLR P0.1
CLR P0.0
NOP
NOP
RET
BN5: CJNE A,#05H,BN6
CLR P0.3
SETB P0.2
CLR P0.1
SETB P0.0
NOP
NOP
RET
BN6: CJNE A,#06H,BN7
CLR P0.3
SETB P0.2
SETB P0.1
CLR P0.0
NOP
NOP
RET
BN7: CJNE A,#07H,BN8
CLR P0.3
SETB P0.2
SETB P0.1
SETB P0.0
NOP
NOP
RET
BN8: CJNE A,#08H,BN9
SETB P0.3
CLR P0.2
CLR P0.1
CLR P0.0
NOP
NOP
RET
BN9: CJNE A,#09H,BN10
SETB P0.3
CLR P0.2
CLR P0.1
SETB P0.0
NOP
NOP
RET
BN10: SETB P0.3
SETB P0.2
SETB P0.1
SETB P0.0
NOP
NOP
RET
DHCX: CLR RS0 ;电话遥控程序
SETB RS1 ;切换到第3组工作寄存器组
MOV 61H,#15
SETB P0.4
NOP
NOP
LCALL DIR
CLR P3.7 ;免提电路工作(按下电话机的免提键)
NOP
NOP
LCALL DIS
CLR P0.4
NOP
NOP
LCALL DIS
SETB P0.4
NOP
NOP
LCALL DIS
CLR P0.4
NOP
NOP
LCALL DIS ;向外线送出“嘟、嘟、”信号两次表示控制接入,可输入密码
SETB P0.4
NOP
NOP
LCALL DIR
MOV 73H,#0BBH
XHSR: MOV A,#0AFH
CJNE A,72H,HOP
NOP
NOP
LJMP BYE
HOP: JB P3.3,FOF
LCALL DIR
NOP
NOP
LJMP XHSR
FOF: LCALL DIR
JB P3.3,GOG
LCALL DIR
NOP
NOP
LJMP XHSR
GOG: JNB P3.3,KOK
LCALL DIR
NOP
NOP
LJMP GOG
KOK: MOV 61H,#15
LCALL DOR ;调用求键值子程序
NOP
NOP
MOV 36H,A ;输入的键值暂存36H单元
CJNE A,#0BH,K1 ;输入的是否是"*"键,不是则转K1
MOV A,#0CCH
CJNE A,65H,YXF ;检查是否通过密码
MOV R1,#90H
MOV A,@R1
CJNE A,#99H,XGED
NOP
NOP
LJMP FYDG ;进入单独停止某一路定时
XGED: MOV A,69H
CJNE A,#01H,TT
SETB P1.0 ;关闭第一路设备电源
NOP
NOP
LJMP OK1
YXF: INC 27H
MOV A,27H
CJNE A,#01H,YXF1
MOV 1AH,#00H
MOV 10H,#20H
MOV 20H,#0FFH
MOV 21H,#0FFH
MOV 24H,#0FFH
MOV 25H,#0FFH
LJMP XHSR
YXF1: NOP
NOP
LJMP BYE
K1: NOP
NOP
LJMP K2
TT: CJNE A,#02H,TT1
SETB P1.1 ;关闭第二路设备电源
LJMP OK1
TT1: CJNE A,#03H,TT2
SETB P1.2 ;关闭第三路设备电源
LJMP OK1
TT2: CJNE A,#04H,TT3
SETB P1.3 ;关闭第四路设备电源
LJMP OK1
TT3: CJNE A,#05H,TT4
SETB P1.4 ;关闭第五路设备电源
LJMP OK1
TT4: CJNE A,#06H,TT5
SETB P1.5 ;关闭第六路设备电源
LJMP OK1
TT5: CJNE A,#07H,TT6
SETB P1.6 ;关闭第七路设备电源
LJMP OK1
TT6: CJNE A,#08H,TT7
SETB P1.7 ;关闭第八路设备电源
LJMP OK1
TT7: CJNE A,#09H,YPX
MOV 37H,#00H
MOV 1EH,#0EEH ;单启动电话遥控的标志
MOV 0FH,#02H
MOV 75H,#33H
LJMP OK1
YPX: CJNE A,#00H,YRU
MOV 76H,#99H ;停止遥控密码检测
OK1: CLR P0.4
NOP
NOP
LCALL DIS
NOP
NOP
LCALL DIS
SETB P0.4 ;向外线送出一次长2.5Hz“嘟”信号表示系统已经操作
MOV 69H,#0FFH
MOV 27H,#00H
NOP
NOP
LJMP XHSR ;返回待命
YRU: INC 27H
MOV A,27H
CJNE A,#02H,YXD
MOV 27H,#00H
MOV 69H,#0FFH ;连续两次按下“*”键则电话挂机
LJMP BYE
YXD: NOP
NOP
LJMP OK4
FYDG: MOV A,69H
CJNE A,#01H,WWB
MOV R1,#91H
MOV @R1,#55H ;停止第1路定时
MOV R1,#80H
MOV @R1,#00H
MOV R1,#81H
MOV @R1,#00H
LJMP OK6
WWB: CJNE A,#02H,WWB1
MOV R1,#92H
MOV @R1,#55H ;停止第2路定时
MOV R1,#82H
MOV @R1,#00H
MOV R1,#83H
MOV @R1,#00H
LJMP OK6
WWB1: CJNE A,#03H,WWB2
MOV R1,#93H
MOV @R1,#55H ;停止第3路定时
MOV R1,#84H
MOV @R1,#00H
MOV R1,#85H
MOV @R1,#00H
LJMP OK6
WWB2: CJNE A,#04H,WWB3
MOV R1,#94H
MOV @R1,#55H ;停止第4路定时
MOV R1,#86H
MOV @R1,#00H
MOV R1,#87H
MOV @R1,#00H
LJMP OK6
WWB3: CJNE A,#05H,WWB4
MOV R1,#95H
MOV @R1,#55H ;停止第5路定时
MOV R1,#88H
MOV @R1,#00H
MOV R1,#89H
MOV @R1,#00H
LJMP OK6
WWB4: CJNE A,#06H,WWB5
MOV R1,#96H
MOV @R1,#55H ;停止第6路定时
MOV R1,#8AH
MOV @R1,#00H
MOV R1,#8BH
MOV @R1,#00H
LJMP OK6
WWB5: CJNE A,#07H,WWB6
MOV R1,#97H
MOV @R1,#55H ;停止第7路定时
MOV R1,#8CH
MOV @R1,#00H
MOV R1,#8DH
MOV @R1,#00H
LJMP OK6
WWB6: CJNE A,#08H,WWB7
MOV R1,#98H
MOV @R1,#55H ;停止第8路定时
MOV R1,#8EH
MOV @R1,#00H
MOV R1,#8FH
MOV @R1,#00H
LJMP OK6
WWB7: CJNE A,#77H,WWB8
MOV R1,#9AH
MOV A,@R1
INC A
MOV @R1,A
CJNE A,#01H,WWB8
MOV R1,#90H
MOV @R1,#0FFH
MOV R1,#9AH
MOV @R1,#00H
MOV 69H,#0FFH
MOV 27H,#00H
CLR P0.4
LCALL DIS
SETB P0.4
LCALL DIS ;返回启动/停止设备操作
NOP
NOP
LJMP XSKH
WWB8: MOV 69H,#77H
NOP
NOP
LJMP XHSR
OK6: MOV 69H,#0FFH
LJMP OK4
BYE: SETB P3.7
LCALL DIR
MOV 1AH,#00H
MOV 65H,#00H
MOV 66H,#03H
MOV 69H,#0FFH
MOV 72H,#00H
MOV 73H,#00H
MOV 27H,#00H
MOV A,#99H
CJNE A,76H,JFUY
SETB P0.4
AJMP HPLK
JFUY: CLR P0.4
HPLK: CLR RS0
CLR
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -