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

📄 红外线遥控器解码程序(汇编)111.txt

📁 红外线遥控器解码程序(汇编) ORG 0000H AJMP MAIN ORG 0003H 外部中断INT0入口地址 AJMP INT 转中断服务子程序 MAIN:
💻 TXT
字号:
红外线遥控器解码程序(汇编)  
            

      ORG 0000H 
      AJMP MAIN
      ORG 0003H ;外部中断INT0入口地址 
      AJMP INT ;转中断服务子程序
      MAIN: MOV SP,#40H 
      MOV P1,#00H
      SETB EA ;开CPU中断
      SETB IT0 ;设定INT0触发方式
      SETB EX0 ;INT0请求中断 

      DSP: MOV R2,#9 ;将遥控器键值转化成A(0~9)
      MOV DPTR,#TAB1
      VV: MOV A,R2
      MOVC A,@A+DPTR
      XRL A,1CH
      JZ ABC
      DJNZ R2,VV
      ABC: MOV A,R2
      MOV DPTR,#TAB ;将A的值通过数码管显示出来 
      MOVC A,@A+DPTR 
      RX1: MOV P1,A 
      CLR P0.1 
      AJMP DSP
      INT: CLR EA 
      MOV R6,#10
      SB: ACALL YS1
      JB P3.2,EXIT
      DJNZ R6, SB
      JNB P3.2, $ ;等待高电平避开9毫秒低电平引导脉冲
      ACALL YS2 ;延时4。74毫秒判断是否连发
      JB P3.2,EXIT
      CPL P0.0
      MOV R1,#1AH ;将32位代码分别放在1AH/1BH/1CH/1DH中
      MOV R2,#4 
      PP: MOV R3,#8
      JJJJ: JNB P3.2,$
      LCALL YS1
      MOV C,P3.2
      JNC UUU
      JB P3.2,$
      UUU: MOV A,@R1
      RRC A
      MOV @R1,A
      DJNZ R3,JJJJ
      INC R1
      DJNZ R2,PP 
      MOV P2,1CH
      MOV A,1AH ;进行代码识别 
      XRL A,#0 ;判断1AH的值是否等于00000000
      JNZ EXI ;如果不同则无效将1CH清零
      CLR P0.1 
      MOV A,1BH
      XRL A,#11110111B ;再判断高8位地址是否正确
      JNZ EXI
      MOV A,1CH
      CPL A
      XRL A,1DH ;将1CH的值取反后和1DH比较 不同则无效丢弃核对数据是否准确
      JNZ EXI 
      AJMP EXIT
      EXI: MOV 1CH,#0
      EXIT: SETB EA ;允许中断
      RETI 
      YS1: MOV R4,#20 ;精确延时882微秒
      D1: MOV R5,#20
      DJNZ R5,$
      DJNZ R4,D1 
      RET
      YS2: MOV R4,#10 ;精确延时4740微秒
      D2: MOV R5,#235
      DJNZ R5,$
      DJNZ R4,D2 
      RET
      TAB: DB 60H,7DH,0D0H,58H,4DH 
      DB 4AH,42H,7CH,40H,48H
      TAB1:DB 0CH,09H,1DH,1FH,0DH 
      DB 19H,1BH,11H,15H,17H
      END
      ;TAB LED数码管显示表 TAB1遥控器键值表
      

⌨️ 快捷键说明

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