《汇编与接口技术》基于proteus的水库水位监视器

一、开发背景

1.1 设计理论

        借此结合课内所学并行输入输出接口,利用8255与8253封装实现一个具有报警功能的水库水位检测器。

1.2 应用场合

         水库水位、水雨情监测预警系统方案实现了水库水位、降雨量和现场图像的远程监控,为保障水库适度蓄水和安全度汛提供了准确、及时的现场信息。

二、系统设计目标

 2.1 设计目标

设计水库水位监视系统,系统要求始终持续监视水位的高低变化,当水位超过一定阈值时开始报警,使用扬声器播放报警音并点亮报警灯,当水位恢复正常后,系统将不再报警。具体目标如下:

1 水位超过最高点90% 时开始报警。可使用滑动变阻器模拟水位信号,使用ADC0809IN0端监测水位高低。可采用查询法,持续读取水位值,并判断是否超过阈值。

2 报警时扬声器发出0.5s 500Hz0.5s 1kHz交替持续变化的声音,并点亮报警灯;当水位降低而低于阈值时报警声停止并警灯熄灭。利用可编程定时器8253产生音频报警信号,可分别产生500Hz1kHz频率的信号,并使用0.5s时长信号去选通并控制持续时间。

3 利用8255控制ADC0809A/D转换和报警控制。

 2.2 功能模块

主要分为8086最小系统模块,水位模拟模块,水位数据采集模块,方波产生模块,扬声器和报警模块

(1)8086系统模块

使用8086最小系统,并用74HC373作为地址所锁存。

(2)水位模拟模块

水位模拟使用了一个滑动变阻器,可以调控滑动变阻器的接入值模拟水位的变化。

(3)水位数据采集模块

水位数据采集通过ADC0808形成一个启动脉冲,从而达到启动开始转换的目的,观察转换是否完成,如果转换完成,进入下一步;转换完成后将转换的数据送到数据总线上以备CPU获取。

(4)方波产生模块

根据实验二分频实验,使用8253产生方波输出到扬声器,从而发出警报。为实现8255控制的目的,将三个GATE位接到PC4,当PC4输出为1时,启动计数,产生方波;否则,停止计数,不产生方波。

(5)扬声器和报警模块

将8253产生的方波信号接入到扬声器模块。为了扬声器发出0.5s 500Hz和0.5s 1kHz交替持续变化的声音,选择接入一个2输入选通芯片74HC257;计数器0产生的1Hz的方波作为选通信号,计数器1和计数器2产生的1KHz方波和500Hz方波作为输入信号;在1Hz方波为高电平时,接通500Hz信号,在1Hz方波为低电平时,接通1KHz信号;将输出信号经过一个非门后接到三极管,根据三极管的导通与关断使得扬声器工作。

三、设计方案

3.1 系统框图

 

如图,本系统主要包含四个部分,分别是CPU8086系统、水位模拟、水位数据采集、报警装置。其中,CPU8086采用74HC373作为地址锁存;使用滑动变阻器模拟水位信号;水位数据采集使用ADC0808采样,并将数据送到CPU中进行处理;报警装置包括了扬声器和报警灯,通过8255控制报警灯的亮/灭,通过8255控制8253产生方波信号进而驱动扬声器。各模块经74HC138地址译码,并行I/O接口8255控制,8253产生方波,CPU处理数据及控制外设,从而实现了一个实时水库水位监视系统。

四、系统实现

 4.1 硬件与软件设计

(1)8086及地址锁存

如图,该部分由8086与两个74HC373地址锁存器组成,实现对整个工程指令的控制。这在许多工程上是通用的。

下面是该部分功能部件介绍

 

 如图,74HC373 的输出端 Q0~Q7 可直接与总线相连。当三态允许控制端 OE 为低电平时,Q0~Q7 为正常逻辑状态,可用来驱动负载或总线。当 OE 为高电平时,Q0~Q7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端 LE 为高电平时,Q 随数据 D 而变。当 LE 为低电平时,Q 被锁存在已建立的数据电平。

硬件连接:

选择OE端接地,始终为低电平,LE端与ALE地址锁存允许信号相连。

(2)地址译码

如图4,该部分由74HC138译码器组成。

下面是该部分功能部件介绍

如图5,74HC138特有3个使能输入端:两个低有效(E1和E2)和一个高有效(E3)。除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高。

硬件连接:

 

如图,输入端ABC分别接A0,A3,A4;A15接E1(高电平有效),E2、E3接地。

则有如下效果:A15高电平时可以正常译码,即80XXH。当A0、A3、A4为低电平时,Y0作为片选信号使8255正常工作,即8000H、8002H、8004H、8006H.当A3为高电平时,Y2作为片选信号使8253正常工作,即8008H、800AH、  800CH、800EH。

Y0地址范围:8000H、8002H、8004H、8006H

Y2地址范围:8008H、800AH、800CH、800EH

(3)并行IO接口 8255

如图,该部分由8255组成。

下面是该部分功能部件介绍

其中,A、B、C端口都可以作为数据口与外设之间交换数据,但C端口的使用比较特殊,除了作为数据端口外,还可以做状态端口、专用联络线和做按位控制用,且C端口被分为高4位和低4位两部分,高4位PC4 ~ PC7与A端口一起组成A组,低4位PC0 ~ PC3与B端口组成B组。

使用0方式:一种无条件的数据传输方式,应用最多,是8255的基本输入/输出方式。

特点:8255做单向数据传送,即一次初始化只能把某个并行端口置成输入或输出

硬件连接:片选信号接Y0,8000H(A口)、8002H(B口)、8004H(C口)、8006H(控制口)。

软件思路:,对8255进行初始化:PA口输出,PB口输入,PC口高八位输出,低八位输入。并在PA输出00H,PB输入水位模拟AD转化后的数据,PC储存状态量。MODE:83H控制字 PD:方式字地址

(4)  报警灯

 

如图,该部分由三极管与二极管组成。

硬件连接:三极管连入增大电流,增大二极管灯的亮度

软件思路:与扬声器一起,通过PC5高电平实现报警

(5) 水位模拟

如图,该部分由滑动变阻器与电压表组成。

硬件连接:滑动变阻器 :模拟水位的高低,连接VIN作为采样的输入

 (6) 水位数据采集

 如图10,该部分由ADC0808组成。

下面是该部分功能部件介绍:各引脚功能如下:

(1)IN0-IN7:8 路模拟量输入通道。

(2)D7-D0/OUT7~OUT0:数据输出线,为三态缓冲输出形式。注意:ADC0808的输出引脚序号与实际数据的高低位是相反的,因此如图10反向连接。

(3)ADDA、ADDB、ADDC:三位地址输入线,用于选通 8 路模拟输入中的一路,ADDA为低位地址,ADDC 为高位地址。当 ADDC、ADDB、ADDA为000时,选通IN0通道,输入VIN信号。

(4)ALE:地址锁存允许信号,输入高电平有效,由PA7控制

(5)START:A/D转换启动脉冲输入端,输入一个正脉冲,软件编程使其启动(脉冲上升沿使A/D转换器复位,下降沿启动 A/D 转换),由PA7控制。

(6)EOC:A/D 转换结束信号。启动转换后,系统自动设置 EOC=0当A/D转换结束时,EOC=1。该状态信号由PC0返回作为查询的状态标志。

(7)OE:数据输出允许信号,输入高电平有效。当 A/D 转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。由PC7控制

(8)CLK:时钟脉冲输入端。ADC0808/ADC0809 的内部没有时钟电路,所需时钟信号由外界提供,这里使用频率为 600kHz 的时钟信号。

(9)Vref(+)、Vref(-):基准电压,用来与输入的模拟信号进行比较,作为逐次逼近的基准,其值设为+5V(Vref(+)=+5V,Vref(-)=0V)。

硬件连接:

采样VIN端接IN0,PA0,PA1,PA2置0,选择IN0端输入。

PA7产生脉冲信号,驱动ADC0808,转换完成后EOC变为高电平。

通过读取EOC引脚PC0的状态判断是否转换完成。

转换完成后,通过改变PC7使OE有效,OUT输出至PB有效信息。
28*0.9≈230=0E6H

比较PB与0E6H大小,得出是否报警提醒。

软件思路:如上过程

 

(7)方波产生

如图12,该部分由8253组成。

下面是该部分功能部件介绍

 

 

工作在3方式,引脚OUT输出的不是一个时钟周期的负脉冲,而是占空比为1:1或近似1:1的方波。当计数值为偶数时,输出在前一半的计数过程中为高电平,在后一半的计数过程中为低电平;为奇数时高电平比低电平宽一个时钟脉冲。从十六根总线拿出两个接A0、A1 ,进行端口寻址:00:通道0、01:通道1、10:通道2、11:控制寄存器

硬件连接:

GATE0,GATE1,GATE2均连接到PC4,达到系统对8253的控制作用,进而间接控制扬声器。为实现8255控制的目的,将三个GATE位接到PC4,当PC4输出为1时,启动计数,产生方波;否则,停止计数,不产生方波。8253的地址范围是8008H、800AH、800CH、800EH。8008H是计数器0地址,800AH是计数器1地址,800CH是计数器2地址,800EH是选择控制字寄存器。时钟接入的是50KHz。

软件思路:将三个计数器设置为方式3,计数初值设置为:

计数器0:C350H(50K/1=50000)

计数器1:0032H(50K/1K=50)

计数器2:0064H,(50K/500=100)

分别产生1Hz、1KHz、500Hz的方波。

 (8)扬声器

如图12,该部分由74HC257、示波器、扬声器、非门组成。

下面是该部分功能部件介绍

 

74HC257:四2选1数据选择器(三态)

为了扬声器发出0.5s 500Hz和0.5s 1kHz交替持续变化的声音,接入了一个2输入选通芯片74HC257;计数器0产生的1Hz的方波作为选通信号,计数器1和计数器2产生的1KHz方波和500Hz方波作为输入信号;

非门:当三个定时器都不工作,输出默认高电平,1Y输出高电平,导致三极管导通,扬声器工作,影响工作人员的判断。

硬件连接:OUT1和OUT2输入1A/1B进行比较选择,OUT0连接A/B端口作为选通信号。在1Hz方波为高电平时,接通500Hz信号,在1Hz方波为低电平时,接通1KHz信号;使两种频率信号能以1:1的时间比输入扬声器。将输出信号经过一个非门后接到三极管,根据三极管的导通与关断使得扬声器工作。

软件思路:

 (9) 附:数据段定义

4.2 流程图

 

 五、系统测试和验证

(1)超水位90%:

二极管亮起,且发出声音,扬声器部分示波器的显示:

 (2)水位未超39%:

二极管未亮起,且不发出声音,扬声器部分示波器的显示:

 通过两种情况的证明,水库水位监视器的设计任务已完成。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值