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

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

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

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

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

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

摘要

本文介绍了基于89c51单片机的一种8路输入电压测量电路,该电路采用ADC0809作为A/D转换元件,测量范围0至5伏,小数点后显示一位。

要求能够依次显示每路通道电压,而且能够通过拨码开关选择输入通道。

使用3位LED模块显示,前面一位显示通道号,后面两位显示测量电压值。

本系统主要包括四大模块:

数据采集模块、控制模块、显示模块、A/D转换模块。

绘制电路原理图与工作流程图,并进行调试,最终设计完成了该系统的硬件电路。

在软件编程上,采用了汇编语言进行编程,开发环境使用WAVE集成开发环境。

开发了显示模块程序、通道切换程序、A/D转换程序。

关键词:

ADC0809;A/D转换;LED显示

目录

1方法论证5

1.1系统的设计任务5

1.2设计方案5

1.3软硬件开发环境6

2数字电压表硬件设计7

2.1单片机主电路设计7

2.1.1复位电路7

2.1.2晶振电路7

2.2测量、转换电路设计8

2.3按键电路设计9

2.4显示电路设计10

2.4.1LED数码管构成10

2.4.2显示方式11

3软件设计14

3.1主程序设计14

3.1.1工作流程14

3.1.2存储空间定义安排15

3.2模块程序设计15

3.2.1A/D转换测量程序15

3.2.2显示程序16

4系统调试与分析18

4.1调试内容及问题解决18

4.2系统进一步改进方案18

附录1:

硬件原理图20

附录2:

程序清单21

参考文献24

1方法论证

1.1系统的设计任务

设计单片机主电路、数据采集接口电路、LED显示电路、拨码控制电路,能够实现对8路电压值进行测量,能够显示当前测量通道号及电压值,电压精度小数点后1位,可以通过键盘选择循环显示8路的检测电压值和指定通道的检测电压值。

1.2设计方案

将数据采集接口电路输入电压传入ADC0809数模转换元件,经转换后通过D0至D7与单片机P0口连接,把转换完的模拟信号以数字信号的信号的形式传给单片机,信号经过单片机处理从LED数码显示管显示。

拨码开关连P3口,实现通道选择。

P2口接数码管位选,P1接数码管,实现数据的动态显示,如下图所示。

图1.1系统总体方案结构图

 

1.3软硬件开发环境

硬件选择:

选择89c51作为单片机芯片,选用8段共阴极LED数码管实现电压显示,选用独立式按键作为程序的跳转与选择,利用ADC0809作为数模转换芯片,利用P0至P4的各个串口来进行不同设备间的连接,计算机进行汇编,H51/L仿真器,单片机多功能实验箱。

软件开发环境:

用Protel99SE软件画电路图、WAVE软件进行程序编写。

 

2数字电压表硬件设计

2.1单片机主电路设计

在本次课题设计中我们选择了8951芯片,其具有功能强、体积小、成本低、功耗小等特点,它可单独地完成现代工业控制所要求的智能化控制功能,能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。

2.1.1复位电路

复位电路如图2.1所示,单片机系统常常有上电复位和操作复位两种。

上电复位是指单片机上点瞬间,要在RST引脚上出现宽度大于10ms的正脉冲,才能使单片机进入复位状态。

操作复位是指用户按下“复位”按钮使单片机进入复位状态。

 

图2.1复位电路

2.1.2晶振电路

晶振电路用于产生单片机工作所需的时钟信号,使用晶体震荡器时,c2,c3取值20~40PF,使用陶瓷震荡器时c2,c3取值30~50PF。

在设计电路板时,晶振和电容应尽量靠近芯片,以减小分布电容,保证震荡器的稳定性。

18引脚接XTAL1,19引脚接XTAL2,20引脚接地。

图2.2晶振电路

2.2测量、转换电路设计

使用ADC0809作为数模转换元件,其引脚图如2.3所示

图2.3ADC0809引脚图

ADC0809是带有8:

1多路模拟开关的8位A/D转换芯片,所以它可有8个模拟量的输入端,由芯片的A,B,C三个引脚来选择模拟通道中的一个。

A,B,C三端分别与89C51的P0.0~P0.2相接。

地址锁存信号(ALE)和启动转换信号(START),由P2.6和/WR或非得到。

输出允许,由P2.6和/RD或非得到。

时钟信号,可有89C51的ALE输出得到,不过当采用12M晶振时,应该先进行二分频,以满足ADC0809的时钟信号必须小于640K的要求。

与单片机的连接如图2.4所示

图2.4数据转换系统电路图

2.3按键电路设计

按键选择上有两种方法可供选择,独立式按键与矩阵式按键,再此使用了独立式按键。

按键模块如图2.5所示,其与P3口连接,实现通道选择。

对按键的工作过程可分为两步:

第一步是CPU首先检测键盘上是否有键按下;第二步是在识别是哪一个键按下。

检测键盘上有无键按下可采取查询各自方式、定时扫描构造方式和中断耕作方式。

在此选择了查询工作方式。

按键模块如图2.5所示,其与P3口连接,实现通道选择。

 

图2.5按键模块

2.4显示电路设计

2.4.1LED数码管构成

LED数码管显示器是由发光二极管显示字段的显示器件,也称为数码管。

其外形结构如图所示。

它由8个发光二极管构成,通过不同的组合可用来显示0-9、A-F及小数点“.”等字符。

数码管有共阴极和共阳极两种结构规格,如图2.5所示。

图中电阻为外接。

共阴极数码管的发光二极管阴极共地,当某发光二极管的阳极为高电平时,二极管点亮;共阳极数码管的发光二极管是阳极,并接高电平,对于需点亮的发光二极管将其阴极接低电平即可。

对照图2.5中的字段:

7段发光二极管,在加上1个小数点位,共计8段,因此提供给LED显示器的字形码正好一字节。

图2.6(a)共阴极图2.6(b)共阳极

图2.6(C)字段显示

2.4.2显示方式

(1)静态显示方式

直接利用并行口输出。

LED显示工作于静态显示方式时,各位的共阴极连接在一起接地;每位的段选线分别于一个8位的锁存输出相连。

一般称之为静态显示,是由于显示器中的各位相互独立。

而且各位的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止。

利用通信号串行输出。

在实际应用中,多位LED显示时,为了简化电路,在系统不需要通信功能时,经常采用串行通信口工作方式0,外接移位寄存器74LS164、CD4094来实现静态显示。

(2)动态显示方式

对多位LED显示器的动态显示,通常都时采用动态扫描的方法进行显示,即逐个循环点亮各位显示器。

这样虽然在任一时刻只有一位显示器被点亮,但是由于间隔时间较短,且人眼具有视觉残留效应,看起来与全部显示器持续点亮一样。

为了实现LED显示器的动态扫描,除了要给显示器提供的输入之外,还要对显示器加位选择控制,这就是通常所说的段控和位控。

因此多位LED显示器接口电路需要有两个输出口,其中一个用于输出8位控信号;另一个用于输出段控信号,其连接图如下。

2.7LED显示电路

 

表2.1七段LED段选码表

显示字符

共阴极段

显示字符

共阴极段

0

3FH

C

39H

1

06H

D

5EH

2

5BH

E

79H

3

4FH

F

71H

4

66H

P

73H

5

6DH

U

3EH

6

7DH

Γ

31H

7

07H

y

6EH

8

7FH

8.

FFH

9

6FH

“灭”

00H

A

77H

/

/

B

7CH

/

/

 

3软件设计

3.1主程序设计

3.1.1工作流程

首先拨动拨码开关k1,如果是低电平,程序转向选择通道程序,拨动k2的次数即是选择的通道号,拨动k3表示确认。

转向数据读取程序,再到显示程序,显示出通道号和电压值。

如果k1是高电平,则转向循环显示程序,即先显示第0路最后显示第7路电压值和相应通道号。

工作流程图如下:

 

N

Y

 

图3.1主程序流程

 

3.1.2存储空间定义安排

60H用于存放A/D转换结果,30H、31H、32H分别存储显示用的三位数据如下表:

表3.1存储空间定义表

60H

用于存放A/D转换结果

30H

电压值整数部分

31H

电压值小数部分

32H

循环显示的通道号

34H

选择的通道号

3.2模块程序设计

3.2.1A/D转换测量程序

A/D转换的常用方法有:

①计数式A/D转换,②逐次逼近型A/D转换,③双积分式A/D转换,④V/F变换型A/D转换。

在这些转换方式中,记数式A/D转换线路比较简单,但转换速度较慢,所以现在很少应用。

双积分式A/D转换精度高,多用于数据采集及精度要求比较高的场合,如5G14433(31/2位),AD7555(41/2位或51/2位)等,但速度更慢。

逐次逼近型A/D转换既照顾了转换速度,有具有一定的精度,这里选用的是逐次逼近型的A/D转换芯片ADC0809。

采用中断控制的方式实现,不浪费时间,效率较高。

其流程图如下:

 

图3.2A/D转换测量程序

3.2.2显示程序

对多位LED显示器的动态显示,通常都是采用动态扫描的方法进行显示,即逐个循环点亮各位显示器。

这样虽然在任一时刻只有一位显示器被点亮,但是由于间隔时间较短,且人眼具有视觉残留效应,看起来与全部显示器持续点亮一样。

为了实现LED显示器的动态扫描,除了要给显示器提供的输入之外,还要对显示器加位选择控制,这就是通常所说的段控和位控。

因此多位LED显示器接口电路需要有两个输出口,其中一个用于输出8位为控信号;另一个用于输出段控信号。

图3.3显示子程序

 

4系统调试与分析

4.1调试内容及问题解决

程序可分为数据采集系统、数据转换系统、显示系统和按键控制系统,这四部分先独立测试,然后整体调试。

显示系统的调试:

要显示的数据存放在30H、31H、32H单元中,先在30H、31H、32H分单元中存放0~10的数,运行显示程序,察看显示的结果是否与存放值一样。

在测试的过程中发现小数点没有显示,通过指令ORL30H,#80H,把小数点显示出来。

按键控制系统调试:

拨动k2在34H单元内容看是否和拨动次数相同。

整体测试:

把个部分用线连接,P3接拨码开关,P2接数码管,P3接位选。

仿真器、仿真头连好,进入WAVE软件,设置仿真器。

编译程序,看是否存在错误。

4.2系统进一步改进方案

进一步提高测量精度,把精确到小数点后一位改为精确到小数点后两位。

具体程序如下:

MOVXA,@DPTR;读取转换后的数据.

MOVB,#51;255÷51=5.00V运算

DIVAB

MOV33H,A;;个位数放入33H

MOVA,B;;余数大于19H,F0为1,乘法溢出,结果加5

CLRF0

SUBBA,#1AH

MOVF0,C

MOVA,#10

MULAB

MOVB,#51

DIVAB

JBF0,LOOP2

ADDA,#5

LOOP2:

MOV34H,A;;小数后第一位放入34H

MOVA,B

CLRF0

SUBBA,#1AH

MOVF0,C

MOVA,#10

MULAB

MOVB,#51

DIVAB

JBF0,LOOP3

ADDA,#5H

LOOP3:

MOV35H,A;;小数后第二位放入35H

 

附录1:

硬件原理图

 

 

附录2:

程序清单

ORGOOOOH

LJMPMAIN

ORG0013H

LJMPOVER

MAIN:

JNBP3.0XZ;高电循环显示,低电平选择通道

MOVRO,#60H

MOVR1,#08H;8个通道

CLR34H

XZ1:

MOVR2,#34H;选择通道IN0

SETBEA

SETBIT1

SETBEX1

MOVDPTR,@#08FFFH;第0路地址

MOVA,R2

MOVX@DPTR,A;启动A/D转换

SJMP$

XZ:

JBP3.4,XZ

W1:

JNBP3.4W1;拨码开关一个来回计数一次

CLRA

INCA

JNBP3.5

MOV34H,A;计数次数存入34H

LJMPXZ1;跳到通道选择程序

OVER:

CLREX1

MOVDPTR,#08FFFH

SUBDPTR,34H

MOVXA,@DPTR

MOV@R0,A

INCR2

MOV33H,#100;延时两秒

LJMPXIANSHI

JX:

MOVA,R2

DJNZR1,WAIT

WAIT:

SETBEX1

MOVX@DPTR,A

ED:

RETI

;;;;;;;;把00000000到11111111的数转换成十进制数;;;;;;

XIANSHI:

MOV33H,#0

MOVA,6OH

MOVB,#51

DIVAB

MOV30H,A;把整数放入30H

MOVA,B

MOVB,#51

MULA,#10

MOVB,#51

DIVAB

MOV31H,A;把小数放入31H

MOVR6,#30H

;;;;;;;;;;;;动态显示程序;;;;;;;;;

MOVDPTR#TAB

MOVR7,#01H

CLRA

MOVP3,A

L:

MOVA,@R6

ANLA,#0FH

MOVCA,@A+DPTR

MOVP1,A

MOVA,R7

MOVP3,A

LCALLD20MS

INCR6

CJNER6,#32H,L0

MOVR6,#30H

L0:

RLA

MOVR7,A;两秒后进行下一路

SJMPL

DEC33H

JNB33H,JX

TAB:

DB3FH,06H,5BH,4FH,66H;0,1,2,3,4

DB6DH,7DH,07H,7FH,6FH;5,6,7,8,9

D20MS:

MOVR4,#100;20毫秒延时程序

L1:

MOVR5,#10

L2:

DJNZR5,L2

DJNZR4,L1

RET

 

 

参考文献

[1]徐爱钧.智能化测量控制仪表原理与设计(第二版).北京:

北京航空航天大学出版社,2004

[2]吴金戌.8051单片机实践与应用.北京:

清华大学出版社,2002

[3]张国勋.缩短ICL7135A/D采样程序时间的一种方法,1993

[4]高峰.单片微型计算机与接口技术.北京:

科学出版社,2003

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

当前位置:首页 > 工程科技 > 冶金矿山地质

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

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