基于单片机的数字电压表的设计.docx

上传人:b****7 文档编号:9064859 上传时间:2023-02-03 格式:DOCX 页数:24 大小:62.02KB
下载 相关 举报
基于单片机的数字电压表的设计.docx_第1页
第1页 / 共24页
基于单片机的数字电压表的设计.docx_第2页
第2页 / 共24页
基于单片机的数字电压表的设计.docx_第3页
第3页 / 共24页
基于单片机的数字电压表的设计.docx_第4页
第4页 / 共24页
基于单片机的数字电压表的设计.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

基于单片机的数字电压表的设计.docx

《基于单片机的数字电压表的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字电压表的设计.docx(24页珍藏版)》请在冰豆网上搜索。

基于单片机的数字电压表的设计.docx

基于单片机的数字电压表的设计

河南科技学院

2010届本科毕业设计

 

设计题目:

基于单片机的数字电压表的设计

 

学生姓名:

所在院系:

所学专业:

导师姓名:

完成时间:

2011-05-25

 

摘要

本文介绍了一种基于单片机的简易数字电压表的设计。

该设计主要由三个模块组成:

A/D转换模块,数据处理模块及显示模块。

A/D转换主要由芯片ADC0832来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。

数据处理则由芯片AT89C51来完成,其负责把ADC0832传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示;此外,它还控制着ADC0832芯片工作。

该系统的数字电压表电路简单,所用的元件较少,成本低,且测量精度和可靠性较高。

此数字电压表可以测量0-5V的1路模拟直流输入电压值,并通过一个四位一体的7段数码管显示出来。

关键词单片机;数字电压表;A/D转换;AT89C51;ADC0832

 

DesignofSimpleDigitalVoltmeterBasedonSingle-chipMicrocontroller

Abstract

Thispaperwhichintroducesakindofsimpledigitalvoltmeterisbasedonsingle-chipmicrocontrollerdesign.Thecircuitofthevoltagemeterismainlyconsistedofthreemouldpieces:

A/Dconvertingmouldpiece,A/DconvertingismainlycompletedbytheADC0832,itconvertsthecollectedanalogdataintothedigitaldataandtransmitstheoutcometothemanifestationcontrollingmouldpiece.DataprocessingismainlycompletedbytheAT89C51chip,itprocessesthedataproducedbytheADC0832chipandgeneratestherightmanifestationcodes,alsotransmitsthecodestothemanifestationcontrollingmouldpiece.Also,theAT89C51chipcontrolstheADC0832chiptowork.

Thevoltmeterfeaturesinsimpleelectricalcircuit,loweruseofelements,lowcost,moreover,itsmeasuringprecisionandreliability.Thevoltmeteriscapableofmeasuringvoltageinputsfrom1routerangingfrom0to5volt,anddisplayingthemeasurementsthoughadigitalcodetubeof7piecesofLED.

KeywordsSingle-chipmicrocontroller;Digitalvoltmeter;A/Dconverter;AT89C51;ADC0832

 

目 录

1.绪论

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

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

数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。

由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用。

传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。

采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC实时通信。

数字电压表是诸多数字化仪表的核心与基础。

以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。

目前,由各种单片机和A/D转换器构成的数字电压表作全面深入的了解是很有必要的。

最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型。

数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继电器、电子管和形式发展到了现在的全固态化、集成化(IC化),另一方面,精度也从%%。

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

本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模块:

转换模块、数据处理模块及显示模块。

其中,A/D转换采用ADC0832对输入的模拟信号进行转换,控制核心AT89C51再对转换的结果进行运算处理,最后驱动输出装置LED显示数字电压信号。

 

2设计总体方案

设计要求

⑴以MCS-51系列单片机为核心器件,组成一个简单的直流数字电压表。

⑵采用1路模拟量输入,能够测量0-5V之间的直流电压值。

⑶电压显示用4位一体的LED数码管显示,至少能够显示两位小数。

⑷尽量使用较少的元器件。

设计思路

⑴根据设计要求,选择AT89C51单片机为核心控制器件。

⑵A/D转换采用ADC0832实现。

电压显示采用4位一体的LED数码管。

LED数码的段码输入,由并行端口P2产生:

位码输入,用并行端口P0产生。

设计方案

硬件电路设计由6个部分组成;A/D转换电路,AT89C51单片机系统,LED显示系统、时钟电路、复位电路以及测量电压输入电路。

硬件电路设计框图如图1所示。

图1数字电压表系统硬件设计框图

 

3.硬件电路设计

单片机的介绍

40个引脚,4kbytesflash片内程序存储器,128bytes的随机存取数据存储器(ram),32个外部双向输入/输出(i/o)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(wdt)电路,片内时钟振荡器。

AT89S52单片机是一种低功耗高性能的CMOS8位微控制器,内置8KB可在线编程闪存。

该器件采用Atmel公司的高密度非易失性存储技术生产,其指令与工业标准的80C51指令集兼容。

片内程序存储器允许重复在线编程,允许程序存储器在系统内通过SPI串行口改写或用同用的非易失性存储器改写。

通过把通用的8位CPU与可在线下载的Flash集成在一个芯片上,AT89S52便成为一个高效的微型计算机。

它的应用范围广,可用于解决复杂的控制问题,且成本较低。

其结构框图如图所示。

图AT89S52结构框图

   

图AT89S52

   此外,AT89S52设计和配置了震荡频率可为12MHZ并可通过软件设置省电模式。

空闲模式下,cpu暂停工作,而ram定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存ram的数据,停止芯片其它功能直至外中断激活或硬件复位。

同时该芯片还具有pdip、tqfp和plcc等三种封装形式,以适应不同产品的需求。

主要功能特性:

·兼容mcs-51指令系统

·4k可反复擦写(>1000次)ispflashrom

·32个双向i/o口

·工作电压

·2个16位可编程定时/计数器

·时钟频率0-33mhz

·全双工uart串行中断口线

·128x8bit内部ram

·2个外部中断源

·低功耗空闲和省电模式

·中断唤醒省电模式

·3级加密位

·看门狗(wdt)电路

·软件设置空闲和省电功能

·灵活的isp字节和分页编程

·双数据寄存器指针

按照功能,AT89S52的引脚可分为主电源、外接晶体振荡或振荡器、多功能I/O口、控制和复位等。

1.多功能I/O口

AT89S52共有四个8位的并行I/O口:

P0、P1、P2、P3端口,对应的引脚分别是~,~,~,~,共32根I/O线。

每根线可以单独用作输入或输出。

①P0端口,该口是一个8位漏极开路的双向I/O口。

在作为输出口时,每根引脚可以带动8个TTL输入负载。

当把“1”写入P0时,则它的引脚可用作高阻抗输入。

当对外部程序或数据存储器进行存取时,P0可用作多路复用的低字节地址/数据总线,在该模式,P0口拥有内部上拉电阻。

在对Flash存储器进行编程时,P0用于接收代码字节;在校验时,则输出代码字节;此时需要外加上拉电阻。

②P1端口,该口是带有内部上拉电阻的8位双向I/O端口,P1口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。

对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。

P1口作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。

在对Flash编程和程序校验时,P1口接收低8位地址。

另外,与可以配置成定时/计数器2的外部计数输入端(T2)与定时/计数器2的触发输入端(T2EX),如图所示。

端口引脚

复用功能

T2(定时器/计算器2的外部输入端)

T2EX(定时器/计算器2的外部触发端和双向控制)

MOSI(用于在线编程)

MISO(用于在线编程)

SCK(用于在线编程)

图P1口管脚复用功能

③P2端口,该口是带有内部上拉电阻的8位双向I/O端口,P2口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。

对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。

P2口作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。

在访问外部程序存储器或16位的外部数据存储器时,P2口送出高8位地址,在访问8位地址的外部数据存储器时,P2口引脚上的内容(就是专用寄存器(SFR)区中P2寄存器的内容),在整个访问期间不会改变。

在对Flash编程和程序校验期间,P2口也接收高位地址或一些控制信号。

④P3端口,该口是带有内部上拉电阻的8位双向I/O端口,P3口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。

对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。

P3口作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。

在AT89S52中,同样P3口还用于一些复用功能,如表所列。

在对Flash编程和程序校验期间,P3口还接收一些控制信号。

端口引脚

复用功能

RXD(串行输入口)

TXD(串行输出口)

INT0(外部中断0)

INT1(外部中断1)

T0(定时器0的外部输入)

T1(定时器1的外部输入)

WR(外部数据存储器写选通)

RD(外部数据存储器读选通)

图P3端口引脚与复用功能表

 复位输入端。

在振荡器运行时,在此脚上出现两个机器周期的高电平将使其单片机复位。

看门狗定时器(Watchdog)溢出后,该引脚会保持98个振荡周期的高电平。

在SFRAUXR(地址8EH)寄存器中的DISRTO位可以用于屏蔽这种功能。

DISRTO位的默认状态,是复位高电平输出功能使能。

PROG 地址锁存允许信号。

在存取外部存储器时,这个输出信号用于锁存低字节地址。

在对Flash存储器编程时,这条引脚用于输入编程脉冲PROG。

一般情况下,ALE是振荡器频率的6分频信号,可用于外部定时或时钟。

但是,在对外部数据存储器每次存取中,会跳过一个ALE脉冲。

在需要时,可以把地址8EH中的SFR寄存器的0位置为“1”,从而屏蔽ALE的工作;而只有在MOVX或MOVC指令执行时ALE才被激活。

在单片机处于外部执行方式时,对ALE屏蔽位置“1”并不起作用。

 程序存储器允许信号。

它用于读外部程序存储器。

当AT89S52在执行来自外部存储器的指令时,每一个机器周期PSEN被激活2次。

在对外部数据存储器的每次存取中,PSEN的2次激活会被跳过。

Vpp 外部存取允许信号。

为了确保单片机从地址为0000H~FFFFH的外部程序存储器中读取代码,故要把EA接到GND端,即地端。

但是,如果锁定位1被编程,则EA在复位时被锁存。

当执行内部程序时,EA应接到Vcc。

在对Flash存储器编程时,这条引脚接收12V编程电压Vpp。

 振荡器的反相放大器输入,内部时钟工作电路的输入。

 振荡器的反相放大器输出。

ADC0832介绍

ADC0832是美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片。

由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。

学习并使用ADC0832可是使我们了解A/D转换器的原理,有助于我们单片机技术水平的提高。

3.2.1ADC0832主要特点

·8位分辨率;

·双通道A/D转换;

·输入输出电平与TTL/CMOS相兼容;

·5V电源供电时输入电压在0~5V之间;

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

·一般功耗仅为15mW;

·8P、14P—DIP(双列直插)、PICC多种封装;

·商用级芯片温宽为0°Cto+70°C,工业级芯片温宽为−40°Cto+85°C;

3.2.2ADC0832管脚介绍

图ADC0832引脚图

  ·CS_片选使能,低电平芯片使能。

  ·CH0模拟输入通道0,或作为IN+/-使用。

  ·CH1模拟输入通道1,或作为IN+/-使用。

  ·GND芯片参考0电位(地)。

  ·DI数据信号输入,选择通道控制。

  ·DO数据信号输出,转换数据输出。

  ·CLK芯片时钟输入。

  ·Vcc/REF电源输入及参考电压输入(复用)。

  ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。

其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。

芯片转换时间仅为32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。

独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。

通过DI数据输入端,可以轻易的实现通道功能的选择。

3.2.3单片机对ADC0832的控制原理

正常情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。

但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。

(见图3)当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。

当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。

此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。

在第1个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。

在第2、3个脉冲下沉之前DI端应输入2位数据用于选择通道功能,其功能项见图。

 

图ADC0832功能图

 

如图所示,当此2位数据为“1”、“0”时,只对CH0进行单通道转换。

当2位数据为“1”、“1”时,只对CH1进行单通道转换。

当2位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。

当2位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1作为正输入端IN+进行输入。

到第3个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。

从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。

直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。

也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATD0。

随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束。

最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。

更详细的时序说明请见图。

图时序图

作为单通道模拟信号输入时ADC0832的输入电压是0~5V且8位分辨率时的电压精度为。

如果作为由IN+与IN-输入的输入时,可是将电压值设定在某一个较大范围之内,从而提高转换的宽度。

但值得注意的是,在进行IN+与IN-的输入时,如果IN-的电压大于IN+的电压则转换后的数据结果始终为00H。

LED数码管

3.3.1LED数码管主要技术参数

图数码管

数码管使用条件:

a、段及小数点上加限流电阻

b、使用电压:

段:

根据发光颜色决定;  小数点:

根据发光颜色决定

c、使用电流:

静态:

总电流80mA(每段10mA);动态:

平均电流4-5mA    峰值电流100mA

上面这个只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极的是一样的,4位数码管引脚图数码管使用注意事项说明:

(1)数码管表面不要用手触摸,不要用手去弄引角;

(2)焊接温度:

260度;焊接时间:

5S

(3)表面有保护膜的产品,可以在使用前撕下来。

3.3.2LED数码管的引脚说明

这类数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点com,而每个LED的阴极分别为a、b、c、d、e、f、g及dp(小数点);共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点),如下图所示。

图中的8个LED分别与上面那个图中的A~DP各段相对应,通过控制各个LED的亮灭来显示数字。

图共阳数码管内部结构

图共阴数码管内部结构

对于单个数码管来说,从它的正面看进去,左下角那个脚为1脚,以逆时针方向依次为1`10脚,左上角那个脚便是10脚了,上面两个图中的数字分别与这10个管脚一一对应。

注意,3脚和8脚是连通的,这两个都是公共脚。

   还有一种比较常用的是四位数码管,内部的4个数码管共用a~dp这8根数据线,为人们的使用提供了方便,因为里面有4个数码管,所以它有4个公共端,加上a~dp,共有12个引脚,下面便是一个共阴的四位数码管的内部结构图(共阳的与之相反)。

引脚排列依然是从左下角的那个脚(1脚)开始,以逆时针方向依次为1~12脚,下图中的数字与之一一对应。

图位共阳数码管内部结构

3.3.3数码管编码说明

4位数码管编码说明,如图所示:

e

d

dp

c

g

b

f

a

0

0

0

1

0

1

0

0

0

28H

1

1

1

1

0

1

0

1

1

EBH

2

0

0

1

1

0

0

1

0

32H

3

1

0

1

0

0

0

1

0

A2H

4

1

1

1

0

0

0

0

1

E1H

5

1

0

1

0

0

1

0

0

A4H

6

0

0

1

0

0

1

0

0

24H

7

1

1

1

0

1

0

1

0

EAH

8

0

0

1

0

0

0

0

0

20H

9

1

0

1

0

0

0

0

0

A0H

H

0

1

1

0

0

0

0

1

61H

L

0

0

1

1

0

0

0

1

3DH

-

1

1

1

1

0

1

1

1

F7H

C

0

0

1

1

1

1

0

0

3CH

图控制命令表

单片机最小系统电路

图单片机最小系统

(1)单片机9脚接复位电路,可按复位按钮S1给单片机复位。

(2)晶振采用12MHZ。

(3)由于单片机只访问片内FlashROM并执行内部程序存储器中的指令,因此单片机的31脚接高电平VCC。

ADC832电路。

图ADC0832电路

ADC0832的1脚片选接,2脚通道0接电位器的抽头,4脚接低,5脚和6脚是数据接,7脚时钟接,8脚接VCC。

四位数码管显示电路

图数码管显示电路

4位数码管为共阳管,由于单片机输出电流比较小,故用4个PNP型的三极管9015来驱动数码管。

单片机输出低电平时三极管导通,使数码管的4各公共端1、4、5和12脚为高电平,此时数码管的数据端输入低电平后数码管被点亮,120欧电阻R12到R19为三极管的限流电阻。

电路原材料清单

序号

名称

型号

单位

数量

备注

1

电阻

1KΩ

1

2

电阻

200Ω

5

3

传感器

DS18B20

4

电阻

510Ω

8

5

电阻

Ω

1

6

电阻

10KΩ

4

7

晶振

12MHz

1

8

普通电容

33pF

2

9

电解电容

10uF/50V

1

10

5号电池

3

11

小按钮

4

12

三极管

9012

4

13

三极管

9013

1

14

蜂鸣器

15

数码管

16

单片机

AT89S52

使用工具及仪表清单

序号

名称

型号

单位

数量

备注

万用表

內热式电烙铁

焊锡丝

若干

直流稳压电源

编程烧写器

导线

若干

 

4.软件设计

程序设计总方案

根据模块的划分原则,将该程序划分初始化模块,A/D转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如图所示。

图数字式直流电压表主程序框图

系统子程序设计

4.2.1初始化程序

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

4.2.2A/D转换子程序

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

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1