基于STC单片机的红外遥控设计
2022-06-01王赛张立新王军昂吴凯枫凌云
王赛,张立新,王军昂,吴凯枫,凌云
(南京信息工程大学自动化学院,江苏南京,210044)
0 引言
红外线是不可见光,其波长很短,远远不及无线电波的波长,因此红外遥控不会与其它的无线设备进行相互干扰,而且红外线可以进行一定的折射,却无法穿透墙壁等障碍物,因此对与其他的家用电器的使用几乎不会造成影响,这大力支持了红外遥控的大批量生产以及在家用电器上的普及。目前,脉冲宽度调制(PWM)和脉冲位置调制(PPM)在红外遥控中应用最为广泛,其中PWM属于NEC Protocol,PPM属于 Philips RC-5 Protocol[2]。
本设计使用STC单片机编写NEC和RC-5两种协议,初始时默认协议为NEC协议,不同的按键发送相NEC协议对应的码值,LCD显示屏上显示当前的码型及其客户码和数据码码值。通过K1按键转换为RC-5协议,不同的按键发送相RC-5协议对应的码值,LCD显示屏上显示当前的码型及其客户码和数据码码值。
1 红外遥控协议
1.1 NEC协议
NEC协议由引导码+客户码(8位)+客户反码(8位)+数据码(8位)+数据反码(8位)组成。客户反码和数据反码是为了校验发码的内容是否正确,增加红外线在传输时的可靠性[3]。引导码由高电平(9ms)+低电平(4.5ms)组成,客户码,客户反码,数据码和数据反码是由逻辑1(0.56ms的高电平+1.68ms的低电平)与逻辑0(0.56ms的高电平+0.56ms的低电平)组成。NEC协议的发送顺序为低位在前,高位在后。若程序判断为连续按键,则在发完一帧简码108ms后不断重复发送规定的尾码,直至按键松开。尾码由高电平(9ms)+低电平(2.25ms)+高电平(0.56ms)+低电平(97.94ms)组成[4]。如图1所示其码型图。
图1 NEC 码型图
1.2 RC-5协议
RC-5协议的数据格式为:起始码(1位)+拓展码(1位)+转换码(1位)+系统码(5位)+数据码(6位)。其发送顺序为高位在前,低位在后。这些码均由逻辑1(0.889ms的低电平+0.889ms的高电平)与逻辑0(0.889ms的高电平+0.889ms的低电平)组成[5]。若程序判断为连续按键,每隔108ms重复发送一帧完整的码,直至按键松开。其码型图如图2所示。
图2 RC-5 码型图
2 系统硬件设计
2.1 MCU主控模块
STC89C51是此次设计所采用的单片机芯片,它可以在指令编码上兼容8051系列,还不需要特殊指定的仿真编程器。最小系统的组成十分简单,其主要组成为时钟电路,电源电路与复位电路,如图3所示。
图3 MCU 主控模块
2.2 LCD显示模块
LCD显示模块采用的是LCD1602液晶显示屏,相比较与数码管,它更加灵活方便,具用来显示字母、符号和数字等更流畅,更直观。LCD1602液晶显示屏在显示图片方面有所不足,因为它每位之间有一个点距的间隔,每行之间也有间隔,但是这样更有利于行间距和字符间距,而本设计只需要显示数量较少的文字符号,属于最佳的选择。此外,显示屏共有16个引脚,其引脚功能及原理图如图4,图5所示。
图4 LCD 引脚功能
图5 LCD 显示模块
2.3 按键扫描模块
按键扫描模块主要由独立按键模块和4*4矩阵按键模块两部分组成。独立按键K1主要用来转换发射的红外协议类型。上电时,默认为NEC协议,然后通过按下K1按键,实现两种协议的相互转换。4*4矩阵按键S1~S16分别赋予01~0F的数据码,按下不同的按键可以发出相对应的数据码。独立按键模块和4*4矩阵按键模块如图6和图7所示。
图6 独立按键模块
图7 4*4矩阵按键模块
2.4 红外发射模块
采用红外发光二极管作为本次的红外发射模块,该二极管和其他的发光二极管的外观及其内部构造看上去都一样,但其使用了特殊的材料制造,只需在驱动管上施加一定频率的电压,便能产生调制光。因为红外遥控抗干扰能力强,电路简单,对环境影响小,不会影响到临近的无线电设备,所以普遍适用于大多数家电的控制。本次采用的红外遥控两种协议的方波占空比为1/3,且载波频率为38KHZ。
3 系统软件设计
系统主要由单片机最小系统,LCD显示模块,红外线发射模块,按键扫描模块等组成。在程序上电后,程序先初始化,再进行按键扫描,若扫描到有按键按下,判断按键是否为双键或多键(若为双键或多键,重新回到按键扫描),接着判断是否为连续按键(连续按键NEC协议发尾码,RC-5协议不变),随后延迟一定时间稳定程序,再判断发码的协议类型,最后LCD显示屏显示相关数据,红外发光二极管发送红外线。其流程图如图8所示。
图8 系统流程图
4 实验结果
本设计采用红外遥控编码分析仪接收所发射的红外线,并显示所发码值的波形。程序刚上电时,当按键按下时,LCD屏显示如图9所示。NEC协议客户码为12H,S1的数据码为01H,因此按下S1按键发送一帧简码12 ED 01 FE,当连续按键时,则在108ms后重复发送尾码;同理S2的数据码为02H,按下 S2 按键发送一帧简码 12 ED 02 FD。如图 10 所示。
图9 NEC协议LCD显示
图10 NEC 协议
若按下K1按键(K1按键自身不发码),系统转换为发送RC-5协议的码型。同一按键,当按键按下时,LCD屏显示如图11所示,RC-5协议系统码为00H,S1的数据码为01H,因此按下S1按键发送一帧全码00 01,当连续按键时,则在108ms后重复发送全码;同理S2的数据码为02H,按下S2按键发送一帧全码00 02。如图12所示。
图11 RC-5协议LCD显示
图12 RC-5 协议
5 结论
本设计涵盖了矩阵按键,液晶显示等多个模块操作,能够通过按下不同按键发出相对应的正确的红外遥控码值,并且能够通过独立按键改变红外遥控码型。通过分析红外遥控编码分析仪接收所发射的红外线,观察发现达到了预期的效果。