红外遥控接收器的设计 联系客服

发布时间 : 星期日 文章红外遥控接收器的设计更新完毕开始阅读016caaaf08a1284ac9504326

图6-6 红外接收程序流程图

6.2小结

单片机对红外遥控八路开关的控制括二个子系统分别是:红外遥控器指令发射、红外遥控指令接收。发射主程序设计是首先是初始化键盘和红外发射端口的参数值,然后让单片机扫描检测键盘,如果有按键按下就让其相应的按键编码通过红外发射管发射出去。接收主程序是首先初始化红外接收端口,然后检测是否接收红外信号,如果接收到红外信号就调用接收子程序,然后就通过LCD1602显示当前LED灯熄灭的状态如此循环。

七、系统测试

7.1系统功能测试

经过硬件和软件的设计后制作出了作品,并对作品进行了系统的测试,达到了设计要求。下面进行遥控的开关状态量进行测试,数据如表6-1,达到红外遥控功能。

- 12 -

次数 1 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 长按5S 按键 B S1 S1 S2 S2 S3 S3 S4 S4 S5 S5 S6 S6 S7 S7 S8 S8 B 表6-1 遥控发射与接收的对应关系 设备Z指示灯 对应发光二极管 显示 亮 灭 Welcome 亮 发光 Device 1 on 亮 灭 Device 1 off 亮 发光 Device 2 on 亮 灭 Device 2 off 亮 发光 Device 3 on 亮 灭 Device 3 off 亮 发光 Device 4 on 亮 灭 Device 4 off 亮 发光 Device 5 on 亮 灭 Device 5 off 亮 发光 Device 6 on 亮 灭 Device 6 off 亮 发光 Device 7 on 亮 灭 Device 7 off 亮 发光 Device 8 on 亮 灭 Device 8 off 灭 全部熄灭 Device all off 状态 正常 正常 正常 正常 正常 正常 正常 正常 正常 正常 正常 正常 正常 正常 正常 正常 正常 正常 通过示波器可以测到输出波形(Ch1)与接收波形(Ch2)的关系,如图6-7

所示:

图6-7 发射与接收波形对应波形

- 13 -

八、参考文献

1、迟荣强:《单片机原理及接口技术》[M],高等教育出版社,第56页。 2、何立民:《单片机应用技术选编》[M],北京航空航天大学出版社,第79页。 3、张龙三:《C语言控制与应用》[M],清华大学出版社,第28页。 4、沙占友:《单片机外围电路设计》[M],电子工业出版社,第53页。

5、赵 健:《实用声光及无线电遥控电路300例》,中国电力出版社出版,第21-52页。 6、黄继昌:《电子元器件应用手册》 [M],北京人民邮电出版社,第12-52页。 7、张伟、王力、赵晶:《电子设计与制版Protel DXP入门与提高》 [M],北京人民邮电出版社, 第41-52页。

九、致谢

本次设计综合我们所学到的专业知识,把理论联系到实际;为了提高自己的综合能力,从选题、收集资料、模块电路设计、绘制原理图、程序的编制到最后的资料整理都是自己亲自完成的。

在老师的指导和同学的帮助下,我克服了对复杂电路设计的畏惧情绪,顺利完成了本次设计任务。通过本次设计,我对电路设计以及软件控制等方面都有了更为深刻的认识,并在实际电路连接中,掌握了很多技能。我真诚的感谢老师,她是一位非常认真、严谨的老师,对电路设计、制作有着丰富经验,他对本人的设计思路及其最终实现都提出了非常宝贵的意见,并指出了设计思路中存在的不足,使得本次设计能够圆满成功。

同时我还要感谢我寝室的同学在学习、生活上对我的关心,也给了我莫大的支持。 本次课题的设计是一次理论与实际相结合的考验,它使我更加真切的体会到,作为一名自动化专业的学生,光会纸上谈兵是远远不够的,实际动手能力和扎实的理论知识同等重要。本次设计对于我来说,既是一次对理论知识的巩固和提高,也是对实际动手操作能力的锻炼和加强。

这是本人完成系统的整体设计,难免会出现错误和不足之处,恳请批评指正!

- 14 -

附录1

void sendirdata() {

uchar s=0,user=0,shuju=0,hc=0; TR0=1;

/***发送引导码******************************************/ endcount=700; //发送9ms起始码的高电平 p3_7=1; count=0;

do{}while(count

endcount=350; //发送4.5ms的结果码低电平 count=0; p3_7=0;

do{}while(count

/***发送系统码*******************************************/ user=system; for(s=0;s<=7;s++) {

endcount=30;count=0; //发送公共的0.56ms高电平 p3_7=1;

do{}while(count

do{}while(count

/***发送系统反码******************************************/ user=system; for(s=0;s<=7;s++) {

- 15 -