微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于单片机系统的红外遥控器应用

基于单片机系统的红外遥控器应用

时间:03-30 来源:互联网 点击:

4没有中断系统,程序采用软件查询法,查询输入引脚的电平变化,采用定时器定时,根据定时器的记录值和已知的信号格式比较,判断各部分接收是否正确以及分辨键码并执行相应的命令。

由于遥控器脉宽时间值是在一个小范围内波动,而且检测过程中定时器也存在误差。因此,对信号的识别不能采取精确比较法,本程序采用了区间比较法,即判断定时器的记录值是否在预先计算的区间内。由88于引导脉冲和数据脉冲的时间相差很大,解码时对定时器采用不同的预分频,以尽量提高解码的准确度。  

①引导脉冲判断:低8.84 ms,高4.40 ms,预分频1∶64,理论计算得定时器值应为:低8AH,高44H。如实际所得低部分在85H和90H之间、高部分在40H和4AH之间,则认为引导脉冲接收正确。

②“0”,“1”判断:数据脉冲流的低电平脉宽相同,忽略不判断;高电平脉宽是判断数据流每位是“0”还是“1”的依据。“0”对应高0.50 ms,“1”对应高1.62 ms,预分频1∶8,理论计算得定时器值应为:“0”对应高3EH,“1”对应高0CAH。如所得“0”对应高在39H和42H之间、“1”对应高在 0C5H和0D0H之间则认为接收正确。

③判断16 b识别码是否和已知的识别码(19D6H)相同。

④判断8 b键码是否与8 b键码的反码相对应。⑤根据键码,选择所应执行的命令。

由于篇幅所限,仅给出判断“0”部分程序:  

注意,在程序容易发生死循环或者出错的地方,要检验定时器是否溢出。一旦发生溢出,要立即使程序复位,以便程序能够在出错之后返回到程序开始部分,增强系统的可靠性。基于以上设计思想可以在多种单片机上实现遥控器的解码。读者可自行尝试应用中断方法实现遥控器的信号解码。

本文所介绍的红外遥控器接收发送原理及信号码识别和解码程序,可以方便地移植到其他系统,其方法简洁灵活。此方法具有一般性,对于具体的应用,可自行变通。

参考文献
[1]窦振中.PIC系列单片机原理和程序设计[M].北京:北京航空航天大学出版社,1998.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top