电子电路综合设计总结报告题目:红外遥控器信号接收和显示的设计摘要:随着电子技术的发展,红外遥控器越来越多的应用到电器设备中,但各种型号遥控器的大量使用带来的遥控器大批量多品种的生产,使得检测成为难题,因此智能的红外遥控器检测装置成为一种迫切的需要。在该红外遥控器信号的接收和显示电路以单片机和一体化红外接收器为核心技术,具体由单片机最小系统、单片机与PC机间的通信模块、红外接收模块、数码管显示模块和流水灯模块组成。在本系统的设计中,利用红外接收器接收遥控器发出的控制信号,并通过软件编程将接收信号存储、处理、比较,并将数据处理送至数码管显示模块。总之,通过对电路的设计和实际调试,可以实现红外遥控器信号的接收与显示功能。根据比较接收信号的不同,在数码管显示电路及流水灯电路上显示相应的按键数字或闪烁变化功能,并可实现单片机及PC机之间的通信功能,使得控制信号能在PC机上显示。2关键词:单片机红外接收器HS0038解码串口调试3设计任务结合单片机最小电路和红外线接收接口电路共同设计一个基于单片机的红外遥控信号接收与转发系统,用普通电视机遥控器控制该系统,使用数码管显示信号的接收结果。1、实现单片机最小系统的设计。2、当遥控器按下数字键时,在数码管上显示其键值。如按下数字键1,则在数码管上显示号码01。3、当遥控器按下音量△及音量▽时,用两位数码的周围段实现顺时针或者逆时针旋转的流水灯功能。(为使得音量的增减清晰显示,试验中在单片机的P1口外接一排流水灯,具体功能的实现见方案的可行性论证)*运用串口调试助手,在遥控器有按键按下时,将其键值显示在PC机上。*当遥控器按下频道△及频道▽时,在数码管上显示加1或减1后的数值。一、系统方案比较与论证1、方案比较与选择为了实现系统整体功能,红外解码部分是核心,红外解码是指将遥控发射器所产生的红外遥控编码脉冲所对应的键值翻译出来的过程。下面将系统方案做一论证,通常有硬件解码和软件解码两种方案。方案一:此方案中,使用专用遥控器作为控制信号发出装置,当按下遥控器的按键后,一体化红外接收装置接收到遥控器发出的设置控制信号,然后将信号送到专用的解码芯片中进行解码,解码后将信号送到单片机,由单片机查表判断这个信号是按键数值信号或控制音量、频道等信号,当确认是何种信号后,启动子程序,然后进行查询。每次红外接收头接收到红外信号传到解码器中,解码器解码完毕后送到单片机,单片机再通过查表确定这些数值并进行相应功能的控制。设计原理图如图1所示。遥控信号发射遥控信号接收专用解码器单片机信号存储信号比较发出控制信息被控电路图1、方案一设计原理图方案二:此方案中,采用普通的家用遥控器作为控制信号发出装置,当按下遥控器的按键后,一体化红外接收装置接收到遥控器发出的红外线控制信号,然后把这个信号转换成电信号,传到单片机中,利用单片机对这个信号进行解码,解码完成后查表确定是按键数值信号或控制音量、频道等信号,启动子程序,进行相应的显示数字等功能。然后查询,重复上述流程。设计原理图如图2所示。4遥控信号发射遥控信号接收单片机解码信号存储信号比较发出控制信息被控电路图2、方案二设计原理图方案三:此方案中采用分立元件实现红外接收装置,通过外围电路实现将遥控信号的接收、放大、检波、整形等功能,并将信号转换成单片机识别的TTL信号。其余与方案二相同。方案的比较如下:方案一为硬件解码方案,硬件解码需要使用与遥控器相配套的专用的解码器芯片,而解码芯片一般不易得到,价格也较贵,或者自行开发解码电路(但电路太复杂,性能欠佳)。方案二为软件解码方案,软件解码可以不考虑遥控器的芯片是什么型号的,因为我们只需检测到它的发射编码,然后用软件方式来对它进行处理,从而得到所要的信息。软件解码具有灵活、硬件精简(仅需集成红外接收头和一片单片机)、可靠性高,成本低等特点。方案三所用的红外接收外围电路设计工作复杂,电路复杂程度相对较大,不方便使用,并且性能欠佳。经以上的论证,我采用方案二的软件解码方案,成本低,方便实现,并且系统整体性能和可靠性高。2、方案的可行性论证采用方案二的具体思路如下:遥控器为控制信号的发出装置,用一体化红外接收装置HS0038接收遥控器发出的红外线控制信号,并与单片机相连实现数据传输,将信号解码成二进制编码,并按位进行存储,通过单片机编程将接收到的数字编码在数码管上显示出来,编程比较若接收到信号为音量增减则实现数码管外围段的流水灯显示功能(在实验中我在P1口连接了8个流水灯,使得音量增加或减少在流水灯上显示为自下向上流动或自上向上流动),在比较中若接收到的信号为频道的增减则实现在原本显示数值上加1或减1的功能。用单片机的P0口控制数码管的段选,P3^2及P3^3控制数码管的位选,在数码管显示模块中,利用动态扫描的方式来显示数字或数码管流水灯。使用MAX232芯片、串口及若干电容来完成串口模块,以实现单片机和PC机的通信功能并且达到可以使用串口调试助手的目的。有上述论证可知此方案可行。3、经以上方案的选择和论证,确定总体系统框图如下:5HS0038红外接收单片机数码管显示通信模块流水灯图3、总体系统框图二、系统各单元电路的设计与分析1、单片机最小系统单片机的主要功能是负责整个系统的控制及数据的存储和处理,因此在设计本系统时选用STC89C51。其中,系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。引脚XTAL1和XTAL2分别是振荡器的高增益反相放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C3和C4构成并联谐振电路,接在放大器的反馈回路中。根据情况本设计中选择12MHz的晶振,补偿电容选择30pF左右的瓷片电容,如图中Y1、C3、C4;复位电路则采用手动按键复位方式,通过按键将电阻R9与VCC接通,复位脉冲的高电平宽度大于2个机器周期,即可实现复位,如图中的R9、C1所示;P0口外接上拉电阻,其结构如图中103,采用10K的排阻以提供给I/O口合适的电流。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。单片机最小系统电路图如图4所示。图4、单片机最小系统电路图62、通信模块的设计通信模块选用MAX232芯片。MAX232是MAXIM公司专门为PC视RS-232标准串口设计的电平转换电路。该芯片与TTL/COMS电平兼容,片内有2个发送器,2个接收器,且使用+5V单电源供电,使用非常方便。现从MAX232芯片中两路发送接收中任选一路作为接口,其发送接收的引脚一一对应。本系统中使T2in接单片机的发送端TXD,同时R2out接单片机的RXD端,1、3脚和4、5脚接104瓷片电容,其接口电路如图5所示。图5、通信模块电路图3、红外接收模块设计一体化的红外接收装置将遥控信号的接收、放大、检波、整形集于一身,并且输出可以让单片机识别的TTL信号,这样大大简化了接收电路的复杂程度和电路的设计工作,方便使用。在本系统中我们采用红外一体化接收头HS0038。HS0038黑色环氧树脂封装,不受日光、荧光灯等光源干扰,内附磁屏蔽,功耗低,灵敏度高。在用小功率发射管发射信号情况下,其接收距离可达35m。它能与TTL、COMS电路兼容。HS0038为直立侧面收光型。它接收红外信号频率为38kHz,周期约26μs,同时能对信号进行放大、检波、整形,得到TTL电平的编码信号。三个管脚分别是地、+5V电源、解调信号输出端。解调信号输出端与单片机P3^4相连,Vcc与GND间接104瓷片电容滤波整形,电路图如图6所示。图6、红外接收模块电路图74、数码管显示电路设计数码管显示电路采用两位共阳数码管LG5022BH,具体电路如图7。其中由单片机的P3^2和P3^3作为位选口,输出低电平时数码管被选中;P0口外接上拉电阻后作为段选,输出低电平时相应的段被点亮。数码管的驱动选用三极管S8550,图中的电阻R10和R11选取1K的阻值大小,以提供合适的电流使三极管导通。图7、数码管显示电路电路图5、流水灯电路设计流水灯电路采用八个发光二极管,所有发光二极管的正极接到单片机的P1口,负极分别通过一个1k的限流电阻接到GND端,当单片机的相应端口为高电平时发光二极管点亮,通过控制单片机P1端口的高低电平实现流水灯功能,电路图如图8所示。图8、流水灯电路86、程序设计和说明在本设计中,数据的处理、存储、比较以及芯片的控制都是由单片机编程实现的。其中,判断是显示按键数值或按键为音量增减键调用流水灯函数或按键为频道增减键调用加减函数及显示加1或减1后的数值信息等,均是使用单片机的软件部分实现,在整个设计中还存在较多的延时函数的调用和循环语句。具体程序见附录。主函数软件流程图如下图9所示。开始定时器模式选择初始化读取P3端口P3^4是否为低电平?延时100us否是P3^4是否为高电平?否P3^4是否为低电平?读取P3端口读取P3端口定时器初始化关闭定时器调用解码函数解码后数据是否为0x1a(音量加按键)?解码后数据是否为0x1e(音量减按键)?解码后数据是否为0x1b(频道加按键)?解码后数据是否为0x1f(频道减按键)?延时9000us调用显示函数是是否否否否否调用显示加函数调用显示减函数调用流水灯逆函数调用流水灯顺函数是是是是图9、主函数软件流程图9三、系统的安装调试及测试数据分析1、测试仪器晶体管直流稳压电源1台数字万用表1块示波器1台2、硬件调试的方法和过程完成电路设计后,采用整体布局、分模块安装调试再连调的方法。整个过程中对出现的问题进行了比较适当的解决。a、单片机最小系统焊接完成后,不能正常工作,经观察发现单片机的Vcc没有和电源正极相连,连接完成后用示波器观察晶振两端起振,且30管脚有波形。单片机最小系统正常工作。b、数码管显示部分在安装调试过程工作不稳定。经老师提醒,是数码管管脚过细与插槽接触不良导致。将管脚镀锡后在进行调试,问题得到了良好的解决。c、在焊接完通信模块后单片机不能与PC机之间进行通信,仔细检查电路,发现MAX232的V-管脚没有接地,将此电路焊接完成后,单片机和PC机之间的通信功能得以实现。在硬件调试的过程中有两处失误的原因均为电路芯片的管脚没有和公共的Vcc或GND接到一起,寻找错误的原因是在焊接电路的过程中均将Vcc和GND悬空,待其它电路焊接完成,最后焊接公共端,在最后寻找的过程中由于不细心导致有遗漏,对此颇有体会,在以后的实验或是工程中将更加细心。3、软件调试问题及解决方法A、首先在将最初编写好的程序下载到电路板上后,只能接受一次数据,第二次发送数据后不能再数码管上显示其结果,后经细心研究,增加无条件转移指令,使得能端口能一直查询红外接收电路是否有电平的变化,从而达到每次发送信号时均能在数码管上显示。B、其次,在将数码管流水灯及外接的流水灯程序加进后,当程序走到流水灯的循环之后,不能自动的跳转出循环,经耐心的学习探讨,找到两种解决方案,一是用外部中断,使得程序能挑出循环,但由于中断的功能及调用的方法不能灵活运用,所以又经细心的研究选择使用查询的方法,同样达到了目的,也使程序简单易懂。C、再次,使用示波器测得音量及频道增减按键的编码时,由于示波器显示的时间以及人为按下按键时间间隔不好掌控,需要测量很多次,方可测得所需要的编码,将编码测得后,写入相应的程序,若编码错误则不能实现相应按键按下所要得到的功能,在此过程中需要耐心细致,最后均测得了正确的编码。D、再次,在写数码管和流水灯的显示数组时,将有的数组编写错误,这是较容易发现及解决的问题,经细心修正后,使得所有的数组均能正确的显示想要表示的功能。E、再次,在显示数值时发生过数值跳变的情况,由一个数值跳变为乱码,后经在程序中增加延时函数解决此问题。F、再次,当按键按下频道的增减按键时,每按下一次时增加或减少的数值不均为1,经过多次试验调试,在函数中增加了延时函数以达到消除抖动的目的,使得此问题得到良好的解决。G、最后,在使用串口调试助手实现单片机与