- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)