怎样设计一款基于51单片机红外遥控器设计系统呢?

控制/MCU

1814人已加入

描述

随着红外遥控技术快速发展让人们的生活变得越来越方便与快捷的同时,在平时的家居生活中使用的智能化家电也越来越多,同样,我们使用的红外遥控型号也越来越多样化,但是,一个红外遥控只能控制相对应的红外受控家电,家电多的家庭平时还因为遥控器多以及找不到相对应遥控器而烦恼,这时候,设计一款基于单片机红外遥控器设计系统,此系统要兼顾红外遥控的简单实用、操作方便和性价比高等特点,以满足人们生活中对遥控器的需要。

2 系统方案与功能指标

2.1 系统方案

STC89C52RC

基于单片机红外遥控器设计系统的整个硬件设计系统以STC89C52RC芯片作为系统的主控芯片,以4×4矩阵键盘作为基于单片机红外遥控器设计系统的控制输入模块,LCD1602液晶显示屏作为系统的输出显示模块,再利用STC89C52RC芯片通过UART协议以波特率9600波特与IR01红外收发模块进行通讯,控制IR01红外收发模块对红外遥控器的红外编码进行学习和发射。基于单片机红外遥控器设计系统的硬件设计图如上图2-1所示。

2.2 功能指标

  • 利用单片机和红外学习模块进行设计;
  • 选取合适的液晶显示屏显示;
  • 红外遥控范围能在4到6米;
  • 能对相应电器的遥控器进行学习,从而实现操控相应电器。
  1. 系统器件选型
  2. 主控芯片

基于单片机红外遥控器设计系统的主控芯片采用的是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所示:

STC89C52RC

  1. 显示模块

根据自己目前所掌握的知识,初步认为以下两种的显示方案适合基于单片机红外遥控器设计系统:

方案1:

使用MAX7219 数码管显示模块作为基于单片机红外遥控器设计系统输出显示模块,MAX7219 数码管显示模块是一种共阴极显示驱动器,它连接微控制器与8位数字显示的7段数字LED显示。该显示模块的支持四线串行接口,可以并联多个MAX7219 型号的数码管,达到多个数码管同时使用,还不占用芯片资源的好处。

MAX7219 数码管显示模块支持10MHz连续串行口;该显示模块拥有独立的LED段选控制接口;该显示模块可以选择非译码与数字的译码等方式;该显示模块支持150uA的低功耗关闭模式;该显示模块是共阴极LED显示驱动;该显示模块可以限制回转电流的段驱动来减少EMI;该模块支持QSPI、MICROWIRE和SPI等多种串行接口;MAX7219 数码管显示模块可以工作在0°C~70°C的温度范围。

方案2:

使用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液晶显示模块作为输出显示模块。

  1. 红外收发模块

对于基于单片机红外遥控器设计系统的红外接收方案,通过查资料和相关文献了解到的红外收发方案如下所示:

方案1:

利用普通的红外对管作为基于单片机红外遥控器设计系统的红外收发。红外对管分为红外发射头和红外接收头,我们知道红外线的光谱位于红色光之外,人的肉眼无法察觉,波长是0.76μm~1.5μm,比红光的波长还长。红外对管通过发射端的晶振产生与被控红外接收设备的相同的调制载波频率,进而控制被控红外接收设备。红外对管支持NEC解码,通过解码红外对管可以控制红外码段较简单和红外频段较低的红外设备。

方案2:

使用IR01 红外遥控学习模块作为基于单片机红外遥控器设计系统的红外收发模块。IR01 红外遥控学习模块是一款可以学习的万能型红外遥控学习模块,它可以支持普通的NEC编码的红外遥控学习,也支持空调的长码编码的学习,它可以先学习红外遥控的编码,之后再利用以学习的键码发送出去,就能实现遥控器的复制或者集成到更智能的设备中。IR01 红外遥控学习模块可以通过简码串口控制,并配合上位机软件,就能轻松实现产品的开发,可以很大程度上降低新产品的开发难度。

IR01 红外遥控学习模块支持DC5V,100mA的供电方式,其中静态电流<1mA,发射电流为80mA;IR01 红外遥控学习模块可以控制半径10m内的红外设备;IR01 红外遥控学习模块采用标准的串口通信,即5V/3.3V的TTL电平,8位数据,1个停止位,0个奇偶校验位;IR01 红外遥控学习模块支持波特率为2400、4800、9600、19200和115200等波特率;IR01 红外遥控学习模块支持NEC、RC-5、PWM、PPM和空调码等绝大部分的红外遥控器;IR01 红外遥控学习模块支持的载波频率高达38KHz。IR01 红外遥控学习模块的应用范围也十分广泛,可以应用在智能家居产品,如:多功能遥控器魔方、万能遥控器等;也可以应用在工业控制产品,如空调控制器,温湿度机控制器,恒温恒湿控制器等。

IR01 红外遥控学习模块带有记忆存储芯片,具有掉电保护功能,不会因为单片机复位或者电源突然掉电/上电导致要重新解码;IR01 红外遥控学习模块可以反复的进行红外学习模块,可以通过上位机学习把已学习的红外编码导入或者导出,IR01 红外遥控学习模块是一个可以实现高效率研发、生产产品的红外学习模块。

综上两个方案所述以及进行测试对比,普通的红外对管只能控制普通的红外遥控,稍微频段高一点的以及编码长一点的红外编码,就无法对红外设备进行解码控制;而IR01 红外遥控学习模块支持NEC、RC-5、PWM、PPM和空调码等绝大部分的红外遥控器。在当前来说,市场上的红外接收家电的红外编码都不一样,频段也不一样,普通的红外接收管难以满足本设计的需求,IR01 红外遥控学习模块更适合本基于单片机红外遥控器设计系统的需要,并且IR01 红外遥控学习模块自带记忆存储芯片,具有掉电保护功能,不会因为单片机复位或者电源突然掉电/上电导致要重新解码,IR01 红外遥控学习模块开发效率也高,对于研发人员来说也非常友好,所以IR01 红外遥控学习模块非常适合本设计的需要。

  1. 系统硬件电路设计

4.1 主控系统电路

STC89C52RC

图 4‑1 主控系统电路图

主控电路由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所示。

  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所示:

STC89C52RC

  1. 矩阵键盘电路

矩阵键盘电路采用的是4×4矩阵键盘,通过并行与STC89C52RC芯片的P1端口进行连接,STC89C52RC芯片内部一直使用I/O电平扫描,先进行行扫描,再进行扫描,就能读取那个按键按下。使用4×4矩阵键盘是因为可以使用多个按键学习,方便可以管控多个红外设备。4×4矩阵键盘连接电路如下图4-3所示:

STC89C52RC

  1. LCD1602显示电路

LCD1602液晶显示模块采用总线并行与STC89C52RC芯片进行通信,通过分析LCD1602液晶显示模块的读写操作时序图,写指令时,单片机给LCD1602液晶显示模块的RS引脚使能为高电平、RW和EN引脚使能为低电平,就可以把指令数据送到D0D7;写数据时,CD1602液晶显示模块的RS引脚、RW和EN引脚都要使能为低电平,就可以把数据送到D0D7用以显示出来。LCD1602液晶显示模块的VL引脚接了一个10K的可调电阻,用于调节LCD1602液晶显示模块的背光亮度。LCD1602显示连接电路如下图4-4所示:

STC89C52RC

  1. DC-5V电源电路

基于单片机红外遥控器设计系统使用一个DC-5V电源接口,再接一个开关作为系统的电源开关,用以控制整个系统的电源输入,方便使用前后的断电和上电。DC-5V电源电路设计电路如下图4-5所示:

STC89C52RC

  1. 系统软件设计
  2. 主程序设计

STC89C52RC

系统主程序流程图主要分为:模块初始化、初始化显示信息、学习/发射控制模式判断、矩阵键盘扫描、LCD1602液晶显示模块显示和红外模块学习/发射控制。矩阵按键有15个按键可以用于控制红外模块的学习和发射控制,当不同的按键按下,LCD1602液晶显示模块会显示不同的按键信息;有一个按键用于红外模块的学习/发射控制模式切换键,当模式切换键按下,LCD1602液晶显示模块就会显示当前是学习模式还是发射模式。不同的按键按下,IR01 的红外遥控学习模块接收到相应的讯号,就会进行红外信号学习或者发送。程序流程图如上图5-1所示。

  1. 测试分析

在设计硬件电路的时候,要注意器件之间的安全距离,不能挨得太近,挨得太近容易产生干扰,导致一些模块不能正常工作,特别是在线路得布局上,如果两个电路线挨得太近,不保持一定得安全距离,就会很容易影响器件得工作,特别在通信方面容易产生干扰,导致接收和发送的讯号不正确,严重的会导致电路短接,造成整个系统烧毁。

在制作STC89C52RC单片机最小系统时,要注意复位电路的电容和电阻的选择,因为STC89C52RC芯片时高电平复位有效,所以要选用带正负极的铝电解电容,不能选用没有正负极的独石电容和瓷片电容,独石电容和瓷片电容只有低电平复位有效才会使用,不同的芯片的需要的复位电平时间不一样,因此需要选用符合芯片最短的复位时间的电容和电阻;系统的电源指示灯需要的限流电阻也需要选合适的规格,电阻过大,指示灯无法点亮;起振电路的电容要选择,常用的有22pF和33pF,使用的两个电容大小要一致,不一致会导致芯片起振不正常,导致最小系统无法正常工作。当使用内部存储器时,STC89C52RC单片机的EA引脚需要给高电平,这样系统运行后才能访问内部RAM,如果使用的时外部存储器,则EA不用使能高电平;设计STC89C52RC单片机最小系统时,需要预留单片机的程序下载口,方便后续程序修改和调试。

STC89C52RC

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分