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

上传人:b****2 文档编号:1701026 上传时间:2023-05-01 格式:DOCX 页数:33 大小:268.18KB
下载 相关 举报
基于单片机的多路数字电压表设计.docx_第1页
第1页 / 共33页
基于单片机的多路数字电压表设计.docx_第2页
第2页 / 共33页
基于单片机的多路数字电压表设计.docx_第3页
第3页 / 共33页
基于单片机的多路数字电压表设计.docx_第4页
第4页 / 共33页
基于单片机的多路数字电压表设计.docx_第5页
第5页 / 共33页
基于单片机的多路数字电压表设计.docx_第6页
第6页 / 共33页
基于单片机的多路数字电压表设计.docx_第7页
第7页 / 共33页
基于单片机的多路数字电压表设计.docx_第8页
第8页 / 共33页
基于单片机的多路数字电压表设计.docx_第9页
第9页 / 共33页
基于单片机的多路数字电压表设计.docx_第10页
第10页 / 共33页
基于单片机的多路数字电压表设计.docx_第11页
第11页 / 共33页
基于单片机的多路数字电压表设计.docx_第12页
第12页 / 共33页
基于单片机的多路数字电压表设计.docx_第13页
第13页 / 共33页
基于单片机的多路数字电压表设计.docx_第14页
第14页 / 共33页
基于单片机的多路数字电压表设计.docx_第15页
第15页 / 共33页
基于单片机的多路数字电压表设计.docx_第16页
第16页 / 共33页
基于单片机的多路数字电压表设计.docx_第17页
第17页 / 共33页
基于单片机的多路数字电压表设计.docx_第18页
第18页 / 共33页
基于单片机的多路数字电压表设计.docx_第19页
第19页 / 共33页
基于单片机的多路数字电压表设计.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

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

本科毕业论文

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

题目

(中、英文)

Designofmulti-channeldigitalvoltage

meterbasedonMCU

摘要

近十几年来,单片机技术的发展极为迅速,广泛应用于生产、生活的各个领域。

从测量领域来看,一部分电子测量仪表在高速化、精确化方面有了明显的进步。

电子测量仪表精确度的高低,直接影响着企业的经济效益。

在我国现有经济水平下,使用单片机开发的电子测量仪表,测量精确而且性价比极高,不仅适用于电压、电流、电阻等的测量,还广泛适用于温度、湿度等测量场合。

本课题设计的多路数字电压表具有性能稳定、携带方便、显示清晰直观、读数准确,大大地减少了因人为因素所造成的测量误差事件,大大的提高了测量的精确度。

关键词:

数字电压表;AT89C51;ADC0808

 

Abstract

Inrecentyears,thetechnologyofSCMhasgotajollyrapiddevelopmentandbeenwidelyusedineveryfieldofourlifeandproduction.Judgingfromthemeasurerealm,someelectronicalmeasuringinstrumentshaveremarkableimprovmentsinitsspeedandaccuracy.theaccuracyofelectronicalmeasuringinstrumentsdirectlyaffectenterprises'economiceffectiveness.Inthecurrenteconomiclevelofourcountry,electronicalmeasuringinstrumentsdevelopedbySCMhavehighaccuracyaswellashighcostperformance,notonlycanbeusedtomeasureVoltage、CurrentandResistance,butalsobewidelyusedinmeasuringtemperature、humidityorsomeotherMeasurementsituations.

Thistopicdesignofmulti-channeldigitalvoltagemeterhastheadvantagesofstableperformance,easytocarry,showstheclearandintuitive,accuratereadings,greatlyreducingthemeasurementerroreventscausedbyhumanfactors,greatlyimprovestheprecisionofmeasurement.

Keywords:

DigitalVoltage;AT89C51;ADC0808

 

目录

1引言1

2多路数字电压表的总体设计1

2.1设计内容1

2.2设计方案2

3硬件设计3.1单片机控制模块3

3.2振荡电路模块5

3.3A/D转换模块5

3.4显示模块9

3.5按键模块10

4软件设计11

4.1C语言与汇编语言11

4.2主流程图设计11

4.3A/D转换子程序12

5软件调试13

5.1仿真电路图14

5.2显示结果及误差分析14

5.21显示结果14

5.22误差分析16

6.结论17

元件清单17

参考文献18

谢辞18

程序附录19

 

 

1引言

单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(CPU)。

随着单片机技术的飞速发展,各种单片机蜂拥而至,单片机技术已成为一个国家现代化科技水平的重要标志。

单片机可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。

单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化。

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

本次课程设计的课题是“基于单片机的多路数字电压表的设计”。

主要考核我们对单片机技术,编程能力等方面的情况。

观察独立分析、设计单片机的能力,以及实际编程技能。

传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便。

通过单片机,采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表,使测得的结果更为精准。

2多路数字电压表的总体设计

2.1设计内容

设计和调试一种基于单片机的多路数字电压表。

要求具有如下功能:

(1)输入电压为4路;

(2)电压测量范围为0--5V;

(3)测量的最小分标率为0.0196V,测量误差为±0.02V;

(4)能通过显示器显示当前通道和通道电压值,有效位数为小数点后两位;

2.2设计方案

本课题设计的数字电压表的实现是基于单片机原理。

首先,在Proteus软件环境中进行硬件电路图的设计,然后在Keil软件环境中进行系统的软件编程,并进行程序源文件的编译和调试,最后生成.hex文件。

此.hex文件是硬件电路运行实现的源代码来源。

把.hex文件加载到AT80C51单片机芯片,然后在Proteus软件环境中运行硬件电路,数字多用表就可以正常显示了。

本课题设计的数字多用表主要由:

时钟模块、A/D转换模块、数据处理模块、按键模块显示模块,这四大模块组成。

总体结构如图1所示,先用A/D转换器对各路电压值进行采样,得到相应的数字量,再按数字量与模拟量成正比关系运算得到对应的模拟电压值,然后通过单片机进行数据处理,最后通过显示器显示出被测电压值,另外可以通过按键选择通道。

显示电路

AT89C51

单片机

时钟电路

输入电路

转换电路

复位电路

按键电路

图1基于单片机的多路数字电压表电路的原总体结构图

根据设计要求,采用的方案如下:

硬件部分实现数据的采集、编译,A/D转换以及显示的功能,包括单片机电路模块、A/D转换器模块、显示模块、按键电路模块;软件部分实现控制芯片,使各部件能够正常的运行,同时实现仿真的功能,主要设计思想是利用软件进行仿真,通过仿真得到实验的结果。

多路数字式电压表应用系统主要利用A/D转换器,先用A/D转换器对各路电压值进行采样,得到相应的数字量,再按数字量与模拟量成正比关系运算得到对应的模拟电压值,然后把模拟值通过显示器显示出来。

通过按键选择循环显示,也可单路显示,单路显示可通过按键选择显示通道数。

3硬件设计

3.1单片机控制模块

单片机是集成在一个芯片上的计算机,又称单片微控制。

单片机是计算机、自动控制和大规模集成电路技术相结合的产物,融计算机结构和控制功能于一体。

它尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:

具有数据处理能力的CPU、只读存储器ROM、随机存储器RAM、多种输入输出电路(I/O口)、定时器/计时器等功能。

随着技术的发展,单片机片内集成的功能越来越强大,并朝着SOC(SystemonChip)方向发展。

本次论文设计单片机采用高性能的AT89C51系列芯片,AT89C51是8位单片机中一个最基本,最典型的芯片型号。

它主要由以下几部分组成:

中央处理器;内部数据存储器;内部程序存储器;并行I/O口;定时/计数器;中断控制电路;振荡器和时钟电路。

这些部件通过内部总线连接起来,构成了一个完整的微型计算机。

如图2所示:

图2AT89C51单片机引脚

P0口:

P0口地址为80H,位地址为80H~87H。

各位口线是有完全相同但又相互独立的逻辑电路。

P0口的逻辑电路主要由D触发器构成的锁存器,FET(场效应管)构成的输出驱动电路,用于引脚数据输入缓冲的缓冲器,一个多路转接开关(MUX)构成。

8位口线的锁存器位构成一个口的锁存器,所谓的口地址就是锁存器的地址。

锁存器的功能是使数据在口中保留一段时间。

MUX的一个输入来自锁存器,另一个输入为“数据/地址”。

输入转接由控制信号控制,设置多路转接开关的原因是P0口既可以作为通用I/O口进行数据输入/输出,又可以作为单片机系统的地址/数据线使用。

设置多路转接开关可以方便的实现转换。

P1口:

P1是一个带有内部上拉电阻的8位双向I/O口。

P1口地址为90H,位地址为90H~97H。

P1口只能作为通用数据I/O口使用所以在电路结构上与P0口有些不同。

第一,因为它只能传送数据,所以不再需要多路转接开关(MUX);第二,驱动电路中有上拉电阻。

其上拉电阻并不是真正的电阻,而是一个能起到上拉电阻作用的有两个场效应管构成的电路。

P2口:

P2是一个带有内部上拉电阻的8位双向I/O口,P2口地址为A0H,位地址为A0H~A7H。

P2口既可作为系统高位地址线使用,也可作为通用I/O口使用,所以P2口的电路逻辑与P0口类似,也有一个多路转接开关。

但多路转接开关的一个输入端不再是地址/数据,而是单一的地址,因为在构造系统总线时,P2口只能作为高位地址而不能作为数据线使用。

当P2口作为高位地址线使用时,多了开关倒向地址端;而当通用I/O口使用时,多路开关倒向锁存器的Q端。

P3口:

P3口是一组带有内部上拉电阻的8位双向I/O口。

P3口的地址为B0H,位地址为BOH~B7H。

虽然P3口可以作为通用I/O口使用,但在实际应用中我们更多的使用的是他的第二功能信号。

RST:

当输入的复位信号延续2个机器周期以上高电平时即为有效,用于完成单片机的复位操作。

ALE(地址锁存控制信号):

在系统扩展时,ALE用于控制把P0口输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。

此外由于ALE是以1/6晶振频率的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。

/PSEN(外部程序存储器读选通信号):

程序存储允许输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两个PSEN有效,即输出两个脉冲。

在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。

/EA(访问程序存储器控制信号):

当EA信号为低电平时,对ROM的读操作是针对外部程序存储器的;当EA信号为高电平时,对ROM的操作是从内部程序存储器开始,并可延续至外部程序存储器。

XTAL1和XTAL2(外接晶体引线端):

当使用芯片内部时钟时,XTAL1和XTAL2用于外接石英晶体谐振器和微调电容;当使用外部时钟时,用于接入外部时钟脉冲信号。

3.2振荡电路模块

AT89C51芯片中的高增益反相放大器。

其输入端为引脚XTAL1,输出端为引脚XTAL2。

通过两个引脚在芯片外并接石英晶体振荡器和两只电容器,C1和C2一般取30pF左右.石英晶体为一感性元件,与电容构成振荡回路,为片内放大器提供正反馈和振荡所需的相移条件,从而构成一个稳定的自激振荡器。

本文中C1和C2各取1nF,晶体的振荡频率取12MHz,电路图如下图所示:

3.3A/D转换模块

本设计采用的A/D转换器为8位的ADC0808转换器。

ADC0808是8位逐次逼近式,可实现8路模拟信号的分时采用,片内有8路模拟选通开关,以及相应的选通地址锁存与译码电路。

地址锁存与译码电路完成对A、B、C3个地址位进行所存和译码,其译码输出用于通道选择。

8位A/D转换器是逐渐逼近式,有控制与时序电路、逐次逼近寄存器、树状开关以及256R电阻阶梯网络等组成。

输出锁存器用于存放和输出转换得到的数字量。

其主要性能如下:

(1)分辨率为8位

(2)精度小于1/2LSB

(3)单一+5V供电,模拟输入电压范围为0~5V

(4)具有锁存控制的8路输入模拟开关

(5)可锁存三态输出,输出与TTL电平兼容

(6)功耗为15mW

(7)不必进行零点和满度调整

(8)转换速度取决于芯片外接的时钟频率

(9)时钟频率范围10~1280kHZ,典型值为640kHZ,约为100μ

2)内部结构和外部引脚

ADC0808的内部结构和外部引脚分别如图3和图4所示。

图2ADC0808内部结构框图

图3ADC0808外部引脚图

1)IN0~IN78:

8位模拟量输入引脚,通过3根地址译码线ADDA、ADDB、ADDC来选通IN0~IN7中的一路。

2)D7~D0:

8位模拟量输入引脚,为三态可控输出,可直接和CPU数据线连接。

8位排列顺序是D7为最高位,D0为最低位。

(3)ADDA、ADDB、ADDC:

模拟通道选择地址信号,ADDA为低位,ADDC为高位。

地址信号与选中通道对应关系如图5所示。

地址

选中通道

ADDC

ADDB

ADDA

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

IN0

IN1

IN2

IN3

IN4

IN5

IN6

IN7

图5地址信号与选中通道的关系

(4)VR(+)、VR(-):

正、负参考电压输入端,用于提供片内DAC电阻网络的基准电压。

在单极性输入时,VR(+)=5V,VR(-)=0V;双极性输入时,VR(+)、VR(-)分别接正、负极性的参考电压。

(5)ALE:

地址锁存允许信号输入端,当输入为高电平时,对地址信号进行锁存。

在使用时,该信号通常常和START信号连在一起,以便同时锁存通道地址和启动A/D转换。

(6)START:

A/D转换启动信号输入端,正脉冲有效。

加于该端的脉冲的上升沿使逐次逼近寄存器清零,下降沿开始A/D转换。

如正在进行转换时又接到新的启动脉冲,则原来的转换进程被中止,重新从头开始转换。

(7)EOC:

A/D转换结束信号输出引脚,高电平有效。

该信号在A/D转换过程中为低电平,其余时间为高电平。

该信号可作为被CPU查询的状态信号,也可作为对CPU的中断请求信号。

如果需要对某个模拟量进行不断采样、转换的情况下,EOC也可作为启动信号反馈接到START端,但是要在刚加电时需由外电路第一次启动。

(8)OE:

输出允许控制端,高电平有效,用以打开三态数据输出锁存器。

在中断工作方式下,该信号通常是CPU发出的中断请求响应信号。

(9):

CLOCK:

时钟信号输入端。

3)工作时序与使用说明

ADC0808的工作时序如图6所示。

当通道选择地址有效时,ALE信号一出现,地址便被锁存,这时转换启动信号紧随ALE之后(或与ALE同时)出现。

START的上升沿将逐次逼近寄存器SAR复位,在该上升沿之后的2μs加8个时钟周期内(不定),EOC信号将变低电平,以指示转换操作正在进行中,直到转换结束后EOC才变成高电平。

微处理器收到变为高电平的EOC信号后,便马上送出OE信号,打开三态门,读取转换结果。

图6ADC0808工作时序

模拟输入通道的选择可以相对于转换开始操作独立地进行,不能在转换过程中进行,因此往往是把通道选择和启动转换结合起来使用。

这样可以用一条写指令把选择模拟通道又启动转换。

在与微机接口时,输入通道的选择可有两种方法:

一种是通过地址总线选择,另一种是通过数据总线选择。

如果用EOC信号去产生中断请求,要特别注意EOC的变低相对于启动信号有2μs+8个时钟周期的延迟,要设法使它不要产生虚假的中断请求。

因此,最好利用EOC上升沿产生中断请求,而不是靠高电平产生中断请求。

3.4显示模块

本设计采用1602字符型LCD液晶显示屏来显示电压值,具有体积小、功耗低、界面美观大方、使用方便等优点,它具有16个引脚,如图7所示:

图7LM016L外部引脚图

VSS:

为地电源。

VDD:

接5V正电源。

VEE:

为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

RS:

寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

R/W:

为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和R/W共

同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,

当RS为高电平R/W为低电平时可以写入数据。

E:

端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

D0~D7:

8位双向数据线。

3.5按键模块

K1是一个按键开关,如图8所示,与单片机的P1.0相接,用于进行通道选择,当按下一次,通道加1,显示下一通道。

图8按键处理电路图

 

4软件设计

4.1C语言与汇编语言

汇编语言和C语言各有特点。

简单的说就是汇编语言的本质是机器码,是直接和单片机对话的唯一途径。

优点是效率高,缺点是难以驾驭。

C语言的逻辑性更强,优点是只要掌握了语言本身编程就变得简单,而且移植性好。

缺点就是即使你写出了程序,完成了功能,但是你对单片机本身的了解还是很少。

实际开发中大多会使用C语言,汇编语言在较为复杂的工程面前还是显得很繁琐,往往让人望而却步。

但是汇编语言在学习单片机的过程中却是一条捷径,想要真正懂得单片机的内部奥妙,就必须认真学习汇编语言。

因此,我们在学习单片机的过程中应先通过汇编语言将单片机硬件资源掌握透彻,在对硬件了解清楚的基础之上再学习C语言,就能达到一个比较好的效果。

4.2主流程图设计

主程序流程图如图9所示。

首先对定时/计数器和LCD进行初始化,在LCD上显示信息,然后进行循环,在循环中以此位:

调用A/D转换子程序对4个通道转换一次,判断K1键是否按下,当按下则当前通道地址加1,当前通道值转换成电压值,显示当前通道值。

开始

定时/计数器初始化

LCD初始化

LCD显示提示信息

调用A/D转换子程序

判断通道键是否按下,按下加1

当前通道数字量转换成电压

显示当前通道值

图9主程序流程图

4.3A/D转换子程序

A/D转换子程序用于对ADC0808的4路输入模拟电压进行一次A/D转换,并将转换的数值存入4个相应的存储单元中,流程图如图10所示。

A/D子转换程序每隔一定时间调用一次。

 

 

图10A/D转换子程序流程图

5软件调试

软件调试的主要任务是排查错误,错误主要包括逻辑和功能错误,这些错误有些是显性的,而有些是隐形的,可以通过仿真开发系统发现逐步改正。

本系统的调试主要以软件为主,其中,系统电路图的绘制和仿真我采用的是Proteus软件,而程序方面,采用的是c语言,用Kiel软件将程序写入单片机。

5.1仿真电路图

仿真电路图如图11所示

图11仿真电路图

5.2显示结果及误差分析

5.21显示结果

1.当输入电压值为0V时,显示结果如图12所示,测量误差为0V。

图12输入电压为0V时,LCD显示结果

2.当输入电压值为1.64V时,显示结果如图13所示,测量误差为+0.1V。

图13输入电压为1.64V时,LCD显示结果

3.当输入电压值为3.84V时,显示结果如图14所示,测量误差为+0.1V。

图14输入电压为3.84V时,LCD显示结果

4.当输入电压值为5V时,显示结果如图15所示,测量误差为0V。

图15输入电压为5V时,LCD显示结果

5.22误差分析

通过以上仿真测量结果可得到简易数字电压表与“标准”数字电压表对比测试表,如下表1所示:

标准电压值/V

电压表测量值/V

绝对误差/V

0.00

0.00

0.00

0.50

0.51

0.01

1.12

1.13

0.01

2.18

2.17

0.01

3.00

3.00

0.00

0.25

0.26

0.01

4.00

4.00

0.00

4.36

4.37

0.01

5.00

5.00

0.00

表1数字电压表与“标准”数字电压表对比测试表

由于单片机AT89C51为8位处理器,当输入电压为5.00V时,ADC0808输出数据值为255(FFH),因此单片机最高的数值分辨率为0.0196V(5/255)。

这就决定了电压表的最高分辨率只能到0.0196V,从上表可看到,测试电压一般以0.01V的幅度变化。

从上表可以看出,数字电压表测得的值基本上比标准电压值偏大0-0.01V,这可以通过校正ADC0808的基准电压来解决。

因为该电压表设计时直接用5V的。

6.结论

经过本次为期数月的毕业课题设计,使我真正有机会对大学期间所学的专业知识进行了系统的分析总结,从课题的分析设计到最后的硬件电路设计和软件编程设计的实现,都是在老师的指导下,逐渐完成的。

本课题设计了一个数字多用表,这种数字多用表以单片机80C51作为数据处理主控芯片,并以模数转换芯片ADC0808、液晶显示模块作为外围电路,构成了整个的硬件电路。

待测的模拟量首先经过A/D转换模块,转换成为单片机能够识别和处理的数字信号;然后,单片机对此数字信号进行数据处理;最后,测量结果通过显示模块显示出来。

可以用来测量电压、电流、电阻,而且还可以进行功能的扩展。

由于能力和时间有限,系统还有一些地方不尽如人意。

比如,本系统能直接测量的电压范围为比较小,要想测量大电压必须先进行分压处理。

因为A/D转换器ADC0808有8个输入端口,所以,理论上讲本系统能够分时地对8路信号进行测量;如果接上湿度传感器本系统还能象测量温度那样来测量湿度,而这些工作还有待今后一一地去解决。

元件清单

序号

产品名称

规格型号

数量

备注

1

单片机

AT89C51

1

2

晶振

12MHz

1

3

AD转换器

ADC0808

1

4

电容

1nF

3

5

按钮

2

6

RJ电阻

10KΩ

1

7

排阻

510ΩX7

1

8

RJ电阻

200Ω

1

9

LM016L

1

11

滑动电阻器

1kΩ

2

12

总线

1

 

注:

1、电源可用5V开关电源,也可用USB电源,也可用手机充电器电源等。

参考文献

1.李广弟.单片机基础(第三版)【M】.北京航空航天大学出版社,2007

2.于永,戴佳,常江.51单片机C语言常用模块与综合系统设计实例精讲【M】.电子工业出版社

3.侯玉宝.陈忠平,李成群等.基于Proteus的51系列单片机设计与仿真【M】.北京:

电子工业出版社,2008

4.戴佳,戴卫恒.

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

当前位置:首页 > 总结汇报 > 工作总结汇报

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2