原创 NEC码遥控器解码程序(89S52 汇编语言版)

2008-9-25 14:18 6277 9 13 分类: MCU/ 嵌入式

NEC码的遥控器用单片机解码。


首先解码的必须知道 NEC格式是如何的,红外接收头是接收后是怎样的,程序是把红外接收头接收的信号转变成我们看得懂的16进制通过数码管显示出来。


1.NEC格式:可参考SC6122的规格书,引导码是9ms高电平加4.5ms的低电平


接下来是8位客户码和8位客户码的反码,再接下来就是8位数据码和八位数据码的反码


“0”是0.56ms 的高电平和0.56ms的低电平表示


“1”是0.56ms 的高电平和1.69ms的低电平表示


除引导码外总共16位。


2.红外接收头接收后的数据刚好是跟NEC相反,如下:(若加个反相器的话就是一样的,这块板子上没加)


引导码是9ms低电平加4.5ms的高电平


接下来是8位客户码和8位客户码的反码,再接下来就是8位数据码和八位数据码的反码


“0”是0.56ms 的低电平和0.56ms的高电平表示


“1”是0.56ms 的低电平和1.69ms的高电平表示


3.把红外遥控器的接收的数据装换成我们能看的懂的十六进制从数码管显示(p2口控制8个数码的公共脚,P0 控制笔画A,B,C,D,E,F,G)


P3.2位外部中断口


4.程序的基本思路:


    判断P3.2的是否有脉冲即是否有接收到信号


  再通过判断接收的信号是否符合NEC的引导码的格式,即高低电平的时间是否正确。


不符合的话则判断为干扰信号,不予以处理,等待下次中断


符合则继续解码,通过特定的延时条件去抓到每一位的数据存放与某内存区(此处为1A,1B,1C,1D)共四个八位数据


再把需要显示的客户码和数据码(在1A和1C 存储区里面)通过16进制转换后在数码管显示


 


<?XML:NAMESPACE PREFIX = V /> 如下


ORG 0000H
AJMP MAIN
ORG 0003H
AJMP INT
MAIN: SETB EA
SETB IT0
SETB EX0
MOV P1, #11111111B
AJMP $
INT: CLR EA
     MOV R6,#10
     SB:ACALL YS1
     JB P3.2,EXIT
     DJNZ R6,SB
     JNB P3.2, $
     ACALL YS2
     MOV R1,#1AH
     MOV R2,#4
     PP:MOV R3,#8
 JJJJ:JNB P3.2,$
      LCALL YS1
      MOV C,P3.2
      JNC UUU
      LCALL YS3
UUU:  MOV A,@R1
      RRC A
      MOV @R1,A
      DJNZ R3,JJJJ;确定第一个八位是否已经存储完成
      INC R1;存储位置累加放下一个八位
      DJNZ R2,PP;确定四个八位是否已经完成储存
      CLR P3.7
      LCALL YS2
      SETB P3.7;喇叭提示解码成功
      MOV R2,#100
DISPLAY: MOV P1,1AH
      MOV R1,1AH
      MOV A,R1
      MOV B,#16
      DIV AB;十六进制转换
      MOV R6,A;十位送r6
      mov R7,B;十位送r6
      MOV DPTR,#TABLE
      CLR P2.6
      MOV A,R7
      MOVC A,@A DPTR
      MOV P0,A
      LCALL YS3
      LCALL YS3
      SETB P2.6
      CLR P2.7
      MOV A,R6
      MOVC A,@A DPTR
      MOV P0,A
      LCALL YS3
    
      SETB P2.7
      MOV R1,1CH
      MOV A,R1
      MOV B,#16
      DIV AB;十六进制转换
      MOV R7,A;十位送r6
      mov R6,B;GE位送r6
      MOV DPTR,#TABLE
      CLR P2.5
      MOV A,R7
      MOVC A,@A DPTR
      MOV P0,A
      LCALL YS3
     
      SETB P2.5
      CLR P2.4
      MOV A,R6
      MOVC A,@A DPTR
      MOV P0,A
      LCALL YS3
     SETB P2.4
      DJNZ R2,DISPLAY
      EXIT:SETB EA
      RETI



YS1:MOV R4,#20
      D1:MOV R5,#20
      DJNZ R5,$
      DJNZ R4,D1
      RET
YS2:MOV R4,#10
      D2:MOV R5,#235
      DJNZ R5,$
      DJNZ R4,D2
      RET
YS3:MOV R4,#2
      D3:MOV R5,#248
      DJNZ R5,$
      DJNZ R4,D3
      RET


TABLE:DB 3FH,06H,5BH,4FH,66H;0-4
      DB 6DH,7DH,07H,7FH,6FH;5-9
      DB 77H,7CH,39H,5EH;A-D
      DB 79H,71H;E-F


      END

PARTNER CONTENT

文章评论4条评论)

登录后参与讨论

用户1615276 2008-10-1 08:59

支持一下

用户163410 2008-9-26 18:25

正好是我要的,谢谢了

用户6386 2008-9-26 12:55

用户170308 2008-9-26 12:49

不错
相关推荐阅读
用户169791 2008-09-26 19:25
51单片机新手入门实例详解
...
用户169791 2008-09-26 19:19
发光二极管和数码管特性,生产流程及不良分析
https://static.assets-stash.eet-china.com/album/old-resources/2008/9/26/6efd1356-4403-47a3-ad0b-8f8d...
用户169791 2008-09-26 19:09
fairchild 开关电源资料
https://static.assets-stash.eet-china.com/album/old-resources/2008/9/26/14adf2e5-345b-4ac7-8722-162a...
用户169791 2008-09-26 19:05
开关电源测试资料汇总
https://static.assets-stash.eet-china.com/album/old-resources/2008/9/26/1588e42e-c4ab-4b72-b5fc-8288...
用户169791 2008-09-25 20:07
遥控器发码格式大全
参考以下网站:  http://www.sbprojects.com/knowledge/ir/nec.htm...
用户169791 2008-09-25 19:58
LED线路及开关线路优劣比较
 LED线路及开关线路优劣比较...
EE直播间
更多
我要评论
4
9
关闭 站长推荐上一条 /3 下一条