您的当前位置:首页正文

可自动切换量程的数字电压表

2020-07-08 来源:好走旅游网


可自动切换量程的数字电压表(总9

页)

--本页仅作为文档封面,使用时请直接删除即可-- --内页可以根据需求调整合适字体及大小--

可自动切换量程的数字电压表

一、

实验任务

制作可调量程的电压表,通过继电器调节电压表的量程,使电压在0V~200mV,200mV~2V之间转换。

二、 各个芯片的资料

1、 ADC0832

ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。该芯片具有体积小,兼容性,性价比高的优点。 ADC0832 具有以下参数: 8位分辨率;

双通道A/D转换;

输入输出电平与TTL/CMOS相兼容; 5V电源供电时输入电压在0~5V之间; 工作频率为250KHZ,转换时间为32μS; 一般功耗仅为15mW;

8P、14P—DIP(双列直插)、PICC 多种封装;

商用级芯片温宽为0°C to +70°C,工业级芯片温宽为−40°C to +85°C;

芯片接口说明:

CS_ 片选使能,低电平芯片使能。

CH0 模拟输入通道0,或作为IN+/-使用。 CH1 模拟输入通道1,或作为IN+/-使用。 GND 芯片参考0 电位(地)。 DI 数据信号输入,选择通道控制。 DO 数据信号输出,转换数据输出。 CLK 芯片时钟输入。

Vcc/REF 电源输入及参考电压输入(复用)。

单片机对ADC0832 的控制原理:

正常情况下ADC0832 与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI 并联在一根数据线上使用。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK 和DO/DI 的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK 输入时钟脉冲,DO/DI端则使用DI端输入

通道功能选择的数据信号。在第1 个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第2、3个脉冲下沉之前DI端应输入2 位数据用于选择通道功能,当此2 位数据为“1”、“0”时,只对CH0 进行单通道转换。当2位数据为“1”、“1”时,只对CH1进行单通道转换。当2 位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当2 位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1 作为正输入端IN+进行输入。到第3 个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATD0。随后输出8位数据,到第19 个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。

作为单通道模拟信号输入时ADC0832的输入电压是0~5V且8位分辨率时的电压精度为。如果作为由IN+与IN-输入的输入时,可是将电压值设定在某一个较大范围之内,从而提高转换的宽度。但值得注意的是,在进行IN+与IN-的输入时,如果IN-的电压大于IN+的电压则转换后的数据结果始终为00H。

2、74HC573

74HC573和74LS373原理一样,8数据锁存器。主要用于数码管、按键等等的控制

OE:output_enable,输出使能;

LE:latch_enable,数据锁存使能,latch是锁存的意思; Dn:第n路输入数据; On:第n路输出数据;

(1)真值表

Dn LE OE On H H L H L H L L X L L Qo X X H Z

第四行:当OE=1是,无论Dn、LE为何,输出端为高阻态; 第三行:当OE=0、LE=0时,输出端保持不变;

第二行第一行:当OE=0、LE=1时,输出端数据等于输入端数据; 在实际应用的时: a. OE=0;

b. 先将数据从单片机的口线上输出到Dn;

- 1 -

c. 再将LE从0->1->0

d. 这时,你所需要输出的数据就锁存在On上了,输入的数据在变化也影响不到输

(2)高阻态

输出既不是高电平,也不是低电平,而是高阻抗的状态;在这种状态下,可以多个 芯片并联输出;但是,这些芯片中只能有一个处于非高阻态状态,否则会将芯片烧毁;

(3)数据锁存

当输入的数据消失时,在芯片的输出端,数据仍然保持; (4)数据缓冲

加强驱动能力。

3、74HC245

总线驱动器,典型的TTL型三态缓冲门电路。

由于单片机等CPU的数据/地址/控制总线端口都有一定的负载能力,如果负载超过其负载能力,一般应加驱动器。

另外,也可以使用74HC244等其他电路,74HC244比74HC245多了锁存器。

第1脚DIR,为输入输出端口转换用,DIR=“1”高电平时信号由“A”端输入“B”端输出,DIR=“0”低电平时信号由“B”端输入“A”端输出。 第2~9脚“A”信号输入输出端,A1=B1 …… A8=B8,A1与B1是一组,如果DIR=“1”OE=“0”则A1输入B1输出,其它类同。如果DIR=“0”OE=“0”则B1输入A1输出,其它类同。

第11~18脚“B”信号输入输出端,功能与“A”端一样,不再描述。 第19脚OE,使能端,若该脚为“1”A/B端的信号将不导通,只有为“0”时A/B端才被启用,该脚也就是起到开关的作用。第10脚GND,电源地。 第20脚VCC,电源正极

三、 硬件电路图

- 2 -

四、 硬件电路分析

硬件电路大体可以分为四个模块:量程选择模块、AD转换模块、数码显

示模块、单片机及其外围电路。

量程选择模块:由可调输入电源、继电器、运算放大器和限压电路组成。可调电源由负载5V电压的滑动变阻器构成,调节触头即可改变输入运放“+”端的电压。继电器的作用就是通过开关的变换以改变接入运放“-”端和输出端的电阻,及通常所称的“Rf”

档位的选择也是以此为硬件基础的。继电器的电磁铁一端接+5V电源,另一

端则接在NPN型三极管的集电极。三极管的基极则与单片机的.相连,其间有一个5KΩ的电阻,是三极管工作在截止区或饱和区,避免工作在放大曲。借助软件设计,改变的电平即可控制继电器的工作状态,进而改变接入电压的放大倍数,从而达到改变档位的要求。

AD转换模块:钳位保护电路是为了防止电压超过ADC0832的正常转换电

压而设计的。ADC0832进行AD转换,其具体的工作原理和控制方法在元器件的介绍中将详细叙述。

数码显示模块:由三个八段数码管、两片数码管驱动芯片74HC245和一

片锁存和缓冲芯片74HC573以及单片机P0口(字形)、、、(字位)构成。

单片机及外围电路:包括:单片机,6MHZ晶振,复位电路,电源和一些为使单片机正常工作的相应连接。

五、 工作原理

调节滑动变阻器给运放正端输入一电压(<2V),该电压通过运放放大后接入ADC0832,ADC0832在软件设定下对放大后的电压进行AD转换,得到对应的二进制码,再借助于软件判断,对该电压进行合适的档位选择(0~选用25倍档位;0~2V选用倍档位)。选用合适的档位得到正确的二进制码后,进行BCD转换,然后通过数码显示电路读出被测电压的值。

- 3 -

六、 程序流程图

程序包括变量声明部分、主程序、各功能处理子程序(AD转换子程序、档位选择子程序、BCD码转换子程序、数码管显示子程序)

1. 主程序

开始

调AD转换子程序

调档位选择子程序 调BCD码转换子程序 调数码管显示子程序 返回

2. 各功能处理子程序

AD转换子程序(见下页):

- 4 -

开始 给片选端置低电平 选择模拟量输入通道(配合置转换位数R7为8 进行AD转换(配合时

将Cy中数据送 利用Cy存串行数据 A左移一位 R7-1=0 将A中数据送30H 返回主程序

档位选择子程序(见下页):

- 5 -

开始

Y 高位=1 (30H)=#0FFH N Y

Cy清

置低电平,换0~2V档

Y (30H)

N

N Cy=1 返回主程序

Y 置高电平,换0~档

返回AD转换子程

BCD码转换子程序: 开 将30H中数据送A 高八位 /100 存A 存40H A中数据乘以200

商 存41H A/100后的余数在 余数 存42H

返回主程序

- 6 -

N 显示子程序

开始

关显示 P0口送#00H,关显

字形表首地址送字形表首地址送

40H中数据送A作字形偏移量 41H中数据送A作字形偏移量

根据A+DPTR取字形送P0口 根据A+DPTR取字形送P0口

置低电平 置低平,、显置高电平示

第一个数码管显示 第二个数码管显示 P0口送#00H,关显

字形表首地址送

42H中数据送A作字形偏移量

根据A+DPTR取字形送P0口

置低平,、显置高电平示

第三个数码管显示

返回主程序

- 7 -

七、 仿真结果截图

- 8 -

因篇幅问题不能全部显示,请点此查看更多更全内容