您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于AT89C51的数据采集系统设计-卢进军
第32卷第8期2014年8月河南科学HENANSCIENCEVol.32No.8Aug.2014收稿日期:2014-03-11基金项目:陕西省教育厅专项科研项目(2013JK1058)作者简介:卢进军(1975-),男,陕西咸阳人,讲师,硕士,主要研究方向为计算机应用技术及电子信息科学技术.文章编号:1004-3918(2014)08-1474-04DOI:10.13537/j.issn.1004-3918.2014.08.023基于AT89C51的数据采集系统设计卢进军(陕西理工学院物理与电信工程学院,陕西汉中723001)摘要:数据采集系统是模拟领域和数字领域之间不可缺少的纽带,具有非常重要的意义.本设计重点介绍了基于AT89C51单片机、串行A/D转换芯片ADC0809为重要组成部分的数据采集系统.系统具有简单实用、成本低、可靠性高及扩展性强的优点.关键词:AT89C51;ADC0809;数据采集;单片机中图分类号:TN79文献标识码:ATheDesignofaDataAcquisitionSystemBasedonAT89C51LuJinjun(SchoolofPhysicsandCommunicationEngineering,ShaanxiUniversityofTechnology,Hanzhong723001,ShaanxiChina)Abstract:Thedataacquisitionsystemisanindispensablelinkbetweenanaloganddigitaldomains,andhasaveryimportantsignificance.WeintroducedthedataacquisitionsystembasedontheAT89C51MCU,andwithserialA/DconverterchipADC0809astheimportantparts.Thesystemissimpleandpractical,andhaslowcost,highreliabilityandscalability.Keywords:AT89C51;ADC0809;dataacquisition;SCM近年来,数据采集及其应用受到了人们越来越广泛的关注,数据采集系统也有了迅速的发展,它可以广泛地应用于各种领域.同时目前以微机为核心的可编程数据采集与处理采集技术的发展取到了迅速的进展,而且组成一个数据采集系统只需要一块数据采集卡,把它插在微机的扩展槽内并辅以应用软件,就能实现数据采集功能,但这并不会对基于单片机为核心的数据采集系统产生影响.相较于数据采集板卡成本和功能的限制,单片机具多功能、高效率、高性能、低电压、低功耗、低价格等优点,而单片机又具有精度较高、转换速度快、能够对多点同时进行采集,因此能够开发出能满足实际应用要求的、电路结构简单的、可靠性高的数据采集系统.这就使得以单片机为核心的数据采集系统在许多领域得到了广泛的应用[1].本系统采用下位机负责模拟数据的采集,从单片机负责采集八路数据,并应答主机发送的命令,上位机即主机是负责处理接受过来的数字量及显示,主机和从机之间用RS-232进行通信.这样用户可以在上位机上编写各种程序对文件中的数据进行有效查询和分析,有利于工业过程的长期正常运行和检查.该系统采用的是AT89C51单片机,此芯片功能比较强大,能够满足设计要求.1数据采集系统在该系统中需要将模拟量转换为数字量,设计采用ADC0809完成将模拟量转换为数字量,转换过程中需要考虑的指标有:分辨率、转换时间、转换误差等[2].而单片机是该系统的基本的微处理系统,它完成数据读取、处理及逻辑控制,数据传输等一系列的任务.在该系统中采用的是8051系列的单片机[3].数据的显示则采用的是LED数码管,该器件比较简单,在生活中接触也较多.2014年8月设计中数据采集系统主要由A/D转换器、单片机和LED显示器组成,其框图如图1所示.1.1A/D转换器的选择A/D转换器的种类很多,就位数来说,可以分为8位、10位、12位和16位等.位数越高其分辨率就越高,价格也就越贵.A/D转换器型号很多,而其转换时间和转换误差也各不相同.针对本设计的要求,在比较逐渐逼近式A/D转换器、双积分A/D转换器和并行式A/D转换器后,在性价比、转换速度等因素考虑下,选用具有速度快,精度高,成本低的逐渐逼近式A/D转换器——ADC0809.1.2单片机的选择AT89C51是一个低电压,高性能CMOS8位单片机,带有4K字节的可反复擦写的程序存储器和128字节的存取数据存储器,这种器件采用高密度、不容易丢失存储技术生产,并且能够与MCS-51系列的单片机兼容.片内含有8位中央处理器和闪烁存储单元,有较强功能的AT89C51单片机能够被应用到控制领域中.AT89C51提供以下的功能标准:4K字节闪烁存储器,128字节随机存取数据存储器,32个I/O口,2个16位定时/计数器,1个5向量两级中断结构,1个串行通信口,片内振荡器和时钟电路.另外,AT89C51还可以进行0Hz的静态逻辑操作,并支持两种软件的节电模式.闲散方式停止中央处理器的工作,能够允许随机存取数据存储器、定时/计数器、串行通信口及中断系统继续工作.掉电方式保存随机存取数据存储器中的内容,但振荡器停止工作并禁止其他所有部件的工作直到下一个复位.因而本设计采用ATMEL公司的AT89C51作为程序的主控芯片.1.3显示部分LED数码显示管是一种由LED发光二极管组合显示字符的显示器件.它使用了8个LED显示管,其中7个用于显示字符,1个用来显示小数点,故通常称之为八段发光二极管数码显示器.对LED数码显示器的控制可以采用按时间向它提供具有一定驱动能力的位选和段选信号.LED数码显示有动态扫描显示法和静态显示法[4].在单片机中,为了节省硬件资源,多采用动态扫描显示法.2硬件设计部分2.1电路设计原理硬件电路上,主要包括两个部分,一个是模数转换的输入部分,一个是LED显示输出部分.ADC0809内部带有输出锁存器,可以与AT89C51单片机直接相连.初始化时,使ST和OE信号全为低电平.送要转换的那一通道的地址到A,B,C端口上.在ST端给出一个至少有100ns宽的正脉冲信号.是否转换完毕,根据EOC信号来判断.当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了.ADC0809对输入模拟量要求:信号单极性,电压范围是0~5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路.进行设计时电路所加的信号是一正弦波,振幅是1V,频率是50Hz.2.2电路仿真图数据采集系统电路仿真图如图2所示.3软件设计部分3.1简介KeilKeil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(UVISION)将这些组合在一起.将项目文件添加完毕后,编译当前程序、编译修改过的文件并生成应用程序、重新编译所有文件并生成应用程序后,再选择输出;在输出过程中选择“selectfolderforobjects”,从而得到HEX文件,如图3所示.最后利用STC-ISP将HEX文件烧录到单片机里[5].图1系统组成框图Fig.1Blockdiagramofthesystem正弦信号A/D转换器单片机LED显示器卢进军:基于AT89C51的数据采集系统设计--1475第32卷第8期河南科学RP1U1C1C2C3X1R1U3V2V11V3.2程序设计进行A/D转换时,采用查询EOC的标志信号来检测A/D转换是否完毕,若完毕则把数据通过P0端口读入,经过数据处理之后在数码管上显示.进行A/D转换之前,要启动转换的方法:ABC=110选择第三通道,ST=0,ST=1,ST=0产生启动转换的正脉冲信号.延时程序voidDelayMS(uintms){uchari;while(ms--)for(i=0;i120;i++);}显示转换结果程序voidDisplay_Result(uchard){P2=0xf7;//第4个数码管显示个位数P0=DSY_CODE[d%10];DelayMS(5);P2=0xfb;//第3个数码管显示十位数P0=DSY_CODE[d%100/10];DelayMS(5);P2=0xfd;//第2个数码管显示百位数P0=DSY_CODE[d/100];DelayMS(5);图2系统电路仿真图Fig.2Systemcircuitsimulationdiagram图3Keil生成Hex图Fig.3HexmapofKeilgeneration--14762014年8月P2=0xfd;P0=DSY_CODE[d0];DelayMS(5);}主程序voidmain(){TMOD=0x02;//T1工作模式2TH0=0x14;TL0=0x00;IE=0x82;TR0=1;P1=0x3f;//选择ADC0809的通道3(0111)(P1.4~P1.6)while(1){ST=0;ST=1;ST=0;//启动A/D转换while(EOC==0);//等待转换完成OE=1;Display_Result(P3);OE=0;}}4调试及结果在Proteus仿真软件中进行电路仿真,进过调试可得出以下结论:若输入信号太小的话,可以将信号放大后加入到AD通道3,同时,下边的参考电压REF+端加的直流电压改为放大后的电压.现在的频率比较低,要频率快的话,得加个采样保持电路(模电的知识),芯片是LF198.现在的电路只能正向AD转换,可以将输入正弦波经过全波整流电路,处理后的波形全是正向的.对于现在的仿真图,正弦波的频率减小,显示就会慢,看得更清晰.本设计从工程角度出发,详细介绍了基于AT89C51单片机的数据采集系统所需的硬件电路配置以及相关的程序设计,同时用基于Proteus和Keil接口的单片机外围硬件电路构成了一个实用的数据采集系统.参考文献:[1]DingShoucheng.TheliquidflowmeasuringdevicebasedonAT89C51microcontroller[J].AdvancedScienceLetters,2012,11(1):638-641.[2]孙磊.基于CAN总线的船用灯光控制系统的设计和实现[D].哈尔滨:哈尔滨工程大学,2008.[3]施雯.基于单片机的数字式电子热量秤设计[D].南昌:南昌大学,2009.[4]卢超.基于AT89C51多路信号检测和语音报警器的设计[J].佳木斯大学学报:自然科学版,2009,27(2):181-184.[5]卢超.基于Proteus的步进电机控制系统仿真设计[J].实验室研究与探索,2010,29(6):43-45,48.(编辑张继学)卢进军:基于AT89C51的数据采集系统设计--1477
本文标题:基于AT89C51的数据采集系统设计-卢进军
链接地址:https://www.777doc.com/doc-5047142 .html