基于单片机控制的数字电压表.docx

上传人:b****3 文档编号:6603045 上传时间:2023-05-10 格式:DOCX 页数:11 大小:78.24KB
下载 相关 举报
基于单片机控制的数字电压表.docx_第1页
第1页 / 共11页
基于单片机控制的数字电压表.docx_第2页
第2页 / 共11页
基于单片机控制的数字电压表.docx_第3页
第3页 / 共11页
基于单片机控制的数字电压表.docx_第4页
第4页 / 共11页
基于单片机控制的数字电压表.docx_第5页
第5页 / 共11页
基于单片机控制的数字电压表.docx_第6页
第6页 / 共11页
基于单片机控制的数字电压表.docx_第7页
第7页 / 共11页
基于单片机控制的数字电压表.docx_第8页
第8页 / 共11页
基于单片机控制的数字电压表.docx_第9页
第9页 / 共11页
基于单片机控制的数字电压表.docx_第10页
第10页 / 共11页
基于单片机控制的数字电压表.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于单片机控制的数字电压表.docx

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

基于单片机控制的数字电压表.docx

基于单片机控制的数字电压表

基于单片机控制的数字电压表

摘要:

本设计阐述了以AT89S51和ADC0809及他一些外围元器件组成的具有LED显示的数字电压表.该电路采用ADC0809转换器。

ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。

它是逐次逼近式A/D转换器,可以和单片机直接接口。

使用4位并行共阳数码显示,测压范围在0——5V,精度误差在0.02V以内,能够同时采集8路数据并能循环(6位)显示。

正文着重给出了软硬件系统的各部分电路,重点介绍AT89S51和ADC0809的功能和应用。

关键词:

单片机AT89S51;ADC0809模数转换器;锁存器;LED显示

1引言

单片机是一种集成电路芯片,随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

由于单片机具有简单实用、高可靠性、良好的性能价格比以及体积小等优点,已经在各个技术领域得到了迅猛发展。

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

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

目前,由各种单片A/D转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。

与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。

本设计重点介绍单片A/D转换器以及由它们构成的基于单片机的数字电压表的工作原理。

2总体设计方案

2.1设路计思

按系统功能要求,决定控制系统采用AT89S51单片机,A/D转换采用ADC0809.系统除能确保实现要求的功能外,还可以方便地进行其功能的扩展。

本文采用AT89S51作为核心元件,AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。

采用NS公司的分辨率为8位的逐次比较型的高精度的模数转换器ADC0809,ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。

它是逐次逼近式A/D转换器,可以和单片机直接接口。

把采取的电压进行处理然后通过单片机的P口送到单片机然后经过程序处理,由LED电路把电压数值显示出来。

单片机加上外围的串口显示电路由74LS245和数码管三极管组成。

器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。

它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价AT89s51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。

2.2设计方框图

图2.1数字电压表系统设计方案

3设计原理分析

3.1单片机AT89S51

AT89S51单片机是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4Kbytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。

它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。

3.2AT89S51的特点:

40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。

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

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

主要特性在:

●与MCS-51单片机产品兼容

●4K字节在系统可编程Flash存储器

●1000次擦写周期

●全静态工作:

0Hz—33MHz

●32个可编程I/O口线

●2个16位定时器/计数器

●6个中断源

●全双工UART串行通道

●低功耗空闲和掉电模式

●掉电后中断可唤醒

●看门狗定时器

●双数据指针

●灵活的ISP编程(字或字节模式)

●4.0---5.5V电压工作范围

3.3ADC0809的内部逻辑结构

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

设计时假设待测的输入电压为八路,电压值的范围为0~5V,要求能在4位LED数码管上轮流显示或单路选择显示。

测量的最小分辨率为0.0119V,c测量误差为±0.02V。

ADC0809是8路8位ADC芯片,片内有8路模拟开关、地址锁存与译码、256电阻梯形网络、电子开关树、逐次逼近寄存器、比较器和3态输出锁存器等,特别适合与微机接口。

时钟频率=1.26MHz,转换时间=100μs,转换误差≤±1LSB,内含8路数据选择器以便进行8路ADC。

8路8位2进制码LSTTL电平输出,28脚封装。

ADC0809多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。

三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。

ADC0809的内部逻辑结构如图3.1所示。

图3.1ADC0809的内部逻辑结构

3.4引脚结构

ADC0809具有8路模拟量输入通道IN0~IN7,通过3位地址输入端C、B、A(因脚23、24、25)进行选择。

引脚22为地址锁存控制端ALE,当输入为高电平时,C、B、A引脚输入的地址锁存与ADC0809内部的锁存器中,经内部译码电路译码选中相应的模拟通道。

引脚6为启动转换控制端START,当输入一个2us宽的高电平脉冲时,就启动ADC0809开始对输入通道的模拟量进行转换。

引脚7为A/D转换的结束信号EOC。

ADC0809为逐次比较型A/D转换器,当开始转换时,EOC信号为低电平,经过一定时间,转换结束,转换结束信号EOC输出高电平,转换结果存放与ADC0809内部的输出数据锁存器中。

引脚9为A/D转换数据输出允许控制端OE,当OE为高电平时,存放与输出数据存储器中的数据通过ADC0809的数据线D0~D7输出。

引脚10为ADC0809的时钟信号输入端CLOCK。

在连接时,ADC0809的数据线D0~D7与AT89S51的P0口相连,ADC0809的地址引脚、地址锁存端ALE、启动信号START、数据输出允许控制端OE分别与AT89S51的P2口相连,转换结束信号EOC与AT89S51的P3.7口相连。

时钟信号输入端CLOCK信号,由单片机的地址锁存控制端ALE提供。

单片机的系统时钟为12MHZ。

IN0-IN7:

8条模拟量输入通道。

ADC0809对输入模拟量要求:

信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。

地址输入和控制线:

4条。

ALE为地址锁存允许输入线,高电平有效。

当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。

A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。

数字量输出及控制线:

11条。

ST为转换启动信号,当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。

EOC为转换结束信号。

当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。

OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。

OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。

D7-D0为数字量输出线。

CLK为时钟输入信号线。

因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为1MHZ,VREF(+),VREF(-)为参考电压输入。

3.5ADC0809应用说明

ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。

初始化时,使ST和OE信号全为低电平。

送要转换的哪一通道的地址到A,B,C端口上。

在ST端给出一个至少有100ns宽的正脉冲信号。

是否转换完毕,我们根据EOC信号来判断。

当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机。

3.6ADC0809工作原理

8路模拟信号由ADC0809的IN0~IN7端输入,AT89S51单片机的ALE端口输出的脉冲信号送ADC0809的10脚作为ADC的时钟信号(产生CLK信号的方法就得用软件来产生)。

A/D转换完成之后,从EOC端返回AT89S51一个转换结束信号,单片机随即用

信号将A/D转换的数字输出从D0~D7端经P0口数据总线读入自己的存储器中。

A/D转换过程全部结束。

再经软件程序转换成a~g7段码输出,驱动LED数码管。

各位数码管由位控信号P3.0、P3.1、P3.2、P3.3控制,由74LS245反相驱动将依次巡回点亮数码管。

3.7复位电路的设计

本设计采用了上电自动复位和手动复位,上电自动复位是再加电瞬间电容通过充电来实现的,其电路如图3.2所示。

在充电瞬间,电容C通过复位电阻R充电,RST端出现正脉冲,以复位。

只要电源VCC的上升时间不超过1MS,就可以实现自动复位,既接通电源就完成了系统的复位初始化,手动复位是通过按钮实现的。

图3.2复位电路

3.8时钟电路的设计

任何一块单片机的正常工作都离不开时钟信号,本设计中利用8951内部的高增益反相放大器,外加石英晶体以及两个电容就构成了稳定的自激振荡器。

给单片机提供了时钟信号,保持单片机按正常的时序工作。

图3.3时钟电路

4结束语

由于第一次实践,加之条件有限,所以硬件做的就不理想。

我们是在上一学期学的单片机,经过半年之后再一次看到这门课程时,越看越觉得自己以前学的真的只是一些皮毛,在设计硬件电路时还好一些,毕竟在单片机设计时用的外围电路用的是比较少的。

设计程序时就麻烦多了,第一次搞这样的设计,加上对汇编程序又有些生疏真的是无从下手,不过在老师的指导下,我慢慢的进入了状态,在第一周的后几天里我先把硬件原理图画出来,在第二周就是完成一些程序的编写,和对硬件的调度,以及电路的焊接。

对与我来说好一点的是自己在上职高时搞过硬件的焊接,焊接方面没有太大的问题。

很多时间都花费在了程序的编写上,不过最终完成了设计要求.我也曾经一度的迷茫过,不知道到底该怎么去完成这个课程设计了。

但是现在通过这个设计我知道了自己的缺点和不足。

这对于我的帮助是很大的。

加深了自己对自己的了解!

在图书馆和网上查资料也是对自己知识的一个循序渐进的补充的过程!

得到了同学们的热心帮助,学到了很多知识,令人难忘!

也使自己的对自己的信心倍增同时我也受益匪浅!

最后衷心的感谢老师们给予我的帮助和指导!

参考文献

[1]李朝青.单片机原理及接口技术[M].北京:

北京航空航天出版社,2004年

[2]李光飞.51系列单片机设计实例[M].北京:

北京航空航天出版社,2004年

[3]康华光.电子技术基础.数字部分[M].北京:

高等教育出版社,2000.7

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

科学出版社,2003.

[5]吴金戌,沈庆阳,郭庭吉.《8051单片机实践与应用》[M].北京:

清华大学出版社,2002.

 

附录1总电路图

附录2总程序

主程序和中断程序入口

ORG0000H

LJMPSTART

ORG0003H

REIT

ORG000BH

RETI

ORG0013H

RETI

ORG001BH

RETI

ORG0023H

RETI

ORG002BH

RETI

CLEARMEMIO:

CLRA

MOVP2,A

MOVR0,#70H

MOVR2,#0CH

LOOPMEM:

MOV@R0,A

INCR0

DJNZR2,LOOPMEM

MOVA,#0FFH

MOVP0,A

MOVP1,A

MOVP3,A

RET

主程序

START:

LCALLCLEARMEMIO

MAIN:

LCALLDISPLAY

LCALLTEST

AJMPMAIN

NOP

NOP

NOP

LJMPSTART

DISPLAY:

MOVR3,#08H

MOVR0,#70H

MOV7BH,#00H

DISLOOP1:

MOVA,@R0

MOVB,#100

DIVAB

MOV7AH,A

MOVA,#10

XCHA,B

DIVA,B

MOV79H,A

MOV78H,B

MOVR2,#0FFH

DISLOOP2:

LCALLDISP

DJNZR2,DISLOOP2

INCR0

INC7BH

DJNZR3,DISLOOP1

RET

DISP:

MOVR1,#78H

MOVR5,#0FEH

PLAY:

MOVP1,#0FFH

MOVA,R5

ANLP3,A

MOVA,#R1

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP1

LCALLDLIMS

INCR1

MOVA,P3

JNBACC.3ENDOUT

RLA

MOVR5,A

MOVP3,#0FFH

AJMPPLAY

ENDOUT:

MOVP3,#0FFH

MOVP1,0FFH

RET

TAB:

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

1ms延时子程序,LED显示用

DL1MS:

MOVR6,#14H

DL1:

MOVR7,#19H

DL2:

DJNZR7,DL2

DJNZR6,DL1

RET

模数转换测量子程序

TEST:

CLRA

MOVP2,A

MOVR0,#70H

MOVR7,#08H

LCALLTESTART

WAIT:

JBP3.7,MOVD

AJMPWAIT

TESTART:

SETBP2.3

NOP

NOP

CLRP2.3

SETBP2.4

NOP

NOP

CLRP2.4

NOP

NOP

NOP

NOP

RET

MOVD:

SETBP2.5

MOVA,P0

MOV@R0,A

CLRP2.5

INCR0

MOVA,P2

INCA

MOVP2,A

CLRC

CJNEA,#08HTESTCON

JCTESTCON

CLRA

MOVP2,A

MOVA,#0FFH

MOVP0,A

MOVP1,A

MOVP3,A

RET

TESTCON:

LCALLTESTART

LJMPWAIT

END

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

当前位置:首页 > 农林牧渔 > 林学

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

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