毕业论文 基于单片机的红外遥控器设计.doc
基于单片机的红外遥控器设计 摘要:随着电子技术的发展,家用电器种类的增加和无线遥控产品的普及,红外遥控器的使用越来越频繁。本设计主要应用了AT89S52型单片机作为核心,综合运用了单片机中断系统、定时器、计数器等知识,应用红外光波长短、抗干扰、工作可靠性高的优点。该设计主要包括红外发射和红外接收模块,然后分别对这两个模块进行软件的编程。对于遥控操作的不同,遥控发射模块通过对红外光发射频率的控制来区别不同的操作,遥控接收模块通过对红外光接收频率的识别,判断出控制操作,来完成整个红外发射、接收过程1。如今,由于嵌入式的广泛应用,促进了新一代红外遥控器的发展,将微型计算机芯片融入到遥控器中,使之使用更加方便快捷,也使人们的生活简易化。随着时代的进步,人们对生活物品的要求也越来越高,为了满足消费者的需求,所以将先进的单片机加入到家庭中的电器遥控器中是符合大众要求的。 关键词:遥控器;红外发射;红外接收;单片机The Design of Infrared Remote Controller Based on Single-chip Computer Abstract:With the development of electronic technology, increase in the consumer electronics category and the popularity of wireless remote control products, IR remote control used with increasing frequency. This design mainly using AT89S52 microcontroller core, integrated application of a microcontroller interrupt systems, timers, counters, and other knowledge, using infrared light wave lengths and interference, the advantages of high reliability.The design includes infrared and infrared receiver module, and software programming for these two modules .For remote control of different remote control transmitter module through the infrared light emitting frequency control to distinguish between different actions, remote control receiver modules through the receiving frequency of the infrared light to identify, determine control operation, to complete the IR transmitter and receiver process. Now, with the wide range of embedded applications, promote the development of a new generation of infrared remote controls. Micro-chip into the remote control, making it easier and faster, leaving people live simple. With the advance of time, people have an increasingly higher requirements for everyday use, in order to meet the needs of consumers, so the advanced single-chip machine joined to a household appliance remote control is in line with popular demand. Keywords:remote control; infrared; infrared receiver; single-chip microcomputer 目 录引 言.1第1章 课题分析与方案论证.21.1 课题任务分析.31.2 方案论证.3第2章 系统硬件电路设计.42.1 器件选择.42.1.1 单片机选择.42.1.2 显示器件选择.11 2.1.3 按键控制方式选择.122.1.4 门电路芯片选择.122.2 电路设计.132.2.1遥控发射模块的电路设计.132.2.2遥控接收模块的电路设计.17第3章 系统软件设计.213.1 发射模块软件流程图213.2 接收模块软件流程图.22第4章 系统调试254.1 硬件调试.254.1.1.静态检测与调试.254.1.2.动态检测与调试254.1.3.调试注意事项254.2 软件调试.264.3 软硬件联调.26总 结.27参考文献28致 谢30附录1 红外发射程序.31附录2 红外接收程序.40附录3 外文文献.43附录4 实物图.56引 言 从单片机问世以来,在国外,它已广泛应用于自动控制、数据采集和处理、家用电器等各方面,同时也渗透到其它各个科技领域。在国内,虽然起步较晚,但由于单片机价廉物美、功能强、体积小、使用灵活方便,得到越来越多的发展,尤其在工业过程控制、自动化仪器仪表等领域得到广泛应用。对推动国家的工业现代化进程有着重大意义。红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空调机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰2。当前社会是信息化高速发展的社会,随着社会的发展,中国的电器市场也在不断的发展,不断的更新交替,从刚开始的黑白电视机,到现在的液晶电视等等,还有不断出现在市场的新型电器,比如从前没有的空调,电脑等,这些电器的出现,无疑给中国的电器带来了商机,也给中国的百姓带来了方便,为了满足广大消费者的需求,电器遥控器的产生也是具有一大重要的意义,而将单片机融入到遥控器中也是一大突破,有了单片机的电器遥控器,对电器的操作将更加的简洁化。本说明书共分为4章,第一章课题分析与方案论证;第二章对硬件进行了详细的说明;第三章对系统的软件进行了分析;第四章有选择地列举了软硬件在调试过程中出现的问题,并对问题作出了分析;其中重点是单片机的各接口单元电路的设计,以及数据的显示处理。设计的最终成果是能通过按键无线遥控使LED数码管显示0F16种不同的字符。第1章 课题分析与方案论证1.1课题任务分析 本课题主要实现用片机控制红外线的发射、接收,从而驱动数码管显示0F16种字符以及蜂鸣器工作。遥控器分为发射模块和接收模块两部分,遥控发射模块发射电路采用红外发光二极管发出经过调制的红外光波,接收模块将红外发射模块发射的红外光波转换为相应的电信号,再送放大器处理还原成信号。主要技术指标有:遥控器的遥控距离范围在02m,额定工作电压是5V的直流电。1.2方案论证 方案一: 使用由常规集成电路组成的单通道红外遥控电路,一般用于不需要多路控制的场合,它不需要使用较贵的专用编译码器,因此成本较低。 1.红外发射部分红外发射产生震荡频率图1-1 红外发射部分结构图2.红外接收部分受控电器红外接收解调控制图1-2 红外接收部分结构图采用一个电路对其进行解调并产生相应的控制功能,就是红外接收到控制频率。 方案二:红外线发射以及接收控制电路都采用单片机来实现,输出控制方式可以选择,实用性很强。遥控按钮1.红外发射部分:红外发射单片机图1-3 红外发射部分结构图当红外发光二极管发射控制脉冲,即按下遥控按钮,单片机产生的相应的控制脉冲。2.红外接收部分:单片机红外接收受控电器控制方式选择开关图1-4 红外接收部分结构图红外接收模块接收到控制脉冲时,由控制方式选择译码,通过单片机处理后,驱动数码管显示数码且蜂鸣器工作。通过比较我发现,第二种方案软、硬较第一种方案简单,且充分利用了AT89S52单片机的并行口资源,节约了成本。为此,采用第二种方案。第2章 系统硬件电路设计2.1器件选择2.1.1 单片机的选择 本设计所使用的单片机可以用AT89C31、 AT89C51;羚羊单片机等多种单片机来实现。但是C31没有内部存储器,本设计需要编写程序,那么就要用外部扩展,比较麻烦。本设计所编写的程序比较简单,功能也比较少,如用羚羊单片机过于麻烦,大材小用,本设计所用到的输入输出端口也不是很多,所以决定用AT89S52单片机来完成本设计,即方便也很实用。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容3。片上Flash允许程序存储器在系统可编程,亦适用于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。AT89S52的引脚图如图2-1所示。图2-1 AT89S52引脚图 1.AT89S52单片机引脚注释 VCC : 电源 GND: 地P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在 flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,P1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。 P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,P3 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。P3口亦作为AT89S52特殊功能(第二功能)使用。在flash编程和校验时,P3口也接收一些控制信号。 RST:复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚()也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。:外部程序存储器选通信号()是外部程序存储器选通信号。当 AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,将不被激活4。/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,必须接GND。为了执行内部程序指令,应该接VCC。在flash编程期间,也接收12伏VPP电压。 XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。 2.系统复位通过某种方式,使单片机内各寄存器的值变为初始状态的操作称为复位。51单片机在时钟电路工作以后,在RST/VPD端持续给出2个机器周期的高电平就可以完成复位操作(一般复位正脉冲宽度大于10 ms)。复位分为上电复位和外部按键复位两种方式。本设计选用按键复位方式,如图2-2所示。图2-2 复位电路 3.时钟电路单片机的时钟电路由振荡电路和分频电路组成,其振荡电路由反相器以及并联外接的石英晶体和电容组成,用于产生振荡脉冲。分频电路用于把振荡脉冲分频,以得到所需要的时钟信号。时钟电路如图2-3所示。 图 2-3 时钟电路 其输入端为引脚XTAL1,输出端为引脚XTAL2。通过这两个引脚在芯片外并接石英晶体振荡器和两只电容,石英晶体为一感性原件,与电容构成振荡回路,为片内放大器提供正反馈和振荡的相移条件,从而构成一个稳定的自激振荡器。振荡器的频率主要取决于晶体的振荡频率, 一般晶体可在1.212 MHz之间任选, 电容C1、 C2可在530 pF之间选择, 电容的大小对振荡频率有微小的影响, 可起频率微调作用5。 振荡脉冲经二分频后作为系统的时钟信号,时钟信号经过三分频产生ALE信号,ALE信号用于控制把P0口的低8位地址送入锁存器锁起来,以实现低地址和数据的分时传送,ALE还可作为外部时钟或外部脉冲使用。时钟信号经六分频得到机器周期信号。 4.中断系统当CPU与外设交换信息时,由于外设的速度比较慢,若用查询的方式,则CPU就要浪费很多时间去等待外设。这样就存在一个快速的CPU与慢速的外设之间的矛盾。为了解决这个问题,就发展了中断的概念。CPU正在处理某一程序时,发生了另一突发事件请求CPU迅速去处理(中断发生);CPU暂时停止当前的工作,转到需要处理的中断源的服务程序的入口(中断响应),一般在入口处执行一跳转指令转去处理中断事件(中断服务);待CPU将中断事件处理完毕后,再回到原来程序被中断的地方继续处理执行程序(中断返回),这一处理过程称为中断。51单片机的中断系统提供5个中断源:外部中断0和外部中断1,定时/计数器(T0)和(T1)的溢出中断,串行接口的接收和发送中断6。(1)中断允许寄存器IE(A8H)CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器(IE)控制的。IE各位的定义如表2-1所示。表 2-1 IE位定义表位地址0AFH0AEH0ADH0ACH0ABH0AAH0A9H0A8H位符号EA/ESET1EX1ET0EX0EA中断允许总控制位EA0 中断总禁止,禁止所有中断EA1 中断总允许,总允许后中断的禁止或允许由各中断源的中断允许控制位设置。EX0和EX1外部中断允许控制位EX0(EX1)0 禁止外部中断EX0(EX1)1 允许外部中断ET0和ET1定时器/计数器中断允许控制位ET0(ET1)0 禁止定时器/计数器中断ET0(ET1)1 允许定时器/计数器中断ES串行中断允许控制位ES=0 禁止串行中断ES=1 允许串行中断(2)中断优先级控制寄存器(IP)各中断的优先级通过中断优先级控制寄存器IP来设定,其未定义及位地址如表2-2所示。 表2-2 IP位定义表位地址0BFH0BEH0BDH0BCH0BBH0BAH0B9H0B8H位符号/PSPT1PX1PT0PX0PX0外部中断0优先级设定位;PT0定时中断0优先级设定位; PX1外部中断1优先级设定位;PT1定时中断1优先级设定位; PS串行中断优先级设定位。(3)定时器控制寄存器(TCON)该寄存器用于保存外部中断请求以及定时器的计数溢出。进行字节操作时,寄存器地址为88H。按位操作时,各位的地址为88H8FH。寄存器的内容及位地址表示如表2-3所示。表2-3 TCON位定义表位地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 位符号 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 IE0和IE1外中断请求标志位。当CPU采样到 INT0(或INT1)端出现有效中断请求时,IE0(IE1)位由硬件置“1”。当中断响应完成转向中断服务程序时,由硬件把IE0(或IE1)清零。TR0 和TR1定时器运行控制位:TR0 (TR1 )0 定时器/计数器不工作TR0 (TR1 )1 定时器/计数器开始工作TF0和TF1计数溢出标志位。当计数器产生计数溢出时,相应的溢出标位硬件置“1”。 并自动产生定时中断请求。本设计运用外部中断0,通过电平触发方式,实现外部中断,接收红外信号。2.1.2 显示器件选择在单片机应用系统中,使用的显示器主要有LED(发光二极管)和LCD(液晶显示器)。这两种显示器成本低廉,配置灵活,与单片机接口方便。但是他们也是各有特点的:LED接口非常简单,不需要专用的驱动程序,在设计程序时也非常的简单;LCD显示的字比较丰富,也比较清楚,给人的感觉很好,但是他接口复杂,且要自己造字库,难度不小7。而本设计的遥控器接收模块,显示数字就够了,因此没有必要采用LCD,用LED就可以了。下面就介绍一下LED显示器的引脚和结构:用发光二极管来显示字段的器件叫LED显示器,在单片机应用系统中一般用七段显示器。共阳极显示器就是发光二极管的阳极连在一起,共阴极显示器就是阴极连在一起。图2-4中是七段显示数码管与单片机的连接结构,由八个发光二极管组成一个显示器,其中有七个发光二极管控制ag七段的暗或亮,最后一个发光二极管控制一个小数点的暗或亮。这种七段显示器能显示的字符的形状有些失真,字符比较少,但是与单片机的控制接口十分简单,使用起来很方便。图2-4 数码管与单片机连接图2.1.3 按键控制方式选择由于本设计要发射16种不同频率的红外线,所以采用4×4矩阵键盘,如图2-5所示,它是用4条I/O线作为行线,4条I/O线作为列线,在行线和列线的交叉点上设置一个按键。这种行列式键盘能够有效得提高单片机系统中I/O的利用率。图2-5 矩阵式按键电路若P1.4P1.7输出全0,即列线全为0,都P1.0P1.3状态,如果P1.0P1.3为全1,键盘上行线和列线都不通,说明没有键闭合。如果P1.0P1.3不为全1,则键盘上的行线和列线有接通,即有键闭合。2.1.4 门电路芯片选择 根据红外发射管本身的物理特性,必须要有载波信号与即将发射的信号相“与”,然后将相“与”后的信号送发射管,才能进行红外信号的发射传送,我选择HD74LS08P芯片,其管脚图如图2-6所示。图2-6 HD74LS08P管脚2.2.电路设计2.2.1遥控发射模块的电路设计遥控发射模块由单片机最小系统和按键电路、红外发射器电路等组成,遥控发射单元框图如图2-7所示。 图2-7 红外遥控模块发射框图 发射端采用具有在线下载功能的AT89S52芯片作为控制中心,与键盘扫描电路和发射电路共同构成。考虑到按键较多,可采用矩阵式,这里采用4 ×4的发射端利用单片机将待发送的二进制信号编码调制为一系列的脉冲串信号,通过P1口发出,经8050功率放大驱动红外发射管。图2-10为该遥控系统的发射原理图,其中P1口作为键盘扫描口,具有16个功能操作键,第9脚为单片机复位脚,采用复位电路如图所示,26脚作为红外遥控码的输出口,用于38KHZ载波编码,18 、19脚12MHZ晶振。发射采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2-8所示。图2-8 遥控码的“0”和“1”上述“0”和“1”组成的32位二进制码经38KHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的8。然后再通过红外发射二极管产生红外线向空间发射。编码器产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。芯片的用户识别码固定为十六进制0xd1H,后16位为8位操作码(功能码)及其反码。 遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在4563ms之间。 当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms18ms),高8位地址码(9ms18ms),8位数据码(9ms18ms)和这8位数据的反码(9ms18ms)组成。如果键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(4.5ms)组成9。根据红外发射管本身的物理特性,必须要有载波信号与即将发射的信号相“与”,然后将相“与”后的信号送发射管,才能进行红外信号的发射传送,而在频率为38KHz的载波信号下,发射管的性能最好,发射距离最远,所以本设计采用12MHz的晶振产生载波信号,与发射信号进行逻辑“与”运算后,通过三极管的功率驱动到红外发光二极管上。具体的发射波形如图2-9所示10。 图2-9 调制过程中的波形红外线通过红外发光二极管发射出去,红外发光二极管是特殊的发光二极管,其内部材料和普通发光二极管不同,因而在其两端施加一定电压时,它发出的是红外线而不是可见光。目前大量使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通发光二极管相同。图2-10 遥控发射模块电路原理图2.2.2遥控接收模块的电路设计遥控接收单元由单片机最小系统和红外接收器、控制对象电路等组成,遥控接收单元框图如图2-11所示。时钟电路单片机电源电路控制对象红外接收复位电路 图2-11 红外遥控单元发射框图 接收控制模块由一个AT89S52芯片作为控制中心,与接收电路和各自的控制电路共同构成。其中接收电路使用一体化红外接收头HS0038, HS0038工作频率为38KHz,它是一种集红外线接收、放大、整形于一体的集成电路,不需要任何外接原件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,再送给单片机,经单片机解码并执行相关控制程序,对外只有3 个引脚:+5V电源、地、信号输出,使用方便,性能可靠11。图2-12为该遥控器的接收器原理图,其中P0口作为数码管的二进制数据输出,显示按键号,第9脚为单片机复位脚,18、19脚为12MHZ晶振。遥控信号的解码算法及程序编制:平时,遥控器无键按下,红外发射二极管不发出信号,遥控接收头输出信号为高电平。有键按下时,0和1编码的高电平经遥控头倒相后会输出低电平。由于与单片机的中断脚相连,将会引起单片机中断(单片机预先设定为下降沿产生中断)。单片机在中断时使用定时器0或定时器1开始计时到下一个脉冲到来时,即再次产生中断时,先将计时值取出。清零计时值后再开始计时,通过判断每次中断与上一次中断之间的时间间隔。便可知接收到的是引导码还是0和1。如果计时值为9ms,接收到的是引导码,如果计时值等于1.12ms,接收到的是编码0。如果计时值等于2. 25ms。收到的是编码1。在判断时间时,应考虑一定的误差值。因为不同的遥控器由于晶振参数等原因,发射及接收到的时间也会有很小的误差。解码方法如下:(1)设外部中断0(或者1)为下降沿中断,定时器0(或者1)为16位计时器。初始值均为O。(2)第一次进入遥控中断后,开始计时。(3)从第二次进入遥控中断起,先停止计时。并将计时值保存后,再重新计时。如果计时值等于引导码的时间,设立引导码标志。准备接收下面的一帧遥控数据,如果计时值不等于引导码的时间,但前面已接收到引导码,则判断是遥控数据的0还是1。(4)继续接收下面的地址码、数据码、数据反码。(5)当接收到32位数据时,说明一帧数据接收完毕。此时可停止定时器的计时,并判断本次接收是否有效。如果两次地址码相同且等于本系统的地址,数据码与数据反码之和等于0FFH,则接收的本帧数据码有效12。否则丢弃本次接收到的数据。 (6)接收完毕,初始化本次接收的数据,准备下一次遥控接收。图2-12 遥控接收模块电路原理图第3章 系统软件设计3.1 发射模块软件流程图此设计是一个红外遥控发射器,设计目的就是根据按键的不同,发射出不同的红外信号。传统的遥控器都是采用遥控发射专用集成芯片,由于这些芯片的功能键数及功能受到特定的限制,只适合于某一专用电器产品的应用,应用范围受到限制。本设计采用单片机制作,采用编程的方法,由于编程具有灵活性,故应用范围较广,操作码可随意设定。程序开始是对单片机进行初始化设置,循环扫描判断是否有键按下,如果有键按下就发射相应的红外信号,遥控发射程序流程图如图3-1所示。图3-1 遥控发射程序流程图3.2 接收模块软件流程图遥控接收器是根据接收到的不同频率的红外光信号,由CPU转化为对应的控制功能对控制电路实施控制。当接收电路接收到第一个红外线脉冲时,中断INT0被触发,启动定时器0和计数器0。定时器1作为计数时间控制器,计数器0作为在规定记数时间内所记得的红外脉冲数。接收信号端接至P3.2口,该引脚为复用引脚,P3.2引脚复用为外部中断INT0请求输入端,当收到第一个红外脉冲时,INT0被触发,T0开始工作,当接收到下一个下降沿时每收到一个红外脉冲,根据定时器所定的时间判断是引导码、字符0还是字符1,从而可断定出遥控操作,然后由接收遥控器CPU将其转化为控制操作,对外电路实施控制功能13。程序开始是对单片机进行初始化设置,使用显示程序,循环扫描判断信号是否有效,如果有效就接收,接收后调用相应功能程序,遥控接收程序流程图如图3-2所示。图3-2遥控接收程序流程图第4章 系统调试电路板的安装与调试在整个系统研制中占有很重要的位置,它不但是把理论付诸实践的过程,而且也是把纸面设计转变到实际产品的必经阶段。对试验阶段的电路板安装一般有焊接方式和PCB板插接方式两种方式,我采用的是焊接方式。4.1硬件调试4.1.1.静态检测与调试对照电路图和实际线路检查连线是否正确,如少接、错接、多接等;电源端对地是不是存在短路;元器件引脚之间有没有短路,连接处有没有接触不良,二极管、三极管、集成电路和电解电容的极性是不是都正确;电源供电(极性、信号源)连线是不是正确;用万用表电阻档检查焊接和接插是不是良好。电路经过上述检查,确认无误后,可转入静态检测与调试14。4.1.2.动态检测与调试动态调试是在静态调试的基础上进行的,调试的方法是在电路的输入端加上所需的信号源,并循着信号的注射逐级检测各有关点的波形、参数和性能指标是否满足设计要求,如有必要则对电路参数作进一步调整。发现问题,要设法找出原因,排除故障,继续进行。本设计的遥控器电路是采用码分制遥控方式,用示波器对发射电路输出端及接收电路输入端的信号波型进行了检查,发现当按下不同的开关按钮时所显示的波型是不同的。这说明了此电路是工作在正常状态的。4.1.3调试注意事项经过自己动手调试电路,从问题之中总结出来一些常用电路调试的注意事项。(1)正确使用测量仪器的接地端,仪器的接地端与电路的接地端要可靠连接;(2)在信号较弱的输入端,尽可能使用屏蔽线连线,屏蔽线的外屏蔽层要接到公共地线上,在频率较高时要设法隔离连接线分布电容的影响,例如用示波器测量时应该使用示波器探头连接,以减少分布电容的影响。(3)测量电压所用仪器的输入阻抗必须远大于被测处的等效阻抗15;(4)测量仪器的带宽必须大于被测量电路的带宽;(5)正确选择测量点和测量;(6)认真观察记录实验过程,包括条件、现象、数据、波形、相位等;(7)出现故障时要认真查找原因。经过硬件调试排查出了一些下面一些问题:一是接收模块的数码管用的是共阴极数码管,导致数码管不能显示;二是接收模块的按键复位电路有一根接地线错接到了VCC上;三是接收模块三极管的一个引脚漏接一根线。4.2 软件调试 本设计包括红外发射和红外接收模块,两个模块都需要进行程序的编写。编写程序时,要分模块进行编写,在对发射模块的程序进行编写时,要分别编写按键消抖、按键扫描、系统初始化等子程序,在对接收程序进行编写时,要分别编写系统初始化、解码等子程序,先分别对这些子程序进行编译,确保无误。经过软件调试,排查了下面一些问题:有些语句后面不需要加分号却加了,有些语句用法理解不够清晰,以及一些常见的语法错误。4.3软硬件联调 将软件成功下载进单片机之后,将电路板接上电池盒(3节5号电池),测试最终结果。在测试时我发现,遥控按键的灵敏度不够高,且有的时候所按下的键与显示的字符不正确,后来我换了+5V的学生电源,就成功解决了上述问题,原因是电压不够发射的红外线信号较弱,还有调节电位器从而调整发射红外光的强度,增加红外遥控距离。总 结本设计主要应用了AT89S52单片机作为核心,综合应用了单片机中断系统、定时器、计数器等知识,应用红外光的优点。遥控操作的不同,遥控发射器通过对红外光发射频率的控制来区别不同的操作。遥控接收器通过对红外光接收频率的识别,判断解码控制操作,来完成整个红外遥控发射、接收过程。本设计还存在很多的不足,第一点,虽然本系统采用的是静态数码管显示,当数码管增加时,要求系统进行功能的扩展,由于单片机引脚的限制,则就需要采用动态显示,编程上需要作修改。 第二点,就是精度的问题,由于红外管的灵敏度问题,以及设计在布线焊接上,器件与器件之间的相互干扰,多少存在一定的影响,所以这种遥控操作准确性还存在不足。第三点,单片机电源的稳定性,复位电路过于简单,使得系统的抗干扰能力不强,使系统不能稳定的运行。以上三点不足之处是我能想到的,系统还存在着不足,希望在以后的学习和工作中不断的改进与完善。参考文献1 李华. MCS-51系列单片机实用接口技术M.北京:航天航空大学出版社,1999 2 苏长赞红外线与超声波遥控M.北京:人民邮电出版社,1995