华北科技学院毕业设计第1页共47页1绪论随着微电子工业的迅速发展,单片机控制的智能型控制器广泛应用于电子产品中。并且目前,我国住宅小区楼房自来水供水系统主要采用高塔供水,即在楼顶或者另外建设的高塔上面建个蓄水池以保证用户水压的恒定。目前大多数的住宅小区都是采用人工加水的办法,即当水用完的时候,就人工开启水泵进行加水,十分不便。所以这一切问题的存在,都在呼唤一种简单经济的高塔水位检测报警控制系统的诞生。传统的控制方式存在控制精度低、能耗大的缺点,而自动控制系统,依据用水量的变化自动调节系统的运行参数,保持水压恒定以满足用水要求,从而提高了供水系统的质量。此装置成本低,安装方便,灵敏性好,是节约水源,方便家庭和单位控制水塔水位的理想装置。本次设计---基于单片机的液位控制器设计,利用单片机为控制核心,设计一个对供水箱水位进行监控的系统。根据监控对象的特征,要求实时检测水箱的液位高度,并与开始预设定值做比较,由单片机控制固态继电器的开断进行液位的调整,最终达到液位的预设定值。检测值若高于上限设定值时,要求报警,断开继电器,控制水泵停止上水;检测值若低于下限设定值,要求报警,开启继电器,控制水泵开始上水。现场实时显示测量值,从而实现对水箱液位的监控。液位控制器的硬件主要包括由单片机、液位传感器、键盘电路、数码显示电路、A/D转换器、报警电路、控制水泵电路等。设计的主要内容是:基于单片机实现的液位控制器是以8051芯片为核心,由键盘、数码管显示、A/D模数转换、筒式电容传感器,电源和控制部分等组成。工作过程如下:水箱(水塔)液位发生变化时,即把电容变化量转化成电压信号;该信号经过反相比例运算放大电路放大后变成幅度为0~5V标准信号,送入A/D转换器,A/D转换器把模拟信号变成数字信号量,由单片机进行实时数据采集,并进行处理,根据设定要求控制输出,同时数码管显示液位高度。通过键盘设置上限值,下限值。该系统控制器特点是直观地显示水位高度,可任意控制水位高度。基于单片机的液位控制器设计第2页共93页2本课题主要研究内容本设计是采用8051单片机为核心芯片,及其相关硬件来实现的水体液位控制系统,在用液位传感器测液位的同时,CPU循环检测传感器输出状态,并用3位八段LED显示液位高度,检测液位数据,实施报警安全提示,当水体液位低于用户设定的值时,系统自动打开泵上水,当水位到达设定值时,系统自动关闭水泵。2.1系统硬件总体方案系统的原理是采用电容式液位传感器对液面进行控制,并把液位状态通过模数转换器ADC0809传到单片机中,再通过3位八段LED显示器显示出液位的测量值及报警安全提示。用LED显示是因为它具有显示清晰、亮度高、使用电压低、光电转换效能高、寿命长等特点,根据当前的液位值和用户设定的水位决定是否进行开、关水泵,需要是否开启和关闭驱动阀门的电动机。2.2设计的研究进程本设计第3章主要介绍了核心芯片8051及ADC0809转换芯片、MC14499芯片、74ls373芯片、LED数码管、X25045芯片,对他们的端口、功能与用途进行介绍。第4章主要介绍了系统的硬件设计,包括液位传感器设计,显示电路设计,键盘电路设计,继电器控制水泵加水电路,报警电路,电源电路,看门狗电路,对它们的原理、结构和电路连接进行了,在此我着重介绍了本设计所使用的传感器,因为传感器的性能在整个系统中起着非常重要的作用,尤其对检测精确度起着重要的作用。第5章介绍了整个系统的软件设计。华北科技学院毕业设计第3页共47页3主要芯片介绍3.1核心芯片8051单片机计算机芯片MCS-51是一个电脑晶片,英特尔公司生产系列。它是在MCS-48系列的基础上发展的高性能的8位单片机。所出的系列产品有8051、8031、8751。其代表就是8051。其他系列的单片机都以它为核心,所以本设计采用的核心芯片是8051单片机。CPU是它的核心设备,从功能上看,CPU包括两个部分:运算器和控制器,它执行对输入信号的分析和处理。整个系统电控部分以ATMEL公司的8051为核心芯片,控制信号采集、处理、输出三个过程。这种芯片内置4KEPROM,因为系统要求控制线较多,如果采用8031外置EPROM程序控制结构,则造成控制线不够;而8051却可以利用P0、P2口作控制总线,大大简化了硬件结构,并可以直接控制键盘参数输入、LED数据显示,方便现场调试和维护,使整个系统的通用性和智能化得到了很大的提高。系统的原理是采用电容式传感器测量液体的液位值,通过单片机的转换与分析在LED上显示及输出控制;根据当前的液位值和用户设定的水位决定是否进行开关水泵,以及是否到达危险高、低水位,需要关闭阀门。图3-18051管脚图基于单片机的液位控制器设计第4页共93页上图是8051的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:Pin40:正电源脚,正常工作或对片内EPROM抄写程序时,接+5V电源。Pin19:时钟XTAL1脚,片内振荡电路的输入端。Pin18:时钟XTAL2脚,片内振荡电路的输出端。8051的时钟有两种方式,一种是片内时钟振荡方式,但需在18和19脚外接石英晶体(2-12MHz)和振荡电容,振荡电容的值一般取10PF-30PF。另外一种是外部时钟方式,即将XTAL1接地,外部时钟信号从XTAL2脚输入。本设计采用外部时钟电路,外接晶振和电容组成振荡器。输入输出(I/O)引脚:Pin39-Pin32为P0.0-P0.7输入输出脚,Pin1-Pin8为P1.0-P1.7输入输出脚,Pin21-Pin28为P2.0-P2.7输入输出脚,Pin10-Pin17为P3.0-P3.7输入输出脚。在对单片机设计中,P0口作为程序存储器扩展口,且是扩展并行输入/输出接口的接口,另外也作为模数转换的数据传输口,P2口为程序存储器扩展口的高8位地址总线口,P1口为输入/输出口。Pin9:RESET/pdV复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现2个时钟周期以上的高平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。8051的初始态如下:表3-1寄存器初始状态特殊功能寄存器初始态特殊功能寄存器初始态ACC00HB00HPSW00HSP07H07H00HTH000HDPL00HTL000HIPxxx00000BTH100HIE0x00000BTL100HTMOD00HTCON00HSCONxxxxxxxxBSBUF00HP0-P31111111BPCON0xxxxxxxB华北科技学院毕业设计第5页共47页8051的复位方式可以是自动复位,也可以是手动复位,见图3-2。此外,RESET/Vpd是一复用脚,Vcc掉电期间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失,此设计采用自动复位电路R11KR210KVCCSWSPSTC110μFRESETR210KVCCC110μFRESET上电自动复位电路手动复位图3-2复位电路Pin30:ALE/P当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。如果单片机是EPROM,在编程其间,prog将用于输入编程脉冲。Pin29:PSEN当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。在编程时,EA/Vpp脚还需加上21V的编程电压。3.2ADC0809转换芯片3.2.1ADC0809的逻辑结构ADC0809是典型的8位8通道逐次逼近型A/D转换器,采用CMOS工艺制造。它由一个8路模拟开关、一个地址锁存译码器、一个A/D转换器和一个三态输出锁存器组成(见图3-4)。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输基于单片机的液位控制器设计第6页共93页出锁存器取走转换完的数据。图3-4ADC0809的内部结构3.2.2ADC0809的通道选择地址锁存与译码电路完成对A、B、C3个地址位进行锁存和译码,其译码输出用于通道的选择。通道选择如表3-2所示表3-2ADC00809的通道选择C(ADDC)B(ADDB)A(ADDA)选择的通道000IN0001IN1010IN2111IN3100IN4101IN5110IN6111IN73.2.3ADC0809的引脚图及各引脚作用ADC0809芯片为28引脚双列直插式封装,其引脚排列见图3-5。八路模拟量开关地址锁存与译码器8路A/D转换器三态输出锁存器IN0IN1IN2IN3IN4IN5IN6IN7STCLKEOCD0D1D2D3D4D5D6D70EABCALEVREF(+)VREF(-)华北科技学院毕业设计第7页共47页图3-5AD0809的管脚图⑴IN0-IN7:8条模拟量输入通道。ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。⑵ADDA、ADDB、ADDC:模拟通道地址线。这3根地址线用于对模拟通道进行选择,其译码关系如表所示,ADDA为低位地址,ADDC为高位地址。⑶ALE:地址锁存信号。对应于ALE上跳沿时,ADDA、ADDB、ADDC地址状态送入地址锁存器中。⑷START:转换启动信号。在START信号上跳沿时,所有内部寄存器清0;在START下跳沿时,开始进行A/D转换。在A/D转换期间,START信号应保持低电平。该信号可简写为ST。⑸D0~D7:数据输出线。该数据输出线为三态缓冲输出形式,可以和单片机的数据总线直接相连。⑹OE:输出允许信号。它用于控制三态输出锁存器向单片机输出转换后的数据。OE=0时输出数据线呈高阻态;OE=1时输出允许。⑺CLK:时钟信号。ADC0809的内部没有时钟电路,所需时钟信号由外界提供,通常使用频率为500kHZ的时钟信号。⑻EOC:转换结束状态信号。当EOC=0时,表示正在进行转换;EOC=1时,表示转换结束。实际使用中该状态信号既可以作为查询的状态标志,还可以作为中断请求信号使基于单片机的液位控制器设计第8页共93页用。⑼Vref:参考电压。参考电压作为逐次逼近的基准,并用来与输入的模拟信号进行比较。其典型值为+5V(Vref(+)=+5V,Vref(-)=0)ADC0809是带有8位A/D转换器、8路多路开关以及与微型计算机兼容的控制逻辑的CMOS组件,其转换方法为逐次逼近型。在A/D转换器内部含有一个高阻抗斩波稳定比较器,以及一个逐次逼近型寄存器。8路的模拟开关由地址锁存器和译码器控制,可以在8个通道中任意访问一个通道的模拟信号。由于多路开关的地址输入部分能够进行锁存和译码,而且三态TTL输出也可以锁存,所以它易于与微型计算机接口。3.3MC14499芯片3.3.1.MC14499的结构及功能介绍串行输入BCD码-十进制码输出的硬件译码驱动器MC14499是MOTOROLA公司生产的一种叫新型的CMOS集成块。一片MC14499可以直接驱动和控制四块LED八段显示器,由于其显示方式为动态扫描,因此消耗功率较低,在单片机系统中,采用MC14499构成的显示器接口具有所需I/O口线占用数量少,单片控制显示器多的特点,因而得到较广泛的使用。LED译码驱动器的管脚配置如图3-6所示:图3-6MC14499的管脚图片内主要包含有一个20位移位寄存器、