您的当前位置:首页数字电压表

数字电压表

2021-07-28 来源:六九路网


《单片机技术》课程设计说明书

数字电压表

院 、 部: 电气与信息工程学院 学生姓名: 指导教师: 王韧 职称 副教授 专 业: 电气工程及其自动化 班 级

完成时间: 2014年6月7日

目 录

1 数字电压表的功能要求说明及设计方案介绍…………………………………1 1.1 设计课题任务要求 ………………………………………………………1 1.2 功能要求说明 ……………………………………………………………1 1.3 数字电压表设计方案 ……………………………………………………1 1.4 数字电压表工作原理 ……………………………………………………2 2 硬件电路设计……………………………………………………………………3 2.1 数字电压表各模块功能简要介绍 ………………………………………3 2.2 PCB图及元器件面板布置图 ……………………………………………4 2.3 元器件清单 ………………………………………………………………4 3 软件设计 ………………………………………………………………………5 3.1 单片机资源使用 …………………………………………………………5 3.2 单片机软件模块设计 ……………………………………………………5 3.3 程序清单 …………………………………………………………………7 4 电压表仿真结果及设计结论 …………………………………………………8 4.1 电压表使用说明 …………………………………………………………8 4.2 电压表仿真结果及误差分析 ……………………………………………8 4.3 电压表设计结论 …………………………………………………………8 4.4 设计体会 …………………………………………………………………8 4.5 教学建议 …………………………………………………………………9 结束语………………………………………………………………………………10 致谢…………………………………………………………………………………11 参考文献……………………………………………………………………………12 附录…………………………………………………………………………………13 附录A …………………………………………………………………………13 附录B …………………………………………………………………………14 附录C …………………………………………………………………………15 附录D …………………………………………………………………………16 附录E …………………………………………………………………………17

摘要

数字电压表的基本工作原理是利用A/D转换将待测信号转换成数字信号,通过相应换算候将测试结果以数字形式显示出来的一种电压表。较之于一般的模拟电压表,数字电压表具有高精度、测量准确、读数直观、使用方便等优点。 电压表的数字化测量,关键在于如何把随时连续变化的模拟量转化成数字量,完成这种转换的电路叫模数转换器(A/D)。数字电压表的核心就是A/D转换器,由于各种不同的A/D转换原理构成了各种不同类型的DVM。一般来说,A/D转换的方式可分为两类:积分式和逐次逼近式。

积分式A/D转换器是先用积分器将输入的模拟电压转换成时间或频率,再将其数字化。根据转化的中间量的不同,它又分为U-T(电压-时间)式和U-F(电压-频率)式两种。

逐次逼近式A/D转换器分为比较式和斜坡电压式,根据不同的工作原理,比较式又分为逐次比较式及零平衡式等。斜坡电压式又分为线性斜坡式和阶梯斜坡式两种。

在高精度数字电压表中,常采用由积分式和比较式相结合起来的复合式A/D转换器。本设计以AT89S52单片机为核心,以逐次逼近型A/D转换器ADC0809、四位一体共阳数码管为主体,构造了一款简易的数字电压表,能够测量0~5V直流电压,最小分辨率0.02V。

关键词:数字电压表;AT89S52;A/D转换器;共阳数码管

ABSTRACT

The basic working principle of the digital voltmeter is the use of

A/D conversion will be converted into digital signals to be measured signal, through the corresponding conversion hou will test results in digital form displayed A voltmeter. Compared with the general simulation voltmeter, digital voltmeter with high precision, accurate measurement, direct reading and convenient use.

Digital voltmeter measurement, the key lies in how to convert the analog of continuous change at any time into the digital quantity, complete the conversion circuit is called AD converter (A/D). The core of the digital voltmeter is A/D converter, because of the different kinds of A/D conversion principle constitutes the different types of DVM. In general, A/D conversion mode can be divided into two categories: integral and successive approximation.

Integral type A/D converter integrator is used first input analog voltage is converted into time or frequency, digitizing them again. According to the change in the middle of the quantity is different, it is divided into U - T (voltage, time) and U (voltage - frequency) - F type two kinds.

Successive approximation A/D converter is divided into comparison and slope voltage type, according to the working principle of the different comparison is divided into successive comparison and zero balance type, etc. Slope is divided into linear slope type and voltage type ladder slope type two kinds.

In the high precision digital voltmeter, often adopted by the integral type and comparison to the combination of multiple A/D converter. AT89S52 MCU as the core, this design type with successive approximation A/D converter ADC0809 and four one Yang digital tube as the main body, constructed A simple digital voltmeter, can measure 0 ~ 5 V dc voltage, minimum resolution of 0.02 V.

Keywords digital voltmeter;at89s52;a/d converter;a total of yang digital tube

1 数字电压表的功能要求说明及设计方案介绍

1.1 设计课题任务

(1)该数字电压表能够测量电压范围0—5V,测量精度小数点后两位。 (2)该电压表上电或按键复位后能自动显示系统提示符“P.”,进入测量准备状态。

(3)按测量开始键开始测量,并将测量值显示在显示器上。 (4)按测量结束键则自动返回“P.”状态。

1.2 功能要求说明

电路通电或按复位键时,显示“ P.\"字符,再按功能键键1,进入电压测试状态,通过改变电位器的阻值改变模拟输入电压,不断的将模拟电压转换成数字量,通过数码管显示出所测得的模拟电压。再按功能键键2退出电压测试状态,同时显示字符“P.”。在改变电压时,能够准确的侧量出电压的变化值。

1.3 数字电压表设计方案

本次课程设计采用常用的52单片机作为控制芯片,ADC0809芯片的CLK时钟信号脚接单片机的P1.4脚,数据输出口接单片机的P3口,地址线接低电平,IN0接输入电压(即测试电压),ADC0809通过采样进来的数据信号送给单片机,再通过VinDVREF255计算可以得到电压值,再通过显示电路,将所求得的电压值显示出来。通过调节连接IN0引脚的点位器及可以调节电压是电压在0~5V变化。其硬件流程图如图1所示:

1

电源电路复位电路下载电路 数据 段控四位数码管 位控 待测电压ADC0809 控制线AT89S52振荡电路键盘电路

图1硬件流程图

1.4 数字电压表工作原理

数字电压原理:这里主要是利用ADC0809模数转换芯片,ADC0809芯片的基准电压脚外接电压为5V,则最大可以测得的电压为5V,ADC0809芯片的模拟输入脚通过电位器接5V电压,进行模拟采样,通过调整电位器的值改变模拟量。输入的模拟量经过ADC0809芯片的内部电容逐次逼近A/D转换器,转换成8为二进制数, D为转化的数字量,再通过 VINDVREF/255可以求得模拟电压,最后通过数码管就可将所测得电压显示出来。

ADC0809是8位逐次逼近型A/D转换器,它是由一个8路的模拟开关、一个地址锁存译码器、一个A/D 转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8 路模拟量分时输入,共用A/D 转换器进行转换。些A/D转换器是的特点是8位精度,属于并行口,如果输入的模拟量变化大快,必须在输入之前增加采样电路。

2

2 硬件电路设计

2.1 数字电压表各模块功能简要介绍

2.1.1 振荡电路

振荡电路通过这两个引脚外并接石英晶体振荡器和两只电容(电容和一般取33pF),这样就构成一个稳定的自激振荡器。为单片机提供时钟信号。 2.1.2 复位电路设计

按键复位具有上电复位功能,若要复位,只要按图中的RESET键,电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。上电复位电路要求接通电源后,通过外部电容充电来实现单片机自动复位操作。上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。RERST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。 2.1.3 键盘接口电路

独立式键盘:独立式键盘中,每个按键占用一根I/O口线,每个按键电路相对独立。I/O口通过按键与地相连,I/O口有上拉电阻,无键按下时,引脚端为高电平,有键按下时,引脚电平被拉低。I/O口内部有上拉电阻时,外部可不接上拉电阻。 2.1.4 显示电路

它的连接方式分别为数码管的位控制线接单片机的P2口, 段控制线接单片机的P0口,通过段控与位控的交替控制实现数码管的动态显示。 2.1.5 AD转换电路

ADC0809是8位逐次逼近型A/D转换器,它是由一个8路的模拟开关、一个地址锁存译码器、一个A/D 转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8 路模拟量分时输入,共用A/D 转换器进行转换。些A/D转换器是的特点是8位精度,属于并行口,如果输入的模拟量变化大快,必须在输入之前增加采样电路。其中各引脚的功能如下: IN0~IN7:模拟量输入通道。

A、B、C:地址线,模拟通道的选择信号。C为高位地址,A为地位地址。 ALE: 地址锁存允许信号。对应ALE上跳沿A、B、C地址状态送入地址锁存器中

3

START: 转换启动信号。START上跳沿时所有内部寄存器清0;START下跳沿时,

开始启动A/D转换;在A/D转换期间,START应保持低电平。

D7~D0: 数据输出线。为三态缓冲输出形式,可以与单片机的数据线直接相连。

D0为最低位,D7为最高位。

OE: 输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。

OE=0输出呈高阻态;OE=1输出转换得到的数据。

EOC: 转换结束信号。EOC=0,正在转换;EOC=1,转换结束。使用中该状态信

号既可以作为查询状态标志,又可以作为中断请求信号使用。

模拟电压转换成数字量后计算公式如式1.1所示:

VINDVREF/255………………………………1.1 2.1.6 ADC0809的简介

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

通8个模拟通道,允许8 路模拟量分时输入,共用A/D 转换器进行转换。 2.1.7 AT89S52的简介

AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K 系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。

2.2 原理图PCB图及元器件清单

2.2.1 原理图

整板电路原理图见附录A 2.2.2 PCB图

PCB图见附录B

2.3 元器件面板布置图

元器件面板布置图见附录C

2.3.1元器件清单 元器件清单见附录D

4

3 软件设计

3.1 单片机资源使用

在本次设计中像电路键盘用到了P1口,其中P1.0和P1.1口作为键盘的输入,AD转换电路的控制线用了P1、P3口线,显示电路用到了P0和P2口。

3.2 单片机软件模块设计

3.2.1 判键子程序

对于独立式键盘判键,首先看有键按下不,如果有键按下则延时一会儿,在判断是否真的有键按下,如果确实有键按下,在判键释放,最后执行键功能程序。判键子函数的流程框图如图4所示:

图4判键子程序流程图

5

3.2.2 显示子程序

对于数码管的显示,我采用的是四位一体的共阳数码管,显示时是通过先送位控再送段代码实现数码管的动态显示。显示子函数的流程框图如图5所示:

图5显示子程序流程图

3.2.3 电压转换程序

根据ADC0809芯片地址线分配情况,将模拟量电压值输入选中的地址通道,利用给定的上跳沿与下跳沿的转变实现A/D转换,查询EOC信号的状态判断是否转换完成,用OE信号控制输出转换的到得数据。电压转换子函数的流程图如图6所示:

6

图6电压转换程序流程图 3.2.4 总程序流程框图 主程序的流程框图如图7所示:

图7主程序的流程框图

3.3 程序清单

程序清单见附录E

7

4 电压表仿真结果及设计结论

4.1 电压表使用说明

首先开机进入电压测试等待状态,数码管显示字符“P.\"当键1按下时,单片机进入电压测量状态,可以测量的电压范围0--5V电压;当键2按下时退出电压测量状态,进入等待状态。

4.2 电压表仿真结果及误差分析

表2电压表测试结果

次数 1 2 0.55 0.55 0.55

3 0.95 0.93 0.93

4 1.87 1.86 1.86

5 2.00 2.00 2.00

6 3.46 3.45 3.45

7 4.12 4.11 4.11

8 4.50 4.49 4.49

9 5.00 4.99 4.99

理论值/V 0.05 实际测量值/V 仿真值

0.05 0.05

4.3 电压表设计结论

通过多次的反复测试,发现电压的实际测量值与实际值见差别较小,大约在0~0.02V之间,实际电压值比测得的电压值大。

制作的数字电压表中,所测得的数字电压值和实际电压值相差0.02V,这个误差可能由于单片机能够精确的小数为小数点后的6位,及小数点后的7位之后的全部去掉,会引起一定误差。实验误差在允许范围之内,符合设计要求。

4.4 设计体会

对于此次课程设计,有许多的感触与体会,遇到的难题多,学习到的知识也就更多。

第一,硬件电路遇到了ADC0809无内部时钟,需外接外部时钟,开始不知道如何处理,后来查阅了相关资料,知道可以在程序中提供时钟信号,大大降低了硬件电路的复杂度。

第二,由于PROTUES里面没有ADC0809,所以仿真时候使用ADC0808,导致在实物输入线连接时将输入信号线接反,数码管无法正常显示,最后经过检查改正了错误。

第三,则是解决程序设计的问题,而程序设计是一个很灵活的东西,它反映

8

了你解决问题的逻辑思维和创新能力,此次课程设计在程序方面遇到的最大问题就是怎样编写数据处理程序才能使转换精度尽可能高、误差尽可能小,仿真时是利用电位器分压值提供的输入电压量,变阻器的滑动都是等值跳变的,并不能连续的采集电压信号,所以仿真结果与实物测量时的结果差别较大,后来多次修改程序,在数据处理函数编写中加入了数据修正调整后使转换精度进一步提高。

第四,在一个课题中,要设计一个成功的电路,必须要有耐心,要有坚持的毅力。在整个电路的设计过程中,重要的是各个单元电路的连接及电路的细节设计上,如在多种方案的选择中,我们仔细比较分析其原理以及可行的原因。这就要求我们对硬件系统中各组件部分有充分透彻的理解和研究,并能对之灵活应用。完成这次设计后,我在书本理论知识的基础上又有了更深层次的理解。

第五,在本次设计的过程中,我还学会了高效率的查阅资料、运用工具书、利用网络查找资料。我发现,在我们所使用的书籍上有一些知识在实际应用中其实并不是十分理想,各种参数都需要自己去调整,这就要求我们应更加注重实践环节。

4.5 教学建议

记得这个学期的第一节课就是单片机课,课堂上王老师的那句话“这个学期我会让大家过得充实”让我记忆特别深刻。确实,这句话得到了验证,这个学期我们过得很充实。虽然有时我们感觉很累,但就是在老师这种严格的要求下我们学到很多东西。

在此次课程设计,也正是由于老师渊博的知识、严谨的治学态度和敏锐的分析能力,使我们的课程设计顺利完成。以下是我对老师的几点教学建议:

(1)、希望老师继续坚持严师出高徒的原则。

(2)、希望老师在日后的教学中,多加强对我们动手能力的锻炼。

9

结束语

通过这次课程设计,加强了我们动手、思考和解决问题的能力。同时我觉得做课程设计也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对其在电路中的使用有了更多的认识。

通过这段时间的设计,终于完成了基于单片机的数字电压表的设计。虽然我们在做的时候遇到一些困难。在本次设计的过程中,我们发现了很多的问题,虽然以前还做过这样的设计,

但这次设计真的让我们长进了很多,单片机的设计重点就在于软件程序的设计,需要有很巧妙的编程方法。在编程时,由于粗心大意,有些语句看似没问题,可就是不出效果,经仔细揣摩修改后,程序才正常运行。学习单片机更是如此,程序只有在经常的写与读的过程中才能提高。

从这次的设计中,我们真正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中;理论指导实践,在实践中对理论知识加以理解。还要有独立思考能力和不耻下问的精神,个人能力固然重要,集体的力量更是伟大的。

总之对我们而言,专业能力得到了加强,动手能力得到了提高,实在受益匪浅。

10

致谢

首先在此我要感谢本学期的单片机技术的授课教师王韧老师,他在本学期的教课过程中一丝不苟,严格要求我,在本课程中,他教会我们如何学单片机,单片机的内部结构,汇编指令,单片机扩展编址,在这次课程设计中,你给我们指出存在的各种问题与不足之处,培养我们认真规范的态度,我真的学到了很多,在此我对他表示真挚的感谢以及崇高的尊敬!在此预祝王老师身体健康工作顺利!

11

参考文献

[1] 李广第,朱月秀,冷祖祁.单片机基础[M].北京:北京航空航天大学出版社,2007.6

LiGuang first, ZhuYueXiu, LengZuQi. Single chip microcomputer based [M]. Beijing: Beijing university of aeronautics &astronautics press, 2007.6

[2] 康华光.电子技术基础 模拟部分(第五版) [M].北京:高等教育出版社,2006

kang uh guano. Electronic technology foundation simulation part (fifth edition) [M]. Beijing: higher education press, 2006

[3] 阎石,数字电子技术基础(第五版) [M].北京:高等教育出版社,2006

YanShi, digital electronic technology foundation (fifth edition) [M]. Beijing: higher education press, 2006

[4] 邱光源.电路(第五版) [M].北京:高等教育出版社,2006

QiuGuangYuan. Circuit (fifth edition) [M]. Beijing: higher education press, 2006

12

附录 附录A

原理图

13

附录B

PCB布线图

14

附录C

元器件分布图

15

附录D

元器件清单 名称 电阻 电阻 电阻 电阻 电容 电容 发光二极管 按键 开关 下载口 晶振 排阻 单排针 电位器 芯片 芯片 数码管 脚座 脚座

规格 470Ω 4.7K 200Ω 1K 33pF 22μF 12MHz W503 AT89S52 ADC0809 4位一体 40 28

数量 8个 1个 1个 1个 2个 1个 1个 2个 1个 1个 1个 4排 若干 1个 1块 1块 1块 1个 1个

16

附录E

程序清单

;*****************************************************************************: ;课程设计名称:单片机数字电压表

;设计者: 电气本1103班 肖化彪 ;设计日期: 2014年5月7日

;*****************************************************************************; ;设计要求:测量量程0~5V。精度0.01V。上电或复位显示屏显示“P.”。

;进入测量准备状态,按测量开始键则开始测量,并将测量值显示在显示器上, ;按测量结束键,结束测量,显示屏显示“P.”。

;*****************************************************************************; SHUJU EQU 70H LED_0 EQU 71H LED_1 EQU 72H LED_2 EQU 73H CLK BIT P1.4 ST BIT P1.5 EOC BIT P1.6 OE BIT P1.7

ORG 0000H LJMP MAIN ORG 0030H MAIN:

LCALL XIANSHI_P ;上电或按键复位后显示\"P.\" LCALL KEY ;调用键操作 AJMP MAIN START:

LCALL TEST ;数据采集函数 LCALL CHULI ;数据处理函数 LCALL DISP ;显示函数 LCALL KEY ;调用键操作 SJMP START KEY:

LCALL JIANSAO ;键操作 LCALL ANJIAN RET ANJIAN:

JB 20H.0,START ;按测量开始键则开始测量

17

/***************ADC0809采集函数*************/ TEST:

CLR ST CLR OE SETB ST

CLR ST ;ST端口下降沿,开始转换 LOOP0:

SETB CLK ;12M晶振I/O口提供ADC0809工作的时钟频率 CLR CLK

MOV SP, #2FH CLR EA

MOV DPTR, #0EFF8H MOVX @DPTR, A JB P1.2 $ MOV A, @DPTR

MOV P3,#0FFH ;P3端口读数据,需先给高电平

MOV A,P3 CLR OE

MOV SHUJU, A ;存储数据到地址70H RET

/**************数据处理函数***********/ CHULI:

MOV A, SHUJU MOV B, #51

DIV AB ;余数在B MOV LED_0,A ;储存整数位 CLR F0

MOV A, B SUBB A, #1AH ;A减去26,即余数与26相比较 MOV F0, C ;余数<26,不调整 MOV A, #10 MUL AB

MOV B, #51 DIV AB

JB F0, L00P1

ADD A, #5 ;若AB相除后B>=26,十分位加五 L00P1:

MOV LED_1,A ;储存小数点后一位 CLR F0

18

JB 20H.1,MAIN RET

;按测量结束键则自动返回\"P.\"状态

MOV A, B

SUBB A, #1AH MOV F0, C MOV A, #10 MUL AB

MOV B, #51 DIV AB

JB F0, L00P2 ;F0=1时,转移 ADD A, #5 ;若AB相除后B>=26,百分位加五 L00P2: MOV LED_2,A ;储存小数点后两位 RET

/***************显示函数*******************/

DISP: MOV R1, #03H ;循环三次 MOV R2, #08H

MOV R0, #71H ;存放显示初始地址 XIANSHI:

MOV DPTR, #TAB ;数码管位控 MOV A, @R0 MOVC A, @A+DPTR

CJNE R2, #08H, DIAN

ANL A, #7FH ;整数位数码管显示小数点 DIAN: MOV P2, R2

MOV P0, A ;数码管段选 LCALL DELAY ;延时1MS MOV A, R2

RR A ;循环右移 MOV R2, A

INC R0 ;选取下一个地址 DJNZ R1, XIANSHI RET XIANSHI_P:

MOV P2, #0F7H MOV P0, #0CH RET

/***************键操作函数*******************/ JIANSAO: LCALL KEYCHULI JZ EXIT LCALL DELAY

LCALL KEYCHULI JZ EXIT MOV B, 20H KEYSF: LCALL KEYCHULI

19

JZ KEY0 LCALL DELAY LJMP KEYSF KEY0: MOV 20H, B

EXIT: RET

KEYCHULI:

PUSH PSW CLR RS1 SETB RS0 SETB P1.0 SETB P1.1

MOV A, P1 CPL A

ANL A, #03H MOV 20H, A CLR RS1 CLR RS0

POP PSW RET

/***********共阳十六进制数段码表***************/ TAB:

DB 0C0H;0 DB 0F9H;1 DB 0A4H;2 DB 0B0H;3 DB 099H;4 DB 092H;5 DB 082H;6 DB 0F8H;7 DB 080H;8 DB 090H;9

/***************延时函数*******************/ DELAY: ;误差 0us MOV R6,#01H DL0:

MOV R5,#2FH DJNZ R5,$ DJNZ R6,DL0 RET END

20

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