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

📄 红外遥控源程序-at89c2051.txt

📁 REMOCON ASSY AH59-01878
💻 TXT
字号:

  ORG 0000H

            AJMP MAIN

          ORG 0003H

          AJMP KEYPRESS

          ORG 000BH 

          AJMP TIMEOUT

          ORG 001BH

          AJMP TIMEOUT

 

          SENDDUAN   BIT P3.0

          JIEDUAN    BIT P3.1

          INTRPO     BIT P3.2

          JIEXUAN    BIT P3.3

          SENDLIGHT  BIT P3.4

          JIELIGHT   BIT P3.5

          CS         BIT P3.7

          DATADUAN   BIT P1.6

          CLK        BIT P1.7 

          JIANWEI    EQU R5

          JIANMA     EQU R6

          SHANGJIAN  EQU 07H;R7

          OPENKEY    EQU 81H

          CLOSEKEY   EQU 00H

          CHUT0      EQU 11H

          CHUT1      EQU 11H

          BUFBEGIN   EQU 18H

          OPENT1     EQU 88H

          CLOSET1    EQU 00H

          OPENT0     EQU 82H

          CLOSET0    EQU 00H

          DATABEG1   EQU 0AAH

          DATABEG2   EQU 33H

 

          ORG 0030H

MAIN:       MOV  IE,#80H

          MOV  IP,#00H

          MOV  P3,#0FFH

          CLR  CS

          SETB P1.0

          SETB P1.1

          SETB P1.2

          CLR  P1.3

          CLR  P1.4

          CLR  P1.5

          CLR  P1.6

          CLR  P1.7

          

          MOV  R3,#80H

          MOV  R0,00H

CYCLE1:   MOV  @R0,#00H

          INC  R0

          DJNZ R3,CYCLE1

          

          MOV  PSW,#00H

          MOV  SP,#07H

 

          MOV  TMOD,#11H

          MOV  TCON,#00H

 

START:    MOV  SP,#07H

          SETB SENDDUAN

          CLR  F0

          SETB EXO

WAITKEY:  MOV  C,F0

          JNC  WAITKEY

          CJNC JIANMA,#1BH,SEND

          LCALL LEARNP

          LJMP START

SEND:     LCALL SENDP

          LJMP START

 

SENDP:    SETB SENDDUAN

          CLR  F0

          MOV  TMOD,#CHUT1

          CLR   SENDLIGHT

          MOV  A,JIANMA

          CJNE  A,SHANGJIAN,SAME

SAME:     MOV  R0,#BUFBEGIN

          CLR  TR1

          LJMP  NEXT3

RETURN:   CLR  ET1

          SETB  SENDDUAN

          SETB  SENDLIGHT

          CLR  F0

          LCALL DELAY

          RET

NEXT3:    CPL F0

          JB F0,SEND1

SEND0:    CLR C                  ;1

          MOV A,#0FFH

          SUBB A,@R0

          MOV R2,A               ;1

          INC R0                 ;1

          MOV A,#0FFH            ;1

          SUBB A,@R0             ;1

          MOV R3,A

          INC R0

          CLR C

          MOV A,#4FH

          ADDC A,R2

          MOV R2,A

          MOV A,R3

          ADDC A,#00H

          MOV R3,A

          MOV TL1,R2

          MOV TH1,R3

          SETB TR1              ;1

          SETB ET1              ;1

SEND1:    CLR C

          MOV A,#0FFH

          SUBB A,@RO

          MOV TL1,A

          INC R0

          MOV A,#0FFH

          SUBB A,@R0

          MOV TH1,A

          INC R0

          SETB TR1

          SETB ET1

NEXT6:    CLR SENGGUAN

          MOV R3,#03H

NEXT4:    DJNZ R3,NEXT4

          SETB SENDDUAN

          MOV R3,#07H

NEXT5:    DJNZ R3,#NEXT5

          SJMP NEXT6

 

TIMA1OUT: CLR ET1               ;2

          CLR TR1               ;2

          SETB SENDDUAN         ;1

          CJNE@R0,#DATABEG2,TIM1NT2

          MOV DPTR,#RETURN      ;2

          MOV R1,SP            ;2

          MOV @R1,DPH          ;2

          DEC R1               ;1

          MOV @R1,DPL          ;2

          RETI                 ;2

TIM1NET2: DEC R0

TIM1NET1: CPL F0               ;1

          JB F0,SEND11         ;2

SEND00:   MOV DPTR,#SENDO      ;11

          MOV R1,SP

          MOV @R1,DPH

          DEC R1

          MOV @R1,DPL

          RETI

SEND11:   MOV DPTR,#SEND1      ;11

          MOV R1,SP

          MOV @R1,DPH

          DEC R1

          MOV @R1,DPL

          RETI

LEARNP:   MOV R2,#02H

NEXT91:   MOV R3,#0FFH

NEXT81:   MOV R4,#0FFH

NEXT71:   DJNZ R4,NEXT71

          DJNZ R3,NEXT81

          GJNZ R2,NEXT91

          CLR F0

          SETB EX0

          MOV R2,#0AH

MEXT9:    MOV R3,#0FFH

NEXT8:    MOV R4,#0FFH

NEXT7:    JB F0,NEXT10

          DJNZ R4,NEXT7

          DJNZ R3,MEXT8

          DJNZ R2,NEXT9

          CLR EX0

          RET

NEXT10:   CJNE JIANMA,#1BH,NEXT11

          LJMP NEXT111

NEXT11:   RET

NEXT111:  CLR JIELIGHT

          CLR JIEXUAN

          CLR F0

          MOV R0,#BUFBEGIN

          SETB ET0

          MOV TCON,#00H

          MOV TMOD,#CHUT0

          MOV TL0,#00H

          MOV TH0,#00H

          MOV R2,#02H

NEXT92:   MOV R3,#0FFH

NEXT82:   MOV R4,#0FFH

NEXT72:   DJNZ R4,NEXT72

          DJNZ R3,NEXT82

          DJNZ R2,NEXT92

 

          CLR TR0

L1:       MOV C,JIEDUAN

          JC L1

L4:       SETB TR0

L2:       MOV C,JIEDUAN

          CLR TR0

          MOV @R0,TL0

          INC R0

          MOV TH0,#00H

          MOV TL0,#00H

L6:       SETB TR0

L3:       MOV C,JIEDUAN

          JC L3

          CLR TR0

          CLR C

          MOV A,TL0

          ADDC A,#13H

          MOV @R0,A

          INC R0

          MOV TH0,#00H

          MOV TL0,#00H

          SETB TR0

L5:       MOV C,JIEDUAN

          JNC L5

          CLR TR0

          CLR C                ;1

          MOV A,TL0            ;1

          ADDC A,#13H          ;1

          MOV @R0,A            ;2

          INC R0

          MOV A,TH0

          ADDC A,#00H

          MOV @R0,A

          INC R0

          MOV TH0,#00H

          MOV TL0,#00H

          SJMP L6

SHUJIAN:  SETB JIEXUAN

          MOV @R0,#DATABEG1

          INC R0

          MOV @R0,#DATABEG2

          SETB EX0

          CLR F0

NEXT13:   JB F0,NEXT12

          LJMP NEXT13

NEXT12:   LCALL WRITEP

          SETB JIELIGHT

          RET

TIME0OUT  CLR ET0

          CLR TR0

          MOV DPTR,#SHUJIAN

          MOV @R1,DPH

          DEC R1

          MOV @R1,DPL

          RETI

KEYPRESS: CLR EX0

          MOV R3,#0DH

CYCLE3:   MOV R4,#0FFH

CYCLE2:   DJNZ R4,CYCLE2

          DJNZ R3,CYCLE3

          MOV C,INTRPO

          JNC NEXT1

          RETI

NEXT1:    SETB F0

          MOV C,P1.0

          MOV ACC.0,C

          MOV C,P1.1

          MOV ACC.1,C

          MOV C,P1.2

          MOV ACC.2,C

          CLR P1.0

          CLR P1.1

          CLR P1.2

          SETB P1.3

          SETB P1.4

          SETB P1.5

          MOV C,P1.3

          MOV ACC.3,C

          MOV C,P1.4

          MOV ACC.4,C

          MOV C,P1.5

          MOV ACC.5,C

          ANL A,300111111B

          MOV JIANMA,A

          SETB P1.0

          SETB P1.1

          SETB P1.2

          CLR P1.3

          CLR P1.4

          CLR P1.5

          LCALL JIANWEIP

          RETI

JIANWEIP: CJNE JIANMA,#36H,NEXT14

          MOV JIANWEI,#01H

          LJMP LAST

NEXT14:   CJNE JIANMA,#35H,NEXT15

          MOV JIANWEI,#02H

          LJMP LAST

NEXT15:   CJNE JIANMA,#35H,NEXT16

          MOV JIANWEI,#03H

          LJMP LAST

NEXT16:   CJNE JIANMA,#2EH,NEXT17

          MOV JIANWEI,#04H

          LJMP LAST

NEXT17:   CJNE JIANMA,#2DH NEXT18

          MOV JIANWEI, #05H     

          LJMP LAST

NEXT18:   CJNE JIANMA,#2BH,NEXT19

          MOV JIANWEL,#06H

          LJMP LAST    

NEXT19:   CJNE JIANMA,#1EH,NEXT20

          MOV JIANWEI,#07H

          LJMP LAST

NEXT20:   CJNE JIANMA,#1DH,NEXT21

          MOV JIANWEL,#09H

          LJMP LAST

NEXT21:   CJNE JIANMA,#1BH,NEXT22

          MOV JIANWEI,#09H

          LJMP LAST

NEXT22:   CLR FO

LAST:     RET

READP:    MOV RO,BUFBEGIN

          MOV A,JIANWEI

          MOV B,50

          MUL AB

          MOV R3,A

SHU JU DI ZHI

          INC R3

          LCALL READCOM

READNET2: MOV A,R3

          LCALL WRITEADRESS

          LCALL READBYTE

          CJNE ,#DATABEG1,READNET1

          MOV A R3

          INC A

          LACLL WRITEADRESS

          LCALL READBYTE

          CJNE A,#DATABEG2,READNET1

          CLR CS

          RET

READNET1: MOV @RO,A

          INC RO

          INC R3

          LJMP READNET2

WRITEP:   MOV RO,BUFBEGIN

          MOV A,JIAWEI

          MOV B,50

          MUL  AB

          MOV R3,A     ;KAI SHI SHU JU DI ZHI  

          INC R3

          LCALL EWEN

WRITNET1: LACLL WRITECOM

          MOV,R3

          LCALL WRITEADRESS

          MOV A,@RO

          CJNE A,#DATABEG1,WRITNET2

          INC RO

          MOV A,@RO

          CJNE A,DATABEG2,WRITNET3

          LCALL EWDS

          CLR CS

          RET

WRITNRT3: DEC RO

WRITNET2: LCALL WRITEBYTE

          INC RO

          INC R3

          LJMP WRITNE1

          RET

WRITBYTE: MOV R2,#08H

BOUT1:    CLR CLK

          RLC A

          MOV DATADUAN,C

          NOP

          SETB CLK

          NOPDJNZ R2,BOUT1

          CLRDATADUAN

          RET

READBYTE: SETB DATAUAN

          MOV R2,#08H

BIN1:     CLR CLK

          NOP

          SETB CLK

          NOP

          MOV C,DATADUAN

          RLC A

          DJNZ R2,BIN1

          RET

READCOM:  CLR CS

          CLR CLK

          SETB DATADUAN

          SETB CS

          NOP

          SETB CLK           ;1

          NOP

          CLR CLK

          NOP 

          SETB CLK           ;1

          NOP

          CLR DATAUAN

          CLR CLK

          NOP

          SETB CLK           ;0

          RET

WRITECOM: CLR CS

          NOP

          CLR CLK

          SETB DATADUAN

          SETB CS

          NOP

          SETB CLK           ;1

          NOP

          CLR DATADUAN

          NOP

          CLR CLK

          NOP

          SETB CLK           ;0

          NOP

          SETB DATADUAN

          NOP

          CLR CLK

          NOP

          SETB CLK           ;1

          RET

WRITEADRESS: 

          MOV R2,#07H

          RLC A      ;TIAO GUO DI 7 WEI

BOUT2:    CLR CLK

          RLC A

          MOV DATADUAN,C

          NOP

          DJNA R2,BOUT2

          CLR DATAUAN

          RET

EQEN:     CLR CS

          CLR CLK

          SETB DATADUAN

          SETB CS

 

          SETB CLK           ;1

          NOP

          CLR CLK

          NOP

          CLR DATADUAN

          SETB CLK           ;0

          NOP

          NOP

          CLR CLK

          NOP

          SETB CLK           ;0

          NOP

          NOP

          SETB DATADUAN

          CLR CLK

          NOP

          SETB CLK           ;1

          NOP

          NOP

          SETB CLK           ;1

          NOP

          NOP

          CLR CLK

          NOP

          NOP

          CLR CS

          RET

EWDS:     CLR CS

          CLR CLK

          SETB DATADUAN

          SETB CS

          SETB CLK           ;1

          NOP

          CLR CLK

          NOP

          CLR DATADUAN

          SETB CLK           ;0

          NOP

          NOP

          CLR CLK

          NOP

          SETB CLK           ;0

          NOP

          NOP

          CLR CLK

          NOP

          NOP

          RETB CLK           ;0

          NOP

          NOP

          SETB CLK           ;0

          NOP

          NOP

          CLR CLK

          NOP

          NOP

          SETB CLK           ;0

          NOP

          NOP

          CLR CS

          CLR CLK

          RET

DELAY:    MOV  R3,#96H

DEL1:     MOV R4,#OFFH

DEL2:     DJNZ R4,DEL2

          DJNZ R3,#DEL1

          RET

END 

⌨️ 快捷键说明

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