化家电也越来越多,同样,我们使用的红外遥控型号也越来越多样化,但是,一个红外遥控只能控制相对应的红外受控家电,家电多的家庭平时还因为遥控器多以及找不到相对应遥控器而烦恼,这时候,设计一款基于红外遥控器设计系统,此系统要兼顾红外遥控的简单实用、操作方便和性价比高等特点,以满足人们生活中对遥控器的需要。
基于单片机红外遥控器设计系统的整个硬件设计系统以STC89C52RC芯片作为系统的主控芯片,以4×4矩阵键盘作为基于单片机红外遥控器设计系统的控制输入模块,LCD1602液晶显示屏作为系统的输出显示模块,再利用STC89C52RC芯片通过UART协议以波特率9600波特与IR01红外收发模块进行通讯,控制IR01红外收发模块对红外遥控器的红外编码进行学习和发射。基于单片机红外遥控器设计系统的硬件设计图如上图2-1所示。
基于单片机红外遥控器设计系统的主控芯片采用的是STC89C52RC芯片。STC89C52RC芯片是STC公司研发的新一代小型单片机,其在软件和硬件方面与MCS-51完全兼容,这个类型的单片机抗干扰能力强,数据传输速率快,具备高性能的同时,其功耗也低,为很多提供了一个性价比较高的方案。
STC89C52RC芯片拥有以下特点:①STC89C52RC芯片可以工作在2.7V6V电压范围,以及可以工作在-40°C85°C的温度环境;②STC89C52RC芯片与MCS-51系列的单片机在指令系统和引脚上的分布完全兼容,意味着MCS-51系列的单片机在指令系统能在STC89C52RC芯片直接适用;③STC89C52RC芯片具有4K字节可反复编程快速擦写程序的内部RAM;④STC89C52RC芯片可以工作在频率范围为0Hz~24Hz之间全静态工作模式。
STC89C52RC芯片同时也具备丰富的芯片资源:①STC89C52RC芯片内部拥有128×8位的RAM;②STC89C52RC芯片拥有32位可以双向输入输出的功能引脚;③STC89C52RC芯片拥有两个16位的定时器和两个16位的计数器;④STC89C52RC芯片拥有5个中断源,5个中断源又分两级中断优先级;⑤STC89C52RC芯片拥有一个支持全双工的异步通讯串行口。
综合STC89C52RC芯片具有这些功能与特点,所 以STC89C52RC芯片是本基于单片机红外遥控器设计系统的主控芯片的不二之选。STC89C52RC直插芯片引脚资源分布图如下图3-1所示:
使用MAX7219数码管显示模块作为基于单片机红外遥控器设计系统输出显示模块,MAX7219数码管显示模块是一种共阴极显示驱动器,它连接微与8位数字显示的7段数字LED显示。该显示模块的支持四线串行接口,可以并联多个MAX7219 型号的数码管,达到多个数码管同时使用,还不占用芯片资源的好处。
MAX7219 数码管显示模块支持10MHz连续串行口;该显示模块拥有独立的LED段选控制接口;该显示模块可以选择非译码与数字的译码等方式;该显示模块支持150uA的低功耗关闭模式;该显示模块是共阴极LED显示驱动;该显示模块可以限制回转电流的段驱动来减少EMI;该模块支持QSPI、MICROWIRE和SPI等多种串行接口;MAX7219 数码管显示模块可以工作在0°C~70°C的温度范围。
使用LCD1602液晶显示模块作为基于单片机红外遥控器设计系统输出显示模块,LCD1602液晶显示模块作为电子爱好者平时电子制作中常用到的电子显示元器件,其是一种经常用来显示数字、字母和符号等的LCD显示模块,LCD1602液晶显示模块的1602表示该显示模块能显示的最多内容是16×2,简而言之就是说LCD1602液晶显示模块只能显示两行字符,每一行字符最多可以显示16个字符;LCD1602液晶显示模块工作在电压4.5V~5.5V之间;LCD1602液晶显示模块的额定工作电流为2.0mA(即也就是说额定电压5V,5V是LCD1602液晶显示模块的最佳工作电压);LCD1602液晶显示模块的字符尺寸为2.95×4.35(W×H)mm;模块分辨率为16×2×35,35为单个字符占用的点大小。
最后,通过两个显示模块的对比,MAX7219 数码管显示模块只能显示数字、一些常用的字母以及个别字符,而LCD1602液晶显示模块可以显示大多数的数字、字母和符号等,能更好的满足电子制作者的需求,所以基于单片机红外遥控器设计系统选用LCD1602液晶显示模块作为输出显示模块。
对于基于单片机红外遥控器设计系统的红外接收方案,通过查资料和相关文献了解到的红外收发方案如下所示:
利用普通的红外对管作为基于单片机红外遥控器设计系统的红外收发。红外对管分为红外发射头和红外接收头,我们知道红外线的光谱位于红色光之外,人的肉眼无法察觉,波长是0.76μm~1.5μm,比红光的波长还长。红外对管通过发射端的晶振产生与被控红外接收设备的相同的调制载波频率,进而控制被控红外接收设备。红外对管支持NEC解码,通过解码红外对管可以控制红外码段较简单和红外频段较低的红外设备。
使用IR01 红外遥控学习模块作为基于单片机红外遥控器设计系统的红外收发模块。IR01 红外遥控学习模块是一款可以学习的万能型红外遥控学习模块,它可以支持普通的NEC编码的红外遥控学习,也支持空调的长码编码的学习,它可以先学习红外遥控的编码,之后再利用以学习的键码发送出去,就能实现遥控器的复制或者集成到更智能的设备中。IR01 红外遥控学习模块可以通过简码串口控制,并配合上位机软件,就能轻松实现产品的开发,可以很大程度上降低新产品的开发难度。
IR01 红外遥控学习模块带有记忆存储芯片,具有掉电保护功能,不会因为单片机复位或者电源突然掉电/上电导致要重新解码;IR01 红外遥控学习模块可以反复的进行红外学习模块,可以通过上位机学习把已学习的红外编码导入或者导出,IR01 红外遥控学习模块是一个可以实现高效率研发、生产产品的红外学习模块。
综上两个方案所述以及进行测试对比,普通的红外对管只能控制普通的红外遥控,稍微频段高一点的以及编码长一点的红外编码,就无法对红外设备进行解码控制;而IR01 红外遥控学习模块支持NEC、RC-5、PWM、PPM和空调码等绝大部分的红外遥控器。在当前来说,市场上的红外接收家电的红外编码都不一样,频段也不一样,普通的红外接收管难以满足本设计的需求,IR01 红外遥控学习模块更适合本基于单片机红外遥控器设计系统的需要,并且IR01 红外遥控学习模块自带记忆存储芯片,具有掉电保护功能,不会因为单片机复位或者电源突然掉电/上电导致要重新解码,IR01 红外遥控学习模块开发效率也高,对于研发人员来说也非常友好,所以IR01 红外遥控学习模块非常适合本设计的需要。
主控电路由STC89C52RC直插芯片、电源指示灯模块、复位电路、起振电路以及上拉排阻组成一个最小系统。复位电路采用了一个10K直插电阻和一个10uF的铝电解电容,由此可以计算出系统的复位时间为T=RC=10000(10K)×0.00001F(10uF)=100ms;起振电路采用的是11.0592MHz的晶振芯片和两个22pF的独石电容组成,选择晶振11.0592MHz是因为它能够准确的划分时钟频率,与串口通信的波特率有很大的关系,其参数对于较高的波特率计算比较准确,例如波特率为19600,波特率为19800等都可以准确的计算出来,11.0592MHz晶振对于STC89C52RC直插芯片的定时器来说也有很大的影响,因为用其计算的的定时器初值都是整数的,如果使用12MHz的晶振,对于波特率的计算和定时器的初值计算都存在一定的变差;STC89C52RC芯片P0端口加一个103阻值的上拉排阻,因为STC89C52RC芯片内部P0端口没有上拉电阻,加上拉电阻可以提高P0端口的引脚驱动能力和提高总线的抗干扰能力;同时电源指示灯是用来提示整个主控系统有没有正常工作,以及独立的程序烧写接口,方便在编程过程中对系统程序进行烧写和擦除。主控系统电路如上图4-1所示。
红外解码模块使用的是IR01 红外遥控学习模块,其采用串口通讯方式(波特率为9600波特,1个停止位,8个数据位,0个奇偶校验位)和STC89C52RC芯片进行通讯,STC89C52RC芯片的TX端口连接IR01 红外遥控学习模块的RX端口,STC89C52RC芯片的RX端口连接IR01 红外遥控学习模块的TX端口,两个模块的GND要相连,最后给两个模块有效的工作电压两个模块就能进行工作和通讯。
STC89C52RC芯片通过4×4矩阵键盘扫描输入,STC89C52RC芯片再给IR01 红外遥控学习模块有效串口信息,IR01 红外遥控学习模块通过STC89C52RC芯片发送过来的讯息判断是要学习红外码还是发射红外码。并且IR01红外遥控学习模块使用了CH554T芯片,此芯片是一款兼容MCS51指令集,其79%的指令是单字节单周期指令,平均指令速度比标准MCS51快8~15倍,可支持24MHz系统主频,内置16K程序存储器ROM和256字节内部iRAM,此芯片还内置了ADC数模转换、、双异步串口,支持4种复位信号源,内置上电复位,支持软件复位和看门狗溢出复位,可选引脚外部输入复位;还使用了FT24C128A存储器,是一种电可擦除PROM,电压可允许低至1.8V,待机电流和工作电流分别为1μA和1mA,具有页写能力。IR01 红外遥控学习模块连接电路如下图4-2所示:
矩阵键盘电路采用的是4×4矩阵键盘,通过并行与STC89C52RC芯片的P1端口进行连接,STC89C52RC芯片内部一直使用I/O电平扫描,先进行行扫描,再进行扫描,就能读取那个按键按下。使用4×4矩阵键盘是因为可以使用多个按键学习,方便可以管控多个红外设备。4×4矩阵键盘连接电路如下图4-3所示:
LCD1602液晶显示模块采用总线RC芯片进行通信,通过分析LCD1602液晶显示模块的读写操作时序图,写指令时,单片机给LCD1602液晶显示模块的RS引脚使能为高电平、RW和EN引脚使能为低电平,就可以把指令数据送到D0D7;写数据时,CD1602液晶显示模块的RS引脚、RW和EN引脚都要使能为低电平,就可以把数据送到D0D7用以显示出来。LCD1602液晶显示模块的VL引脚接了一个10K的可调电。
杏彩体育官方平台 上一篇:什么是51单片机?又该如何自学51单片机 下一篇:单片机的外部结构和C语言编程基础说明