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

📄 15ludianqi.txt

📁 15路电器遥控器的设计,包括遥控发射和接收程序
💻 TXT
字号:
;********************************
;     发送控制器程序
;********************************
;
;
;
KEYX0 EQU P1.0
KEYX1 EQU P1.1
KEYX2 EQU P1.2
KEYX3 EQU P1.3
KEYY EQU P0
;*********************
;   主程序和中断程序入口
;*********************
ORG 0000G
AJMP START
ORG 0003H
RETI
ORG 000BH
RETI
ORG 0013H
RETI 
ORG 001BH
LJMP INTT1
ORG 0023H
RETI
ORG 002BH
RETI
;********************
;   初始化程序
;********************
CLEARMEMIO: CLR A
            DEC A
            MOV P0,A
            MOV P1,A
            MOV P2,A
            MOV P3,A
            CLR P3.5
CLEARMEN: MOV SP,#70H
          MOV IE,#00H
          MOV IP,#01H
          MOV TMOD,#22H
          MOV TH1,#0F3H
          MOV TL1,#0F3H
          SETB EA
          RET
;*****************
;   主程序
;*****************
START: LCALL CLEARMEMIO
       MAIN LCALL KEYWORK
       LJMP MAIN
       NOP
       NOP
       NOP
       LJMP START
;************************
;   T1中断服务程序
;************************
INTT1: CPL P3.5
       RETI
;************************
;   键盘工作子程序
;************************
KEYWORK: MOV KEYY,#0FFH
         CLR KEYX0
         CLR KEYX1
         CLR KEYX2
         CLR KEYX3
         MOV A,KEYY
         MOV B,A
         CJNE A,#0FFH,KEYHIT
KEYOUT: RET

KEYHIT: LCALL DL10MS
        MOV A,KEYY
        CJNE A,B,KEYOUT
        SETB KEYX1
        SETB KEYX2
        SETB KEYX3
        MOV A,KEYY
        CJNE A,#0FFH,KEYVAL0
        SETB KEYX0
        CLR KEYX1
        MOV A,KEYY
        CJNE A,#0FFH,KEYVAL1
        SETB KEYX1
        CLR KEYX2
        MOV A,KEYY
        CJNE A,#0FFH,KEYVAL2
        SETB KEYX2
        CLR KEYX3
        MOV A,KEYY
        CJNE A,#0FFH,KEYVAL3
        LJMP KEYOUT

KEYVAL0: MOV R2,#00H
         LAMP KEYVAL4

KEYVAL1: MOV R2,#08H
         LJMP KEYVAL4

KEYVAL2: MOV R2,#10H
         LJMP KEYVAL4

KEYVAL3: MOV R2,#18H
         LJMP KEYVAL4

KEYVAL4: MOV DPTR,#KEYVALTAB
         MOV B,A
         CLR A
         MOV R0,A

KEYVAL5: MOV A,R0
         SUBB A,#08H
         JNC KEYOUT
         MOV A,R0
         MOVC A,@A+DPTR
         INC R0
         CJNE A,B,KEYVAL5
         DEC R0
         MOV A,R0
         ADD A,R2
         MOV B,A
         RL A
         ADD A,B
         MOV DPTR,#KEYFUNTAB
         JMP @A+DPTR

KEYFUNTAB: LJMP KEYFUN00
           LJMP KEYFUN01
           LJMP KEYFUN02
           LJMP KEYFUN03
           LJMP KEYFUN04
           LJMP KEYFUN05
           LJMP KEYFUN06
           LJMP KEYFUN07
           LJMP KEYFUN08
           LJMP KEYFUN09
           LJMP KEYFUN10
           LJMP KEYFUN11
           LJMP KEYFUN12
           LJMP KEYFUN13
           LJMP KEYFUN14
           LJMP KEYFUN15
           LJMP KEYFUN16
           LJMP KEYFUN17
           LJMP KEYFUN18
           LJMP KEYFUN19
           LJMP KEYFUN20
           LJMP KEYFUN21
           LJMP KEYFUN22
           LJMP KEYFUN23
           LJMP KEYFUN24
           LJMP KEYFUN25
           LJMP KEYFUN26
           LJMP KEYFUN27
           LJMP KEYFUN28
           LJMP KEYFUN29
           LJMP KEYFUN30
           LJMP KEYFUN31
           RET

KEYVALTAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH
           RET

KEYFUN00: MOV A,#02H
          LJMP REMOTE
          RET

KEYFUN01: MOV A,#03H
          LJMP REMOTE
          RET

KEYFUN02: MOV A,#04H
          LJMP REMOTE
          RET

KEYFUN03: MOV A,#05H
          LJMP REMOTE
          RET

KEYFUN04: MOV A,#06H
          LJMP REMOTE
          RET

KEYFUN05: MOV A,#07H
          LJMP REMOTE
          RET

KEYFUN06: MOV A,#08H
          LJMP REMOTE
          RET

KEYFUN07: MOV A,#09H
          LJMP REMOTE
          RET

KEYFUN08: MOV A,#0AH
          LJMP REMOTE
          RET

KEYFUN09: MOV A,#0BH
          LJMP REMOTE
          RET

KEYFUN10: MOV A,#0CH
          LJMP REMOTE
          RET

KEYFUN11: MOV A,#0DH
          LJMP REMOTE
          RET

KEYFUN12: MOV A,#0EH
          LJMP REMOTE
          RET

KEYFUN13: MOV A,#0FH
          LJMP REMOTE
          RET

KEYFUN14: MOV A,#10H
          LJMP REMOTE
          RET

KEYFUN15: MOV A,#11H
          LJMP REMOTE
          RET

KEYFUN16:  RET
KEYFUN17:  RET
KEYFUN18:  RET
KEYFUN19:  RET
KEYFUN20:  RET
KEYFUN21:  RET
KEYFUN22:  RET
KEYFUN23:  RET
KEYFUN24:  RET
KEYFUN25:  RET
KEYFUN26:  RET
KEYFUN27:  RET
KEYFUN28:  RET
KEYFUN29:  RET
KEYFUN30:  RET
KEYFUN31:  RET
;***************************
;   编码发射程序
;***************************
REMOTE: MOV R1,A
        LJMP OUT3
OUT: MOV R0,#55H
OUT1: SETB ET1
      SETB TR1
      NOP
      NOP
      NOP
      NOP
      NOP
      DJNZ R0,OUT1
      MOV R0,#32H
OUT2: CLR TR1
      CLR ET1
      CLR P3.5
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      NOP
      DJNZ R0,OUT2
      DJNZ R1,OUT
      LCALL DL500MS
      RET
OUT3: MOV R0,#0FFH
      LJMP OUT1
;*****************
;   延时531us
;*****************
DELAY: MOV R2,#0FFH
DELAY1: DJNZ R2,DELAY1
        RET

;*********************
;   延时10MS
;*********************
DL10MS: MOV R3,#14H
DL10MS1: LCALL DELAY
         DJNZ R3,DL10MS1
         RET

DL500MS: MOV R4,#32H
DL500MS1: LCALL DL10MS
          DJNZ R4,DL500MS1
          RET 
END








;*******************************
;15路遥控接收程序
;注:P3.0为100Hz交流电源过零相位参考输入
;********************************
;主程序和中断程序入口
;********************************

ORG 0000H
LJMP START
ORG 0003H
LJMP INTEX0
ORG 000BH
RETI
ORG 0013H
RETI
ORG 001BH
RETI
ORG 0023H
RETI
ORG 002BH
RTI
;********************
;   初始化程序
;********************
CLEARMEMIO: CLR A
            DEC A
            MOV P0,A
            MOV P1,A
            MOV P2,A
            MOV P3,A
CLEARMEM: MOV IE,#00H
          SETB EX0
          SETB EA
          RET
;******************
;   主程序
;******************
START: LCALL CLEARMEMIO
       LCALL LOOP

MAIN: JB P3.0,MAIN
      LCALL DLX
      CLR P2.7
      LCALL DELAY
      SETB P2.7
      LJMP MAIN
      NOP
      NOP
      LJMP START
;***************************
;   遥控接收程序
;***************************
INTEX0: CLR EX0
        JNB P3.1,READ1
READOUTT0: SETB EX0
           RETI

READ1: CLR A
       MOV DPH,A
       MOV DPL,A
HARD1: JB P3.1,HARD11
       INC DPTR
       NOP
       NOP
       AJMP HARD1
HARD11: MOV A,DPH
        JZ READOUTT0
        CLR A

READ11: INC A
READ12: JNB P3.1,READ12
        MOV R1,#06H
READ13: JNB P3.1,READ11
        LCALL DELAY
        DJNZ R1,READ13
        DEC A
        DEC A
        JZ FUN0
        DEC A
        JZ FUN1
        DEC A
        JZ FUN2
        DEC A
        JZ FUN3
        DEC A
        JZ FUN4
        DEC A
        JZ FUN5
        DEC A
        JZ FUN6
        DEC A
        JZ FUN7
        DEC A
        JZ FUN8
        DEC A
        JZ FUN9
        DEC A
        JZ FUN10
        DEC A
        JZ FUN11
        DEC A
        JZ FUN12
        DEC A
        JZ FUN13
        DEC A
        JZ FUN14
        DEC A
        JZ FUN15
        NOP
        NOP
        LJMP READOUTT0

FUN0: CPL P0.0
      LJMP READOUTT0


FUN1: CPL P0.1
      LJMP READOUTT0


FUN2: CPL P0.2
      LJMP READOUTT0


FUN3: CPL P0.3
      LJMP READOUTT0


FUN4: CPL P0.4
      LJMP READOUTT0


FUN5: CPL P0.5
      LJMP READOUTT0


FUN6: CPL P0.6
      LJMP READOUTT0


FUN7: CPL P0.7
      LJMP READOUTT0


FUN8: CPL P2.6
      LJMP READOUTT0

FUN9: CPL P2.5
      LJMP READOUTT0

FUN10: CPL P2.4
       LJMP READOUTT0

FUN11: CPL P2.3
       LJMP READOUTT0

FUN12: CPL P2.2
       LJMP READOUTT0

FUN13: CPL P2.1
       LJMP READOUTT0

FUN14: CPL P2.0
       LJMP READOUTT0

FUN15: DEC P1
       MOV A,P1
       CJNE A,#0F7H,OUTT0
       CLR A
       DEC A
       MOV P1,A
OUTT0: LCALL LOOP
       LJMP READOUTT0
;*************************
;   延时513us
;*************************
DELAY: MOV R0,#0FFH
DELAY1: DJNZ R0,DELAY1
        RET
;***********************
;   延时10MS
;***********************
DL10MS: MOV R1,#14H
DL10MS1: LCALL DELAY
         DJNZ R1,DL10MS1
         RET
;***********************
;   调光延时时间控制
;***********************
DLX: MOV R2,B
DLX1: LCALL DELAY
      DJNZ R2,DLX1
      RET
;***********************
;   调光控制程序
;***********************
LOOP: MOV A,P1
      SUBB A,#0FFH
      JZ LOOP7
      MOV A,P1
      SUBB A,#0FEH
      JZ LOOP6
      MOV A,P1
      SUBB A,#0FDH
      JZ LOOP5
      MOV A,P1
      SUBB A,#0FCH
      JZ LOOP4
      MOV A,P1
      SUBB ,#0FBH
      JZ LOOP3
      MOV A,P1
      SUBB A,#0FAH
      JZ LOOP2
      MOV A,P1
      SUBB A,#0F9H
      JZ LOOP1
      MOV A,P1
      SUBB A,#0F8H
      JZ LOOP0
      RET 

LOOP7: MOV B,#01H
       RET
LOOP6: MOV B,#02H
       RET
LOOP5: MOV B,#04H
       RET
LOOP4: MOV B,#06H
       RET
LOOP3: MOV B,#08H
       RET
LOOP2: MOV B,#0AH
       RET
LOOP1: MOV B,#0CH
       RET
LOOP0: MOV B,#0DH
       RET
END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -