第三章 数据采集常用程序设计

合集下载

51单片机数据采集系统

51单片机数据采集系统

课程设计报告书设计任务书一、设计任务1一秒钟采集一次。

2把INO口采集的电压值放入30H单元中。

3做出原理图。

4画出流程图并写出所要运行的程序。

二、设计方案及工作原理方案: 1. 采用8051和ADC0809构成一个8通道数据采集系统。

2. 能够顺序采集各个通道的信号。

3. 采集信号的动态范围:0~5V。

4. 每个通道的采样速率:100 SPS。

5.在面包板上完成电路,将采样数据送入单片机20h~27h存储单元。

6.编写相应的单片机采集程序,到达规定的性能。

工作原理:通过一个A/D转换器循环采样模拟电压,每隔一定时间去采样一次,一次按顺序采样信号。

A/D转换器芯片AD0809将采样到的模拟信号转换为数字信号,转换完成后,CPU读取数据转换结果,并将结果送入外设即CRT/LED显示,显示电压路数和数据值。

目录第一章系统设计要求和解决方案第二章硬件系统第三章软件系统第四章实现的功能第五章缺点及可能的解决方法第六章心得体会附录一参考文献附录二硬件原理图附录三程序流程图第一章系统设计要求和解决方案根据系统基本要求,将本系统划分为如下几个部分:●信号调理电路●8路模拟信号的产生与A/D转换器●发送端的数据采集与传输控制器●人机通道的接口电路●数据传输接口电路数据采集与传输系统一般由信号调理电路,多路开关,采样保持电路,A/D,单片机,电平转换接口,接收端(单片机、PC或其它设备)组成。

系统框图如图1-1所示1.1 信号采集分析被测电压为0~5V 直流电压,可通过电位器调节产生。

1.1.1 信号采集多路数据采集系统多采用共享数据采集通道的结构形式。

数据采集方式选择程序控制数据采集。

程序控制数据采集,由硬件和软件两部分组成。

,据不同的采集需要,在程序存储器中,存放若干种信号采集程序,选择相应的采集程序进行采集工作,还可通过编新的程序,以满足不同采样任务的要求。

如图1-3所示。

程序控制数据采集的采样通道地址可随意选择,控制多路传输门开启的通道地址码由存储器中读出的指令确定。

直线度误差的数据处理及程序设计

直线度误差的数据处理及程序设计

直线度误差的数据处理及程序设计直线度误差是机械加工中常见的一种误差,它会影响加工精度和产品质量。

因此,对直线度误差进行数据处理和程序设计是非常重要的。

一、直线度误差的数据处理直线度误差的数据处理主要包括数据采集、数据处理和数据分析三个步骤。

1. 数据采集数据采集是指通过测量仪器对工件进行测量,获取直线度误差的数据。

常用的测量仪器有激光干涉仪、三坐标测量机等。

在进行数据采集时,需要注意测量仪器的精度和稳定性,以及测量环境的影响。

2. 数据处理数据处理是指对采集到的数据进行处理,得到直线度误差的数值。

常用的数据处理方法有平均值法、最小二乘法等。

在进行数据处理时,需要注意数据的有效性和准确性。

3. 数据分析数据分析是指对处理后的数据进行分析,得出直线度误差的分布规律和特点。

常用的数据分析方法有直方图、正态分布曲线等。

在进行数据分析时,需要注意数据的可靠性和可重复性。

二、直线度误差的程序设计直线度误差的程序设计主要包括程序编写、程序测试和程序优化三个步骤。

1. 程序编写程序编写是指根据直线度误差的数据处理方法和数据分析方法,编写相应的程序。

常用的编程语言有C、C++、Python等。

在进行程序编写时,需要注意程序的可读性和可维护性。

2. 程序测试程序测试是指对编写好的程序进行测试,验证程序的正确性和稳定性。

常用的测试方法有单元测试、集成测试等。

在进行程序测试时,需要注意测试数据的有效性和准确性。

3. 程序优化程序优化是指对测试后的程序进行优化,提高程序的效率和性能。

常用的优化方法有算法优化、代码优化等。

在进行程序优化时,需要注意程序的可扩展性和可移植性。

总之,直线度误差的数据处理和程序设计是机械加工中非常重要的一部分。

通过科学的数据处理和程序设计,可以提高加工精度和产品质量,为机械加工行业的发展做出贡献。

企业运营数据采集与分析操作手册

企业运营数据采集与分析操作手册

企业运营数据采集与分析操作手册第1章企业运营数据采集概述 (4)1.1 数据采集的重要性 (4)1.2 数据采集的流程与原则 (4)1.3 数据采集的方法与工具 (5)第2章数据采集准备工作 (6)2.1 确定数据采集目标 (6)2.2 设计数据采集方案 (6)2.3 数据采集前的技术准备 (6)第3章数据源选择与接入 (7)3.1 数据源类型及选择标准 (7)3.1.1 数据源类型 (7)3.1.2 选择标准 (7)3.2 数据源接入方式 (7)3.2.1 直连数据库 (7)3.2.2 API接口 (8)3.2.3 文件导入 (8)3.2.4 网络爬虫 (8)3.3 数据源质量控制 (8)3.3.1 数据清洗 (8)3.3.2 数据验证 (8)3.3.3 数据监控 (8)3.3.4 数据安全 (8)第4章数据采集实施 (8)4.1 数据采集工具的使用 (8)4.1.1 网络爬虫 (8)4.1.2 数据库采集 (9)4.1.3 API接口采集 (9)4.2 数据采集过程中的注意事项 (9)4.2.1 数据来源的可靠性 (9)4.2.2 数据隐私与安全 (9)4.2.3 数据采集的合规性 (9)4.2.4 数据质量保障 (9)4.3 数据采集效率优化 (10)4.3.1 优化采集策略 (10)4.3.2 利用缓存技术 (10)4.3.3 分布式采集 (10)4.3.4 异步处理 (10)4.3.5 数据压缩与传输 (10)第5章数据清洗与预处理 (10)5.1 数据清洗的基本原则 (10)5.1.1 完整性原则:保证数据表中所有字段完整,无缺失值。

(10)5.1.2 准确性原则:对数据进行校验,保证数据正确无误。

(10)5.1.3 一致性原则:保持数据在时间、空间、计量单位等方面的一致性。

(10)5.1.4 唯一性原则:消除数据冗余,保证每条数据的唯一性。

(10)5.1.5 可追溯性原则:对数据清洗过程进行记录,以便追溯问题来源。

第一章数据采集与处理

第一章数据采集与处理

多 路 模 拟 开 关
S/H
A/D
计算机 系统
微型计算机数据采集系统的特点
• 系统结构简单,技术上容易实现,能够满足中、 小规模数据采集的要求。 • 微型计算机对环境的要求不是很高,能够在比较 恶劣的环境下工作。
• 微型计算机的价格低廉,降低了数据采集系统的 成本。
• 微型计算机数据采集系统可作为集散型数据采集 系统的一个基本组成部分。 • 微型计算机的各种I/O模板及软件都比较齐全,很 容易构成系统,便于使用和维修。
• • • •
屏幕显示 数据存储 打印输出 人机联系
§1.3 数据采集系统的结构形式
§1.3.1 微型计算机数据采集系统
微型计算机数据采集系统是由传感器、模拟多路开关、程控放 大器、采样/保持器、A/D转换器、计算机及外设等部分 组成
§1.3.2 集散型数据采集系统
集散型数据采集系统是计算机网络技术的产物,它由若干个 “数据采集站”和一台上位机及通信接口、通信线路组成。
§1.1 数据采集的意义、任务及基本概念
数据采集:指将温度、压力、流量、位移等模拟量采集转换成 数字量后,再由计算机进行存储、处理、显示或打印的过程。 相应的系统称为数据采集系统。 数据采集的意义:在生产过程中,应用这一系统可对生产现场 的工艺参数进行采集、监视和记录,为提高产品质量、降低成 本提供信息和手段。在科学研究中,应用数据采集系统可获得 大量的动态信息,是研究瞬间物理过程的有力工具。总之,不 论在哪个应用领域中,数据的采集与处理越及时,工作效率就 越高,取得的经济效益就越大。 数据采集的任务:数据采集系统的任务,具体地说,就是采集 传感器输出的模拟信号并转换成计算机能识别的数字信号,然 后送入计算机进行相应的计算和处理,得出所需的数据。与此 同时,将计算得到的数据进行显示或打印,以便实现对某些物 理量的监视,其中一部分数据还将被生产过程中的计算机控制 系统用来控制某些物理量。

Labview温度测量及数据采集

Labview温度测量及数据采集

摘要随着电子测试技术的不断发展,测试技术正向自动化,智能化,数字化和网络化的方向发展。

其中数字滤波器作为测试技术的重要工具而被广泛的使用与各个领域。

本课题是用Labview来实现温度检测系统的设计以及应用首先,本论文介绍Labview相关知识,利用虚拟仪器的开发平台——Labview开发的软件系统,主要包括五个模块:数据采集,显示记录,数据回放,数据处理和数据分析。

VI是计算机技术和传统的仪器技术相结合的产物,是仪器发展的一个重要方向,Labview是一个基于图形虚拟仪器的软件开发工具,主要用于自动测试、过程控制、仪器设计和数据分析等领域,其基本思想是在仪器设计或测试系统中尽可能用软件代替硬件,即“软件就是仪器”,他是在通用计算机平台上,根据用户需求来定义和设计仪器的测试功能,其实质是充分利用计算机的最新技术来实现和扩展传统仪器的功能。

本文重点介绍了虚拟仪器的界面Labview的应用,并设计一个基于虚拟仪器的数字和控制系统,阐述了系统开发过程中数据的采集和软硬件的设计关键字:Labview 温度测量数据采集AbstractAlong with the electronic test technology's unceasing development, the testtechnology forward automation, the intellectualization, digitized and the networkdirection develops. Andthedigital filtertake the test technology the important tool by the widespread use and each domain. This topic is realizes the temperatureexaminationsystem's design as well as the application with Labview first, the present paper introduced that the Labview related knowledge, the use hypothesizedinstrument's development platform - - Labviewdevelopment's software system,mainly includes five modules: The data acquisition, demonstrates the record,playbacking, the data processing and the data analysis.VI is the product which the computer technology and thetraditional instrument technology unifies, is an important direction which the instrument develops, Labview is one based on the graph hypothesized instrument's software development tool, mainly uses in domains and so on test automation, process control, instrumental design and data analysis, its basic philosophy is uses the software in the instrumental design or the test system to replace the hardware as far as possible, namely “the software is the instrument”, he is in the general-purpose calculator platform, defines and designs instrument's test function according to the user's needs, its essence is realizes fully using computer's newest technology with the expansion tradition instrument's function. This article introduced with emphasis the hypothesized instrument's contact surface Labview application, and designs one based on the hypothesized instrument's digit and the control system, elaborated in the system performance history data gathering and software and hardware's design Keyword: LabVIEW Temperature survey Data acquisition目录摘要 (Ⅰ)Abstract (Ⅱ)绪论1.1课题背景 (1)1.1.1背景简介 (2)1.1.2引言 (2)第二章虚拟仪器简介2.1虚拟仪器特点 (3)2.2虚拟仪器构成 (4).3 Labview8.5的安装及应用 (5)第三章系统硬件设计3.1系统设计流程模块 (6)3.2硬件电路设计 (7)3.2.1硬件电路基本组成 (9)3.2.2硬件电路基本功能描述 03.2.3硬件电路模块功能分析 (3)3.2.3.1温度传感器电路原理 (4)3.2.3.2模数转化以及数据存储原理 (2)第四章系统软件设计4.1 系统软件设计基本流程 (3)4.2 系统软件设计测量参数原理 (2)4.3 数据采集子程序的设计 (3)4.3.1 数据采集卡USB2013简介 (4)4.3.2 数据采集卡工作原理及分析 (4)4.4系统闭环控制实现过程 (5)4.4.1系统闭环基本工作原理 (5)4.4.2工程PID算法分析控制器原理 (5)4.5温度检测系统VI程序设计 (6)总结 (5)结束语 (3)参考文献 (4)致谢 (4)课题背景背景简介:虚拟仪器(VI)是计算机技术和传统的仪器技术相结合的产物,是仪器发展的一个重要方向。

工控程序设计之串口设备的数据采集(ppt 43页)

工控程序设计之串口设备的数据采集(ppt 43页)

学习情景2.3 单个串口设备数据的连续接收
❖ 5 工作者线程向用户界面线程传递数据 ❖ 用户界面线程简称UI线程,其主要特点是能响应Windows消息,主
要负责接收用户输入和向用户展示程序执行结果。为了及时响应用户 的输入,UI线程中不应执行费时的运算,更不能被阻塞。 ❖ 工作者线程一般用于在后台进行费时运算或和慢速设备打交道,这种 线程不响应Windows消息。在通信程序中,数据的发送和接收耗费 的时间不确定。为了在通信过程中能够响应用户输入,通常在建立一 个或多个工作者线程,在后台完成通信任务。 ❖ 工作者线程向运行在UI线程中的用户控件传递数据时,不能直接对对 控件的属性和方法进行调用,而要先定义一个委托,再用控件的 Invoke方法,切换到UI线程去执行委托所指向的函数,来更新控件 显示的内容。 ❖ 在下面的程序中,工作线程每循环完一次,就更新UI线程中的控件属 性,向用户报告当前步骤。程序界面和后台代码如下:
学习情景2.3 单个串口设备数据的连续接收
❖ 定义委托的关键字是delegate,它是从System.Delegate类派生出 来的。例如:
❖ delegate int SomeDelegate(int p1,string p2); ❖ // int p1和string p2是被引用函数的参数类型和名称。其中参数类
●用ParameterizedThreadStart委托封装线程函数:
学习情景2.3 单个串口设备数据的连续接收
❖ ParameterizedThreadStart functionEntrance =

new
ParameterizedThreadStart(paramThreadFunction);
学习情景2.3 单个串口设备数据的连续接收

单片机数据采集课程设计

单片机数据采集控制系统课程设计报告目录0.前言 (1)1.课程设计的目的和要求 (2)1.1.课程设计的目的 (2)1.2.课程设计要求 (2)2.总体设计 (3)2.1.系统框图 (3)2.2.设计原理 (3)3.硬件设计 (5)3.1.芯片介绍 (5)3.2.相应的命令控制字格式 (9)3.3.硬件连接图 (10)4.软件设计 (10)4.1.程序框图 (10)4.2.程序清单 (14)5.实验数据 (14)5.1.0通道数据分析表 (14)5.2.程序运行图 (14)6.结束语 (14)7.参考文献 (15)附录一:硬件图连接 (16)附录二:程序清单 (17)附录三:程序运行图 (22)单片机数据采集控制系统0.前言单片机的应用简介单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。

导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。

更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。

因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。

单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:(1).在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。

CVI学习资料

第三章LabWindows/CVI 编程环境LabWindows/CVI开发环境有以下三个最主要的窗(window)与函数面板(Function Panel):·项目工程窗(Project Window)·用户接口编辑窗(User Interface Editor window)·源代码窗(Source window)下面就会对以上三个窗及函数面板作详细的介绍.项目工程窗(Project Window)一个项目工程窗(Project Window)如下图所示:在项目工程窗中列出了组成该项目工程所有的文件,项目工程窗中的个菜单项功能如下:File : 创建,保存或打开文件.可以打开以下文件:项目工程文件(*.Prj)源代码文件(*.c),头文件(*.h)以及用户接口文件(*.uir).Edit: 在项目工程中添加或移去文件.Build: 使用LabWindows/CVI 编译链接器.Run: 运行一个项目工程.Windows: 用来访问某个已经打开的窗,例如:用户接口编辑窗,源代码窗… .Tools: 运行向导(wizard)或者你添加到Tools菜单中的一些工具.Options: 设置LabWindows/CVI 的编程环境.Help: LabWindows/CVI 在线帮助及Windows SDK 的函数帮助.工程项目文件显示了所列文件的状态,其各项的含义如下图所示:文件名这个标志是指源代码最后修改该文件文件是否是打开的的日期时间S是指该文件已经修C是指运行该文件之O是指你可以让该文件I 是指这是一个改过了,请保存该文件前必须先经过编译编译而无需debugging 仪器驱动程序如果你想进一步了解项目工程窗(Project window)细节请使用在线帮助.请选择:Help>>CVI Library>>Related Help…Online Manuals For LabWindows/CVI请查阅LabWindows/CVI User Manual Chapter 3 Project window. 第二节用户接口编辑窗(User Interface Edit window)图形用户接口编辑窗是用来创建,编辑GUI(Graph Uer Interface)的.一个用户接口至少要有一个面板(Panel)以及在面板上的各种控件元素(Control Element).图形用户接口编辑窗为你提供了非常快捷的创建,编辑这些面板和控件元素的方法,可以让你在短时间里创建出符合你要求的图形界面.一个图形用户接口编辑窗就如下图所示,下面我们就详细讲讲图形用户接口编辑窗各菜单项的功能:File: 创建,保存或打开文件.Edit: 可用来编辑面板或控件元素.说明:其实我们直接用鼠标双击我们想要编辑对象即可(就象编制FisrtSample5 [资料1]LabWindows/CVI基础教程中修改面板和四个按扭那样).Creat: 可用来创建面板和各种控件元素.说明:其实我们只需在Panel上点击鼠标右键,便会弹出一个快捷菜单,选择你所想创建的对象即可(就象编制FisrtSample 时创建Graph和四个Button 那样). View: 当创建多个面板后就可用该项来查看想要看的面板.Arrange: 用来调节各个控件元素的位置与大小.Code: 产生源代码,以及选择你所需的事件消息类型.Run: 运行程序.Library: 函数库.说明:我们将在后面详细的介绍LabWindows/CVI的函数库. Tools: 一些你可使用的工具项.Windows: 用来访问某个已经打开的窗,例如:项目工程窗,用户接口编辑窗,源代码窗… .Options: 设置用接口编辑窗的编辑环境.Help: LabWindows/CVI 在线帮助及Windows SDK 的函数帮助.说明:在用户接口编辑窗中有一快捷菜单是非常有用的,当你把鼠标指在某一控件元素上点击右键后便弹出一快捷菜单,通过该菜单你可以生成回调函数以及查看回调函数,而无须你再切换到源代码窗后再查看.这是一个大家以后在编程中要常用到的技巧,请掌握.图形用户接口编辑窗中还有四个模式选择按扭,现介绍如下:当该按扭被按下后,你可以操作面板上的控件,同时在图形用户接口编辑窗的右上角上来观察面板上的事件消息.在这种模式下你可以创建,编辑面板和控件元素以及修改它们的属性. 在这种模式下你可以直接修改控件元素的名字,标签等文字相关方面的东西. 在这种模式下你可以直接修改面板,控件元素的颜色.先把鼠标方在你所想修改颜色的对象上,点击右键便会弹出一个选色对话框,选择你所想要的颜色后点击后即可. 在图形用户接口编辑窗中Panel 的灰色区域中单击鼠标右键,便会弹出一个快捷菜单如下所示:说明:请读者用鼠标点击各项自己看一看,在这里就无须作者多言.如果你想进一步了解用户接口编辑窗(User Interface Edit window)细节请使用在线帮助.请选择:Help>>CVI Library>>Related Help…Online Manuals For LabWindows/CVI请查阅LabWindows/CVI User Manual Chapter 4 User Interface Edit window源代码编辑窗(Sourse window)你可以在源代码编辑窗中开发你的C 语言代码文件.例如:添加,删除,插入函数等编程所需的基本编辑操作.但是LabWindows/CVI 又有其独特的简捷快速的开发,编辑工具,可以让你在短时间内完成一个较复杂的C程序代码的开发.一个源代码编辑窗(Source window)就如下图所示,下面我们就详细讲讲源代码编辑窗中各菜单项的功能:File: 创建,保存或打开文件.Edit: 可用来编辑源代码文件.View: 设置源代码编辑窗的风格等功能.Build: 编译文件以及编译设置.Run: 运行程序.Instrument: 装入仪器驱动程序.Library: 函数库.Tools: 一些你可使用的工具项.Windows: 用来访问某个已经打开的窗,例如:项目工程窗,用接口编辑窗,源代码窗… .Options: 设置用接口编辑窗的编辑环境.Help: LabWindows/CVI 在线帮助及Windows SDK 的函数帮助.说明:在编程中有一快捷菜单是非常有用的,当你把鼠标指在某一函数上点击右键后便弹出一快捷菜单,通过该菜单你可以查看回调函数以及与该函数对应控件元素.这是一个大家以后在编程中要常用到的技巧,请掌握.第四节函数面板(Fuction Panel)在LabWindows/CVI 编程环境下,当你想在源程序某处插入函数时,你只需从函数所在的库中选择该函数后便会弹出一个与之对应的函数面板,你所做的就是:填入该函数所需的参数后完成插入即可.而且更为方便的是:若参数是一你以有的常量或变量,你只需点击常量或变量工具按扭后选择你所需的量即可;若参数是一变量,你直接可声明该变量而无须再切换至源代码窗.下面我们就谈谈这些在LabWindows/CVI中可以加快你编程的技巧. 一个函数面板如下图所示:这是FirstSample中产生一个正弦波的函数其中SinePattern项是用来装正弦波的数组,我们在程序中使用数组Wave[512] 来装正弦波的.当我们在SinePattern项填入Wave后,由于Wave是一变量,所以我们需要声明该变量:让鼠标指在Wave上然后点击工具条中的声明变量按扭后, 便弹出一个声明变量对话框即可声明该变量为局域变量或为全局变量.作者:立士心 2005-10-4 15:29 回复此发言--------------------------------------------------------------------------------6 [资料1]LabWindows/CVI基础教程当你所填参数是一以有的常量或变量,你只需点击选择常量或变量工具按扭后选择你所需的量即可,下面就介绍该技巧:上图是FirstSample中把数组Wave中的正弦波画到Graph上去的PlotWaveform函数.其中,Control ID 项所填的是程序中用来标识GUI 中控件元素的常量,该常量是由LabWindows/CVI自动在头文件中预定义的(你可以打开头文件看看).故当我们填入该常量时只需将鼠标放在Control ID项的文本框中然后用鼠标点击工具条中的选择属性或UIR常量按扭后, 便弹出一个选择属性或UIR常量对话框,选择你所需的常量或属性即可.Panel Handle 是程序运行开始时UIR的句柄,是由LabWindows/CVI 自动生成的是一变量;Number of Points 项需填的是512,这正是我们在声明Wave时已用过的;Y Array 项所填的是我们已经声明过的变量——数组Wave;故当我们填入以上各项时只需将鼠标放在对应项下文本框中,然后用鼠标点击工具条中的选择变量按扭后, 便弹出一个选择变量对话框,选择你所需的变量Wave即可.当你填完函数的参数后,点击插入按扭后即可完成函数的插入,而无须再选择菜单中的插入命令.以上这些都是加快你编程的技巧,这些技巧你以后编程时是会非常频繁使用的.而这些也正是LabWindows/CVI 开发环境所独具的加快你编程速度的特色.说明:当你的鼠标落在工具条按扭上时,计算机会自动的显示该工具按扭的功能.请你使用上面所讲技巧重新编制FirstSample,我相信你将会有新的收获.当你对函数中的某个参数有不明白的时候,你只须将鼠标置于该项的文本框中点击鼠标右键后便会出现对此参数说明的在线帮助,这一技巧在编程中是非常有帮助的.如果你想进一步了函数面板(Function Panel )细节请使用在线帮助.请选择:Help>>CVI Library>>Related Help…Online Manuals For LabWindows/CVI请查阅LabWindows/CVI User Manual Chapter 6 Using Function Panels第四章LabWindows/CVI 的函数库(Library)LabWindows/CVI 其强大功能的所在就是基于其非常丰富的库函数.LabWindows/CVI 所提供的库函数从用户图形界面,数据采集,数据分析,仪器控制… 到现在Internet时代的TCP.所以说LabWindows/CVI 在测量领域成为先锋的同时又与当前时代的新科技保持了同步.下面我们就来谈谈LabWindows/CVI 的函数库,我们把LabWindows/CVI 的函数库分为了五个大的方面,各个方面又分成了不同的小类:·数据采集方面(Data Acquisition),7个库:Instrument Library: 仪器驱动库GPIB/GPIB 488.2 Library: 仪器控制函数库Data Acquisition Library: 数据采集函数库Easy I/O for DAQ : 易用的数据采集函数库RS 232 Library : RS 232 库VISA Library : VISA 库VXI Library : VXI库·数据分析方面,两个库:Formatting and I/O Library : 格式化以及输入输出库Analysis Library: 分析库或者Advanced Analysis Library: 高级分析库·数据显示方面:User Interface Library : 用户接口库说明: 用户接口库中提供了许多用于与面板上各种控件元素打交道的函数,通过这些函数你可以非常容易的把一个采集来的波形画到Panel 的Graph上或删除Graph 上已画的图形;得到Panel上某个控件元素的数值以及把某个数值写到Panel上的某个控件元素上去(亦就是改变该控件元素的值);修该Panel上控件元素的属性.总之,你只有熟练掌握了用户接口库函数后才能使你创建的用户图形界面正正的动起来,该库是初学者应迅速熟悉的库.·网络,通信与数据交换方面,四个库:DDE Library : 动态数据交换库TCP Library: TCP库Active X Automation Library: Active X自动化库DataSocket Library: DataSocket库·其它方面:ANSI C Library: 标准C 库如果你想进一步了解LabWindows/CVI 函数库(Library)细节请使用在线帮助.请选择:Help>>CVI Library>> Library Help中你感兴趣的库作者:立士心 2005-10-4 15:29 回复此发言-------------------------------------------------------------------------------- 7 [资料1]LabWindows/CVI基础教程通过本部分的学习,你是否已经掌握□LabWindows/CVI 程序设计步骤及程序的运行机制.三个主要窗的基本操作.在用户接口编辑窗中用快捷方式生成或查看回调函数,在源代码窗中用快捷方式返回到函数面板或对应控件元素等编程中所需的快捷操作.在函数面板上声明变量,选择变量或常量,插入函数等快捷操作.LabWindows/CVI 库的构成及其在编程中适用的方向.第四部分CVI 中数据采集的应用通过前两部分的学习,读者应该已掌握了LabWindows/CVI程序设计的基本步骤,思路以及编程环境.本部分将在前两部分的基础上讲解LabWindows/CVI中的数据采集,并在讲解的过程中编制一个程序:EeasyIOSample .请读者确保自己已经安装了Daq驱动,否则你会找不到例子中要用到的函数.Easy IO 库中数采函数的应用本章我们将使用Easy IO 库中的数采函数来编制一个真正能用于实际工作中的数据采集程序EasyIOSample.我们程序运行时的界面如下图所示:其中各控件元素的功能说明如下:ChannelSrting 项是一字符串控件,我们通过该项来设置采集数据的通道(数采路径).我们把该项缺省设置为:daq::1!(0)其意思是指:采集设备(device)1的0通道(channel).其中设备号正是你在Measurement &Automation 中所看到的对应于数采板的编号.在数采停止时,该项是可以修改的.daq::1!(0) 这段字符串是NI 数采通道的语法表示,具体说明如下: daq::1!(0,2,5) 是指采集设备1的通道0,2,5.daq::1!(2:6)是指采集设备1的通道2,3,4,5,6.ScanRate项是一数字控件,我们通过该项来设置扫描速率,其缺省设置为1000Acquire/Stop项是一开关控件,我们通过该开关来控制数据采集的开始与停止.Clear项是一按扭,当我们按下该按扭后即可清除Acquire Wave上所画的波形.Quit项是一按扭,当我们按下该按扭后,退出程序.Acquire Wave项是一波形显示控件,我们所采集的数据正是通过该控件来显示的.现在我们就开使创建该程序.首先按下面步骤起动CVI:开始>>程序>>National Instrument CVI>>CVI IDE或者直接从桌面起动CVI 的快捷方式,双击桌面National Instrument CVI 图标当LabWindows/CVI打开后你就会见到如下所示的项目(Project)窗,里面装的正是我们上次创建的FirstSample.prj:选择:File>>New>>Project(*.prj)…便会弹出一个对话框,如下所示:询问你是否移走当前的项目工程,点击OK按扭,确定移走后又会弹出一个对话框如下所示:询问你转移该项目的选项,全选之后点击OK按扭后,便会弹出一个新的项目工程窗.第一节创建图形用户界面从Project窗中选择:File>>New>>User Interface(*.uir)…创建一个用户图形接口文件(*.uir).下图就是本程序应该创建的UIR界面:请按下面步骤创建下列控件元素以及修改其属性:创建一个string ,修改其属性如下图所示:创建一个Numeric, 修改其属性如下图所示:创建一个BinarySwitch, 修改其属性如下图所示:创建一个Timer控件, 修改其属性如下图所示:请你确保Control Settings中Enable项前的矩形框是空的,因为我们将AI Timer的初始状态设置为非运行状态.说明:Timer控件是一我们在编程时常用到的控件,当程序运行时图形用户界面上是看不到Timer控件的.当你设置Timer有回调函数时,计算机会每隔固定的时间调用一次Timer的回调函数.该时间间隔你是可以在Edit Timer 窗中Contro Settings的Inteval(seconds)项中设定的.本程序设定时间间隔为0.1秒,也就是说:当程序运行时,每隔0.1 秒AITimerCallback( )函数就会被调用一次.创建一个Graph控件, 修改其属性如下图所示:创建两个Command控件, 修改它们属性分别如下两图所示:最后修改Panel的属性如下图所示:创建好各控件元素后,将它们按下图所示排放好各自的位置:说明:由于程序运行时,AI Timer 控件并不在界面中显示,故AI Timer 的位置你可以随作者:立士心 2005-10-4 15:29 回复此发言--------------------------------------------------------------------------------8 [资料1]LabWindows/CVI基础教程意放置.选择:File>>Save 保存UIR文件,命名为EasyIOSample.uir.第二节产生程序代码与添加函数代码从用户图形界面窗口中选择:Code>>Generate>>All Code…产生源程序框架.其源程序代码中需要你注意的如下:当某一行字符是蓝色时是指该行代码是需要我们添加上去的.为了作者讲解函数功用的方便,作者按照顺序把插入的函数编了号,标注在该函数的顶头.#include#include#include#include "EasyIOSample.h"static int panelHandle;static long AiTask;int main (int argc, char *argv[]){if (InitCVIRTE (0, argv, 0) == 0)return -1; /* out of memory */if ((panelHandle = LoadPanel (0, "EasyIOSample.uir", PANEL)) >User Interface>>Controls/Graph/Strip Chart>>General Functions>>Get Control Value.GetCtrlVal (panelHandle, PANEL_CHANNEL_STRING, ChanString) 使用该函数我们可以得到字符串ChannelString的值(请在该函数面板中声明局部字符串变量ChanString).插入该函数时请选择:Library>>User Interface>> Controls/Graph/Strip Chart>>General Functions>>Get Control Value.GetCtrlVal (panelHandle, PANEL_SCANRATE, &ScanRate) 使用该函数我们可以得到数字量ScanRate的值(请在该函数面板中声明局部双精度变量ScanRate).插入该函数时请选择:Library>>User Interface>> Controls/Graph/Strip Chart>>General Functions>>Get Control Value.nidaqAICreateTask (ChanString, kNidaqWaveformCapture, &NumChan, &AiTask) 使用该函数我们可以创建一个模入采样任务AITask(请在该函数面板中声明全局整型变量AITask), 同时该函数根据ChanString可以返回一个表示该采样任务共有多少个通道的值NumChan(请在该函数面板中声明局部整型变量NumChan).插入该函数时请选择:Library>>EasyIO For DAQ>>Analog Input >>Intermediate Analog Input>>AI Creat Task(Required).nidaqAIConfigScanClockRate (AiTask, ScanRate, &ActScanRate) 使用该函数我们可以设置采样的扫描速度ScanRate并且通过ActScanRate返回采样的实际扫描速度(请在该函数面板中声明局部双精度变量ActScanRate).插入该函数时请选择:Library>>EasyIO For DAQ>>Analog Input >>Intermediate Analog Input>>AI Config Timing…>>AI Config Scan Clock Rate…nidaqAIConfigBuffer (AiTask, 2000000, kNidaqContinuous) 使用该函数我们可以设置采样缓冲为2M(即2000000).插入该函数时请选择:Library>>EasyIO For DAQ>>Analog Input >>Intermediate Analog Input>>AI Config Buffer…nidaqAIStart(AiTask)使用该函数我们可以启动数据采集任务.插入该函数时请选择:Library>>EasyIO For DAQ>>Analog Input >>Intermediate Analog Input>>AI Start (Required)…SetCtrlAttribute (panelHandle, PANEL_TIMER, ATTR_ENABLED, 1) 我们在UIR 中将AI Timer的属性设置为非运行状态,现在通过该函数将AI Timer 属性设置为Enable 即从现在开始AI Timer 开始运行,每隔固定的时间间隔调用一次AITimerCallBack( )函数.插入该函数时请选择:Library>>User Interface>> Controls/Graph/Strip Chart>>General Functions>>Set Control Attribute...SetCtrlAttribute (panelHandle, PANEL_TIMER, ATTR_ENABLED, 0) 使用该函数我们可以让控件AI Timer停止工作.插入该函数时请选择:Library>>User Interface>> Controls/Graph/Strip Chart>>General Functions>>Set Control Attribute...nidaqAIStop (AiTask) 使用该函数我们可以停止采样任务.插入该函数时请选择:Library>>EasyIO For DAQ>>Analog Input >>Intermediate Analog Input>>AI Stop (Required)…nidaqAIDestroyTask (AiTask) 使用该函数我们可以取消采样任务.插入该函数时请选择:Library>>EasyIO For DAQ>>Analog Input >>Intermediate Analog Input>>AI Destroy Task(Required)…作者:立士心 2005-10-4 15:29 回复此发言--------------------------------------------------------------------------------9 [资料1]LabWindows/CVI基础教程DeleteGraphPlot(panelHandle,PANEL_GRAPH,-1,VAL_IMMEDIATE_DRAW)使用该函数我们可以清除Graph控件上所画的图形.插入该函数时请选择:Library>>User Interface>>Control/Graph/Strip Chart>>Graph and Strip Chart>>Graph Plotting and Deleting>>Delete Graph Plot…nidaqAICheck (AiTask, &AcqState, &AcqBacklog)使用该函数我们通过返回AcqState参数的值可得知采样过程的状态;通过返回AcqBacklog参数的值可得知所采样以放在缓冲中的有多少个点我们未读取(请在该函数面板中声明局部长整型变量AcqState与AcqBacklog).插入该函数时请选择:Library>>EasyIO For DAQ>>Analog Input >>Intermediate Analog Input>>AI Destroy Task(Required)…nidaqAIRead (AiTask, ChanString, AcqBacklog, -1.0, AcqData) 使用该函数我们可以将缓冲中未读的数据读到数组AcqData中(请在该函数面板中声明局部双精度数组变量AcqData[10000]).插入该函数时请选择:Library>>EasyIO For DAQ>>Analog Input >>Intermediate Analog Input>>AI Read (Required)…DeleteGraphPlot(panelHandle,PANEL_GRAPH,-1,VAL_IMMEDIATE_DRAW)使用该函数我们可以清除Graph控件上所画的图形.插入该函数时请选择:Library>>User Interface>>Control/Graph/Strip Chart>>Graph and Strip Chart>>Graph Plotting and Deleting>>Delete Graph Plot…PlotWaveform(panelHandle,PANEL_GRAPH,AcqData,AcqBacklog,VA L_DOUBLE, 1.0, 0.0, 0.0, 1.0, VAL_THIN_LINE, VAL_EMPTY_SQUARE, VAL_SOLID, 1, VAL_RED) 使用该函数我们可以将读到数组AcqData中的数据(AcqBacklog个数据)画到控件Graph 上.插入该函数时请选择:Library>>UserInterface>>Control/Graph/Strip Chart>>Graph and Strip Chart>>Graph Plotting and Deleting>>Plot Waveform ..下面我们将仔细讲解当Acquire/Stop开关被扳上(下)去后程序的运行过程.程序流程图如下:GetCtrlVal (panelHandle, PANEL_ACQUIRE, &Value)// 得到Acquire/Stop二进制开关的值Value= 0 SetCtrlAttribute ( )Value // 让AITimer 停止工作=1GetCtrlVal (panelHandle, PANEL_CHANNEL_STRING, ChanString) // 从UIR上字符串控件ChannelString得到采样通道设置GetCtrlVal (panelHandle, PANEL_SCANRATE, &ScanRate)// 从UIR上数字量控件ScanRate得到采样扫描速率设置nidaqAICreateTask ( ) // 创建采样任务nidaqAIConfigScanClockRate ( ) // 设置扫描速率nidaqAIConfigBuffer ( ) // 设置缓冲区大小nidaqAIStart( ) // 采样任务开始SetCtrlAttribute ( ) // 让AITimer 开始工作注意:让AITimer开始工作其实也就是每隔一定的时间间隔调用一次AITimerCallback( )函数每隔0.1秒AITimerCallback( ){nidaqAICheck ( ) // 检查采样过程中缓冲的状态nidaqAIRead ( ) // 从缓冲中读取数据DeleteGraphPlot( ) // 先清除Graph上已有的图形PlotWaveform( ) // 把从缓冲中读到的数据画到Graph上}AITimer 是No否停止工作YesnidaqAIStop ( ) // 停止采样任务nidaqAIDestroyTask ( ) // 取消采样任务到此为止我们已经完成本章的学习,有些内容需要读者反复研读以理解LabWindows/CVI在数据采集中的应用,该程序亦可作为读者进一步学习LabWindows/CVI的敲门砖.通过本部分的学习,你是否已经掌握□ LabWindows/CVI 中数采程序设计步骤及程序的运行机制.巩固在用户接口编辑窗中用快捷方式生成或查看回调函数,在源代码窗中用快捷方式返回到函数面板或对应控件元素等编程中所需的快捷操作.巩固在函数面板上声明变量,选择变量或常量,插入函数等快捷操作.后记通过对本书的学习,相信读者已经基本掌握了LabWindows/CVI编程基本操作.希望读者在初学时一定要注意程序设计的思想,而不必要过多的去抠一些细节问题.下面谈谈如何进一步学习与使用LabWindows/CVI的一些捷径.在LabWindows/CVI安装目录下的Samples文件夹下有非常多的例程,请读者选择自己感兴趣类别的例子打开后看看,并且读者在开发项目时直接将这些例子中的一些程序拷贝到自己的程序中去.这样做,不但能减少开发时间并且减少程序的出错机率,这是一项实在值得读者注意的技巧.怎么看懂例程当读者打开一个例子后,通过查看控件对应回调函数,返回函数对应的函数面板以及查看函数参数在线帮助,你就可以通过这些方法看懂例程.从而即可以学习函数的使用也能够明白编制某类别程序的基本思想.下面所列的是在使用LabWindows/CVI开发程序时值得一看的书目:bWindows/CVI在线帮助中CVI Library>>Online Manuals For LabWindows/CVI 中的一些程序设计参考书.2 .读者若装有NI公司的数采卡,则在装DAQ驱动后读者会在在开始>>程序>>National Instruments DAQ>>Documents中找到下面这本书:NI-DAQ User Manual for PC Compatibles 该书详细得介绍了怎样使用DAQ函数,实在是值得一读的一本书.。

基于ARM的远程数据采集系统的设计与实现

学号07700211毕业设计说明书基于ARM的远程数据采集系统的设计与实现学生姓名李洋专业名称电子与信息工程系指导教师鲁维佳电子与信息工程系2011 年 6月6日基于ARM的远程数据采集系统的设计与实现The Design and Realization of Remote Data Acquisition System Based on ARM摘要本文介绍了一种基于ARM和nRF401的远程无线数据采集系统,下位机以AT89S52为中心控制单元。

AT89S52接收到上位机发来的采集温湿度的指令后,通知温湿度传感器SHT11采集温湿度,然后一方面是利用LCD显示模块显示采集的温湿度,另一方面是利用以nRF401为核心的无线传输模块进行远程无线数据传输,另外通过高增益天线可使传输距离达到1000米以上;上位机以S3C2440微处理器为中心,以nRF401为核心的无线传输模块进行远程无线指令发送和数据接收,指令可以控制数据的采集,数据接收后,一方面利用液晶显示触摸屏显示温度湿度值,另一方面存储到SDRAM 中。

由于上位机是基于ARM的具有良好移动性能的类似手机的微型控制器,因此具有体积小、成本低、易维护和稳定性高的优点。

本系统可以应用于各种无线数据采集系统,也可以通过增加接收到控制端的器件和程序实现监控。

关键词:SHT11;S3C2440;nRF401;AT89S52;远程数据采集ABSTRACTThis paper mainly introduce a method of remote wireless date acquisition system based on ARM and nRF401,the slave machine takes microprocsser AT89S52 as the core.When receives the instructions which sends by the master machine,AT89S52 notices temperature and humidity sensor SHT11 to measure temperature and humidity.Then on the one hand ,the system uses the LCD display module to display temperature and humidity;on the other hand , it uses the nRF401 as the core in the wireless transmission module for the remote wireless data transmission. What is more,through the high-gain antenna,the the transmission distance can be extended to more than 1,000 meters . The master machine is centered on S3C2440 microprocessor, which takes the NRF401 as the core of the wireless transmission module for remote wireless instructions to send instructions and receive data.The instructions can control data the acquisition of data. After receiving data,on the other hand, it uses liquid crystal display (LCD) touch screen to display temperature and humidity value; on the other hand,the vlaue can be stored to SDRAM. The master machine which is similar to phone are based on the ARM with good performance of the moving of miniature controller, therefore it has the advantages of small volume, low cost, easy maintenance and high stability. This system can be applied in all kinds of wireless data acquisition system, and also through increasing devices and control programs can realise the function of monitoring.Keywords:SHT11 ; S3C2440; nRF401; AT89S52; remote data acqusition目录第一章概述 (1)1.1 研究背景 (1)1.2 研究课题国内外发展现状和存在的问题 (1)1.3 本课题研究的主要内容 (2)1.3.1 硬件设计 (2)1.3.2 软件设计 (2)第二章系统原理 (3)2.1 硬件平台 (3)2.1.1 嵌入式微控制器 (3)2.1.2 嵌入式微处理器 (4)2.2 软件平台方案 (5)2.2.1 嵌入式系统的设计要求 (5)2.2.2 Windows CE操作系统 (6)2.3 系统总体介绍 (6)第三章硬件设计 (8)3.1 温湿度采集模块 (8)3.1.1 数字温湿度传感器SHT11 (8)3.1.2 本模块总体介绍 (8)3.2 电源模块 (9)3.2.1 LM317芯片 (9)3.2.2 78L05芯片 (9)3.2.3 电源模块介绍 (10)3.3 下位机液晶显示模块 (10)3.3.1 DM12864M显示模块 (10)3.3.2 液晶显示模块 (11)3.4 无线数据传输模块 (12)3.4.1 nRF401芯片 (12)3.4.2 无线传输模块介绍 (14)3.5 ARM外接存储器模块 (15)3.5.1 外接NAND FLASH (15)3.5.2 外接SDRAM (15)3.6 上位机显示模块 (16)第四章软件设计 (18)4.1 下位机软件设计 (18)4.1.1 数据采集模块软件设计 (19)4.1.2 下位机LCD显示程序 (22)4.1.3 nRF401数据发送软件设计 (25)4.2 上位机软件设计 (27)4.2.1 Windows CE移植 (27)4.2.2 nRF401接收软件设计 (28)4.2.3 液晶触摸屏显示软件设计 (29)第五章总结 (31)致谢 (33)参考文献 (34)附录 (35)附录1.下位机原理图 (35)附录2.上位机原理图 (36)附录3.详细系统程序 (38)第一章概述1.1 研究背景随着大规模集成电路和计算机技术不断的飞速发展,电子、数字技术已经广泛渗透到各个技术领域,各种基于电子、数字技术的设备层出不穷。

PLC欧姆龙的基本操作指令及常用程序设计

欧姆龙PLC基本操 作指令及常用程序 设计
目录
• PLC基础知识 • 欧姆龙PLC介绍 • 基本操作指令 • 常用程序设计 • 欧姆龙PLC的应用案例
01
CATALOGUE
PLC基础知识
PLC的定义与特点
总结词
可编程逻辑控制器
详细描述
PLC是一种可编程的工业控制器,用于执行逻辑运算、顺序控制、定时、计数和算术运算等操作,并通过数字或 模拟输入/输出控制各种类型的机械或生产过程。
故障诊断与处理
通过PLC的故障诊断功能,实时监 测生产线设备的运行状态,一旦 发生故障,能够迅速定位并采取 相应的处理措施,保障生产线的 稳定运行。
智能仓储系统控制
仓储设备控制
欧姆龙PLC在智能仓储系统中用于控制货物的存取和运输设备,如升降机、堆垛机、输 送带等。
库存管理
通过与上位机管理系统连接,PLC能够实时获取库存信息,并根据需求进行自动补货和 调整货位。
数据输出指令
用于控制输出设备,如指示灯、电机 等。常用的指令有"OUT"和"OL"。
算术运算指令
加法指令
用于两个数值之间的加法运算。常用 的指令有"ADD"和"AD"。
减法指令
用于两个数值之间的减法运算。常用 的指令有"SUB"和"SB"。
乘法指令
用于两个数值之间的乘法运算。常用 的指令有"MUL"和"ML"。
PLC的基本结构和工作原理
总结词
基本结构和工作原理
详细描述
PLC主要由中央处理单元(CPU)、存储器、输入/输出接口、电源和编程设备 等部分组成。PLC的工作原理包括输入采样、程序执行和输出刷新三个阶段。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第三章 数据采集常用程序设计 第 1 页 共 19 页 第三章 数据采集常用程序设计 数据采集和处理是计算机在生产过程中应用的基础,任何计算机检测及控制系统都离不开信息的采集、处理及存储。两种典型的系统: 生产过程控制系统——工况数据采集、数据处理、决策输出、驱动执行机构; 检测监控系统——工况数据采集、数据处理、显示或描绘成曲线; 我们已经介绍过数据采集的硬件结构,本章主要介绍数据采集中一些常用的程序设计。 第一节 计算机数据采集系统

一、计算机数据采集系统的任务 在现代冶金、化工、石油、电力等工业生产过程中,往往需要对大量的过程参数进行监视和测量。计算机数据采集系统的任务,就是要对生产现场的过程参数定时进行检测、记录、存储、处理、打印报表、显示及超限报警。其结构如图3-1所示。

图3-1 计算机采集系统结构图 二、计算机数据采集系统的优点 计算机数据采集系统的优点:灵活、方便、速度快、判断能力强、图形功能强。如在化工生产中, (1) 用不同的色彩,代表不同的管线中的流质; (2) 在测量点上,显示温度和压力的设定值、测量值、误差值; (3) 超限时用红灯闪烁表示,并发出报警声; (4) 可以由历史数据,生成历史趋势图、各种报表。 ——注:虚拟仪器LabView和LabWindows中,有各种典型的按钮、开关、测量仪器,第三章 数据采集常用程序设计 第 2 页 共 19 页 可以刻度、曲线、表格、棒状图等多种显示数据。该开发平台是图形化编程,适合工程人员使用。 三、计算机数据采集常用程序 计算机数据采集中的常用程序,包括中断、定时器、采样、看门狗、判断、上下限报警、LED数码管显示、小型行列式键盘控制等。 以数字信号处理器TMS320C24X为例,介绍常用的中断、定时、采样、看门狗的程序设计知识;以单片机MCS-51系列为例,介绍判断程序设计。

第二节 中断程序设计 一、中断分类

图3-2 中断分类图 从中断的来源看,分为硬件中断和软件中断;从中断是否可屏蔽来看,分为可屏蔽中断和不可屏蔽中断。 1、硬件中断和软件中断 硬件中断是由DSP的硬件所产生的中断,可由DSP的外部中断引脚(6个)产生,也可由DSP自身的外围设备产生(如定时器、A/D转换器、串行通信接口)。 软件中断是由DSP的指令产生的,如INTR、TRAP、RESET等。 2、可屏蔽中断和不可屏蔽中断 (1)可屏蔽中断:可以用软件来屏蔽或者使能的硬件和软件中断。 (2)不可屏蔽中断:中断不能够被屏蔽,DSP总是响应的中断。 第三章 数据采集常用程序设计 第 3 页 共 19 页 二、中断优先级和向量地址 1、优先级 DSP的所有中断被赋予1~10的优先级(1为最高级)。当有多于1个的中断被挂起等待响应时,中断按照优先级别从高到低依次被响应。 所有的软件中断和硬件中断,都对应于某一个优先级。 2、向量地址 在DSP中有专门的I/0空间,存在着一系列中断向量地址,每一个优先级都对应相应的中断向量地址。 中断向量地址为两个字长,可存储跳转指令。当中断到来时,中断向量地址被加载到程序计数器,从而获取跳转指令,跳转到相应的中断处理子程序。 三、相关的寄存器 1、中断屏蔽寄存器(IMR) IMR包含所有可屏蔽中断的屏蔽位,用于设置和读取中断的屏蔽状态。 (1) 读IMR寄存器可以识别出已被屏蔽或未被屏蔽的中断。 (2) 为了能够响应中断,把IMR相应位设置为1;屏蔽中断时,把IMR相应位设置为0。 (3) 复位时,IMR所有位都被设置为0,屏蔽掉所有可屏蔽的中断 2、中断标志寄存器(IFR) IFR中包含所有可屏蔽中断的标志位,可以识别和清除有效的中断。 当一个可屏蔽中断被请求时,IFR的相应的标志位被置1,指示中断正在被挂起或者等待响应(不论是否被CPU响应);当中断未被屏蔽时,如果IFR的相应位是1,则该中断将被CPU响应。 下列情况中断标志都将被清除: (1) 系统复位 (2) 中断得到处理 (3) 把1写到IFR的相应位,使其变成0,即可清除尚未处理完的中断 四、中断操作步骤 1、初始化 设置中断屏蔽寄存器IMR,开启需要的中断,屏蔽不需要的中断; 第三章 数据采集常用程序设计 第 4 页 共 19 页 2、接收中断 当硬件或软件指令产生中断请求时,IFR寄存器中相应的中断标志位被置位; 3、响应中断 (1) CPU根据中断屏蔽寄存器的设置,决定是否响应中断; (2) 若允许响应中断,CPU根据中断标志寄存器的标志位,装载中断向量地址; (3) 从中断向量地址存储的跳转指令,跳转到相应的中断服务子程序; (4) 执行中断服务程序(需考虑保存、恢复寄存器的数据)。 注: 蓝色的表示自己需要编写程序 第三节 定时器程序设计

可采用软件方式和硬件方式,达到定时的目标。 一、软件定时程序 依据: 1、执行指令需要时间; 2、如果知道CPU的时钟频率,就可以计算出每一条指令的所需时间; 3、通过内循环次数、外循环次数、指令数,可以计算出定时时间

图3-3 软件定时程序流程图 二、硬件定时程序 TMS320C24X有三个通用定时器Tx(x=1、2、3),能够独立使用,自动计数。 1、时钟 (1) CPU时钟:最重要的时钟,决定CPU的指令周期,由专门的时钟源产生; (2) 通用定时器时钟:可由CPU时钟分频获得; 2、控制寄存器 (1)时钟控制寄存器(CKCR) 第三章 数据采集常用程序设计 第 5 页 共 19 页 通过设置CKCR决定CPU的时钟模式,可以直接使用外部时钟、或者倍频外部时钟。 (2)定时器控制器(TxCON,x=1、2、3) 每个定时器都有一个控制器,可以设置该定时器的时钟频率(对CPU时钟分频)和计数模式。 (3)比较寄存器(CMPRx,x=1、2、3) 存储着设定的计数值,当通用定时器的数值和比较寄存器相等时,将产生中断事件。 3、通用定时器Tx的计数模式(6种)

图3-4 计数模式示意图 (1) 停止/保持模式 通用定时器的操作停止,保持当前状态。 (2) 单增模式 通用定时器按照规定频率的输入时钟计数,直到定时计数器的值与比较寄存器的值匹配为止。匹配之后的下一个输入时钟的上升沿,通用定时器复位为0并且禁止继续计数。 (3) 连续增模式 通用定时器按照规定频率的输入时钟计数,直到定时计数器的值与比较寄存器的值匹配。匹配之后的下一个输入时钟的上升沿,通用定时器复位为0,重复上述操作。 (4) 定向增/减模式 由引脚TMRDIR来确定计数方向。 当TMRDIR保持高时,通用定时器将增计数,直到计数值与比较寄存器的值第三章 数据采集常用程序设计 第 6 页 共 19 页 匹配为止。 当通用定时器的计数值与比较寄存器值相等,并且TMRDIR保持高时,定时器保持该值。 当TMRDIR保持低时,通用定时器将减计数,直到计数值为0。 当通用定时器的计数值为0,且TMRDIR保持低时,定时器保持为0。 (5) 单增/减模式 通用定时器按照规定频率的输入时钟计数,直到定时计数器的值与比较寄存器的值匹配。然后通用定时器改变它的计数方向,直到0为止。当通用定时器为0时,停止计数并保持它的当前状态。 (6) 连续增/减模式 每个周期与单增/减模式相似。当通用定时器复位为0时,重复单增/减模式下的操作。 3、定时器的使用 (1) 初始化:设置CPU时钟(时钟控制寄存器)、定时器时钟、计数模式(定时器控制器)、比较寄存器的值。 (2) 启动定时器。 (3) 当定时器计数值和比较寄存器的值相等时,产生中断。 (4) 处理中断。

第四节 采样程序设计 一、概述 1、TMS320C24X的A/D转换模块,包括两个带有内部“采样—保持”电路的A/D转换器,其字长为10位; 2、每个A/D转换器有8个模拟输入通道,总共可处理16个模拟量输入; 3、每八个模拟输入通道,通过8到1的多路开关,给A/D转换器提供数据; 4、两个A/D转换器可同时工作,所以能够同时测量两个模拟输入; 5、A/D转换器的转换模式,可以分为单转换和连续转换两种; 6、转换可以由A/D转换器自身启动,也可以由通用定时器的中断事件启动; 第三章 数据采集常用程序设计 第 7 页 共 19 页 二、转换结果 A/D转换模块的基准电压由外部提供,被测信号通过传感器转换成电压信号,作为输入电压。 转换结果=1024×(输入电压/基准电压) 三、转换时间

A/D的“采样-转换”需要6个模数转换周期,最少是6us的时间。满足下列公式: 系统时钟周期×A/D的倍频系数×6 >= 6us 四、相关寄存器 1、模数转换控制寄存器1 用于控制转换启动、终止转换、选择模数转换模式、选择转换通道。 2、模数转换控制寄存器2 用于设置A/D转换的倍频系数、标识模数转换结果寄存器是否有内容。 3、模数转换结果寄存器 A/D转换结束时,将产生A/D转换中断。转换结果寄存器是一个两级的FIFO寄存器,储存对应的A/D转换器的转换结果。 4、通用定时器控制寄存器 用于决定由哪个定时器、采用该定时器的何种中断事件来启动A/D转换。 五、A/D转换器的使用——由定时器启动

1、通过模数转换控制寄存器1,设置A/D转换模式、选择转换通道; 2、通过模数转换控制寄存器2,设置A/D转换的倍频系数; 3、通过通用定时器控制寄存器,设置由哪个定时器的中断事件来启动A/D转换; 4、定时器中断到来时(即采样周期到来时),启动A/D转换; 5、A/D转换结束时,产生A/D转换中断; 6、在A/D转换中断子程序中,从模数转换结果寄存器中取出A/D转换结果,进行处理。 注:通过对转换通道的循环选择,可以实现巡回检测。(一节)

相关文档
最新文档