基于AT89C51数据采集设计.docx
- 文档编号:27660857
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:16
- 大小:349.29KB
基于AT89C51数据采集设计.docx
《基于AT89C51数据采集设计.docx》由会员分享,可在线阅读,更多相关《基于AT89C51数据采集设计.docx(16页珍藏版)》请在冰豆网上搜索。
基于AT89C51数据采集设计
第一章绪论
本文从工程角度出发,详细介绍了基于AT89C51单片机的数据采集系统所需的硬件电路配置以及相关的程序设计,同时用基于Proteus和Keil接口的单片机外围硬件电路构成了一个实用的数据采集系统。
所得出的仿真结果完整地展示了一个单片机系统新的开发思路。
1.1研究背景及其目的意义
近年来,数据采集及其应用受到了人们越来越广泛的关注,数据采集系统也有了迅速的发展,它可以广泛的应用于各种领域。
数据采集,又称数据获取,是利用一种装置,从系统外部采集数据并输入到系统内部的一个接口。
被采集数据是已被转换为电讯号的各种物理量,如温度、水位、风速、压力等,可以是模拟量,也可以是数字量。
采集一般是采样方式,即隔一定时间(称采样周期)对同一点数据重复采集。
采集的数据大多是瞬时值,也可是某段时间内的一个特征值。
准确的数据量测是数据采集的基础。
数据量测方法有接触式和非接触式,检测元件多种多样。
不论哪种方法和元件,均以不影响被测对象状态和测量环境为前提,以保证数据的正确性。
数据采集含义很广,包括对面状连续物理量的采集。
在计算机辅助制图、测图、设计中,对图形或图像数字化过程也可称为数据采集,此时被采集的是几何量(或包括物理量,如灰度)数据。
20世纪90年代至今,在国际上技术先进的国家,数据采集系统已成功的运用到军事、航空电子设备及宇航技术、工业等领域。
由于集成电路制造技术的不断提高,出现了高性能、高可靠的单片机数据采集系统(DAS)。
数据采集技术已经成为一种专门的技术,在工业领域得到了广泛的应用。
该阶段的数据采集系统采用模块式结构,根据不同的应用要求,通过简单的增加和更改模块,并结合系统编程,就可扩展或修改系统,迅速组成一个新的系统。
[11]
尽管现在以微机为核心的可编程数据采集与处理采集技术的发展方向得到了迅速的发展,而且组成一个数据采集系统只需要一块数据采集卡,把它插在微机的扩展槽内并辅以应用软件,就能实现数据采集功能,但这并不会对基于单片机为核心的数据采集系统产生影响。
相较于数据采集板卡成本和功能的限制,单片机具多功能、高效率、高性能、低电压、低功耗、低价格等优点,而双单片机又具有精度较高、转换速度快、能够对多点同时进行采集,因此能够开发出能满足实际应用要求的、电路结构简单的、可靠性高的数据采集系统。
这就使得以单片机为核心的数据采集系统在许多领域得到了广泛的应用。
1.2研究的主要内容
数据采集技术是信息科学的重要分支之一,它研究信息数据的采集、存储、处理以及控制等问题。
它是对传感器信号的测量与处理,以微型计算机等高技术为基础而形成的一门综合应用技术。
数据采集也是从一个或多个信号获取对象信息的过程。
随着微型计算机技术的飞速发展和普及,数据采集监测已成为日益重要的检测技术,广泛应用于工农业等需要同时监控温度、湿度和压力等场合。
数据采集是工业控制等系统中的重要环节,通常采用一些功能相对独立的单片机系统来实现,作为测控系统不可缺少的部分,数据采集的性能特点直接影响到整个系统。
尽管现在以微机为核心的可编程数据采集与处理技术作为数据采集技术的发展方向得到了迅速的发展,并且适于通用微机(如IBMPC系列)使用的板卡级数据采集产品也已大量出现,组成一个数据采集系统简单到只需要一块数据采集卡,把它插在微机的扩展槽内,并辅以应用软件,就能实现数据采集功能,但这并不会对基于单片机为核心的数据采集系统产生影响,因为单片机功能强大、抗干扰能力强、可靠性高、灵活性好、开发容易等优点,使得基于单片机为核心的数据采集系统在许多领域得到了广泛的应用.
传统的基于单片机的数据采集系统由于没有上位机的支持,不管采用什么样的数据存储器,它的存储容量都是有限的,所以不得不对存储的历史数据进行覆盖刷新,这样不利于用户对数据进行整体分析,因而也不能对生产过程的状况进行准确的把握。
本系统采用下位机负责模拟数据的采集,从单片机负责采集八路数据,并应答主机发送的命令,上位机即主机是负责处理接受过来的数字量的处理及显示,主机和从机之间用RS-232进行通信。
这样用户可以在上位机上编写各种程序对文件中的数据进行有效查询和分析,有利于工业过程的长期正常运行和检查。
该系统采用的是AT89C51单片机,此芯片功能比较强大,能够满足设计要求。
第二章数据采集
2.1数据采集系统
在该系统中需要将模拟量转换为数据量,而A/D是将模拟量转换为数字量的器件,他需要考虑的指标有:
分辨率、转换时间、转换误差等等。
而单片机是该系统的基本的微处理系统,它完成数据读取、处理及逻辑控制,数据传输等一系列的任务。
在该系统中采用的是8051系列的单片机。
数据的显示则采用的是LED数码管,该器件比较简单,在生活中接触也较多。
数据采集系统一般由信号调理电路,采样保持电路,A/D,单片机等组成。
完成设计所需要的系统框图如下图所示:
2.2方案论证
2.2.1A/D模数转换的选择
A/D转换器的种类很多,就位数来说,可以分为8位、10位、12位和16位等。
位数越高其分辨率就越高,价格也就越贵。
A/D转换器型号很多,而其转换时间和转换误差也各不相同。
(1)逐渐逼近式A/D转换器:
它是一种速度快、精度较高、成本较低的直接式转换器,其转换时间在几微秒到几百微秒之间。
(2)双积分A/D转换器:
它是一种间接式的A/D转换器,优点是抗干扰能力强,精度比较高,缺点是数度很慢,适用于对转换数度要求不高的系统。
(3)并行式A/D转换器:
它又被称为flash(快速)型,它的转换数度很高,但她采用了很多个比较器,而n位的转换就需要2n-1个比较器,因此电路规模也极大,价格也很贵,只适用于视频A/D转换器等数度特别高的领域。
鉴于上面三种方案,在价格、转换速度等多种标准考量下,在本设计选用的是逐渐逼近式A/D转换器——ADC0809.
2.2.2单片机的选择
单片机是一种面向大规模的集成电路芯片,是微型计算机中的一个重要的分支。
此系统是由CPU、随即存取数据存储器、只读程序存储器、输入输出电路(I/O口),还有可能包括定时/计数器、串行通信口、显示驱动电路(LCD和LED驱动电路)、脉宽调制电路、模拟多路转换器及A/D转换器等电路集成到一个单块芯片上,构成了一个最小但完善的计算机任务。
单片机要使用特定的组译和编译软件编译程序,在用keiluvision2把程序下载到单片机内。
而本设计选用的是AT89C51。
2.2.3显示部分
LED数码显示管是一种由LED发光二极管组合显示字符的显示器件。
它使用了8个LED显示管,其中7个用于显示字符,1个用来显示小数点,故通常称之为八段发光二极管数码显示器。
对LED数码显示器的控制可以采用按时间向它提供具有一定驱动能力的位选和段选信号。
LED数码显示有动态扫描显示法和静态显示。
在单片机中,为了节省硬件资源,多采用动态扫描显示法。
第三章硬件部分
3.1电路设计原理
硬件电路上,简单的数字电压表主要包括两个部分,一个是模数转换的输入部分,一个是LED显示输出部分。
ADC0809内部带有输出锁存器,可以与AT89C51单片机直接相连。
初始化时,使ST和OE信号全为低电平。
送要转换的那一通道的地址到A,B,C端口上。
在ST端给出一个至少有100ns宽的正脉冲信号。
是否转换完毕,我们根据EOC信号来判断。
当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。
ADC0809对输入模拟量要求:
信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
本课设进行电路时所加的信号是一正弦波,振幅是1V,频率是50Hz。
简单的讲,LED数码显示器就是由发光二极管组成的,LED数码显示器有两种连接方式:
(1)共阴极接法:
把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。
每个发光二极管的阳极与输入端相连。
(2)共阳极接法。
把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。
3.2电路仿真图
第四章软件部分
4.1简介KeilUvision2
数据采集设计原理图
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(UVISION)将这些组合在一起。
Keil有以下几个特点:
1、全功能的源代码编辑器;
2、器件库用来配置开发工具设置;
3、项目管理器用来创建和维护用户的项目;
4、集成的MAKE工具可以汇编、编译和连接用户嵌入式应用;
5、所有开发工具的设置都是对话框形式的;
6、真正的源代码级的对CPU和外围器件的调试器;
7、高级GDI(AGDI)接口用来在目标硬件上进行软件调试以及和Monitor-51进行通信
其使用的过程为:
首先打开KeilUvision2,在KEIL系统中,每做个独立的程序,都视为工程。
首先从菜单中的工程中“新建工程”,建立我们将要做的工程项目:
接下来Keil环境要求我们为12工程选择一个单片机型号;我们选择Ateml公司的89C51。
“确定”后工程就算建立好了。
立了工程项目以后现在就要为工程添加程序,点击“文件”中的新建,新建一个空白文档;这个空白文档就是我们编写单片机程序的场所。
在这里可以进行编辑、修改等操作。
根据题意,在文档中写入代码,写完后再检查一下,然后保存,然后再将保存好的文档添加到工程中,具体做法如下:
程序文件添加完毕后,对其进行编译当前程序、编译修改过的文件并生成应用程序、重新编译所有文件并生成应用程序后,再点击TARGET,则其页面为:
再点击图案上的Output键
接下来就是点击上图中的selectfolderforobjects键,得到下图将其产生的HEX文件存储在E盘zh文件夹中。
最后一步就是利用STC-ISP将HEX文件烧录到单片机里。
4.2程序设计
进行A/D转换时,采用查询EOC的标志信号来检测A/D转换是否完毕,若完毕则把数据通过P0端口读入,经过数据处理之后在数码管上显示。
进行A/D转换之前,要启动转换的方法:
ABC=110选择第三通道,ST=0,ST=1,ST=0产生启动转换的正脉冲信号。
C语言源程序全貌:
#include
#defineucharunsignedchar
#defineuintunsignedint
//各数字的数码管段码(共阴)
ucharcodeDSY_CODE[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x40
};
sbitCLK=P1^3;//时钟信号
sbitST=P1^2;//启动信号
sbitEOC=P1^1;//转换结束信号
sbitOE=P1^0;//输出使能
//延时
voidDelayMS(uintms)
{
uchari;
while(ms--)
for(i=0;i<120;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);
P2=0xfd;
P0=DSY_CODE[d<0];
DelayMS(5);
}
//主程序
voidmain()
{
TMOD=0x02;//T1工作模式2
TH0=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;
}
}
//T0定时器中断给ADC0808提供时钟信号
voidTimer0_INT()interrupt1
{
CLK=~CLK;
}
LED显示程序流程框图:
第五章调试结果
在Proteus仿真软件中进行电路仿真,进过调试可得出以下结论:
若输入信号太小的话,可以将信号放大后加入到AD通道3,同时,下边的参考电压REF+端加的直流电压改为放大后的电压。
现在的频率比较低,要频率快的话,得加个采样保持电路(模电的知识),芯片是LF198。
现在的电路只能正向AD转换,可以将输入正弦波进过全波整流电路,处理后的波形全是正向的。
对于现在的仿真图,正弦波的频率减小,显示就会慢,看的更清晰。
总结
本次设计是我对课堂上的理论知识有了进一步的了解,并增强了对单片机这门课程的兴趣。
在整个设计过程中,我在图书馆查阅了大量的资料,在网上浏览了大量的信息,充分发挥个人的主观能动性,自主学习,独立思考,积极探索,接触并学到了许多以前没学到的知识。
本次课程设计达到了预期目的,更重要的是,让我学会了综合运用所学知识解决实际问题,为以后工作打下坚实的基础。
参考文献
1 白延敏.51单片机典型系统开发实例精讲.第二版.北京.电子工业出版社.2009年1月.48~107页.
2 杨尧.杨晓琴.王益斌,等.单片机课程设计指导.第三版.北京.清华大学出版社.2009年9月.35~120页.
3 何宏.龚威.单片机原理与接口技术.北京.国防工业出版社.2006年1月.3~75页.
4 朱清慧.Proteus显示控制系统设计与实例.第一版.北京.清华大学出版社.2011年5月.12~56页.
5 江世明.基于Proteus的单片机应用技术.第二版.北京.电子工业出版社.2009年6月.34~88页.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89C51 数据 采集 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)