简易数字电压表设计与制作毕业设计

来源:考研 发布时间:2021-02-21 点击:

  目 目

  录

 第一部分

 设计任务与调研 …………………………………………………………3 1.设计任务 ………………………………………………………………………………………3 2.调研 ……………………………………………………………………………………………3 3.作品相关 ………………………………………………………………………………………3 4.总结 ……………………………………………………………………………………………9 第二部分

 设计 说明 ……………………………………………………………………11

  1.设计目标 ……………………………………………………………………………………11 2.设计思路 ……………………………………………………………………………………11 第三部分

 设计成果 ……………………………………………………………………15 1.作品实物 ……………………………………………………………………………………15 2.电路图 ………………………………………………………………………………………16 3.程序…………………………………………………… ……………………………… 16 第四部分

 结束语 ………………………………………………………………………20 第五部分

 致谢 ……………………………………………………………………………21 第六部分

 参考文献 ……………………………………………………………………22

  第一部分

 设计任务与调研

  1. 设计任务

  设计一个能正确测量模拟电压0-5v,误差<1%,利用 ADC 0809采样输入的模拟量,转换后的电压值显示在4位数码管上。

 2. 调研

 在现代检测技术中,常用的高精度数字电压表进行检测,将检测到的数据送入微型计算机系统,完成计算、存储、控制等功能。数字电压表相对于指针表而言读书直观准确,电压表的数字化是将连续的模拟量转换成不连续的离散的数字形式并加以显示。这有别于传统的以指针与刻度表进行读数的方法,避免了读数的视差和视觉疲劳。本文中数字电压表的的控制系统采用 AT89C51单片机。A/D转换器采用 ADC0809为主要硬件,实现数字电压表的硬件电路与软件设计。该系统的数字电压表电路简单,采用的元件较少,成本低,调节工作可实现自动化,还可以方便进行8路 A/D 转换的测量,远程测量结果传送等功能。数字电压表可以测量0~5V 的8路输入电压值,并在四位 LED 数码管上轮流显示或单路显示。设计结果能实现相应的功能。

 3. 作品相关

 A/D 转换器是将模拟量转换成数字量的器件,模拟量可以是电压、电流等信号,也可以是声、光、压力、温度、湿度等随时间连续变化的非电的物理量。非电量的模拟量可通过适当的传感器(如光电传感器、压力传感器、温度传感器)转换成电信号。

  3.1A/D 转换器工作原理 A/D 是把模拟量(通常是模拟电压)信号转换为 n 位二进制数字量信号的电路。这种转换通常分 4 步进行:采样→保持→量化→编码。前两步在采样保持电路中完成,后两步在 A/D 转换过程中同时实现。

 (1)采样。所谓采样是将一个时间上连续变化的模拟量转换为时间上断续变化的(离散的)模拟量。或者说,采样是把一个时间上连续变化的模拟量转换为一个串脉冲,脉冲的幅度取决于输入模拟量,时间上通常采用等时间间隔采样。采样过程的示意图如图 1-1 所示。

 图 1-1

 采样过程的示意图 采样器相当于一个受控的理想开关,s(t)=1 时,开关闭合,f s (t)=f(t);s(t)=0时,开关断开,f s (t)=0。如用数字逻辑式表示,即为 f s (t)=f(t)·s(t),s(t)=1 或 s(t)=0,也可用波形图表示,如图 1-2(a)、图 1-2(b)、图 1-2(c)所示。

 从波形图可见,在 s(t)=1 期间,输出跟踪输入变化,相当于输出把输入的“样品”采集下来,所以也可把采样电路称为跟踪电路。

 图 1-2

 采样器的波形图 (2)保持。所谓保持,就是将采样得到的模拟量值保持下来,s(t)=0 期间使输出不等于 0,而等于采样控制脉冲存在的最后瞬间的采样值,如图 1-1(d)所示。保持发生在 s(t)=0 期间。最基本的采样—保持电路如图 1-3 所示。它由 MOS管采样开关 T、保持电容 C b 和由运算放大器做成的跟随器三部分组成。s(t)=1 时,T 导通,v i 向 C b 充电,v c 和 v o 跟踪 v i 变化,即对 v i 采样。s(t)=0 时,T 截止,v o将保持前一瞬间采样的数值不变。只要C b 的漏电电阻、跟随器的输入电阻和MOS管 T 的截止电阻都足够大,大到可忽略 C b 的放电电流的程度,v o 就能保持到下次采样脉冲到来之前基本不变。实际中,进行 A/D 转换时所用的输入电压,就是这种保持下来的采样电压,也就是每次采样结束时的输入电压。

 图 1-3

 最基本的采样—保持电路 (3)量化和编码。所谓量化,就是用基本的量化电平 q 的个数来表示采样—保持电路得到的模拟电压值。这一过程实质上是把时间上离散而数字上连续的模拟量以一定的准确度变为时间上、数字上都离散的、量级化的等效数字值。量级化的方法通常有两种:只舍不入法和有舍有入法(四舍五入法)。这两种量化法的示意图分别如图 1-4(a)和图 1-4(b)所示。图 1-4(c)给出了一个用只舍不入法量化的实例。从图中可以看出,量化过程也就是把采样保持下来的模拟值舍入成整数的过程。

 对于连续变化的模拟量,只有当数值正好等于量化电平的整数倍时,量化后才是准确值,如图 1-4(c)中 T 1 ,T 2 ,T 4 ,T 6 ,T 8 ,T 11 ,T 12 时刻所示。不然,量化的结果都只能是输入模拟量的近似值。这种由于量化而产生的误差,称为量化误差,它直接影响了转换器的转换精度。量化误差是由于量化电平的有限性造成的,所以它是原理性误差,只能减小,而无法消除。

 为减小量化误差,根本的办法是取小的量化电平。另外,在量化电平一定的情况下,一般采用四舍五入法带来的量化误差只是只舍不入法引起的量化误差的一半。

 编码就是把已经量化的模拟数值(它一定是量化电平的整数倍)用二进制数码、BCD 码或其他码来表示。比如,用二进制对图 1-4(c)的量化结果进行编码,则可得到图中所示的编码输出。

 至此,即完成了 A/D 转换的全过程,将各采样点的模拟电压转换成了与之一一对应的二进制数码。

 图 1-4

 量化和编码 (a)只舍不入法;(b)有舍有入法;(c)实例(采用只舍不入法量化)

 (4)逐次逼近法 A/D 转换器。逐次逼近法 A/D 转换是一个具有反馈回路的闭路系统。A/D 转换器可划分成 3 大部分:比较环节、控制环节、比较标准(D/A转换器)。

 图 1-5 所示就是逐次逼近法 A/D 转换器的原理电路。其主要原理为:将一个待转换的模拟输入信号 V IN 与一个“推测”信号 V 1 相比较,根据推测信号是大于还是小于输入信号来决定减小还是增大该推测信号,以便向模拟输入信号逼近。推测信号由 D/A 变换器的输出获得,当推测信号与模拟输入信号“相等”时,向D/A 转换器输入的数字即为对应的模拟输入的数字。

 图 1-5

 逐次逼近法 A/D 转换器的原理电路 3.2 ADC 0809 A/D 转换器 (1)ADC 0809 的结构。ADC 0809 是 National 半导体公司生产 CMOS 材料的 A/D 转换器。它是具有 8 个通道的模拟量输入线,可在程序控制下对任意通道进行 A/D 转换,得到 8 位二进制数字量。其主要技术指标如下:

 ① 8 路输入通道,8 位 A/D 转换器,即分辨率为 8 位。

 ② 具有转换起停控制端。

 ③ 转换时间为 100 μs(时钟为 640 kHz 时),130 μs(时钟为 500 kHz 时)。

 ④ 单个+5 V 电源供电。

 ⑤ 模拟输入电压范围 0~+5 V,不需零点和满刻度校准。

 ⑥ 工作温度范围为-40 ℃~+85 ℃。

 ⑦ 低功耗,约 15 mW。

 其引脚如图 1-6 所示,内部结构图如图 1-7所示。引脚功能如下:

 ① IN 0 ~IN 7 :8 路模拟输入,通过 3 根地址译码线 ADD A 、ADD B 、ADD C 选通一路。

 ② D 7 ~D 0 :A/D 转换后的数据输出端,为三态可控输出,故可直接和微处理器数据线连接。8 位排列顺序是 D 7 为最高位,D 0 为最低位。

 ③ ADD A 、ADD B 、ADD C :模拟通道选择地址信号,ADD A 为低位,ADD C 为高位。地址信号与选中通道对应关系见表 3-1。

 ④ V R (+)、V R (-):正、负参考电压输入端,用于提供片内 D/A 电阻网络的图 1-6

 ADC 0809 引脚

  基准电压。在单极性输入时,V R (+)=5 V,V R (-)=0 V;双极性输入时,V R (+)、V R (-)分别接正、负极性的参考电压。

 ⑤ ALE:地址锁存允许信号,高电平有效。当此信号有效时,A、B、C 三位地址信号被锁存,译码选通对应模拟通道。在使用时,该信号常和 START 信号连在一起,以便同时锁存通道地址和启动 A/D 转换。

 ⑥ START:A/D 转换启动信号,正脉冲有效。加于该端的脉冲的上升沿使逐次逼近寄存器清 0,下降沿开始 A/D 转换。如正在进行转换时又接到新的启动脉冲,则原来的转换进程被中止,重新从头开始转换。

 ⑦ EOC:转换结束信号,高电平有效。该信号在 A/D 转换过程中为低电平,其余时间为高电平。该信号可作为被 CPU 查询的状态信号,也可作为对 CPU 的中断请求信号。在需要对某个模拟量不断采样、转换的情况下,EOC 也可作为启动信号反馈接到 START 端,但在刚加电时需由外电路第一次启动。

 ⑧ OE:输出允许信号,高电平有效。当微处理器送出该信号时,ADC 0808/0809 的输出三态门被打开,使转换结果通过数据总线被读走。在中断工作方式下,该信号往往是 CPU 发出的中断请求响应信号。

 表 1-1 地址信号与选中通道的对应关系 地址 选中通道 ADD C

 ADD B

 ADD A

 0 0 0 IN 0

 0 0 1 IN 1

 0 1 0 IN 2

 0 1 1 IN 3

 1 0 0 IN 4

 1 0 1 IN 5

 1 1 0 IN 6

 1 1 1 IN 7

  (2)工作时序与使用说明。ADC 0808/0809 的工作时序如图 1-8 所示。当通道选择地址有效时,ALE 信号一出现,地址便马上被锁存,这时转换启动信号紧随 ALE 之后(或与 ALE 同时)出现。START 的上升沿将逐次逼近寄存器SAR 复位,在该上升沿之后的 2 μs 加 8 个时钟周期内(不定),EOC 信号将变低电平,以指示转换操作正在进行中,直到转换完成后 EOC 再变高电平。微处理器收到变为高电平的 EOC 信号后,便立即送出 OE 信号,打开三态门,读取转换结果。

  图 1-8

 ADC 0808/0809 的工作时序

 4. 总结

 数字电压表之所以倍受青睐是有如下几个特点 图 1-7

 内部结构图

  (1)显示清晰直观

  (2)准确度高

  (3)分辨率高

  (4)扩展能力强

  (5)测量速率快

  (6)输入阻抗高

  (7)抗干扰能力强

  (8)集成度高,微功耗。

  第二部分

 设计说明

 1. 设计目标

 设计一个能正确测量模拟电压 0-5v,误差<1%,利用 ADC 0809 采样输入的模拟量,转换后的电压值显示在 4 位数码管上。

 2. 设计思路

 1 2.1 系统软件程序的设计 多路数字电压表的系统软件程序由主程序、A/D 转换子程序和显示子程序组成。

  2.2 主程序

 主程序包含初始化部分、调用 A/D 转换子程序和调用显示程序,如图 2—1所示。初始化部分包含存放通道数据缓冲区初始化和显示缓冲区初始化。另外,对于单路显示和循环显示,系统设置了一个标志位 00H 控制。初始化时 00H 位设置为 0,默认为循环显示,当它为 1 时改变为单路显示。00H 位通过单路/循环按键控制。

  图 2-1 主程序 D 2.3 A/D 转换子程序

 A/D 转换子程序用于对 ADC0809 的 8 路输入模拟电压进行 A/D 转换,并将转开始 初始化 调用 AD 转换子程调用显示子程序

  换的数值存入 8 个相应的存储单元中,如图 2—2 所示。A/D 转换子程序每隔一定时间调用一次,即隔一段时间对输入电压采样一次。

 图 2-2 AD 转换子程序

 2.4 显示子程序

 如图 2-3: LED 数码管采用软件译码动态扫描方式。在显示子程序中包含多路循环显示和单路显示程序。多路循环显示把 8 个存储单元的数值依次取出送到 4 位数码管上显示,每一路显示 1 秒。单路显示程序只对当前选中的一路数据进行显示。每路数据显示需经过转换变成十进制 BCD 码,放于 4 个数码管的显示缓冲区中。单路显示或多路循环显示通过标志位 00H 控制。在显示控制程序中加入了对单路或多路循环按键和通道选择按键的判断。

 否 开始 启动一次转换 取数据(OE=0)

 A/D 转换结束eoc=1? 0809 通道地址加 1 否 地址数小于 8 开始

  图 2-3 显示子程序

 9 2.5 ADC0809 的工作过程

 (1)

 首先确定 ADDA、ADDB、ADDC 三位地址,决定选择哪一路模拟信号;

  (2)

 使 ALE 端接受一正脉冲信号,使该路模拟信号经选择开关到达比较器的输入端;

  (3)

 使 START 接受一正脉冲信号,START 的上升沿将逐次逼近寄存器复位,下降沿启动 A/D 转换; 否 开始 初始数码管显示都为 0 判断是否有键按下 读出键值,并判断为几 如果键值为 1,将 1 写入缓存如果键值为 8,将8 写入缓存区 调用显示程序显示缓存区的值 显示完毕继续判断是否有键按下

  (4)

 EOC 输出信号变低,指示转换正在进行。

  (5)

 A/D 转换结束,EOC 变为高电平,指示 A/D 转换结束。此时,数据已保存到 8 位三态输出锁存器中。此时 CPU 就可以通过使 OE 信号为高电平,打开ADC0809 三态输出,由 ADC0809 输出的数字量传送到 CPU。

  2.6 ADC0809 应用说明

 (1)ADC0809内部带有输出锁存器,可以与 AT89S51单片机直接相连。

  (2)

 初始化时,使 ST 和 OE 信号全为低电平。

  (3)

 送要转换的哪一通道的地址到 A,B,C 端口上。

 (4)是否转换完毕,根据 EOC 信号来判断。

 (5)

 当 EOC 变为高电平时,这时给 OE 为高电平,转换的数据就输出给单片机了。

  第三部分

 设计成果

 1. 作品实物

  2. 电路图

  图 3-1

 制作简易数字电压表电路图 3. 程序 :

 /* 名称:ADC 0809 数模转换与显示

 说明:ADC 0809 采样通道 3 输入的模拟量,转换后的结果显示在数码管上。

 */ #include<reg51.h> #define uchar unsigned char #define uint unsigned int //各数字的数码管段码(共阴)

 uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; sbit CLK=P1^3;

 //时钟信号 sbit ST=P1^2;

 //启动信号 sbit EOC=P1^1;

 //转换结束信号 sbit OE=P1^0;

 //输出使能 //延时 void DelayMS(uint ms) {

 uchar i;

 while(ms--) for(i=0;i<120;i++); } //显示转换结果 void Display_Result(uchar d) {

 P2=0xf7;

 //第 4 个数码管显示个位数

 P0=DSY_CODE[d%10];

 DelayMS(5);

 P2=0xfb;

 //第 3 个数码管显示十位数

 P0=DSY_CODE[d%100/10];

 DelayMS(5);

 P2=0xfd;

 //第 2 个数码管显示百位数

 P0=DSY_CODE[d/100];

 DelayMS(5); } //主程序 void main() {

 TMOD=0x02;

 //T1 工作模式 2

 TH0=0x14;

 TL0=0x00;

 IE=0x82;

 TR0=1;

 P1=0x3f;

 //选择 ADC0809 的通道 3(0111)(P1.4~P1.6)

 while(1)

 {

  ST=0;ST=1;ST=0;

 //启动 A/D 转换

  while(EOC==0);

 //等待转换完成

  OE=1;

  Display_Result(P3);

  OE=0;

 } } //T0 定时器中断给 ADC0808 提供时钟信号 void Timer0_INT() interrupt 1 {

 CLK=~CLK; } (3)线性变换后的程序:

 #include "reg51.h" #define uchar unsigned char #define uint unsigned int uchar

 code dsycode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; sbit

 CLK =P1^3; sbit

 ST = P1^2; sbit

 EOC=P1^1; sbit

 OE =P1^0; void delay (uint ms) { uchar i; while(ms--)for(i=0;i<120;i++);

  }

 void diplay (unsigned int d)

  {

 P2=0xf7;

 P0=dsycode[(d/100)%10];

 delay(5);

 P2=0xfb;

 P0=dsycode[(d/100)/10%10];

 delay(5);

 P2=0xfd;

 P0=dsycode[d/100/100]|0x80;/*显示小数点*/

 delay(5);

 }

 void main() {

  unsigned int a;

  TMOD=0x02;

  TH0=0x14;

 TL0=0x00;

 IE=0x82;

 TR0=1; P1=0x3f;

 while(1)

  {

 ST=0;ST=1;ST=0;

 while(EOC==0);

 OE=1;

 a=P3*196;

 diplay(a);

 OE=0;

  }

 }

 void Timer0_INT() interrupt 1

  {

 CLK=~CLK;

 }

  第四部分

 结束语 1.数字电压表系统中对于外界被测电压的反应不够灵敏,变化比较慢,主要是因为 ADC 模数转换芯片的转换速率不够; 2.数字电压表系统测量外界电压不够准确,跟用示波器或者高精度的电压表测量结果有偏差,主要是因为 ADC 芯片位数不够; 3.ADC 的参考电压不准确也会造成测量结果的不准确。

  第五部分

 致谢

  经过本次设计制作,我学会了很多东西,更加坚定了认真严谨的工作态度。虽然我遇到各种各样的困难,但我没有放弃,我查阅网上和图书馆资料,请教老师相关问题,最终凭着严谨认真的科研态度,创新求实的科学精神,克服了这种种困难。同时,多得各位老师和同学的耐心分析和指导,尤其是老师给予了我很大的帮助!为此,我向我的指导老师表示由衷的感谢,在他的耐心帮助下,我终于顺利地完成我们的这次设计制作!

  第六部分

 参考文献

 [1] 胡辉主编.单片机原理及应用设计.北京:中国水利水电出版社,2005 1—284 页. [2] 谭浩强著.C 语言程序设计(第三版).北京:清华大学出版社,2005.7,37—152 页.

 [3]

 张桂红主编.单片机原理与应用.福州:福建科学技术出版社,2007.2,306—315 页. [4]

 韩志军等编著.单片机应用系统设计:入门向导与设计实例.北京:机械工业出版社,2005.1,132—147 页.

推荐访问:电压表 毕业设计 简易
上一篇:Twelve《12岁(2020)》完整中英文对照剧本
下一篇:共青团武安市委副书记学习“七种能力”心得体会发言材料例文

Copyright @ 2013 - 2018 优秀啊教育网 All Rights Reserved

优秀啊教育网 版权所有