苏州大学应用技术学院07电子转邱翠琴2008年12月
目录
第1章
绪论....................................................3
第1.1节引言.................................................3第1.2节试验目的.............................................3第1.3节试验器材.............................................3第1.4节试验内容............................................3第二章
硬件设计.................................................5
第2.1节主控芯片AT89C51简介................................5第2.2节系统硬件电路........................................7第2.3节A/D采样电路.........................................8第2.4节AD0809的逻辑电路....................................8第2.5节AD0809的工作原理......................................9第三章串口控制.................................................11第3.1节串口控制工作原理......................................11第3.2节实验仿真..............................................11第3.3节串口控制程序..........................................13第四章结论及未来工作...........................................15第4.1节实验总结.............................................15第4.2节未来工作.............................................15参考文献................................................................15
1
基于单片机的数据采集系
苏州大学应用技术学院07电子转邱翠琴2008年12月
【摘要】本文主要提出了利用单片机AT89C51和A/D转换器件AD0809等构成的数据采集系统,通过了解A/D转换原理和AD0809芯片、AT89C51芯片和MAX232串口等的相关知识来熟练掌握整个实验的流程,本设计首先将采集到的数据送入AD0809转换器进行数据转换,再将转换后的数据送入单片机AT89C51,单片机通过MAX232串口将数据送入PC机。【关键词】:单片机
A/D转换数据采集
串口
[abstract]:ThisarticlemainlyproposedusemonolithicintegratedcircuitAT89C51andA/DconstitutionandsoontransformationcomponentAD0809dataacquisitionsystems,ThroughunderstoodtheA/DtransformationprincipleandtheAD0809chip,at89C51chipandtheMAX232serialportandsoontherelatedknowledgecomestheskilledgraspingentireexperimenttheflow,ThisdesignfirstwillgatherthedatawillsendintheAD0809switchtocarryonthedataconversion,AgainwilltransformafterthedatatosendinmonolithicintegratedcircuitAT89C51,ThemonolithicintegratedcircuitsendsinthroughtheMAX232serialportthedataPCmachine。
[Keyword]:Monolithicintegratedcircuit、A/Dtransformation、dataacquisition、Serialport
2
第1章绪论第1.1节引言
由于数据采集系统的应用范围越来越宽、所涉及到的测量信号和信号源的类型越来越多、对测量的要求也越来越高,国内现在已有不少数据测量和采集的系统,但很多系统存在功能单一、采集通道少、采集速率低、操作复杂,并且对测试环境要求较高等问题。人们需要一种应用范围广、性价比高的数据采集系统。在分析了不同类型的单片机的特点及单片机与PC机通信技术的基础上,设计了单片机控制的采集系统,并通过串口通信实现单片机与PC机之间的通信,实现数据的传送并将数据在Pc机上显示及存储,完成单机的多通道数据采集系统的设计及实现。研究了PC机与多单片机通信的分布式结构的通信方式及总线特点,设计了基于ADC0809总线的多机多通道的数据采集系统,并给出了该系统硬件、软件实现的方法及该系统的性能测试及分析。基于单片机的多通道数据采集系统是由将来自传感器的信号通过放大、线性化、滤波、同步采样保持等处理后,输入A/D转换为数字信号后由单片机采集,然后利用单片机与PC机的通信将数据送到PC机进行数据的存储、后期处理与显示,实现了数据处理功能强大、显示直观、界面友好、性价比高、应用广泛的特点,可广泛应用于工业控制、仪器、仪表、机电一体化、智能家居等诸多领域。关键字:多通道,数据采集,单片机,串口通信,PC机通信
第1.2节试验目的
了解数据采集系统的基本结构,实现一个简单的A/D转换电路.
第1.3节试验器材
PC机,电源,单片机仿真器,89C51,ADC0809,74LS74,74LS02,RS232导线若
第1.4节试验内容
1.采用8051和ADC0809构成一个8通道数据采集系统。2.能够顺序采集各个通道的信号。
3
3.采集信号的动态范围:0~5V。4.每个通道的采样速率:100SPS。
5.在面包板上完成电路,将采样数据送入单片机20h~27h存储单元。6.编写相应的单片机采集程序,到达规定的性能。
4
第二章硬件设计
第2.1节主控芯片AT89C51芯片简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图所示主要特性:
与MCS-51兼容·
4K字节可编程闪烁存储器·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24MHz·三级程序存储器锁定·128×8位内部RAM·32可编程I/O线·
两个16位定时器/计数器·5个中断源·
可编程串行通道·
低功耗的闲置和掉电模式·片内振荡器和时钟电路管脚说明:
VCC:供电电压。GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
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位地址外部数据存储器进行
5
存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能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口同时为闪烁编程和编程校验接收一些控制信号。
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:来自反向振荡器的输出。振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51
6
设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
第2.2节系统硬件电路
本系统的工作框图如图1所示,硬件电路原理如图2所示。因为ADC0809的地址选择端A、B、C都接通,所以ADC0809的数据采集通道只有IN8被选通。16路模拟信号连接到多路选择模拟开关HCC4067后,即可通过地址选择端A、B、C、D进行选择,每一次选通一路,选通的通道经IOCOMX和ADC0809的IN0相连,以进行A/D转换。P2.7(地址总线最高位A15)可作为A/D转换的启动开关,P2.7为低电平有效。在启动A/D转换时,可由写信号WR和P2.7控制ADC0809的地址锁存和转换启动。而在读取转换结果时,则由读信号RD和P2.7控制ADC0809的OE信号。若令P2.7为0,74HC573的A、B、C、D即可给出被选择的模拟通道的地址,此时若ABCD=0000,则16路信号的100被选通,并将其数据送到ADC0809的IN0中,地址是7FF0H;若ABCD:1111,地址为7FFFH,则指向IO15。所以,16路信号依次对应的地址为7FFOH~7FFFH。转换完成后,数据将保存到一数组中,直到当上位PC机通过串行口发信号时,AT89C51通过检测地址是否和本机地址相符来作出动作。如果地址相符,则发送A/D转换结果,如不相符,则继续等待。
ADC0809电源单片机如图1采样电压串口通信(助手)7
如图11234D , MX232 10,11,14 , C3CJ1594837261U3MX232C1+1V+2C1-C2+34C2-V-5T2out6R2in78C222uF R1inC422uF1234567891011121314151617181920U1AT89C51P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPPP3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDXTAL2XTAL1VSSVCC40P0.039P0.138P0.237P0.336P0.435P0.534P0.633P0.732EA/VPP3130ALE/PROGPSEN29P2.728P2.627P2.526P2.425P2.324P2.223P2.122P2.021+5V22uF+5VC1 R1in R2out22uF161514131211109VCCGNDT1outR1inR1outT1inT2inR2out TXDR1inRXDTXDR2out 12v+TL780-05KCS3UGND2Uo1++5VC20.22UFC10.33UFD1LED0R31KP1.4DB9+5VB +5VR1100S0C510UFRXDTXDEOCP3.6OE+5VCLKD0D1D2D3D4D5D6D7P2.7P3.6EOCD3OECLK+5V R28K2 Y112.000MHZC330PFC430PFCBAD1U2ADC009IN31IN42IN53IN64IN75START6EOC7D38OE9CLK10VCC11Vr(+)12GND13D114ADC08092827262524232221201918171615IN2IN1IN0ABCALED7D6D5D4D0Vr(-)D2ABCP2.7D7D6D5D4D0D2MCU A1234如图2
第2.3节A/D采样电路
ADC0809是美国NS公司生产的CMOS组件,是一种8路输入单片模数转换器件,采用逐位逼近式A/D转换原理,它的输出输人接口全部为TTL电平,数据输出口线为三态,可以直接接到微机系统总线上,而无需另加I/O接口芯片。
第2.4节AD0809的逻辑结构
ADC0809是8位逐次逼近型A/D转换器。它由一个8路模拟开关、一个地址锁存译码器、一个A/D转换器和一个三态输出锁存器组成(见图1)。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态
8
输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
第2.5节AD0809的工作原理
IN0-IN7:8条模拟量输入通道
ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。地址输入和控制线:4条
ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。通道选择表如下表所示。A00001111
B00110011
C01010101
选择的通道IN0IN1IN2IN3IN4IN5IN6IN7
数字量输出及控制线:11条
ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转
换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转
换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向
单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状
9
态。D7-D0为数字量输出线。
CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,
通常使用频率为500KHZ,
VREF(+),VREF(-)为参考电压输入。
由于本设计中使用16选1模拟开关来进行信号的选择,因此,ADC0809的信号选择功能就不使用了,设计时把A可以DC0809的地址选择端A、B、C都接地,即ABC=000,这样,选通通道始终是IN0。将EOC通过非门连接到AT89C51的INT0脚,可通过查询方式来检测转换是否完成。
由于ADC0809的典型工作频率640kHz不太容易得到,所以通常使用相近频率且容易获得的信号进行替代。本设计中,单片机的晶振频率12MHz,ALE信号输出为晶振频率的六分之一(即2MHz、),可将该2MHz经过74HC74四分频后得到500kHz信号来给ADC0809使用。
10
第三章串行口控制3.1.串口控制工作原理
AT89C51内部有一个可编程的全双工串行通信接口,该口能同时进行串行发送和接收,以便通过RXD引脚(串行数据接收端)和TXD引脚(串行数据发送端)与外界进行通信。AT89C51串行口有四种工作方式,本设计中,AT89C51串行口工作于方式3。串口方式3的波特率是可变的,它可由定时器T1的溢出率来控制。通过计算可以得到T1的装载初值为0xfd,波特率为9600bps。
RS232是用正负电压来表示逻辑状态的,它与TTL以高低电平来表示逻辑状态的规定不同。因此,为了能够同计算机接口或与终端的TTL器件连接,必须在RS232与TTL电路之间进行电平和逻辑关系的变换。目前广泛使用的集成电路转换器件是MAX232芯片,它可完成TTL到EIA的双向电平转换。MAX232是一种双组驱动器/接收器,片内含有一个电容性电压发生器,可在单5V电源供电时提供EIA/TIA-232-E电平。每个接收器均可将EIA/TIA-232-E电平转换为5VTTL/CMOS电平。这些接收器具有1.3V的门限值及0.5V的典型迟滞,而且可以接收±30V的输入
第3.2节仿真
KeilC51软件是众多单片机应用开发的优秀软件之一。本设计就是在KeilC51环境中编译数据采集程序的。本采集系统的程序主要分成三部分:主程序、A/D转换程序和串行通信程序。图4所示是其软件流程图。其中主程序是总的控制程序,主要实现各单元初始化、控制采样和中断等:A/D转换程序主要完成采样启动、数据保存等功能;串行通信程序则用来在有上位PC通过串行口发送数据到单片机时引发中断响应,也可通过PC机通信地址和本单片机地址是否相符来判断PC机是否和本单片机通信,如果地址相符,则发送A/D采样的结果给上位机,如果不相符,则跳出中断。串行中断和A/D转换部分的系统软件流程图如下
11
开始程序初始化单片机启动adc0809N采样结束?Y数据送到单片机数据通过串口送pc机结束12
第3.3节串口控制程序
判断单机与PC机是否通信的程序为:
ORG0000HLJMPMAINORG0030HMAIN:
CLREAMOVSCON,#50HMOVTMOD,#20HMOVTH1,#0F4HMOVTL1,#0FCHMOVPCON,#30HSETBTR1;CLRTITLP1:
MOVA,#88HMOVSBUF,AJNBTI,$CLRTIJNBRI,$CLRRIJNBTI,$RET
END
把此程序输入单片机编译软件,通过串口线和燒录器实现单片机和PC机之间的通信。
源程序:1.由电路图可以知道:ADC0809的地址是70FFh
2.ADC0809的8个模拟通道所对应的口地址是78FFh~7FFFh3.采样的开始,只要对模拟通道对应的地址写入一个数即启动转换。4.由P1.0查询ADC0809的EOC信号,即可确定转换是否完成
13
5.8个通道的转换结果依次放入20h~27h存储单元中ORG0000H0000HHMOVR1,#201,#20HHMOVR2,#82,#8H0,#0HMOVTLTL0,#00,#0H0,#0B8HMOVTHTH0,#00,#0B;MOVTMOD,#1HTMOD,#1,#1HCLRSETB
ET00TRTR0
;channelnumber!
,#50HMOVSCONSCON,#,#50H#78FFHMOVDPTR,DPTR,#78#78FFH
:LOOPLOOP:
MOVA,R2SUBFA,R1JNZLOOP2LOOP2HMOVR1,#01,#0H,#78FFHMOVDPTRDPTR,#78,#78FFHHMOVR1,#01,#0H,#78FFHMOVDPTRDPTR,#78,#78FFH
LOOP1:LOOP1:
JNBTF0,LOOP1TF0,0,LOOPLOOP10CLRTFTF00,#0HMOVTLTL0,#00,#0H0,#0B8HMOVTHTH0,#00,#0B
2:LOOPLOOP2:3:LOOPLOOP3:4:LOOPLOOP4:
MOVX@DPTR,A;startA/D,LOOP3JBP1.01.0,LOOP,LOOP3
LOOP4;checkflagJNBP1.0,1.0,LOOPLOOP4MOVXA,@DPTR;readresult,@DPTRA;MOV@R1,1,A
saveresult
INCDPH;nextchannelINCR1LJMPLOOP
14
第四章结论及未来工作第4.1节实验总结
在实验过程中会碰到很多问题,如果编译的程序有错误,程序的设置和串口调试器的设置不一样,板子在焊接过程中虚焊、线交叉、短路等等问题都会造成单片机不能和计算机通信,或者计算机接收不到数据,即使可以接收数据,接收到的数据也可能是乱码。所以整个实验过程中要求我们做到认真、仔细。通过此次试验,可以完成一次很简单的把数据从单片机送到PC机,完成数据的传送。
第4.2节未来工作
要更好的掌握单片机和PC机之间的通信过程,来实现单片机和PC机之间的双向数据传送。或者单片机和单片机之间的数据传送。
参考文献
[1]沙占友孟志永王彦朋等著单片机外围电路设计(第2版)
335页
李朝青编著
单片机原理及接口技术(第三版)北京航空航天大学出版社2.7输入/输出接口42页~46页7.2串行口及应用152页~174页
7.4.8RS-232串口电路
15
因篇幅问题不能全部显示,请点此查看更多更全内容