红外遥控器信号接受和现实研发设计实现.docx
- 文档编号:30819210
- 上传时间:2024-01-30
- 格式:DOCX
- 页数:20
- 大小:408.05KB
红外遥控器信号接受和现实研发设计实现.docx
《红外遥控器信号接受和现实研发设计实现.docx》由会员分享,可在线阅读,更多相关《红外遥控器信号接受和现实研发设计实现.docx(20页珍藏版)》请在冰豆网上搜索。
红外遥控器信号接受和现实研发设计实现
电子电路实验3
综合设计实验总结报告
题目:
红外遥控器信号接受和现实的设计实现
班级:
学号:
姓名:
日期:
成绩:
摘要
随着电子技术的发展,红外遥控器越来越多用到电气设备中,为电器用户提供了极大的方便。
但是各种型号的遥控器的大量使用带来的遥控器的大批量多品种的生产检测却是一个难题,因此红外遥控器接受和显示的设计实现以改变生产一线的这种状况成为一种迫切的需要。
在本实验的设计中,采用HS0038塑封一体化红外线接收器,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而且体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。
整个电路分为四个模块:
单片机最小系统、通信模块、红外接收模块以及数码管显示模块。
四个模块的相互连接配合实现了数码管显示遥控器的按键值以及当按下左右键时,数码管上实现流水灯现象,并通过串口调试助手,在PC机上显示其按键值。
此设计加以完善推广,可在生产生活中被广泛的应用。
矚慫润厲钐瘗睞枥庑赖。
一课题的任务与要求
结合单片机最小电路和红外接收接口电路共同设计一个基于单片机的红外遥控信号接收与转发系统,用普通电视机遥控器控制该系统,使数码管显示信号的接受结果。
聞創沟燴鐺險爱氇谴净。
1当遥控器按下数字键时,在数码管上显示其键值。
如按下数字键1,则在数码管上显示号码“01”。
2当遥控器按下左键及右键时,用两位数码的周围段实现顺时针或者逆时针旋转的流水灯功能。
*3运用串口调试助手,在遥控器有按键按下时,将其键值显示在PC机上。
二系统概述
1设计方案
为了实现系统整体功能,红外解码部分是核心,红外解码指将遥控发射器所产生的红外遥控编码脉冲所对应的键值翻译出来的过程。
下面将系统方案做一论证,通常有硬件解码和软件解码两种方案。
残骛楼諍锩瀨濟溆塹籟。
方案一:
硬件解码
此方案中,使用专用遥控器作为控制信号发出装置,当按下遥控器的按键后,一体化红外接收装置接收到遥控器发出的设置控制信号,然后将信号送到专用的解码芯片中进行解码,解码后将信号送到单片机,由单片机查表判断这个信号是按键数值信号或控制音量、频道等信号,当确认是何种信号后,启动子程序,然后进行查询。
每次红外接收头接收到红外信号传到解码器中,解码器解码完毕后送到单片机,单片机再通过查表确定这些数值并进行相应功能的控制。
设计原理图如图1所示。
酽锕极額閉镇桧猪訣锥。
图1方案一原理图
方案二:
软件解码
此方案中,采用普通的家用遥控器作为控制信号发出装置,当按下遥控器的按键后,一体化红外接收装置接收到遥控器发出的红外线控制信号,然后把这个信号转换成电信号,传到单片机中,利用单片机对这个信号进行解码,解码完成后查表确定是按键数值信号或控制音量、频道等信号,启动子程序,进行相应的显示数字等功能。
然后查询,重复上述流程。
设计原理图如图2所示。
彈贸摄尔霁毙攬砖卤庑。
图2方案二设计原理图
2方案比较与选取
方案一为硬件解码方案,硬件解码需要使用与遥控器相配套的专用的解码器芯片,而解码芯片一般不易得到,价格也较贵,或者自行开发解码电路(但电路太复杂,性能欠佳)。
謀荞抟箧飆鐸怼类蒋薔。
方案二为软件解码方案,软件解码可以不考虑遥控器的芯片是什么型号的,因为我们只需检测到它的发射编码,然后用软件方式来对它进行处理,从而得到所要的信息。
软件解码具有灵活、硬件精简(仅需集成红外接收头和一片单片机)、可靠性高,成本低等特点。
厦礴恳蹒骈時盡继價骚。
基于以上特点,选取方案二作为实验方案。
3系统框图
系统框图如图3所示。
图3系统框图
遥控器为控制信号的发出装置,用一体化红外接收装置HS0038接收遥控器发出的红外线控制信号,并与单片机相连实现数据传输,通过单片机编程将接收到的数字编码在数码管上显示出来,当按下左右键时,数码管将实现流水灯现象。
使用MAX232芯片、串口及若干电容来完成串口模块,以实现单片机和PC机的通信功能并且达到可以使用串口调试助手的目的。
茕桢广鳓鯡选块网羈泪。
三单元电路设计与分析
1单片机最小系统
单片机选用STC89C51,主要负责整个系统的控制及数据的存储和处理。
放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。
外接晶体谐振器以及电容构成并联谐振电路,接在放大器的反馈回路中。
根据情况本设计中选择12MHz的晶振,补偿电容选择30pF左右的电容。
单片机最小系统电路图如图4所示。
鹅娅尽損鹌惨歷茏鴛賴。
图4单片机最小系统
2通信模块
通信模块用于将编写好的程序下载至单片机中,采用MAX232与串口相连组成了通信下载电路。
MAX232是MAXIM公司专门为PC视RS-232标准串口设计的电平转换电路。
该芯片与TTL/COMS电平兼容,片内有2个发送器,2个接收器,且使用+5V单电源供电。
通信模块电路如图5所示。
籟丛妈羥为贍偾蛏练淨。
图5通信模块电路图
3红外接收模块
本电路采用HS0038塑封一体化红外线接收器,它是一种集红外线接收、放大、整形于一体的集成电路,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,没有红外遥控信号时为高电平,收到红外信号时为低电平,而且体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。
电路图如图6所示。
預頌圣鉉儐歲龈讶骅籴。
图6红外接收电路
4数码管显示电路
数码管显示电路采用两位共阳数码管LG5022BH,由单片机的P3^2和P3^3作为位选口,输出低电平时数码管被选中;P1口作为段选。
选用三极管S8550驱动,e极与VCC相连,b极接电阻后与单片机的P3^2和P3^3口相连,c极与数码管的位选口相连。
数码管显示电路如图7所示。
渗釤呛俨匀谔鱉调硯錦。
图7数码管显示电路
四安装调试及测量数据分析
总体电路一次组装完毕后,首先采用分块调试,采用这种调试的方法,可以缩小问题出现的范围,可及时发现,易于解决。
铙誅卧泻噦圣骋贶頂廡。
首先进行单片机最小系统的测试,将单片机的VCC与电源正极相连,连接完成后用示波器观察晶振两端起振,且30管脚有波形。
单片机最小系统正常工作。
擁締凤袜备訊顎轮烂蔷。
接下来测试通信模块,测试单片机与PC机之间能否正常通信,单片机与PC机之间正常通信,通信模块测试正常。
贓熱俣阃歲匱阊邺镓騷。
接下来对数码管显示电路进行测试,首先将数码管动态显示的程序下载至单片机中对数码管显示电路进行测试,数码管没有示数,用万用表检查数码管显示电路是否有短路和短路的情况,检测结果发现三极管连接有断路,将断路处重新焊接好后再次进行检测,这时数码管有示数出现,但其中一位的“c”段始终没有显示,检查“c”段所对应的电路连接情况,发现有断路情况出现,再次焊接好后重新检测,数码管正常显示,数码管显示电路调试完毕。
坛摶乡囂忏蒌鍥铃氈淚。
之后进行程序下载调试。
主函数软件流程图如图8所示。
图8主函数软件流程图
将最初编写好的程序下载到电路板上后,数码管不能按照预定的想法显示,对程序进行仔细检查后,发现有的数组编写错误,经细心修正后,使得所有的数组均能正确的显示想要表示的功能。
但在显示数值时发生数值跳变的情况,由一个数值跳变为乱码,后经在程序中增加延时函数解决此问题。
最后,在使用串口调试助手实现单片机与PC机之间的通信时,PC机接收到得数据有误,后经程序修正及调节串口调试助手的比特率,使得两机之间的通信顺利进行。
至此,电路和程序全部调试完毕。
蜡變黲癟報伥铉锚鈰赘。
五结束语
本实验基本满足了设计要求,实现了当遥控器按下数字键时,在数码管上显示其键值。
如按下数字键1,则在数码管上显示号码“01”;当遥控器按下左键及右键时,两位数码的周围段实现顺时针或者逆时针旋转的流水灯功能;运用串口调试助手,在遥控器有按键按下时,能将其键值显示在PC机上。
買鲷鴯譖昙膚遙闫撷凄。
本设计仍然存在着一些不足之处,例如只能实现对遥控器少量按键在数码管上的显示情况,而对于其他按键的显示大多没有规律或显示乱码,在此方面有待提高和改进。
綾镝鯛駕櫬鹕踪韦辚糴。
随着电子技术的发展,红外遥控器越来越多用到电气设备中,为电器用户提供了极大的方便。
但是,对于电器生产厂家来说,各种型号的遥控器的大量使用带来的遥控器的大批量多品种的生产检测却是一个难题。
目前市面上对遥控器的检测还是使用比较落后的手动方式逐一进行,使得一线的检测工人既费时又费力而又效率低下;另外,在电器产品的调试过程中,当出现控制故障时,很难判断到底是遥控器的发射故障还是电脑上的接受故障。
因此红外遥控器接受和显示的设计实现以改变生产一线的这种状况成为一种迫切的需要。
驅踬髏彦浃绥譎饴憂锦。
通过此次试验的整个设计,焊接以及调试的完成,使我了解了常用红外接收器的原理并基本掌握了其设计和使用的方法,了解了实际遥控器编码的数据格式,掌握了数码管显示电路的实际构建方法,了解了单片机最小系统的构成及应用设计,熟悉了单片机串行通信模块的设计。
在以前的各类实验课所做的实验中,多数为单元实验且电路模式比较固定,调试也较容易,多数实验没能培养出我们对整个电子电路系统的整体认识,而通过这次的实验,不仅使我学到了有关红外接收方面的内容,而且,提高了我对整个电子电路系统从设计到调试整体的系统性认识,培养了综合运用多学科相关知识进行初步工程设计与实际装调系统电路的能力,收获颇多。
猫虿驢绘燈鮒诛髅貺庑。
最后,感谢高敬鹏老师在整个实验过程中给我们的指点和帮助!
六附录
附录二:
程序清单
#include
#defineucharunsignedchar
#defineuintunsignedint//宏定义
sbita=P3^3;
sbitb=P3^2;
inta,read,bj,result,yiweiresult,nuresult,k=0;
uchartable[4]={0};//定义数组用来存放用户码和数据码
uchardis[16]=
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//数码管显示编码锹籁饗迳琐筆襖鸥娅薔。
uchartablea[3]={0xef,0xdf,0xfe};//{0xef,0xdf,0xfe};構氽頑黉碩饨荠龈话骛。
uchartableb[4]={0xfe,0xfd,0xfb,0xf7};//{0xfe,0xfd,0xfb,0xf7};輒峄陽檉簖疖網儂號泶。
uchartableaf[2]={0xef,0xf7};//{0xef,0xf7};尧侧閆繭絳闕绚勵蜆贅。
uchartablebf[2]={0xfe,0xdf};//{0xfe,0xdf};//数码管流水灯顺时针逆时针数组识饒鎂錕缢灩筧嚌俨淒。
voiddelay_9000us()
{
uinti,j;
for(i=0;i<5;i++)
for(j=0;j<308;j++);
}//延时9.0ms
voiddelay_5000us()
{
uinti,j;
for(i=0;i<2;i++)
for(j=0;j<308;j++);
}//延时5.0ms
voiddelay_100us()
{
uinti,j;
for(i=0;i<1;i++)
for(j=0;j<11;j++);
}//延时100us
voiddelay_6ms()
{
uinti,j;
for(i=0;i<1;i++)
for(j=0;j<660;j++);
}//延时6ms
voiddelay_500ms()
{
uintj;
for(j=0;j<12850;j++)
{read=P3;
if((read&0x10)==0)
break;
}
}//延时500ms
voidstart_t0()
{
TH0=0;
TL0=0;
TR0=1;
}//定时计数器初始化
/*解码子函数*/
ucharjiema()
{
uchari,j,rd,pd,dat=0;
for(i=4;i>0;i--)
{
for(j=8;j>0;j--)
{
dat>>=1;
do
rd=P3;
while(!
(rd&0x10));//等待高电平
start_t0();//初始化定时器
do
rd=P3;
while(rd&0x10);//等待低电平
TR0=0;//关闭定时器
pd=TH0;
if(pd>0x03)
dat=(dat|0x80);//接收1并存储
else
dat=(dat&0x7f);//接收0并存储
}
table[i]=dat;//接收8位数据完毕
}//接受32位数据完毕
return(table[2]);//返回数据码
}
//流水灯子函数(zheng)两位数码管外围段顺时针转
voidliushuideng()
{
inti=0;
while
(1)
{
for(i=0;i<3;i++)
{
b=1;
a=0;
P1=tablea[i];
delay_500ms();
}
for(i=0;i<4;i++)
{
a=1;
b=0;
P1=tableb[i];
delay_500ms();
}
for(i=0;i<1;i++)
{
a=0;
b=1;
delay_500ms();
P1=0xf7;
}
delay_6ms();
read=P3;//查询
if((read&0x10)==0)
break;
}
}
//流水灯子函数(fan)两位数码管外围段逆时针转
voidfanliushuideng()
{
inti=0;
while
(1)
{
for(i=0;i<2;i++)
{
b=1;
a=0;
P1=tableaf[i];
delay_500ms();
}
for(i=3;i>=0;i--)
{
a=1;
b=0;
P1=tableb[i];
delay_500ms();
}
for(i=0;i<2;i++)
{
a=0;
b=1;
P1=tablebf[i];
delay_500ms();
}
delay_6ms();
read=P3;//查询
if((read&0x10)==0)
break;
}
}
//显示子函数
voiddisplay(uchardat)
{
while
(1)
{
a=0;
b=1;
if(dat<=9)
{P1=0xc0;
delay_5000us();
P1=0xff;}
if(dat<=9)
{a=1;
b=0;
P1=dis[dat];
delay_5000us();
P1=0xff;}
a=1;
b=0;
delay_100us();
read=P3;//查询
if((read&0x10)==0)
break;
}
nuresult=dat;
}
/*************串口发送子程序*****************/
voidinit(void)
{
TMOD=0x20;
TH1=0xf3;
TL1=0xf3;
PCON=0x00;
TR1=1;
SCON=0x50;
}
voidcheckout(unsignedintpara)
{unsignedintparacheck;
paracheck=para;
SBUF=paracheck;
while(TI==0);
TI=0;
}
voidsent(unsignedinti)
{
checkout(i+48);
}
/*******************************************/
/************************/
voidchuankou(uintf)
{
/********串口发送*******/
init();
sent(0);
TI=0;
init();
sent(f);
TI=0;
TMOD=0x01;
/*********************/
}
/**********************/
/*解码主函数*/
voidmain()
{
TMOD=0x01;//选择方式1,定时器工作模式
jj:
doread=P3;
while(read&0x10);//等待低电平
delay_100us();//消抖100us
do
read=P3;
while(!
(read&0x10));//等待高电平
start_t0();
do
read=P3;
while(read&0x10);//等待低电平
TR0=0;//关闭定时器
bj=TH0;
if(bj>0x0c)//判断正常码和数据码
result=jiema();//调用解码函数
if(result==0x1a)//1a音量增加按键
{
liushuideng();
gotojj;
}
if(result==0x1e)//1e音量减少按键
{
fanliushuideng();
gotojj;
}
chuankou(result);
delay_9000us();//显示延时
display(result);//显示
//chuankou(result);
gotojj;//等待再次发送数据
}
附录三:
元件清单表
元器件名称
数量
40脚IC座
1
16脚IC座
1
STC89C51
1
HS0038
1
MAX232
1
两位共阳数码管(LG5022BH)
1
串口
1
开关
1
按键
1
12M晶振
1
三极管8550
2
电容(104)
6
电容(30pF)
2
电容(10uF)
1
电阻(10K)
1
电阻(1K)
2
排阻(10k)
1
单排座
1
万用板
1
附录4参考文献
1《实用电子系统设计基础》姜威.北京理工大学出版社.
2《电子线路设计实验测试》罗杰,谢自美.电子工业出版社.
3《单片机实验与应用系统设计》范蟠果.国防工业出版社.
4《红外遥控在节能和无线操作方面的应用》王伟生,郑小真.河南工业大学
5《单片机C语言开发技术》龚运新.清华大学出版社凍鈹鋨劳臘锴痫婦胫籴。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 红外 遥控器 信号 接受 现实 研发 设计 实现