精品 毕业论文 毕业设计基于单片机的数据采集系统.docx
《精品 毕业论文 毕业设计基于单片机的数据采集系统.docx》由会员分享,可在线阅读,更多相关《精品 毕业论文 毕业设计基于单片机的数据采集系统.docx(25页珍藏版)》请在冰豆网上搜索。
![精品 毕业论文 毕业设计基于单片机的数据采集系统.docx](https://file1.bdocx.com/fileroot1/2023-1/28/ce16cc68-6986-4fdc-bbfc-2dc2a4b29a27/ce16cc68-6986-4fdc-bbfc-2dc2a4b29a271.gif)
精品毕业论文毕业设计基于单片机的数据采集系统
引言
我国目前中小型企业在整个工业产业中占相当大的比例,这些企业的监控模式主要为模拟控制系统加以常规仪表为主的数据采集系统。
这种监控模式存在着检修维护工作量大、没有可靠的历史记录等缺点。
而且常规模拟仪表也进入老化淘汰期,设备可靠性明显降低,某些仪表的备品备件也得不到保障,因此中小型企业监控系统的技术改造工作已势在必行。
数据采集系统是从一个或多个信号获取对象信息的过程。
随着微型计算机技术的飞速发展和普及,数据采集监测已成为日益重要的检测技术,广泛应用于工农业等需要同时监控温度、湿度和压力等场合。
数据采集是工业控制等系统中的重要环节,通常采用一些功能相对独立的单片机系统来实现,作为测控系统不可缺少的部分,数据采集的性能特点直接影响到整个系统。
数据采集系统可以采集的工业运行数据包括电气参数和非电气参数两类。
其中电气参数主要有电流、电压、功率、频率等模拟量,断路器状态、隔离开关位置、继电保护动作信号等开关量以及表示电度的脉冲量等。
而非电气参数种类较多,既可以是采集某些工业中的各种温度、压力、流量等热工信号,也可有水电厂中的水位、流速、流量等水工信号,还可以采集诸如绝缘介质状态、气象环境等其它信号。
本次设计中数据采集系统是基于单片机的测量软硬件来实现灵活的测量显示系统,它主要完成数据信息的采集、A/D转换、标度变换、数据显示及实现报警系统。
随着计算机技术的飞快发展和普及,以数据采集系统为核心的设备也迅速在国内外得到了广泛的应用,现代工业生产和科学研究对数据采集的要求也越来越高。
第1章数据采集系统概述
1.1数据采集系统发展概况
数据采集系统起始于20世纪50年代,1956年美国首先研究了用在军事上的测试系统,目标是测试中不依靠相关的测试文件,由非熟练人员进行操作,并且测试任务是由测试设备高速自动控制完成的。
由于该种数据采集测试系统具有高速性和一定的灵活性,可以满足众多传统方法不能完成的数据采集和测试任务,因而得到了初步的认可。
大约在60年代后期,国外就有成套的数据采集设备产品进入市场,此阶段的数据采集设备和系统多属于专用的系统。
20世纪70年代中后期随着微型机的发展,诞生了采集器、仪表同计算机溶为一体的数据采集系统,由于这种数据采集系统的性能优良,超过了传统的自动检测仪表和专用数据采集系统,因此获得了惊人的发展。
从70年代起,数据采集系统发展过程中逐渐分为两类,一类是实验室数据采集系统,另一类是工业现场数据采集系统。
就使用的总线而言,实验室数据采集系统多采用并行总线,工业现场数据采集系统多采用串行数据总线。
20世纪80年代,随着计算机的普及应用,数据采集系统得到了极大的发展,开始出现了通用的数据采集与自动测试系统。
该阶段的数据采集系统主要有两类,一类以仪器仪表和采集器、通用接口总线和计算机等构成,第二类以数据采集卡标准总线和计算机构成。
20世纪90年代至今,在国际上技术先进的国家,数据采集技术已经在军事、航空电子设备及宇航技术工业等领域被广泛应用。
由于集成电路制造技术的不断提高,出现了高性能、高可靠性的单片数据采集系统。
1.2数据采集系统的应用
数据采集系统的硬件设备又叫数据采集器,根据数据采集器的使用用途不同,数据采集器大体上可分为两类:
在线式数据采集器和便携式数据采集器。
在线式数据采集器又可分为台式和模块式,台式、便携式数据采集器大部分由交流电源供电,模块式数据采集器大部分由直流电源供电,一般是非独立使用的。
在采集器与计算机之间由电缆联接构成数据采集传输系统,一般不脱机单独使用。
数据采集器的应用涉及到众多的领域,下以介绍数据采集器及系统的几种典型应用。
数据采集器在实验室的应用,由美国PASCO公司生产的“科学工作室”是将数据采集应用于物理实验的崭新系统,它由3部分组成:
⑴传感器,利用先进的传感技术可实时采集物理实验中各物理量的数据;⑵计算机接口,将来自传感器的数据信号输入计算机,采样速率最高为25万次/s;⑶软件,中文及英文的应用软件。
数据采集器在物流供应链管理中的应用,便携式数据采集器的另一种类型是为扫描物体的条码符号而设计的,适合于脱机使用的场合。
识读时,与在线式数据采集器相反,它是将扫描器带到条码符号前扫描,因此又称之为手持终端机、盘点机。
它由电池供电与计算机之间的通信并不与扫描同时进行,它有自己的内部储存器,可以存储一定量的数据,并可在适当的时候将这些数据传输给计算机。
与此同时,数据采集器在海洋站自动监测系统中起到中坚作用,它是海洋站业务化运行能否实现自动化的关键。
第二章总体方案设计
2.1数据采集系统硬件构成
本次智能仪器课程设计的主题是数据采集与显示,这个系统主要有:
数据采集体统、数据处理系统、数据显示系统和键盘控制系统。
数据采集系统是将外部非电量转化成电信号,再将电信号转换成数字量,便于单片机对这些变量做进一步的运算。
当然,这一部分还包括放大、滤波等部分,在这次设计中,我们直接采集的是单片机板上0~5V的电压。
数据处理系统主要是对采集过来的数据进行标度变换。
数据显示系统的作用主要是将处理过的数据通过LED显示出来。
数据采集系统流程如图2-1所示。
图2-1数据采集系统流程图
根据本次课程设计的要求,硬件所需元器件的作用主要是实现采集与显示。
单片机89C52是这个设计的核心,它不仅进行数据处理的工作,而且控制这个系统的运行。
现在采集的芯片多种多样,这里我们使用的是采用串行通信方式的ADC0832,ADC0832数据转换器的主要功能是将外部模拟电信号转换成8位的数字量,这个类型的转换器转换精度相对较高,而且可靠性高。
显示部分主要的元器件是74LS164,它接受单片机的显示数据并将其传送给LED数码管。
本次设计数据采集系统主要的元器件如表2-1所示。
表2-1数据采集系统所用元器件
序号
器件名称
参数及说明
数量
1
89C52单片机
1
2
ADC0832转换器
1
3
滑动变阻器
1
4
电容
C1、C2为30pF;C3为10µF
3
5
晶振
12MHz
1
6
按钮开关
5
7
74LS164移位寄存器
4
8
LED数码管
4
9
蜂鸣器
1
10
电阻
若干
2.2数据采集系统软件设计思路
智能仪器课程设计软件部分采用C51语言设计,整个程序大体可以分为主程序与各种功能的子程序。
其中主程序主要的作用是初始化与调用子程序,程序执行过程的实质就是在执行主程序,在这个过长中通过调用程序,实现要求的功能。
每个子程序都有特定的功能,在本设计中主要有一下程序:
初始化子程序、数据采集子程序、标度变换子程序、数码管显示子程序、键盘扫描子程序、报警子程序、中断程序以及各个端口定义程序。
初始化程序中主要完成的任务有单片机上电初始化、定时器初始化以及各个端口初始化。
数据采集程序主要的作用是完成数据采集功能,将外部电信号转换成数字量。
标度变换程序的作用是将采集来的数字量转换成我们需要的量程范围。
键盘扫描程序是定时扫描K1、K2、K3、K4。
报警程序是当测量值大于报警值时,发出报警铃声。
定时中断程序的任务是在计时时间到时,给计数器赋予初始值,并完成键盘扫描程序及相关变量技术。
显示子程序的作用是从单片机串行接收数据,将接受的数据依次送到LED数码管显示,本次设计中每隔1s显示一次数据。
这个程序实现的流程如图2-2所示。
图2-2程序流程图
第三章硬件设计
3.1数据采集系统硬件设计方案
数据采集系统的硬件系统是由电源、滑动变阻器、模数转换模块ADC0832、单片机、晶振电路、复位电路、移位寄存器74LS164、数码管、电平转换芯片MAX232、九针串口、按键等组成的。
信号由电源和滑动变阻器分压得到,因为单片机只能接受数字信号,所以要将电压模拟量通过ADC0832转换成数字量,再由单片机对采集过来的数字量进行标度变换等操作。
用74LS164对采集过来的数据进行静态显示。
用按键设置显示的不同界面以及调节报警上限值,当采集的数据高于上限值时,系统便发出报警铃声。
3.2数据采集系统主要硬件介绍
3.2.189C52单片机概述
电子计算机是一种高速而精确地进行各种数据处理的机器,俗称电脑。
这是人类生产和科学技术发展的产物,它的出现又有力地推动了生产力的发展。
在微处理器问世不久,便出现了一个大规模集成电路为主组成的微型计算器,即单片微型计算机。
由于单片机面向控制性应用领域,嵌入到各种产品之中,以提高产品的智能化,所以单片机又称为嵌入式微控制器。
典型的单片机内部结构如图3-1所示。
图3-1典型的单片机内部结构
单片机是以一个大规模集成电路为主组成的微型计算机,在一个芯片内含有计算机的基本功能部件:
中央处理器(CPU)、存储器和I/O接口,CPU通过内部的总线和存储器、I/O接口相连。
其中CPU是单片机的核心部件,它包括运算器和控制器,CPU控制数据的处理和整个单片机系统的操作。
单片机的存储器都是半导体存储器,通常程序存储器和数据存储器分布于不同地址区域,类型也不同。
由于单片机的应用多种多样,因此单片机I/O接口的种类也很丰富。
3.2.2ADC0832模数转换器的工作原理
在工业控制和智能化仪表中,通常由微型计算机进行实时控制及实时数据处理。
计算机所加工的信息总是数字量,而被控制或被测量的有关参量往往是连续变化的模拟量,如温度、速度、压力等,与此对应的电信号是模拟信号。
模拟量的存储和处理比较困难,不适合作为远距离传输且易受干扰。
在一般的工业应用系统中传感器把非电量的模拟信号变成与之对应的模拟信号,然后经模拟(Analog)到数字(Digital)转换电路将模拟信号转成对应的数字信号送微机处理。
这就是一个完整的信号链,模拟到数字的转换过程就是我们经常接触到的ADC(AnalogtoDigitalConvert)电路。
本次智能仪表课程设计,我的题目是数字显示仪表,需要将模拟信号转换成数字量,经过LED数码管显示采集的数据。
ADC0832采用串行通信方式,ADC0832是8脚双列直插式双通道A/D转换器,能分别对两路模拟信号实现模—数转换,可以用在单端输入方式和差分方式下工作。
通过DI数据输入端进行通道选择、数据采集及数据传送。
8位的分辨率(最高分辨可达256级),可以适应一般的模拟量转换要求。
具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。
独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。
ADC0832具有以下特点:
•8位分辨率;
•双通道A/D转换;
•输入输出电平与TTL/CMOS相兼容;
•5V电源供电时输入电压在0~5V之间;
•工作频率为250KHZ,转换时间为32μS;
•一般功耗仅为15mW。
正常情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。
但由于DO端与DI端在通信时并未同时使用并与单片机的接口是双向的,所以在I/O口资源紧张时可以将DO和DI并联在一根数据线上使用。
当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。
当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。
此时芯片开始转换工作,同时由处理器向芯片时钟(CLK)输入端输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。
在第一个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。
在第二、三个脉冲下沉之前DI端应输入两位数据用于选择通道功能。
ADC0832引脚如图3-2所示。
图3-2ADC0832引脚图
3.2.374LS164移位寄存器的工作原理
74LS164是高速硅门CMOS器件,与低功耗肖特基型TTL(LSTTL)器件的引脚兼容。
74LS164是8位边沿触发式移位寄存器,串行输入数据,然后并行输出。
数据通过两个输入端(DSA或DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。
两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。
时钟(CP)每次由低变高时,数据右移一位,输入到Q0,Q0是两个数据输入端(DSA和DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。
主复位(MR)输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。
74LS164寄存器的特点如下:
•门控串行数据输入;
•异步中央复位;
•符合JEDEC标准no.7A;
•静电放电(ESD)保护;
•多种封装形式。
74LS164的DSA引脚用于数据输入,从单片机接受串行输出的数据;Q0~Q7引脚用于数据的输出,这8个引脚输出的是数码管接受的数据码,从而显示数据;CP为芯片的脉冲输入端;VCC与GND分别是74LS164的电源端与地。
74LS164的引脚如图3-3所示。
图3-374LS164引脚图
3.2.4MAX232接口芯片简介
MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。
MAX232是用来做电平转换的,标准RS232的电平很高,达正负15V。
常用的TTL电平最高5V。
相互连接的话,必须进行电平转换!
由于电脑串口输出电压高达12V,直接与单片机连接会烧坏芯片。
所以用MAX232来进行电平转。
MAX232芯片采用单+5V电源供电,仅需几个外接电容即可完成从TTL到RS232电平的转换。
MAX232共有两个通道,其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道;8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。
TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DP9插头;DP9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
MAX232芯片的主要特点有:
•符合所有的RS-232C技术标准;
•只需要单一+5V电源供电;
•内部集成2个RS-232C驱动器;
•内部集成两个RS-232C接收器;
•高集成度,片外最低只需4个电容即可工作。
单片机中的UART和电脑串口RS232的区别仅仅在于电平的不同,电脑中串口采用的是RS232电平,而单片机中采用的是UART。
所以采用TTL电平时,如果不进行电平转换,单片机跟电脑串口就不能进行直接通信,只要单片机与电脑的电平统一了,两者之间就可以直接通信。
于是应用了MAX232这一芯片,MAX232对两者之间通信的数据没有任何作用,仅仅是中介而已,而其只是负责将两者之间的电平进行统一,使两者之间没有通信障碍。
MAX232引脚如图3-4所示。
图3-4MAX232引脚图
3.3数据采集系统硬件电路
3.3.189C52单片机使用电路
⑴89C52时钟电路
时钟电路是计算机的心脏,它控制着计算机的工作节奏,可以通过提高时钟频率来提高CPU的速度。
目前51系列单片机都采用CMOS工艺,准许的最高频率随型号而变化。
89C52等CMOS型单片机内部有一个可控的反向放大器,引脚XTAL1、XTAL2为反向放大器的输入端和输出端,在XTAL1、XTAL2外接晶振(或陶瓷谐振器)和电容便组成振荡器。
现在流行的串行时钟电路很多,如DS1302、DS1307等。
这些电路的接口简单、价格低廉、使用方便,被广泛地采用。
实时时钟电路DS1302是DALLAS公司的一种具有涓细电流充电能力的电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。
89C52的时钟电路如图3-5所示。
图3-589C52时钟电路
在图3-2中,电容C1、C2的典型值为30pF±10pF(晶振)或40pF±10pF(陶瓷谐振器)。
振荡器频率主要取决于晶振(或陶瓷谐振器)的频率,但必须小于器件所准许的最高频率,在本次试验中单片机晶振采用的是12MHz。
⑵复位和复位电路
计算机在启动运行时都需要复位,使CPU和其他部件都置为一个确定的初始状态,并从这个状态开始工作。
89C52等CMOS51系列单片机的复位引脚RST是史密特触发输入脚。
当晶振起振以后,在RST引脚上输入2个机器周期以上的高电平,器件便进入复位状态,此时,ALE、PSEN、P0、P1、P2、P3输出高电平,RST上输入返回低电平以后,便退出复位状态开始工作。
当Vcc的上升时间为10ms,振荡器的频率为12MHz,则复位电路中C的典型值为10µF,R为3~10kΩ。
89C52单片机复位电路如图3-6所示。
图3-689C52复位电路
3.3.2ADC0832数据采集电路设计
ADC0832数据转换器的主要功能是将外部模拟电信号转换成8位的数字量,在模拟时要为ADC0832设计一个模拟量输入电路,在我的设计里用的是一个滑动变阻器连接电源,通过改变滑动变阻器的阻值,从而改变输入ADC0832模拟量的电压输入。
同时在proteus仿真的时候为输入添加一个电压表,与设计电路的显示相比较,可以清楚看出采集显示的相对误差。
ADC0832模拟信号输入端有两个,这个实验我采用的是CH0,即将滑动变阻器与CH0相连接。
VCC与GED引脚分别接电源与地,为转换器供电。
DO与DI端口连在一起与单片机相连,实现单片机与ADC0832之间的数字量交换。
CLK是转换器脉冲输入端,CS是使能端口,这两个端口分别与单片机的相应端口相接,实现对ADC0832转换器的控制,一方面控制单片机将控制信号送到转换器,另一方面控制单片机从转换器取得转换的数字量,进而对数字量进行下一步运算。
ADC0832数据采集电路如图3-7所示。
图3-7ADC0832数据采集电路
3.3.374LS164驱动数码管电路设计
74LS164是串入并出移位寄存器,在我的设计里我一次要显示四个数字,又根据下发硬件的条件,这里需要4个移位寄存器和4个LED数码显示管。
每个寄存器与数码管一一对应,寄存器的最低位Q0与LED数码的最低位相对应。
在本次课程设计中数码管采用的是共阴极显示管,将4四个数码管的使能端共同接地。
共阴极数码管的结构如图3-8所示。
图3-8共阴极数码管
74LS164移位寄存器将接受的第一个数据传送到Q0端,当寄存器接受第二个寄存器时,依然将数据送给Q0端,与此同时之前Q0端口的数据被挤给下一个端口Q1,一次类推,送满8次数据后,第一个移位寄存器的8个输出端口就都得到数据了,这8个端口与LED数码管的数据口相接就可以显示所要的数据。
这只是一位数码管的显示,我们要显示4位数据,首先将4个寄存器的脉冲输入端连在单片机的同一个端口,其次将第一个寄存器的Q7输出端口连接在下一个寄存器的数据输入端DSA,当有数据输入时,在同一个脉冲作用下,第一个寄存器Q7端口的数据就会被挤到下一个寄存器的Q0输出口。
以此类推,单片机给74LS164送28次数据后,4个寄存器就都有了数据,从而4个数码管就显示了相应的数字。
74LS164移位寄存器驱动4位数码管流程如图3-9所示。
图3-974LS164移位寄存器驱动4位数码管
第4章软件设计
4.1数据采集系统下载与调试
4.1.1Keil软件简介
KeilC51程序编写软件是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
我们在Keil环境下进行编写程序,编写好后利用Keil编译,最重要的是在这个环境下可以生成HEX文件,这个文件在proteus仿真以及下载到硬件时是必不可少的。
4.1.2STC_ISP_V479烧入软件简介
在Keil环境下编写的程序如果调试没有错误,并生成HEX文件,之后在proteus软件里仿真正确,便可以通过STC_ISP_V479软件将程序烧入到硬件电路中,具体步骤如下:
⑴打开STC_ISP_V479,导入程序HEX文件。
⑵选择单片机,我们选择89CR52。
⑶选择数据接口,根据下载线选择不同类型。
⑷选择数据带宽,根据单片机类型选择,我们选择115200即可。
⑸选择好后点击下载,出现握手连接时打开单片机电源。
4.2数据采集系统主要程序设计
4.2.1ADC0832数据采集程序设计
ADC08232芯片完成的功能是将外部模拟量转换成数字量,因为单片机接受的是数字量。
采用ADC0832进行转换时,须先将CS使能端置于低电平,在前三个时钟脉冲的下降之前DI端输送的是配置信号。
ADC0832数据采集程序流程如图4-1所示。
图4-1ADC0832数据采集程序流程图
4.2.2标度变换程序设计
在本设计中标度变换有三个选项,第一个是当界面标志变量等于0时,将采集的数据转换成0~5V的电压量,这直接等于ADC0832采集的数据。
第二个是界面标志变量等于1时,将0~5V的电压数据转换成0~100℃的温度变量,这里可以通过改变程序的数值,从而改变标度变换的量程。
第三个是界面标志变量等于2时,程序执行的是转换上限值,这里主要是对上限值的分解,便于后面显示程序的执行。
标度变换程序流程如图4-2所示。
图4-2标度变换程序流程图
4.2.374LS164静态显示程序设计
显示部分有三种显示界面,一种是显示电压值,一种是显示温度值,一种是显示上限值。
关于一个时间内显示的界面由键盘来控制,当界面标志变量确定后,显示的数据在标度变换的程序中就已经准备好了,在显示函数中只是调用这些数据。
这部分程序中重要的是74LS164的使用,它是串入并出的移位寄存器,当有下降沿来时,74LS164就会接受一位数据,并将其送到LED数码管中显示。
74LS164静态显示程序流程如图4-3所示。
图4-374LS164静态显示程序流程图
4.2.4键盘及报警系统程序设计
键盘的程序的主要功能是控制LED显示界面的形式,通过界面标志变量不同数值,从而控制不同的界面显示。
此程序中还包括了调节报警上限的函数,其中在显示报警上限界面的条件下,调节键盘可以使上限加一或减一。
此外,还设置了警报解除按键,在发出警报的过程中,如果警报变量等于1,则解除警报。
在硬件设置时,K1为界面变量控制按钮;K2为上限值加一按钮;K3为上限值减一按钮;K4为警报变量控制按钮。
键盘系统程序流程如图4-4所示。
图4-4键盘系统程序流程图
警报铃声程序就是一个驱动蜂鸣器的程序,当显示界面在0~100℃温度变量和上限值时,如果采集的温度变量高于上限值时,蜂鸣器便被驱动发出报警。
当报警变量被赋予1时,报警解除。
第5章总结
智能仪器课程设计在我们学习了单片机和智能仪器的基础上进行的,这不仅使我们对这两门课的基础知识得到巩固,更重要的是我们加深了这两门课的学习。
在软件方面,我进一步掌握了