基于Matlab的数据采集系统Word下载.docx
《基于Matlab的数据采集系统Word下载.docx》由会员分享,可在线阅读,更多相关《基于Matlab的数据采集系统Word下载.docx(45页珍藏版)》请在冰点文库上搜索。
Matlab集科学与工程计算,图形可视化,图像处理于一体,并提供了Windows图界面设计方法。
1.功能强大
Matlab功能强大体现在以下几个方面。
(1)运算功能强大。
Matlab是以复数矩阵为基本编程单元的程序设计,其
强大的运算功能是使其成为世界顶尖的数学应用软件之一。
Matlab数值运算要素不是单个数据,而是矩阵,每个变量代表一个矩阵,矩阵有M×
N个元素,每个元素都可以看作复数,所有运算包括加,减,乘,除,函数运算等都对矩阵和复数有效;
另外,通过Matlab的符号工具箱,可以解决在数学,应用数学和工程计算领域中常遇到的符号计算问题。
(2)功能丰富的工具箱。
大量针对各专业应用的工具箱的提供,Matlab
适用于不同的领域。
(3)文字处理功能强大。
Matlab的Notebook为用户提供了强大的文字处理
功能,允许用户从Word访问Matlab的数值计算和可视化结果。
通过使用
Matlab的Notebook可以创建Matlab的程序文档,技术报告,注释文档,
手册和教科书。
2.人机界面友好,
Matlab的语言规则与笔算式相似,其矩阵的行列数无需定义。
由于
Matlab的命令表达式与标准的数学表达式非常相近,因此,易写易读并易于
在科技人员之间交流。
3.编程效率高
Matlab是以解释方式工作的,即它对每条语句解释后立即执行,键入算式无需编译立即得出结果,若有错误也立即做出反应,便于编程者立即改正。
这些都大大减轻了编程和调试的工作量,提高了编程效率。
4.强大而智能化的作图功能
Matlab可以方便地将工程计算的结果可视化,使原始的数据关系更加清晰明了,并揭示了数据间的内在联系。
Matlab能根据输入数据自动确定最佳坐标;
规定多种坐标系(如极坐标系,对数坐标系等);
设置不同颜色,线型,视角等并能绘制三维坐标中的曲线和曲面。
6.可扩展性强
Matlab软件包括基本部分和工具箱两大部分,具有良好的可扩展性。
Matlab的函数大多为ASCII文件,可以直接编辑,修改。
Matlab的工具箱可以任意增减。
7.Simulink动态仿真功能
Matlab的Simulink提供了动态仿真功能,用户能够通过绘制框图来模拟一个线性,非线性连续或离散的系统,通过Simulink仿真并分析该系统。
1.2Matlab的图形用户界面GUI
对于Matlab而言,实现Matlab与VC或者BC或者C++BUILDER等可视化设计语言的交互,提高速度,美化界面,使程序更符合Windows的规范,同时又利用Matlab的强大功能,对任何人来说都很有意义。
首先使用Matlab自带的GUIDE,在命令窗口输入GUIDE,运行GUI界面设计工具,这样系统会自动生成.fig以及.m文件,犹如我们常用的界面资源文件和后台代码文件,关于事件处理的代码可以在.m中编写。
这些通过Matlab的帮助,是非常容易学习的。
其次要使用其它的可视化开发工具,比如VC++,用C++(或者C)语言操作Matlab,有三种途径:
MEX文件
在Matlab中可调用的C或Fortran语言程序称为MEX文件。
Matlab可以直接把MEX文件视为它的内建函数进行调用。
MEX文件是动态链接DL的子例程,Matlab解释器可以自动载入并执行它。
MEX文件主要有以下用途:
对于大量现有的C或者Fortran程序可以无须改写成Matlab专用的M文件格式而在Matlab中执行。
对于那些Matlab运算速度过慢的算法,可以用C或者Fortran语言编写以提高效率,这点在效率改进方面意义重大。
MAT文件应用程序
MAT文件是Matlab专用的用于保存数据至磁盘和向Matlab导入、从Matlab导出数据的数据文件格式。
MAT文件提供了一种简便的机制,它允许你在两个平台之间以灵活的方式移动数据。
而且,它还提供了一种途径来向其它单机Matlab应用导入或者导出数据。
为了简化在Matlab环境之外对MAT文件的使用,Matlab给出了一个操作例程库,通过它,我们可以使用C/C++或者Fortran程序读写MAT文件。
引擎应用程序
Matlab提供了一系列的例程使得别的程序可以调用Matlab,从而把Matlab用作一个计算引擎。
Matlab引擎程序指的是那些通过管道(在UNIX系统中)或者ActiveX(在Windows系统中)与独立Matlab进程进行通信的C/C++或者Fortran程序,这样两者的独立性是最强的,只是通过开放的接口让外界程序管理Matlab进程的建立,调用,关闭等。
Matlab同样提供了一个函数库来启动或者结束Matlab进程、与Matlab交换数据以及发送Matlab命令。
下面总结一下用m文件实现GUI,相比用GUIDE的几大差异:
1.代码可复用,节省成本;
2.GUIDE还没有实现创建uitoolbox;
3.GUIDE不能创建所有axes的子对象;
4.写界面也有一些算法,在GUIDE中无法实现。
而用m文件就可以实现在不同窗口尺寸下给对象以合适的位置;
5.m文件可以生成非常复杂的界面;
6.采用GUIDE编程,代码编译后依赖于*.fig文件;
7.m文件可以实现组件;
8.m文件创建的对象,可以方便的在handle中存取数据;
9.m文件可以将创建对象代码与动作执行代码很好的结合起来。
2.单片机简介
随着计算机技术的发展,单片机技术已成为计算机技术中的一个独特的分支,单片机的应用领域也越来越广泛,特别是在工业控制和仪器仪表智能化中扮演着极其重要的角色。
单片机其实是这样一种芯片,它把微机的三大组成部分(CPU+存储器+I/O接口)和一些实时控制所需要的功能器件集成在该芯片上。
实时控制器件包括A/D转换器和D/A转换器,脉冲调制器等。
2.1单片机的发展概况
目前计算机硬件向造型化微型化和单片三个方向发展。
自1975年美国德克萨斯仪器公司(TexasInstruments)第一块单片机芯片TMS—1000问世以来,在短短的几十年间单片机已经发展成为计算机技术中一个非常有火力的分支,它有着自己的技术特征、规范、发展道路和应用环境。
按单片机的生产技术和应用对象,单片机先后经历了4位机、8位机、16位机、32位机几个有代表性的发展阶段。
1.4位单片机阶段
自1975年美国德克萨斯仪器公司首次推出4位单片机TMS—1000后,各个计算机生产公司竟相推出4位单片机。
例如美国国家半导体公司(NationalSemiconductor)的COP402系列,日本电气公司(NEC)的PDXX系列,美国洛克威尔公司(Rockwell)的PPS/1系列,日本松下公司的MN1400系列,富士公司的MB88系列等。
4位单片机主要用于家用电器、电子玩具等。
2.8位单片机阶段
1976年9月,美国Intel公司首先推出了MCS—48系列8位单片机以后,单片机发展进入了一个新的阶段,8位单片机纷纷应用而生。
例如,莫斯特克(Mostek)和仙童(Fairchild)公司共同合作生产的3870CF8系列,摩托罗拉(Motorola)公司的6801系列等。
在1978年以前,各厂家生产的8位单片机,由于受集成度(几千只管/片)的限制,一般没有进行接口,并且寻址空间的范围小(小于8KB),从性能看属于抵挡8位单片机。
随着集成电路工艺水平的提高,在1978年到1983年期间集成度提高度几万只管/片,因而一些高性能的8位单片机相继问世。
例如,1978年NEC公司的PD78XX系列,1983年Intel公司的MCS—51系列。
这类单片机的寻址能力达64KB,片内RO从容量达4—8KB,片内除有并行I10外,还有继行I10口,甚至有些还有A/D转换器功能。
因此,把这类单片机称为高档8位单片机。
8位单片机由于功能强,被广泛用于工业控制、智能接口、仪器仪表等各个领域
3.16位单片机阶段
1983年以后,集成电路的集成度可达十几万只管/片,16位单片机逐渐问世。
这一阶段的代表产品有1983年Intel公司推出的MCS—96系列,1987年Intel公司又推出的80C96,美国国家半导体公司推出HPC16040和NEC公司推出的783XX系列等。
16单片机把单片机的功能又推向了一个新的阶段。
如MCS—96系列的集成度位12万只管/片,片内含16位CPU、8KBROM、232字节RAM、5个8位并行I10口、4个全双工串行口、4个16位定时/记数器,8级中断处理系统,MCS—96系列还具有多种I10功能,如高速输入/输出(HSIO),脉冲宽度调制器(PWM)输出、特殊用途的监视定时器(watchdog)等等。
16单片机可用于高速复杂的控制系统。
4.32位单片机
近年来,各个计算机生产厂家已进入更高性能的单片机研制,生产阶段,由于控制领域对32位单片机需求并不十分迫切,所以32位单片机应用并不很多。
2.2单片机的特点及应用
单片机在结构和指令设置上均有独特之处,其主要的特点如下:
(1)单片机的存储器ROM和RAM是严格区分的。
(2)采用面向控制的指令系统。
(3)单片机的I10引脚通常多功能的。
(4)单片机的外部扩展能力强。
单片机在控制领域应用中,还有以下优点。
(1)体积小,成本低,运用灵活,易于产品化,它能方便地组成各种智能化的控制设备和仪器,做到机电一体化。
(2)面向控制,能针对性地解决从简单到复杂的各类控制任务,因而能获得最佳的性能价格比。
(3)抗干扰能力强,适用温度范围宽,在各种恶劣的环境下都能可靠的工作,这是其它类型计算机无法比拟的。
(4)可是方便地实现多机和分布试控制,使整个控制系统的效率和可靠性大为提高。
单片机的应用范围十分广泛,主要的应用领域有:
(1)工业控制。
单片机可以构成各种工业控制系统,数据采集系统等。
如数控机床、自动生产线控制、电机控制、温度控制等。
(2)仪器仪表。
如智能仪器、医疗器械、数字示波器等。
(3)计算机外部设备与智能接口。
如图形终端机、传真机、复印机、打印机、绘图仪、磁盘/磁带机、智能终端机等。
(4)商用产品。
如自动售货机、电子收款机、电子秤等。
(5)家用电器。
如微波炉、电视机、空调、洗衣机、录像机、音响设备等。
2.3常用单片机系列介绍
目前单片机产品各达50个系列,300多种型号。
国内单片机应用中常见的有Intel公司的MCS系列,Motorola公司的68HC05,68HC11系列,Philips公司80C51系列、Microchip公司的PIC16系列等,其中Intel公司的MCS系列一直在国内是应用主流系列。
下面只对Intel公司的MCS系列产品作简单介绍。
MCS系列单片机是Intel公司生产的单片机的总称。
Intel公司是生产单片机的创始者,其产品在单片机的各个发展具有代表性。
下面我们从单片机的各个发展阶段,简要介绍一下MCS系列单片机产品的情况。
第一阶段(1971—1976年):
单片机发展的初始阶段。
1971年11月,Intel公司首先设计出集成为2000只晶体管/片的4位微处理器Intel4004,并配有RAM,ROM和移位寄存器,构成了第一台MCS—4微处理器。
它的推出拉开了单片机研制的序幕。
第二阶段(1976—1980年):
低性能单片机阶段。
这一阶段以1976年Intel公司推出的MCS—48系列为代表产品。
第三阶段(1980—1983年):
高性能单片机阶段。
这一阶段以1980年Intel公司推出的MCS—51系列为代表产品。
第四阶段(1983年—至今):
16位单片机阶段。
这一阶段以1983年Intel推出的MCS—96系列为代表产品。
Intel公司的三个系列产品虽然经理了从低级阶段到高级阶段的发展过程,但从时常应用情况来看,并不是高级阶段产品淘汰低级产品,它们都有着各自的应用领域。
告诉应用场合选用16位或32位单片机,低速应用场合仍选用8位单片机,也有选用4位单片机的。
MCS—51系列单片机在中小型应用场合很常见。
20世纪80年代中期,Intel公司将在8051内核使用权以专利互换或出售形式转给世界许多著名IC制造商,如Philips、西门子、AMD、OKI、NEC、Atmel等,这样8051就成为有众多制造商支持、有上百个品种的大家族。
90年代,Philips推出支持16位计算的XA系列。
XA系列是16位单片机,又可完全兼容8051的指令系统。
Intel推出80C251也与8051在机器代码兼容,这样就保证了8051拥护到21世纪仍然具有技术的领先性。
随着硬件的发展,8051软件工具已有C级编译器及实时多任务操作系统(RTOS)。
在RTOS的支持下,单片机的程序设计更简单、更可靠、实时性更强。
3.硬件部分设计
采用与计算机串口连接的外置式采集卡。
其基本性能如下:
模拟通道数8,模拟输入电压0~5V,分辨率8位,采样频率(每通道)与采样通道数有关(二者乘积基本保持不变),8通道时每通道可达1000Hz,二通道时可达4000Hz以上,记录长度(采样时间长度)由用户决定,理论上最大长度仅取决于系统的内存容量,本设计利用6264将AT89C51外部数据存储器扩展为32K,即一次性可采样32768个点,完全满足一般测试的需要。
最大采样频率主要由A/D转换时间与数据传输时间决定。
ADC0809的A/D转换时间为100us,理论上采样频率可达到10000Hz,但考虑实际的数据传输时间本设计将其最大采样频率设计为8000Hz。
3.1数据采集卡框图
本设计的硬件部分设计是指数据采集卡的设计。
数据采集卡设计成外置试结构,模拟信号经过A/D转换成数字信号后通过串行口传至较远距离之外的计算机,本研究采用RS232形式接口。
数据采集卡框图见图1,主要包括TI公司生产的一片A/D转换芯片ADC0809及单片机AT89C51。
图1数据采集卡框图
3.2主要芯片的介绍
3.2.1AT89C51的介绍
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM-FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
(1)主要特性:
与MCS-51兼容
4K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
全静态工作:
0Hz-24Hz
三级程序存储器锁定
128×
8位内部RAM
32可编程I/O线
两个16位定时器/计数器
5个中断源
可编程串行通道
低功耗的闲置和掉电模式
片内振荡器和时钟电路
2.管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
3.2.2
ADC0809的介绍
ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。
它是逐次逼近式A/D转换器,可以和单片机直接接口。
(1)ADC0809的内部逻辑结构
图2ADC0809的内部逻辑结构图
由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
(2)引脚结构
图3ADC0809引脚结构图
IN0-IN7:
8条模拟量输入通道
ADC0809对输入模拟量要求:
信号单极性,电压范围是0-5V,若信号太小,必须进行放大;
输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:
4条
ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量