您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 五邑大学通信系统综合设计报告 多路红外遥控器
五邑大学通信系统综合设计报告题目:多路红外遥控器院系信息工程学院专业通信工程学号学生姓名指导教师报告日期2014年11月1摘要:本文介绍基于STC89C52单片机的多路红外遥控器,本设计可以控制三个LED灯和一个蜂鸣器的开关,并且可以对一路LED进行亮度调节。该遥控器采用脉冲个数调制的编码方式,六个按键开关。该遥控器电路简单,体积小,功耗小,易于推广。关键词:红外发射红外接收单片机脉冲个数编码1.设计要求(1)实时控制多路(至少2路)电器的开关,其中一路为电灯开关控制,其亮度可以无线调节。(2)控制距离10m。(3)基于单片机实现,不能采用现成的红外发射与接收模组。(4)电路制作时,必须有学号或姓名。2.设计方案分析2.1遥控电路方案的选择根据红外遥控的特点,利用单片机可以设计几种电路方案,实现对电路开关的控制。方案一:在不需要多路控制的应用场合,可以使用由常规集成电路组成的单通道红外遥控电路。这种遥控电路不需要使用较贵的专用编译码器,因此成本较低。电路方案图如图1、图2所示。发射部分:图1方案一发射部分框图接收部分:图2方案一接收部分框图考虑到本方案电路是简单的单通道遥控器,可直接产生一个控制功能的振荡频率,再通过红外发光二极管发射出去。当红外接收头接收到控制频率时,由一红外发射产生振荡频率红外接收解调控制电器控制2个电路对其进行解调并产生相应的控制功能。方案二:红外线发射和接收控制电路均采用单片机来实现,输出控制方式可选择,实用性强。电路方案图如图3、图4所示。发射部分:图3方案二发射部分框图接收部分:图4方案二接收部分框图当按下遥控按钮时,单片机产生相应的控制脉冲,由红外发光二极管发射出去。当红外接收器接收到控制脉冲后,由控制方式选择开关选择是“互锁”还是单路控制,再由单片机处理后,对相应的受控电器产生控制。方案三:用单片机制作一个红外电器遥控器,可以分别控制1个蜂鸣器和3个LED的电源开关,并且可以对一路LED灯进行亮度的调光控制。每一路电源开关打开的时候在接收电路的显示模块显示该路的序号。电路方案图如图5、图6所示。遥控按键单片机红外发射红外接收控制方式选择开关单片机受控电器3发射部分:图5方案三发射部分框图接收部分:图6方案三接收部分框图当按下遥控按钮时,单片机产生相应的控制脉冲,由红外发光二极管发射出去。当红外接收器接收到控制脉冲后,经单片机处理由显示设备显示出当前受控电器的序号,并判断是否对电灯进行调光,如需调光则经调光电路处理后实现调光功能。2.2方案比较综上所述通过比较三套方案,方案一未采用单片机控制,功能过于单一,仅能对一路电器进行简单的遥控;方案二和方案三的红外线发射和接收控制电路采用单片机来实现,电路简单,实用性强。方案二虽可虽可控制多个电器,但控制功能过于单调,仅能实现电器开关的控制,实用价值不大;方案三不仅可用控制键实现对电器的控制,而且可对一路电器进行亮度控制,方便实用。且本设计用到的元器件较少,电路相对简单实用。所以本设计采用方案三作为设计方案。按键控制单片机红外发射显示模块单片机按键控制调光控制受控电器开关43.基本原理这次课程设计利用单片机作为核心,通过程序编写调制和编码的方式把信号编写成不同脉冲个数的脉冲串并加以调制,利用PH303红外发射二极管作为发射头发射遥控信号,用HS0038作为接收头接受信号并执行命令。发射端用单片机通过设置定时器初始值,让其产生38kHz的方波。用单片机控制红外二极管发射红外信号。当按键按下时,单片机读出按键值,根据按键设置的脉冲个数,再调制成38kHz的方波用红外发射管发射出去。接收端用接收头HS0038接收信号并用单片机读取,单片机再发出命令控制LED。当没有信号时,HS0038持续输出高电平,当接收到信号时,HS0038输出低电平。利用HS0038的工作原理,让单片机数脉冲个数来判断发来的指令并执行。无线信号利用空间传输,相互之间必然会有干扰,所以基带信号必须要调制到一定频率的载波上进行传输,利用不同的频率来避免干扰。该课程设计红外遥控器的编码方式采用脉冲个数编码。按下按键时,先发送一个3ms的脉冲,延时1ms后再发送相应按键设置的脉冲数,每个脉冲1ms。脉冲个数编码方式比PWM编码方式更容易理解和实现,不过也有缺点。当多路(很多)时,脉冲个数编码将发送很长的脉冲串,不实用。脉冲个数编码波形图如7所示。电器1波形电器2波形电器3波形电器4波形图7脉冲个数编码波形图54.电路图设计4.1发射部分电路原理图图8发射部分电路原理图4.2红外发射电路该电路采用8050三极管两级放大,这样能产生足够大的电流驱动红外发射管,能增加遥控距离。如图9所示。图9红外发射电路64.3按键电路按键电路将六个按键接在P2.0、P2.1、P2.2、P2.3、P2.4和P2.5口上,按下按键给单片机对应IO口置低电平。如图10所示。图10按键电路4.4发射部分单片机最小系统复位电路采用手动和自动复位,晶振用11.0592M晶振。如图11所示。图11发射部分单片机最小系统74.5接收部分电路原理图图12接收部分电路原理图4.6接收电路红外接收采用HS0038一体化接收头,它起集成了红外接收、带通滤波和放大电路,使用起来方便简单。如图13所示。图13接收电路84.7电器电路LED接在单片机P2.0、P2.1和P2.2口,蜂鸣器接P2.3口。当单片机输出高电平,灯不亮,蜂鸣器不响;当单片机输出低电平,LED亮,蜂鸣器响。其中D1可以改变亮度,通过单片机编程使P2.0口输出占空比不同的方波来改变灯的亮度。如图14所示。图14电器电路4.8显示电路当电器开关打通的时候灯亮或者蜂鸣器响,同时在显示电路模块显示对应电器的序号。如图15所示。图15显示电路94.9接收部分最小系统复位电路采用手动和自动复位,晶振用11.0592M晶振。如图16所示。图16接收部分最小系统5.程序设计流程图5.1发射部分图17发送主程序流程图发送主程序:voidmain(){init();//初始化while(1){keywork();if(keyvol!=0){delay1ms(10);send();keyvol=0;}}}初始化调用按键扫描程序开始10NY图18按键扫描流程图按键扫描过程:先判断是否有按键按下,如果有,扫描P2口的值确定是哪个按键,并执行相应的程序。按键程序如下:keywork(){if(key==0xfe)//按下第一个按键{delay1ms(10);while(key==0xfe){keyvol=1;//脉冲个数标记为1}}elseif(key==0xfd)//按下第二个按键{delay1ms(10);while(key==0xfd){keyvol=2;//脉冲个数标记为2}}elseif(key==0xfb)//按下第三个按键{delay1ms(10);while(key==0xfb){keyvol=3;//脉冲个数标记为3}}elseif(key==0xf7)//按下第四个按键{delay1ms(10);while(key==0xf7)返回逐个扫描P2口确定按键号按键号转至相应发射程序按下扫描开始11{keyvol=4;//脉冲个数标记为4}}elseif(key==0xef)//按下第五个按键{delay1ms(10);while(key==0xef){keyvol=5;//脉冲个数标记为5}}elseif(key==0xdf)//按下第六个按键{delay1ms(10);while(key==0xdf){keyvol=6;//脉冲个数标记为6}}}YN图19红外信号发射程序流程图发送程序:send(){ET1=1;TR1=1;装入脉冲发送个数发送3ms脉冲停发1ms发完发送1ms停发1ms返回开始发射12delay1ms(3);ET1=0;TR1=0;hongwai=1;//38KHZ发3毫秒for(m=keyvol;m0;m--){delay1ms(1);//停1毫秒ET1=1;TR1=1;delay1ms(1);ET1=0;TR1=0;hongwai=1;//38KHZ发1毫秒}delay1ms(10);}5.2接收部分N图20接收部分主程序流程图接收主程序:main(){clearmen();//初始化P2=0xff;P1=0xff;W=0;while(1);}初始化P3.2=0?进入接收函数执行命令开始13YN图21中断过程程序流程图接收产生外部中断程序:voidintt0(void)interrupt0{EX0=0;keyvol=0;if(remotein==0){delay1ms(1);if(remotein==0){while(1){while(remotein==0);keyvol++;k=0;while(remotein==1){delay1ms(1);k++;if(k2){gotoOOUUTT;};}}OOUUTT:switch(keyvol){case2:{TR0=0;if(n0%2!=0){D1=0;P1=seg[1];}//点亮D1开始对低电平脉冲计数存入keyvol,对高电平脉冲计数存入kP3.2=0?按脉冲个数执行对应命令中断返回中断开始k214else{D1=1;P1=0xff;}n0++;if(n0==100){n0=1;}break;}case3:{if(n1%2!=0){D2=0;P1=seg[2];}//点亮D2else{D2=1;P1=0xff;}n1++;if(n1==100){n1=1;}break;}case4:{if(n2%2!=0){D3=0;P1=seg[3];}//点亮D3else{D3=1;P1=0xff;}n2++;if(n2==100){n2=1;}break;}case5:{if(n3%2!=0){fm=0;P1=seg[4];}//开蜂鸣器else{fm=1;P1=0xff;}n3++;if(n3==100){n3=1;}break;}case6:{if(n4%2!=0){while(1){D1=0;P1=seg[1];fm=0;delay1ms(100);fm=1;delay1ms(500);D2=0;P1=seg[2];15fm=0;delay1ms(100);fm=1;delay1ms(500);D3=0;P1=seg[3];fm=0;delay1ms(100);fm=1;delay1ms(500);break;}}else{D1=1;D2=1;D3=1;P1=0xff;}n4++;if(n4==100){n4=1;}break;}case7:{PWM_T=20*a;a++;if(PWM_T100){a=1;PWM_T=0;}TR0=1;//启动定时器break;}default:break;}}}EX0=1;}6.系统调试记录首先,做好板子之后,上电,烧录测试程序看看单片机最小系统是否正常工作。这步进行得很顺利。然后,进行程序烧录,虽然已经烧进去了,但是按键的时候没有反应。用万用表测量发射管两端的电压,电压正常,在打开手机的照相摄像头对着发射管一边按按键,可以看到一闪一闪的亮光,初步判断发射电路没有问题。原因很可能在于接收电路。在发射端按按键的时候,用万用表测量HS0038接收头输出端的电压,看电压是否变化。一开始发射电路按下按键的时候,输出端电压变化比较小,不能变为低电平。接收端的单片机不能接收到数据。经过排查分析发现电路接收端P3.2口连线没有连好。经过修改之后,再进行测试,最后成功接收。167.总结这次的通信系统综合设计是基于单片机的红外遥控器,要求每人设计自己的产品并做出实物,在巩固通信原理所学的知识的同时,增强了个人的动手能力和思考能力。为了做出这次的课程设计,我查阅了不少关于红外遥控的资料,了解了红外遥控的基本原理和几种可用的编码方式,也了解了几种红外发射和接收的元件和连接电路。我对于各种编码方式的思想有了很好的理解和认识,也分析了不同编码方式的好坏。这次我做的红外遥控器采
本文标题:五邑大学通信系统综合设计报告 多路红外遥控器
链接地址:https://www.777doc.com/doc-5377196 .html