基于单片机的红外遥控智能调光调速器的设计
时间:03-08
来源:互联网
点击:
3 程序设置
软件设计主要分为主程序、遥控接收解码子程序、继电器驱动程序。利用单片机对红外信号进行快速解码的时候,采用外部中断的方式,中断的触发方式为低电平触发方式,具体的算法为:在外部中断服务程序中,如果起始码和结果码正确,进行解码,否则退出。在解码的时候,等待第一个高电平的到来,即红外遥控引导信号(一个9ms的低电平和一个4.5ms的高电平),然后收集用户码高8位和8位键值反码数据,并存入一个数组中。解码的关键是如何识别“0”和“1”。程序中设计一个0.14ms的延时函数,作为单位时间,对脉冲维持高电平的时间进行计数,并把此计数值存入一个变量中。看高电平保持的时间是几个0.14ms。高电平保持时间必须比0.56ms长些,但又不能超过1.12 ms,否则如果该位为“0”,读到的已是下一位的高电平,因此,在程序中,取0.14×6=0.84ms左右比较合理。
“0”和“1”的具体要求判断由程序中的以下语句判断:
IRCOM[j]=IRCOM[j]>>1;∥计数小于6,收到的是0,数据最高位补0。
if(N>=8){IRCOM[j]=IRCOM[j]|0x80;}∥计数大于等于6,收到的是1,数据最高位补1。
另外当高电平计数为30时(0.14×30=4.2ms),说明有错误,程序退出。
程序流程图见图5。4 结论
红外遥控调光电路的关键是红外遥控的解码,发射时利用现有的电视机万能遥控,使其有了第二功能。在解码红外信号上,应用了脉冲位置调制(PPM)法。即采集其高低电平宽度的方法,可以还原出信号的各个编码,简化了电路。同时,采用了专用调光调速芯片来控制负载,增强了系统功能、并且能安全、可靠地工作。本设计非常简单的实现了红外遥控信号解码,完成了无级调光与调速功能,效果令人满意。制作好的电路见图6、图7。
软件设计主要分为主程序、遥控接收解码子程序、继电器驱动程序。利用单片机对红外信号进行快速解码的时候,采用外部中断的方式,中断的触发方式为低电平触发方式,具体的算法为:在外部中断服务程序中,如果起始码和结果码正确,进行解码,否则退出。在解码的时候,等待第一个高电平的到来,即红外遥控引导信号(一个9ms的低电平和一个4.5ms的高电平),然后收集用户码高8位和8位键值反码数据,并存入一个数组中。解码的关键是如何识别“0”和“1”。程序中设计一个0.14ms的延时函数,作为单位时间,对脉冲维持高电平的时间进行计数,并把此计数值存入一个变量中。看高电平保持的时间是几个0.14ms。高电平保持时间必须比0.56ms长些,但又不能超过1.12 ms,否则如果该位为“0”,读到的已是下一位的高电平,因此,在程序中,取0.14×6=0.84ms左右比较合理。
“0”和“1”的具体要求判断由程序中的以下语句判断:
IRCOM[j]=IRCOM[j]>>1;∥计数小于6,收到的是0,数据最高位补0。
if(N>=8){IRCOM[j]=IRCOM[j]|0x80;}∥计数大于等于6,收到的是1,数据最高位补1。
另外当高电平计数为30时(0.14×30=4.2ms),说明有错误,程序退出。
程序流程图见图5。4 结论
红外遥控调光电路的关键是红外遥控的解码,发射时利用现有的电视机万能遥控,使其有了第二功能。在解码红外信号上,应用了脉冲位置调制(PPM)法。即采集其高低电平宽度的方法,可以还原出信号的各个编码,简化了电路。同时,采用了专用调光调速芯片来控制负载,增强了系统功能、并且能安全、可靠地工作。本设计非常简单的实现了红外遥控信号解码,完成了无级调光与调速功能,效果令人满意。制作好的电路见图6、图7。
源程序:
总电路图:
- 单片机教程之51单片机红外摇控,并在LCD1602上显示(11-27)
- 嵌入式程序中的指令数据存储及读取设计(07-14)
- 基于24C08带掉电记忆功能的两路电子跑表(12-02)
- 51单片机指令快速记忆方法总结(10-15)
- 2012年全球存储器模组厂营收排名(09-12)
- 基于ARM和Linux的路径记忆循迹小车(09-12)