基于数据采集卡的动态电阻检测系统毕业论文(编辑修改稿)内容摘要:
被存储在一个USER DLL 中、 Windows 编程所需要的大量的 API 函数也被包含在 Kernel DLL中。 在 Windows 操作系统中使用 DLL 有很多优点,最主要的一点是多个应用程序、甚至是不同语言编写的应用程序可以共享一个 DLL 文件,真正实现了资源“共享”,大大缩小了应 用程序的执行代码,更加有效的利用了内存;使用DLL 的另一个优点是 DLL 文件作为一个单独的程序模块,封装性、独立性好,在软件需要升级的时候,开发人员只需要修改相应的 DLL 文件就可以了,而且,当 DLL 中的函数改变后,只要不是参数的改变 ,程序代码并不需要重新编译。 这在编程时十分有用,大大提高了软件开发和维护的效率。 DLL 是建立在客户 /服务器通信的概念上,包含若干函数、类或资源的库文件,函数和数据被存储在一个 DLL(服务器)上并由一个或多个客户导出而使用,这些客户可以是应用程序或者是其它的 DLL。 DLL 库不同于静态库,在静态库情况下,函数和数据被编译进一个二进制文件(通常扩展名为 *.LIB) , Visual 基于数据采集卡的动态电压检测系统 8 C++的编译器在处理程序代码时将从静态库中恢复这些函数和数据并把他们和应用程序中的其他模块组合在一起生成可执行文件。 这个过程称为 静态链接 ,此时因为应用程序所需的全部内容都是从库中复制了出来,所以静态库本身并不需要与可执行文件一起发行。 在动态库的情况下,有两个文件,一个是引入库( .LIB)文件,一个是 DLL文件,引入库文件包含被 DLL 导出的函数的名称和位置, DLL 包含实际的函数和数据,应用 程序使用 LIB 文件链接到所需要使用的 DLL 文件,库中的函数和数据并不复制到可执行文件中,因此在应用程序的可执行文件中,存放的不是被调用的函数代码,而是 DLL 中所要调用的函数的内存地址,这样当一个或多个应用程序运行是再把程序代码和被调用的函数代码链接起来,从而节省了内存资源。 从上面的说明可以看出, DLL 和 .LIB 文件必须随应用程序一起发行,否则应用程序将会产生错误。 微软的 Visual C++支持三种 DLL,它们分别是 NonMFC Dll(非 MFC 动态库)、 Regular Dll(常规 DLL)、 Extension Dll(扩展 DLL)。 NonMFC DLL指的是不用 MFC 的类库结构,直接用 C 语言写的 DLL,其导出的函数是标准的 C 接口,能被非 MFC 或 MFC 编写的应用程序所调用。 Regular DLL:和下述的 Extension Dlls 一样,是用 MFC 类库编写的,它的一个明显的特点是在源文件里有一个继承 CWinApp 的类(注意:此类 DLL 虽然从 CWinApp 派生,但没有消息循环) ,被导出的函数是 C 函数、 C++类或者 C++成员函数(注意不要把术语 C++类与 MFC 的微软基础 C++类相混淆),调用常规 DLL 的应用程序不必是 MFC 应用程序,只要是能调用类 C 函数的应用程序就可以,它们可以是在 Visual C++、 Dephi、 Visual Basic、 Borland C 等编译环境下利用 DLL 开发应用程序。 常规 DLL 又可细分成静态链接到 MFC 和动态链接到 MFC 上的,这两种常规 DLL 的区别将在下面介绍。 与常规 DLL 相比,使用扩展 DLL 用于导出增强 MFC 基础类的函数或子类,用这种类型的动态链接库,可以用来输出一个从 MFC 所继承下来的类。 扩展 DLL 是使用 MFC 的动态链接版本所创建的,并且它只被用 MFC 类库所编写的应用程序所调用。 例如你已经创建了一个从 MFC 的 CtoolBar 类的派生类用于创建一个新的工具栏,为了导出这个类,你必须把它放到一个 MFC扩展的 DLL 中。 扩展 DLL 和常规 DLL 不一样,它没有一个从 CWinApp 继承而来的类的对象,所以,开发人员必须在 DLL 中的 DllMain 函数添加初始化代码和结束代码。 对动态链接库,我们还需建立如下概念: 基于数据采集卡的动态电压检测系统 9 ( 1) DLL 的编制与具体的编程语言及编译器无关 只要遵循约定的 DLL 接口规范和调用方式,用各种语言编写的 DLL 都可以相互调用。 譬如 Windows 提供的系统 DLL(其中包括了 Windows 的 API),在任何开发环境中都能被调用,不在乎其是 Visual Basic、 Visual C++还是Delphi。 ( 2)动态链接库随处可见 我们在 Windows 目录下的 system32 文件夹中会看到 、 和 , windows 的大多数 API 都包含在这些 DLL 中。 中的函数主要处理内存管理和进程调度; 中的函数主要控制用户界面; 中的函数则负责 图形方面的操作。 一般的程序员都用过类似 MessageBox 的函数,其实它就包含在 这个动态链接库中。 由此可见 DLL 对我们来说其实并不陌生。 ( 3) VC 动态链接库的分类 Visual C++支持三种 DLL,它们分别是 NonMFC DLL(非 MFC 动态库)、MFC Regular DLL( MFC 规则 DLL)、 MFC Extension DLL( MFC 扩展 DLL)。 非 MFC 动态库不采用 MFC 类库结构,其导出函数为标准的 C 接口,能被非 MFC 或 MFC 编写的应用程序所调用; MFC 规则 DLL 包含一个继承自CWinApp 的类,但其无消息循环; MFC 扩展 DLL 采用 MFC 的动态链接版本创建,它只能被用 MFC 类库所编写的应用程序所调用。 常用的动态链接库安装在 Windows 目录下的、随 Windows 软件包提供的DLL。 这些动态链接库中所包含的函数就称为 Windows API 函数。 API 函数,即 Application Program Interface (应用程序接口 ), 是一系列用C语言编写的函数库,是附带在 Windows系统内部的一个极其重要的组成部分。 Windows的 32位 API是一系列很复杂的函 数、消息的集合,它可以看成 Windows系统为在其下运行的各种开发系统提供的开放式通用功能增强接口,它使编程人员更容易地用不同类型的语言编制出运行在 Windows 系统上的应用程序。 Win32 API 包括了 1000 多个 API 调用,加上 API 附带的几百种 Windows 常量、消息和数据类型结构,是用户用了一系列用于 Windows 编程的复杂而又有效的工具。 调用 DLL 有两种方法 静态调用和动态调用。 (1).静态调用其步骤如下: 把 拷到你目标工程 (需调用 的工程 )的 Debug目录下; 基于数据采集卡的动态电压检测系统 10 把 拷到你目标工程 (需调用 的工程 )目录下; 把 (包含输出函数的定义 )拷到你目标工程 (需调用 的工程 )目录下; 打开目标工程选中工程 ,选择 Visual C++的 Project 主菜单的 Settings 菜单; 执行第 4 步后, VC 将会弹出一个对话框,在对话框的多页显示控件中选择 Link 页。 然后在 Object/library modules 输入框中输入: ; 选择目标工程 Head Files 加入: 文件; 最后 在 目标工程 (*.cpp,需要调用 DLL 中的函数 )中包含你的: include 注: youApp 是 DLL 的工程名。 (2).动态调用其程序如下。 动态调用时只需做静态调用步骤 1。 void MPS() { HINSTANCE hDllInst = LoadLibrary()。 if(hDllInst) { typedef DWORD (WINAPI*MYFUNC)(DWORD,DWORD)。 MYFUNCyouFuntionNameAlias=NULL。 // youFuntionNameAlias 函数别名 youFuntionNameAlias= (MYFUNC)GetProcAddress(hDllInst,youFuntionName)。 // youFuntionName 在 DLL 中声明的函数名 if(youFuntionNameAlias) { youFuntionNameAlias(param1,param2)。 } FreeLibrary(hDllInst)。 } } 显式(静态)调用: LIB + DLL + .H,注意 .H 中 dllexport 改为 dllimport 隐式(动态)调用: 基于数据采集卡的动态电压检测系统 11 DLL + 函数原型声明,先 LoadLibrary,再 GetProcAddress(即找到 DLL中函数的地址),不用后 FreeLibrary。 板卡提供的 DLL 文件中用到的函数 extern C int SetPara(int SampleRate, int ADChannalNumber, int *ADPGAofChannals, int DIOModal, unsigned short PWM1, unsigned short PWM2, int ComparatorEnable, int ExtTrigger,int DeviceNumber) int SetPara 函数执行配置采集卡参数的功能。 若 函数执行成功,返回 1;执行失败返回 0。 int SampleRate:采样率、刷新率等工作时钟频率。 此参数为内部时钟频率设定。 参数取值范围为 500080000,小于 5000 将被设置为 5000,大于 80000将被设置为 80000。 若 ExtTrigger = 0, EX1 和 EX5 对外输出该频率的时钟脉冲;若 ExtTrigger = 1,只有 EX1 输出时钟脉冲。 对于 AD 而言, SampleRate的 值 为 总 采 样 率 值 , 实 际 分 配 到 每 个 通 道 上 的 采 样 率 为SampleRate / (ADChannalNumber / 2)。 对于 DA 和 DIO 而言, SampleRate 就是每个通道的工作频率值。 int ADChannalNumber:模拟输入通道数。 ADChannalNumber = 2, AD1 与AD9 分别被配置为两路模拟信号输入,并且为同步采集,其余 ADx口无效;ADChannalNumber = 4, AD AD AD AD10 被配置为四路模拟信号输入, AD1 与 AD9 同步, AD2 与 AD10 同步,相邻通道为切换扫描模式,其余ADx 口无效; ADChannalNumber = 8, AD AD AD AD AD ADAD1 AD12 被配置为八路模拟信号输入, AD1 与 AD9 同步, AD2 与 AD10同步, AD3 与 AD11 同步, AD4 与 AD12 同步,相邻通道为切换扫描模式,其余 ADx 口无效; ADChannalNumber = 16,所有通道被配置为十六路模拟信号输入, AD1 与 AD9 同步, AD2 与 AD10 同步, AD3 与 AD11 同步, AD4与 AD12 同步, AD5 与 AD13 同步, AD6 与 AD14 同步, AD7 与 AD15 同步,AD8 与 AD16 同步,相邻通道为切换扫描模式。 若给出的 ADChannalNumber参数值小于 4, 则自动配置为 2;若给出的 ADChannalNumber 大于 4 而小于 8,则自动配置为 4;若给出的 ADChannalNumber 大于 8 而小于 16,则自动配置为 8; 若给出的 ADChannalNumber 大于 16,则自动配置为 16。 int * ADPGAofChannals:模拟输入增益设置。 ADPGAofChannals 为一维 16元素数组,数组元素依次代表模拟输入 116 通道的增益系数。 每个元素的取值为: ADPGAofChannals[i] = 1, 无增益; ADPGAofChannals[i] = 2,2 倍增 益;基于数据采集卡的动态电压检测系统 12 ADPGAofChannals[i] = 4, 4 倍增益; ADPGAofChannals[i] = 8, 8 倍增益; ADPGAofChannals[i] = 16, 16 倍增益。 若 ADPGAofChannals[i]为其他值,则自动设置 ADPGAofChannals[i] = 1。 int DIOModal:数字输入 /输出端口模式设置。 DIOModal = 0, D1D8 全部为输入模式; DIOModal = 1, D1D8 全部。基于数据采集卡的动态电阻检测系统毕业论文(编辑修改稿)
相关推荐
低功耗,甚至在不影响整体性能的情况下适当减少部分功能来实现降低功耗的目的。 除开以上所讲两种发展趋势之外,无线传感模块的应用和发展还具有极大的发展空间和良好的发展方向。 当前对无线传感模块的应用都是静止性的,就目前存在的无线传 感网络( WSN),构成网络的各个节点都是被固定的安放在一个地方,要实现对整个环境的检测,就需要向环境中投放大量的无线传感节点。 这样一来成本就会非常的高。
基于无线控制的智能小车系统的设计 18 前面板中有丰富的输入控件(如图 20),和显示控件(如图 21),能模仿实际仪器,非常方便地对数据信号进行显示和控制。 输入控件(如图 20) 显示控件(如图 21) 程序框图中,通过 G 语言,实现对数据信息的处理和控制,并能对串口工作方式进行设置,如图 22。 图 22 串口设置图 上位机 G 语言总程序框图如图 23 基于无线控制的智能小车系统的设计
到温度数据,人在此时可以针对性地作出一些反应。 无线模块的使用即节约了系统的成本,又减少了工作量,同时使用更加长久,因为线路在一定环境下容易腐蚀和损坏,我们在家里也会常常出现电线被老鼠咬坏的情况,基于更加安全和稳定的考虑,在使用的趋势上会越来越趋向于使用无线模块,不仅仅是温度测量系统,其他的更多的系统会更多地应用到无线,无线是未来的一个整体趋势。
交通流参数及预测方法 交通流 基本参数 通过对交通流量的实时诱导和控制是智能交通系统研究 的根本目的,正确、及时地分配交通流量,从而缓解道路拥堵的情况,使交通网络畅通,高效。 因此,如何对交通流量做出正确准确及时的预测,是控制和分配交通流量的前提。 交通流具有时间和空间的变化特性,这种时空特性是某空间位置 交通流运行状态的定性,定量特征。 交通流量的预测实际就是对交通流 基本参数的预测,交通流
egies of continuous improvement emerge. This paper attempts to apply plex operating system scheduling algorithm to the control of traffic lights traffic , thus forming a traffic light new scheduling
比例缩放所产生的图像中的像素可能在原图像中找不到相应得像 素点,这样就必须进行插值处理。 有关插值的内容在后面我们会讨论。 下面首先讨论图像的比例缩小。 最简单的比例缩小时当 21 fyfx 时,图像被缩到一半大小,此时缩小后图像中的( 0, 0)像素对应于原图像中的( 0, 0)像素;( 0, 1)像素对应于原图像中的( 0, 2)像素;( 1, 0)像素对应于原图像中的( 2, 0)像素