太阳能热水器控制系统的设计 下载本文

陕西科技大学毕业论文(设计说明书) 12

图3-10单片机芯片封装引脚

RST: 复位输入。晶体振荡工作时,RST引脚持续两个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。

ALE:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。

PSEN: 外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当 AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。

EA/VPP: 访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部

程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。

P0口:P0口为一个8位漏极开路双向I/O口,每个脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

太阳能热水器控制器的设计 13

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。

P3口:P3口管脚是8个内部带上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流这是由于上拉的缘故。在单片机中,这8个引脚還用于专门功能,是复用双功能口,作为第一功能使用时,就是普通的I/O端口,值得强调的是,每一条引脚都可以独立定义第一功能的输入输出或第二个功能。其第二功能如表3-2所示:

表3-2 P3口的第二功能说明

口线 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 引脚 10 11 12 13 14 15 16 17 第二功能 RXD(串行输入口) TXD(串行输出口) INT0(外部中断0) INT1(外部中断1) T0(定时器0外部输入) T1(定时器1外部输入) WR(外部数据存储器写脉冲) RD(外部数据存储器读脉冲) 3.6 LED数码管显示电路

7段LED数码管是利用7个LED(发光二极管)外加一个小数点的LED组合而成的显示设备,可以显示0~9等10个数字和小数点,这类数码管可以分为公阴极与共阳极两种,共阳极就是把所有LED的阳极连接到共同的结点,而每个 LED的阴极分别为a,b,c,d,e,f,g及dp(小数点);共阴极就是把所有LED的阳极连接到共同的结点,而每个 LED的阳极分别为a,b,c,d,e,f,g及dp(小数点),如图 3-11所示:

陕西科技大学毕业论文(设计说明书) 14

图3-11数码管原理电路

根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动:每个数码管的每个段都由一个单片机的I/O端口进行驱动,或者使用如BCD码的二~十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多。动态显示驱动:动态驱动是将所有数码管的8个显示笔划“a,b,c,d,e,f,g,dp”的同名端连在一起,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形。

图3-12单片机与数码管连接电路

太阳能热水器控制器的设计 15

3.7按键电路设计

按键是用来向系统提供操作人员命令的接口,所以准确无误地辨认每个键的动作以及其所处的状态,是系统能否正常工作的关键。多数按键多采用机械弹性开关,一次高低电平的变化就是一次命令。但是按键的抖动是难以避免的,为了稳定操作,我们要防止抖动的发生,就要消除抖动的影响,可以从硬件和软件两方面解决。

硬件防抖电路:利用RC积分电路对干扰脉冲的吸收作用,选择好电路的时间常数,就能在按键抖动信号通过此滤波电路时,消除抖动影响。滤波防抖电路图如图2-12所示。当K位按下时,电容C两端的电压均为0,非门输出为1。当K按下时,由于C两端电压不可能产生突变。尽管在触点接触过程种可能出现抖动,只要适当选取R1、R2和C的值,即可保证电容C两端的充电电压波动不超过非门的开启电压(TTL位0.8V),非门的输出维持高电平。同理,当触点断开时,由于电容C经过电阻R放电,C两端的放电电压波动不会超过门的关闭电压,因此,门的输出也不会改变[8]。总之,只要R1、R2和C的时间常数选取得当,确保电容C有稳态电压充电到开启电压,或放电到关闭电压的延迟时间等于或大于10ms,该电路就能消除抖动影响。

图3-13单片机与数码管连接电路

软件防抖方法:当第一次检测到有键按下时,先用软件延时(10~20ms),而后再确认该键电平是否仍维持闭合状态电平。若保持闭合状态电平,则确认此键一按下,从而消除了抖动的影响。

陕西科技大学毕业论文(设计说明书) 16

4 软件设计方案

硬件电路是一切的基础,在其基础上软件设计是关键的部分,它是单片机工作的重点,就是让各部分协调工作的命令,软件程序的重要性是毋庸置疑的,是整个控制系统的命脉,根据各部分编写相应的驱动程序,才能使得相应的芯片有其功能,所以程序设计是非常重要的。芯片的工作有着与自己对应的时序图,只有根据时序准确的执行命令才能达到想要的目的,实现芯片的功能。程序的设计还要有着一定的思路,根据系统运行的过程要画出相应的程序流程图,根据流程图写程序是非常方便的,也不容易产生错误,得到正确的程序。如图4-1所示

开始初始化开中断显示温度和水位是否到了水位底线?N自动上水Y关进水阀门N是否到设定的温度?开加热器Y关闭加热器图4-1 系统程序总流程图