虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

数据访问

  • 基于单片机的蓄电池温度数据采集系统

    为了对蓄电池的温度进行检测,数据采集是必不可少的手段。程序控制数据采集系统是比较先进的采集方式,本文采用热电偶为温度检测元件对蓄电池温度信号进行采集来构建单片机温度采集系统,较好的实现了所需目的。为了确知某一测试对象的各项特性,我们常常要借助各种仪表和各种手段(直接测量或遥测)来获得各种各样的测量结果(数据)。但这些数据中包含有变换误差、设备误差以及在传输过程中(当采用遥测方式时)引入的各种干扰所造成的误差等。而且这些数据量通常都很大,有意义的部分和无意义的部分混杂在一起,如果不加取舍的直接应用,必然会造成极大不便。另外,很多情况下还需通过再加工(即将数据作某种变换)以便提供物理意义更明确更直接的数据形式(输入振动波形的频谱分析等)。上述这些问题都要靠数据采集与处理加以解决。为了对蓄电池的温度进行检测,本文采用热电偶为温度检测元件对蓄电池温度信号进行采集来构建单片机温度采集系统,较好的实现了所需目的。

    标签: 单片机 蓄电池 温度数据采集

    上传时间: 2014-12-28

    上传用户:CHINA526

  • C51基本语法

    数据类型和运算符、表达式是是C51语言程序设计的最基础知识,C51语言把数据分成了多种数据类型,并提供了丰富的运算对数据进行处理。本章对C51语言的基本数据类型、常量变量、运算符及表达式等进行详细介绍。1.掌握数据类型的概念,了解C51语言能够处理的数据类型。2.掌握常量的概念,掌握各种类型常量的特点及表示形式。3.掌握变量的概念,了解int、float、char型变量的特点,掌握这三种类型变量的定义、赋值和使用方法。理解C51中变量的存储和编译模式的关系,掌握单片机片内资源的访问方法。4.了解C51语言的基本运算符及其特点,掌握运算符的优先级和结合性的概念。5.了解算术运算表达式、关系表达式及逻辑表达式的特点,熟练进行表达式计算,能熟练进行实际问题的表达式描述。6.熟悉自增、自减运算的特点,掌握赋值运算,了解逗号运算符和逗号表达式。7.掌握数据类型转换的概念,能进行基本的数据类型转换。

    标签: C51

    上传时间: 2013-12-26

    上传用户:dingdingcandy

  • 单片机接口技术(C51版)课件

    单片机接口技术(C51版)课件:单片机接口技术(C51版)课件精品课程,该书由张道德根据多年单片机教学、科研经验编著,中国水利水电出版社2007年3月出版。 1.掌握数据类型的概念,了解C51语言能够处理的数据类型。2.掌握常量的概念,掌握各种类型常量的特点及表示形式。3.掌握变量的概念,了解int、float、char型变量的特点,掌握这三种类型变量的定义、赋值和使用方法。理解C51中变量的存储和编译模式的关系,掌握单片机片内资源的访问方法。4.了解C51语言的基本运算符及其特点,掌握运算符的优先级和结合性的概念。5.了解算术运算表达式、关系表达式及逻辑表达式的特点,熟练进行表达式计算,能熟练进行实际问题的表达式描述。6.熟悉自增、自减运算的特点,掌握赋值运算,了解逗号运算符和逗号表达式。7.掌握数据类型转换的概念,能进行基本的数据类型转换。

    标签: C51 单片机接口技术

    上传时间: 2013-10-10

    上传用户:jcljkh

  • AVR单片机GCC程序设计

    AVR单片机GCC程序设计:第一章 概述1.1 AVR 单片机GCC 开发概述1.2 一个简单的例子1.3 用MAKEFILE 管理项目1.4 开发环境的配置1.5 实验板CA-M8第二章 存储器操作编程2.1 AVR 单片机存储器组织结构2.2 I/O 寄存器操作2.3 SRAM 内变量的使用2.4 在程序中访问FLASH 程序存储器2.5 EEPROM 数据存储器操作2.6 avr-gcc 段结构与再定位2.7 外部RAM 存储器操作2.8 堆应用第三章 GCC C 编译器的使用3.1 编译基础3.2 生成静态连接库第四章 AVR 功能模块应用实验4.1 中断服务程序4.2 定时器/计数器应用4.3 看门狗应用4.4 UART 应用4.5 PWM 功能编程4.6 模拟比较器4.7 A/D 转换模块编程4.8 数码管显示程序设计4.9 键盘程序设计4.10 蜂鸣器控制第五章 使用C 语言标准I/O 流调试程序5.1 avr-libc 标准I/O 流描述5.2 利用标准I/0 流调试程序5.3 最小化的格式化的打印函数第六章 CA-M8 上实现AT89S52 编程器的实现6.1 编程原理6.2 LuckyProg2004 概述6.3 AT989S52 isp 功能简介6.4 下位机程序设计第七章 硬件TWI 端口编程7.1 TWI 模块概述7.2 主控模式操作实时时钟DS13077.3 两个Mega8 间的TWI 通信第八章 BootLoader 功能应用8.1 BootLoader 功能介绍8.2 avr-libc 对BootLoader 的支持8.3 BootLoader 应用实例8.4 基于LuckyProg2004 的BootLoader 程序第九章 汇编语言支持9.1 C 代码中内联汇编程序9.2 独立的汇编语言支持9.3 C 与汇编混合编程第十章 C++语言支持附录 1 avr-gcc 选项附录 2 Intel HEX 文件格式描述

    标签: AVR GCC 单片机

    上传时间: 2014-04-03

    上传用户:ligi201200

  • DMA技术 -ppt

    数据传送的控制 数据传送涉及的3个问题1)数据的来源;2)数据的去处;3)数据本身以及如何控制数据的传送。 DMA方式控制的数据传送 DMA传送方式通常用来高速传送大批量的数据块。如:  硬盘和软盘I/O; 快速通信通道I/O; 多处理机和多程序数据块传送; 在图像处理中,对CRT屏幕送数据; 快速数据采集; DRAM的刷新操作。 DMA传送包括:(1)存储单元传送:存储器→存储器。(2)DMA读传送:存储器→I/O设备。(3)DMA写传送:I/O设备→存储器。4.1.2  DMA传送的工作过程 1)I/O设备向DMAC发出DMA请求;2) DMAC向CPU发出总线请求;3)CPU在执行完当前指令的当前的总线周期后,向DMAC发出总线响应信号;4)CPU脱离对系统总线的控制,由DMAC接管对系统总线的控制; 为什么DMA传送方式能实现高速传送?DMA传送的过程是什么样的?画出流程。DMA有哪些操作方式?各有什么特点。简述DMA控制器的两个工作状态的特点。试设计一种在8088大模式下与8237连接的基本电路图。并说明你的设计中8237各个端口的实际地址。DMA控制器的时序包括哪几个状态周期?试画出正常读传输的时序。DMAC的内部地址寄存器是16位的,如何扩展地址来访问16MB的地址空间?

    标签: DMA

    上传时间: 2013-11-18

    上传用户:leixinzhuo

  • 汇编语言在数据处理中的应用

    汇编语言在数据处理中应用(自学)1、数值转换中应用          数据输入/输出时的转换2、串操作中应用                                                               串移动、串搜索、串比较、          串插入、串删除3、代码转换中应用           ASCII码          BCD码           二进数           BCD码 4、算术运算          在这一部分,我们将汇编语言在数据处理中的应用集中起来给大家,其中有些程序在11章中已经介绍过。

    标签: 汇编语言 数据处理 中的应用

    上传时间: 2013-10-23

    上传用户:qwer0574

  • 驱动程序与应用程序的接口

    有两种方式可以让设备和应用程序之间联系:1. 通过为设备创建的一个符号链;2. 通过输出到一个接口WDM驱动程序建议使用输出到一个接口而不推荐使用创建符号链的方法。这个接口保证PDO的安全,也保证安全地创建一个惟一的、独立于语言的访问设备的方法。一个应用程序使用Win32APIs来调用设备。在某个Win32 APIs和设备对象的分发函数之间存在一个映射关系。获得对设备对象访问的第一步就是打开一个设备对象的句柄。 用符号链打开一个设备的句柄为了打开一个设备,应用程序需要使用CreateFile。如果该设备有一个符号链出口,应用程序可以用下面这个例子的形式打开句柄:hDevice = CreateFile("\\\\.\\OMNIPORT3",  GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ,  NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ,NULL);文件路径名的前缀“\\.\”告诉系统本调用希望打开一个设备。这个设备必须有一个符号链,以便应用程序能够打开它。有关细节查看有关Kdevice和CreateLink的内容。在上述调用中第一个参数中前缀后的部分就是这个符号链的名字。注意:CreatFile中的第一个参数不是Windows 98/2000中驱动程序(.sys文件)的路径。是到设备对象的符号链。如果使用DriverWizard产生驱动程序,它通常使用类KunitizedName来构成设备的符号链。这意味着符号链名有一个附加的数字,通常是0。例如:如果链接名称的主干是L“TestDevice”那么在CreateFile中的串就该是“\\\\.\\TestDevice0”。如果应用程序需要被覆盖的I/O,第六个参数(Flags)必须或上FILE_FLAG_OVERLAPPED。 使用一个输出接口打开句柄用这种方式打开一个句柄会稍微麻烦一些。DriverWorks库提供两个助手类来使获得对该接口的访问容易一些,这两个类是CDeviceInterface, 和 CdeviceInterfaceClass。CdeviceInterfaceClass类封装了一个设备信息集,该信息集包含了特殊类中的所有设备接口信息。应用程序能有用CdeviceInterfaceClass类的一个实例来获得一个或更多的CdeviceInterface类的实例。CdeviceInterface类是一个单一设备接口的抽象。它的成员函数DevicePath()返回一个路径名的指针,该指针可以在CreateFile中使用来打开设备。下面用一个小例子来显示这些类最基本的使用方法:extern GUID TestGuid;HANDLE OpenByInterface(  GUID* pClassGuid,  DWORD instance,  PDWORD pError){  CDeviceInterfaceClass DevClass(pClassGuid, pError);  if (*pError != ERROR_SUCCESS)    return INVALID_HANDLE_VALUE;  CDeviceInterface DevInterface(&DevClass, instance, pError);  if (*pError != ERROR_SUCCESS)    return INVALID_HANDLE_VALUE;  cout << "The device path is "    << DevInterface.DevicePath()    << endl;   HANDLE hDev;  hDev = CreateFile(   DevInterface.DevicePath(),    GENERIC_READ | GENERIC_WRITE,    FILE_SHARE_READ | FILE_SHARE_WRITE,    NULL,    OPEN_EXISTING,    FILE_ATTRIBUTE_NORMAL,    NULL  );  if (hDev == INVALID_HANDLE_VALUE)    *pError = GetLastError();  return hDev;} 在设备中执行I/O操作一旦应用程序获得一个有效的设备句柄,它就能使用Win32 APIs来产生到设备对象的IRPs。下面的表显示了这种对应关系。Win32 API  DRIVER_FUNCTION_xxxIRP_MJ_xxx  KDevice subclass member function CreateFile  CREATE  Create ReadFile  READ  Read WriteFile  WRITE  Write DeviceIoControl  DEVICE_CONTROL  DeviceControl CloseHandle  CLOSECLEANUP  CloseCleanUp 需要解释一下设备类成员的Close和CleanUp:CreateFile使内核为设备创建一个新的文件对象。这使得多个句柄可以映射同一个文件对象。当这个文件对象的最后一个用户级句柄被撤销后,I/O管理器调用CleanUp。当没有任何用户级和核心级的对文件对象的访问的时候,I/O管理器调用Close。如果被打开的设备不支持指定的功能,则调用相应的Win32将引起错误(无效功能)。以前为Windows95编写的VxD的应用程序代码中可能会在打开设备的时候使用FILE_FLAG_DELETE_ON_CLOSE属性。在Windows NT/2000中,建议不要使用这个属性,因为它将导致没有特权的用户企图打开这个设备,这是不可能成功的。I/O管理器将ReadFile和WriteFile的buff参数转换成IRP域的方法依赖于设备对象的属性。当设备设置DO_DIRECT_IO标志,I/O管理器将buff锁住在存储器中,并且创建了一个存储在IRP中的MDL域。一个设备可以通过调用Kirp::Mdl来存取MDL。当设备设置DO_BUFFERED_IO标志,设备对象分别通过KIrp::BufferedReadDest或 KIrp::BufferedWriteSource为读或写操作获得buff地址。当设备不设置DO_BUFFERED_IO标志也不设置DO_DIRECT_IO,内核设置IRP 的UserBuffer域来对应ReadFile或WriteFile中的buff参数。然而,存储区并没有被锁住而且地址只对调用进程有效。驱动程序可以使用KIrp::UserBuffer来存取IRP域。对于DeviceIoControl调用,buffer参数的转换依赖于特殊的I/O控制代码,它不在设备对象的特性中。宏CTL_CODE(在winioctl.h中定义)用来构造控制代码。这个宏的其中一个参数指明缓冲方法是METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_OUT_DIRECT, 或METHOD_NEITHER。下面的表显示了这些方法和与之对应的能获得输入缓冲与输出缓冲的KIrp中的成员函数:Method  Input Buffer Parameter  Output Buffer Parameter METHOD_BUFFERED  KIrp::IoctlBuffer KIrp::IoctlBuffer METHOD_IN_DIRECT  KIrp::IoctlBuffer KIrp::Mdl METHOD_OUT_DIRECT  KIrp::IoctlBuffer KIrp::Mdl METHOD_NEITHER  KIrp::IoctlType3InputBuffer KIrp::UserBuffer 如果控制代码指明METHOD_BUFFERED,系统分配一个单一的缓冲来作为输入与输出。驱动程序必须在向输出缓冲放数据之前拷贝输入数据。驱动程序通过调用KIrp::IoctlBuffer获得缓冲地址。在完成时,I/O管理器从系统缓冲拷贝数据到提供给Ring 3级调用者使用的缓冲中。驱动程序必须在结束前存储拷贝到IRP的Information成员中的数据个数。如果控制代码不指明METHOD_IN_DIRECT或METHOD_OUT_DIRECT,则DeviceIoControl的参数呈现不同的含义。参数InputBuffer被拷贝到一个系统缓冲,这个缓冲驱动程序可以通过调用KIrp::IoctlBuffer。参数OutputBuffer被映射到KMemory对象,驱动程序对这个对象的访问通过调用KIrp::Mdl来实现。对于METHOD_OUT_DIRECT,调用者必须有对缓冲的写访问权限。注意,对METHOD_NEITHER,内核只提供虚拟地址;它不会做映射来配置缓冲。虚拟地址只对调用进程有效。这里是一个用METHOD_BUFFERED的例子:首先,使用宏CTL_CODE来定义一个IOCTL代码:#define IOCTL_MYDEV_GET_FIRMWARE_REV \CTL_CODE (FILE_DEVICE_UNKNOWN,0,METHOD_BUFFERED,FILE_ANY_ACCESS)现在使用一个DeviceIoControl调用:BOOLEAN b;CHAR FirmwareRev[60];ULONG FirmwareRevSize;b = DeviceIoControl(hDevice, IOCTL_MYDEV_GET_VERSION_STRING,  NULL, // no input  注意,这里放的是包含有执行操作命令的字符串指针  0, FirmwareRev,      //这里是output串指针,存放从驱动程序中返回的字符串。sizeof(FirmwareRev),& FirmwareRevSize,  NULL // not overlapped I/O );如果输出缓冲足够大,设备拷贝串到里面并将拷贝的资结束设置到FirmwareRevSize中。在驱动程序中,代码看起来如下所示:const char* FIRMWARE_REV = "FW 16.33 v5";NTSTATUS MyDevice::DeviceControl( KIrp I ){  ULONG fwLength=0;  switch ( I.IoctlCode() )  {    case IOCTL_MYDEV_GET_FIRMWARE_REV:      fwLength = strlen(FIRMWARE_REV)+1;      if (I.IoctlOutputBufferSize() >= fwLength)      {        strcpy((PCHAR)I.IoctlBuffer(),FIRMWARE_REV);        I.Information() = fwLength;         return I.Complete(STATUS_SUCCESS);      }      else      {              }    case . . .   } }

    标签: 驱动程序 应用程序 接口

    上传时间: 2013-10-17

    上传用户:gai928943

  • 基于ARM处理器LPC2142的高速数据采集卡设计

    提出了一种基于LPC2142且具有USB (通用串行总线) 接口的高速数据采集卡的设计方案,给出了基于ARM7处理器LPC2142和FPGA芯片的软硬件设计方法,该设计方案解决了高速实时信号与接口总线之间的速度兼容问题。关键词 USB 高速数据采集卡 LabVIEW uC/OS-II 速度兼容

    标签: 2142 ARM LPC 处理器

    上传时间: 2013-11-09

    上传用户:atdawn

  • 数据处理与控制策略

    数据处理与控制策略Data Processing &  Control Strategy数字控制器的设计技术,数字滤波和数据处理,数控技术基础,数字PID控制算法常规控制方案,先进控制方案,计算机控制系统的设计是指在给定系统性能指标的条件下,设计出控制器的控制规律和相应的数字控制算法 大多数计算机控制系统是由处理数字信号的过程控制计算机和连续的被控过程组成的数字信号与连续信号并存的“混合系统” 数字控制器的分析和设计方法数字控制器的连续化设计技术数字控制器的离散化设计技术

    标签: 数据处理 控制策略

    上传时间: 2013-10-30

    上传用户:yanming8525826

  • SAM88RCRI 指令集

    SAM88RCRI 指令集支持寄存器卷操作,它可完成8 位算术操作和逻辑操作,共有41条指令集。由于采用了存贮器影射方式,所以没有具体的I/O 口操作指令。指令支持位操作,循环、移位等数据操作。为访问个别寄存器,应指定寄存器卷中0--255 的8 位地址或工作寄存器中的4 位地址。工作寄存器中,寄存器对可以访问13 位程序存贮空间和数据存贮空间。SAM88CRI 支持6种地址访问方法,方便了编程操作。

    标签: RCRI SAM 88 指令集

    上传时间: 2013-12-02

    上传用户:heart_2007