基于单片机的定时插座设计_第1页
基于单片机的定时插座设计_第2页
基于单片机的定时插座设计_第3页
基于单片机的定时插座设计_第4页
基于单片机的定时插座设计_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本章主要讨论了系统的总体方案以及各模块的设计方案,包括了控制核心、开关、显示模块、时钟电路以及键盘电路方案。2.1 系统结构与功能系统总体设计主要实现以下功能:(1)人机交互界面:通过1602液晶显示屏,与独立按键建立起一套完善的人机交互界面。可以用于设置定时的参数。查看定时参数,现实时间。(2)设置定时时间:用户通过人机交互界面,查找到设定时间界面,设置对应的每一组的设置时间。(3)设置现实时间:由于各种外界因素会导致系统现实时间与实际现实时间相异,系统支持修改系统现实时间。用户通过人机交互界面,查找到设定时间界面,设置系统现实时间。(4)报警:当用户设定时间结束时会出现报警提示。2.2 方

2、案框图2.2.1 方案1采用数字电路控制。用以74LS161计数器构成的定时器电路做为智能插座的核心控制,用拨码开关做为用户设置按键,其中包括了定时时间设定,系统时间初始化设定,开始停止控制时间的设定。通过555定时电路为计数器提供时钟,通过级联74LS161做为倒计时电路,通过与输出时间比较控制触发器从而控制电路的开关。采用数字电路设计的方案需要大量的74LS161芯片以提供较长的定时时间(若定时时钟为1Hz,定时10小时需要36000S,需要四片74LS161),系统结构复杂,成本较高,系统稳定性差,定时时间调整不灵活。故不采用此方案。2.2.2 方案2采用一种以STC89C51为核心的单

3、片机控制方案。选用单片机AT89S51 作为本设计的核心元件,利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,实现基本的定时控制功能。在单片机的外围电路外接输入键盘及1602液晶用于构造人机交互界面以设置各个参数。其原理如下图2.1所示:图2.1 单片机控制密码锁原理图由此可以看出方案二控制灵活、节约成本和稳定性强的特点,此外还具有扩展功能,根据现实生活的需要此次设计采用此方案。2.3 开关的选择现代自动控制设备中,都存在一个电子电路电气电路的互相连接的问题,一方面要是电子电路的控制信号能够控制电气电路的执行元件(电动机、电灯、热水器等),另一方面又要为电子线路的电器电路提供良好的

4、电隔离,以保护电子电路和人身的安全。电子继电器和光耦合器便能起到这一桥梁的作用。下面简要介绍各个方案的特点。方案一:采用继电器作为控制220V通、断的开关。固态继电器(SSR)与机电继电器相比,是一种没有机械运动,不含运动零件的继电器,但它具有与机电继电器本质上相同的功能。SSR是一种全部由固态电子元件组成的无触点开关元件,他利用电子元器件的点,磁和光特性来完成输入与输出的可靠隔离,利用大功率三极管,功率场效应管,单项可控硅和双向可控硅等器件的开关特性,来达到无触点,无火花地接通和断开被控电路。选用SRD-05VCD-SL-C继电器最大电路可达到10A,即继电器的正常工作范围为0到2200瓦,

5、可以给大部分家用电器供电。方案二:采用光耦合器实现单片机控制开关。耦合器(optical coupler,英文缩写为OC)亦称光电隔离器,简称光耦。光耦合器以光为媒介传输电信号。它对输入、输出电信号有良好的隔离作用,所以,它在各种电路中得到广泛的应用。目前它已成为种类最多、用途最广的光电器件之一。本次设计开关部分可以用继电器也可以用光耦合器。考虑到本设计继电器足以满足设计要求,而且继电器比光耦合器便宜,故选用继电器。2.4 显示方式选择在模拟电子和数字电子中,常用显示数据的有数码管和液晶显示器。方案一:采用LED数码管显示。虽然功耗低,控制简单,但却只能显示数字和一些简单的字符,而且显示信息少

6、,需要较多位的数码管,占用了较多的单片机I/O口,没有较好的人机界面。方案二:采用LCD液晶显示,可以显示所有字符及自定义字符,并能同时显示多组数据、汉字,字符清晰。由于自身具有控制器,不但可以减轻主单片机的负担,而且可以实现菜单驱动方式的显示效果,达到友好的人机介面。LCD显示能解决LED只能显示数字等几个简单字符的缺点,性能好,效果多,控制方便,显示方式多,且能耗也较少。这次设计中不仅要显示相应的时钟、定时组别、目前运行的模式,而且还要显示出相应的定时开始时间和结束时间,需要显示的信息较多,所以采用方案二,用LCD显示结果。2.5 时钟的实现及单片机的选择时钟的实现可已通过使用时钟芯片或者

7、单片机的定时器实现。下面简要介绍几种方案的特点。单片机仅用于控制继电器、键盘,实现时钟和定时,用51结构的有Atmel的AT89CXX系列、AT89SXX系列、AT89C20系列(20引脚)或STC的所有单片机都可以实现。根据在学校比较流行的学习单片机是STC89C51系列,而且STC89C51单片机便宜,购买方便,下载方便,故单片机选用STC89C51单片机。方案一:时钟通过使用时钟芯片来实现,控制部分通过使用单片机来实现。时钟芯片种类非常多,有内置晶振及充电电池的,也有外置晶振的,现在流行的时钟芯片有DS1302、 DS1307、PCF8485、SB2068等。使用时钟芯片可以得到准确的时

8、钟走时,可用简单的程序实现定时开关插座的定时功能。方案二:时钟通过单片机的内部定时器来实现时钟。单片机的内部定时器可实现较为精确的时钟走时,定时50毫秒的误差率极小,可达到定时开关插座的使用要求。使用单片机内部定时器可简化硬件电路,可以节省开支,但是编程的难度有所提高。本次设计的时钟走时用单片机定时器已经可以完全达到定时开关插座的使用要求,并可省去时钟芯片,节省开支。考虑到软件的难度增加可换来更好的性价比,所以选用方案二。2.6 按键控制部分的实现时钟时间和定时时间的设置功能可以通过按键来实现。按键的实现可以通过以下两种方案实现:方案一:单片机的每一个I/O口与一个按键相连,这样就可以根据扫描

9、I/O口的电平变化实现相关功能。这样可以很简单的实现按键的功能。方案二:使用矩阵键盘实现。矩阵键盘可以用较少的I/O口实现多个按键功能,能节省更多的I/O口,利于系统扩展功能。但是编程复杂。根据本定时开关插座的设置要求,用到4个按键。通过两个方案的对比,方案一的实施办法更符合要求。第51页第三章 主要元器件原理及其应用本章主要讨论了各模块元器件的选择以及元器件的工作原理。3.1 单片机STC89C51简介主CPU电路选用STC89C51RC系列单片机,STC89C51RC是采用8051核的ISP(In System Programming)在系统可编程芯片,最高工作时钟频率为80MHz,片内含

10、8K Bytes的可反复擦写1000次的Flash只读程序存储器,器件兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,具有在系统可编程(ISP)特性,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。STC89C51RC系列单片机是单时钟/ 机器周期(1T)的兼容8051 内核单片机,是高速/ 低功耗的新一代8051 单片机,全新的流水线/ 精简指令集结构,内部集成MAX810 专用复位电路。3.1.1 主要特性(1)增强型1T流水线/精简指令集结构8051CPU(2)工作电压:3.4V-

11、5.5V(5V 单片机)/2.0V-3.8V(3V 单片机)(3)工作频率范围:0-35MHz,相当于普通8051的0420MHz.实际工作频率可达48MHz.(4)用户应用程序空间12K/10K/8K/6K/4K/2K字节(5)片上集成512字节RAM(6)通用I/O口(27/23个),复位后为:准双向口/弱上拉(普通8051传统I/O口)可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏每个I/O口驱动能力均可达到20mA,但整个芯片最大不得超过55mA(7)ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器可通过串口(P3.0/P3.1)直接下载用户程序,

12、数秒即可完成一片(8)EEPROM功能(9)看门狗(10)内部集成MAX810专用复位电路(外部晶体20M以下时,可省外部复位电路)(11)时钟源:外部高精度晶体/时钟,内部R/C振荡器。用户在下载用户程序时,可选择是使用内部R/C 振荡器还是外部晶体/时钟。常温下内部R/C振荡器频率为:5.2MHz6.8MHz。精度要求不高时,可选择使用内部时钟,因为有温漂,请选4MHz 8MHz(12)有2个16位定时器/计数器(13)外部中断2路,下降沿中断或低电平触发中断,Power Down 模式可由外部中断低电平触发中断方式唤醒(14)PWM(4路)/PCA(可编程计数器阵列),也可用来再实现4个

13、定时器或4个外部中断(上升沿中断/下降沿中断均可支持)(15)STC89Cc516AD具有ADC功能。10位精度ADC,共8路 (16)通用异步串行口(UART)(17)SPI同步通信口,主模式/从模式 (18)工作温度范围:0-75/-40-+85 (19)封装:PDIP-28,SOP-28,PDIP-20,SOP-20,PLCC-32,TSSOP-20(超小封状,定货)3.1.2 引脚功能说明管脚图如3.1所示。图3.1 STC89C51管脚图P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和

14、数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个 TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2 的触发输入(P1.1/T2EX),具体如下表所示。 在flash编程和校

15、验时,P1口接收低8位地址字节。引脚号第二功能P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5 MOSI(在线系统编程用)P1.6 MISO(在线系统编程用)P1.7 SCK(在线系统编程用)P2口:P2口是一个具有内部上拉电阻的8 位双向I/O 口,P2输出缓冲器能驱动4个TTL 逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX

16、DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O口,P2输出缓冲器能驱动4个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为STC89C52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号

17、。端口引脚第二功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INTO(外中断0)P3.3 INT1(外中断1)P3.4 TO(定时/计数器0)P3.5 T1(定时/计数器1)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因

18、此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号

19、。EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。3.2 1602工业字符型液晶简介3.2.1 主要特性工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)。1602液晶管脚图如图3.2所示。图3.2 1602液晶管脚图1602字符型LCD通常有14条引脚线或16条引脚线的

20、LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样。1602管脚说明表如表3.1所示。表3.1 1602液晶管脚说明引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0低

21、4位三态、 双向数据总线 0位(最低位)8DB1低4位三态、 双向数据总线 1位9DB2低4位三态、 双向数据总线 2位10DB3低4位三态、 双向数据总线 3位11DB4高4位三态、 双向数据总线 4位12DB5高4位三态、 双向数据总线 5位13DB6高4位三态、 双向数据总线 6位14DB7高4位三态、 双向数据总线 7位(最高位)(也是busy flag)15BLA背光电源正极16BLK背光 电源负极3.3 继电器介绍继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故

22、在电路中起着自动调节、安全保护、转换电路等作用。3.3.1 继电器的继电特性继电器的输入信号x从0连续增加达到衔铁开始吸合时的动作值xx,继电器的输出信号立刻继续增大,输出信号y将不再起变化。当输入量x从某一大于xx值下降到xf,继电器开始释放,常开触点断开。我们把继电器的这种特性叫做继电特性,也叫继电器的输入-输出特性。释放值xf与动作值xx的比值叫做反馈系数,即Kf=xf/xx。触点上输出的控制功率Pc与线圈吸收的最小功率P0之比叫做继电器的控制系数,即Kc=Pc/P0。3.3.2 继电器工作原理及特性(1)电磁继电器的工作原理和特性电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只

23、要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放。这样吸合、释放,从而达到了在电路中的导通、切断的目的。对于继电器的“常开、常闭”触点,可以这样来区分:继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”。(2)热敏干簧继电器的工作原理和特性热敏干簧继电器是一种利用热敏磁性材料检测和控制温度的新型热敏开关。它由感温磁

24、环、恒磁环、干簧管、导热安装片、塑料衬底及其他一些附件组成。热敏干簧继电器不用线圈励磁,而由恒磁环产生的磁力驱动开关动作。恒磁环能否向干簧管提供磁力是由感温磁环的温控特性决定的。(3)固态继电器(SSR)的工作原理和特性固态继电器是一种两个接线端为输入端,另外两个接线端为输出端的四端器件,中间采用隔离器件实现输入输出的电隔离。 固态继电器按负载电源类型可分为交流型和直流型。按开关型式可分为常开型和常闭型。按隔离型式可分为混合型、变压器隔离型和光电隔离型,其中以光电隔离型最多。(4)磁簧继电器磁簧继电器是以线圈产生磁场将磁簧管发生动作的继电器,为一种线圈传感装置。因此磁簧继电器具有尺寸小、轻量、

25、反应速度快、短跳动时间等特性。 当整块铁磁金属或者其它导磁物质与之靠近的时候发生动作,开通或者闭合电路。由永久磁铁和干簧管组成。永久磁铁、干簧管固定在一个不导磁也不带有磁性的支架上。以永久磁铁的南北极的连线为轴线,这个轴线应该与干簧管的轴线重合或者基本重合。由远及近的调整永久磁铁与干簧管之间的距离,当干簧管刚好发生动作(对于常开的干簧管,变为闭合;对于常闭的干簧管,变为断开)时,将磁铁的位置固定下来。这时,当有整块导磁材料,例如铁板同时靠近磁铁和干簧管时,干簧管会再次发生动作,恢复到没有磁场作用时的状态;当该铁板离开时,干簧管即发生相反方向的动作。磁簧继电器结构坚固,触点为密封状态,耐用性高,

26、可以作为机械设备的位置限制开关,也可以用以探测铁制门、窗等是否在指定位置。(5)光继电器光继电器为AC/DC并用的半导体继电器,是发光器件和受光器件一体化的器件。输入侧和输出侧电气性绝缘,但信号可以通过光信号传输。 其特点为寿命为半永久性、微小电流驱动信号、高阻抗绝缘耐压、超小型、光传输、无接点等。主要应用于量测设备、通信设备、保全设备、医疗设备等。3.3.3 继电器主要产品技术参数(1)额定工作电压额定工作电压是指继电器正常工作时线圈所需要的电压,也就是控制电路的控制电压,根据继电器的型号不同,可以是交流电压,也可以是直流电压。(2)直流电阻直流电阻是指继电器中线圈的直流电阻,可以通过万能表

27、测量。 (3)吸合电流吸合电流是指继电器能够产生吸合动作的最小电流。在正常使用时,给定的电流必须略大于吸合电流,这样继电器才能稳定地工作。而对于线圈所加的工作电压,一般不要超过额定工作电压的1.5倍,否则会产生较大的电流而把线圈烧毁。 (4)释放电流释放电流是指继电器产生释放动作的最大电流。当继电器吸合状态的电流减小到一定程度时,继电器就会恢复到未通电的释放状态。这时的电流远远小于吸合电流。 (5)触点切换电压和电流触点切换电压和电流是指继电器允许加载的电压和电流。它决定了继电器能控制电压和电流的大小,使用时不能超过此值,否则很容易损坏继电器的触点。3.3.4 继电器的选用(1)先了解必要的条

28、件 控制电路的电源电压,能提供的最大电流;被控制电路中的电压和电流; 被控电路需要几组、什么形式的触点。选用继电器时,一般控制电路的电源电压可作为选用的依据。控制电路应能给继电器提供足够的工作电流,否则继电器吸合是不稳定的。 (2)查阅有关资料确定使用条件后,可查找相关资料,找出需要的继电器的型号和规格号。若手头已有继电器,可依据资料核对是否可以利用。最后考虑尺寸是否合适。(3)注意器具的容积。若是用于一般用电器,除考虑机箱容积外,小型继电器主要考虑电路板安装布局。对于小型电器,如玩具、遥控装置则应选用超小型继电器产品。通过上面的性能了解和比较,及考虑的器件的性价比,本设计选择电磁继电器。第四

29、章 硬件电路的设计本章节详细讨论了各个模块的具体电路的设计,包括电源模块、单片机最小系统、液晶显示模块、继电器驱动模块以及键盘模块。4.1 电源电路系统要提供稳定的直流5V供单片机及其所控制的外围电路(包括液晶、键盘、继电器等)和提供220交流电给插座。在电源的设计中,用220V交流电经过变压器降压后经7805稳压后给单片机控制系统供电。7805三端稳压集成芯片有很多种型号,但是标称最大输出电流均为1.5A,在实际应用中,该最大输出电流往往取决于两个方面:(1)足够大的散热面积;(2)在设计中,必须保证7805的输入电压Vi和输出电压Vo的压差大于2.5V,即Vi-Vo>=2.5V,否则

30、会失去稳压能力。同时单片机控制系统还用6V干电池作为储备电源,当交流电源失电或者失效时,电压为6V的直流电源通过二极管投入作用,硅二极管的导通压降约为0.2V,因袭满足系统的电源要求。P25接的是经5W变压器降压后的交流电。D33二极管起到保护电路的作用。发光二级DS11是指示电源是否有电压输出。Header2所接的是(由干电池提供)6V直流电的输入接口,2接正,1接负。X78xx系列是三端正电源稳压电路,它的封装形式为TO-220。它有一系列的稳固电压输出,应用非常的广泛。每种类型由于内部电流的限制,以及过热保护和安全工作区的保护,使它基本上不会损坏。如果能够提供足够的散热片,它们就能够提供

31、大于1.5A的输出电流。虽然是按照固定电压值来设计的,但是当接入适当的外部器件后,就能获得各种不同的电压和电流。7805使用时应该注意的事项:在实际应用中,应在三端集成稳压电路上安装足够大的散热器(当然小功率的条件下不用)。当稳压管温度过高时,稳压性能将变差,甚至损坏。当制作中需要一个能输出1.5A以上电流的稳压电源,通常采用几块三端稳压电路并联起来,是其中最大输出电流为N个1.5A,但应用时需要注意:并联使用的集成稳压电路应采用同一厂家、同一批号的产品,以保证参数的一致。另外在输出电流上留有一定的流量,以避免个别集成稳压电路失效时导致其他电路的连锁烧毁。7805稳压管如图4.1所示。图4.1

32、 7805稳压管管脚说明电源电路如图4.2所示。图4.2 电源电路4.2 单片机最小系统单片机最小系统由复位电路、时钟电路和单片机STC89C51组成,如图4.3所示。图4.3 单片机最小系统电路(1)时钟电路模块由于系统需要计算精确时间,所以该模块使用了一个12MHz的晶振。时钟电路用于产生单片机工作所需要的时钟信号,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按照时序工作。时钟电路图如图4.4所示。图4.4 时钟电路(2)复位电路模块复位是单片机的初始化操作,单片机启动运行时,都必须复位。复位电路包括了上电复位于手动复位两个部分。单片机复位信号为高电平复位。商店复位工作原

33、理:上电时对电容充电,使复位管脚电平拉高单片机复位,冲完后电容隔断电源于复位管脚由下拉电阻拉至第电平单片机正常工作。手动复位原理:按下按钮复位管脚电平被拉高单片机复位,松开按钮复位管脚电平拉低单片机正常工作。它的作用是使CPU和系统中其他的部件处于一个确定的初始状态,并从这个状态开始工作。一般,51系列单片机本身是不能自动复位的,必须配合相应的外部电路才能实现。当程序和电路都要回到最初的状态时使用此电路。复位电路图如图4.5所示。图4.5 复位电路(3)单片机STC89C51宏晶公司的89C51单片机是低功耗的具有4KB在线可编程Flash存储器的单片机。片内的Flash可允许在线重新编程,也

34、可使用通用非易失性存储器编程。它将通用CPU和在线可编程Flash集成在一个芯片上,形成了功能强大、使用灵活和具有较高性能价格比的微控制器。4.3 液晶显示本设计选用的1602液晶为16管脚液晶,即带背光液晶。与单片机接口设计如下:714:连接P0端口4: 连接P2.25: 连接P2.16: 连接P2.01602液晶显示电路图如图4.6所示。图4.6 1602液晶显示电路4.4 继电器驱动电路继电器的驱动电路如图4.4所示。这是典型的继电器驱动电路。单片机是一个弱电器件,一般情况下它们大多工作在5V甚至更低。驱动电流在mA级以下。而要把它用于一些大功率场合,比如继电器驱动,显然是不行的。所以就

35、要有一个环节来衔接,这个环节就是所谓的“功率驱动”。继电器驱动就是一个典型的、简单的功率驱动环节。图中三极管8050有两个作用:一个是起放大作用,一个是起开关作用(严格来讲开关作用是放大作用的极限情况)。P1处连接的是单片机的P2.7口。P2.7口给出高电平时,三极管处于导通状态,并起放大作用,这样,继电器就能得到足够的驱动电流来正常工作。当P2.7口给出低电平时,三极管不工作,继电器因没电流通过而不工作。二极管4148起到保护作用。发光二极管LED0用于指示继电器是处于导通状态(灯亮)还是处于断开状态(灯灭)。继电器驱动电路如图4.7所示。图4.7 继电器驱动电路4.5 键盘电路本设计采用了

36、独立键盘设计,只是用了5个独立案件与单片机IO口连接,利用简单的逻辑方式实现了人机交互界面。该界面操作简单,便于控制。人机界面在软件设计板块中将详细介绍。独立键盘电路如图4.8所示。图4.8 键盘电路4.6 插座电源控制电路由于电源的通断并不频繁所以本设计才用了价格相对较低的继电器做为插座电源的控制电路器件。由单片机的一个I/O口经过三极管控制继电器的通断,从而控制插座的通断电。插座电源控制电路如图4.9所示。图4.9 插座电源控制电路4.7 报警电路本设计报警电路由单片机I/O口经三极管控制蜂鸣器进行报警。报警电路如图4.10。图4.10 报警电路第五章 系统软件设计本章详细介绍了各个模块的

37、软件设计流程以及部分源代码,包括了时钟程序、人机界面以及主程序。5.1 开发环境STC89C51单片机软件开发平台为Keil uvision4 C51,仿真环境为Protues,下载软件为STC_ISP。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WIN

38、XP等操作系统。Protues软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、

39、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译。STC-ISP 是一款单片机下载编程烧录软件,是针对STC系列单片机而设计的,可下载STC89系列、12C2052系列和12C5410等系列的STC单片机,使用简便,现已被广泛使用。5.2 各模块程序设计5.2.1 主程序流程图在本次设计中,主程序主要是在单片机的控制下,建立人机操作界面,对设定时间进行储存分析,驱动液晶显示出相关信息,并通过对比分析定时时间

40、与时钟,控制继电器的通、断,从而达到控制插座的通、断电。在这个过程中,单片机首先进行初始化,包括设置单片机各个端口的方向,各个变量的初始化,液晶显示初始化、继电器断开以及单片机振荡频率的校准等。整个系统软件设计的流程图如图5.1所示。图5.1 主程序流程图main()TMOD=0x01;ET0=1;TR0=1;EA=1;shi=1,fen=0,miao=0,a=1,b=1,c=0,d=0,e=0,f=0;power=0;/开电源lcd_init();/ 初始化LCDdelay(1);disp_later(0,0,"1-SET 2-AL 3-SAL",16); /显示第一个界

41、面disp_later(0,1,"TIME:",5);disp_time(6,1,shi,fen,miao);while(1)if(teep=0) /每秒变化一次disp_time(6,1,shi,fen,miao);if(miao=60)miao=0;fen+;if(fen=60)fen=0;shi+;if(shi=24)shi=0;if(k1=0) /设置现在时间EA=0;lcd_cmd(0x01); /清屏disp_later(0,0,"K2:H K3:M K4:O",14);disp_later(0,1,"TIME:",5);

42、disp_time(6,1,shi,fen,miao);while(1)while(k2=0)delay(10);if(k2=1)shi+;if(shi=24) shi=0;disp_time(6,1,shi,fen,miao);while(k3=0)delay(10);if(k3=1)fen+;if(fen=60)fen=0;disp_time(6,1,shi,fen,miao);if(k4=0)EA=1;lcd_cmd(0x01); /清屏disp_later(0,0,"1-SET 2-AL 3-SAL",16); disp_later(0,1,"TIME:&

43、quot;,5);disp_time(6,1,shi,fen,miao);break;if(k2=0) /显示闹铃时间lcd_cmd(0x01); disp_later(0,0,"start:",6); /显示:开始时间disp_time(6,0,a,b,c);disp_later(0,1,"delay:",6);/显示:持续时间disp_time(6,1,c,d,e);delay(500);lcd_cmd(0x01); /清屏disp_later(0,0,"1-SET 2-AL 3-SAL",14);disp_later(0,1,&

44、quot;TIME:",5);disp_time(6,1,shi,fen,miao);while(k3=0) /设置闹铃时间delay(10);if(k3=1)lcd_cmd(0x01); /清屏disp_later(0,0,"K2:H K3:M K4:O",14);disp_later(0,1,"TIME:",5);disp_time(6,1,a,b,c);while(1)while(k2=0)delay(10);if(k2=1)a+;if(a=24) a=0;disp_time(6,1,a,b,c);while(k3=0)delay(10)

45、;if(k3=1)b+;if(b=60) b=0;disp_time(6,1,a,b,c);if(k4=0)lcd_cmd(0x01); /清屏disp_later(0,0,"1-SET 2-AL 3-SAL",16); disp_later(0,1,"TIME:",5);disp_time(6,1,shi,fen,miao);break;if(k4=0)lcd_cmd(0x01); disp_later(0,0,"start:",6); /显示:开始时间disp_time(6,0,a,b,c);disp_later(0,1,&quo

46、t;delay:",6);/显示:持续时间disp_time(6,1,d,e,f);delay(10);while(k4=1)while(k1=0)delay(10);if(k1=1)a+;if(a=24) a=0;disp_time(6,0,a,b,c);while(k2=0)delay(10);if(k2=1)b+;if(b=60) b=0;disp_time(6,0,a,b,c);while(k3=0)delay(10);if(k3=1)d=d+5;if(d=60) d=0;c+;if(c=24)c=0;disp_time(6,1,c,d,e);if(k4=0)ling=1;n

47、ao();power=0; /开电源disp_later(0,0,"1-SET 2-AL 3-SAL",16); disp_later(0,1,"TIME:",5);disp_time(6,1,shi,fen,miao);break;if(ling=1)if(shi=a+c)if(fen=b+d)power=1; /关电源lcd_cmd(0x01); /清屏disp_later(0,0,"TIME OVER",9);nao();nao();nao();lcd_cmd(0x01); /清屏disp_later(0,0,"1-S

48、ET 2-AL 3-SAL",16); disp_later(0,1,"TIME:",5);disp_time(6,1,shi,fen,miao);ling=0; 5.2.2 时钟程序设计单片机AT89S52内的定时器0和定时器1能准确定时一段时间。故用定时器0定时,并通过计算定时次数来实现时钟走时。本设计定时器0和定时器1都是定时50ms中断一次,中断20次就能实现一秒钟。整个系统软件设计的流程图如图5.2所示。图5.2 定时中断程序流程图void timer0() interrupt 1 TH0=(65536-40000)/256;TL0=(65536-400

49、00)%256;teep+;if(teep=2)teep=0;miao+; /秒加一if(led=1)led=0;else led=1;if(miao=60)miao=0;fen+;if(fen=60)fen=0;shi+;if(shi=24)shi=0;5.2.3 人机界面程序设计人机界面(Human Machine Interaction,简称HMI),是人与计算机之间传递、交换信息的媒介和对话接口,是计算机系统的重要组成部分。是指人和机器在信息交换和功能上接触或互相影响的领域或称界面所说人机结合面,信息交换,功能接触或互相影响,指人和机器的硬接触和软触,此结合面不仅包括点线面的直接接触,

50、还包括远距离的信息传递与控制的作用空间。人机界面程序流程图如图5.3所示。图5.3 人机界面程序流程图第六章 系统制作及调试6.1 硬件制作电路设计软件Protel是目前国内最流行的通用CAD软件,它是将电路原理图设计、PCB板图设计、电路仿真和PLD设计等多个实用工具软件组合后构成的CAD工作平台。本设计是首先在Protel软件上画好单片机最小系统、液晶与单片机连接电路、继电器的外围电路及与单片机的链接电路、键盘与单片机的连接电路、电源电路等的原理图,然后对原理图进行仿真,仿真无误后生成网络表后装载到PCB环境中生成需要的PCB。其中,单片机控制继电器部分为了确保其在实际应用的准确性,首先在

51、万用板上焊接好继电器电路,并接上插座后对其进行验证,证明使用本电路能正常工作后,再打印PCB、转印到铜板上、用用双氧水稀释浓盐酸腐蚀、钻孔,并根据原理图由低器件(如电阻)到高器件安放元器件(确保元器件的参数与电路中的一致),然后焊接元器件,完成了定时快关插座的硬件电路板的制作。6.2 硬件电路调试硬件单元电路制作好后,在上电之前,应该先用万用表对各个独立元件进行检查,在排除了虚焊、短路、断路等问题后再通电进行电路功能的调试。具体调试过程如下所述:6.2.1 独立元件的检测任何组装好的电子电路,在通电调试之前,必须认真检查电路连线是否有误。检查的方法是对照电路图,按一定的顺序逐级对应检查,例如:

52、对电路板的电阻阻值进行确定,可以通过读取电阻上的色环进行确认。特别是注意电源是否接错,电源与地是否有短接,集成电路和晶体管的引脚是否接错,轻轻拨一拨元器件,观察焊点是否牢固等。用万用表检测是不是有短路和断路现象。给系统上电后,看下电源灯亮不亮。假如不亮,就要检查电源指示灯发光二极管的好坏。还要用万用表测一下单片机等芯片的电压是不是符合要求。假如不是,就要进行各个芯片的检查,看一下各个芯片的引脚有没有焊好,芯片是否损坏。6.2.2 电源电路的调试电源电路作为整个系统的供电电路,其输出电压必须在单片机的正常工作电压范围(4V到5.5V之间)内。在电源通220V交流电之前,一定要检查电路是否接错,特

53、别是极性电容是否有接反,防止出现极性电容接反而造成爆电容的现象。在确保器件接法无误的情况下,接通电源,并用万用表测量输出电压,得到其电压为5.3V。符合系统的正常工作电压要求。接上干电池,断开交流电,由于干电池是经过4007二极管后再给系统供电,4007二极管的压降为0.7V,测量得到新电池状态下输出电压为5.4V,达到系统正常工作电压要求。然后再用两部分电源同时供电,由于干电池部分有4007二极管保护,不会出现干电池在电压低于5V时会损耗功率的情况,实现了其储备电源的作用。6.2.3 单片机最小系统的调试单片机STC89C51最小系统的检测分为硬件调试及软件调试。硬件调试时用万用表测量单片机的工作电压及各个管脚的电压是否达到正常工作电压。在此检测中还要烧入程序对各个I/O口的输出进行测试,查看I/O口所输出的电压是否与程序所控制值一致。例如:编写一个调试程序,使的所有I/O口从P1.0口开始依次赋予低电平,用万用表测量其输出电压,确定是否与程序所付值一致,一致则证明正确;然后又对其依次赋予高电平,确定是否与程序所付值一致,一致则证明正确。两次测试都正确,证明单片机最小系统是正常工作的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论