哗驼汽车网
您的当前位置:首页高性能高精度数字电压表毕业设计

高性能高精度数字电压表毕业设计

来源:哗驼汽车网


摘要:
本文介绍的是数字电压表的发展背景和利用单片机,A/D转换芯片结合的方法设计一个直流数字电压表。它的具体功能是:最高量程为200V,分三个档位量程,即2V20V200V,可以通过调档开关来实现各个档位。当测得电压的数值小于1V时,系统会自动的将电压数值转换为以mV为电压单位的电压值。并且通过按键的方法能够测得后五秒的平均电压值。

单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(CPU)。随着单片机技术的飞速发展,各种单片机蜂拥而至,单片机技术已成为一个国家现代化科技水平的重要标志。

单片机可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化。现在单片机控制范畴无所不

单片机的应用领域越来越广泛。
在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,
技能。

本课题主要解决A/D转换、数据处理及显示控制等三个模块。控制系统采用ATC52单片机,A/D转换采用ADC0809

关键字介绍:单片机,ATC52A/D转换,ADC0809,数据处理。



Abstract

ChipProcessor is a kind of chip of integrated circuit, adopt to exceed

large-scaletechnology have data handling ability( such as arithmetic

manipulation,logic is operational , data deliver and suspend handling)

tinyprocessor ( CPU ). Along with Chip Processor technology develop fast,

variousChip Processor come in great numbers, Chip Processor technology

hasbecome a important sign of the national modern level of science and

technology.

ChipProcessor can complete modern industrial control alone the

intelligentcontrol function that will beg, this is the feature of biggest

ChipProcessor. When Chip Processor control system can replace, using the

controlsystem that complex electronic line or digital circuit forms can

softwarecontrol come to realize, and can realize intelligence to melt.

communicate product, electric home appliances, intelligent instrument
Now, Chip Processor control category is omnipresent , for instance
extensive. appearance,

Graduatethe program of design is "thedesign of simple digital

volmeter".Check on our condition for the aspects such as Chip Processor

technologyand programming ability mainly. Observe actual programming

abilityas well as the ability of independent analysis and design Chip

Processor.

Thisprogram solves the data handling and conversion of A/D mainly

andshows the 3 modulars such as control. Control system adopts ATC52

onlyflat machine, the conversion of A/D adopts ADC0809.

Keywordintroduction: Chip Processor, ATC52, A/D chanData handle.



目 录

摘要.....................................................................................IAbstract..................................................................................II目录...................................................................................III第一章数字电压表简介......................................................................4第二章数字电压设计两种方案简介...........................................................62.1由数字电路及芯片构建...............................................................62.2 由单片机系统及A/D转换芯片构建.....................................................6第三章单片机简介及本设计单片机的选择.....................................................83.1常用单片机的特点比较及本设计单片机的选择...........................................83.2本设计使用的单片机的简介...........................................................9第四章各种显示器件的介绍和选择...........................................................104.1常用显示器件简介..................................................................104.2 1602液晶的参数资料...............................................................11第五章模数(A/D)转换芯片的选择.........................................................145.1常用的A/D芯片简介................................................................145.2 模数(A/D)芯片TLC2543的资料.....................................................14第六章总体设计..........................................................................17

第七章 硬件电路系统模块的设计.............................................................18 7.1 单片机系统........................................................................18
6.1 技术要求..........................................................................17 6.2 设计方案..........................................................................17

第八章系统软件的设计....................................................................238.1汇编语言和C语言的特点及选择......................................................238.2主程序设计........................................................................23第九章系统的调试.........................................................................359.1硬件调试..........................................................................359.2软件调试..........................................................................35第十章总结与展望.........................................................................37参考文献..................................................................................38附录1xxxxxx.............................................................................39附录2bbbbb..............................................................................40



第一章绪论-数字电压表简介
数字电压表出现在50年代初,60年代末发起来的电压测量仪表,简称DVM,它采用的是数字化测量技术,把连续的模拟量,也就是连续的电压值转变为不连续的数字量,加以数字处理然后再通过显示器件显示。这种电子测量的仪表之所以出现,
一方面是由于电子计算机的应用逐渐推广到系统的自动控制信实验研究的领域,提出了将各种被观察量或被控制量转换成数码的要求,即为了实时控制及数据处理的需要;另一方面,也是电子计算机的发展,带动了脉冲数字电路技术的进步,为数字化仪表的出现提供了条件。所以,数字化测理仪表的产生与发

展与电子计算机的发展是密切相关的;同时,为革新电子测量中的烦锁和陈旧方
式也催促了它的飞速发展,
如今,数字电压表已绝大部分已取代了传统的模拟指针式电压表。因为传统如今,它又成为向智能化仪表发展的必要桥梁。
干扰能力强,可扩展性强等优点已被广泛的应用于电子及电工的测量,工业自动

化仪表,自动测试系统等智能化测量领域。显示出强大的生命力。

数字电压表最初是伺服步进电子管比较式,其优点是准确度比较高,但是采样速度慢,重量达几十公斤,体积大。继之出现了斜波式电压表,它的速度方面稍有提高,但是准确度低,稳定性差,再后来出现了比较式仪表改进逐次渐近式结构,它不仅保持了比较式准确度高的优点,而且速度也有了很大的提高,但它有一缺点是抗干扰能力差,很容易受到外界各种因素的影响。随后,在斜波式的基础上双引伸出阶梯波式,它的唯一的进步是成本降低了,可是准确宽,速以及抗干扰能力都未能提高。而现在,数字电压表的发展已经是非常的成熟,就原理来讲,它从原来的一,二种已发展到多种,在功能上讲,则从测单一参数发展到能测多种参数;从制作元件来看,发展到了集成电路,准确度已经有了很大的提高,精度高达1NV;读数每秒几万次,而相对以前,它的价格也有了降低了很多。


目前实现电压数字化测量的方法仍然模-数(A/D)转换的方法。而数字电压表种类繁多,型号新异,目前国际仍未有统一的分类方法。而常用的分类方法有如下几种:
1 按用途来分:有直流数字电压表,交、直流数字电压表,交直流万用 表等。

2

按显示位数来分:有4 位,5 位,6 位,7 位,8 位等。

3

按测量速度来分:有低准确度,中准确度,高准确度等。

4

按测量速度来分:有低速,中速,高速,超高速等。

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

下几类:比较式,电压——时间变换式,积分式等。

在电量的测量中,电压、电流和频率是最基本的三个被测量。其中,电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,

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



第二章数字电压设计两种方案简介

设计数字电压表有多种的设计方法,方案是多种多样的,由于大规模集成电

路数字芯片的高速发展,各种数字芯片品种多样,导致对模拟数据的采集部分的

不一致性,进而又使对数据的处理及显示的方式的多样性。又由于在现实的工作

生活中,电压表的测量测程范围是比较大的,所以必须要对输入电压作分压处理,

而各个数据处理芯片的处理电压范围不同,则各种方案的分段也不同。下面介绍

两种数字电压表的设计方案。

21 由数字电路及芯片构建
这种设计方案是由模拟电路与数字电路两大部分组成,模拟部分包括输入放

规定的时序将A/D转换器中个组模拟开关接通或断开,保证A/D转换正常进行。

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

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

都是采用纯硬件电路。很难将其在原有的基础上进行扩展。

22由单片机系统及A/D转换芯片构建

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

压表。由于单片机的发展已经成熟,利用单片机系统的软硬件结合,可以组装出

许多的应用电路来。此方案的原理是模数(A/D)转换芯片的基准电压端,被测

量电压输入端分别输入基准电压和被测电压。模数(A/D)转换芯片将被测量电

压输入端所采集到的模拟电压信号转换成相应的数字信号,然后通过对单片机系


统进行软件编程,使单片机系统能按规定的时序来采集这些数字信号,通过一定

的算法计算出被测量电压的值。最后单片机系统将计算好了的被测电压值按一定

的时序送入显示电路模块加以显示。

此方案不仅能够继承上一种方案的各种优点,还能改进上一种设计方案设计

不灵活,难与在原基础上进行功能扩展等不足。





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

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

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

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

系列单片机,AVR单片机,PIC单片机。

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

AVR单片机是atmel公司推出较新的单片机,它的显著特点是:高性能,低功能,高速度,指令单周期为主,但性格方面比51单片机要高。有专门的I/O方向寄存器。虽然有转强的驱动电压,但I/O口使用不比51单片机方便。




PIC单片机系列是美国微芯公司的产品,也是市面上增长最快的单片机之一,

属精简指令集单片机,其特点是:高速度,高性能,但在性格方面比51单片机要高,也有专门的I/O方向寄存器,I/O口使用不比51单片机方便。

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

32本设计使用的单片机的简介

本设计中选用是51系列的ATC52,它是低电压、低功耗、高性能的CMOS8位单片机,片内含8KB的可反复擦写的只读程序存储器和256B的随机存取数据存储器,32I/O口线,316位定时/计数器,片内振荡器及时钟电路,并与MCS-51系列单片机兼容。在设计中,单片机起着连接硬件电路与程序运行及存储数据的任务,一方面,它将A/D转换器、显示器和语音芯片等通过I/O口地址线和数出,从而实现册电压的功能。
另一方面,它将用户下载的程序通过控制总线控制数据的输入输




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

41常用显示器件简介

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

数码管是最常用的一种显示器件,它是由几个发光二极管组成的8 字段显示
1602 液晶,128 液晶等。
命长。但数码管只能是显示0——9 的数据。不能够显示字符。这也是数码管的

不足之处。

LED点阵显示器件是由好多个发光二极管组成的。具有高亮度,功耗低,视角大,寿命长,耐湿,冷,热等特点,LED点阵显示器件可以显示数字,英文字符,中文字符等。但用LED点阵显示的软件程序设计比较麻烦。

1602液晶是工业字符型液晶,能够同时显示16*232个字符。1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。使用时直接编写软件程序按一定的时序驱动即可。

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

128液晶也是一种工业字符型液晶,它不仅能够显示1602液晶所可以显示的字符,数字等信息,而且还可以显示8*4个中文汉字和一些简单的图片,显示信息也非常的清楚。使用时也直接编写软件程序按一定的时序驱动即可。不过它的价格比1602液晶贵了很多。

在本设计中,我们只需要显示最后电压的数字值和电压的单位,综合上面各种显示器件的特点:数码管只能显示数字,不能显示单位字符,不符合本设计的要求。而点阵显示器件驱动显示软件程序编写麻烦,占用的引脚相对也较多。也不是理解的显示器件。所以在本设计中,我们考虑用液晶显示器件,虽然128液晶比1602液晶的功能强,不过在价格方面却贵了好多。而1602液晶也足够满足本设计的需要。因此,在本设计实验我们选择1602液晶显示器件。

421602 液晶的参数资料

的各方面参数:
我们选择了1602 液晶做为本设计的显示模块的显示器件。以下是1602 液晶


2.基本操作时序:



1.读状态:输入:RS=0RW=1E=1。输出:D0-D7为状态字
2.写状态:输入:RS=0RW=0D0-D7为指令码,E为高脉冲。输出:无3.读数据:输入:RS=1RW=1E=1。输出:D0-D7为数据。

4.写数据:输入:RS=1RW=0D0-D7为数据,E为高脉冲。输出:无

3.状态字说明

STA7

STA6

STA5

STA4

STA3

STA2

STA1

STA0

STA0-6

当前数据地址指针的数值


STA7

读写操作使能

1:禁止 0:允许

4.指令的说明。

显示模式设置

指令码

功能

0

0

1

1

1

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-27H40H-67H

设置数据地址指针

01H

显示清屏:1,数据指针清0

2,所有显示清0

02H

显示回车:数据指针清0





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

在本设计中,模数(A/D)转换模块是一个重要的模块,它关系到最后数电压表电压值的精确度。所以,A/D芯片的选择是设计过程中一个很重要的环节。

51常用的A/D芯片简介

常用的A/D 芯片有AD0809AD0832TLC2543C 等几种。下面简单介绍一下这三种芯片。
AD0809 8 位逐次逼近型A/D 转换器,它是由一个8 路的模拟开关、一个
A/D 转换器是的特点是8 位精度,属于并行口,如果输入的模拟量变化大

快,必须在输入之前增加采样电路。

AD0832也是8位逐次逼近型A/D转换器,可支持致命伤个单端输入通道和一个差分输入通道。它易于和微处理器接口或使用;可满量程工作;可用地址逻辑多路器选通各输入通道。

TLC2543C12位开关电容逐次逼近A/D转换,每个器件有三个控制输入端,片选,输入/输出时钟以及地址输入端。它可以从主机高速传输转换数据。它有高速的转换,通用的控制能力,具有简化比率转换,刻度以及模拟电路与逻辑电路和电源噪声隔离,耐高温等特点。

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

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

度为12 位的TLC2543 芯片。



52模数(A/D)芯片TLC2543的资料
综合本设计的各方面考虑,我们选了TLC2543模数转换芯片。下面就介绍此芯片的各方面资料。

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


引脚说明:


各引脚的使用详细介绍。

1AIN0-AIN1011个模拟信号输入由内部多路选器选择。对4.1MHZI/Oclk,驱动源阻抗必须小于或等于50欧并且能够将模拟电压由60PF的电容来其斜率。

2.在CS端的一个由高低低变化将复位内部计数器并控制使能dataout,data input I/Oclk。一个由低至高的变化将在一个设置时间内禁止datainputI/Oclk.

3.串行数据输入端datainput 是一个4位的串行地址选择下一个即将被转换的所需的模拟输入或测试电压。串行数据以MSB为前导并在I/O clk 的前4个上升沿被移入。在4个地址位被读入地址寄存器后,I/Oclk 将剩下的几位依次输入。

4Data out CS 为高时处于高阻抗状态,而当CS 为低时处于激活状态。CS
相应的逻辑电平,I/O clk 的下一个下降沿将根据下一个MSB/LSB data
旦有效,按照前一次转换结果的MSB/LSB 值将data out 从高阻抗状态转变成

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

7I/Oclk 端串行输入并完成以下四个功能:第一,在I/Oclk 的前8个上升沿,它将8个输入数据信键入输入数据寄存器。在第4个上升沿之后为多路器的地址。第二,在I/Oclk 的第4个下降沿,在选定的多路器的输入端上的模拟输入电压开始和电容器充电并继续到I/Oclk 的最后一个下降沿。第三,它将前一次转换的数据的其余11位移出dataout 端。在I/Oclk 的下降沿时数据变化。第四,在I/Oclk 的最后一个下降沿它将转换的控制信号传送到内部的状态控制位。

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

差。

9REF-端通常接地。






第六章总体设计

61技术要求

1)最高量程为:200V

2)分为三档量程:2V20V200V。可以通过调档开关实现各档位。最高精度为

0.01mv

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

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

62设计方案

根据上述,

元器件是:ATC51 单片机,TLC2543模数转换芯片,1602液晶显示器,开关, 我们选择单片机与A/D转换芯片结合的方法实现本设计。 使用的基本


1602液晶显示模块

A/D转换模块

单片机系统模块

输入电路模块

按键模块



第七章硬件电路系统模块的设计根据上述选择的各元器件,各电路模块的电路图如下描述。

71单片机系统

单片机最小系统包括晶振电路,复位电路,电源。其原理图如下:




此模块中,单片机的晶振是12MHZC1C2的电容是10UFC3可选1-10UF


R1 电阻为1K



72输入电路

由于输入电路的电压比基准电压(2V)高很多,因此在输入电路必须加电压衰减器。衰减电路可由开关来选择不同的衰减率,从而切换档位。

则完整输入电路如下:


通过计算,可知设计衰减器用的电阻R2R3R4分别为:9M900K100K
控制档位的开关是双开关的,目地是能够使单片机CPU自动识别档位,即可用相
应的档位的数据转换的算法计算出正确的电压值。被测电压输入端、整理过的模
拟电压输入端,开关与单片机的连接如图所示。

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

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



74 1602 液晶与单片机连接



7.5 键盘与单片机的连接如下



此键盘的一端与单片机的P2.0口连接,另一端接地。原理图如下所示。

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





第八章系统软件的设计

81汇编语言和C语言的特点及选择
本设计是硬件电路和软件编程相结合的设计方案,选择合适的编程语言是一个重要的环节。在单片机的应用系统程序设计时,常用的是汇编语言和C语言。汇编语言的特点是占用内存单元少,执行效率高。执行速度快。但它依赖于计算机硬件,程序可读性和可移植性比较差。而C语言虽然执行效率没有汇编语言高,但语言简洁,使用方便,灵活,运算丰富,表达化类型多样化,数据结构类型丰富,具有结构化的控制语句,程序设计自由度大,有很好的可重用性,可移植性等特点。

由于现在单片机的发展已经达到了很高的水平,内部的各种资源相当的丰富,CPU的处理速度非常的快。用C语言来控制单片机无疑是一个理想的选择。所以在本设计中采用C语言编写软件程序。

82 主程序设计

编写延时模块程序。

编写驱动1602液晶显示模块程序。
编写驱动A/D转换模块程序。
编写键盘扫描模块程序。

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





开始

对液晶,定
时器初始

A/D转换

数据转换
显示5秒键盘判断 的平均电 压值

显示瞬时 3
电压值 清屏

#define uchar unsigned char
#define uint unsigned int
#definekey_state0 0 //键盘扫描的各个状态
#definekey_state1 1
#define key_state2 2
#define key_state3 3

sbitrs=P1^2;//1602 液晶写命令/数据标志,0时写命令sbitrw=P1^1;//1602 液晶写入/读出标志,0时写入数据

sbit ep=P1^0;
sbit input=P1^4;



sbitoutput=P1^3;
sbitcs=P1^5;
sbitclk=P1^6;
sbitkey=P2^0;
sbitflag_1=P2^1;//定义电压表档位相关标志
sbitflag_2=P2^2;
sbitflag_3=P2^3;
sbitflag_4=P2^4;

ucharcode tab0[]="V "; //显示的单位及有关的字符
ucharcode tab1[]="MV";
ucharcode tab2[]="Power:";
ucharcode tab3[]="Aver_V:";//平均电压值标志符

uchar t;


{


for(x=z;x>0;x--)
for(y=10;y>0;y--);
}

voidwrite_com(uchar com)//1602液晶写命令函数
{
rs=0;
P0=com;
delay(5);

ep=1;
delay(5);




ep=0;
}

voidwrite_dat(uchar dat)//1602液晶写数据函数
{
rs=1;
P0=dat;
delay(5);
ep=1;
delay(5);
ep=0;
}

{



rs=0;
rw=0;

write_com(0x38);
delay(1);
write_com(0x0c);
delay(1);
write_com(0x06);
delay(1);

write_com(0x01);
delay(1);




}

voidinit_timer0()//定时计数器0初值化函数,
{
TMOD=0x01;//方式一
TH0=(65536-50000)/256;//50ms中断一次
TL0=(65536-50000)%256;
IE=0x82;//打开中断
TR0=0;//定时器首先不可工作

}

void

{
uintadd;
uchari,a[5];

switch(x)
{
case0:add=0x80;break;

case1:add=0x80+0x40;break;

}



add=add+y;

write_com(add);
for(i=0;i<5;i++)
{
a[i]=dat%10;
dat=dat/10;
}

write_dat(a[4]+0x30);
write_dat(a[3]+0x30);
write_dat(a[2]+0x30);
write_dat('.');

}

write_dat(a[0]+0x30);
write_dat(a[1]+0x30);

voiddisplay_zifu(uchar x,uchar y,uchar *str)//显示字符函数,xy列开始显示
{
uintadd;
switch(x)
{
case0:add=0x80;break;
case1:add=0x80+0x40;break;

}
add=add+y;




write_com(add);
while(*str!='\0')
{
write_dat(*str);
str++;
}

}

uintread_AD(uchar con_way)//读取AD转换值操作函数{
uintdat=0;
uchari;

cs=0;
clk=0;



for(i=0;i<12;i++)
{
con_way<<=1;/*选择0通道,在输入该控制数据的同时输出前一次AD转结果*/
input=CY;

dat<<=1;

if(output)/*输出AD 转换结果*/ dat=dat|0x01;



delay(2);
clk=1;
delay(5);
clk=0;

}
cs=1;
returndat;
}

uintread_value()
{

long float dq;
long float dat_v;



dat_v=(200*dq)/4096*100;//二档,量程为200V
else if(!flag_2)
dat_v=(20*dq)/4096*100;//二档,量程为20V
else if(!flag_1)
dat_v=(2*dq)/4096*100;//一档,量程2V

returndat_v;
}



voidread_key()//键盘扫描函数
{
staticuchar key_state=0;

switch(key_state)
{
casekey_state0:
if(key==0)
key_state=key_state1;
break;
case key_state1:
if(key==0)
{

display_zifu(1,0,tab3);
TR0=1;

key_state=key_state0;
break;
casekey_state2:
if(key)
key_state=key_state0;
break;

}

}



voidmain()
{
long float dat;
longfloat dat_aver,dat1,dat2,dat3,dat4,dat5;//定义5个随机电压值变量
ucharflag;//后五秒取随机电压的标志
init_timer0();
init_1602();
delay(10);

while(1)
{

dat=read_value();



display(0,7,dat);
display_zifu(0,13,tab0);
}
else
{
display_zifu(0,1,tab2);
display(0,7,dat*1000);
display_zifu(0,13,tab1);
}

read_key();

//当键盘按下时,计算后五秒的平均电压值


if(t==20)
{
t=0;
flag++;
}

if(flag==1)
dat1=dat;
if(flag==2)
dat2=dat;
if(flag==3)
dat3=dat;
if(flag==4)

dat4=dat;
if(flag==5)



display(1,7,dat_aver);
display_zifu(1,13,tab0);
dat_aver=0;
}

if(flag==8)
{
flag=0;

write_com(0x01);
TR0=0;




}

}

}

voidtimer0() interrupt 1//定时器中断函数
{
TH0=(65536-50000)/256;//重新放入初始值
TL0=(65536-50000)%256;
t++;
}





第九章系统的调试
完成了系统的硬件设计,制作和软件编程之后,要使系统能够按设计意图正常运行,必须进行系统调试。调试分了硬件和软件调试。

9.1硬件调试
硬件调试的主要任务是排除硬件故障,其中包括设计的错误和工艺性故障等。 1)检查所设计的硬件电路板所有的器件和引脚是否正确,尤其是电源的连接 是否正确;检查各总线是否有短路的故障。检查开关/按键是否正常,是 否连接正确,为了保护芯片,应先对各IC座电位进行检查,确认无误后 再插入芯片。

2)将40芯片的仿真插头插入单片机插座进行调试,检查各接口是否满足设 计的要求,有正常的程序测试硬件电路的好坏。

9.2软件调试

同时也能发现硬件的故障。软件调试是一个模块一个模块进行的。 首先单独调试 软件调试的任务是利用开发工具进行在线仿真调试,发现和纠正程序的错误,

函数,观察在1602液晶上是否能够显示相应的字符。如果不能,则在相关的子程序中设计断点,反复调试直到能够显示。

2 检查按键模块程序。本设计的按键模块程序是用状态机的方法,可 以在key_state1状态下加一个任务,如显示一个字符在液晶上。观 察是否正确显示。

3 检查A/D转换模块程序。可以在硬件电路的输入端输入已知的几个 电压,分别观察液晶上是否显示相应的电压值。

4 检查数据的转换模块程序。可以拨动硬件电路的档位开关,输入相 应的电压,观察液晶显示的电压值是否一致。如果一致。则数据转

5

换的算法正确的。

总调试。当相应的各模块环节都正确后,可程序下载到单片机。接


上电源运行。再检查所有功能,观察是否能预期的一样。如果一样,说明设计成功完成。




第十章 总结与展望



由于本设计使用的是高效的51系列单片机作为核心的测量系统,以及高精

度,高速度,高抗干扰的A/D转换器。使得本直流电压表具体精度高,灵敏度强,

性能可靠,电路简单,成本低的特点。因为平时所需要测量的被测电压的电压值

不是一个定值,多多少少都有一些微小的变化。因此本设计为之增加了可测5

内平均电压的电压值。大大的提高了测量的准确性。使直流电压表有着较高的智

能水平。

此设计是单片机应用系统的开发性实验。通过此设计可知在单片机系统开发

过程应注意以下事项。

1)硬件的选择。选择适合设计目地的元器件是一个重要的方设计环节。不

能以元器件是否是最高性能作为选择元器件的标准。往往高性能器件的价格也是

较高的。应根据项目设计的需要选择元器件,能够满足设计需要作为标准选择元

器件。

件必须紧密配合,协调一致。应不断调整硬软件设计,以提高系统工作效率。
2)因为单片机系统设计是硬件和软件相结合的设计,所以系统和硬件和软

的活力,为电子设计更多精彩。对于数字电压表而言,功能将会越来越强大。

参考文献




1)陈洪中。数字电压表。水利电力出版社,19
2)周立功.单片机实验与实践.北京:北京航空航天大学出版社3)吴国经.单片机应用技术.北京:中国电力出版社,2003.

4)阎石.数字电子技术基础.北京:高等教育出版社,20065)谭浩强.C程序设计.北京:清华大学出版社,2005.

6)侯振鹏.嵌入式C语言程序设计.北京:人民邮电出版社,2006.

7)李光飞李良儿.单片机C程序设计.北京:北京航空航天大学出版社,20058)王港元.电工电子实践指导.江西:江西科学技术出版社,2005




附录1










2tgKQcWA3PtGZ7R4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGshLs50cLmTWN60eo8Wgqv7XAv2OHUm32WGeaUwYDIAWGMeR4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGZ7R4I30kA1DkaGtgKQcWA3PtGZ7R4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGshLs50cLmTWN60eo8Wgqv7XAv2OHUm32WGeaUwYDIAWGMeR4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGZ7R4I30kA1DkaGtgKQcWA3PtGZ7R4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGshLs50cLmTWN60eo8Wgqv7XAv2OHUm32WGeaUwYDIAWGeR4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGZ7R4I30kA1DkaGtgKQcWA3PtGZ7R4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGshLs50cLmTWN60eo8Wgqv7XAv2OHUm32WGeaUwYDIAWGMeR4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGZ7R4I30kA1DkaGtg

KQcWA3PtGZ7R4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGshLs50cLmTWN60eo8Wgqv7XAv2OHUm32WGeaUwYDIAWGMeR4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGZ7R4I30kA1DkaGtgKQcWA3PtGZ7R4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGshLs50cLmTWN60eo8Wgqv7XAv2OHUm32WGeaUwYDIAWGMeR4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGZ7R4I30kA1DkaG





显示全文