本科毕业设计基于单片机的红外遥控系统设计.doc
福州大学至诚学院本科生毕业设计(论文)题 目: 基于单片机的红外遥控系统设计 姓 名: 胡君瑜 学 号: 210991813 系 别: 信息工程系 专 业: 微电子学 年 级: 2009级 指导教师: 汤云东 2013年 4 月 15 日独创性声明本毕业设计(论文)是我个人在导师指导下完成的。文中引用他人研究成果的部分已在标注中说明;其他同志对本设计(论文)的启发和贡献均已在谢辞中体现;其它内容及成果为本人独立完成。特此声明。论文作者签名: 日期: 关于论文使用授权的说明本人完全了解福州大学至诚学院有关保留、使用学位论文的规定,即:学院有权保留送交论文的印刷本、复印件和电子版本,允许论文被查阅和借阅;学院可以公布论文的全部或部分内容,可以采用影印、缩印、数字化或其他复制手段保存论文。保密的论文在解密后应遵守此规定。论文作者签名: 指导教师签名: 日期: 基于单片机的红外遥控系统设计摘要随着科技的不断进步,各种电子器件、家用电器、工业机械等不断出现,人们生活水平在不断提高。与此同时,生活的节奏也随之加强。为了减缓生活节奏,遥控器也就应需而生。遥控器的产生及发展,给人们带来了极大的便利。现在的红外遥控已经遍布各行各业,对其进一步研究也日益迫切。基于单片机的红外遥控系统的研究有利于更好的发挥红外光的不可视、有特定频率、不易干扰、易制作等优良特性;也有利于单片机的简单、效率、方便等特点;也充分发挥了红外遥控的体积小、功耗大、性价比高等优势;本设计主要介绍基于单片机的红外遥控,其包括红外发射模块和接收模块。一般发射模块我们都直接采用现成的红外遥控器。遥控器上有21个按键,每个按键一个编码,对应的红外线频率各不相同。接收部分中包括红外接收一体化HS0038接收器、红外解码部分、串口通讯、LCD1602液晶屏显示模块以及继电器模块等。其中,HS0038是用来接收遥控器发射出来的红外线,并把接收的红外线送到51单片机进行处理,由单片机语句对所收到的信号进行相应的显示和提示,并在按下特定按键时继电器跳动,进而对家用220V电灯的亮灭进行控制。总的来说,该设计硬件电路简单,软件功能完善,性价比高,能给生活带来方便。关键词:HS0038,显示模块,继电器Base on Single-chip Infrared Remote Control DesignAbstractWith the constant progress of technology, various of electronic device, household appliances, industrial machinery and so on appear constantly, life standard of peoples have been improved. Meanwhile, the rhythm of life also strengthened. In order to slow down the rhythm of life, remote control has been appeared because of requirement. The appearance and development of the remote control have brought about huge convenience for people. Now the infrared remote control have spread all over the all walks of life, for the further research of them are increasingly urgent. The research of infrared remote control system are based on single chip machines to better play invisible, a particular frequency, not easy to interference, easy to make and so on the good features of infrared light. Also it is good for the simple, efficient, convenience and so on features of single chip machines, And it has enough to exerted the small size, large power consumption and high price ratio and so on advantages of infrared remote control. This design mainly introduces the infrared remote control which based on single chip machines, and it includes infrared transmitter module and receives module. Regarding the transmitter module we general directly use ready-made infrared remote control. There are 21 buttons on the remote control. Each button with one cord and the infrared frequency are different. Receiving parts include integration of infrared receiving HS0038 receiver, infrared decoding part, serial port communication, LCD1602 LCD display module and relay module and so on. The HS0038 is used for receiving the infrared light which launched by remote control and send the infrared light to 51-single chip machines to processing. statements of the received signal by single-chip microcomputer to display and prompt, and press the specific button in the relay, and control over household 220V electric light out. In general, this design of hardware circuit is sample, function of software is perfect, price ratio is high. can bring convenience to life. Key Words: HS0038, Display Module, Relays目 录第1章 绪论11.1 研究背景11.2 研究意义11.3 研究内容21.4 论文组织2第2章 技术背景介绍3第3章 基于单片机的红外遥控系统设计43.1 功能设计43.2 设计概要43.3 各个模块原理及功能介绍53.3.1 红外遥控器53.3.2 HS0038红外接收头53.3.3 51系列单片机功能特点63.3.4 红外解码103.3.5 LCD1602液晶显示器113.3.6 蜂鸣器123.3.7 继电器133.3.8 串口电路143.4 电路图的设计143.5 本章小结14第4章 基于单片机的红外遥控系统的实现154.1 硬件电路部分154.2 软件程序部分154.2.1 红外解码154.2.2 总程序164.3 本章小结17第5章 系统调试195.1 硬件调试195.2 软件调试19结论20参考文献21谢辞22附录1 电路总图23附录2 红外解码程序24附录3 解码效果图27附录4 遥控器及其键值28附录5 基于单片机的红外遥控程序29附录6 实物演示图36 第1章 绪论1.1 研究背景众所周知,遥控器是一种用于控制机械的装置1,是利用红外遥控器产生的红外线作为空间传递遥控信息的媒介,从而实现对被控设备的各种遥控操作,它是一种电能一光能一电能的光控方式2。随着家用电器、试听产品的普及,红外遥控器已经被广泛应用在各种类型的家电产品中(如遥控开关、智能开关等)3。现代的遥控器,主要是有专用的集成芯片和用来产生不同信号的按钮所组成。红外遥控是一种把红外线作为载体的控制方式,由于其波长远小于无线电的波长,因此在采用红外遥控方式时不会干扰其他电器的正常使用,也不会影响临近的无线电设备4。另外,红外遥控器件具有体积小、功耗低、性价比高的优点,是理想的人机输入设备。红外遥控系统主要由发射和接收两大部分组成。目前红外遥控器已经在各类电器上得到了广泛应用。市场上一般设备系统均采用专用的遥控编码及解码集成电路,具有制作简单等特点,但由于这些芯片价格较贵,功能键数及功能受到特定的限制,且相互之间采用的遥控编码格式互不兼容所以各机型的遥控器通常只能针对各自的遥控对象而无法通用,只适用于某一专用电器产品的应用,应用范围受到限制。随着微控技术的日益完善和发展,单片机的应用不断走向深入。它的应用必定导致传统的控制技术从根本上发生变革。它在工业控制、数据采集、智能仪表、机电一体化、家用电器等领域得到广泛的应用,极大地提高了这些领域的技术水平和自动化控制5。随着电子制造业的不断发展,社会对生活水平的要求越来越高,各方面都要求简单、效率、方便。洗衣机、电灯、电磁炉等家庭中的电器设备,缺少远距离上电与断电设备,不能满足智能化要求。如果我们可以利用单片机的红外控制功能,对家庭控制电路进行了重新的设计,使人们在无障碍情况下78 m范围内对家庭中各种电器设备的控制,实现家用电器省时、省力,创造更加便捷的生活环境。且基于单片机的红外遥控系统具有简单、方便、实用,具有广泛的市场前景6,很值得我们进行深入研究。1.2 研究意义在可是范围内遥控设备最廉价的方式是通过红外线。目前几乎所有的视频和音频设备都可以通过这种方式遥控。基于技术的广泛应用和相应的应用器件都还十分廉价,红外遥控成为我们日常设备控制的理想方式。红外线遥控器分无调制(单通道)和有调制(多通道)两大类。无调制红外线遥控器主要应用在单通道遥控,像电器设备的开与关、红外线计数器、遥控防盗7、防盗报警器以及儿童玩具等场合8。对基于单片机的红外遥控系统的研究有利于更好的发挥红外光的不可视、有特定频率、不易干扰、易制作等优良特性及红外遥控的体积小、功耗大性价比高等优势;也有利于单片机的简单、效率、方便等特点。总的来说,该设计硬件电路简单,软件功能完善,性价比高,具有一定的使用和参考价值,有利于单片机和红外遥控的综合应用以及方便人们对机器的操作,给人们的日常生活带来方便,提高人们的生活质量。1.3 研究内容基于单片机的红外线9遥控系统主要有发射部分和接收部分。发射部分直接采用现成的红外遥控器,由遥控器上的红外发光二极管10来实现。本文主要介绍对其接收部分的研究。首先,要对红外遥控器进行解码,确定遥控器的键值。解码的时候要先熟悉红外光的特性和原理以及其应用。当然这其中包括红外接收部分,所以,对红外接收头HS003811也要进行一定的研究。因为是基于单片机的,所以,我们也要熟悉单片机的工作原理。红外遥控解码原理及其在单片机中的应用12已经被研究出来了。但是对于显示模块的研究也不可忽视,虽然是遥控,也应该有相应的显示可以观察,这样更显人性化一些。当接收和显示都准备就绪时,我们迫不及待的想要看研究效果,于是,我们尝试通过继控制电器来模拟家电的中220V灯泡的亮灭,这时候,我们还要对继电器进行一定的研究。综上所述,本次的主要研究内容有:红外线、单片机原理、红外接收、红外解码、液晶显示以及继电器等。1.4 论文组织本论文中通过对各器件的功能和原理的介绍,围绕单片机和红外线的原理来实现两者的连接并实现红外遥控。本文也会对所设计的电路进行一步步阐述,对程序部分,进行解析和简要概括。并介绍一些主要的参考文献。第2章 技术背景介绍继1971年微处理器的成功不久,就出现了单片机。但最早的单片机是一位的,单片机以其卓越的性能,得到了广泛的应用,已经深入到各个领域。单片机应用在检测、控制领域中,具有以下特点:小巧灵活、成本低、易于产品化。它能方便的组装成各种智能仪表仪器。可靠性好,适应温度范围宽。单片机芯片本身是按工业测控环境要求设计的,分为民用、工业品、军品,其中工业品和军品具有较强的适应恶劣环境的能力。由于单片机本身就是一个计算机系统,因此,只要在单片的外围适当加一些必要的扩展电路及通道接口,就可以构成各种应用系统,如工业控制系统、数据采集系统、自动测试系统、监测监视系统、智能仪表、功能模块等。单片机的应用领域十分广泛,自20世纪80年代以来,单片机的应用已经深入到工业、农业、国防、科研、机关、教育、商业以及家电、生活、娱乐、玩具等各个领域中。1980年,发送和接收红外线的半导体装置开发出来时,红外遥控器就慢慢取代了超声波控制遥控器。此后,红外遥控器就诞生了。红外线遥控是利用近红外光传送遥控指令的,波长为0.76m1.5m。用近红外作为遥控光源,是因为目前红外发射器件(红外发光管)与红外接收器件(光敏二极管、三极管及光电池)的发光与受光峰值波长一般为0.8m0.94m,在近红外光波段内,二者的光谱正好重合,能够很好地匹配,可以获得较高的传输效率及较高的可靠性。红外遥控器的优点也是显而易见的,那就是方向性好、保密性强、干扰小、制造成本低等,被广泛的使用至今。目前红外遥控器已经在各类电器上得到了广泛应用。市场上一般设备系统均采用专用的遥控编码及解码集成电路,具有制作简单等特点,但由于这些芯片价格较贵,功能键数及功能受到特定的限制,且相互之间采用的遥控编码格式互不兼容。所以各机型的遥控器通常只能针对各自的遥控对象而无法通用,只适用于某一专用电器产品的应用,应用范围受到限制。因此,即于单片机的红外遥控便大量兴起,得到了广泛的应用。第3章 基于单片机的红外遥控系统设计3.1 功能设计HS0038是基于红外遥控接收的小型一体化接收头,集成红外线的接收、放大、解调,不需要任何外接元件,就能完成从红外接收到输出与TTL13电平信号兼容的所有工作。首先要进行单片机解码14,通过HS0038红外接收器接收遥控器发射的红外光,传送到单片机15芯片,结合定时器16判段外部中断间隔的时间获得数据,从而进行相应的解码和显示操作,通过软件设定键值来控制继电器的跳动进而模拟家电控制220V家用灯的亮灭。3.2 设计概要基于单片机的红外遥控系统的概要设计如图3-1所示:红外遥控器红外发射红外接收单片机键值显示控制继电器红外解码蜂鸣器图3-1 系统概要设计图如图3-1所示,我们只要简单的按遥控器上相应的键值,通过遥控器上的红外灯便会发射对应的红外光,由红外接收头接收并传到单片机,当单片机收到相应的信号便会产生相应的回应,蜂鸣器回响,液晶屏上显示相应的键值等;当按到相应的键值继电器便会跳动,从而控制220V家用电灯的红外遥控控制。通过单片机我们可以很简单地设定每个键值的特定操作功能,为了防止错误操作或不小心按到不用的键值,蜂鸣器便会发生提醒,而显示器上也会显示当前键值,让我们很快就能检查出错误所在,并且很快改正。由此可见,单片机的应用给我们带来了很大的便利的智能化的服务。3.3 各个模块原理及功能介绍3.3.1 红外遥控器在可是范围内最廉价的遥控设备是通过红外线实现的。由于各生产厂家生产了大量红外遥控专用集成电路,需要时按图索骥17即可。使得目前所能看到的音视频几乎都是用红外遥控,其技术应用广泛、器件廉价,是我们日常设备控制的理想方式。红外光其实是一种特殊颜色的普通光,其波长大于950nm,在人眼看不到的可见光谱之下。这在使用时给了我们更大的方便,而且红外LED(发光二极管)制作简便、成本低。因为只要会发热的物体都会发出红外光,所以我们需要保证遥控器发射的信息能够准确无误的发射到接收器上。于是我们要对红外线进行调制,通常我们会采用脉冲频率在30KHz到60KHz这个频段。当我们把红外发光二极管放入发射机时便成了我们所谓的遥控器,依据协议当按键按下时,二极管就会被唤醒发射相应的红外命令。这是对红外遥控器原理的简单介绍,本文的重点是接受部分。3.3.2 HS0038红外接收头红外遥控由发送和接收两部分组成。发送端将一系列脉冲串信号通过发送管发射红外信号。红外接收完成对信号的接收、放大、检波、整形,并更解调出遥控编码脉冲。为了减少干扰,我们采用性能可靠且价格实惠的一体化红外接收头(HS0038,接收红外信号频率38KHz,周期约26s)接收红外信号,它对信号进行一系列处理后发送给单片机,经单片机解码并执行相应命令,从而实现对相关对象的控制。红外接收部分由51单片一体化红外接收头HS0038和LPC液晶显示器组成。51单片机检测HS0038接收到的数据解码,通过液晶显示器显示接收到的键值。图3-2为HS0038实物及管脚图,图3-3为红外接收电路。图3-2 HS0038实物及管脚图图3-3 红外接收电路红外接收头的工作原理为:内置接收管将红外发射管发射出来的光信号转换为微弱的电信号,此信号经由IC 内部放大器进行放大,然后通过自动增益控制、带通滤波、解调变、波形整形后还原为遥控器发射出的原始编码,经由接收头的信号输出脚输入到电器上的编码识别电路。3.3.3 51系列单片机功能特点18 (1)主要特性·与MCS-51 兼容 ·4K字节可编程闪烁存储器 ·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24Hz·三级程序存储器锁定·128*8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源 ·可编程串行通道 ·低功耗的闲置和掉电模式·片内振荡器和时钟电路 AT89C51的引脚功能,图3-4所示。图 3-4 AT89S51的引脚功能图(2)管脚说明VCC:即第40管脚,供电电压。GND:即20管脚接地。P0口:P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。当P1口的管脚写“1”时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部电位必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入“1”后,电位被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。作为输入时,P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下所示:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 (外部中断0)P3.3 (外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 (外部数据存储器写选通)P3.7 (外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令时ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。:外部程序存储器的选通信号。在由外部程序存储器取址期间,每个机器周期两次有效。但在访问外部数据存储器时,这两次有效的信号将不出现。:当保持低电平时,访问外部ROM;注意加密方式1时,将内部锁定为RESET;当端保持高电平时,访问内部ROM。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。内部结构框图如图3-5所示。 图3-5 AT89C51的内部结构框图(3)AT89C51的基本操作如图3-6所示,在X1和X2之间接一只石英振荡晶体构成了单片机的时钟电路,它还有另一种接法,是把外部振荡器的信号直接连接到XTAL1端,XTAL2端悬空不用。AT89C51复位引脚RST/VP通过片内一个施密特触发器(抑制噪声作用)与片内复位电路相连,施密特触发器的输出在每一个机器周期由复位电路采样一次。当振荡电路工作,并且在RST引脚上加一个至少保持2个机器周期的高电平时,就能使AT89C51完成一次复位。复位不影响RAM的内容。复位后,PC指向0000H单元,使单片机从起始地址0000H单元开始重新执行程序。所以,当单片机运行出错或进入死循环时,可按复位键重新启动。MCS-51单片机通常采用上电自动复位和按钮复位两种复位方式。上电复位利用电容器充电来实现。按钮复位又分为按钮电平复位和按钮脉冲复位。前者将复位端通过电阻与Vcc相接;后者利用RC微分电路产生正脉冲来达到复位目的。复位电路参数的选择应能保证复位高电平持续时间大于2个机器周期。单片机之所以有这么大的科技含量,主要归功于超大规模集成电路19现代化技术的发展。图 3-6 AT89C51基本操作电路3.3.4 红外解码常用遥控器使用的是专用集成发射芯片来实现遥控码的发射,也就是将某个按键所对应的控制指令和系统码(由0和1组成的序列),调制在38KHz的载波上,然后经放大、驱动红外发射管将信号发射出去。如图3-7,是自制的红外解码器原理图:图3-7 自制的红外解码器原理图电路原理介绍:主控制单元是单片机AT89C2051,中断口INT0跟红外接受管U1相连,接收红外信号的脉冲,8个发光二极管作为显示解码输出(也可以用来扩展接其他控制电路),U3是跟电脑串行口RS232相连时的电平转换心片,9、10脚分别与单片机的1、2脚相连,(1脚为串行接收,2脚为串行发送),MAX232CPE的7、8脚分别接电脑串行口的2(接收)脚、3(发送脚)。晶振采用11.0592MHz,这样才能使得通讯的波特率达到9600b/s,电脑一般默认值是9600b/s、8位数据位、1位停止位、无校验位。电路就这么简单了,具体的编程过程再第四章进行详细的说明。3.3.5 LCD1602液晶显示器1602 液晶模块内部的字符发生存储器(CGROM)已经存储了160 个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如“A”。其硬件原理与连接如图3-8所示。图3-8 液晶显示硬件原理与连接该设计用液晶显示器来显示键值的,初始值设为:“REMOTE CONTROL”、和“IR-CODE: -H”两行。然后遥控器按下按键后显示器上就会显示相应的键值。3.3.6 蜂鸣器蜂鸣器和喇叭不同,蜂鸣器在有震荡源的情况下就会工作,而喇叭不会。蜂鸣器的电源一端直接固定直流电源,通电后就会发出固定频率的声音。少了振荡源,蜂鸣器只能用固定电压驱动,发生频率出厂固定的。本设计采用的是电磁式蜂鸣器。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。一般蜂鸣器只能发出“滴滴”声响。蜂鸣器驱动比较简单,正极一端接5V电压,另一端接一些简单电路再接单片机管脚就能通过单片机控制蜂鸣器。其电路如图3-9所示。图3-9 蜂鸣器应用电路3.3.7 继电器继电器部分是硬件电路中最后一道工序,是用来模拟家用220V电灯用的。首先对继电器进行稍微介绍。继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)吸合。这样吸合、释放,从而达到了在电路中的导通、切断的目的。对于继电器的“常开、常闭”触点,可以这样来区分:继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”。开发板只有5V 电源,如果需要控制220V 的电压设备,最简单的方式就是通过继电器,由于继电器通过电隔离,保证操作安全。对于这个模块,我们的采用方式跟遥控器一样直接用现成的单独模块。电路原理如图3-10。图3-10 继电器电路原理3.3.8 串口电路如图3-7所示的连接方法,其中包括串口电路的连接。串口电路主要是在烧写程序的时候需要连接,其他情况一般不用,为了方便软件调试,串口也要用得很频繁,给本次设计带来了很大的方便。3.4 电路图的设计以上介绍了各个电路模块的设计,电路总图祥见附录1。这里我们简单说明一下,总图中我们只要以单片机为中心,红外接收、调制与解码等,连接红外接收管、显示器、蜂鸣器、继电器等就完成了大部分的电路,再加上串口电路部分就可以完成整个电路的设计。3.5 本章小结这一章节中,依次介绍了红外遥控器、HS0038红外接收头、51系列单片机、红外解码、LCM1602液晶显示器、蜂鸣器、继电器、串口电路等相关原理及其应用电路,也介绍了整体电路的来源和实现最终功能的程序流程及具体代码编写。很好的体现了个器件的优势,更好的使红外遥控器得到更加广泛的应用,使单片机在生活中的体现更加明显,让人们进一步了解基于单片机的红外遥控系统的原理及其应用,给人们生活所带来的方便。第4章 基于单片机的红外遥控系统的实现4.1 硬件电路部分硬件部分模块在第三章中我们已经进行了详细的描述,其总电路图的连接也进行了简要的说明,现在我们要对其总体功能做一个新的回顾。在熟悉单片机最小系统及原理,并且了解红外收发原理的基础上,明确各个模块的原理、功能及应用,设计及焊接电路,对遥控器进行红外解码以确定遥控器键值,通过继电器模拟家电控制家电220V家用灯。总电路图如附录1所示。4.2 软件程序部分本设计的软件部分包括红外解码和各个模块及总体功能的实现。4.2.1 红外解码红外遥控解码的程序根据如图4-1所示,Panasonic遥控器的波形来撰写。图4-1 遥控器波形图开始位是以3.6ms低电平然后是3.6ms高电平,然后数据表示形式是0.9ms低电平0.9ms高电平周期为1.8ms表示“0”, 0.9ms低电平 2.4ms高电平周期为3.3ms表示“1”,编写程序时,以大于3.4ms小于3.8ms高电平为起始位,以大于2.2ms小于2.7ms高电平表示“1”,大于0.84ms小于1.11ms高电平表示“0”。因此,我们主要用单片机测量高电平的长短来确定是“1”还是“0”即可。定时器0的工作方式设置为方式1:MOV TMOD,#09H,这样设置定时器0即是把GATE置1,16位计数器,最大计数值为2的16次方个机器周期,此方式由外中断INT0控制,即INT0为高时才允许计数器计数。于是我们就可以测量高低电平,接下来读取计数值TH0,TL0就可以分辨是起始位还是“1”或“0”。在确定码表之前,可以使用P0口的8个发光二极管来显示编码,16位编码分两次显示。其流程图如图4-2所示。具体程序编写祥件附录2。开始并初始化定时器低电平出现后开启定时器读取计数值?3.6ms?开始下一位读取计数值大于2.2ms?小于2.7ms?作1处理作0处理小于1.11ms大于0.84msYYNNNNNNYY图4-2 红外遥控器解码流程图在电路连接好的情况下,单片机芯片烧进红外解码程序,按下遥控器按键使其发射红外线,接收方接收信号并解码,其二进制形式在焊接板中的LED灯显示,亮表示低电平“0”,灭则表示“1”。例如,按下第一个键会有对应的二进制码出现,效果及实物图在附录3显示。由此可以写下遥控器各个按键的键值,具体对照说明在附录4中。4.2.2 总程序电路和解码都完成后,我们需要进行总的程序设计及编写,来实现红外接收、液晶显示、蜂鸣器响应和继电器的跳动。具体流程如图4-3所示。详细编程见附录5。 开始 Y 写指令到LCD检查LCD忙?YN等待写显示数据到LCD初始化LCD红外信号电平高?Y收集数据计算电平时长NLCD显示数据蜂鸣器响继电器电平高?继电器开继电器关N图4-3 红外遥控系统的程序设计流程4.3 本章小结本次红外遥控系统的设计一步紧扣一步,每个环节都相辅相成,互相弥补,围绕单片机形成一个系统,即基于单片机的红外遥控系统。其程序编写也是循环往复,用到中断等知识的运用,实现了平常10米左右的遥控功能,很好的为近距离提供便利,实现人工智能化设计。相信在未来会得到更加广泛的应用。第5章 系统调试5.1 硬件调试硬件在焊接好后经常会出现不能使用或使用时达不到理想中的效果,这时候要先进行电路检测。首先是电源部分,用万用表检测是否正常通电。然后一个个模块检测。之前因为赶时间电路的地线没接,真的是犯了一个很严重的错误,看来作设计是急不得的,要耐心,于是接下来的电路检测就更加小心翼翼了,蜂鸣器从一直响到一声不响着实把我急坏了,于是乎找了同学帮忙,查来查去才发现蜂鸣器坏了,只好再换一个了。看来讨论合作也是必不可少的。还有一个问题需要调试的是LCD1602显示模块,因为对比度的原因显出一片空白,只是发光,然后就调第三管脚界的电位器来调整对比度,到清晰为止。这次调试费了不少精力,总算是有所收获。5.2 软件调试软件部分是在可Keil环境下编辑并调试的。Keil 软件支持汇编和C语言的编程和调试,运用方便简单,在Keil中先建立相应工程文档,再进行程序编写、编译等,生成的hex文件用专用的HTC软件烧写,烧写时要进行串口调试和频率调试。在完成对程序的调试及烧写之后,设计离完成就只有一步之遥了。剩下实物演示了,如附录6所示。结论本次设计不仅在知识上给了我很大的收获,在处理问题的时候所给的一些启示也让我受益终身,专注、耐心都不可否认,还有一件事要做就尽快,越拖惰性也就滋生得越多,越不想做,任务还是要按时完成的。本次设计通过红外遥控控制继电器模拟家用灯的控制,也在外围增加了一些人性化的设计,像LCD1602显示、蜂鸣器等都可以给