八路数据采集系统

  • 格式:doc
  • 大小:239.58 KB
  • 文档页数:16

基于单片机的八路数据采集系统(二)摘要:单片机数据采集系统是计算机在工业控制中最为普遍的应用系统¸它的任务是采集生产过程中的各种工况参数经过处理后送入内存储器,CPU 再对这些参数数据进行分析,运算和处理。

本系统设计一个单片机系统,负责数据的采集和显示,设计一个多路数据输入输出系统,实现8路输入和输出。

采用89C51系列单片机、ADC0809、LCD1602等芯片实现硬件仿真,采用C 语言编程。

最后硬件电路在Proteaus 下仿真实现。

关键词:数据采集;8路输入输出;LCD 。

0.前言随着科学技术的进步,人们越来越多地用计算机来实现控制系统,因此,充分理解计算机控制系统是十分重要的。

计算机控制系统的工作原理可归纳为以下三个步骤:1.实时数据采集:对来自测量变送装置已的被控量的瞬时值进行检测和输入。

2.实时控制决策:对采集到的被控量进行分析和处理,并按已定的控制规律,决定将要采取的控制行为。

3.实时控制输出:根据控制决策,适时地对执行机构发出控制信号,完成控制任务。

工业控制机包括硬件和软件两部分:硬件包括主机板、内部总线和外部总线、人-机接口、系统支持板、磁盘系统、通信接口、输入输出通道。

软件包括系统软件、支持软件和应用软件。

本系统设计一个单片机系统,负责数据的采集和显示,设计一个多路数据输入输出系统,实现8路输入和输出。

采用89C51系列单片机、ADC0809、LCD1602等芯片实现硬件仿真,采用C 语言编程。

最后硬件电路在Proteaus 下仿真实现。

1.方案设计数据采集电路的原理框图1所示。

图1 数据采集电路的原理框图模拟输入通道1 模拟输入通道2模拟输入通道8ADC0809MCS-51 单片机LCD1602根据设计要求,采用的方案如下:硬件部分实现对8路数据采集和显示的功能,包括MCS-51单片机、ADC0809、LCD1602;软件部分实现单片机对8路输入数据的采集以及对LCD的显示操作。

主要设计思想:单片机P1与ADC0809相连,P0与LCD连接。

模拟信号通过IN0——IN7输入到ADC0809中转换为数字信号,P1获得此值后,经过处理得到每位的数据后,通过P2口写数据到LCD屏上。

2.硬件电路设计2.1 MCS51单片机MCS-51单片机的内部资源主要有并行I/O接口、定时器/计数器、串行接口以及中断系统。

其外部引脚如图2所示。

图2 MCS-51单片机2.1.1 I/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有三种工作方式。

通过编程可设定工作于某种方式。

4.每一个定时/计数器定时计数时间到时产生溢出,使相应的溢出位置位,溢出可通过查询或中断方式来处理。

2.1.3 串行接口MCS-51单片机具有一个全双工的串行异步通信接口,可以同时发送、接收数据。

发送、接收数据可通过查询或中断的方式来处理。

它有四种工作方式:0.方式0,称为同步移位寄存器方式,一般用于外接移位寄存器芯片扩展I/O接口。

1.方式1,称为8位的异步通信方式,通常用于双机通信。

2.方式2和方式3,称为9位的异步通信方式,通常用于多机通信。

2.1.4 中断系统MCS-51单片机提供5个(52子系列提供6个)硬件中断源:两个外部中断源INT0(P3.2)和INT1(P3.3),两个定时/计数器T0和T1的溢出中断TF0和TF1;1个串行口发送T1和接收R1中断。

以下为本系统用到的串口中断部分指令:EA:中断允许总控位。

EA=0,屏蔽所有的中断请求;EA=1,开放中断。

EA的作用是使中断允许形成两级控制。

ES:串行口中断允许位。

ES=1允许串行口中断。

REN为允许接收控制位。

REN=1,则允许接收。

TI位发送中断标志位。

RI为接收中断标志位。

2.2 数据采集、模数转换模块这一模块主要有ADC0808转化器和电位器组成成。

ADC0808是CMOS单片型逐次逼近式A/D转换器,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。

该部分构成如图3所示。

图3 模数转换模块2.2.1 输入输出端1. IN0~IN7:8路模拟量输入端。

2. OUT1~OUT8:8位数字量输出端。

2.2.2 传输通道选择端ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。

2.2.3 使能端1.ALE:地址锁存允许信号,输入,高电平有效。

2.START: A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。

3.EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。

4.OE:数据输出允许信号,输入,高电平有效。

当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。

5.CLK:时钟脉冲输入端。

要求时钟频率不高于640KHZ。

6.REF(+)、REF(-):基准电压。

2.3 显示模块显示模块选用1602 型LCD显示模块。

1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。

1602型LCD可以显示2行16个字符,有8位数据总线D0-D7和RS,R/W,EN三个控制端口,工作电压为5V,并且具有字符对比度调节和背光功能。

其外部引脚如图4所示。

图4 LCD16022.3.1 各引脚功能 1.VSS:电源地。

2.VDD:电源正极。

3.VEE:液晶显示偏压信号。

4.RS:数据/命令选择端。

5.R/W:读写选择端。

6.E:使能信号。

7.D0-D7:数据输入/输出口。

3.软件编程设计思想:ADC0809的使能控制端连接在单片机P3口,操作时由程序控制。

当A/D 转换结束后由单片机将P1口A/D 转换后的数据附给P0口,进而由连接在P0口的LCD 显示。

对各子程序及主程序功能描述、流程图在以下做具体介绍。

3.1 显示子程序该部分程序的功能主要是将储存在单片机寄存器器中的采集到的8路数据送至LCD 中进行显示,其程序流程如图5所示。

N Y图5 显示子程序流程图初始化a2是否等于1写数据写指令开始第一屏显第二屏显3.2 数据采集子程序该部分的功能是将从8路输入通道IN0-IN7输入的模拟量转化成数字量并送至单片机内部寄存器中。

其流程图如图6所示。

Y图6 数据采集子程序流程图3.3 8路数据采集系统主程序该部分融合各子程序功能,实现对八路数据的采集和显示。

其程序流程如图7所示。

图7 数据采集系统主程序流程图开始开启AD 转换eoc 为0否? 延时等待oe=0向单片机输出转换结果结束N开始LCD 初始化开启AD 转换a2为0么? 第一屏显示第二屏显示结束NY4. 系统调试和结果分析根据方案设计结果,进行了硬件电路在Proteaus下的仿真。

当通过电位器调节AD转换器输入端的电压时,模拟电压值经过AD转换后,经由单片机将转换后的电压值发送至P0口,供LCD进行显示。

仿真过程描述:通过keil软件对所编程序进行编译,生成.hex文件,在proteaus 软件中,用MCS51单片机调用.hex,即可进行硬件的仿真。

该仿真包括两部分:1.对8路电压进行采集,经由AD转换器进行转化,转化后的16进制数存于单片机的内部存储器中。

2.对转换后的电压进行显示。

将内部存储器中存储的转化后的电压对应的16进制数付给P0口,由LCD进行显示。

调节电位器LCD的显示数据也会发生变化。

调试中遇到的问题:将程序下载至开发板上的单片机进行硬件调试时主要遇到以下两个问题。

1.LCD不显示数据,LED出现乱闪。

解决方法:将LED的段选和位选端关闭后再进行硬件调试,问题得到解决。

2.调节电位器后,AD转换的数据不变化只显示5V。

解决方法:AD转换程序出现错误,更改程序后问题得到解决。

5. 结论及进一步设想本系统设计一个单片机系统,实现8路数据的采集和显示,它的任务是采集生产过程中的各种工况参数经过处理后送入内存储器,CPU再对这些参数数据进行分析,运算和处理。

采用89C51系列单片机、AD转换器、LCD1602等器件,并采用C语言编程,在Proteaus 下实现了硬件仿真,得到了一个8路数据输入输出系统。

根据实验结果,本设计已经完成了设计任务,达到要求。

但是由于仿真与实际应用是有很大差别的,该单片机的8路数据采集系统还存在着实际的应用方面的缺陷,可以通过把C语言编程、单片机、真实的硬件电路等更精密的器件综合到一起,控制在工厂生产过程中需要采集和控制的数据,从而进一步改善该系统,使其能够应用到实际的生产过程中。

参考文献[1] 谢维成,杨加国.单片机原理与应用及C51程序设计. 北京:清华大学出版社,2009[2] 于海生等.微型计算机控制技术.北京;清华大学出版社,2008[3] 刘复华. 单片机及其应用系统. 北京:清华大学出版社,1992[4] 李斌,董慧颖. 可重组机器人研究和发展现状. 沈阳工业学院学报,2000[5] 于海生等. 微型计算机控制技术. 北京:清华大学出版社,1999课设体会做了两周的课程设计,对于单片机的实际应用方面让我感受颇深。

对于本专业的学生,我深知不进行自主的实践,永远也学不到真东西。

在课设刚开始拿到题目觉得挺简单,书上也有类似的程序,有点散漫。

但当我真正的去思考开始着手做程序时才发现自己还有好多要去学习。

Proteus仿真软件对我来说还是比较陌生的,有很多硬件都找不到,查阅了Proteus相关的入门书籍后才能自如的运用软件。

之后便是C程序的编写,根据课设任务的要求,写出了程序的一个大概流程,按着程序流程图一步一步的得到了能实现数据输入输出的程序,期间经过了多次调试,修改。

最终得到完整的程序,心里还是小有成就感的。

问题随之又来,当我将写好的程序进行实物仿真时,和我想的结果完全不同,写入程序的开发板并没有像软件仿真时那样得出期望的结果,最后经过查阅资料将程序、Proteus仿真、硬件的端口一一对应,才得出了争确的结果。

最后,感谢学校和老师给我们安排了这次课程设计,让我真正感受到的是合作的重要,许多时候老师的指导中的一句半句启发了我,就出现的让人欣喜的结果;理论知识同样很重要,有些问题都是由于基础知识掌握不好才出现的。