一. 实验目的 1. 了解红外遥控编码并用单片机捕捉信号及解码 2. 熟悉LCD1602的驱动
二.红外遥控器编码 遥控器编码分好几种,常见的32位编码码和42位编码码,目前我手中遥控器就是42位编码,如图1所示,当有按键时就会产一个9.12ms低电平和4.5ms高电平的起始码,紧接着是26位系统码,此系统码能区别不同的电器设备,防止不同机种遥控码互相干扰,接下来是8位数据码和8位数据反码,间隔23ms的高电平后,再发一个与启始码完全一样的结束码
以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2所示。
图2
再回头看图1,大家不难看出,图1是遥控器按键1的一串编码
三. 硬件连接 接收电咱我们使用一化红外接红外接收管3800,不需要任何外接无件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,实物如图所示
四. 解码 以上我们了解了红外遥控的编码及硬件连接,现在就对其进行解码,所谓解码就是能用单片机把以不同宽度的脉冲区别开来,一种比较好思路就是计算两次下降沿间隔时间,当单片机外部中断1口有下降沿时中断一次,并启动定时器,定时器定50us,当下次下降沿到来时我们计算定时器中断的次数,这样我们就能很好的区分不同宽度的脉冲了。 大家可能已经迫不急待的要开始解码了,别急,我们先把注意事项先讲一下,实际上,我们红外接收头收到的信号的是有毛刺的,放大后就如下图,所以在下降沿中断触发后,要做延时去抖处理
************以下是完整解码程序***************
/********************************************* 用11.0592MHZ晶振 跳线设置:J7的23端插上跳线(实验完毕千万计的要拔掉,不然会干扰其他实验切记!!) 其他默认.
**本程序适合42位码遥控器,即26位系统码,16位
数据码,如:57L5,55K2,54B4,KD-29,55K8,5Z26A,等型号的遥控器
如果想要得到红外遥控器的波形图请看 "用51hei开发板制作红外无线逻辑分析仪"一文介绍了得到和分析红外的波形的方法 http://www.51hei.com/bbs/dpj-4524-1.html *********************************************/
点这里下载源代码和hex文件:
http://www.51hei.com/ziliao/51hei-5/红外解码+1602液晶1.rar
[此贴子已经被作者于2010-7-27 8:29:03编辑过]
|