当前位置:文档之家› 数字电压表的设计与实现

数字电压表的设计与实现

数字电压表的设计与实现
数字电压表的设计与实现

目录

1.前言 (1)

2.系统设计介绍 (2)

2.1数字电压表介绍 (2)

2.2.仿真软件介绍 (2)

2.3 单片机和AD相关知识 (3)

2.3.1 51单片机相关知识 (3)

2.4.2 AD转换器相关知识 (4)

2.5.七段数码管显示模块 (6)

3.数字电压表系统设计 (7)

3.1系统设计框图 (7)

3.2单片机电路 (7)

3.3 A/D采样电路 (8)

3.4显示电路 (8)

3.5 基于Protues数字电压表电路仿真原理图 (9)

3.5.1仿真总图 (9)

3.7.2仿真结果显示 (10)

4. 软件设计 (11)

4.1 系统总流程图 (11)

4.2 程序代码 (11)

5.总结 (16)

5.1系统性能优缺点及误差分析 (16)

6.参考文献 (17)

摘要:本文是以基于A T89C51单片机的数字电压表设计为研究内容。首先对数字电压表作了详细介绍,接着讲述了数字电压表的类型和作用以及一些数字电

压表的制作原理和构造,对比一下各种方法制造的压表。对各种电压表的制

作做一个归纳和总结,最后给出自己的方案和准备采用的手段方法。数字电

压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、

离散的数字形式并加以显示的仪表。由于数字式仪器具有读数准确方便、精

度高、误差小、测量速度快等特而得到广泛应用。

关键词:单片机;A/D转换;数据处理

Design of digital voltage meter based

on 51 single-chip

Zhang Weiyan (Tutor:Li Ming)

(College of Educational Information and Technology, Hubei Normal University,

Huangshi,435002, China)

Abstract: This paper is based on AT89C51singlechip digital voltage meter design as research content. The digital voltage meter was introduced in detail, then describes the

digital voltage meter of the type and the function as well as some digital voltage

meter design principle and structure, compare the various methods of manufacture

of pressure meter. The various voltage meter to make a summary and conclusion,

finally gives his plan and prepared by means of. Digital voltmeter referred to as

DVM, it is the use of digital measuring technology, the continuous analog

conversion into a continuous, discrete digital form and to display instrument. Due

to the digital instrument has the reading is accurate and convenient, high precision,

little error, fast measuring speed and widely used.

Key words: Single chip microcomputer A / D Conversion data processing.

1.前言

在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用[1]。

传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC实时通信。数字电压表是诸多数字化仪表的核心与基础[2]。以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。目前,由各种单片机和A/D转换器构成的数字电压表作全面深入的了解是很有必要的。

最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型[4]。数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继电器、电子管和形式发展到了现在的全固态化、集成化(IC化),另一方面,精度也从0.01%-0.005%。

目前,数字电压表的内部核心部件是A/D转换器,转换的精度很大程度上影响着数字电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和低成本这两个方面。

本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模块:转换模块、数据处理模块及显示模块。其中,A/D转换采用TCL549对输入的模拟信号进行转换,控制核心AT89C51再对转换的结果进行运算处理,最后驱动输出装置LED显示数字电压信号。

2.系统设计介绍

2.1数字电压表介绍

数字电压表简称DVM,数字电压表基本原理是将输入的模拟电压信号转化为数字信号,再进行输出显示。而A/D转换器的作用是将连续变化的模拟信号量转化为离散的数字信号,器基本结构是由采样保持,量化,编码等几部分组成。因此AD转换是此次设计的核心元件。输入的模拟量经过AD转换器转换,再由驱动器驱动显示器输出,便得到测量的数字电压。

本次自己的设计作品从各个角度分析了AD转换器组成的数字电压表的设计过程及各部分电路的组成及原理,并且分析了数模转换进而使系统运行起来的原理及方法。通过自己的实践提高了动手能力,也只有亲历亲为才能收获掌握到液晶学过的知识。其实也为建立节约成本的意识有些帮助。本次设计同时也牵涉到了几个问题:精度、位数、速度、还有功耗等不足之处,这些都是要慎重考虑的,这些也是在本次设计中的收获。

2.2.仿真软件介绍

Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:

(1)出现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。

(2)支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、

A VR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。

(3)提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。

(4)具有强大的原理图绘制功能。

可以仿真51系列、A VR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。

在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。PROTEUS 是单片机课堂教学的先进助手。

PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。

它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。

课程设计、毕业设计是学生走向就业的重要实践环节。由于PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台。

2.3 单片机和AD相关知识

2.3.1 51单片机相关知识

51单片机是对目前所有兼容intel 8031指令系统的单片机的统称。该系列单片机的始祖是intel的8031单片机,后来随着技术的发展,成为目前广泛应用的8为单片机之一。单片机是在一块芯片内集成了CPU、RAM、ROM、定时器/计数器和多功能I/O 口等计算机所需要的基本功能部件的大规模集成电路,又称为MCU。51系列单片机内包含以下几个部件:

一个8位CPU;一个片内振荡器及时钟电路;

4KB的ROM程序存储器;

一个128B的RAM数据存储器;

寻址64KB外部数据存储器和64KB外部程序存储空间的控制电路;

32条可编程的I/O口线;

两个16位定时/计数器;

一个可编程全双工串行口;

5个中断源、两个优先级嵌套中断结构。51系列单片机如下图:

图2 51单片机引脚图

2.4.2 AD转换器相关知识

(1)ADC0832,它属于双积分型的ADC,ADC0832是一个8位分辨率的器件,由美国国家半导体公司生产,它具有两个模拟输入通道,分别是CH0和CH1,这两个通道可以作为两个单通道输入,也可以作为一个查分通道输入。由于它引脚数量少(8个引脚),同时性能比较强劲而深受广大单片机爱好者及企业的欢迎。

ADC0832具有以下特点:

28位分辨率;

2双通道A/D转换;

2既能接受TTL电平,也能接受CMOS电平;

2供电电压在在5V±0.5V之内;

2工作频率为250KHZ,转换时间为32μS;

2一般功耗仅为15mW;

2支持多种形式的封装,例如DIP8,DIP14以及PICC等;

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

图3 TLC549引脚图

(3)工作原理

ADC0832的工作过程分为准备阶段和数据转换阶段,准备阶段就是使能芯片的过程,当芯片没有投入使用的时候,我们应该禁止该芯片进入工作状态,当要投入使用的时候,就使能该芯片,具体负责该功能的引脚是CS引脚,当该引脚为高电平时,就表示禁止该芯片;相反,该引脚为低电平的时候,就表示使能该芯片,所以,芯片没有工作时,应该使该引脚拉高,工作时,应该使该引脚拉低。数据转换阶段就是在外部时钟作用下进行数据的采集与量化,首先发送起始信号,就是保存DI端的高电平直到第一个脉冲的上升沿到来,起始信号发送后,第二个和第三个脉冲上升沿的DI口电平就代表了通道的选择,此后,DI端的数据开始做转换输出了,DO的输出8bit,从第4个到第11个脉冲,每次从DO输出一位的数据,8位输出完毕,也就代表一个字节完毕,接下来输出该字节的反码,从第12个脉冲到第20个脉冲,一位一位的逐个输出,至此一次模数转换结束。CS管脚同时被拉高。其工作时序如图4所示

图4 ADC0832工作时序

2.5.七段数码管显示模块

7seg-mpx4-CC共阴极数码管显示器,它左下侧的abcdefg dp是LED数码管显示器的I/O口,是段选信号,右下侧的1234是它的位选信号,就是从左到右分别是第一位到第四位,段选信号与位选信号分别接到单片机的不同输出口,例如段选信号可以接到P0口,位选信号可以接到P2口,共阳极的字形显示代码为:uchar code Tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};位选信号代码为:Digits[]={0xfe,0xfd,0xfb,0xf7};

图5七段数码管引脚图

3.数字电压表系统设计 3.1系统设计框图

此次设计的是数字电压表,系统设计主要包括四个部分:分别是电源模块、AD 模数转换部分、51单片机最小系统部分、数码管显示部分。首先由单片机初始化ADC0832模数转换芯片和数码管显示,当外接被测电压后,ADC0832将模拟电压信号转换为数字信号输入到单片机的I/O 口,通过单片机处理后将电压的大小显示在数码管上面。如下是本次设计作品的框图:

图6 系统框图

3.2单片机电路

单片机最小系统如下图所示,各个引脚都已经标出。

图7 单片机最小系统

3.3 A/D采样电路

图8 A/D转换模块3.4显示电路

图9数码管显示模块

图10系统供电部分

3.5 基于Protues数字电压表电路仿真原理图

3.5.1仿真总图

为了验证此次设计原理图的正确性,在制作实物之前用专业软件做了仿真,在Proteus软件中设置AT89C51单片机的晶振频率为12 MHz。本电路EA接高电平,没有扩展片外ROM。如下图是此次系统仿真的总原理图部分:

图12仿真总图1

图13 仿真总图2

通过用protues软件的仿真发现此次设计的系统原理图能够实现电压的正确测量,而且电压的误差较小,七段数码管能够正确显示出测量出来的结果。

3.7.2仿真结果显示

如下图为此次仿真的测量电压的结果的截图:

图14仿真结果显示1

图15仿真结果显示2

4.软件设计

4.1 系统总流程图

4.1程序流程图

4.2 程序代码

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit ADCS = P1^0;

sbit ADCLK = P1^1;

sbit ADDI = P1^2;

sbit ADDO = P1^2;

uchar code Tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void Display(uint dat) //显示的数值为毫伏

{

uchar ge,shi,bai,qian;

qian = dat/1000%10;

bai = dat/100%10;

shi = dat/10%10;

ge = dat%10;

P2 = 0xfe;

P0 = Tab[qian]|0x80; //最高位加小数点

delay(10);

P2 = 0xfd;

P0 = Tab[bai];

delay(10);

P2 = 0xfb;

P0 = Tab[shi];

delay(10);

P2 = 0xf7;

P0 = Tab[ge];

delay(10);

}

uchar ADC0832(bit mode,bit channel) //AD转换,返回结果{

uchar i,dat,ndat;

ADCS = 0;//拉低CS端

_nop_();

_nop_();

ADDI = 1; //第1个下降沿为高电平

ADCLK = 1;//拉高CLK端

_nop_();

_nop_();

ADCLK = 0;//拉低CLK端,形成下降沿1

_nop_();

_nop_();

ADDI = mode; //低电平为差分模式,高电平为单通道模式。

ADCLK = 1;//拉高CLK端

_nop_();

_nop_();

ADCLK = 0;//拉低CLK端,形成下降沿2

_nop_();

_nop_();

ADDI = channel; //低电平为CH0,高电平为CH1

ADCLK = 1;//拉高CLK端

_nop_();

_nop_();

ADCLK = 0;//拉低CLK端,形成下降沿3

ADDI = 1;//控制命令结束(经试验必需)

dat = 0;

//下面开始读取转换后的数据,从最高位开始依次输出(D7~D0)for(i = 0;i < 8;i++)

{

dat <<= 1;

ADCLK=1;//拉高时钟端

_nop_();

_nop_();

ADCLK=0;//拉低时钟端形成一次时钟脉冲

_nop_();

_nop_();

dat |= ADDO;

}

ndat = 0; //记录D0

if(ADDO == 1)

ndat |= 0x80;

//下面开始继续读取反序的数据(从D1到D7)

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

{

ndat >>= 1;

ADCLK = 1;//拉高时钟端

_nop_();

_nop_();

ADCLK=0;//拉低时钟端形成一次时钟脉冲

_nop_();

_nop_();

if(ADDO==1)

ndat |= 0x80;

}

ADCS=1;//拉高CS端,结束转换

ADCLK=0;//拉低CLK端

ADDI=1;//拉高数据端,回到初始状态

if(dat==ndat)

return(dat);

else

return 0;

}

void main()

{

uint adc;

while(1)

{

adc = ADC0832(1,0); //差分模式,CH0-CH1

adc = adc*19.607843; //转换为实际电压便于显示

Display(adc);

}

5.总结

5.1系统性能优缺点及误差分析

通过理论分析和电路仿真,现在对此次课程设计的数字电压表系统设计结果进行总结。通过仿真我们可以看到仿真结果和理论分析是相符合的,也即此次设计的系统能够在一定的条件下达到课程设计目的,实现对外接电压的测量,电路结构简单,但是可以看出在系统的稳定性及可靠性方面做得不够。具体体现在以下几个方面:(1)数字电压表系统中对于外界被测电压的变化反应不够灵敏,变化比较慢,主要是因为ADC模数转换芯片的转换速率不够;

(2)数字电压表系统测量的外界电压不够准确,跟用示波器或者高精度的电压表测量的结果有偏差,主要是因为ADC芯片的位数不够;

(3)而且ADC的参考电压不准确也会造成测量结果的不准确;

针对上述问题,理论上可以用一下方法进行改进:

(1)在换用高精度的ADC芯片能够改善测量精度的问题,一般用12位AD既能满足要求;

(2)制作高精度电压参考源,通过提高ADC模数转换芯片的参考电压的精度来提高测量的电压精度;

(3)运用高精度的金属膜电阻构成分压网络,能够最大限度提高精度;

由于个人受时间和经验的限制,本设计有不足和需要改进的地方:

由于时间和经验限制,本设计实现的功能比较单一,只能实现电压的测量,不能实现其它模拟信号的测量。指导老师希望同时实现测量功率,我想可以用相同的设计,只需要改变一些参数,设计出可以测量电流的数字电流表,然后根据电流和电压来计算功率,这样也是应该可以实现的,不过限于本人的经验和时间,现在未能完成。

由于A/D转换器的粗糙,A/D转换器转换速度比较慢,结构比较复杂,在测量时,可能存在着误差,但是用A/D转换器的好处是抗干扰能力强、准确度高、稳定性好。所以总体来说,测量误差还是比较小的。

6.参考文献

[1] 徐爱钧.智能化测量控制仪表原理与设计[M].北京:北京航空航天大学出版社,2004,56-123.

[2] 天津市计算机学会单片机分会,2003年全国单片机及嵌如入式系统学术年会论文集[C].北京:北京航空航天大学出版社,2003,790-794.

[3] 李光飞,楼然苗.单片机课程设计实例指导[M] .北京:北京航空航天大学出版社,2004,1-12.

[4] 余永权.ATMEL89系列单片机应用技术[M].北京:北京航空航天大学出版社,2002,103-110.

[5] 杨文龙.单片机原理及应用[M].西安:西安电子科技大学出版社,1998,62-80.

[6] 黄继昌.电子元器件应用手册[M].北京:人民邮电出版社,2004,165-204.

[7] 阎石.数字电子技术基础[M].北京:高等教育出版社,1998,475-490.

[8] J. Frank. Instrumentation for Process Measurement and Control[M]. BEIJING: Science Publishing House.2000, 60-79.

[9] He Jian-jun, Yu Shou-yi. Temperature Intelligent Control System of Large-Scale Standing Quench Furnace[J].Journal of Electronic Science and Technology of China, 2005,(1),72-88

相关主题
文本预览
相关文档 最新文档