简易数字电压表.docx

上传人:b****4 文档编号:5459362 上传时间:2022-12-16 格式:DOCX 页数:20 大小:250.59KB
下载 相关 举报
简易数字电压表.docx_第1页
第1页 / 共20页
简易数字电压表.docx_第2页
第2页 / 共20页
简易数字电压表.docx_第3页
第3页 / 共20页
简易数字电压表.docx_第4页
第4页 / 共20页
简易数字电压表.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

简易数字电压表.docx

《简易数字电压表.docx》由会员分享,可在线阅读,更多相关《简易数字电压表.docx(20页珍藏版)》请在冰豆网上搜索。

简易数字电压表.docx

简易数字电压表

摘要

本设计数字电压表是利用A/D转换原理,将被测模拟量转换成数字量,并用数字方式显示测量结果的电子测量仪表。

通常数字电压表都采用大规模的A/D转换集成电路,测量精度高,读数方便,在体积、重量、耗电、稳定性及可靠性等方面性能指标均明显优于指针式万用表。

其中,A/D转换器将输入的模拟量转换成数字量,逻辑控制电路产生控制信号,按规定的时序将A/D转换器中各组模拟开关接通或断开,保证A/D转换正常进行。

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

本系统以单片机AT89S52为系统的控制核心,结合A/D转换芯片ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,通过四位数码显示。

具有读数据准确,测量方便的特点。

关键词:

单片机(AT89S52);电压;A/D转换;ADC0809

前言:

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

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

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

由于数字式仪器具有读数准确方便、精度高、误差小、灵敏度高和分辨率高、测量速度快等特点而倍受青睐。

本设计从各个角度分析了由单片机组成的数字电压表的设计过程及各部分电路的组成及其原理,并且分析了程序如何驱动单片机进而使系统运行起来的原理及方法。

本设计主要分为两部分:

硬件电路及软件程序。

而硬件电路又大体可分为单片机小系统电路、A/D转换电路、LED显示电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍;程序的设计使用汇编语言编程,利用Keil软件对其编译,详细的设计算法将会在程序设计部分详细介绍。

目录

设计要求1

1方案论证与对比1

1.1方案一1

1.2方案二1

1.3方案对比与选择2

2系统硬件电路的设计2

2.1A/D转换电路的设计及原理3

2.2数据处理电路的设计及原理4

2.3显示控制电路的设计及原理6

3系统程序的设计8

3.1初始化程序8

3.2主程序8

3.3显示子程序8

3.4A/D转换测量子程序9

4调试及性能分析9

4.1调试与测试10

4.2性能分析10

5详细仪器清单11

6总结与思考及致谢12

参考文献13

附录一:

数字电压表PCB电路原理图14

附录二:

A/D转换与控制PCB电路图15

附录三:

程序16

简易数字电压表

设计要求

主要利用单片机AT89C52芯片,A/D转换采用ADC0809实现简易数字电压表的设计,它可以测量0~5V范围内的8路输入电压值,并在4位LED数码管上轮流显示或单路选择显示。

其测量最小分辨率为0.02V。

1方案论证与对比

1.1方案一

系统采用AT89C52单片机,A/D转换采用ADC0809.系统除能确保实现要求的功能外,还可以很方便地进行8路其他A/D转换的测量和远程测量结果传送等扩展功能。

原理框图如图1所示:

图1方案一系统方框图

1.2方案二

系统采用AT89C52单片机,A/D转换采用MC14433双积分A/D转换器能够实现转换精度高、抗强干扰的数模转换,而且价格便宜,应用于速度要求不高的工程实际中。

如图2所示。

图2方案二系统方框图

但该方案速度不高等缺点。

1.3方案对比与选择

以上方案中方案一中ADC0809属于逐次逼近式A/D转换器,N次逐次逼近A/D转换器最多只需N次D/A转换、比较判断,就可以完成A/D转换。

因此,逐次逼近型A/D转换速度很快,而且带有锁存控制逻辑的8通道多路转换开关,便于选择8路中的任一路进行转换。

而方案二中采用了速度大受限制的MC14433双积分A/D转换器。

通过以上综合分析可以看出,显然方案一要明显优于方案二,因此简易数字电压表采用方案一设计。

2系统硬件电路的设计

采集8个通道的模拟量在数码管显示出来。

模拟量值的测量范围是0-255,第一个数码管用于显示哪一个通道,后三个数码管用于显示采集的模拟量的值,每秒钟显示切换一下通道。

 本设计还有通道选择的功能.有两个按键,一个是调节轮流显示和选择通道两种功能的转换,另一个是选择通道的切换。

要注意的地方:

1、只有当轮流显示的通道快显示到通道8后,长按住功能转换键等出现数码管全熄灭后再放开,就会转到选择通道的功能。

2、切换通道时,也要长按一会,等出现数码管全熄灭后再放开。

简易数字电压表测量电路由A/D转换、数据处理及显示控制等组成。

2.1A/D转换电路的设计及原理

ADC0809是采用逐次逼近式原理的A/D转换器。

1.主要性能

●分辨率为8位二进制数。

●模拟输入电压范围0V~5V,对应A/D转换值为00H~FFH。

●每路A/D转换完成时间为100µs。

●允许输入8路模拟电压,通过具有锁存功能的8路模拟开关,可以分时进行8路A/D转换。

●工作频率为500kHz,输出与TTL电平兼容。

2.ADC0809芯片的组成原理

根据设计要求如图4所示:

图4 A/D转换电路原路图

由图可见,它是由地址锁存器、8路模拟开关、8位逐次A/D转换器和三态锁存输出缓冲器构成。

由3位地址输入线ADDRA、ADDRB、ADDRC决定8路模拟输入中的1路进8位A/D转换器,A/D转换值进入三态锁存输出缓冲器暂存,在CPU发来输出允许控制信号OE后,三态门打开,经DB7~DB0进入CPU总线,完成一次A/D转换全过程。

3.ADC0809引脚功能

ADC0809采用28引脚的封装,双列直插式。

A/D转换由集成电路0809完成。

0809具有8路模拟输入端口,地址线(23~-25脚——即C,B,A,)可决定对哪一路模拟输入作A/D转换。

22脚为地址锁存控制(ALE),当输入为高电平时,对地址信号进行锁存。

6脚为测试控制(START),当输入一个2uS宽高电平脉冲时,就开始A/D转换。

7脚为A/D转换结束标志(EOC),当A/D转换结束时,7脚输出高电平。

9脚为A/D转换数据输出允许控制(OE),当OE脚为高电平时,A/D转换数据从该端口输出。

10脚为0809的时钟输入端(CLOCK),利用单片机30脚的六分频晶振频率再通过14024二分频得到1MHz时钟。

单片机的P1、P3.0~P3.3端口作为四位LED数码管显示控制。

P3.5端口用作单路显示/循环显示转换按钮,P3.6端口用作单路显示时选择通道。

P0端口作A/D转换数据读入用,P2端口用作0809的A/D转换控制。

2.2数据处理电路的设计及原理

原理图如图5所示:

图5电路原理图

AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。

AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。

其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。

  主要功能特性:

  ·兼容MCS51指令系统·8k可反复擦写(>1000次)FlashROM

  ·32个双向I/O口·256x8bit内部RAM

  ·3个16位可编程定时/计数器中断·时钟频率0-24MHz

  ·2个串行中断·可编程UART串行通道

  ·2个外部中断源·共6个中断源

  ·2个读写中断口线·3级加密位

·低功耗空闲和掉电模式·软件设置睡眠和唤醒功能

P0口:

P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。

P1口:

P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

·P2口:

P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

P3口:

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

P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

RST:

复位输入。

ALE/PROG:

当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

PSEN:

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

EA/VPP:

外部访问允许。

XTAL1:

振荡器反相放大器的及内部时钟发生器的输入端。

XTAL2:

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

2.3显示控制电路的设计及原理

显示子程序采用动态扫描法实现4位数码管的数值显示。

测量所得的A/D转换数据放70H~77H内存单元中,测量数据在显示时须经过转换成为十进制BCD码放在78H~7BH单元中,其中7B存放通道标志数。

寄存器R3用作8路循环控制,R0用作显示数据地址指针。

本系统显示部分采用4位数码管动态扫描显示。

动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。

其接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。

CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以我们就可以自行决定何时显示哪一位了。

而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的COM端,使各个数码管轮流点亮。

本系统采用4位共阴极数码管,COM端接接P20~P23端,8个笔划段a-h分别按顺序接P07~P00,轮流给P20~P23口低电平,使各个数码管轮流点亮。

在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。

电路如图6示:

图6显示控制电路

3系统程序的设计

3.1初始化程序

系统时,初始化程序主要用来执行70H~77H内存单元清0和P2口置0等准备工作。

3.2主程序

在刚上电时,系统默认为循环显示8个通道的电压值状态。

当进行一次测量后,将显示每一通道的A/D转换值,每个通道的数据显示时间在1S左右。

主程序在调用显示子程序与测量子程序之间循环。

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

图7主程序流程图

3.3显示子程序

显示子程序采用动态扫描法实现四位数码管的数值显示。

测量所得的A/D转换数据放在70H~77H内存单元中,测量数据在显示时须经过转换成为十进制BCD码放在78H~77H单元中,其中7BH存放通道标志数。

寄存器R3用作8路循环控制,R0用作显示数据地址指针。

3.4A/D转换测量子程序

A/D转换测量子程序用来控制对ADC0809的8路模拟输入电压的A/D转换,并将对应的数值移入70H~77H内存单元。

A/D转换测量子程序程序流程图如图8所示。

图8A/D转换测量子程序流程图

4调试及性能分析

4.1调试与测试

采用KeilC51编译器进行源程序编译及仿真调试,同时进行硬件电路板的设计制作,烧录好程序后进行软硬件联调,最后进行端口电压的对比测试。

测试对比表如表1.1所列。

表中标准电压值采用UT56数字万用表测得。

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

标准电压值/V

0.00

0.15

1.00

1.45

2.25

2.72

简易电压表测得值/V

0.00

0.16

1.02

1.47

2.26

2.73

绝对误差/V

0.00

+0.01

+0.02

+0.02

+0.01

0.01

标准电压值/V

3.00

3.45

4.00

4.50

4.75

4.90

简易电压表测得值/V

3.01

3.47

4.01

4.52

4.76

4.92

绝对误差/V

+0.01

+0.02

+0.01

0.02

0.01

0.02

从表中可以看出,简易数字电压表与“标准”数字电压表测得的绝对误差均在0.02V以内,这采用8位A/D转换器所能达到的理论误差精度相一致,在一般的应用场合可温泉满足要求。

4.2性能分析

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

这就决定了该电压表的最高分精度要求,则应采用12位、13位的A/D转换器。

(2)从表格1中可以看出,简易电压表测得的值基本上均比标准电压值偏大0.01~0.02V.这可以通过校正ADC0809的基准电压来解决。

因为该电压表设计时直接用5V的供电电源作为基准电压,所以电压可能有偏差。

另外,还可以用软件编程来校正测量值。

(3)ADC0809的直流输入阻抗为1MΩ,能满足常用的电压测试需要。

另外,经测试ADC0809可直接在2MHZ的时钟频率下工作,这样可省去二进制分频器14024集成块。

(4)当要测量大于5V的电压时,可在输入口使用分压电阻,而程序中只要将计算程序的除数进行调整就可以了。

但是量程越大,测量精度会越低。

 

5详细仪器清单

 

表格2仪器清单

序号

仪器名称

数量

1

PCB板

1

2

STC89C52

1

3

ADC0809CCN芯片

1

4

10欧电阻

2

5

4.7千欧电阻

4

6

8.2千欧电阻

1

7

510欧电阻

8

8

10uF电容

1

9

30pF电容

2

10

11.597MHz晶振

1

11

按钮

2

12

LED数码管

4

13

14024芯片

1

14

244芯片

1

6总结与思考及致谢

这次单片机课程设计意义非同一般,把我从单深入的理论编程到硬件软件综合实现一个使用的电路。

通过这学期的单片机的学习,知道了单片机在实际应用中占据很重要的作用,也了解单片机本身的功能,用编程控制;也了解了单片机的一些扩展功能。

通过这次设计,我更深入地了解到单片机的使用原理和功能。

为期两周的设计中,我看到很多同学都很努力,很认真,我也不敢懈怠。

虽说两周的时间有点仓促,但老师和同学们夜以继日在解决问题,我做简易数字电表的设计中也遇到些许问题,但经过知道老师伍老师、曹老师的详细讲解,而且查阅很多有价值的书籍,我从中认识了不少。

也增强了自己发现问题解决问题的能力。

还有在编程的时候要仔细,要实现一个完整的功能就要考虑全面,在测试程序的时候要善于发现错误,而且可能是一些小问题,比如说把立即数和地址混用,这是很常见的。

虽然这次只是实现电压表的简易设计,我相信通过这次学习,会确定我向更高更远的方向漫步,比如电压测量通过扩展接口电路可实现电容、温度、湿度、压力等测量,广泛应用于工业领域。

本电路设计别具一格,是一种可调度高、低功耗、宽量程的电压表。

可扩展键盘、EEPROM、报警电路,实现电压异常记录、报警等。

两周的设计完满结束了,经过自己的努力和同学的帮忙终于有了成果,特别离不开指导老师伍老师、曹老师的悉心教导,伍老师的精心指导和解说使我受益匪浅,相信他的工作作风和知识筑成都是我们学习榜样,给我很大的启迪。

感谢这些老师不畏辛劳,热心精心的指导。

在这里向他们说声谢谢,你们辛苦了。

 

参考文献

[1]张鑫.单片微机原理与应用.北京.电子工业出版社.2008

[2]楼然苗.李光飞.单片机课程设计指导.北京.航空航天大学出版社.2007

[3]长洪润.刘秀英.单片机应用设计200例(上、下).北京.航空航天大学出版社.2006

[4]张毅刚.新编MCS-51单片机应用设计(第3版)哈尔滨工业大学出版社.2008

[5]马静.单片机原理与应用.实践教学指导书中国计量出版社.2003

 

附录一:

数字电压表PCB电路原理图

 

附录二:

A/D转换与控制PCB电路图

 

附录三:

程序

ORG0000H

LJMPSTART

ORG0003H

RETI

ORG000BH

RETI

ORG0013H

RETI

ORG001BH

RETI

ORG0023H

RETI

ORG002BH

RETI

QING:

CLRA

MOVP2,A

MOVR0,#70H

MOVR2,#0DH

LPM:

MOV@R0,A

INCR0

DJNZR2,LPM

MOV20H,#00H

MOVA,#0FFH

MOVP0,A

MOVP1,A

MOVP3,A

RET

START:

LCALLCLM

MAIN:

LCALLTEST

LCALLXIANSHI

AJMPMAIN

NOP

NOP

NOP

LJMPSTART

XIANSHI:

JB00H,XIAN3

MOVR3,#08H

MOVR0,#70H

MOV7BH,#00H

XIAN1:

LCALLTBCD

MOVR2,#0FFH;每路显示时间控制4MS*255

XIAN2:

LCALLDISP;

LCALLKEY1;

DJNZR2,XIAN2;

INCR0;

INC7BH;

DJNZR3,XIAN1

RET

;

XIAN3:

MOVA,7BH

SUBBA,#01H

MOV7BH,A

ADDA,#70H

MOVR0,A

DLP1:

LCALLTBCD

MOVR2,#0FFH;每路显示时间控制4MS*25

DLP2:

LCALLDISP

LCALLKEY2

DJNZR2,DLP2

INC7BH;通道显示数加一

RET

TBCD:

MOVA,@R0;255/51=5.00V运算

MOVB,#51

DIVAB

MOV7AH,A

MOVA,B

CLRF0

SUBBA,#1AH

MOVF0,C

MOVA,#10

MULAB

MOVB,#51

DIVAB

JBF0,LOOP

ADDA,#5

LOOP:

MOV79H,A

CLRF0

SUBBA,#1AH

MOVF0,C

MOVA,#10

MULAB

MOVB,#51

DIVAB

JBF0,LOOP1

ADDA,#5

LOOP1:

MOV78H,A

RET

DISP:

MOVR1,#78H

MOVR5,#0FEH

PLAY:

MOVP1,#0FFH

MOVA,R5

ANLP3,A

MOVA,@R1

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP1,A

JBP3.2,PLAY1

CLRP1.7

PLAY1:

LCALLDL1MS

INCR1

MOVA,P3

JNBACC.3,ENDOUT

RLA

MOVR5,A

MOVP3,#0FFH

AJMPPLAY

ENDOUT:

MOVP3,#0FFH

MOVP1,#0FFH

RET

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH

DL10MS:

MOVR6,#0D0H

DL1:

MOVR7,#19H

DL2:

DJNZR7,DL2

DJNZR6,DL1

RET

;

DL1MS:

MOVR4,#0FFH;513+513=1MS

LOOP11:

DJNZR4,LOOP11

MOVR4,#0FFH

LOOP22:

DJNZR4,LOOP22

RET

TEST:

CLRA

MOVP2,A

MOVR0,#70H

MOVR7,#08H

LCALLTESTART

WAIT:

JBP2.5,MOVD

AJMPWAIT

;

TESTART:

SETBP2.3

NOP

NOP

CLRP2.3

SETBP2.4

NOP

NOP

CLRP2.4

NOP

NOP

NOP

NOP

RET

;

MOVD:

SETBP2.6

MOVA,P0

MOV@R0,A

CLRP2.6

INCR0

MOVA,P2

INCA

MOVP2,A

CJNEA,#08H,TESTEND

TESTEND:

JCTESTCON

CLRA

MOVP2,A

MOVA,#0FFH

MOVP0,A

MOVP1,A

MOVP3,A

RET

;

TESTCON:

LCALLTESTART

LJMPWAIT

KEY1:

JNBP3.3,KEY11

KEYOUT:

RET

;

KEY11:

LCALLDISP

JBP3.3,KEYOUT

WAIT11:

JNBP3.3,WAIT12

CPL00H

MOVR2,#01H

MOVR3,#01H

RET

;

WAIT12:

LCALLDISP

AJMPWAIT11

KEY2:

JNBP3.3,KEY11

JNBP3.2,KEY22

RET

;

KEY22:

LCALLDISP

JBP3.2,KEYOUT

WAIT22:

JNBP3.2,WAIT21

INC7BH

MOVA,7BH

CJNEA,#08H,KEYOUT11

KEYOUT11:

JCKEYOUT1

MOV7BH,#00H

KEYOUT1:

RET

;

WAIT21:

LCALLDISP

AJMPWAIT22

;

END

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

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

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

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