用ADC0809做成的数字电压表.docx
- 文档编号:8087720
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:20
- 大小:403.33KB
用ADC0809做成的数字电压表.docx
《用ADC0809做成的数字电压表.docx》由会员分享,可在线阅读,更多相关《用ADC0809做成的数字电压表.docx(20页珍藏版)》请在冰豆网上搜索。
用ADC0809做成的数字电压表
届微机接口技术
课程设计
用ADC0809做成的数字电压表
学生姓名
学号
所属学院
专业
班级
指导教师
日期
大学教务处
前言
数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。
传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。
本系统用单片机AT89S51构成数字电压表控制系统,具有精度高、速度快、性能稳定和电路简单且工作可靠等特点,具有很好的使用价值。
数字电压表(DVM)是诸多数字化仪表的核心与基础。
以数字电压表为基础,可扩展成各种数字仪表及非电量的数字化仪表,其应用覆盖电子电工测量、工业测量、自动化仪表等领域。
与指针式电压表相比,数字电压表具有很多优点:
读数直观、准确,以数字形式显示电压,避免读数视差和视觉疲劳;显示范围宽、分辨力高,指针电压表准确度由0.1~5.0分为7个等级,数字电压表由0.0005~1.0分为11个等级,数字电压表分辨力目前可做到从2到lo};转入阻抗(转入电阻)高(1~104Mft),吸收被测二二信号电流极小,测量误差小,几可忽略;集成度高,功耗小;可扩展能力强。
数字电压表结构如图1。
其中A/D转换器将转入的模拟量转换成数字信号,是数字电压表的核心。
目前,由各种单片A/D转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。
与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。
数字电压表是诸多数字化仪表的核心与基础,电压表的数字化是将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,这有别于传统的以指针加刻度盘进行读数的方法,避免了读数的视差和视觉疲劳。
目前数字电压表的内部核心部件是A/D转换器,转换器的精度很大程度上影响着数字电压表的准确度,本文A/D转换器采用ADC0809对输人模拟信号进行转换,控制核心AT89C51再对转换的结果进行运算和处理,最后驱动输出装置显示数字电压信号。
数字式电压表是由高阻抗电压表头与分压电路组成的。
数字式电压表头的等效输入电阻通常在200M欧以上,满量程时所流经的电流通常在1皮安左右。
以上述表头制成的数字式电压表,满量程时所流经的电流与量程有关,通常在1皮安至100微安之间。
数字电压表(数字面板表)是当前电子、电工、仪器、仪表和测量领域大量使用的一种基本测量工具有关数字电压表的书籍和应用已经非常普及了。
数字电压表的设计和开发,已经有多种类型和款式。
传统的数字电压表各有特点,它们适合在现场做手工测量,要完成远程测量并要对测量数据做进一步处理,传统数字电压表是无法完成的。
然而基于PC通信的数字电压表,既可以完成测量数据的传递,又可借助PC,做测量数据的处理。
所以这种类型的数字电压表无论在功能和实际上,都具有传统数字电压表无法比拟的特点,这使得它的开发和应用具有良好的前景。
本系统用单片机AT89C51构成数字电压表控制系统,具有精度高、速度快、性能稳定和电路简单且工作可靠等特点,具有很好的使用价值。
工程概况
本电路以ADC0809和AT89S51为核心,该系统有四个模块:
数据采集模块、控制模块、显示模块、A/D转换模块,设计中采用ADC0809进行摸数转换,利用MCS-51单片机进行数据的处理,显示模块采用LCD1602液晶显示器显示,采用独立式按键选择单路显示或者8路轮流显示。
能够测量0-5V之间的直流电压值。
读数据准确,测量方便。
误差范围在-0.02~+0.02之间最小分辨率位0.019。
硬件设计应用电子设计自动化工软件设计采用模块化编程方法。
第一章系统方案的选择与论证
1.1设计任务及要求论证
1.1.1任务
本文是以直流数字电压表的设计为研究内容。
首先对数字电压表作了详细介绍,接着讲述了数字电压表硬件电路的设计以及软件的设计,包括量程转换电路、数据采集电路,模数转换电路及显示电路的具体设计。
电压表是各种电子电路测量中经常用到的仪器,本课题的目的是让学生通过运用所学的知识进行实际的应用,设计一个能够测量电压的简易仪器。
1.2简易数字电压表基本方案
1.2.1模块方案选择与论证
根据设计要求选用高精度A/D转换器ADC0809进行数据转换,针对ADC0809对模拟输入信号的要求,对输入信号进行量程转换并进行调理。
通过单片机AT89C51和A/D转换器ADC0809完成数据转换及传输,是系统的核心内容。
阐述了ADC0809工作原理并对A/D转换电路、参考电压电路、复位电路、时钟电路等电路进行具体设计。
本设计从各个角度分析了由单片机组成的数字电压表的设计过程及各部分电路的组成及其原理,并且分析了程序如何驱动单片机进而使系统运行起来的原理及方法。
软件的设计包括了对主程序、模数转换程序和显示程序的设计,给出了程序流程图。
最后根据软硬件设计方案对系统进行了调试。
1.2.2单片机方案选择与论证
AT89C51简介
AT89C51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,AT89C51在众多嵌入式控制应用系统中得到广泛应用。
主要性能特点
1、4kBytesFlash片内程序存储器;
2、128bytes的随机存取数据存储器(RAM);
3、32个外部双向输入/输出(I/O)口;
4、5个中断优先级、2层中断嵌套中断;
5、6个中断源;
6、2个16位可编程定时器/计数器;
7、2个全双工串行通信口;
8、看门狗(WDT)电路;
9、片内振荡器和时钟电路;
10、与MCS-51兼容;
11、全静态工作:
0Hz-33MHz;
12、三级程序存储器保密锁定;
13、可编程串行通道;
14、低功耗的闲置和掉电模式。
管脚说明
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
图1.1装的AT89S51管脚图
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口除了作为普通I/O口,还有第二功能:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。
读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。
只有读端口时才真正地把外部的数据读入到内部总线。
89C51的P0、P1、P2、P3口作为输入时都是准双向口。
除了P1口外P0、P2、P3口都还有其他的功能。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
1.2.3A/D模数转换方案的选取
A/D转换器是模拟量输入通道中的一个环节,单片机通过A/D转换器把输入模拟量变成数字量再处理。
随着大规模集成电路的发展,目前不同厂家已经生产出了多种型号的A/D转换器,以满足不同应用场合的需要。
如果按照转换原理划分,主要有3种类型,即双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器。
目前最常用的是双积分和逐次逼近式。
双积分式A/D转换器具有抗干扰能力强、转换精度高、价格便宜等优点,比如ICL71XX系列等,它们通常带有自动较零、七段码输出等功能。
与双积分相比,逐次逼近式A/D转换的转换速度更快,而且精度更高,比如ADC0808、ADC0809等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送入单片机进行分析和显示。
本设计中,由于对精度没做很大要求,我们采用逐次逼近式A/D转换ADC0809由于ADC0809在进行A/D转换时需要有CLK信号,而此时的ADC0809的CLK是接在AT89C51单片机的P3.3端口上,也就是要求从P3.3输出CLK信号供ADC0809使用。
因此产生CLK信号的方法就得用软件来产生了;由于ADC0809的参考电压VREF=VCC,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。
实际显示的电压值 (D/256*VREF)
ADC0809简介
ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。
它是逐次逼近式A/D转换器,可以和单片机直接接口。
(1)ADC0809的内部逻辑结构
由下图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
图1.2ADC0809的内部逻辑结构图
(2)ADCADC0809模数转换器的引脚功能
IN0~IN7:
8路模拟量输入。
A、B、C:
3位地址输入,2个地址输入端的不同组合选择八路模拟量输入。
ALE:
地址锁存启动信号,在ALE的上升沿,将A、B、C上的通道地址锁存到内部的地址锁存器。
D0~D7:
八位数据输出线,A/D转换结果由这8根线传送给单片机。
OE:
允许输出信号。
当OE=1时,即为高电平,允许输出锁存器输出数据。
START:
启动信号输入端,START为正脉冲,其上升沿清除ADC0808的内部的各寄存器,其下降沿启动A/D开始转换。
EOC:
转换完成信号,当EOC上升为高电平时,表明内部A/D转换已完成。
CLK:
时钟输入信号,0809的时钟频率范围在10~1200kHz,典型值为640kHz。
图1.3ADCADC0809模数转换器的引脚功能
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的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(+),VREF(-)为参考电压输入。
图1.4ADC0809时序图
ADC0809应用说明
(1).ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。
(2).初始化时,使ST和OE信号全为低电平。
(3).送要转换的哪一通道的地址到A,B,C端口上。
(4).在ST端给出一个至少有100ns宽的正脉冲信号。
(5).是否转换完毕,我们根据EOC信号来判断。
(6).当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。
1.2.4显示方案
设计中采用的是4位数码管来显示电压值。
LED具有耗电低、亮度高、视角大、线路简单、耐震及寿命长等优点,它由4个发光二极管组成,其中3个按‘8’字型排列,另一个发光二极管为圆点形状,位于右下角,常用于显示小数点。
把4个发光二极管连在一起,公共端接高电平,叫共阳极接法,相反,公共端接低电平的叫共阴极接法,我们采用共阳极接法。
当发光二极管导通时,相应的一段笔画或点就发亮,从而形成不同的发光字符。
其8段分别命名为dpgfedcba。
图1.5四位数码管图片
1.2.5输入方案
我们本次采用的主要是使用函数信号发生器把信号输入到印制电路板上。
因为此电路设计的主要是测直流电压,所以在给信号的时侯应尽量使输入的频率低,且它的最大测量值为5V,输入的时候应注意不要超过量程。
1.2.6电源提供方案
主要是使用软件把程序下载到做好的印制电路板上,把印制电路板接到电脑的机箱上,通过机箱使之输出为5V的电压来驱动整个印制电路板。
1.2.7系统组成
本系统主要是由A/D转换电路、参考电压电路、复位电路、时钟电路等部分电路组成。
软件的设计包括了对主程序、模数转换程序和显示程序的设计。
图1.6数字电压表系统原理框图
第2章系统硬件设计与实现
2.1简易数字电压表基本组成部分
本次设计介绍了用ADC0809集成电压转换芯片和AT89C51单片机设计制作的数字直流电压表。
在测量仪器中,电压表是必须的,而且电压表的好坏直接影响到测量精度。
具有一个精度高、转换速度快、性能稳定的电压表才能符合测量的要求。
为此,我们设计了数字电压表,此作品主要由A/D0809转换器和单片机AT89C51构成,A/D转换器在单片机的控制下完成对模拟信号的采集和转换功能,最后由数码管显示采集的电压值。
2.2.1数字电压表模拟电路图
图2.1数字电压表模拟单路连接图
图2.2数字电压表模拟单路状态图
2.2.2数字电压表DXP电路图
图2.3数字电压表DXP电路连接图
图2.4数字电压表PCB板正面图
图2.5数字电压表PCB板反正面图
2.2.3汇编语言程序
LED_0EQU30H;存放三个数码管的段码
LED_1EQU31H
LED_2EQU32H
ADCEQU35H;存放转换后的数据
STBITP3.2
OEBITP3.0
EOCBITP3.1
ORG00H
START:
MOVLED_0,#00H
MOVLED_1,#00H
MOVLED_2,#00H
MOVDPTR,#TABLE;送段码表首地址
SETBP3.4
SETBP3.5
CLRP3.6;选择ADC0808的通道3
WAIT:
CLRST
SETBST
CLRST;启动转换
JNBEOC,$;等待转换结束
SETBOE;允许输出
MOVADC,P1;暂存转换结果
CLROE;关闭输出
MOVA,ADC;将AD转换结果转换成BCD码
MOVB,#100
DIVAB
MOVLED_2,A
MOVA,B
MOVB,#10
DIVAB
MOVLED_1,A
MOVLED_0,B
LCALLDISP;显示AD转换结果
SJMPWAIT
intov
movdptr,#tab
mova,adc
movca,@a+dptr
movb,#2
divab
movr1,b
movb,#10
divab
movled_2,a
movled_1,b
cjner1,#01,kk1
movled_0,#05
back:
ret
kk1:
movled_0,#00
ajmpback
DISP:
movdptr,#table
MOVA,LED_0;数码显示子程序
MOVCA,@A+DPTR
CLRP2.3
MOVP0,A
LCALLDELAY
SETBP2.3
movdptr,#table
MOVA,LED_1
MOVCA,@A+DPTR
CLRP2.2
MOVP0,A
LCALLDELAY
SETBP2.2
movdptr,#table
MOVA,LED_2
MOVCA,@A+DPTR
setbacc.7
CLRP2.1
MOVP0,A
LCALLDELAY
SETBP2.1
RET
DELAY:
MOVR6,#10;延时5毫秒
D1:
MOVR7,#250
DJNZR7,$
DJNZR6,D1
RET
TABLE:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
tab:
db0,0,0,1,0,2,0,0,3,0
db4,0,0,5,0,6,0,0,7,0
db8,0,0,9,0,0,10,0,11,0
db0,12,0,13,0,0,14,0,15,0
db0,16,0,17,0,0,18,0,19,0
db0,20,0,0,21,0,22,0,0,23
db0,24,0,0,25,0,26,0,0,27
db0,28,0,0,29,0,0,30,0,31
db0,0,32,0,33,0,0,34,0,35
db0,0,36,0,37,0,0,38,0,39
db0,0,40,0,0,41,0,42,0,0
db43,0,44,0,0,45,0,46,0,0
db47,0,48,0,0,49,0,50,0,0
db51,0,0,52,0,53,0,0,54,0
db55,0,0,56,0,57,0,0,58,0
db59,0,0,60,0,0,61,0,62,0
db0,63,0,64,0,0,65,0,66,0
db0,67,0,68,0,0,69,0,70,0
db0,71,0,0,72,0,73,0,0,74
db0,75,0,0,76,0,77,0,0,78
db0,79,0,0,80,0,0,81,0,82
db0,0,83,0,84,0,0,85,0,86
db0,0,87,0,88,0,0,89,0,90
db0,0,91,0,0,92,0,93,0,0
db94,0,95,0,0,96,0,97,0,0
db98,0,99,0,0,100,0,0,0
END
第3章软件的设计
3.1程序流程图
3.1.1主总流程图
3.1.2主要子程序程序流程图
致谢
本次简易直流数字电压表设计的成功我非常感谢那些给予我帮助的同学以及指导这次课题研究的王丽老师、柴学平老师。
在此次数字电压表的设计中,正是他们耐心的讲解和热心的帮助才使我顺利完成了这个课题的设计,借此机会我想向他们表示衷心的感谢,谢谢你们在这次课题研究中帮助了我,让我找到了我存在的错误和不足之处,协助我解决了面临的困难、提供了技术上支持。
在此真心的感谢你们!
此致
敬礼
参考文献
[1]张迎新.单片机初级教程[M].北京:
北京航天航空大学出版社,2000年
[2]于海生.微型计算机控制技术[M].北京:
清华大学出版社,1999年
[3]胡学林.可编程控制器应用技术[M].北京:
高等教育出版社,2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ADC0809 做成 数字 电压表