标题: 51单片机红外遥控解码,很详细(汇编语言,C语言等) [打印本页]

作者: wwcjlu    时间: 2019-4-27 14:49
标题: 51单片机红外遥控解码,很详细(汇编语言,C语言等)
51单片机HS0038解码程序,很详细!


单片机源程序如下:
  1. #include <reg51.h>
  2. #define hw_hs0038_ENTITY
  3. #include "hw_hs0038.h"         
  4. sbit in=P3^2;
  5. //uchar i=0;
  6. //uchar k[2];
  7. bit bdata b=0;

  8. /*
  9. void timer0(void) interrupt 1 using 1
  10. {
  11.         b=1;
  12.         TH0=0;
  13.           TL0=0;
  14.         }       
  15.                          
  16.         */               
  17. void hw_start()
  18. {
  19.         while(in==1);                 //等待低电平到来       
  20. }

  21. void hw_pulse()
  22. {                                                   //测试脉冲宽度
  23.                 //i=0;       
  24.                    TR0=1;                                    //启动定时器0测试低电平宽度               
  25.                   while(in==0);  //高电平到了,
  26.                 TR0=0;                                        //关闭定时器0,低电平宽度测试完
  27.                 //k[i]=TH0;
  28.                 //i++;
  29.                 TH0=0;
  30.                 TL0=0;       
  31.                 TR0=1;                                        //高电平到了,启动定时器1,测试高电平宽度                                       
  32.                   while(in==1);  //低电平到了,
  33.                 TR0=0;                           //关闭定时器1,高电平宽度测试完
  34.                 //k[i]=TH0;
  35.                 //i++;       
  36.                 if(TH0<3)
  37.                 b=1;
  38.                 else b=0;
  39.                 TH0=0;
  40.                 TL0=0;       
  41. }
  42.                        
  43. uchar hw_key()
  44. {                                                                          
  45.         uchar j,m;
  46.         //i=0;                                       
  47.         hw_start();                                        //等待低电平到来
  48.         hw_pulse();       
  49.         for(j=0;j<24;j++)                           //测试用户码脉冲宽度
  50.         {       
  51.                 hw_pulse();       
  52.                 }
  53.         for(j=0;j<8;j++)                           //测试键码脉冲宽度
  54.         {       
  55.                 hw_pulse();       
  56.                 if(b==1)
  57.                 m=(m<<1)|1;
  58.                 else
  59.                 m<<=1;        
  60.                 }
  61.                 return m;                                  //键码
  62. }          
复制代码

所有资料51hei提供下载:
红外HS0038.rar (86.64 KB, 下载次数: 106)



作者: zcjwp520    时间: 2019-11-14 09:00
正在学习单片机编程,希望这个可以学习到遥控解码的方面.
作者: yu007405    时间: 2020-6-20 15:53

正在学习单片机编程,希望这个可以学习到遥控解码的方面.




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1