基于51单片机的红外遥控器设计Word文件下载.docx

上传人:b****5 文档编号:16109903 上传时间:2022-11-20 格式:DOCX 页数:9 大小:939.85KB
下载 相关 举报
基于51单片机的红外遥控器设计Word文件下载.docx_第1页
第1页 / 共9页
基于51单片机的红外遥控器设计Word文件下载.docx_第2页
第2页 / 共9页
基于51单片机的红外遥控器设计Word文件下载.docx_第3页
第3页 / 共9页
基于51单片机的红外遥控器设计Word文件下载.docx_第4页
第4页 / 共9页
基于51单片机的红外遥控器设计Word文件下载.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

基于51单片机的红外遥控器设计Word文件下载.docx

《基于51单片机的红外遥控器设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于51单片机的红外遥控器设计Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。

基于51单片机的红外遥控器设计Word文件下载.docx

●用Proteus绘制电路图并仿真实现基本功能;

●制作出实物

二、需求分析(系统的应用场景、环境条件、参数等)

现在各种红外线技术已经源源不断进入我们的生活中,在很多场合发挥着作用。

机场、宾馆、商场等的自动门,会在人进出时自动地开启和关闭。

原来,在自动门的一侧有一个红外线光源,发射的红外线照射到另一侧的光电管上,红外线是人体察觉不到的。

当人走到大门口,身体挡住红外线,电管接收不到红外线了。

根据设计好的指令,触发相应开关,就把门打开了。

等人进去后,光电管又可以接到红外线,恢复原来的线路,门又会自动关闭。

因此这种光电管被称为“电眼”,在许多自动控制设备中大显身手。

在家庭中,许多电子设备如彩色电视、空调、冰箱和音响等,都使用了各种“红外线遥控器”。

利用它我们可以非常方便的转换电视频道或设定空调的温度档次。

三、概要设计(系统结构框图/系统工作说明流程图)

红外线收发、显示系统硬件由以下几部分组成:

红外遥控器,51单片机最小系统,接收放大器一体集成红外接收头,LED灯显示电路。

红外线接收是把遥控器发送的数据(已调信号)转换成一定格式的控制指令脉冲(调制信号、基带信号),是完成红外线的接收、放大、解调,还原成发射格式(高、低电位刚好相反)的脉冲信号。

这些工作通常由一体化的接收头来完成,输出TTL兼容电平。

最后通过解码把脉冲信号转换成数据,从而实现数据的传输。

红外遥控系统电路框图

四、详细设计(Proteus电路图、程序流程图、源程序清单)

1)Proteus电路图:

2)程序流程图:

程序是首先初始化红外接收端口,然后检测是否接收红外信号,如果接收到红外信号就调用接收子程序,然后就通过L额度LED显示当前按键的结果,如图所示:

初始化红外接收端口

调用接收子程序

Y

接收到红外信号?

N

开始

LED灯显示

返回

程序流程图

3)源程序清单:

#include<

reg51.h>

//头文件

#defineucharunsignedchar//这里用"

uchar"

代替"

unsignedchar"

,"

用来定义无符号字符型数。

#defineuintunsignedint//"

uint"

用来定义无符号整型数。

uchardistemp;

//定义变量

ucharIRCOM[7];

/*********声明子函数**************/

voiddelay(ucharx);

//x*0.14MS

voiddelayms(uint);

sbitIRIN=P3^3;

//定义红外接收器数据线

/********定义LED灯口线***********/

sbitP2_0=P2^0;

//定义LED灯口线。

sbitP2_1=P2^1;

sbitP2_2=P2^2;

sbitP2_3=P2^3;

sbitP2_4=P2^4;

sbitP2_5=P2^5;

sbitP2_6=P2^6;

sbitP2_7=P2^7;

voidIR_IN()interrupt2using0

{

unsignedcharj,k,N=0;

EX1=0;

delay(15);

if(IRIN==1)

{EX1=1;

return;

}

//确认IR信号出现

while(!

IRIN)//等IR变为高电平,跳过9ms的前导低电平信号。

{delay

(1);

}

for(j=0;

j<

4;

j++)//收集四组数据

{

for(k=0;

k<

8;

k++)//每组数据有8位

{

while(IRIN)//等IR变为低电平,跳过4.5ms的前导高电平信号。

while(!

IRIN)//等IR变为高电平

while(IRIN)//计算IR高电平时长

delay

(1);

N++;

if(N>

=30)

{EX1=1;

}//0.14ms计数过长自动离开。

}//高电平计数完毕

IRCOM[j]=IRCOM[j]>

>

1;

//数据最高位补“0”

=8){IRCOM[j]=IRCOM[j]|0x80;

}//数据最高位补“1”

N=0;

}

if(IRCOM[2]!

=~IRCOM[3])

switch(IRCOM[2])

case0x45:

//全亮

P2=0x00;

break;

case0x47:

//全灭

P2=0xff;

break;

case0x16:

//当得出十六进制值为0x16时。

P2_7=~P2_7;

case0x0c:

P2_6=~P2_6;

case0x18:

P2_5=~P2_5;

case0x5e:

P2_4=~P2_4;

case0x08:

P2_3=~P2_3;

case0x1c:

P2_2=~P2_2;

case0x5a:

P2_1=~P2_1;

case0x42:

P2_0=~P2_0;

EX1=1;

}

voiddelay(unsignedcharx)//延时函数x*0.14MS

unsignedchari;

while(x--)

for(i=0;

i<

13;

i++){}

voiddelayms(uintxms)//延时函数x*1ms

uintk,y;

for(k=xms;

k>

0;

k--)//i=xms即延时约xms毫秒

for(y=110;

y>

y--);

voidcheck()

P2=0X7F;

delayms(200);

P2=0X3F;

P2=0X1F;

P2=0X0F;

P2=0X07;

P2=0X03;

P2=0X01;

P2=0X00;

delayms(1000);

P2=0XFF;

main()//主函数

check();

//开机自检LED的好坏

IE=0x84;

//允许总中断中断,使能INT1外部中断

TCON=0x10;

//触发方式为脉冲负边沿触发

IRIN=1;

//I/O口初始化

delayms(10);

//延时

while

(1)

;

五、系统实现(清晰的实物照片)

六、个人总结(课程学习体会与收获及对课程的建议)

通过本次红外系统的设计,我大有收获。

从得到题目到查找资料,从电路板的调试到失败后再一次全部重新开始,在这一个充满挑战伴随挫折,充满热情伴随打击的过程中,我感触颇深,它已不仅是一个对我三年学习知识情况和我的应用动手能力的检验,而且还是对我的钻研精神,面对困难的心态,做事的毅力和耐心的考验。

我在这个过程中深刻的感受到了做毕业设计的意义所在。

这个课题的根本技术就是单片机控制技术,加部分外围电路来实现一些复杂的功能。

可以根据要求改变软件来实现功能的更新和扩展。

课程设计成绩:

指导教师签字:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 生产经营管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1