1.1核心芯片8051单片机 (2)1.2 ADC0809转换芯片 (5)1.2.1 ADC0809的逻辑结构 (5)1.2.2 ADC0809 的通道选择 (6)1.2.3 ADC0809的引脚图及各引脚作用 (6)1.3 MC14499芯片 (8)1.3.1.MC14499的结构及功能介绍 (8)1.3.2 MC14499在单片机中的应用 (10)1.4 74LS373芯片 (13)1.5 LED数码管 (15)1.5.1 LED数码管显示器的结构 (15)1.5.2 LED数码管显示器的显示段码 (17)1.5.3 LED显示器的参数 (18)1.6 X25045 (18)2 系统硬件设计 (20)2.1系统设计原理和系统框图 (21)2.1.1设计原理 (21)2.1.2系统框图 (21)2.2液位传感器设计 (22)2.2.1 传感器原理 (22)2.2.2 传感器的组成 (22)2.2.3 测量原理 (23)2.2.4 将电容转化成电信号部分 (24)2.2.5 电信号放大电路设计 (25)2.3 A/D0809模数转换 (25)2.4 显示电路的设计 (27)2.5 键盘电路 (29)2.5.1矩阵式键盘的工作原理 (30)2.5.2 硬件电路设计及电路图 (30)2.6 继电器控制水泵加水电路 (31)2.7 报警电路 (32)2.8 电源电路 (33)2.8.1 直流电源电路 (33)2.8.2 备用电源切换电路 (34)2.9看门狗电路 (35)3 系统软件的设计 (38)3.1 软件设计流程图 (38)3.2矩阵键盘程序设计 (40)3.2.1 程序设计内容 (40)3.2.2系统程序 (40)3.3 ADC0809模数转换流程图 (42)4 结论 (45)附录A (46)1 主要芯片介绍1.1核心芯片8051单片机计算机芯片MCS-51是一个电脑晶片,它是在MCS-48系列的基础上发展的高性能的8位单片机。
所出的系列产品有8051、8031、8751。
其代表就是8051。
其他系列的单片机都以它为核心,所以本设计采用的核心芯片是8051单片机。
CPU是它的核心设备,从功能上看,CPU包括两个部分:运算器和控制器,它执行对输入信号的分析和处理。
整个系统电控部分以ATMEL公司的8051为核心芯片,控制信号采集、处理、输出三个过程。
这种芯片内置4KEPROM,因为系统要求控制线较多,如果采用8031外置EPROM程序控制结构,则造成控制线不够;而8051却可以利用P0、P2口作控制总线,大大简化了硬件结构,并可以直接控制键盘参数输入、LED数据显示,方便现场调试和维护,使整个系统的通用性和智能化得到了很大的提高。
系统的原理是采用电容式传感器测量液体的液位值,通过单片机的转换与分析在LED上显示及输出控制;根据当前的液位值和用户设定的水位决定是否进行开关水泵,以及是否到达危险高、低水位,需要关闭阀门。
图1-1 8051管脚图上图是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口为程序存储器扩展口的高V复位信号复用脚,当8051 8位地址总线口,P1口为输入/输出口。
Pin9:RESET/pd通电,时钟电路开始工作,在RESET引脚上出现2个时钟周期以上的高平,系统即初始复位。
初始化后,程序计数器PC指向0000H, P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。
RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。
8051的初始态如下:表1-1 寄存器初始状态8051的复位方式可以是自动复位,也可以是手动复位,见图1-2。
此外,RESET/Vpd是一复用脚,Vcc掉电期间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失, 此设计采用自动复位电路SWV CCC1上电自动复位电路手动复位图1-2 复位电路Pin30:ALE/P 当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。
而访问内部程序存储器时,ALE 端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。
更有一个特点,当访问外部程序存储器,ALE 会跳过一个脉冲。
如果单片机是EPROM ,在编程其间,prog 将用于输入编程脉冲。
Pin29:PSEN 当访问外部程序存储器时,此脚输出负脉冲选通信号,PC 的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU 读入并执行。
在编程时,EA/V pp 脚还需加上21V 的编程电压。
1.2 ADC0809转换芯片1.2.1 ADC0809的逻辑结构ADC0809是典型的8位8通道逐次逼近型A/D 转换器,采用CMOS 工艺制造。
它由一个8路模拟开关、一个地址锁存译码器、一个A/D 转换器和一个三态输出锁存器组成(见图1-3)。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D 转换器进行转换。
三态输出锁器用于锁存A/D 转换完的数字量,当OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。
图 1-3 ADC0809的内部结构EOCD0 D1 D2 D3 D4 D5 D6 D71.2.2 ADC0809 的通道选择地址锁存与译码电路完成对A、B、C3个地址位进行锁存和译码,其译码输出用于通道的选择。
通道选择如表1-2所示表1-2 ADC00809的通道选择1.2.3 ADC0809的引脚图及各引脚作用ADC0809芯片为28引脚双列直插式封装,其引脚排列见图1-4。
图1-4 AD0809的管脚图⑴ 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时,表示转换结束。
实际使用中该状态信号既可以作为查询的状态标志,还可以作为中断请求信号使用。
⑼ Vref:参考电压。
参考电压作为逐次逼近的基准,并用来与输入的模拟信号进行比较。
其典型值为+5V(Vref(+)=+5V,Vref(-)=0) ADC0809是带有8位A/D转换器、8路多路开关以及与微型计算机兼容的控制逻辑的CMOS组件,其转换方法为逐次逼近型。
在A/D转换器内部含有一个高阻抗斩波稳定比较器,以及一个逐次逼近型寄存器。
8路的模拟开关由地址锁存器和译码器控制,可以在8个通道中任意访问一个通道的模拟信号。
由于多路开关的地址输入部分能够进行锁存和译码,而且三态TTL输出也可以锁存,所以它易于与微型计算机接口。
1.3 MC14499芯片1.3.1.MC14499的结构及功能介绍串行输入BCD码-十进制码输出的硬件译码驱动器MC14499是MOTOROLA公司生产的一种叫新型的CMOS集成块。
一片MC14499可以直接驱动和控制四块LED 八段显示器,由于其显示方式为动态扫描,因此消耗功率较低,在单片机系统中,采用MC14499构成的显示器接口具有所需I/O口线占用数量少,单片控制显示器多的特点,因而得到较广泛的使用。
LED译码驱动器的管脚配置如图1-5所示:图1-5 MC14499的管脚图片内主要包含有一个20位移位寄存器、一个锁存器、一个多路输出器及译码驱动器和振荡器。
移位寄存器主要保存外部串行输入的数据,锁存器保存显示器所需显示的数据,两者中的数据均为BCD码的形式,多路输出器输出从锁存器中取出的BCD码数据,经段译码器译码后,换成点七段码送至段驱动器的a~g 和小数点DP八只输出脚上,而片内振荡器的振荡信号,经四分频及位译码后提供四个位控信号,由位驱动器分别送至四条位控制线(I,II,III,IV),以供对显示器的轮流扫描。
芯片的主要控制信号有:⑴ a~g,DP:七段码及小数点输出;⑵ I~IV:字位选择输出,用来产生LED选通信号;⑶ D:串行数据接收端;⑷ OSC:振荡器外接电容端,外接电容使片内振荡产生200~800HZ扫描信号,以防LED显示器闪烁;⑸ CLK:时钟输入端,用以提供串行接收的控制时钟信号,标准时钟频率为250KHZ;⑹ENB:使能端,为0时,MC14499允许接收串行数据输入;为1时,禁止接收串行数据,并将片内移位寄存器的数据送入锁存器中保存。
MC14499每一次可接收20位串行输入数据,在每次时钟信号的下降沿,串行数据被送入片内的移位寄存器。
MC14499内部接收数据的移位寄存器为20位,这20位数据可按图4分为四组BCD码和一组小数点选择位,提供给四个LED显示器。