通用红外遥控系统由发射和接收两大部分组成。图21-2 红外线遥控系统框图遥控发射器专用芯片很多,本系统采用的红外遥控器是NEC的UPD6121编码。图21-3 遥控码“0”和“1”编码上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。UPD6121最多可有128种不同组合的编码。红外遥控最常用的载波频率为38kHz,这是由于发射端使用的455kHz晶振决定的。......
2023-11-04
红外遥控的解码就是从遥控器过来的信号,经过接收电路处理之后,将在输出端给出一个脉冲序列,而解码就是从这个脉冲序列中把信息恢复出来,不过注意很重要的一点:收到的信号是发射端信号的反相电平。
本设计对于UPD6121编码的解码,方法是获取电平的时间长度,然后按照给定参数识别出信息。本设计采用的解码方法是采用硬件外部中断的方法,这种方法占用的硬件资源较少,但软件在中断程序里逗留的时间比较长,在一些时间敏感的场合不合适使用。软件解码程序的流程图如图21-15所示。
单片机P3.2(IRIN)一检测到有红外数据发送过来,就进入中断服务程序。整个中断服务子程序主要分红外遥控器解码、蜂鸣器提示、键盘处理以及LCD显示等程序。红外遥控器解码程序分两步,第一步是读取并判断引导码是否正确,如果不是则直接返回并初始化检测参数;第二步是连续4次,按照每次8位读取4个字节的后续数据,其中,检测过程中对0和1的判断必须是在延时0.56ms之后,一般取0.8ms中间值,以减少因为程序执行而导致的测量时间长度上的误差。校验密码主要通过读入的4字节红外编码中,前两个是用户码和用户码的反码,后两个是键数据码和键数据码的反码,故只需将最后一个键数据反码取反后与键数据码相比较。若相等,则数据正确,将键值编码读入进行处理;若不相等,则数据读取错误,中断程序返回。红外遥控器发送过来的主要是以下五个键:正转、反正、加速、减速以及停止键。若是正转键按下,则电动机按照A→B→C→D→A方向依次通电;若是反转键按下,则电动机按照A→D→C→B→A方向依次通电;若是加速键按下,则减少单相通电的延时时间;若是减速键按下,则增加单相通电的延时时间;若是停止键按下,则电动机停止旋转。红外遥控接收的关键代码如下:
(www.chuimin.cn)
图21-15 红外遥控器解码程序流程图
有关51单片机初级入门实战教程的文章
通用红外遥控系统由发射和接收两大部分组成。图21-2 红外线遥控系统框图遥控发射器专用芯片很多,本系统采用的红外遥控器是NEC的UPD6121编码。图21-3 遥控码“0”和“1”编码上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。UPD6121最多可有128种不同组合的编码。红外遥控最常用的载波频率为38kHz,这是由于发射端使用的455kHz晶振决定的。......
2023-11-04
表6-2 流水灯流水样式描述表尝试从优化程序结构简化程序角度书写流水灯软件程序,从表6-2中可以看出,8只流水灯从左到右依次循环闪烁,将8只LED合成一个整体来考虑,利用循环移位指令,采用循环程序结构进行程序设计,在程序开始给P0口置数使得P0.0先为低电平,其他位为高电平,然后延时一段时间,再让这个数据向高位移动,然后再输出至P0口,从而实现“流水”效果。......
2023-11-04
本电路可以同时对多路家用电器进行遥控,电路具有简单可靠、省电、制作容易等特点,遥控距离8m以上。C2、RP与内部集成电路构成76kHz振荡器。遥控器发射的编码信号经过红外接收集成电路CX20106处理,送LC2200译码后输出控制各路负载。直到再按一次遥控开关S3,C输出端重新恢复成低电平,VT2截止,K释放,用电器停止工作。......
2023-06-28
图10-3 中断方式T0控制LED程序流程图用定时器T0方式1编写程序,即采用中断方式设计的程序流程图如图10-3所示。在图10-3程序流程图的基础上书写中断实现T0控制LED闪烁程序代码如下:结合2.3节关于单片机开发环境Keil C51的学习,建立工程time文件,并将上述代码在Keil环境下进行编译,程序成功编译结果如图10-4所示。同时在创建工程路径time1文件夹下生成一个扩展名为.hex文件,供下载软件将生成的.hex文件下载到单片机中。......
2023-11-04
图7-4 独立按键控制程序流程图在独立按键控制程序流程图的基础上书写按键控制LED程序代码如下:结合2.3节关于单片机开发环境Keil C51的学习,建立工程button文件,并将上述代码在Keil环境下进行编译,程序成功编译结果如图7-5所示。同时在创建工程路径button文件夹下生成一个扩展名为.hex文件,供下载软件将生成的.hex文件下载到单片机中。......
2023-11-04
②“//{{AFX_MSG”下面的代码,是用来管理以“WM_”开头的Windows消息映射函数的。消息映射函数,就是MFC自动把每个消息分离出来,并关联到一个类成员函数上。它是另一类回调函数,和消息回调映射函数类似。基于以上宏定义,把消息映射关联代码替换成原型后会发现ON_WM_MOUSEMOVE是WM_MOUSEMOVE消息和OnMouseMove成员函数地址的关联。4)解密消息映射宏定义。messageMap结构体主要是建立和处理基类消息和派生类消息之间的关系。......
2023-11-25
图12-2 SOAP服务如果服务没有开启,需要在PHP配置文件中开启,如以下代码所示。其中参数1表示SOA服务描述文件,即WSDL文件,该文件是SOAP通信的核心;参数2表示SOAP协议版本,常用的版本有1.0及1.2,本章内容及示例全部基于SOAP 1.2版本实现。使用普通的Firebug等插件不能获取到异常信息,而断点调试是PHP的弱项,所以调试问题将会是SOAP开发首要面对的问题。......
2023-11-04
图19-1为果园环境信息远程监测系统原理图,整个系统由底层的远程监测采集感知端、中间层移动GSM网络和上层移动客户端三部分构成。单片机将采集的数据通过串行通信口P3.0和P3.1,经电平转换电路与GSM模块TC35i相连,控制TC35i对数据进行收发处理。启动电路需给ZIF连接器15脚加时长至少为100ms的低电平信号,且该信号下降沿时间小于1ms,系统启动后ZIF连接器15脚的信号应保持高电平。......
2023-11-04
相关推荐