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

📄 红外解码7461,6122.dt

📁 universalremote_control,多功能摇控器程序,另有多个红外芯片解码程序,
💻 DT
字号:
;;;; 测码器,7461,6121,6122
;;;; FOSC = 10MHZ
;;;; IC  447 
;;;;延时?95为定时单元 
		IAR   ==  0X00
		TCC   ==  0X01
		STATUS ==  0X03
		C      == 0
		Z      == 2
		RSR    ==  0X04
		PORT5  ==  005
		PORT6  ==  0X06
		PORT7 ==  0X07
		ISR   ==  0X3F
		IOCE  ==  0X0E
		IOCF  ==  0X0F
		EX    ==  3    ;IOCF.3为外部中断 
		TC    ==  0    ;;IOCF.0为TCC中断使能 
		   DNUM0 == 0X08
		   DNUM1 == 0X09
		   DNUM2 == 0X0A
		   HALLD == 0X0B    ;;;;8BIT
		   DNUM  == 0X0C 
		   HALLBF == 0X10
		P6BF == 0X16
		P6BD == 0X17
		P7BF == 0X18
		P7BD == 0X19
		  XX == 0X1A
		  XA == 0X1B
		  XC == 0X1C
		  XD == 0X1D
		  XE == 0X1E
		  XF == 0X1F
		   UCODL == 0X22  
		   UCODH == 0X23
		   KCOD  == 0X24
		ORG  0X00
		JMP  MAIN
		ORG  0X01
		JMP  TCCINT
		ORG  0X02
		JMP  SINT
MAIN:   MOV A,@0X11
		IOW  IOCE        ;;;WTD disable
		MOV  A,@0X00     ;;
		IOW  PORT6
		IOW  PORT7
		MOV  A,@0B00100000  ;;;P55 INPUT
		IOW PORT5
		MOV  A,@0X01     ;;;;;
		IOW  IOCF
		MOV A,@0XBB    ;;TCC WRITE
		MOV TCC,A
		MOV  A,@0B11000111  ;;;256 div分频 
		CONTW
		ENI
		;MOV A,@76        ;;;;100TIMES
		;MOV TCNUM,A
		;CALL D0.8MS
	/*LO: MOV A,@0XFF
		MOV PORT7,A
		CALL DELAY1S
		MOV A,@0X00
		MOV PORT7,A
		CALL DELAY1S*/
		MOV A,@1
		MOV 0X16,A
		MOV 0X17,A
		MOV 0X18,A
		MOV 0X19,A
		MOV A,@8
		MOV HALLD,A;;;;;;;
		MOV A,@0XFE
		MOV 0X10,A
		MOV A,@0X30
		MOV 0X11,A
		MOV A,@0X6D
		MOV 0X12,A
		MOV A,@0X79
		MOV 0X13,A
		MOV A,@0X33
		MOV 0X14,A
		MOV A,@0X5B
		MOV 0X15,A  ;;;;;DATA
		MOV A,@0X00     ;;;;;SELECT
		MOV 0X20,A
		MOV A,@0X80
		MOV 0X21,A
		MOV A,@0X40
		MOV 0X22,A
		MOV A,@0XC0
		MOV 0X23,A
		MOV A,@0X20
		MOV 0X24,A
		MOV A,@0XA0
		MOV 0X25,A
  TEST: JBS PORT5,5   ;;;检测是否有红外信号 
  	  INT
  	  JMP TEST
TCCINT: BC  ISR,0
        MOV A,@0X00
		IOW PORT6
		IOW PORT7
          

	
		;DJZ TCNUM 
		;RETI
		
		;MOV A,@76     ;;100 TIMES REWRITE
		;MOV TCNUM,A
		MOV A,P6BF
		MOV RSR,A
		MOV A,IAR
		MOV PORT6,A
		INC P6BF
		DJZ P6BD
		JMP OO
		MOV A,@6
		MOV P6BD,A
		MOV A,@0X20
		MOV P6BF,A
   OO:  MOV A,P7BF
   	 MOV RSR,A
   	 MOV A,IAR
   	 MOV PORT7,A
   	 INC P7BF
   	 DJZ P7BD
   	 JMP OP
   	 MOV A,@6
   	 MOV P7BD,A
   	 MOV A,@0X10
   	 MOV P7BF,A
   OP:  MOV A,@0XBB ;;TCC WRITE f=fosc/2/256/250 T=12.8ms
		MOV TCC,A
		RETI
;;;;;;SOFT INT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;*************************;;;;;;;;;;;;;;;
SINT:   MOV A,@0X00
		MOV PORT7,A
		MOV A,@0X22
		MOV RSR,A
		MOV A,@8
		MOV HALLD,A
		MOV A,@3
		MOV HALLBF,A
        MOV A,@0X59;;89*0.1=8.9MS
		MOV DNUM,A
 LEAD1: CALL D0.1MS
		JBC PORT5,5
		RETI
        DJZ  DNUM
        JMP LEAD1
        ;BS PORT5,7
		;CALL DELAY0.2S
		;BC PORT5,7
        MOV A,@3   ;;;到8.9MS
        MOV DNUM,A
 LEAD11: CALL D0.1MS
 		JBS PORT5,5
 		JMP LEAD13
 		JMP T45MS
 LEAD13: DJZ DNUM
 		JMP LEAD11
 		RETI       ;9.2MS

T45MS: ;BS PORT5,7
		;CALL DELAY0.2S
		;BC PORT5,7
		 MOV A,@0X20     ;;9MS低电平已通过开始检4.5高电平 
         MOV DNUM,A
 LEAD2:  CALL D0.1MS
        JBS PORT5,5
        RETI
        DJZ DNUM
        JMP LEAD2
        MOV A,@0X14 ;;
        MOV DNUM,A
 LEAD22:  CALL D0.1MS
 	   JBC PORT5,5
 	   JMP LEAD23
 	   BC  0X1A,0
 	   JMP USER
 LEAD23: DJZ DNUM
 	   JMP LEAD22
 	   RETI   ;;4.8MS 
 	   ;;;;;用户码开始 
 	   ;MOV A,@0X22
 	   ;MOV RSR,A
USER:   MOV A,@0X26
		MOV RSR,A
		;CALL USER13
		CALL USCOD
		MOV A,IAR
		MOV 0X1B,A
		MOV A,@0X27
		MOV RSR,A
		MOV A,0X1B
		MOV IAR,A
		
		
		MOV A,@0X26
		MOV RSR,A
		;CALL USER5
		CALL USCOD
		MOV A,IAR
		MOV 0X1C,A
		MOV A,@0X28
		MOV RSR,A
		MOV A,0X1C
		MOV IAR,A
		
		COMA IAR
		XOR  0X1B,A
		JBS  STATUS,Z
		JMP  CK7461
		
		
		MOV A,@0X26
		MOV RSR,A
		;CALL USER5
		;CALL USCOD
		CALL USCOD
		MOV  A,IAR
		MOV  0X1B,A
		MOV A,@0X29
		MOV RSR,A
		MOV A,0X1B
		MOV IAR,A
		JMP PLAY
			   
CK7461: MOV A,@0X27
		MOV RSR,A
		MOV A,IAR
		MOV 0X1B,A
		JBS 0X1B,6
		BC  0X1D,0
		JBC 0X1B,6
		BS  0X1D,0
		JBS 0X1B,7
		BC  0X1D,1
		JBC 0X1B,7
		BS  0X1D,1
		JBS 0X1C,0
		BC  0X1D,2
		JBC 0X1C,0
		BS  0X1D,2
		JBS 0X1C,1
		BC  0X1D,3
		JBC 0X1C,1
		BS  0X1D,3
		JBS 0X1C,2
		BC  0X1D,4
		JBC 0X1C,2
		BS  0X1D,4
		JBS 0X1C,3
		BC  0X1D,5
		JBC 0X1C,3
		BS  0X1D,5
		JBS 0X1C,4
		BC  0X1D,6
		JBC 0X1C,4
		BS  0X1D,6
		MOV A,0X1D
		AND A,@0X7F
		MOV 0X1D,A
		MOV A,@0X27
		MOV RSR,A
		MOV A,0X1D
		MOV IAR,A
		CALL USER3
		
		CALL USER7
		RRC IAR
		BC  IAR,7
		MOV A,IAR
		MOV 0X1D,A
		MOV A,@0X28
		MOV RSR,A
		MOV A,0X1D
		MOV IAR,A
		
		CALL USCOD
		MOV A,IAR
		MOV 0X1D,A
		MOV A,@0X29
		MOV RSR,A
		MOV A,0X1D
		MOV IAR,A
		JMP PLAY
		
USER3:  MOV A,@0X03
		MOV HALLD,A 
		JMP SST
USER7:  MOV A,@0X07
		MOV HALLD,A
		JMP SST
	   
USER5:  MOV A,@0X05
		MOV HALLD,A
		BS  0X1A,0
		JMP SST
USER13: MOV A,@0X0D
		MOV HALLD,A
		JMP SST
USCOD:  MOV A,@0X26
		MOV RSR,A
		MOV A,@0X08
		MOV HALLD,A
		 ;BS PORT5,7
		;CALL DELAY0.2S
		;BC PORT5,7
 SST:   MOV A,@0X26
 	   MOV RSR,A
 	   RRC IAR   
 	   MOV A,@0X03  ;;SUCCESS 560US START
 	   MOV DNUM,A
USE0:   CALL D0.1MS
 	   JBC PORT5,5
 	   RET;
 	   DJZ DNUM
 	   JMP USE0
 	   MOV A,@0X05   ;;;5
 	   MOV DNUM,A
USE00:   CALL D0.1MS
		JBS PORT5,5
		JMP USE01
		JMP USCOD1
USE01:  DJZ DNUM
		JMP USE00
		RET;   
 	     ;;;完成560US低电平检测 
 	     ;;;开始高电平检测 
USCOD1:  MOV A,@0X02
 	   MOV DNUM,A
USE1:   CALL D0.1MS
		JBS PORT5,5
		RET;
		DJZ DNUM
		JMP USE1
		MOV A,@0X05 ;;500US 
		MOV DNUM,A
USE11:  CALL D0.1MS
		JBC PORT5,5
		JMP USE12
		JMP BIT0
USE12:  DJZ  DNUM
		JMP USE11
		JMP BIT1 ;;;;;;

		

 	   ;;;;;;HANDLE BIT0
BIT0:   ;RRC IAR
		BC IAR,7
		/*JBC STATUS,C  ;;保 
		JMP RR4       ;;存 
		BC 0X11,0     ;;标 
		JMP RR5       ;;志 
RR4:    BS 0X11,0     ;;位 
RR5:   NOP            ;;CY/*/
		JMP HALL
BIT1:   MOV A,@0XA
		MOV DNUM,A
 BIT:   CALL D0.1MS
         JBC PORT5,5
        JMP BIT11
        JMP BT1  ;;;;;
 BIT11: DJZ DNUM
        JMP BIT
        RET;
        ;;;;;BIT1 HANDLE
  BT1: ;RRC IAR 
  	 BS IAR,7
  	  ;JMP HALL
  	 /*JBC STATUS,C   ;;;;;;;;;;
  	 JMP RR3        ;;保存 
  	 BC 0X11,0      ;;标 
  	 JMP RR2        ;;志 
 RR3: BS 0X11,0       ;;位 
 RR2:  NOP            ;;CY*/
 HALL:  DJZ HALLD
 		JMP SST
       NOP
      /* JBC 0X11,0   ;;恢复 
       JMP RR1      ;;标志 
       BC STATUS,C  ;;位 
		JMP RRRR    ;;CY
RR1:   BS STATUS,C  ;;8*/
RRRR:	;RRC IAR;;;;;;;;;;;;;
        JBC 0X1A,0
        JMP B5BIT
        RET
 B5BIT: RRC IAR
 		RRC IAR
 		RRC IAR
 		BC IAR,5
 		BC IAR,6
 		BC IAR,7
 		RET




 	   ;INC RSR
 	   ;MOV A,@8
 	   ;MOV HALLD,A
 	   ;DJZ HALLBF
 	   ;JMP USCOD
PLAY:   MOV A,@0X27
		MOV RSR,A
		;RRC IAR
		MOV A,IAR
		AND A,@0X0F
		CALL SEGTAB
		MOV 0X11,A
		SWAP IAR
		MOV A,IAR
		AND A,@0X0F
		CALL SEGTAB
		MOV 0X10,A ;;;;
		MOV A,@0X28
		MOV RSR,A
		;RRC IAR
		MOV A,IAR
		AND A,@0X0F
		CALL SEGTAB
		MOV 0X13,A
		SWAP IAR
		MOV A,IAR
		AND A,@0X0F
		CALL SEGTAB
		MOV 0X12,A ;;;
		MOV A,@0X29
		MOV RSR,A
		;RRC IAR
		MOV A,IAR
		AND A,@0X0F
		CALL SEGTAB
		MOV 0X15,A
		SWAP IAR
		MOV A,IAR
		AND A,@0X0F
		CALL SEGTAB
		MOV 0X14,A ;;;;
		BS PORT5,7
		CALL DELAY0.2S
		BC PORT5,7
		RETI
;;;VVVVVVVVVVVVVVVVVVVVVVVVVVVVVV  
        NOP
		NOP
		NOP
		BS PORT5,7
		CALL DELAY0.2S
		BC PORT5,7
		MOV A,@0XFF
		MOV 0X11,A
		RETI
DELAY1S:  MOV A,@0X1a  ;;11CAN BE CHANGED ;;DELAY
		MOV DNUM2,A
DE2:	MOV A,@0XFF
		MOV DNUM1,A
DE1:	MOV A,@0XFF
		MOV DNUM0,A
DE0:	DJZ DNUM0 
		JMP DE0 
		DJZ DNUM1
		JMP DE1
		DJZ DNUM2
		JMP DE2
		RET

DELAY0.2S:  MOV A,@0X03   ;;0.1秒 
		MOV DNUM2,A
DDE2:	MOV A,@0XFF
		MOV DNUM1,A
DDE1:	MOV A,@0XFF
		MOV DNUM0,A
DDE0:	DJZ DNUM0 
		JMP DDE0 
		DJZ DNUM1
		JMP DDE1
		DJZ DNUM2
		JMP DDE2
		RET
D0.1MS:  MOV A,@0XA5   ;0.2US*256*2  0.1024MS
         MOV DNUM0,A
  DE:	DJZ DNUM0
		 JMP DE
		 RET
D0.8MS:  MOV A,@0X08     ;;
		 MOV DNUM0,A
 DEE0:   MOV A,@0XA5    ;;0.2US*2*(248+2)*8
		 MOV DNUM1,A
 DEE1:   DJZ DNUM1
 		JMP DEE1
 		DJZ DNUM0
 		JMP DEE0
 		RET
 D0.05MS: MOV A,@0X53
         MOV DNUM0,A
   DEE:  DJZ DNUM0
   	  JMP DEE
   	  RET
DISPLAY: MOV A,@0   ;DISPLAY THE SOURCE IS XXXXX
        CALL SEGTAB
        MOV PORT7,A ;;;;;;;;;;;;;;
        RET
SEGTAB: TBL
		RETL  0B01111110 ;0;0XFE
		RETL  0B00110000 ;1,0X30
		RETL  0B01101101 ;2,0X6D
		RETL  0B01111001 ;3,0X79
		RETL  0B00110011 ;4 ;0X33
		RETL  0B01011011 ;5,0X5B
		RETL  0B01011111 ;6,0X5F
		RETL  0B01110000 ;7,0X70
		RETL  0B01111111 ;8,0X7F
		RETL  0B01111011 ;9,0X7B
		RETL  0B01110111  ;A
		RETL  0B00011111  ;B
		RETL  0B01001110  ;C
		RETL  0B00111101  ;D
		RETL  0B01001111  ;E
		RETL  0B01000111  ;F
		RETL  0B01111111  ;8
		;;;;;;;;;;;;;;;;;;;;;
		
		ORG  0XFFF
		JMP  0X00
		END

⌨️ 快捷键说明

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