2014单片机红外遥控.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2014单片机红外遥控

电子与信息学院单片机实训  PAGE 9 一、设计目的和要求 目的:使用单片机为核心设计并制作一个受红外遥控的家用电风扇。 (1)使用89C52芯片 (2)红外遥控 (3)有档位控制,分为1,2,3档,以及关闭功能。 (4)电路隐藏在风扇内,不影响风扇的整体外观。 要求: (1)作品在完成基本功能的基础上,功能越多,创意越新。 (2)焊接质量 版面元器件布置合理整齐,焊接应牢固光滑,无虚焊,走线均匀合理,电源与地线走线及线径粗细合理。 二、系统设计 3.1 系统硬件电路设计(主要硬件设计) (1) (2)红外接收电路 (3)单片机各端口均加上拉电阻。 3.2 软件设计(给出程序流程图) (1) 接收解码程序流程图 (2)开关执行程序: #includereg51.h #define GPIO_DIG P0 sbit IRIN=P3^2; sbit a1=P1^4; sbit a2=P1^3; sbit a3=P2^5; unsigned char IrValue[6]; unsigned char Time; void IrInit(); void DelayMs(unsigned int ); void main() { P2=0x00; P1=0x00; P0=0x00; IrInit(); while(1) { if(IrValue[2]==0x45) //关 { a1=0;; a2=0; a3=0; } if(IrValue[2]==0x0c)//1档 { a1=1;; a2=0; a3=0; } if(IrValue[2]==0x18)//2档 { a1=0;; a2=1; a3=0; } if(IrValue[2]==0x5e)//3档 { a1=0;; a2=0; a3=1; } } } 三、采用的调试工具及方法、步骤 软件调试工具: (1)按照流程图在keil中写出解码程序。烧录到单片机中,检测是否能正确接收到遥控。 (2)编写开关执行程序。 (3)STC-ISP烧录软件。 硬件:软件仿真中没有红外模块,于是直接采用插面包板进行硬件调试。 四、结果与讨论 (给出效果图) (1)K1继电器闭合(通过LED1点亮可以看出) (2)K2继电器闭合(通过LED2点亮可以看出) (3)K3继电器闭合(通过LED3点亮可以看出) (4)效果图: 五、参考文献(不能将教科书作为参考文献) 《51单片机开发与应用》 《51单片机入门》 百度文库  HYPERLINK 电路图.png 附录1给出一幅清晰完整的系统原理???  HYPERLINK 程序 附录2完整程序清单  HYPERLINK 视频 附录3 作品工作过程完整视频(一律为AVI格式) 程序: #includereg51.h #define GPIO_DIG P0 sbit IRIN=P3^2; sbit a1=P1^4; sbit a2=P1^3; sbit a3=P2^5; unsigned char IrValue[6]; unsigned char Time; void IrInit(); void DelayMs(unsigned int ); void main() { P2=0x00; P1=0x00; P0=0x00; IrInit(); while(1) { if(IrValue[2]==0x45) //关 { a1=0;; a2=0; a3=0; } if(IrValue[2]==0x0c) { a1=1;; a2=0; a3=0; } if(IrValue[2]==0x18) { a1=0;; a2=1; a3=0; } if(IrValue[2]==0x5e) { a1=0;; a2=0; a3=1; } } } void DelayMs(unsigned int x) //0.14ms误差 0us { unsigned char i; while(x--) { for (i = 0; i13; i++) {} } } void IrInit() { IT0=1;//下降沿触发 EX0=1;//打开中断0允许 EA

文档评论(0)

ktj823 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档