基于51单片机的红外遥控器设计.docx
- 文档编号:3200151
- 上传时间:2022-11-20
- 格式:DOCX
- 页数:9
- 大小:939.85KB
基于51单片机的红外遥控器设计.docx
《基于51单片机的红外遥控器设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机的红外遥控器设计.docx(9页珍藏版)》请在冰豆网上搜索。
基于51单片机的红外遥控器设计
天津职业大学
二○一五~二○一六学年第1学期
电子信息工程学院
通信系统综合实训报告书
课程名称:
通信系统综合实训
班级:
通信技术(5)班
学号:
130404564013040456411304045646
姓名:
韩美红季圆圆陈真真
指导教师:
崔雁松
2015年11月17日
一、任务要求
利用C51单片机设计开发一套红外线收发、显示系统。
具体要求:
●编写相关程序(汇编、C语言均可);
●用Proteus绘制电路图并仿真实现基本功能;
●制作出实物
二、需求分析(系统的应用场景、环境条件、参数等)
现在各种红外线技术已经源源不断进入我们的生活中,在很多场合发挥着作用。
机场、宾馆、商场等的自动门,会在人进出时自动地开启和关闭。
原来,在自动门的一侧有一个红外线光源,发射的红外线照射到另一侧的光电管上,红外线是人体察觉不到的。
当人走到大门口,身体挡住红外线,电管接收不到红外线了。
根据设计好的指令,触发相应开关,就把门打开了。
等人进去后,光电管又可以接到红外线,恢复原来的线路,门又会自动关闭。
因此这种光电管被称为“电眼”,在许多自动控制设备中大显身手。
在家庭中,许多电子设备如彩色电视、空调、冰箱和音响等,都使用了各种“红外线遥控器”。
利用它我们可以非常方便的转换电视频道或设定空调的温度档次。
三、概要设计(系统结构框图/系统工作说明流程图)
红外线收发、显示系统硬件由以下几部分组成:
红外遥控器,51单片机最小系统,接收放大器一体集成红外接收头,LED灯显示电路。
红外线接收是把遥控器发送的数据(已调信号)转换成一定格式的控制指令脉冲(调制信号、基带信号),是完成红外线的接收、放大、解调,还原成发射格式(高、低电位刚好相反)的脉冲信号。
这些工作通常由一体化的接收头来完成,输出TTL兼容电平。
最后通过解码把脉冲信号转换成数据,从而实现数据的传输。
红外遥控系统电路框图
四、详细设计(Proteus电路图、程序流程图、源程序清单)
1)Proteus电路图:
2)程序流程图:
程序是首先初始化红外接收端口,然后检测是否接收红外信号,如果接收到红外信号就调用接收子程序,然后就通过L额度LED显示当前按键的结果,如图所示:
初始化红外接收端口
调用接收子程序
Y
接收到红外信号?
N
开始
LED灯显示
返回
程序流程图
3)源程序清单:
#include
#defineucharunsignedchar//这里用"uchar"代替"unsignedchar","uchar"用来定义无符号字符型数。
#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的前导高电平信号。
{delay
(1);}
while(!
IRIN)//等IR变为高电平
{delay
(1);}
while(IRIN)//计算IR高电平时长
{
delay
(1);
N++;
if(N>=30)
{EX1=1;
return;}//0.14ms计数过长自动离开。
}//高电平计数完毕
IRCOM[j]=IRCOM[j]>>1;//数据最高位补“0”
if(N>=8){IRCOM[j]=IRCOM[j]|0x80;}//数据最高位补“1”
N=0;
}
}
if(IRCOM[2]!
=~IRCOM[3])
{EX1=1;return;}
switch(IRCOM[2])
{
case0x45:
//全亮
P2=0x00;
break;
case0x47:
//全灭
P2=0xff;
break;
case0x16:
//当得出十六进制值为0x16时。
P2_7=~P2_7;
break;
case0x0c:
P2_6=~P2_6;
break;
case0x18:
P2_5=~P2_5;
break;
case0x5e:
P2_4=~P2_4;
break;
case0x08:
P2_3=~P2_3;
break;
case0x1c:
P2_2=~P2_2;
break;
case0x5a:
P2_1=~P2_1;
break;
case0x42:
P2_0=~P2_0;
break;
}
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>0;y--);
}
voidcheck()
{
P2=0X7F;delayms(200);
P2=0X3F;delayms(200);
P2=0X1F;delayms(200);
P2=0X0F;delayms(200);
P2=0X07;delayms(200);
P2=0X03;delayms(200);
P2=0X01;delayms(200);
P2=0X00;delayms(1000);
P2=0XFF;
}
main()//主函数
{
check();//开机自检LED的好坏
IE=0x84;//允许总中断中断,使能INT1外部中断
TCON=0x10;//触发方式为脉冲负边沿触发
IRIN=1;//I/O口初始化
delayms(10);//延时
while
(1)
{
;
}
}
五、系统实现(清晰的实物照片)
六、个人总结(课程学习体会与收获及对课程的建议)
通过本次红外系统的设计,我大有收获。
从得到题目到查找资料,从电路板的调试到失败后再一次全部重新开始,在这一个充满挑战伴随挫折,充满热情伴随打击的过程中,我感触颇深,它已不仅是一个对我三年学习知识情况和我的应用动手能力的检验,而且还是对我的钻研精神,面对困难的心态,做事的毅力和耐心的考验。
我在这个过程中深刻的感受到了做毕业设计的意义所在。
这个课题的根本技术就是单片机控制技术,加部分外围电路来实现一些复杂的功能。
可以根据要求改变软件来实现功能的更新和扩展。
课程设计成绩:
指导教师签字:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 红外 遥控器 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)