基于单片机系统的红外遥控器应用
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.
- DIY智能家居之多功能一体化触屏遥控器的设计实现(04-14)
- 红外线遥控器软件解码原理和程序(C语言)(12-03)
- 红外通信—红外遥控器NEC解码程序(12-02)
- 通过串口发送红外遥控器的解码值到PC(12-02)
- 合泰单片机接收红外遥控器程序(NEC码)(12-01)
- 自制电脑红外遥控器(11-30)