找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4622|回复: 2
打印 上一主题 下一主题
收起左侧

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, 下载次数: 103)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:641660 发表于 2019-11-14 09:00 | 只看该作者
正在学习单片机编程,希望这个可以学习到遥控解码的方面.
回复

使用道具 举报

板凳
ID:785053 发表于 2020-6-20 15:53 | 只看该作者

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表