数字电压表的设计与实现

更新时间:2024-05-20 10:14:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2011届本科毕业论文(设计)

本科生毕业论文(设计)

题目:数字电压表的设计与实现

学 院 计算机科学与技术系 学科门类 计算机 专 业 嵌入式应用技术 学 号 姓 名 指导教师

2015年5月5日

合肥师范学院2011届本科生毕业论文(设计)

目 录

摘要 ................................................................................................................. 1 Abstract ...................................................................................................... 2 1 前言 ......................................................................................................... 3

1.1 课题背景 .................................................................................... 3 1.2 发展方向 .................................................................................... 3 1.3 课题的目的和意义 .................................................................. 4 1.4 本设计完成的工作 .................................................................. 5

2 总体方案设计 ..................................................................................... 6

2.1 硬件设计 .................................................................................... 6

2.1.1 电源模块........................................................................ 6 2.1.2 主控制器模块 .............................................................. 7

3 硬件实现及单元电路设计 ............................................................ 8

3.1 主控制模块................................................................................ 8

3.1.1 单片机的时钟电路与复位电路设计 ..................... 8 3.1.2 单片机STC89C52及特点概述 ................................ 9 3.1.3 主要特性........................................................................ 9 3.1.4 管脚说明........................................................................ 9 3.1.5 STC89C52结构 ........................................................... 11 3.2 单片机管脚说明 .................................................................... 11 3.3 模数转换模块设计 ................................................................ 13

3.3.1 ADC性能参数 ............................................................. 13 3.3.2 ADC静态特性 ............................................................. 13 3.3.3 ADC动态特性 ............................................................. 14 3.3.4 ADC性能测试 ............................................................. 15 3.3.5 常用ADC芯片概述 ................................................... 15 3.3.6 ADC0832模数转换原理及主要技术指标 .......... 15 3.3.7 ADC0832与单片机的接口电路 ........................... 17 3.4 数码管显示电路设计 ............................................................ 17 3.5 电源设计 .................................................................................. 18

4 系统软件设计方案 ......................................................................... 19

4.1系统子程序设计 ........................................................................ 19

4.1.1 初始化程序 ................................................................... 19 4.1.2 A/D转换子程序 ........................................................... 20

5 系统的安装与调试 ......................................................................... 21

5.1 安装步骤 .................................................................................... 21 5.2 系统实物图 ................................................................................ 21

合肥师范学院2011届本科生毕业论文(设计)

结 论 ......................................................................................................... 22 参考文献 .................................................................................................... 23 致谢 .............................................................................................................. 24 附录1 整机电路原理图 ................................................................... 25 附录2 部分源程序 ............................................................................ 26

合肥师范学院2011届本科生毕业论文(设计)

摘 要

随着我国现代化技术建设的发展,电子检测技术日新月异,指针式的电压表容易产生误差,并且用起来相对来说比较麻烦,在不就的将来基本上要被市场给淘汰,代替它的将是本设计所涉及到的数字电压表。数字电压表使用起来非常方便,并且读数简单明了,只要机器不发生跳读现象,结果就是准确唯一的。本设计基于STC89C52单片机的一种电压测量电路,该电路采用ADC0832A/D转换元件,实现数字电压表的硬件电路与软件设计。该系统的数字电压表电路简单, 可以测量0~9V的电压值,并在四位LED数码管上显示电压值。所用的元件较少,成本低,调节工作可实现自动化。

关键词: 数字电压表;ADC0832;STC89C52

1

合肥师范学院2011届本科生毕业论文(设计)

Abstract

With the development of the construction about modern technology in our country, the technology of electronic detection has advanced. Pointer type voltmeter is prone to error, and it is relatively trouble. In the future it will basically be eliminated by the market. It will be replaced by the digital voltmeter design involved. Digital voltage meter is very convenient to use, and the reading is simple, as long as the machine does not jump phenomenon, the only result is accurate. This design is based on STC89C52 microcontroller for voltage measuring, which uses ADC0832A/D conversion device. It has achieved the digital voltmeter design between hardware circuits and software design. The circuit of this digital voltmeter is simple. It can measure the value of voltage among 0-9V. What’s more, the value can be showed on the four LED digital tube. Fewer components used and low cost are the advantages of the design. It can make the adjustment work be automated.

Key words: digital voltmeter ADC0832 STC89C52

2

合肥师范学院2011届本科生毕业论文(设计)

EA/VPP(31):当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V的编程电源(VPP)。

XTAL1(19):来自反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2(18):来自反向振荡器的输出。

3.3 模数转换模块设计

3.3.1 ADC性能参数

目前的实时信号处理机要求ADC尽量靠近视频、中频甚至射频,以获取尽可能多的目标信息。表征ADC性能的参数还没统一标准,但一般来说,可以分为静态特性参数和动态特性参数。

3.3.2 ADC静态特性

ADC的静态特性是指其与时间特性无关的特性,主要包括以下几类: 1) 分辨率

ADC能够分辨的最小的模拟量的变化。 2) 量化误差

量化电平Q定义为满量程电压(或满度信号值)UFSR与2的N次幂的比值,其中N位被数字化的数字信号的二进制位数。

3) 全输入范围和动态范围

全输入范围是指允许输入模拟信号的最大值与最小值之差;动态范围是指全输入范围与ADC最小可分辨的量值之比。

4) 偏置误差和增益误差

ADC的偏置误差定义为使最低位被置成“1”状态时ADC的输入电压与理论上使最低位被置成“1”状态时的输入电压之差。

13

合肥师范学院2011届本科生毕业论文(设计)

3.3.3 ADC动态特性

高速ADC的动态特性是指输入为交变简谐信号时的性能技术指标,其主要技术指标如下:

1) 转换时间、采集时间

转换时间是指从信号开始转换到可获得完整的信号输出所用的时间,采集时间是指采样保持电路在采样模式下能够保证其在随之到来的保持模式输出在采样保持转换时,相对该时刻存在的输入电平之间的误差将会限制在一定的误差范围内所需的时间。

2) 频率响应

它是冲击响应的傅立叶变换,从系统辨识的角度看这是在频域对ADC动态线性特性的非参数模型描述。

3) 动态积分非线性误差和动态微分非线性误差

动态积分非线性误差(INL)定义为在动态情况下(一般输入信号为正弦信号),ADC实际转换特性曲线之间的最大偏差。

动态微分非线性误差(DNL)定义为在动态情况下(一般输入信号为正弦信号),ADC实际转换特性的码宽(1LSB)与理想代码宽度之间的最大偏差,单位为LSB。为了保证ADC不失码,通常规定在25oC时最大DNL为 1/2LSB。

4) 信噪比、信噪失真比和有效位数

信噪比(SNR)是信号电平的有效值与各种噪声(包括量化噪声、热噪声、白噪声等)有效值之比的分贝数。

5) 小信号带宽和全功率带宽

ADC的模拟带宽是指输入扫描频率基波在ADC输出端用FFT分析得到的基波频谱下降到3dB处的带宽(不考虑谐波失真和噪声影响)。根据输入信

14

合肥师范学院2011届本科生毕业论文(设计)

号幅值不同,模拟带宽又可以分为小信号带宽(SSBW一般指1/10满量程)和全功率带宽(FPBW指满量程)。

3.3.4 ADC性能测试

ADC测试方法主要有两种:模拟方法和数字方法。前者是将A/D采集的数字信号经D/A转换位模拟信号再用传统的测试方法对其进行测试,优点是易于理解,缺点是许多A/D采集卡本身不带D/A,即或有,D/A的性能也将影响A/D指标的测试;

3.3.5 常用ADC芯片概述

A/D转换器是用来通过一定的电路将模拟量转变为数字量。将模拟量经过各种传感器后,再由转换器转换成电压信号。模拟量可以是电压、电流等电信号,也可以是压力、温度、湿度、位移、声音等非电信号。

3.3.6 ADC0832模数转换原理及主要技术指标

ADC0832是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D转换器。是目前国内应用最广泛的8位通用A/D芯片

1.主要特性

1)8路输入通道,8位A/D转换器。 2)具有转换起停控制端。

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

4)单个+5V电源供电

5)模拟输入电压范围0~+5V,不需零点和满刻度校准。 6)工作温度范围为-40~+85摄氏度 7)低功耗,约15mW。 2.内部结构

ADC0832是CMOS单片型逐次逼近式A/D转换器,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近。

3.外部特性(引脚功能)

ADC0832芯片有28条引脚,采用双列直插式封装。 IN0~IN7:8路模拟量输入端。

15

合肥师范学院2011届本科生毕业论文(设计)

2-1~2-8:8位数字量输出端。

ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路

ALE:地址锁存允许信号,输入,高电平有效。 START: A/D转换启动脉冲输入端。 EOC: A/D转换结束信号输出端。

OE:数据输出允许信号,输入,高电平有效。

CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一+5V。 GND:接地。

4.ADC0832的工作过程

首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。

转换数据的传送 A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。这种传送方式有三种:分别是定时传送方式,查询方式和中断方式。

16

合肥师范学院2011届本科生毕业论文(设计)

3.3.7 ADC0832与单片机的接口电路

ADC0832模数转换器与STC89C52单片机的接口电路如图6所示

图6 ADC0832与STC89C52单片机接口电路

3.4 数码管显示电路设计

本设计采用数码管进行显示,具体连接方式如图7所示。

图7 数码管显示电路

17

合肥师范学院2011届本科生毕业论文(设计)

3.5 电源设计

18

合肥师范学院2011届本科生毕业论文(设计)

4

系统软件的总体框架,主程序采用死循环结构,在其中调用了三个子程序,为初始化程序,AD转换子程序,动态显示子程序,首先,单片机片选A/D转换器,然后发出信号启动A/D转换。若有,即启动信号采集,对A/D转换器的数据输出口送来的数值进行存储,数据处理完之后,将电压数值送显示器显示出来。程序总体流程图如图8所示:

系统软件设计方案

图8 总体流程图

4.1系统子程序设计

4.1.1 初始化程序

19

合肥师范学院2011届本科生毕业论文(设计)

所谓初始化,是对将要用到的MCS_51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等。

4.1.2 A/D转换子程序

A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图9所示。

图9 转换流程图

20

合肥师范学院2011届本科生毕业论文(设计)

5 系统的安装与调试

5.1 安装步骤

1.检查元件的好坏

按电路图买好元件后首先检查买回元件的好坏,按各元件的检测方法分别进行检测,一定要仔细认真。而且要认真核对原理图是否一致,在检查好后才可上件、焊件,防止出现错误焊件后不便改正。

2.放置、焊接各元件

按原理图的位置放置各元件,在放置过程中要先放置、焊接较低的元件,后焊较高的和要求较高的元件。特别是容易损坏的元件要后焊,在焊集成芯片时连续焊接时间不要超过10s,注意芯片的安装方向。

5.2 系统实物

如图10所示

图10 系统实物图

21

合肥师范学院2011届本科生毕业论文(设计)

结 论

这次的毕业设计,它不仅仅只是一次完成任务的过程,更主要的是一个学习的过程。通过本次相对完整的设计,使我离开了单纯的理论知识学习的状态,达到了理论与实践的结合的要求。同时,也提高了我们查阅文献资料以及设计规范等专业能力的水平,而且通过整体的掌握对布局的取舍以及对细节的处理,都锻炼了我自己的能力,并且还丰富了我的经验,特别是提高了自己的抗压能力以及耐力,这是我们都想看到的,也是我们进行毕业设计的目的所在。虽然这次毕业设计内容繁重、过程复杂但我们收获很多,在这次设计过程中我们不仅对A/D转换芯片ADC0832有了进一步熟悉,随着设计的不断深入对它的工作原理、启动设置、转换结束判断及输出等都基本掌握,在和老师的沟通交流的过程中我们对设计有了新的认识,并且对实物的连接与布局有了新的看法,对我们的专业有了进一步的认识,希望在以后的实验中吸取更多地经验学会更多的实践知识。

22

合肥师范学院2011届本科生毕业论文(设计)

参考文献

张友德:单片微型机原理、应用和实验[M],电子工业出版社。 吴经国:单片机应用技术[M],中国电力出版社。

李群芳:单片机微型计算机与接口技术[M],电工业出版社。 王吉鹏等:微机原理与接口技术[M],高等教育出版社。 张晔等:单片机应用技术[M],高等教育出版社。

李建忠:单片机原理及应用.西安[M], 西安电子科技大学出版社。 谢自美.电子线路设计·实验·测试(第二版)[M], 华中理工出版社,2000

23

合肥师范学院2011届本科生毕业论文(设计)

致 谢

事已至此,说明这毕业设计已经接近尾声了,这也同样意味着我的大学生活也即将结束。回想起匆匆过去的大学四年时光,心中倍感充实,在这四年中,是我的大学让我成长,是我的老师让我懂得,是我的同学让我学会!当我写完这篇毕业论文的时候,有一种如释重负的感觉,感慨万千!

首先,我要感谢的是我的指导老师吴昇老师,经过将近半年的努力,是吴昇老师带着我一步一步走到现在的,作为一个本科生的毕业设计,由于经验匮乏,难免有许多考虑不周全的地方,如果没有老师的督导,完成这项设计是相当困难的。在设计制作过程中,每次遇到难题,我总是第一个想到吴昇老师,向她寻求帮助,然而,老师不管是忙是闲,她总会第一时间解决问题。吴昇老师平时工作繁忙,但是我的毕业设计的每个阶段,从选题到查阅资料再到设计制作以及论文的修改,老师都给了我悉心的指导。在此,谨向吴昇老师表示真诚的谢意!

其次,还要感谢大学四年来教我的老师们,毕业设计能够顺利完成,也有你们很大的功劳。

最后,要向大学四年同学表示谢意,谢谢大家在这四年来的帮助。 这次的毕业设计对我来说真的是一次很好的锻炼机会,让我看清楚了自己的能力到底有多少,看清楚了自己在大学期间到底学会了多少。总之,通过本次毕业设计的制作,让我受益匪浅!

24

合肥师范学院2011届本科生毕业论文(设计)

附录1 整机电路原理图

25

合肥师范学院2011届本科生毕业论文(设计)

附录2 部分源程序

#include

#define uchar unsigned char #define uint unsigned int #include

uchar code smg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,

0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff}; //断码

uchar code smg_we[]={0xef,0xdf,0xbf,0x7f};

uchar dis_smg[8] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8}; uchar smg_i = 3; //显示数码管的个位数

sbit SCL=P2^0; //SCL定义为P1口的第3位脚,连接ADC0832SCL脚 sbit DO=P2^1; sbit CS=P2^2; sbit key1 = P2^3; sbit key2 = P2^4;

uchar nw_can ; // 内外电压的选择 void delay_1ms(uint q) { }

void delay_uint(uint q)

{ }

unsigned char ad0832read(bit SGL,bit ODD) {

//DO定义为P1口的第4位脚,连接ADC0832DO脚 //CS定义为P1口的第4位脚,连接ADC0832CS脚

uint i,j; for(i=0;i

for(j=0;j<120;j++);

while(q--);

unsigned char i=0,value=0,value1=0;

SCL=0; DO=1; CS=0; SCL=1; SCL=0;

26

//开始

//第一个上升沿

合肥师范学院2011届本科生毕业论文(设计)

}

DO=SGL;

SCL=1; //第二个上升沿 SCL=0; DO=ODD;

SCL=1; //第三个上升沿 SCL=0; //第三个下降沿 DO=1; for(i=0;i<8;i++) { }

for(i=0;i<8;i++) { } CS=1; SCL=1;

if(value==value1)

return value;

//与校验数据比较,正确就返回数

//接收校验数据

value1>>=1; if(DO)

value1+=0x80; SCL=1; SCL=0; SCL=1;

SCL=0; //开始从第四个下降沿接收数据 value<<=1; if(DO)

value++;

据,否则返回0

return 0;

void display() {

27

合肥师范学院2011届本科生毕业论文(设计)

}

uchar i;

for(i=0;i

P1 = 0xff;

//消隐

//位选

P3 = smg_we[i]; P1 = dis_smg[i]; delay_1ms(1);

//段选

/******************按键*********************/ void key() { }

void main() {

uchar i; uint temp; while(1) {

if(key1 == 0) { }

if(key2 == 0) { }

if(key2 == 0) { }

nw_can = 1; //板子上可调电阻电压 if(key1 == 0) { }

nw_can = 0; //板子上可调电阻电压

28

合肥师范学院2011届本科生毕业论文(设计)

}

}

key(); //按键程序 display(); { } i++;

if(nw_can == 0)

temp = ad0832read(1,0); //循环255个周期读取一次0832,

//数码管显示函数

if(i % 30 == 0) //循环30次

因CPU运行比较快,没必要每次循环都去读取,选择通过CH0输入

else

temp = ad0832read(1,1); //循环255个周期读取一次0832,

因CPU运行比较快,没必要每次循环都去读取,选择通过CH0输入

temp = temp * 100 / 255 * 4.5;

dis_smg[2]=smg_du[temp/100] & 0x7f; //得到百位 dis_smg[1]=smg_du[temp/10]; //十位

dis_smg[0]=smg_du[temp]; //个位 ADC0832为8位

ADC,数值为0~255,我们将其分开放入l_tmpdate数组中显示

29

本文来源:https://www.bwwdw.com/article/sui7.html

Top