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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

八路数据采集系统.docx

1、八路数据采集系统基于单片机的八路数据采集系统(二)摘要:单片机数据采集系统是计算机在工业控制中最为普遍的应用系统 ?它的任务是采集生产过程中的各种工况参数经过处理后送入内存储器 ,CPU再对这些参数数据进行分析, 运算和处理。本系统设计一个单片机系统,负责数据的采集和显示,设计一个多路数据输 入输出系统,实现8路输入和输出。采用89C51系列单片机、ADC0809 LCD1602等芯片 实现硬件仿真,采用C语言编程。最后硬件电路在 Proteaus下仿真实现。关键词:数据采集;8路输入输出;LCD0.刖言随着科学技术的进步,人们越来越多地用计算机来实现控制系统, 因此,充分理解计算机控制系统是

2、十分重要的。计算机控制系统的工作原理可归纳为以下三个步骤:1.实时数据采集:对来自测量变送装置已的被控量的瞬时值进行检测和输入。2.实时控制决策:对采集到的被控量进行分析和处理, 并按已定的控制规律,决定将 要采取的控制行为。3.实时控制输出:根据控制决策,适时地对执行机构发出控制信号,完成控制任务。工业控制机包括硬件和软件两部分:硬件包括主机板、内部总线和外部总线、人-机接口、系统支持板、磁盘系统、通信 接口、输入输出通道。软件包括系统软件、支持软件和应用软件。本系统设计一个单片机系统,负责数据的采集和显示,设计一个多路数据输入输出系 统,实现8路输入和输出。采用89C51系列单片机、ADC

3、0809 LCD1602等芯片实现硬件 仿真,采用C语言编程。最后硬件电路在 Proteaus下仿真实现。1.方案设计数据采集电路的原理框图1所示图1数据采集电路的原理框图根据设计要求,采用的方案如下:硬件部分实现对8路数据采集和显示的功能,包括 MCS-51单片机、ADC0809 LCD1602软件部分实现单片机对 8路输入数据的采集以及对 LCD的显示操作。主要设计思想:单片机 P1与ADC0809相连,P0与LCD连接。模拟信号通过IN0 IN7输入到ADC080肿转换为数字信号,P1获得此值后,经过处理得到每位的数据后,通 过P2 口写数据到LCD屏上。2.硬件电路设计2.1MCS51

4、单片机MCS-51单片机的内部资源主要有并行I/O接口、定时器/计数器、串行接口以及中断 系统。其外部引脚如图2所示。U1KTAL1PO.CWAEti PO. I/AD1 PQ.2/AD2XTAL2PO 4/ACMP0.WAD6 POMADERSTPO.7/AD7P2.0/A8P2. VASl P? 2/AlOPSENP2.3/A11RLEF2.4XA12P2.6/A1AF2.7ZA15P1 0P1 1Pg Q/PXDP3 1/TXDFl 2F3.2/INTDPI 3P3- 3/INTlP1 4 P1 5paa/roPS.5/T1P1 6R3 6/WRPI 716I_6ATSK51 =TEXT

5、J 图2 MCS-51单片机S226 as2.1.1I/O 接口51系列单片机有4个8位并行的I/O端口: P0、P1、P2、P3 口。这4个口既可以并 行输入或输出8位数据,又可以按位方式使用,即每一位均能独立作为输入或输出接口用。2.1.2定时器/计数器电路1.MCS-51单片机有两个16位的可编程定时/计数器:定时/计数器T0和定时/计数器T1。2.每个定时/计数器既可以对系统时钟计数实现定时,也可以对外部信号计数实现计 数功能,这些功能都是通过编程设定来实现的。3.每个定时/计数器有多种工作方式,其中T0有四种工作方式;T1有三种工作方式, T2有三种工作方式。通过编程可设定工作于某种

6、方式。4.每一个定时/计数器定时计数时间到时产生溢出,使相应的溢出位置位,溢出可通 过查询或中断方式来处理。2.1.3串行接口MCS-51单片机具有一个全双工的串行异步通信接口,可以同时发送、接收数据。发 送、接收数据可通过查询或中断的方式来处理。它有四种工作方式:0.方式0,称为同步移位寄存器方式,一般用于外接移位寄存器芯片扩展 I/O接口。1.方式1,称为8位的异步通信方式,通常用于双机通信。2.方式2和方式3,称为9位的异步通信方式,通常用于多机通信。2.1.4中断系统MCS-5单片机提供5个(52子系列提供6个)硬件中断源:两个外部中断源INT0(P3.2) 和INT1(P3.3),两

7、个定时/计数器T0和T1的溢出中断TF0和TF1;1个串行口发送T1和接 收R1中断。以下为本系统用到的串口中断部分指令:EA中断允许总控位。EA=Q屏蔽所有的中断请求;EA=1,开放中断。EA的作用是 使中断允许形成两级控制。ES:串行口中断允许位。ES=1允许串行口中断。REN为允许接收控制位。REN=1则允许接收。TI位发送中断标志位。RI为接收中断标志位。2.2数据采集、模数转换模块这一模块主要有ADC0808转化器和电位器组成成。ADC0808是 CMO单片型逐次逼近 式A/D转换器,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换 器、逐次逼近寄存器、逻辑控制和定

8、时电路组成。该部分构成如图 3所示。*CL(X.K NOSTART KIEOC INS0UT1 幅0UT2 MSOUTS W7OUT4OUTS ADD A0UT6 ADO e0UT7 ADOCOUT9 .aj-EVREF(*)OE U11 RW3Rh41218r-ZH.R*3 * ik徒皿L-荷2 *ik圧皿三 1kL3些1HTR6 * ik IEXT* FW? * ik.2.2.1输入输出端1.IN0 IN7: 8路模拟量输入端。2.0UT1 0UT8 8位数字量输出端。2.2.2传输通道选择端ADDA、ADDB ADDC 3位地址输入线,用于选通8路模拟输入中的一路。2.2.3使能端1.A

9、LE :地址锁存允许信号,输入,高电平有效。2.START A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉 冲上升沿使0809复位,下降沿启动A/D转换)。3.EOC : A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换 期间一直为低电平)。4.OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高 电平,才能打开输出三态门,输出数字量。5.CLK:时钟脉冲输入端。要求时钟频率不高于 640KHZ6.REF (+)、REF(-):基准电压。2.3显示模块显示模块选用1602型LCD显示模块。1602型LCD显示模块具有体积小

10、,功耗低, 显示内容丰富等特点。1602型LCD可以显示2行16个字符,有8位数据总线D0-D7和 RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。其外部 引脚如图4所示。E - -izgEfcD4D5D6D7 Z- 5 6VSS VDD VEELM018L图 4 LCD16022.3.1各引脚功能1.VSS:电源地。2.VDD:电源正极。3.VEE:液晶显示偏压信号。4.RS:数据/命令选择端。5.R/W: 读写选择端。6.E: 使能信号。7.D0-D7:数据输入/输出口。3.软件编程设计思想:ADC0809的使能控制端连接在单片机 P3 口,操作时由程序控

11、制。当 A/D 转换结束后由单片机将P1 口 A/D转换后的数据附给P0 口,进而由连接在P0 口的LCD显 示。对各子程序及主程序功能描述、流程图在以下做具体介绍。3.1显示子程序该部分程序的功能主要是将储存在单片机寄存器器中的采集到的 8路数据送至LCD中进行显示,其程序流程如图5所示。3.2 数据采集子程序Y该部分的功能是将从8路输入通道IN0-IN7输入的模拟量转化成数字量并送至单片机 内部寄存器中。oe=0向单片机输出转换 结果结束图6数据采集子程序流程图3.3 8路数据采集系统主程序该部分融合各子程序功能,实现对八路数据的采集和显示。其程序流程如图 7所示4.系统调试和结果分析根据

12、方案设计结果,进行了硬件电路在 Proteaus下的仿真。当通过电位器调节AD转换器输入端的电压时,模拟电压值经过AD转换后,经由单片 机将转换后的电压值发送至 P0 口,供LCD进行显示。仿真过程描述:通过keil软件对所编程序进行编译,生成.hex文件,在proteaus 软件中,用MCS5单片机调用.hex,即可进行硬件的仿真。该仿真包括两部分:1.对8路电压进行采集,经由AD转换器进行转化,转化后的16进制数存于单片机的 内部存储器中。2.对转换后的电压进行显示。将内部存储器中存储的转化后的电压对应的 16进制数付给P0 口,由LCD进行显示。调节电位器LCD的显示数据也会发生变化。调

13、试中遇到的问题:将程序下载至开发板上的单片机进行硬件调试时主要遇到以下两 个问题。1丄CD不显示数据,LED出现乱闪。解决方法:将LED的段选和位选端关闭后再进行 硬件调试,问题得到解决。2.调节电位器后,AD转换的数据不变化只显示5V。解决方法:AD转换程序出现错误, 更改程序后问题得到解决。5.结论及进一步设想本系统设计一个单片机系统,实现8路数据的采集和显示,它的任务是采集生产过程 中的各种工况参数经过处理后送入内存储器 ,CPU再对这些参数数据进行分析,运算和处 理。采用89C51系列单片机、AD转换器、LCD1602等器件,并采用C语言编程,在Proteaus 下实现了硬件仿真,得到

14、了一个8路数据输入输出系统。根据实验结果,本设计已经完成了设计任务,达到要求。但是由于仿真与实际应用是 有很大差别的,该单片机的8路数据采集系统还存在着实际的应用方面的缺陷, 可以通过把C语言编程、单片机、真实的硬件电路等更精密的器件综合到一起, 控制在工厂生产过程中需要采集和控制的数据,从而进一步改善该系统,使其能够应用到实际的生产过程中。参考文献1谢维成,杨加国.单片机原理与应用及C51程序设计.北京:清华大学出版社,20092于海生等.微型计算机控制技术.北京;清华大学出版社,20083刘复华.单片机及其应用系统.北京:清华大学出版社,19924李斌,董慧颖.可重组机器人研究和发展现状.

15、沈阳工业学院学报,2000 于海生等.微型计算机控制技术.北京:清华大学出版社,1999课设体会做了两周的课程设计,对于单片机的实际应用方面让我感受颇深。 对于本专业的学生, 我深知不进行自主的实践,永远也学不到真东西。在课设刚开始拿到题目觉得挺简单, 书上也有类似的程序,有点散漫。但当我真正的 去思考开始着手做程序时才发现自己还有好多要去学习。 Proteus仿真软件对我来说还是比较陌生的,有很多硬件都找不到,查阅了 Proteus相关的入门书籍后才能自如的运用软 件。之后便是C程序的编写,根据课设任务的要求,写出了程序的一个大概流程,按着 程序流程图一步一步的得到了能实现数据输入输出的程序

16、,期间经过了多次调试,修改。 最终得到完整的程序,心里还是小有成就感的。问题随之又来,当我将写好的程序进行实物仿真时,和我想的结果完全不同,写入 程序的开发板并没有像软件仿真时那样得出期望的结果,最后经过查阅资料将程序、 Proteus仿真、硬件的端口一一对应,才得出了争确的结果。最后,感谢学校和老师给我们安排了这次课程设计, 让我真正感受到的是合作的重要, 许多时候老师的指导中的一句半句启发了我, 就出现的让人欣喜的结果;理论知识同样很 重要,有些问题都是由于基础知识掌握不好才出现的。 总之,要想做好一个硬件,理论知识基础,动手能力也必须过关,二者缺一不可,我会继续努力学习这方面的知识, 通

17、过类 似课设这种方式锻炼自己,达到学以致用。2011年7月22日完成附录1电路原理图員再勻聶司三冏詞二至罔ii ai Of 2& RJW VS - * l*J U15 33 Prf為徂业寄弓吏5严卫 s S S S S S a B |宝戸言当目I英冥 奁宝崟至里邕咅M 吾誉倉言芒甞莒E H1I- 3 II* 一* RXF - F _aJ! Rl * l_Rfciiri7=_-_念-:附录2程序清单#in clude#in clude#defi ne uchar un sig ned char#defi ne uint un sig ned int/B 3.4/C 3.5/LCD RS 3.6/

18、LCD EN 3.7sbit adoe=P3A7;sbit eoc=P3A3; sbit adstart=P3A6;sbit a0=P3A0;sbit a仁 P3A1;sbit a2=P3A2;sbit lcdrs=P3A5; sbit Icden=卩3八4;0E 接 3.7EOC 接 3.1/start 接 3.2/A 3.3sbit duIa=P2A6;sbit weIa=P2A7;long int temp,b1,b2,b3,b4,b5;uchar tt;显示电压uchar code table=0123456789.V; /void delay(uint z) / 延时uint x,y

19、;for(x=z;x0;x_)for(y=100;y0;y-);void write_comma nd(uchar com)/ 写命令dula=0;wela=0;lcdrs=0; / 输入指令P0=com;dela y(5);lcde n=1; / 读数据dela y(5);lcden=O; / 写指令或者数据写数据void write_data(uchar date)/lcdrs=1; / 输入数据P0=date; / 显示delay(5);lcde n=1; / 读数据delay(5);lcden=0; /写指令或数据void ini t()/ 初始化lcde n=0;write_comm

20、a nd(0x38);不可变,显示模式设置:据接口write_comma nd(0x0c);屏幕开启和光标闪烁write_comma nd(0x06);显示开关及光标设置write_comma nd(0x01);清屏void start() / 开始 AD转换16*2显示,5*7点阵,8位数adoe=0;adstart=0;_nop_();adstart=1;adstart=0;void xia nshi() /AD 转化结果显示write_data(tableb1); / 最高位delay(1);write_data(table10); / 小数点delay(1);write_data(ta

21、bleb2); / 第二位delay(1);write_data(tableb3); / 第三位delay(1);write_data(table11); / 电压 Vdelay(1);void first_mark() 0-4 路通道的标号write_comma nd(0x01);write_comma nd(0x80); write_data(A);delay(1);write_comma nd(0x80+0x01); write_data(=);delay(1);write_comma nd(0x80+0x09); write_data(B);delay(1);write_comma n

22、d(0x80+0x0a); write_data(=);delay(1);write_comma nd(0x80+0x40);write_data(C);delay(1);write_comma nd(0x80+0x41); write_data(=);delay(1);delay(1);write_comma nd(0x80+0x49); write_data(D);delay(1);write_comma nd(0x80+0x4a); write_data(=);delay(1);void seco nd_mark() 5-7 路通道的标号write_comma nd(0x01);writ

23、e_comma nd(0x80); write_data(E);delay(1);write_comma nd(0x80+0x01); write_data(=);delay(1);write_comma nd(0x80+0x09); write_data(F);delay(1);write_comma nd(0x80+0x0a); write_data(=);delay(1);write_comma nd(0x80+0x40); write_data(G);delay(1);write_comma nd(0x80+0x41); write_data(=);delay(1);delay(1);

24、write_comma nd(0x80+0x49); write_data(H);delay(1);write_comma nd(0x80+0x4a); write_data(=);delay(1);void mai n()a2=0;init(); /调用LCD初始化子程序TMOD=0x01;EA=1;开总中断TH0=(65535-1000)/256; TL0=(65535-1000)%256;ET0=1;/开定时器0中断TR0=1;/定时器0置位 first_mark();while(1)a0=0; /0 路或4路通道的AD转化a仁0;start();while(!eoc);adoe=1;t

25、emp=P1;delay(3);adoe=0;b仁(temp*500/255)/100; / 最高位b2=(temp*500/255)%100/10; / 第二位b3=(temp*500/255)%10; / 第三位write_comma nd(0x80+0x02);xia nshi();a0=1; /1 路或5路通道的AD转化a仁0;start();while(!eoc);adoe=1;temp=P1;delay(3);adoe=0;b仁(temp*500/255)/100; / 最高位b2=(temp*500/255)%100/10; / 第二位b3=(temp*500/255)%10;

26、/ 第三位write_comma nd(0x80+0x0b);xia nshi();aO=O; 2 路或6路通道的a1=1;start();while(!eoc);adoe=1;temp=P1;delay(3);adoe=0;b1= (temp*500/255)/100;b2=(temp*500/255)%100/10; b3=(temp*500/255)%10; write_comma nd(0x80+0x42); xia nshi();a0=1; /3 路或7路通道的 a1=1;start();while(!eoc);adoe=1;temp=P1;delay(3);adoe=0;b1= (

27、temp*500/255)/100;b2=(temp*500/255)%100/10; b3=(temp*500/255)%10; write_comma nd(0x80+0x4b); xia nshi();void timer0() in terrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;tt+;if(a2=0&tt=20)=1) /LCDAD转化/最高位/第二位/第三位AD转化/最高位/第二位/第三位第二屏显示tt=o;a2=1;seco nd_mark();第一屏显示if(a2=1 &tt=20)=1) /LCD tt=0;a2=0; first_mark();

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

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