该【数据采集系统实验报告 】是由【guoxiachuanyue013】上传分享,文档一共【21】页,该文档可以免费在线阅读,需要了解更多关于【数据采集系统实验报告 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。任务要求
4路模拟量输入,输入电压范围0〜5V,分辨率8位,转换时间lOOus,具有显示(数码管)测量结果(用10进制显示直流电压值或交流电压峰值)的功能;
1路模拟量输出,用来分别重现4路被采信号的波形(供示波器观测)
摘要
本数据采集系统是基于单片机AT89C51来完成的,4路的模拟电压通过通用的8位A/D转换器ADC0809转换成数字信号后,由单片机进行数据处理,并将处理后的数据送LED显示器显示。再经过常用的8位D/A转换器DAC0832将数字数据转换成模拟量,供示波器观测。
一、系统的方案选择和论证
根据题目基本要求,可将其划为如下几个部分:
4路模拟信号A/D转换
单片机数据处理
LED显示测量结果
D/A转换模拟量输出
系统框图如图1所示:
LED
显示
模拟输入2
模拟輸入3
模拟开关
AID
转换器
51单片机
键盘控制
模拟箍入4
D/A
转换器
图1单片机数据采集系统框图
1、4路模拟信号A/D转换
由于被测电压范围为0〜5V,分辨率为8位,转换时间为100us,所以A/D转换部分,本系统选择常用的8路8位逐次逼近式A/D转换器ADC0809。
ADC0809芯片有28条引脚,采用双列直插式封装。下面说明各引脚功能。
INO〜IN7:8路模拟量输入端。
2-1〜2-8:8位数字量输出端。
ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。
ALE:地址锁存允许信号,输入,高电平有效。
START:A/D转换启动信号,输入,高电平有效。
EOC:A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。
REF(+)、REF(-):基准电压。
Vcc:电源,单一+5V。
GND:地。
ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
2、单片机数据处理
选择美国ATMEL公司的CMOS8位单片机AT89C51,〜6V,具有低电压低功耗性能和高性价比,兼容标准MCS-51指令系统,4Kbytes的PEROM和128bytes的RAM,片内置通用的8位中央处理器(CPU)和Flash存储单元。
AT89C51是一种带有4KB闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,可为很多嵌入式控制系统提供灵活且价廉的方案。所以,本设计采用ATMEL公司的AT89C51作为程序的主控芯片。
AT89C51数据总线是由P0口提供的,P0口本身能以多种方式提供数据总线和地址总线。当ALE输出信号为高电平时,P0将输出的数据锁入总线驱动器中作为地址的低8位,然后和P2送出来的高8位地址一起组成一个完整的16位地址,以寻址到外部的64KB的地址空间。AT89C51的地址总线比较简单(只有3个:RD、WR、PSEN),其中RD是用来读取外部数据内存的控制线,WR是用来写数据到外部数据内存的控制线,PSEN是用来存取外部程序内存的读取控制线。
3、LED显示测量结果
这里选择的是广州周立功单片机发展有限公司自行设计的数码管显示驱动及键盘扫描管理芯片ZLG7289B,它可直接驱动8位共阴式数码管(或64只独立LED),同时还可以扫描管理多达64只按键。ZLG7289B内部含有显示译码器,可直接接受BCD码或16进制码,并同时具有2种译码方式。此外,还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。ZLG7289B采用SPI串行总线与微控制器接口,仅占用少数几根I/O口线。利用片选信号,多片
ZLG7289B还可以并接在一起使用,能够方便地实现多于8位的显示或多于64只按键的应用。
4、D/A转换模拟量输出
在本设计中D/A转换的作用是使得采集处理过的数据通过D/A转换电路后送示波器进行观察。这里选择了DAC0832这一D/A转换器。它是一个8位D/A转换芯片,唯一电源供电,从+5V〜+15V均可正常工作,其引脚功能说明如下:
DIO〜DI7:数据输入线,TLL电平。
ILE:数据锁存允许控制信号输入线,高电平有效。
CS:片选信号输入线,低电平有效。
WR1:为输入寄存器的写选通信号。
XFER:数据传送控制信号输入线,低电平有效。
WR2:为DAC寄存器写选通输入线。
Ioutl:电流输出线。当输入全为1时Ioutl最大。
Iout2:电流输出线。其值与Ioutl之和为一常数。
RFb:反馈信号输入线,芯片内部有反馈电阻.
Vcc:电源输入线(+5v~+15v)
Vref:基准电压输入线(-10v〜+10v)
AGND:模拟地,摸拟信号和基准电源的参考地.
DGND:数字地,两种地线在基准电源处共地比较好
二、系统的硬件设计
本系统硬件电路包括以下几个部分:
AT89C51外围电路(如时钟电路、复位电路等)
AT89C51和ADC0809接口电路
AT89C51和DAC0832接口电路
LED显示电路
1、AT89C51外围电路(如时钟电路、复位电路等)
AT89C2051中有一个用于构成内部振荡器的高增益反相放大器,引脚XTA11和XTAL2分别是该放大器的输入端和输出端,这个放大器与作为反馈元件的片外石英晶体一起构成自己振荡器,外接石英晶体和电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外
接电容没有太严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器的稳定性等,这里选用12MHz的石英晶体,电容选用33pF,如图2所示。
复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。本设计的时钟电路如图3所示。
图3复位电路
2、AT89C51和ADC0809接口电路
AT89C51和ADC0809接口电路如图4所示,START和ALE互连可使ADC0809在接收模拟量路数地址时候启动工作。。平时,。ALE的正脉冲使得ADDA、ADDB和ADDC上的地址锁存,选中IN0-IN3路模拟电压送入比较器,这里ADDA、,,。EOC线经过反相器和AT89C51的INT1线相连,这里采用中断方式来和ADC0809传送A/D转换后的数字量。为了给OE线分配一个地址,。平时,,从而使得OE处于低电平封锁状态。在响应中断时候,单片机执行中断服务程序使得OE变为高电平,从而打开三态输出锁存器,让CPU提取A/D转换后的数字量。
ADC0809的时钟CLK由两个D触发器把AT89C51的ALE信号4分频后来得到,如图5所示,如果使用单片机时钟电路选择12MHz的晶振,那么ALE信号的频率为2MHz(12/6),经两个串联D触发器四分频之后,CLK端的频率为500KHz,能够满足ADC0809要求。
血PL544
血血9
JiTALIId
..U2"TT
/
yiD0:P0J5
(ahilpoi
?
(ADi'POJ
?
(ADtlKG
?
lAD<:
?L5
(ADS'Mij
?
1並:眦
lAD^MU
円
〔胡P20
:lKTD:
(AJ;
(AU0::P2J
円J(T"
[AII::P2J
?:s
fAD:F24
(AEj)P21
巨宜
[A^P2i
[AiijK.-
■'
KTA12
世
GSD
ssr
:JXD:P3E
?3Ji7O■:
.A2TPROO
AT3K:J1C
第弊它
55lL«4-TTeT;-TT~ri76-3TT^'--
AIW
T,_
AffciST
ADDCT&:.FT
X
IC—
IL~=~
~~^Tj££
TUSFIC)
WC
.iDDAAUDB
AUDC
[..••声l/駅2D
74LM2Li-a
VCCCLKp
EOC
OE1N0
D7ADDA
ADD百ADDCVEEAALE
VPEF-era
3
图4AT89C51和ADC0809接口电路
图5时钟分频电路
3、AT89C51和DAC0832接口电路
為-竄丹S?^SES?需
图6AT89C51和DAC0832接口电路
AT89C51和DAC0832接口时,可以有三种方式:直通方式、单缓冲方式和双缓冲方式。
本系统选择单缓冲方式,电路如图6所示。ILE直接接到VCC,允许数字量输入,CS和
XFER由译码器的输出端F7控制,从而控制DAC0832的8位输入寄存器。AT89C51的WR
和DAC0832的WR2连接,WR1直接接地,这样WR1和WR2之间的延迟可以满足不小于
500ns。参考电压直接选择VCC。Rbf作为运算放大器反馈线,接到uA741输出端,Ioutl和Iout2接到其输入端。
4、LED显示电路
LED显示电路如图7所示。图中,VCC和GND之间接入100uF的电容,使得电源更加稳定,通过拉低RST引脚的方法复位ZLG7289B,四个数码管是共阴式的,R"至R是
1017
限流电阻,R[至R是下拉电阻。KC0/DIG0〜KC3/DIG3来作为位选信号来选择LED数码18
管的显示。在这里使用键盘功能,真正实现人机交互,四个按键开关分别控制四路模拟信号的输入。晶振这里选择和单片机同样的晶振,即12MHz。数码管0显示选择通道,数码管
1、2、3显示电压峰值。ZLG7289B的CS、、,,也即中断1,实现模拟信号输入通道的选择。
Cl
l懐血
u\m-
olI
■?1弓
20_r-M5i2
凶con-1
13
ES..|
WK|
U5
RTCC
跖T
VCC
OSC1
NC
O5C2
■OTTD
WDKT
NC
KC^.DIG6
C5
CLK
<t4
DZO
DCT
tClDIGZ
S(jKR:-
KCO/DICM
SEKR2
KK"/Dp
SDKEJ
KR&/SA
SC.-KR^
ZLG~2^E
16
15
1£_•■:-an-0
1^
1:-:K
RU
Rl?
Rl
RU
K-pF
■o
31
图7LED显示电路部分(1)
DS2
丄
Wl£
LOK
A]
B2
c7
DT
ET
FA
G2
Dpi
DSL
CMlO
AJ—a3^_b匚J—弋D_dz5
F"
opi
c-omL
dp
CMH2
HJAJ"B"
A]
B7cT
D1
ET
FI
G7
Dpi
a.
b
NC
a
c
d
f
g
'b
t:
I
e
c
t
1
iJ
g
Ip
dp
g?to
DS4
CDttj>
图8LED显示电路部分(2)
三、系统的软件实现
本系统软件包括系统初始化、数据采集与处理,AD转换、DA转换和数据显示几个部
分。其中主程序流程图如图8所示,AD转换程序流程图如图9所示,DA转换程序如图10所示。实验源程序见附录2.
图9主程序流程图
图10A/D转换流程图
保存■结果保存结果保存结果保存结果
9返回G
图11键盘控制程序流程图
四、电路和程序调试
对电路的调试氛围对硬件的调试和对软件的调试。所以在调试的时候,先检查硬件电路各接线是否正确,有误短路现象,如果有那就要及时改正。软件的调试,首先要在KeilC51上面编译运行通过,由于有中断的缘故,所以中断部分要结合硬件电路进行调试,在这里可以借用实验用Monitor-51仿真器来进行调试,而不是一次次把程序写进单片机进行调试,那样不仅麻烦,而且还有可能写坏单片机。
在软件硬件结合起来调试的过程中,要分模块进行调试,比如本实验中,有键盘中断、LED显示、AD转换和DA转换四个大的模块,根据程序流程图,应该依次对上面四个模块分别进行调试检查。调试过程中,要熟悉使用示波器、万用表等工具,硬件部分,上电以后,要用示波器测试晶振是否正常工作,单片机和其他芯片个引脚电位是否正常。软件部分,可以通过KeilC51来观察各特殊寄存器和某些变量的值来验证程序和电路的准确性,也可以设置断点来查看程序的运行路线,比如要查看中断是否执行,就可以在中断服务程序里面设置断点。
下面结合本人在调试中遇到的部分问题加以说明。
1、LED不显示
原因:画原理图时候由于粗心所致,漏画一结点,如图12所示。从而导致SG/KRi(i=O〜7)全部为低电平(示波器测得),而ZLG7289驱动的是共阴式数码管,所以数码管不显示。解决方法:按照图13接通VCC.
数据采集系统实验报告 来自淘豆网m.daumloan.com转载请标明出处.