家用多功能定时控制器的主要功能和技术要求
该家用多功能定时控制器的主要功能和技术要求如下:
1.能够预置并存储16个定时时间,存储的时间掉电不丢失;
2.可用按键和红外遥控两种方式进行时间预置;
3. 可用数码管显示预置时间及剩余时间的时、分、秒;
4.定时时间1秒~24小时,定时误差小于10ms:
5.具有语音和数码显示两种时间到提示方式:
6. 有一路‘时间到’开关量输出功能。
硬件电路设计
1.软件和硬件功能分配
在单片机系统中,有的功能既可以用软件也可以用硬件实现,因此在明确了系统的功能要求后,应当先进行软件和硬件的功能分配,然后再进行硬件电路设计。为了降低成本,我们将本着能够用软件实现的功能就不用硬件的原则来进行功能分配。下面我们就根据产品功能要求逐条地进行分析。
第1条“能够预置并存储16个定时时间,且存储时间掉电不丢失”。存储数据必须用存储器,此条对存储器包含两方面的要求,一是存储容量,二是存储器的类型。存储容量等于每个定时时间所占字节数乘以定时时间数。每个定时时间包括时、分、秒3部分,各占2个字节,共6个字节,16个定时时间需要96个字节。若要考虑可靠性,则要进行数据备份和恢复,每个定时时间需要保存3份,就需要288个字节。对于存储时间掉电不丢失,可以用两种方式实现,一是用备用电池,二是用EEPROM存储器。这里我们考虑用EEPROM存储器。因此可知,该硬件系统中必须有存储容量大于288字节的EEPROM存储器。
第2条“可用按键和红外遥控两种方式进行时间预置”,要求有按键和红外遥控接收两种输入。按键输入可用数字+功能键或多功能键两种方式。用数字+功能键需要0~9、修改、存储、时间选择、启动等14个键;多功能键则只用“+”、“-”、“设置”、“启动”4个独立的按键便可。根据尽量减少硬件的原则,我们选择4键输入方式。对于红外遥控,大家知道,其输出信号是一连串的二进制脉冲码,为了使其在无线传输过程中免受其他红外信号的干扰,通常要先将其调制在特定的载波频率,然后再经红外发光二极管发射出去,波形如右图所示,发送可选通用遥控器或家电的遥控器;而在接收时则要先滤除其他杂波只接收该特定频率的信号并将其还原,即解调,然后再进行解码,才能得到所发送的键值。解调工作可用一体化的红外接收头来完成,解码工作可用专用解码芯片和单片机软件两种方式完成。用软件完成解码是最经济的,因此我们用软件来解码,故在该硬件系统中应有4个按键、一个一体化红外接收头,以及一个红外遥控器。
第3条“可用数码管显示预置时间及剩余时间的时、分、秒”,要求有8位数码管,分别显示预置时间号(2位)、时(2位)、分(2位)、秒(2位)。而显示预置时间状态和显示剩余时间状态,则可通过数码管或小数点的闪与不闪来区别。当然,也可用1位数码管的O~F来显示预置时间号,只是不太直观。因此可知,该硬件系统中应有7~8位数码管。
第4条“定时时间1秒~24小时,定时误差小于10ms”,是要求计时。在所有的单片机内部都有定时器模块。其计时精度可达1个机器周期。从《电子制作》2006年第2期《单片机的基本结构与工作原理(二)》一文中大家知道,对于振荡频率为12MHz的AT89S52单片机,其机器周期为1 μ s,因而计时精度完全能够满足要求,所以采用单片机片内的定时器进行计时。
第5条“具有语音和数码显示两种‘时间到’提示方式”。语音输出可以采用单片机软件产生音频信号,通过I/0口输出并经放大后驱动喇叭的方式,也可以采取用专用语音芯片+驱动+喇叭,由单片机控制语音芯片输出的特定语音段的方式来实现。考虑到用软件编制各种语音信号相对麻烦,加上专用语音芯片是目前使用十分普遍的单片机接口器件,初学者应当掌握,因此采用单片机控制专用语音芯片的方式实现该功能。故在该硬件系统中,应当有具有0~10、点、分、秒、小时、定时时间、现在时间、定时时间到、剩余时间等19段语音的专用语音芯片和喇叭等。
第6条“有一路时间到开关量输出功能”。实现此功能,需要单片机在定时时间到的时候,通过某口线输出高电平或低电平。考虑到所要控制的设备要求的电源电压和功率可能是不同的,因此应在单片机口线外加上驱动电路,并采用继电器输出方式,使用时可以根据控制设备的要求接入电源。可见,该硬件系统中应有一只继电器及其驱动电路。
2.硬件电路设计
根据前面的分析我们知道,该系统中应当有容量大于288字节的EEPROM存储器、4个按键、一个一体化红外接收头、一个红外遥控器、7~8位数码管、一片专用语音芯片、一只喇叭、一只继电器及其驱动电路。当然。也少不了单片机和电源。考虑到要使其可以制成时钟、数字测温仪、频率计、计数器等产品,并可与PC机通信,还要加温度检测电路及RS232串行通信接口电路,而频率计、计数器功能则可用单片机内部的定时计数器来完成,基本上不需要增加硬件。据此,我们可以绘制出该单片机系统的电路框图如左图所示。
下面根据该框图进行具体电路设计。
(1)单片机及其相关电路
在单片机系统硬件设计中,单片机的选择是很重要的。一般来说,单片机的选择有两个原则,一是选择内部具有尽可能多的实现所需功能的资源,以减少外部硬件电路,二是选择设计者熟悉的单片机,以加快产品设计的速度。此外,单片机的价格、单片机的抗干扰能力等亦在考虑之列。本讲座讲的是89S52单片机,故采用AT89S52。大家知道,单片机要正常工作,时钟电路和复位电路是必不可少的。时钟电路采用外接晶振,频率为12MHz,微调电容为30pF;复位采用上电和手动复位电路。AT89S52单片机片内带看门狗,如果系统中有较强的干扰,可以启动看门狗。AT89S52单片机内部有8k字节Flashl ROM、256字节RAM,完全可以满足本系统的要求,故不用外扩程序和数据存储器,因此其EA脚固定接高电平,ALE和PSEN脚悬空。
(2)键盘电路
在单片机系统中,按键的状态通过 I/O口送到单片机,单片机根据相关 I/O口的电平判断按键是否按下,再根 据所按的键去执行对应的程序,完成指 定的功能。即,程序可以赋予按键设计 者希望实现的任何功能,这也是单片机 系统与纯硬件系统的不同之处。
在单片机系统中,常用的按键电路 有矩阵式键盘和独立式按键两种。
矩阵式键盘如图3所示。若干行和若干列组成矩阵,按键跨接在行和列 之间,可接按键的总和为行数×列数。行、列分别接至单片机的I/O口,单片 机先将某行置为特定状态后再读取列, 以获知是否有键按下,逐行设置状态并 读取列,便可知道是否有键按下,以及按下的键所在的行和列。矩阵式键盘可 以用较少的I/O口接较多的按键(如图3中7个I/O口接了12个按键),适用于按键较多的场合,但键扫描程序相对复杂。
独立式按键如图4所示。一个按键接一个I/O口,单片机读取该口的状态,就知按键状态。独立式按键的键值读取程序简单,但占用的I/O口多,适用于按键较少的场合。本产品只设4个按键,故采用独立式按键,占用单片机的4个I/O口。
(3)显示电路
显示电路用8位LED数码管。带小数点的LED数码管由8段发光二极管组成,分别定义为a、b、c、d、e、f、g和dp,8段发光二极管的一个同名端接在一起,定义为corn,即公共端。根据所接同名端的不同,将LED数码管分为共阴和共阳两种,图5为其外形及结构图。要令数码管显示不同的字符,一要分别控制各段的独立端的电平。二要控制公共端将相应段的发光二极管点亮。如,要显示1,则应使b、c段点亮。以共阴数码管为例,应向b、c端送高电平、其余段送低电平,向cotn端送低电平。我们通常称控制a~g和dp段的信号为段码,称控制COll]端的信号为位码。
单片机与LED数码管的接口分为静态显示和动态显示两种。静态显示时,段信号和位信号始终保持不变,在多位显示时,每位数码管的段信号都要用锁存器锁存。动态显示采取单片机I/O口分时复用的方式输出段信号,由位选信号决定某一时刻哪一位数码管显示。由于人眼的视觉暂留效应,只要让数码管按较高的频率轮流显示,而同一位数码管每次显示相同的字符,我们看到就是固定的字符串了。
为了简化硬件电路,降低成本,我们采用动态显示方式,用4只双共阴数码管显示8位数。每只LED发光二极管的驱动电流为3mA-5mA,AT89S52的P0口的驱动能力是最强的,故直接用P0口作段输出口,不需外加驱动电路,而P0口在作普通I/O口用时,是开漏结构的准双向口,必须外接上拉电阻。AT89S52的其他I/O口只有4个TTL门的驱动能力,而每只数码管的公共端的最大电流可达8×3mA-5mA,因此位选输出口的需要外接驱动电路,这里用一只八达林顿管芯片ULN2803来对8位位选信号进行驱动。