⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 八通道遥控接收机汇编程序.asm

📁 8路遥控控制板
💻 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 + -