ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:436.99KB ,
资源ID:7380847      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7380847.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据采集系统的设计与制作.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据采集系统的设计与制作.docx

1、数据采集系统的设计与制作摘 要本论文介绍了一种基于单片机的简易数字电压表的设计。该设计主要由三个模块组成:A/D转换模块,数据处理模块及显示模块。A/D转换主要由芯片ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。数据处理则由芯片STC89C52来完成,其负责把ADC0809传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示;此外,它还控制着ADC0809芯片工作。该系统的数字电压表电路简单,所用的元件较少,成本低,且测量精度和可靠性较高。此数字电压表可以测量0-5V的0-7路模拟直流输入电压值,并通过一个四位一体的7段数码管显示出来。

2、关键词 单片机;数字电压表;A/D转换;STC89C52ABSTRACTThis paper which introduces a kind of simple digital voltmeter is based on single-chip microcontroller design. The circuit of the voltage meter is mainly consisted of three mould pieces: A/D converting mould piece, A/D converting is mainly completed by the ADC0809

3、, it converts the collected analog data into the digital data and transmits the outcome to the manifestation controlling mould piece. Data processing is mainly completed by the STC89C52 chip, it processes the data produced by the ADC0809 chip and generates the right manifestation codes, also transmi

4、ts the codes to the manifestation controlling mould piece. Also, the STC89C52 chip controls the ADC0809 chip to work. The voltmeter features in simple electrical circuit, lower use of elements, low cost, moreover, its measuring precision and reliability. The voltmeter is capable of measuring voltage

5、 inputs from zero to seven route ranging from 0 to 5 volt, and displaying the measurements though a digital code tube of 7 pieces of LED.Keywords Single-chip microcontroller; Digital voltmeter; A/D converter; STC89C52摘要1 绪论1.1 研究背景及其意义数据采集显示系统起始于20世纪50年代,随着其不断的应用和发展,受到了人们越来越广泛的关注,尤其是单片机数据采集显示系统技术发展,

6、在各个领域中得到了广泛应用。上个世纪中后期,微型计算机有了长足的发展,数据采集系统与采集器和各种仪表仪器有了更紧密的联系。为此通过改良后数据采集系统不仅有着优良的性能,更是超越了传统的专用数据采集系统和单纯的自动检测仪表,并获得较快的发展。尽管现在以微机为核心的可编程数据采集与处理采集技术的发展方向得到了迅速的发展,而且组成一个数据采集系统只需要一块数据采集卡,把它插在微机的扩展槽内并辅以应用软件,就能实现数据采集功能,但这并不会对基于单片机为核心的数据采集系统产生影响。相对于数据采集板卡成本和功能的限制,单片机具多功能、高效率、高性能、低电压、低功耗、低价格等优点,而双单片机又具有精度较高、

7、转换速度快、能够对多点同时进行采集,因此能够开发出能满足实际应用要求的、电路结构简单的、可靠性高的数据采集系统。这就使得以单片机为核心的数据采集系统在许多领域得到了广泛的应用。1.2 该课题研究的主要内容数据采集技术是信息科学的重要分支之一, 它研究信息数据的采集、存储、处理以及控制等问题。它是对传感器信号的测量与处理, 以微型计算机等高技术为基础而形成的一门综合应用技术。数据采集是从若干个对象中获取信号信息的过程。数据采集监测技术越来越成为一门重要的检测技术, 并随着微型计算机技术的普及和快速发展,主要在工农业等场合需要同时监控压力、温度以及压力等领域得到广泛应用。数据采集系统是各个工业控制

8、以及生产中必不可缺的环节之一,并应用该系统的一些相对独立的单片机系统功能来实现其性能,这是测控系统不可或缺的组成部分,整个性能的优劣将受到数据采集的性能特点直接影响,足可见数据采集系统的重要性。在温度、压力、流量的计算机控制系统中,必须进行数据采集,因此本设计采用MCS-51单片机作为控制器核心设计数据采集显示系统,采集的模拟信号可以是0-5V的8路电压,并在四位LED数码管上轮流显示或者单路显示,测量最小分辨率为0.019V,测量误差约为+-0.02V。具有自动检测功能、零点调整功能、具有抗干扰措施。利用MCS-51系列单片机设计简易数字电压表测量05v的8路输入电压值,并在四位LED数码管

9、上轮流显示或单路选择显示。测量误差约为0.02V。1.3系统总体设计方案的确定根据设计要求,可以选择型号为STC89C52RC的单片机为系统核心控制器件,A/D转换采用ADC0809实现,各引脚分别与单片机的P1口和P3口相连,电压显示采用4位一体的共阴极LED数码管显示,LED数码管的段码输入由并行端口P0产生,位码输入由并行端口P2低四位产生。硬件电路设计由6个部分组成: A/D转换电路,STC89C52单片机系统,LED显示系统、时钟电路、复位电路以及测量电压输入电路。硬件电路设计框图如图2-1所示。图1-1 系统总体硬件设计框图2 数据采集显示系统的硬件设计单片机数据采集显示系统的硬件

10、电路由时钟电路、复位电路、A/D转换器电路、单片机处理系统、及显示控制系统等组成。在各个硬件正确工作的前提下,通过单片机用软件程序的方式控制整个系统有条不紊的工作,从而达到预期的设计目的。2.1单片机最小系统2.1.1单片机概述单片机是一种集成的电路芯片块将各种微处理器和具有随机存取数据能力的数据存储器,以及各种电路集成到一块单片机上,构成一个最小然而很完善的计算机系统。这些电路能在软件的控制下准确快速的完成程序设计者事先规定的任务。总的而言单片机的特点可以归纳为以下几个方面:集成度高、存储容量大、外部扩展能力强、控制功能强、低电压、低功耗、性能价格比高、可靠性高这几个方面。单片机按内部数据通

11、道的宽度,可分为4位单片机、8位单片机、16位单片机以及32位单片机。它们被应用在不同领域里,8位单片机由于功能强大,被广泛的应用在工业控制、智能接口、仪表仪器等各个领域。8位单片机在中、小规模应用场合仍占主流地位,代表了单片机的主要发展趋势,在应用单片机领域发挥越来越大的作用。随着网络技术、多媒体技术和通讯技术等现代高科技产品不断进入家庭,单片机中的32位系列将是未来单片机发展的主要方向。纵观单片机的发展过程,可以预示单片机的发展趋势:1.微型单片化2. 低功耗CMOS3、与多品种共存4、可靠性和应用水平越来越高2.1.2单片机引脚介绍在本设计中所使用的单片机型号为STC89C52,该单片机

12、是一种具有8K可编程并具有可擦除功能Flash存储器,并具有低功耗和功能强大的微控制器芯片。STC公司生产的51系列单片机中主要具有以下标准功能: 4k、8k、16k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。其引脚图

13、,如图2-1所示图2-1 STC89C52引脚图由上图可以,此型号的单片机继承了传统的80C51一切功能和引脚外观,它一共有40个引脚,引脚又分为四类,其中有四个电源引脚,用来接入单片机的工作电源,工作电源又分主电源、备用电源和编程电源;还有两个时钟引脚XTAL1、XTAL2;还有由P0口、P1口、P2口、P3口的所有引脚构成的单片机的输入/输出(IO)引脚;最后一种是控制引脚,控制引脚有四条,部分引脚具有复位功能。综上所述,单片机的引脚特点是:1.单片机多功能,少引脚,使得引脚复用现象较多。2.单片机具有四种总线形式:P0和P2组成的16位地址地址总线,P0分时复用为8位数据总线;ALE、P

14、SEN、RST、EA和P3口的INT0、INT1、T0、T1、WR、RD以及P1口的T2、T2EX组成控制总线;而P3口的RXD、TXD组成串行通信总线。在单片机最小系统中,若使单片机能够正常工作,时钟电路和复位电路是必不可少的,因此在设计硬件电路时对系统的时钟电路和复位电路进行合理设计也是非常重要的。2.1.3时钟电路单片机时钟内部有一个高增益反向放大器,用于构成时钟震荡电路,XTAL1为该放大器的输入端,XTAL2为放大器的输出端,但要形成时钟还需附加其他的电路;因此可以说时钟电路是单片机工作必要条件,时钟方式主要有内部时钟方式和外部时钟方式两种。(1) 内部时钟方式利用单片机内部的高增益

15、反相放大器,在XTAL1和XTAL2引脚上外接定时元件,内部振荡电路便产生自激振荡。定时元件一般采用石英晶体和电容组成的并联谐振回路。晶体可在1.212MHz之间任选,电容可在530pF之间选择,电容C1和C2的大小可起频率微调的作用,电容大小要和晶体的容性负载阻抗相匹配,否则不易起振。(2) 外部时钟方式外部时钟方式常用于多机系统,以便各个单片机能够同步工作。对外部振荡信号无特殊要求,但需保证脉冲宽度不小于20ns,且频率应低于单片机所支持的最高频率。由此在设计本系统的时钟电路时,我选择了内部时钟方式,将单片机的XTAL1和XTAL2分别接12M Hz晶振,并选用两片33pf瓷片电容一端接晶

16、振一端接地的方式起频率微调的作用,时钟电路设计如图2-2所示图2-2时钟电路图2.1.4复位电路单片机在启动运行时都需要复位,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。MCS-51单片机有一个复位引脚RST,采用施密特触发输入,对于CHMOS单片机,RST引脚的内部有一个低拉电路。当振荡器起振后,只要该引脚上出现2个机器周期以上的高电平时即可确保使器件复位。复位完成后,如果RST端继续保持高电平,单片机就一直处于复位状态,只有RST端恢复低电平后,单片机才能进入其他工作状态。RST端的外部复位电路有两种复位操作形式:上电自动复位和按键手动复位。(1)上电自动复位

17、电路对于HMOS型单片机,只要在RST复位端接一个电容至VCC和一个电阻至VSS(地),就能实现上电自动复位。在加电瞬间,电容通过电阻充电,就在RST端出现一定宽度的高电平,只要高电平时间足够长,就可以使单片机有效复位。RST端在加电时应保持的高电平时间包括VCC的上升时间和振荡器起振的时间。VCC上升时间约为10ms,振荡器起振时间和频率有关。10MHz时约为1ms.1MHz时约为10ms,所以一般为了可靠的复位,RST在上电时应保持20ms以上的高电平。当振荡频率为12MHz时,典型值为C=10Uf,R=8.2K。(2)按键手动复位按键手动复位有电平方式和脉冲方式两种。按键电平复位是通过使

18、复位端经电阻与VCC接通而实现的;按键脉冲复位则是利用RC微分电路产生正脉冲来实现的。考虑到本系统设计并不是很复杂,而且系统工作环境良好,并没有较多的干扰,因此单片机在工作的过程中死机或程序执行出错的可能性几乎不存在,即使程序出错,需要单片机进行复位,断电对系统运行和其他外围设施没有影响,则可以使单片机断电自动复位,综合这些在本设计的电路中采用单片机上电自动复位电路,选用极性电容正极接电源,RST端接极性电容下极板,同时RST与一个8.2k电阻相连,复位电路如下图2-3所示图2-3复位电路图结合单片机的特性和上述对时钟电路和复位电路的设计过程,在本课题研究中,单片机作为系统的主控芯片,要完成A

19、/D转换控制信号,数据处理,以及显示模块等功能,最后确定本系统中单片机最小系统如下图2-4所示:图2-4 单片机最小系统2.2数据采集电路在我们所测控的信号中均是连续变化的物理量,而要对这些信号进行处理,则需要将其转换为数字量,A/D转换器就是为了将连续变化的模拟量转换成计算机能接受的数字量。按模拟量转换成数字量的原理可以分为3种:双积分式、逐次逼近式及并行式A/D转换器。而该系统选用的是ADC0809,下面就具体的介绍一下ADC0809的工作原理。2.2.1 ADC0809的介绍ADC0809是八通道的八位逐次逼近式A/D转换器,由单一的5V电源供电,片内带有锁存功能的8选1的模拟开关,由C

20、、B、A的编码来决定所选的模拟通道,转换时间为100us,转换误差为1/2LSB;其引脚图见图2-5所示,引脚特性如下所示:IN7IN0 :八个通道的模拟输入量。ADDA、ADDB、ADDC:模拟通道地址线。当CBA=000时,IN0输入,当CBA=111时,IN7输入。ALE:地址锁存信号。START:转换启动信号,高电平有效。D7D0:数据输出线。三态输出,D7是最高位,D0是最低位。OE:输出允许信号,高电平有效。CLK:时钟信号,最高频率为 640KHZ。EOC:转换结束状态信号。上升沿后高电平有效。图2-5 ADC0809的引脚图2.2.2 ADC0809工作过程ADC0809的工作

21、过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中,此地址经译码选通8路模拟输入之一到比较器;START上升沿将逐次逼近寄存器复位,下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行,直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请,当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。 ADC0809对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。ALE为地址锁存允许输入线,高电平有效,当

22、ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换,A,B和C为地址输入线,用于选通IN0IN7上的一路模拟量输入,通道选择表如下表2-1所示。表2-1 通道选择表CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7ST为转换启动信号,当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平,EOC为转换结束信号;当 EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换,OE为输出允许信号,用于控制三条输出锁存器向单片

23、机输出转换得到的数据,OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态,D7D0为数字量输出线,VREF(),VREF()为参考电压输入;CLK为时钟输入信号线,因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,在本设计中未采用分频器,而是通过软件来提供时钟信号。结合ADC0809使用方法的基础上,对A/D转换器硬件电路设计如图2-6所示:图2-6 ADC0809硬件接线图从图2-6可以看出本设计的A/D转换电路主要分为两部分,其一为单片机控制ADC0809工作,其二就是ADC0809输入端与产生模拟信号电路连接。本部分的电路设计最大限度的利用

24、了单片机I/O口和内部资源。2.3显示电路简单的讲,LED数码显示器就是由发光二极管组成的,其内部结构如图2-8(a)所示,LED数码显示器有两种连接方式:(1)共阴极接法:把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。每个发光二极管的阳极与输入端相连。如图2-8(b)所示(2)共阳极接法。把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。如图2-8(c)所示图2-7 数码管内部原理图为此本系统显示部分选用的是4位一体共阴极数码管和相应的外围电路来实现。而此类四位一体数码管也可以分为共阳极与共阴极两种,共阳极就是把所有LED

25、的阳极连接到共同接点com,如图2-8中,而每个LED的阴极分别为a、b、c、d、e、f、g及dp(小数点);共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点),而共阳极数码管和共阴极数码管的管脚对应断码是相同的。对于这次设计的系统所用的四位一体共阴极数码管作如下说明:在仿真图中所使用的四位一体共阴极数码管很容易识别其各个引脚,但是在实际实物面前如何准确的识别各个引脚也是需要了解的知识。在实际实物面前可通过图2-8的方法来区别各个引脚,首先正向面对数码管,以数码管左上角为第一管脚,按照顺时针顺序排列,则左下角为第12管脚,对应的

26、管脚序号可作如下解释,第1,4,5和7管脚为该数码管从左往右各个数码管的位选端,则第2,6,9,11,12,3,8,10管脚对应的段选端分别为a,b,c,d,e,f,g和dp,值得注意的是四个数码管的相同段选端内部是连在一起的。图2-8 数码管引脚图在本设计中只用到一个四位一体共阴极数码管作为主要显示LED,显示电路显示模块需要实时显示当前的通道数和当前测得的电压值, LED显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种,对于多位LED显示器,通常都是采用动态扫描的方法进行显示,本设计亦是采用动态显示的方式进行扫描显示,第一位显示通道数,后三位显示测得的电压值,具体是从左到

27、右显示范围在0到5v电压,硬件连接方式如图2-9所示:图2-9显示电路图2.4 按键电路及总体硬件电路的确定通过前文对单片机最小系统硬件电路、数据采集电路和系统显示电路的设计完成,接下来就是对按键通道选择电路进行设计,此次设计用到的按键共两个,分别命名为K1和K2,K1按键一段接单片机P2.5口另一端接地,按键K2一端接单片机P2.7口另一端接地,由于此电路较为简单,电路原理图可参见总体硬件原理图2-10所示。自此系统总体电路就全部设计完成,系统总体硬件电路设计见图2-10所示:图2-10 总体硬件电路图3 数据采集显示系统的软件设计软件的设计的最终目的就是要写出满足要求的程序,但在编写程序前

28、必须理清自己的思路,使用程序流程图可以事半功倍;因此,此次的软件设计首先应绘制软件流程图,程序流程图是人们对解决问题的方法、思路或算法的一种描述。流程图主要有以下优点:1.采用简单规范的符号,画法简单;2.结构清晰,逻辑性强;3.便于描述,容易理解;软件流程图可以简单名了的展现自己的编程思想。然后必须明确自己要实现的目标,根据要求编写相应的子程序,只有做到思路清晰才能又快又好的编写出相应的程序。3.1 系统主程序设计在刚上电时,系统默认为只显示当前通道的电压值状态。每当按下K1键后则通道数加一并进行一次测量后显示在四位数码管上,当通道数到达第八路时,下一次按键将自动回到第一通道。若按下K2键时

29、将启动循环显示各路测量结果,每个通道的数据显示时间可由软件调整,主程序在调用显示子程序和转换子程序之间循环,主程序流程图如图3-1所示:图3-1主程序流程图对于主函数C语言编程函数如下所示:void main() unsigned char I; /设置变量i xun1=0; /初始化为手动通道选择 ch=0; /初始化通道数while(1) /无穷循环 display(); /调用显示子函数 keyscan(); /调用按键子函数 if(xun1=1) /检测是否为自动循环 ch+; if(ch=8) ch=0; for(i=5;i0;i-) /自动循环时延时每路显示时间 keyscan()

30、; /调用按键子函数 AD(); /调用A/D转换子函数 AD(); /调用A/D转换子函数对于主函数中须有如下说明,当检测为自动循环显示各通道测量值时用了for语句来延时各路显示的时间,但在这里我加上了按键检测子函数调用,原因是当不加此语句时会出现以下bug,当函数正在执行if语句时,有按键被按下后但不能及时检测出来,从而使按键不准照成失真现象,在此加上此条语句既可以完美解决此问题,可以让程序在手动循环和自动循环之间来回切换自如。3.2显示子程序设计显示子程序的功能就是在四位数码管上显示当前通道测量的电压值,并采用动态扫描法完成数码管的数值显示。通过ADC0809测量的数据通过硬件电路传人P

31、1口,由程序将数据由从P1传递到P0口,进而通过 P2的第四位控制哪个数码管显示。在采用动态扫描显示方式时,要使得LED显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,一般可以采用间隔10ms对LED进行动态扫描一次,每一位LED的显示时间为2ms。在本设计中,为了简化硬件设计,主要采用软件定时的方式,通过软件延时程序来实现2ms的延时。为此对显示子函数的程序设计如下所示:void display()char code table = /共阴段码 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, /07 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71; /8FP0 = 0; P2 = 0xfe; P0 = tablech; delay(2);/通道号码P0 = 0; P2 = 0xfd; P0 = tablenum / 100 + 128; delay(2);/百位加上小数点P0 = 0; P2 = 0xfb; P0 = tablenum % 100 / 10; delay(2);/十位

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1