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

📄 hongwai.txt

📁 简单的红外遥控
💻 TXT
字号:
红外线遥控器解码程序
    
ORG 0000H 
MOV 50H,#00
MOV 51H,#00
MOV P3,#00
MOV P1,#00
SETB P3.3
START: 
;------------------------ ;对遥控信号的9000微秒的初始低电平信号的识别     
       JNB P3.3,$    ;等待遥控信号出现 
       MOV R6,#10 
   SB: ACALL YS1     ;延时882微秒
       JB P3.3,START ;延时882微秒后判断P3.3脚是否出现高电平如果有就退出解码程序
       DJNZ R6, SB   ;重复10次,目的是检测在8820微秒内如果出现高电平就退出解码程序

       ;------------避开4.5毫秒
       JNB P3.3, $ ;等待高电平避开9毫秒低电平引导脉冲
       ACALL YS2   ;延时4.74毫秒避开4.5毫秒的结果码

       ;------------开始解码
       MOV R1,#1AH ;设定1AH为起始RAM区
       MOV R2,#4  ;接收从1AH到1DH的4个内存,用于存用户识别码和反码,放操作码和反码 
   PP: MOV R3,#8  ;每组数据为8位
 JJJJ: JNB P3.3,$ ;等待地址码第一位的高电平信号
       LCALL YS1  ;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态
       MOV C,P3.3 ;将P3.3引脚此时的电平状态0或1存入C中
       JNC UUU    ;如果为0就跳转到UUU
       JB P3.3,$  ;如果为1就等待
  UUU: MOV A,@R1  ;将A中的数暂时存放在R1数值的内存中
       RRC A
       MOV @R1,A
       DJNZ R3,JJJJ;接收满8位换一个内存
       INC R1      ;对R1中的值加1,换下一个RAM
       DJNZ R2,PP  ;接收完8位数据码和8位数据反码,存放在1AH/1DH中 
       AJMP BIJIAO
;--------------------;判断在118毫秒内是否有连发码
  AA: MOV R1,#25
  XX: ACALL YS2
      JNB P3.3,HH
      DJNZ R1,XX
;-------------------- ;连发码判断程序段              
 HH: MOV R6,#4
  S: ACALL YS1
     JB P3.3,EXIT
     DJNZ R6, S
     JNB P3.3, $ 
     AJMP AA
;**********************************;比较编码程序
BIJIAO:	
	MOV A,1CH
    MOV P1,A
TT1: 	CJNE A,#00010111B,TT2 ;	开关机键
    MOV A,50H
	JNZ OFF
        MOV 50H,#01
        SETB P3.0  ;开机
        SETB P3.1
        AJMP EXIT
OFF:   MOV 50H,#00
        CLR  P3.0 ;关机
        CLR  P3.1

TT2: 	CJNE A,#00001101B,TT3 ;1键
	SETB P3.0
        CLR  P3.1
TT3:    CJNE A,#00000010B,TT4 ;2键
        SETB P3.0
        SETB P3.1
TT4:    CJNE A,#00001111B,TT5 ;3键
       MOV A,51H
	JNZ OFF
        MOV 51H,#01
        SETB P3.2  ;开摇头
        AJMP EXIT
OFF:   MOV 51H,#00
        CLR  P3.2 ;关摇头
OK:     AJMP AA
;*********************************************
EXIT: 
      AJMP START
;*********************************************;延时子程
YS1: MOV R4,#20 ;延时子程序1,精确延时882微秒
D1:  MOV R5,#20
	DJNZ R5,$
	DJNZ R4,D1 
RET
YS2: MOV R4,#10 ;延时子程序2,精确延时4740微秒
D2:  MOV R5,#235
	DJNZ R5,$
	DJNZ R4,D2 
RET
END

⌨️ 快捷键说明

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