基于单片机的水塔水位控制系统设计及仿真 联系客服

发布时间 : 星期四 文章基于单片机的水塔水位控制系统设计及仿真更新完毕开始阅读7bcfa6f1f80f76c66137ee06eff9aef8941e484d

佳木斯大学学士学位论文

P2.4,P2.5,P2.6,P2.7作为通用I/O口使用,与ADC0809连接。P2.4作为A/D转换的CLK信号,P2.5作为开始A/D转换的启动信号,P2.6作为查询A/D转换是否完成的判断信号,P2.7作为输出A/D转换的数字量允许信号。下例为P2.4,P2.5,P2.6,P2.7作为通用I/O口使用的指令:

CLOCK BIT P2.4 ST BIT P2.5 EOC BIT P2.6 OE BIT P2.7

3.1.4 P3口的信号输入

P3.0、P3.1、P3.7作为通用I/O口使用,与LED灯和蜂鸣器相连,输出报警信号,如果当前液位高于设置的高位报警线时,P3.0置低电平,高位报警灯亮。如果当前液位低于于设置的低位报警线时,P3.1置低电平,低位报警灯亮。如果当前液位低于设置的高位液位且高于低位液位时,高位报警灯和低位报警灯灭。

H_ALM BIT P3.0 L_ALM BIT P3.1

LALM: CLR L_ALM ;低位报警 SETB TR1 CLR FLAG LJMP PROC

HALM: CLR H_ALM ;高位报警 SETB TR1 SETB FLAG LJMP PROC

3.2 软件模块设计

3.2.1 主程序的设计

系统分为初始化,A/D转换,十进制转换,LED显示,电机控制和报警电路。因此整个程序需要包含上述六个子程序。 流程图如图3-1:

15

佳木斯大学信息电子技术学学院 佳木斯大学学士学位论文

开始初始化

调A/D转换程序调A/D转换结果处理程序调用显示子程序报警程序结束图3—1 主程序流程图

3.2.2 A/D转换的设计

ADC0809芯片实现A/D转换的时间为0.1ms左右,A/D转换后得到的数字量应及时传送到单片机进行处理,流程图如图3-2。

OE——输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。

ALE——地址锁存允许信号。对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。

START——转换启动信号。START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持 低电平。本信号有时简写为ST。

CLK——时钟信号。ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500KHz的时钟信号。

EOC——转换结束信号。EOC=0,正在进行转换;EOC=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。

CLOCK BIT P2.4 ST BIT P2.5

16

佳木斯大学信息电子技术学学院 佳木斯大学学士学位论文

EOC BIT P2.6 OE BIT P2.7 CLR ST SETB ST

CLR ST ;启动转换 JNB EOC,$ ;等待输出结果 SETB OE ;允许输出

MOV ADC,P1 ;读取A/D转换结果 CLR OE ;关闭输出

MOV A,ADC ;将A/D转换结果转换成BCD码

开始启动A/D转换NA/D转换结束?Y保存数据返回

图3—2 A/D转换程序流程图

3.2.3 显示子程序的设计

设计中采用动态扫描法,实现四位数码管的数值显示,并显示小数点。数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划\的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,

17

佳木斯大学信息电子技术学学院 佳木斯大学学士学位论文

就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低[8]。

通过逐次选通P2.0,P2.1 ,P2.2,P2.3依次送十进制的相应字段码给P1口,并延时5ms完成显示。 流程图如图3-3

显示程序:MOV LED_0,#00H

MOV LED_1,#00H MOV LED_2,#00H MOV LED_3,#00H

MOV DPTR,#TABLE ;送段码表首地址

DISP: MOV A,LED_2 MOVC A,@A+DPTR

ORL A,#80H

;显示小数点

MOV BUFFER+2,A ;送显示缓存

CLR P2.1 MOV P0,A LCALL DELAY SETB P2.1

SETB P2.0

MOV A,LED_1 MOVC A,@A+DPTR CLR P2.0 MOV P0,A LCALL DELAY RET

DELAY: MOV R6,#10 ;延时5ms

18

佳木斯大学信息电子技术学学院