基于单片机的数据采集系统设计本科学位论文.docx
《基于单片机的数据采集系统设计本科学位论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的数据采集系统设计本科学位论文.docx(54页珍藏版)》请在冰豆网上搜索。
基于单片机的数据采集系统设计本科学位论文
中南大学
本科生毕业论文(设计)
题目基于单片机的数据采集系统设计
学生姓名屠超
指导教师邓联文副教授
学院物理科学与技术学院
专业班级电子工程0701班
完成时间2009年4月28日
2开发环境7
摘要
随着信息领域各种技术的发展,在数据采集方面的技术也取得了长足的进步,采集数据的信息化是目前社会的发展主流方向。
各种领域都用到了数据采集,在石油勘探、地震数据采集领域已经得到应用。
随着测控技术的迅猛发展,以嵌入式计算机为核心的数据采集系统己经在测控领域中占到了统治地位。
数据采集系统是将现场采集到的数据进行处理、传输、显示、存储等操作。
数据采集系统的主要功能是把模拟信号变成数字信号,并进行分析、处理、存储和显示。
国内大大小小很多公司多开发了数据采集器和卡之类的产品,这使信息的数字化提供了极大的方便。
本次毕业设计课题,数据采集器制作,是利用ATMEL公司的89C51单片机和AD0809芯片做一个采集模拟电压信号,转换为数字信号,再由单片机经过串口发送给PC机处理,另外三个数码管LED显示采集的数字信息。
关键词:
单片机;数据采集;信号处理;AD0809芯片
ABSTRACT
Alongwiththedevelopmentofinformationfieldvarioustechnologies,thetechnologyintheaspectofdatacollectionhasalsogottenrapidadvance,gathertheinformativeprocessofdataisnowsocietydevelopthedirectionofmainstream.Variousfieldshaveuseddatacollection,inpetroleumexplorationandseismicdatacollectionfieldhavegottenapplication.
Asmeasuringtocontroltechnicalswiftdevelopment,withembeddedcomputerforkeydatacollectionsystemJigothroughinmeasuretocontrolfieldinhavetakendominanceposition.Datacollectionsystemistocarryoutthedatathatthecollectionon-the-spotgoestotohandle,transmitsandshows,stocketc.operation.Themajorfunctionofdatacollectionsystemissimulatedsignalbecomedigitalsignal,andanalysehandling,stockandshow.Domesticsizemanycompanieshavedevelopeddatacollectionwareandtheproductthatblocksandsoon,thismakesthedigitlizationofinformationhaveofferedmaximumconvenience.
Thisgraduateddesignprogram,datacollectionwareproduceistheonlyflatmachineof89C51thatusesthecompanyofATMELwithAD0809chipdoacollectionsimulatedvoltagesignal,conversionnumberwordsignalpassesstringmouthagainbyonlyflatmachinetodispatchtothehandlingofpersonalcomputer,additionally,3numberpipeLEDsshowthedigitalinformationofcollection.
Keywords:
Onlyflatmachine;Dataisgathered;Handle
1绪论
1.1数据采集器概述
数据采集系统,正如名字所暗示的,是一种用来采集信息成文件或分析一些现象的产品或过程。
在最简单的形式中,技术人员将烤箱的温度记录在一张纸上就是数据采集。
随着技术的发展,通过电子设备,这个过程已经得到简化和变得比较精确、多用途和可靠。
设备从简单的存储器发展到复杂的电脑系统。
数据采集产品像聚焦点一样为系统服务,和一系列产品一起,诸如传感器显示温度、水流、程度或者过程。
数据采集技术在过去30到40年以来已经取得了很大的飞跃。
举例来说,在40年以前,在一个著名的学院实验室中,为追踪用青铜做的坩埚中的温度上升情况的装置是由热电偶、继电器、查询台、一捆纸和一支铅笔。
今天的大学学生很可能在PC机上自动处理和分析数据,有很多种可供你选择的方法去采集数据。
至于选择哪一种方法取决于多种因素,包括任务的复杂度、你所需要的速度和精度、你想要的证据资料等等。
无论是简单的还是复杂的,数据采集系统都能够运行并发挥它的作用。
1.2数据采集的发展历程
1.2.1铅笔和纸
早期的铅笔与纸的旧方式对于一些情形仍然是可行的,而且它便宜、易获得、快速和容易开始。
而你所需要的就是捕捉到多路数字信息(DMM),然后开始用手记录数据。
不幸的是这种方法容易发生错误、采集数据变慢和需要太多的人工分析。
此外,它只能单通道采集数据;但是当你使用多通道DMM时,系统将很快变得非常庞大和笨拙。
精度取决于誊写器的水平,并且你可能需要自己动手依比例输入。
举例来说,如果DMM没有配备处理温度的传感器,旧需要动手找比例。
考虑到这些限制,只有当你需要实行一个快速实验时,它才是一个可接受的方法。
1.2.2长条图表记录仪
后来出现了多种版本的长条图表记录仪允许你从多个输入取得数据。
他们提供数据的长备纸记录,因为数据是图解的格式,他们易于现场采集数据。
一旦建立了长条图表记录仪,在没有操作员或计算机的情况下,大多数记录仪具有足够的内部智能运行。
缺点是缺乏灵活性和相对的精度低,时常限制在百分点。
你能很清楚地感觉到与笔只有小的改变。
在多通道内较长时间的监控,记录仪能发挥很好的作用,除此之外,它们的价值得到限制。
举例来说,他们不能够与另外的装置轮流作用。
其他的顾虑就是笔和纸的维护,纸的供给和数据的存储,最重要的是纸的滥用和浪费。
然而,记录仪相当容易建立和操作,为数据快速而简单的分析提供永久的记录。
1.2.3PC机插件卡片
PC机插件卡片是单板测量系统,它利用ISA或PCI总线在PC机内扩大插槽。
它们时常具有高达每秒1000的阅读速率。
8到16通道是普遍的,采集的数据直接存储在电脑里,然后进行分析。
因为卡片本质上是计算机的一部分,建立测试是容易的。
PC机卡也相对的便宜,一部分地,因为他们以来主机PC去提供能源、机械附件和使用界面。
1.2.4数据采集器及国内外研究现状
数据采集器是典型的单机仪器,一旦配备它们,就能测量、记录和显示数据而不需要操作员或计算机参与。
它们能够处理多信号输入,有时可达120通道。
精度可与无与伦比的台式DMMs匹敌,由于它在22字、0.004个百分率的精度范围内运转。
一些数据采集器有能力按比例测量,检查结果不受使用者定义的限制,而且输出为控制作信号。
近十几年来,随着移动通信技术飞速发展,越来越多的信息采集和远程控制系统采用了无线数据传送技术,它与有线数传相比主要有布线成本低、安装简便、便于移动的优点,而且随着互联网技术的迅猛发展和快速普及,越来越多的基于单片机为微控制器的的测控设备或智能仪器仪表都需要通过互联网上进行数据交换或传输数据。
1.3数据采集的选择及应用
在缺点上,PC机插件卡片时常只有12字的容量,因此你不能察觉输入信号的小变化。
此外,PC机内的电子环境经常很容易发出噪声、产生高速率的时钟和总线噪声,电子接触面限制PC机插件卡片的精度。
这些插件卡片也测量一定范围的电压。
为了测量其他输入信号,如电压、温度和阻力,你也许需要一些外部信号监测的器件。
其它关心包括复杂的校正和全部的系统成本,尤其如果你需要购买额外信号监测器件或用PC机适应插件卡片。
把这些考虑进去,如果你的需要在卡片的能力和限制范围内变动,PC机插件卡片给数据采集提供吸引人的方法。
使用数据采集器的一个好处就是他们的内部监测信号。
大部分能够直接地测量若干不同的输入信号,而不需要额外的信号监测器件。
一个通道能够监测热电偶、温阻器(RTD)和电压。
热电偶为准确的温度测量提供具有参考价值的补偿,是很典型的配备了多路插件卡片。
内设智能数据采集器帮助你设定测量周期和具体指定每个通道的参数。
一旦你全部设定好,数据采集器就如同无与伦比的装置运行。
它们存储的数据分布在内存中,能够容纳500000或更多的阅读量。
与PC机连接容易将数据传送到电脑进行进一步的分析。
大多数数据采集器可设计为柔性和简单的组态和操作,而且经由电池包裹或其它方法,多数提供远程位置的操作选项。
靠A/D转换技术,一定的数据采集器阅读的速率比较低,尤其是跟PC机插件卡片比较。
然而,每秒250的阅读速率比较少见。
要牢记正在测量的许多现象本质上是物理的,如温度、压力和流量,而且一般有较少的变动。
此外,因为数据采集器的监测精度,多量且平均阅读没有必要,就像它们经常在PC记插件卡片一样。
在前面的分析基础上,现在开始发展数据采集器,数据采集器是采集数据的理想选择。
2开发环境
2.1Protel99软件
在这里我用了PROTEL99设计原理图和画PCB板。
Protel99SE是Protel公司近10年来致力于Windows平台开发的最新结晶,能实现从电学概念设计到输出物理生产数据,以及这之间的所有分析、验证和设计数据管理。
因而今天的Protel最新产品已不是单纯的PCB(印制电路板)设计工具,而是一个系统工具,覆盖了以PCB为核心的整个物理设计。
最新版本的Protel软件可以毫无障碍地读Orcad、Pads、Accel(PCAD)等知名EDA公司设计文件,以便用户顺利过渡到新的EDA平台。
Protel99SE共分5个模块,分别是原理图设计、PCB设计(包含信号完整性分析)、自动布线器、原理图混合信号仿真、PLD设计。
以下介绍一些Protel99SE的部分最新功能:
1、可生成30多种格式的电气连接网络表;
2、强大的全局编辑功能;
3、在原理图中选择一级器件,PCB中同样的器件也将被选中;
4、同时运行原理图和PCB,在打开的原理图和PCB图间允许双向交叉查找元器件、引脚、网络;
5、既可以进行正向注释元器件标号(由原理图到PCB),也可以进行反向注释(由PCB到原理图),以保持电气原理图和PCB在设计上的一致性;
6、满足国际化设计要求(包括国标标题栏输出,GB4728国标库);*方便易用的数模混合仿真(兼容SPICE3f5);
7、支持用CUPL语言和原理图设计PLD,生成标准的JED下载文件;*PCB可设计32个信号层,16个电源-地层和16个机加工层;
8、强大的“规则驱动”设计环境,符合在线的和批处理的设计规则检查;
9、智能覆铜功能,覆铀可以自动重铺;
10、提供大量的工业化标准电路板做为设计模版;
11、放置汉字功能;
12、可以输入和输出DXF、DWG格式文件,实现和AutoCAD等软件的数据交换;
13、智能封装导航(对于建立复杂的PGA、BGA封装很有用);
14、方便的打印预览功能,不用修改PCB文件就可以直接控制打印结果;
15、独特的3D显示可以在制板之前看到装配事物的效果;
16、强大的CAM处理使您轻松实现输出光绘文件、材料清单、钻孔文件、贴片机文件、测试点报告等;
17、经过充分验证的传输线特性和仿真精确计算的算法,信号完整性分析直接从PCB启动;
18、反射和串扰仿真的波形显示结果与便利的测量工具相结合;
19、专家导航帮您解决信号完整性问题。
2.2编程工具KEILC51
在这里我用C语言编写程序,用的编程工具就是广受开发者喜爱的KEILc51开发软件,他支持的功能强,适合很多公司的芯片。
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
下面详细介绍KeilC51开发系统各部分功能和使用。
C51工具包的整体结构,如图
(1)所示,其中uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及A51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
图1C51工具包整体结构图
当设计一个小的嵌入式系统时,一般我们都用汇编语言在很多工程中,这是一个很好的方法因为代码一般都不超过8K,而且都比较简单。
如果硬件工程师要同时设计软件和硬件,经常会采用汇编语言来做程序。
我的经验告述我,硬件工程师一般不熟系像C一类的高级语言。
使用汇编的麻烦在于它的可读性和可维护性,特别当程序没有很好的标注的时候,代码的可重用性也比较低,如果使用C的话可以很好的解决这些问题。
用C编写的程序,因为C语言很好的结构性和模块化,更容易阅读和维护而且由于模块化,用C语言编写的程序有很好的可移植性,功能化的代码能够很方便的从一个工程移植到另一个工程,从而减少了开发时间,用C编写程序比汇编更符合人们的思考习惯,开发者可以更专心的考虑算法而不是考虑一些细节问题,这样就减少了开发和调试的时间。
使用像C这样的语言程序员不必十分熟系处理器的运算过程,这意味着对新的处理器也能很快上手不必知道处理器的具体内部结构。
使得用C编写的程序比汇编程序有更好的可移植性,很多处理器支持C编译器,所有这些并不说明汇编语言就没了立足之地。
很多系统特别是实时时钟系统都是用C和汇编语言联合编程,对时钟要求很严格时使用汇编语言成了唯一的方法,除此之外根据我的经验包括硬件接口的操作都应该用C来编程,C的特点就是可以使你尽量少地对硬件进行操作是一种功能性和结构性很强的语言。
2.3烧写器
在这次设计中我用了炜煌编程器的TOP851型编程器,它具有体积小巧,功耗低,可靠性高的特点,是专为开发51系列单片机和烧写各类存储器而设计的普及机型。
TOP851采用RS232串口与PC机连接通信,自动检测元件是否插好,如果插错了位置有提示,避免无谓的损失。
有过电流保护,超过限制的电流时,在0.1秒内切断电源,可以有效的保护编程器不受损害。
电源效率高,静态电流只有50MA,机器不会过热。
全中问操作界面软件,可自动探测厂家和型号。
使用时包括硬件安装和软件安装。
3设计过程
3.1系统功能及结构简介
我设计的数据采集器主要是采集0~5V模拟电压信号,现在大部分的模拟量多可以用各种器转换成电压模拟信号。
系统把模拟的电压信号转换成数字数据,由单片机串口经过TTL电平转换后,发送到PC机由PC机处理采集的信号,另外3个数码管LED显示数字电压的大小,两个发光二极管指示工作状态。
可以通过八个按钮选择八个采集通道,一个按钮控制转换开始或结束,系统可复位。
系统结构图:
图2系统结构图
3.2硬件芯片选择及功能简介
主控制芯片使用AT89C51芯片,转换模块使用ADC0809模数转换芯片,用双D触发器74LS74四分频89C51的ALE信号输出脚2MHz为500KHz为ADC0809提供时钟信号,串口转换芯片MAX232,另外用74LS244驱动LED数码管。
3.2.1AT89C51芯片
AT89C51是美国ATMEL公司生产的底电压,高性能CMOS8位单片机,片内含4Kbytes的可反复擦写的FLASH只读程序存储器和128bytes的随机存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和FLASH存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
引脚图:
图389C51引脚图
特性:
80C51核心处理单元,4k字节FLASH89C51X2,128字节RAM89C51X2,布尔处理器。
全静态操作,12时钟操作可选6个时钟通过软件或并行编程器,存储器寻址范围,64K字节ROM和64K字节RAM,电源控制模式:
时钟可停止和恢复、空闲模式、掉电模式。
两个工作频率范围:
6时钟模式时为0到20MHz,12时钟模式时为0到33MHz。
复位:
在振荡器工作时,将RST脚保持至少两个机器周期高电平12时钟模式为24个振荡器周期,6时钟模式为12振荡器周期可实现复位。
为了保证上电复位的可靠,RST保持高电平的时间至少为振荡器启动时间通常为几个毫秒再加上两个机器周期。
复位后,振荡器以12时钟模式运行当已通过并行编程器设置为6时钟模式时除外。
低功耗模式:
时钟停止模式:
静态设计使时钟频率可以降至0MHz(停止)。
当振荡器停振时,RAM和SFR的值保持不变。
该模式允许逐步应用并可将时钟频率降至任意值以实现系统功耗的降低。
如要实现最低功耗则建议使用掉电模式。
空闲模式:
CPU进入睡眠状态,但片内的外围电路仍然保持工作状态。
正常操作模式的最后一条指令执行进入空闲模式。
空闲模式下CPU内容片内RAM和所有SFR保持原来的值。
任何被使能的中断(此时,程序从中断服务程序处恢复并继续执行)或硬件复位(与上电复位使用相同的方式启动处理器)均可终止空闲模式。
掉电模式:
为了进一步降低功耗,通过软件可实现掉电模式。
该模式中,振荡器停振并且在最后一条指令执行进入掉电模式。
降到2.0V时,片内RAM和SFR保持原值,在退出掉电模式之前Vcc必须升至规定的最低操作电压。
3.2.2ADC0908芯片
AD0809的逻辑结构:
ADC0809是8位逐次逼近型A/D转换器。
它由一个8路模拟开关、一个地址锁存译码器、一个A/D转换器和一个三态输出锁存器组成(见图1)。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
图4ADC0809内部结构
AD0809的工作原理:
IN0-IN7:
8条模拟量输入通道;ADC0809对输入模拟量要求:
信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:
4条;ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
通道选择表如下表所示。
CBA选择的通道:
表一
C
B
A
IN
C
B
A
IN
0
0
0
IN0
1
0
0
IN4
0
0
1
IN1
1
0
1
IN5
0
1
0
IN2
1
1
0
IN6
0
1
1
IN3
1
1
1
IN7
数字量输出及控制线:
11条.
ST为转换启动信号。
当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。
EOC为转换结束信号。
当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。
OE为输出允许信号,用于控制三条输出锁存器向
单片机输出转换得到的数据。
OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。
D7-D0为数字量输出线。
CLK为时钟输入信号线。
因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,
VREF(+),VREF(-)为参考电压输入。
ADC0809应用说明:
(1)ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。
(2)初始化时,使ST和OE信号全为低电平。
(3)送要转换的哪一通道的地址到A,B,C端口上。
(4)在ST端给出一个至少有100ns宽的正脉冲信号。
(5)是否转换完毕,我们根据EOC信号来判断。
(6)当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。
3.2.374LS74芯片
74LS74为带预置和清除端的两组D型触发器,在这次的系统设计中,它为AD0809芯片提供500KHz的时钟信号,这是利用了触发器的工作。
一个触发器可以2分频,二个触发器连接可提供4分频。
原理其主要电特性的典型值如下:
表二
引出端符号:
逻辑图:
图574LS74逻辑图
3.2.4MAX232芯片
MAX232芯片为串口TTL电平转换芯片。
接口电路为:
图6MAX232连接图
3.2.574LS244芯片
74LS74为八同相三态缓冲器/线驱动器。
这里主要用于驱动共阴数码管LED的显示驱动。
结构图和功能图为:
图774LS244
3.3原理介绍
首先用PROTEL软件设计的原理图为:
图8系统原理图
系统总的功能原理,系统开机,89C51芯片工作,由P2.1控制发光二极管1指示系统工作状态,亮表示工作,暗表示不工作由P3.5控制发光二极管2指示AD0809工作状态,亮表示工作,暗表示不工作。
P2.0控制转换开始和结束,P1.0~P1.7控制八个按钮用来选择模拟输入转换通道,另外一个复位按钮。
由P0口输入AD0809芯片的转换数据结果,P2.2、P2.3、P2.4口接AD0809芯片的ST、EOC、OE3个控制信号引脚,用于控制AD0