基于ST20P18单片机的通用家电无线遥控设备的设计方案
该模块的显示RAM分为4块,每块5行,8列,所以共有4×5×8位。液晶屏幕上的每一个8点列对应显示RAM中的一个列字节。当设置了块地址和列地址后,就唯一确定了显示RAM中的一个列字节。每个列字节中最上面一位为LSB,最下面一位为MSB。对显示RAM的一个列字节赋值就是对液晶屏幕上对应像素点是否显示进行控制。把不同字符的字模写到不同位置的显示RAM字节中,就能在屏幕上显示相应的所要求的字符。
通用遥控器的软件设计
开机后,先进行初始化,包括对单片机的初始化、LCD的初始化和其他模块的初始化。出于省电的考虑在40s内若没有键按下,让单片机的LCD控制器进入空闲模式。用“for”循环来计时,并设计初值为零。随后开始40s计时,若在此期间有键按下,则进入中断服务程序,若40s内无键按下,则单片机的 LCD控制器进入空闲模式。若在空闲中有键被按下,单片机被唤醒,执行中断服务程序。由于单片机的LCD控制器被中断唤醒执行完中断程序返回后,单片机会接着执行把单片机的LCD控制器置为空闲模式的那条指令的下一条指令,因此在把单片机的LCD控制器置为空闲模式的指令后再有一个循环来计时,由于中断返回前,重设计数初值为零,所以会重新开始5s的计时。在这40s内,若无键按下, 则单片机的LCD控制器又进入空闲模式。程序流程图如图4所示。
图4 软件设计流程
通信协议
1 编码字的格式
能实现编码功能的逻辑电路称为编码器。每一种遥控编码芯片都有一种特定的编码格式。我们把传送一位二进制数0或者1的时间作为一个时间单位T,编码信号的频率为F=1/T。这里用的是种比较常用的编码格式,每一帧由步码、地址码和数据码组成,同步码用在一帧的开始,是一帧的识别标志,宽度为8T;地址码20(A0—A19),宽度为20T;数据码4位(D0-D3),宽度为4T, 一帧占据的总时间是32T。
对应于每一种状态,编码芯片内部能够生成一种特殊的编码,这种编码也是由“1”和“0”组成,但并不是简单的用高电平代表“1”,用低电平代表 “0”,而是用高电平与低电平宽度比例的不同来区分“1”和“0”,也就是所谓的占空比。为了提高此编码传输串行信号的可靠性,故此编码采用一个周期的占空比为1/4的脉冲表示0,占空比为3/4的脉冲表示1,同步信号用一个占空比为1/32的脉冲表示,如图5所示。
图5 信号占空比
2 协议设计
通常遥控信号的发射,就是将某个按键所对应的控制指令和信息码(由0和1组成的序列),调制在32~56kHz范围内的载波上,然后经放大、驱动无线发射电路将信号发射出去。
如表1所示,各部分码的作用:引导码用来通知接收器其后为遥控数据。地址码用来区分是哪一机型的数据,接收端据此来判断后续的数据是否为本机必须执行的指令。信息码用来区分是哪一个键被按下,接收端接受信息码的数据并据此做出应该执行什么动作的判断。信息码也包括在持续按键时发送的连续码。它告知接收端,某键是在被连续地按着。结束码用来通知接收器一帧数据发送完毕。
遥控数据传输系统的关键是数据传输的可靠性。为了提高编码的可靠性,本协议规定地址码后接着传送一个反码,供误码校验使用。每一位的信息码后接着传送一个奇偶校验位也是用来作为误码校验使用。
结束语
本设计的创新在于提出了通用家电遥控设备的设计方案,根据实际的要求能够控制多个家用电器,睡眠模式实现低功耗,且成本低于其他同类产品。经过实际运行测量,该无线传输系统工作稳定,穿透能力强,功耗低(当在空闲模式下,电路中电流小于10μA)能够很好的实现相应设计要求的功能。
遥控 设备 设计 方案 无线 家电 ST20P18 单片机 通用 相关文章:
- 基于MSP430F149的无线遥控教鞭设计方案(07-05)
- DIY智能家居之多功能一体化触屏遥控器的设计实现(04-14)
- 七个经典的Arduino创意制作实例,有图有真相(软硬件资料齐全)(06-03)
- 全新物联网解决方案,可手机控制的健康饮水机智能控制系统完整方案(08-27)
- Nordic Semiconductor新智能遥控参考设计 结合无与伦比的语音输入性能和超低功耗特性(07-30)
- 十个中文例程教会你轻松上手制作Arduino智能小车(06-04)