📄 八通道遥控接收机汇编程序.asm
字号:
;8路电源遥控控制板,可以控制家里面的电器。
;本程序通过测试,性能可靠,附有电路图。
;单片机用AT89C2051,3.579M晶振。
;遥控器用8键(315MHzPT2262编码),接收头带PT2272解码
OA EQU P3.5 ;接收头输出端A
OB EQU P3.4 ;接收头输出端B
OC EQU P3.3 ;接收头输出端C
OD EQU P3.2 ;接收头输出端D
OI EQU P3.1 ;接收头输出端Io
VC EQU P3.0 ;接收头电源端
BB EQU P3.7 ;蜂鸣器
J1 EQU P1.1 ;1#继电器
J2 EQU P1.0 ;2#继电器
J3 EQU P1.2 ;3#继电器
J4 EQU P1.3 ;4#继电器
J5 EQU P1.4 ;5#继电器
J6 EQU P1.5 ;6#继电器
J7 EQU P1.6 ;7#继电器
J8 EQU P1.7 ;8#继电器
ORG 0000H
AJMP KS1
ORG 000BH
LJMP ERR
ORG 0100H
KS1:MOV SP,#60H
MOV PSW,#00H
MOV SCON,#00H
MOV TMOD,#01H ;设置T0为16位定时器
SETB ET0 ;允许T0中断
SETB PT0 ;设置T0中断为高级中断
MOV TL0,#00H ;设定T0的定时初值,定时时间约为Xms
MOV TH0,#0B0H
SETB EA ;开中断
SETB TR0 ;启动T0
MOV P1,#0FFH
MOV P3,#0FFH
CLR BB ;蜂鸣器提示通电
ACALL YS1 ;延时
SETB BB
L1: SETB VC ;接收头解码A~D端清零
ACALL YS2 ;延时
CLR VC ;接通接收头电源
L2: ACALL YS2 ;延时
JNB OI,L2 ;检测Io端,输出高电平执行控制程序
ACALL YS2 ;延时
JNB OI,L2
MOV A,P3
ANL A,#3EH ;屏蔽P3.0、P3.6、P3.7
CJNE A,#22H,K1;按下A键J1变化输出
CPL J1 ;新增的修改部分
JB J1,E1 ;蜂鸣器双声提示断开
AJMP E2 ;蜂鸣器单声提示接通
K1: CJNE A,#12H,K2;按下B键J2变化输出
CPL J2
JB J2,E1 ;蜂鸣器双声提示断开
AJMP E2 ;蜂鸣器单声提示接通
K2: CJNE A,#0AH,K3;按下C键J3变化输出
CPL J3
JB J3,E1
AJMP E2
K3: CJNE A,#06H,K4;按下D键J4变化输出
CPL J4
JB J4,E1
AJMP E2
K4: CJNE A,#32H,K5;按下AB键J5变化输出
CPL J5
JB J5,E1
AJMP E2
K5: CJNE A,#2AH,K6;按下AC键J6变化输出
CPL J6
JB J6,E1
AJMP E2
K6: CJNE A,#26H,K7;按下AD键J7变化输出
CPL J7
JB J7,E1
AJMP E2
K7: CJNE A,#1AH,K8;按下BC键J8变化输出
CPL J8
JB J8,E1
AJMP E2
K8: CJNE A,#16H,L5;按下BD键执行全关闭动作
MOV P1,#0FFH
CLR BB ;蜂鸣器长响一声提示
ACALL YS1 ;延时
ACALL YS1
ACALL YS1
SETB BB
AJMP L1 ;返回
L5: JNB OI,L2 ;遥控按键松开则返回待命
LCALL DOG ;调用喂狗子程序
SJMP L5
E1: CLR BB ;继电器断开蜂鸣器提示子程序(双声)
ACALL YS3
SETB BB
ACALL YS3
CLR BB
ACALL YS3
SETB BB
AJMP L5
E2: CLR BB ;继电器接通蜂鸣器提示子程序(单声)
ACALL YS4
SETB BB
AJMP L5
YS1:MOV R2,#03H ;延时子程序
D1: MOV R3,#0B0H
D2: MOV R4,#0E0H
D3: DJNZ R4,D3
LCALL DOG ;调用喂狗子程序
DJNZ R3,D2
DJNZ R2,D1
RET
YS2:MOV R0,#08H ;清零延时
D4: MOV R1,#0F0H
D5: NOP
NOP
DJNZ R1,D5
LCALL DOG ;调用喂狗子程序
DJNZ R0,D4
RET
YS3:MOV R2,#01H ;短延时子程序
D6: MOV R3,#60H
D7: MOV R4,#0E0H
DJNZ R4,$
LCALL DOG ;调用喂狗子程序
DJNZ R3,D7
DJNZ R2,D6
RET
YS4:MOV R2,#01H ;长延时子程序
D8: MOV R3,#0B0H
D9: MOV R4,#0E0H
DJNZ R4,$
LCALL DOG ;调用喂狗子程序
DJNZ R3,D9
DJNZ R2,D8
RET
;喂狗子程序
DOG:MOV TL0,#00H
MOV TH0,#0B0H
SETB TR0
RET
ERR:POP ACC ;定时器中断
POP ACC ;看门狗软件复位程序
CLR A
PUSH ACC
PUSH ACC
RETI
ORG 0300H
NOP
NOP
NOP
LJMP KS1
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -