数字电压表毕业设计.docx

上传人:b****4 文档编号:6672893 上传时间:2023-05-10 格式:DOCX 页数:23 大小:261.83KB
下载 相关 举报
数字电压表毕业设计.docx_第1页
第1页 / 共23页
数字电压表毕业设计.docx_第2页
第2页 / 共23页
数字电压表毕业设计.docx_第3页
第3页 / 共23页
数字电压表毕业设计.docx_第4页
第4页 / 共23页
数字电压表毕业设计.docx_第5页
第5页 / 共23页
数字电压表毕业设计.docx_第6页
第6页 / 共23页
数字电压表毕业设计.docx_第7页
第7页 / 共23页
数字电压表毕业设计.docx_第8页
第8页 / 共23页
数字电压表毕业设计.docx_第9页
第9页 / 共23页
数字电压表毕业设计.docx_第10页
第10页 / 共23页
数字电压表毕业设计.docx_第11页
第11页 / 共23页
数字电压表毕业设计.docx_第12页
第12页 / 共23页
数字电压表毕业设计.docx_第13页
第13页 / 共23页
数字电压表毕业设计.docx_第14页
第14页 / 共23页
数字电压表毕业设计.docx_第15页
第15页 / 共23页
数字电压表毕业设计.docx_第16页
第16页 / 共23页
数字电压表毕业设计.docx_第17页
第17页 / 共23页
数字电压表毕业设计.docx_第18页
第18页 / 共23页
数字电压表毕业设计.docx_第19页
第19页 / 共23页
数字电压表毕业设计.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数字电压表毕业设计.docx

《数字电压表毕业设计.docx》由会员分享,可在线阅读,更多相关《数字电压表毕业设计.docx(23页珍藏版)》请在冰点文库上搜索。

数字电压表毕业设计.docx

数字电压表毕业设计

哈尔滨职业技术学院

 

毕业设计

 

题目:

数字电压表

系部:

信息专业:

电子信息工程

指导教师:

李晓媛

班级:

一班姓名:

艾宝东

 

目录

一.数字电压表简介:

3

二.数字电压设计两种方案简介:

4

1.由数字电路及芯片构建。

4

2.由单片机系统及A/D转换芯片构建。

5

三.单片机简介及本设计单片机的选择5

1.常用单片机的特点比较及本设计单片机的选择5

2.本设计使用的单片机的简介6

四.各种显示器件的介绍和选择7

1.常用显示器件简介7

2.1602液晶的参数资料8

五.模数(A/D)转换芯片的选择10

1.常用的A/D芯片简介10

2.模数(A/D)芯片TLC2543的资料11

六.总体设计13

七.硬件电路系统模块的设计14

八.系统软件的设计18

1.汇编语言和C语言的特点及选择18

2.主程序设计18

九.系统的调试29

1.硬件调试29

2.软件调试30

十.总结30

参考文献31

 

一.数字电压表简介:

数字电压表出现在50年代初,60年代末发起来的电压测量仪表,简称DVM,它采用的是数字化测量技术,把连续的模拟量,也就是连续的电压值转变为不连续的数字量,加以数字处理然后再通过显示器件显示。

这种电子测量的仪表之所以出现,一方面是由于电子计算机的应用逐渐推广到系统的自动控制信实验研究的领域,提出了将各种被观察量或被控制量转换成数码的要求,即为了实时控制及数据处理的需要;另一方面,也是电子计算机的发展,带动了脉冲数字电路技术的进步,为数字化仪表的出现提供了条件。

所以,数字化测理仪表的产生与发展与电子计算机的发展是密切相关的;同时,为革新电子测量中的烦锁和陈旧方式也催促了它的飞速发展,如今,它又成为向智能化仪表发展的必要桥梁。

如今,数字电压表已绝大部分已取代了传统的模拟指针式电压表。

因为传统的模拟指针式电压表功能单一,精度低,读数的时候也非常不方便,很容易出错。

而采用单片机的数字电压表由于测量精度高,速度快,读数时也非常的方便,抗干扰能力强,可扩展性强等优点已被广泛的应用于电子及电工的测量,工业自动化仪表,自动测试系统等智能化测量领域。

显示出强大的生命力。

数字电压表最初是伺服步进电子管比较式,其优点是准确度比较高,但是采样速度慢,重量达几十公斤,体积大。

继之出现了斜波式电压表,它的速度方面稍有提高,但是准确度低,稳定性差,再后来出现了比较式仪表改进逐次渐近式结构,它不仅保持了比较式准确度高的优点,而且速度也有了很大的提高,但它有一缺点是抗干扰能力差,很容易受到外界各种因素的影响。

随后,在斜波式的基础上双引伸出阶梯波式,它的唯一的进步是成本降低了,可是准确宽,速以及抗干扰能力都未能提高。

而现在,数字电压表的发展已经是非常的成熟,就原理来讲,它从原来的一,二种已发展到多种,在功能上讲,则从测单一参数发展到能测多种参数;从制作元件来看,发展到了集成电路,准确度已经有了很大的提高,精度高达1NV;读数每秒几万次,而相对以前,它的价格也有了降低了很多。

目前实现电压数字化测量的方法仍然模-数(A/D)转换的方法。

而数字电压表种类繁多,型号新异,目前国际仍未有统一的分类方法。

而常用的分类方法有如下几种:

1.按用途来分:

有直流数字电压表,交、直流数字电压表,交直流万用表等。

2.按显示位数来分:

有4位,5位,6位,7位,8位等。

3.按测量速度来分:

有低准确度,中准确度,高准确度等。

4.按测量速度来分:

有低速,中速,高速,超高速等。

但在日常生活中,数字电压表一般是按照原理不同进行分类的,目前大致分为以下几类:

比较式,电压——时间变换式,积分式等。

在电量的测量中,电压、电流和频率是最基本的三个被测量。

其中,电压量的测量最为经常。

而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。

另外,由于数字式仪器具有读数准确方便、精度高、误差小、灵敏度高和分辨率高、测量速度快等特点而倍受用户青睐,数字式电压表就是基于这种需求而发展起来的,是一种必不可少的电子测量仪表。

二.数字电压设计两种方案简介:

设计数字电压表有多种的设计方法,方案是多种多样的,由于大规模集成电路数字芯片的高速发展,各种数字芯片品种多样,导致对模拟数据的采集部分的不一致性,进而又使对数据的处理及显示的方式的多样性。

又由于在现实的工作生活中,电压表的测量测程范围是比较大的,所以必须要对输入电压作分压处理,而各个数据处理芯片的处理电压范围不同,则各种方案的分段也不同。

下面介绍两种数字电压表的设计方案。

1.由数字电路及芯片构建。

这种设计方案是由模拟电路与数字电路两大部分组成,模拟部分包括输入放大器、A/D转换器和基准电压源;数字部分包括计数器、译码器、逻辑控制器、振荡器和显示器。

其中,A/D转换器是它的核心器件,它将输入的模拟量转换成数字量。

模拟电路和数字电路是相互联系的,由逻辑控制电路产生控制信号,按规定的时序将A/D转换器中个组模拟开关接通或断开,保证A/D转换正常进行。

A/D转换结果通过计数译码电路变换成段码,最后驱动显示器显示出相应的数值。

此方案设计其优点是,设计成本低,能够满足一般的电压测量。

但设计不灵活,都是采用纯硬件电路。

很难将其在原有的基础上进行扩展。

2.由单片机系统及A/D转换芯片构建。

这种方案是利用单片机系统与模数转换芯片、显示模块等的结合构建数字电压表。

由于单片机的发展已经成熟,利用单片机系统的软硬件结合,可以组装出许多的应用电路来。

此方案的原理是模数(A/D)转换芯片的基准电压端,被测量电压输入端分别输入基准电压和被测电压。

模数(A/D)转换芯片将被测量电压输入端所采集到的模拟电压信号转换成相应的数字信号,然后通过对单片机系统进行软件编程,使单片机系统能按规定的时序来采集这些数字信号,通过一定的算法计算出被测量电压的值。

最后单片机系统将计算好了的被测电压值按一定的时序送入显示电路模块加以显示。

此方案不仅能够继承上一种方案的各种优点,还能改进上一种设计方案设计不灵活,难与在原基础上进行功能扩展等不足。

三.单片机简介及本设计单片机的选择

1.常用单片机的特点比较及本设计单片机的选择

综合上一章提到的两种设计方案的各方面优点及其在现在的所设计电压表的实用性,我们选择第二种电压表设计方案,即由单片机系统及数字芯片构建的方法来我们本次设计。

在这一设计中,我们涉及到了一个关键系统模块——单片机系统模块,而目前单片机的种类是很繁多的,主要有主流的8位单片机和高性能的32位单片机,结合本设计各方面因素,8位单片机对于本设计已经是绰绰有余了,但将用哪一种类8的单片机呢。

在这里,不得不先简单的介绍一下几种常用的8单片机。

单片机是指一个集成在一块芯片上的完整计算机系统,具有一个完整计算机所需要的大部分部件:

CPU,内存,总线系统等。

而目前常用的单片机的8位有51系列单片机,AVR单片机,PIC单片机。

应用最广的8位单片机还是intel的51系列单片机。

51系列单片机的特点是:

硬件结构合理,指令系统规范,加之生产历史悠久,世界有许多芯片公司都买了51的芯片核心专利技术,并在其基础上扩充其性能,使得芯片的运行速度变得更快,性价比更高。

AVR单片机是atmel公司推出较新的单片机,它的显著特点是:

高性能,低功能,高速度,指令单周期为主,但性格方面比51单片机要高。

有专门的I/O方向寄存器。

虽然有转强的驱动电压,但I/O口使用不比51单片机方便。

PIC单片机系列是美国微芯公司的产品,也是市面上增长最快的单片机之一,属精简指令集单片机,其特点是:

高速度,高性能,但在性格方面比51单片机要高,也有专门的I/O方向寄存器,I/O口使用不比51单片机方便。

综合以上各种单片机的基本性能及本设计的满足需要,我们将选择51系列单片机。

2.本设计使用的单片机的简介

本设计中选用是51系列的AT89C52,它是低电压、低功耗、高性能的CMOS8位单片机,片内含8KB的可反复擦写的只读程序存储器和256B的随机存取数据存储器,32个I/O口线,3个16位定时/计数器,片内振荡器及时钟电路,并与MCS-51系列单片机兼容。

在设计中,单片机起着连接硬件电路与程序运行及存储数据的任务,一方面,它将A/D转换器、显示器和语音芯片等通过I/O口地址线和数据线连接起来;另一方面,它将用户下载的程序通过控制总线控制数据的输入输出,从而实现册电压的功能。

四.各种显示器件的介绍和选择

1.常用显示器件简介

本次设计中有显示模块,而常用的显示器件比较多,有数码管,LED点阵,1602液晶,12864液晶等。

数码管是最常用的一种显示器件,它是由几个发光二极管组成的8字段显示器件,其特点是价格非常的便宜,使用也非常的方便,显示效果非常的清楚。

小电流下可以驱动每光,发光响应时间极短,体积小,重量轻,抗冲击性能好,寿命长。

但数码管只能是显示0——9的数据。

不能够显示字符。

这也是数码管的不足之处。

LED点阵显示器件是由好多个发光二极管组成的。

具有高亮度,功耗低,视角大,寿命长,耐湿,冷,热等特点,LED点阵显示器件可以显示数字,英文字符,中文字符等。

但用LED点阵显示的软件程序设计比较麻烦。

1602液晶是工业字符型液晶,能够同时显示16*2即32个字符。

1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字这些字符有:

阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。

使用时直接编写软件程序按一定的时序驱动即可。

它的特点是显示字迹清楚,价格相对便宜。

12864液晶也是一种工业字符型液晶,它不仅能够显示1602液晶所可以显示的字符,数字等信息,而且还可以显示8*4个中文汉字和一些简单的图片,显示信息也非常的清楚。

使用时也直接编写软件程序按一定的时序驱动即可。

不过它的价格比1602液晶贵了很多。

在本设计中,我们只需要显示最后电压的数字值和电压的单位,综合上面各种显示器件的特点:

数码管只能显示数字,不能显示单位字符,不符合本设计的要求。

而点阵显示器件驱动显示软件程序编写麻烦,占用的引脚相对也较多。

也不是理解的显示器件。

所以在本设计中,我们考虑用液晶显示器件,虽然12864液晶比1602液晶的功能强,不过在价格方面却贵了好多。

而1602液晶也足够满足本设计的需要。

因此,在本设计实验我们选择1602液晶显示器件。

2.1602液晶的参数资料

我们选择了1602液晶做为本设计的显示模块的显示器件。

以下是1602液晶的各方面参数:

1.接口信号说明:

编号

符号

引脚说明

1

VSS

电源地

2

VDD

电源正极

3

VL

液晶显示偏压信号

4

RS

数据/命令选择端

5

R/W

读/写选择端

6

E

使能信号

8-14

D0-D7

DataI/O

15

BLA

背光源正极

16

BLK

背光源负极

2.基本操作时序:

1.读状态:

输入:

RS=0,RW=1,E=1。

输出:

D0-D7为状态字

2.写状态:

输入:

RS=0,RW=0,D0-D7为指令码,E为高脉冲。

输出:

3.读数据:

输入:

RS=1,RW=1,E=1。

输出:

D0-D7为数据。

4.写数据:

输入:

RS=1,RW=0,D0-D7为数据,E为高脉冲。

输出:

3.状态字说明

STA7

STA6

STA5

STA4

STA3

STA2

STA1

STA0

STA0-6

当前数据地址指针的数值

STA7

读写操作使能

1:

禁止0:

允许

4.指令的说明。

显示模式设置

指令码

功能

0

0

1

1

1

0

0

0

设置16*2显示,5*7点阵,8位数据口

显示开/关及光标设置

指令码

功能

0

0

0

0

1

D

C

B

D=1开显示;D=0关显示

C=1显示光标;C=0不显示关标

B=1光标闪烁;B=0光标不显闪烁

0

0

0

0

0

1

N

S

N=1当读写一个字条款后地址指针加一,且光标加一。

N=0当读或写一个字符后地址指针减一,且光标减一。

S=1当写一个安条款,整屏显示左移(N=1)或右移(N=0),以得到光标不移动而屏幕移动的效果。

S=0当写一个字符,整屏显示不移动。

数据控制:

指令码

功能

80H+地址码(0-27H,40H-67H)

设置数据地址指针

01H

显示清屏:

1,数据指针清0

2,所有显示清0

02H

显示回车:

数据指针清0

 

五.模数(A/D)转换芯片的选择

在本设计中,模数(A/D)转换模块是一个重要的模块,它关系到最后数电压表电压值的精确度。

所以,A/D芯片的选择是设计过程中一个很重要的环节。

1.常用的A/D芯片简介

常用的A/D芯片有AD0809,AD0832,TLC2543C等几种。

下面简单介绍一下这三种芯片。

AD0809是8位逐次逼近型A/D转换器,它是由一个8路的模拟开关、一个地址锁存译码器、一个A/D转换器和一个三态输出锁存器组成。

多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。

些A/D转换器是的特点是8位精度,属于并行口,如果输入的模拟量变化大快,必须在输入之前增加采样电路。

AD0832也是8位逐次逼近型A/D转换器,可支持致命伤个单端输入通道和一个差分输入通道。

它易于和微处理器接口或独立使用;可满量程工作;可用地址逻辑多路器选通各输入通道。

TLC2543C是12位开关电容逐次逼近A/D转换,每个器件有三个控制输入端,片选,输入/输出时钟以及地址输入端。

它可以从主机高速传输转换数据。

它有高速的转换,通用的控制能力,具有简化比率转换,刻度以及模拟电路与逻辑电路和电源噪声隔离,耐高温等特点。

综合上述几种A/D转换芯片的特点,前两种芯片的性能和精度都不如第三种芯片。

在本设计中,我们的目标是设计高精度的电压表,因此在此,我们选择精度为12位的TLC2543芯片。

2.模数(A/D)芯片TLC2543的资料

综合本设计的各方面考虑,我们选了TLC2543模数转换芯片。

下面就介绍此芯片的各方面资料。

TLC2543芯片的封装引脚图和引脚说明如下:

引脚说明:

引脚号

名称

I/O

说明

1-9,11,12

AIN0-AIN10

I

模拟输入端。

15

~CS

I

片选端。

17

Datainput

I

串行数据输入端。

16

Dataout

O

用于A/D转换结果输也的3态串行输出端

19

EOC

O

转换结束端

10

GND

接地端

18

I/Oclk

I

输入/输出时钟端

14

REF+

I

正基准电压端

13

REF-

I

负基准电压端

20

VCC

正电压端

各引脚的使用详细介绍。

1.AIN0-AIN10这11个模拟信号输入由内部多路选器选择。

对4.1MHZ的I/Oclk,驱动源阻抗必须小于或等于50欧并且能够将模拟电压由60PF的电容来限制其斜率。

2.在CS端的一个由高低低变化将复位内部计数器并控制使能dataout,datainput和I/Oclk。

一个由低至高的变化将在一个设置时间内禁止datainput和I/Oclk.

3.串行数据输入端datainput是一个4位的串行地址选择下一个即将被转换的所需的模拟输入或测试电压。

串行数据以MSB为前导并在I/Oclk的前4个上升沿被移入。

在4个地址位被读入地址寄存器后,I/Oclk将剩下的几位依次输入。

4.Dataout在CS为高时处于高阻抗状态,而当CS为低时处于激活状态。

CS一旦有效,按照前一次转换结果的MSB/LSB值将dataout从高阻抗状态转变成相应的逻辑电平,I/Oclk的下一个下降沿将根据下一个MSB/LSB将dataout驱动成相应的逻辑电平,剩下的各位依次移出。

5.EOC在最后的I/Oclk下降沿之后,从高电平变为低电平并保持低直到转换完成及数据准备传输。

6.GND端是内部电路的地回路端,除加有说明外,所有电压测量都相对于GND

7.I/Oclk端串行输入并完成以下四个功能:

第一,在I/Oclk的前8个上升沿,它将8个输入数据信键入输入数据寄存器。

在第4个上升沿之后为多路器的地址。

第二,在I/Oclk的第4个下降沿,在选定的多路器的输入端上的模拟输入电压开始和电容器充电并继续到I/Oclk的最后一个下降沿。

第三,它将前一次转换的数据的其余11位移出dataout端。

在I/Oclk的下降沿时数据变化。

第四,在I/Oclk的最后一个下降沿它将转换的控制信号传送到内部的状态控制位。

8.REF+端通常接VCC,最大输入电压范围取决于加于本端与加于REF-端的电压差。

9.REF-端通常接地。

六.总体设计

1.技术要求:

1)最高量程为:

200V。

2)分为三档量程:

2V,20V,200V。

可以通过调档开关实现各档位。

最高精度为0.01mv。

3)被测电压的电压值小于1V时,有自动换以MV为单位显示。

4)通过按键可以显示5秒的平均电压的电压值。

2.设计方案:

根据上述,我们选择单片机与A/D转换芯片结合的方法实现本设计。

使用的基本元器件是:

AT89C51单片机,TLC2543模数转换芯片,1602液晶显示器,开关,按键,电容,电阻,晶振,标准电源等等。

设计的基本框图如下:

 

七.硬件电路系统模块的设计

根据上述选择的各元器件,各电路模块的电路图如下描述。

1.单片机系统

单片机最小系统包括晶振电路,复位电路,电源。

其原理图如下:

 

此模块中,单片机的晶振是12MHZ,C1和C2的电容是10UF,C3可选1-10UF。

R1电阻为1K。

2.输入电路

由于输入电路的电压比基准电压(2V)高很多,因此在输入电路必须加电压衰减器。

衰减电路可由开关来选择不同的衰减率,从而切换档位。

则完整输入电路如下:

 

通过计算,可知设计衰减器用的电阻R2,R3和R4分别为:

9M,900K,100K控制档位的开关是双开关的,目地是能够使单片机CPU自动识别档位,即可用相应的档位的数据转换的算法计算出正确的电压值。

被测电压输入端、整理过的模拟电压输入端,开关与单片机的连接如图所示。

3.A/D转换芯片与单片机的连接

此设计中选择的是A/D转换芯片的通道0,A/D芯片的数据输入口连接单片机的P1.3口,数据输出口连接单片机的P1.4口,芯片使能端连接单片机的P1.5口,脉冲端连接单片机的P1.6口。

模块连接如下图所示。

4.1602液晶与单片机连接

此模块液晶的RS,RW和E端分别连接单片机的P1.2,P1.1和P1.0口;液晶的数据各端口连接单片机的P0口。

具体如下图所示。

5.键盘与单片机的连接如下。

此键盘的一端与单片机的P2.0口连接,另一端接地。

原理图如下所示。

该键盘的功能:

当键盘被按下时,即可计算后5秒的平均电压值。

八.系统软件的设计

1.汇编语言和C语言的特点及选择

本设计是硬件电路和软件编程相结合的设计方案,选择合适的编程语言是一个重要的环节。

在单片机的应用系统程序设计时,常用的是汇编语言和C语言。

汇编语言的特点是占用内存单元少,执行效率高。

执行速度快。

但它依赖于计算机硬件,程序可读性和可移植性比较差。

而C语言虽然执行效率没有汇编语言高,但语言简洁,使用方便,灵活,运算丰富,表达化类型多样化,数据结构类型丰富,具有结构化的控制语句,程序设计自由度大,有很好的可重用性,可移植性等特点。

由于现在单片机的发展已经达到了很高的水平,内部的各种资源相当的丰富,CPU的处理速度非常的快。

用C语言来控制单片机无疑是一个理想的选择。

所以在本设计中采用C语言编写软件程序。

2.主程序设计

主程序设计包括以下方面:

按照硬件电路对单片机位定义。

编写延时模块程序。

编写驱动1602液晶显示模块程序。

编写驱动A/D转换模块程序。

编写键盘扫描模块程序。

主程序的总体流程如下图:

全部软件程序如下:

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

//#definedisdataP0//显示数据段码输出口

#definechannel_00x02//单通道0输入选择

#definechannel_10x03//单通道1输入选择

sbitADC_DI=P3^4;//数据输入输出复用

sbitADC_DO=P3^4;//DI和DO端都接在P1.0

sbitADC_CLK=P3^5;//时钟端

sbitADC_CS=P3^6;//片选端

sbitACC0=ACC^0;//通道与输入方式控制字

sbitACC1=ACC^1;//通道与输入方式控制字

sbitDISX=P0^7;//LED小数点

ucharcodedisply[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};

//0123456789关闭

//ucharcodedis_scan[3]={0x00,0x01,0x02};//列扫描控制字

uintdatadis[4]={0x00,0x00,0x00,0x00};//定义3个显示数据单元和一个数据存储单元

/*******************************************************************/

/*延时函数*/

/*******************************************************************/

delay(intms)

{

inti;

while(ms--)

{

for(i=0;i<250;i++)

{

_nop_();

_nop_();

_nop_();

_nop_();

}

}

}

/*******************************************************************/

/*启动ADC转换*/

/*******************************************************************/

ADC_start()

{

ADC_CS=1;//一个转换周期开始

_nop_();

ADC_CLK=0;

_nop_();

ADC_CS=0;//CS置0,片选有效

_nop_();

ADC_DI=1;//DI置1,起始位

_nop_();

ADC_CLK=1;//第一个脉冲

_nop_();

ADC_DI=0;//在负跳变之前加一个DI反转操作

_nop_();

ADC_CLK=0;

_n

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2