基于单片机的红外遥控发送系统的设计实现姓名:201210601144指导老师:刘馨2014.12.12基于单片机的红外遥控发送系统的设计实现摘要随着科学技术的发展,单片机因其高可靠性和高性价比,在智能化家用电器、仪器仪表等诸多领域内得到了极为广泛的应用。当前单片机对家用电器控制呈现出外型简单化、功能多样化、性能优越化的发展趋向。红外遥控器具用使用方便、功耗低、抗干扰能力强的特点,因此它的应用前景是不可估量。本课题以延伸红外无线遥控技术为目的,提出了一种红外遥控器集中控制的方案,核心是设计出一个无线红外多发射/接收系统。本设计以红外线作为传递信息的载体,可对8个受控对象的工作状态进行短距离无线控制,适用于工业、医疗、家用电器等设备的开启或关闭遥控,也可以对一种设备的八种工作状态同步进行控制,或对2种设备的4种工作状态同时控制。该系统可实现的具体参数如下:1.遥控距离不小于5m,即红外遥控发射机与红外接收机之间的距离不小于5m;2.遥控路数为8路,即可对8个受控设备同时进行开关控制;3.工作频率为38KHz,即红外发射和接收的载频为38KHz;4.接收端显示受控状态一、课题任务与要求1.设计题目:基于单片机为核心的红外遥控发送系统的设计实现2.任务与要求:1)设计一个以单片机为核心的红外遥控发送系统。2)发射载频:38KHz,电源:9V/0.2A,5V/0.1A。3)工作温度:-40度--+85度4)接收范围:2m,传输速率:27bit/s,反应时间:2ms.二、系统概述2.1设计要求2.1.1整个控制系统的设计要求1、被控设备的控制实时反映,从接收信号到信号处理及对设备控制反映时间应小于1s;2、整个系统的抗干扰能力强,防止误动作;3、整个系统的安装、操作简单,维护方便;4、总体成本低。2.1.2红外载波、编码电路设计要求1、精确产生38KHz红外载波;2、根据控制系统要求能对红外控制指令信号精确编码并迅速发送。2.2.1方案论证(一)单片机控制器模块方案一:采用目前比较通用的51系列单片机。此单片机的运算能力强,软件编程灵活,自由度大,市场上比较多见价格便宜且技术比较成熟容易实现。方案二:采用凌阳16位单片机SPCE061A作为控制核心。与51单片机相比,SPCE061A具有更加丰富的资源,有32个可编程的I/O口,14个中断源。但考虑到本设计没有用到如此多资源且价格贵,市场比较少见,技术不稳定。综合分析考虑,选择方案一。(二)38KHz载波实现利用载波对信号进行调制从而减少信号传输过程中的光波干扰,提高数据传输效率。方案一:单片机T0定时产生38KHz载波电路原理:STC89C52RC定时器T0产生周期性的26.3us的矩形脉冲,即每隔13us,定时器T0产生中断输出一个相反的信号使输出端产生周期的38KHz脉冲信号。计算公式如2-1所示,脉冲图如图2-1所示。方案二:硬件晶振电路产生38KHz载波电路分析:晶振Y1,电容C1、C2、U1A、R2、R3组成38KHz载波振荡电路,MC14011是逻辑与非门。U1B对38KHz的振荡信号取反,同时隔离前后级的信号干扰。如图2-2所示。P11属于单片机P1口用于单片机对受控对象控制信号处理后的数据输出口,数据与38KHz信号与P11端数据逻辑或非门输出,完成信号的调制。图2-2脉冲产生的硬件电路图方案三:利用逻辑芯片CD4011构成多谐振荡器产生38kHz的载波信号,芯片如下图:利用该芯片和单片机相连构成多谐振荡器产生38kHz的载波信号,方便简单,电路易实现,信号准确,精度高.对于产生38KHz脉冲信号的实现方案进行比较选择,软件实现经济,但编程麻烦,方案二硬件复杂,不利实现,经济上也不太合算。因而采用方案三,电路简单,经济适用,便于控制,精度还高。(三)显示电路因要求简单,只需要实现0到9的数字显示,采用一个共阳数码管显示即可(四)编码电路:采用专用的集成编码芯片MC145026采用专用的集成编码芯片MC145026进行编码操作,方便简单,经济适用,便于实现,且与逻辑芯片CD4011良好连接,便于编码的实现2.2.2总体设计框图经过上述方案的分析选择,得出系统硬件由以下几部分组成:红外数据发射电路,键盘电路,编码调制,数码管显示.整体设计思路为:根据扫描到不同的按键值转至相对应的ROM表读取数据。确认设备及菜单选择键后单片机将从ROM读取出来的值,按照数据处理要求从控制端口输出控制脉冲与逻辑芯片CD4011产生的38KHz的载波(周期是26.3us)进行调制,经NPN三极管对信号放大驱动红外发光管将控制信号发送出去。同时利用单片机控制数码管显示发送的值.图2-3电路设计整体框图.3.1实用性本系统具有实时性、灵活性、稳定性、以及多功能同时控制等优点,方便用户对多个设备进行控制。2.3.2经济可行性对于有多个红外遥控家电的用户来说,可通过识别已存储在ROM中的信号,实现以现有的单一红外信号,同时对任意红外遥控家用电器进行控制,由于节约了实现控制功能的多个遥控硬件,从而减少了用户的投资。2.3.3技术可行性单片机对数据进行处理,定时器产生38KHz的载波对红外信号调制,采用一体红外接收头对红外信号放大、解码、电平转换三.单元电路设计与分析显示电平转换1发射机部分元器件清单表:2单片机单元电路STC89C52RC单片机序号元器件型号数量1单片机STC89C51(带座)12电平转换MAX232(带座)13编码芯片MC145026(带座)14逻辑芯片CD4011(带座)14共阳数码管(单)(带座或单排插孔两组)15芯片插座DIP40,DIP14,DIP16DIP40,DIP14各1个;DIP16,2个6九针串口插座(母)(弯)(单排插孔一组)17九脚排阻10K18小按键99晶振12MHZ110电位器203111三极管9013212发光二极管113红外发射头114电阻1K1010K151K1100K1160K14.7K1200115电容电解电容10F1磁片30P2磁片1046磁片1031磁片681116万用板S-2(独立焊盘)117导线、焊锡细若干STC89C52RC系列单片机是有超强抗干扰、高速、低功耗的单片机,指令代码完全兼容传统8051单片机,12时钟机器周期和6时钟机器周期可任意选择,最新的D版本内部集成MAX810专用复位电路。TC89C52RC芯片内部有一高增益反相放大器,用于构成振荡器.反相放大器的输入端为XTAL1,输出端为XTAL2。在XTAL1、XTAL2(第19、18引脚)两端跨接一个石英晶体振荡器,和两个电容就构成了稳定自激谐振电路。晶振频率为11.0592MHz。C12,C13是两个瓷片电容,与晶振Y2构成了自激谐振电路。其电容的作用主要是对频率进行微调,一般取30-45PF左右。使用该电路可产生稳定的11.0592MHZ频率,受外界的环境的干扰影响非常小。其接法如图3-2所示:图3-2晶振电路复位是单片机初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元执行程序。除了进入系统的正常初始化之外,当程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需要按复位键重新启动。复位操作有上电自动复位和按键手动复位两种方式。本设计采用了按键手动复位方式。该复位电路如图3-3所示。复位电路采用了按键与上电复位。上电与按键均可以有效复位。上电瞬间RST引脚获得高电平,单片机复位电路随着电容的C11的充电,RST引脚的高电平逐渐下降。RST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。按键复位是直接将高电平通过电阻R11、R10分压到达RESET引脚,实现复位操作图3-3复位电路图系统总图:2电平转换电路单片机要实现与电脑相接需要下载电路,即为电平转换电路,通过该电路可是实现程序下载如下图:3键盘电路电路图:8个键盘分别于单片机P2.0-P2.7口相接,分别代表8个输入状态(0,1,2,3,4,6,7,8),同时将P2口状态保存于单片机,以实现转换4显示电路电路图:数码管通过与单片机相连,通过单片机内部程序的转换,显示发送的数字5编码发射电路电路图:将指令脉冲编码信号调制在载波振荡器产生的载波上(也称脉码调制),然后用这脉码调制信号去驱动红外发光二极管,以发出经过调制的红外光波,红外编码原理:通常,红外遥控器将遥控信号(二进制脉冲码)调制在38KHz的载波上,经缓冲放大后送至红外发光二极管,转化为红外信号发射出去。二进制脉冲码的形式有多种,其中最为常用的是PWM码(脉冲宽度调制码)和PPM码(脉冲位置调制码)。前者以宽脉冲表示1,窄脉冲表示0。后者脉冲宽度一样,但是码位的宽度不一样,码位宽的代表1,码位窄的代表0。脉宽为0.56ms、间隔0.565ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.56ms、间隔1.69ms、周期为2.25ms的组合表示二进制的“1”将要发送的指令脉冲编码信号调制在38KHz的载波上,可以增加信号的抗干扰能力,提高信号传输效率。信号调制时序如3-9所示。图3-9信号调制图。程序说明:程序总框图:初始化扫描键盘是否有按键被按下编码调用发射子函数返回开始数码管显示YESNO总程序#includereg52.h#includeintrins.h//_nop_();延时函数用#defineucharunsignedchar#defineuintunsignedintsbitTE=P0^4;ucharxianzhi,fazhi,jianzhi;ucharcodedis[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};voidchajian(void){uchari=0;P2=0xff;_nop_();if(P2!=0xff)//有键按下{i=P2;//存键值while(P2!=0xff)//等待键释放{P2=0xff;_nop_();}jianzhi=i;//键值转移}}voidtiaozheng(void)//使其适合显示与发送{switch(jianzhi){case0xfe:{xianzhi=dis[1];fazhi=0x11;break;}case0xfd:{xianzhi=dis[2];fazhi=0x12;break;}case0xfb:{xianzhi=dis[3];fazhi=0x13;break;}case0xf7:{xianzhi=dis[4];fazhi=0x14;break;}case0xef:{xianzhi=dis[5];fazhi=0x15;break;}case0xdf:{xianzhi=dis[6];fazhi=0x16;break;}case0xbf:{xianzhi=dis[7];fazhi=0x17;break;}case0x7f:{xianzhi=dis[8];fazhi=0x18;break;}default:{break;}}}voiddelay(uintz){uintx,y;for(x=z;x0;x--)for(y=110;y0;y--);}voidfashe(void){P0=fazhi;delay(5);TE=0;//控制发射delay(5);TE=1;}voidmain()主程序{while(1){chajian();tiaozheng();fashe();P1=xianzhi;}}四、安装调试及测量数据分析1硬件安装步骤:按顺序一个模块一个模块的设计,即模块化设计a先安装单片机最小模块,最重要的控制模块,按电路图逐个在万用板上搭好电路记录现象:当该模块完成后,给单片机供电(5v),用示波器观察单片机30引脚,出现规律的方波,证明该模块正常工作,可以进行下一步出现问题:按图中接好电路后,不产生正常方波解决方案:先是认真的检查了电路有没有短路,断路的部位,用万用表逐个排查,没有出现问题,然后证明是器件的问题,器件容易坏的只有晶振和单片机,换