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

功能安全

  • MSP430F413实现的智能遥控器设计

    MSP430F413实现的智能遥控器设计:MSP430F413 单片机是TI 公司最近推出的超低功耗混合信号16 位单片机系列中的一种。它采用16 位精简指令系统,125ns 指令周期,大部分的指令在一个指令周期内完成,16 位寄存器和常数发生器,发挥了最高的代码效率,而且片内含有硬件乘法器,大大节省运算的时间。该芯片采用低功耗设计,具有五种低功耗模式,供电电压范围为1.8~3.6V,在工作模式下:2.2 伏工作电压1MHz 工作频率时电流为225uA;在待机模式电流为0.7uA;掉电模式(RAM 数据保持不变)电流为0.1uA。所以特别适用长期使用电池工作的场合。它采用数字控制振荡器(DCO),使得从低功耗模式到唤醒模式的转换时间小于6us。该芯片具有8KB+256B Flash Memory,256B RAM,采用串行在线编程方式,为用户编译程序和控制参数提供灵活的空间,内部的安全保密熔丝可使程序不必非法复制。此外,MSP430F413 具有强大的中断功能,48 个通用I/O 引脚,96 段LCD 驱动器,一个16 位定时器,这样提高了对外围设备的开发能力。

    标签: 430F F413 MSP 430

    上传时间: 2013-11-08

    上传用户:bruce5996

  • MSP430系列flash型超低功耗16位单片机

    MSP430系列flash型超低功耗16位单片机MSP430系列单片机在超低功耗和功能集成等方面有明显的特点。该系列单片机自问世以来,颇受用户关注。在2000年该系列单片机又出现了几个FLASH型的成员,它们除了仍然具备适合应用在自动信号采集系统、电池供电便携式装置、超长时间连续工作的设备等领域的特点外,更具有开发方便、可以现场编程等优点。这些技术特点正是应用工程师特别感兴趣的。《MSP430系列FLASH型超低功耗16位单片机》对该系列单片机的FLASH型成员的原理、结构、内部各功能模块及开发方法与工具作详细介绍。MSP430系列FLASH型超低功耗16位单片机 目录  第1章 引 论1.1 MSP430系列单片机1.2 MSP430F11x系列1.3 MSP430F11x1系列1.4 MSP430F13x系列1.5 MSP430F14x系列第2章 结构概述2.1 引 言2.2 CPU2.3 程序存储器2.4 数据存储器2.5 运行控制2.6 外围模块2.7 振荡器与时钟发生器第3章 系统复位、中断及工作模式3.1 系统复位和初始化3.1.1 引 言3.1.2 系统复位后的设备初始化3.2 中断系统结构3.3 MSP430 中断优先级3.3.1 中断操作--复位/NMI3.3.2 中断操作--振荡器失效控制3.4 中断处理 3.4.1 SFR中的中断控制位3.4.2 中断向量地址3.4.3 外部中断3.5 工作模式3.5.1 低功耗模式0、1(LPM0和LPM1)3.5.2 低功耗模式2、3(LPM2和LPM3)3.5.3 低功耗模式4(LPM4)22 3.6 低功耗应用的要点23第4章 存储空间4.1 引 言4.2 存储器中的数据4.3 片内ROM组织4.3.1 ROM 表的处理4.3.2 计算分支跳转和子程序调用4.4 RAM 和外围模块组织4.4.1 RAM4.4.2 外围模块--地址定位4.4.3 外围模块--SFR4.5 FLASH存储器4.5.1 FLASH存储器的组织4.5.2 FALSH存储器的数据结构4.5.3 FLASH存储器的控制寄存器4.5.4 FLASH存储器的安全键值与中断4.5.5 经JTAG接口访问FLASH存储器39第5章 16位CPU5.1 CPU寄存器5.1.1 程序计数器PC5.1.2 系统堆栈指针SP5.1.3 状态寄存器SR5.1.4 常数发生寄存器CG1和CG25.2 寻址模式5.2.1 寄存器模式5.2.2 变址模式5.2.3 符号模式5.2.4 绝对模式5.2.5 间接模式5.2.6 间接增量模式5.2.7 立即模式5.2.8 指令的时钟周期与长度5.3 指令组概述5.3.1 双操作数指令5.3.2 单操作数指令5.3.3 条件跳转5.3.4 模拟指令的简短格式5.3.5 其他指令第6章 硬件乘法器6.1 硬件乘法器6.2 硬件乘法器操作6.2.1 无符号数相乘(16位×16位、16位×8位、8位×16位、8位×8位)6.2.2 有符号数相乘(16位×16位、16位×8位、8位×16位、8位×8位)6.2.3 无符号数乘加(16位×16位、16位×8位、8位×16位、8位×8位)6.2.4 有符号数乘加(16位×16位、16位×8位、8位×16位、8位×8位)6.3 硬件乘法器寄存器6.4 硬件乘法器的软件限制6.4.1 寻址模式6.4.2 中断程序6.4.3 MACS第7章 基础时钟模块7.1 基础时钟模块7.2 LFXT1与XT27.2.1 LFXT1振荡器7.2.2 XT2振荡器7.2.3 振荡器失效检测7.2.4 XT振荡器失效时的DCO7.3 DCO振荡器7.3.1 DCO振荡器的特性7.3.2 DCO调整器7.4 时钟与运行模式7.4.1 由PUC启动7.4.2 基础时钟调整7.4.3 用于低功耗的基础时钟特性7.4.4 选择晶振产生MCLK7.4.5 时钟信号的同步7.5 基础时钟模块控制寄存器7.5.1 DCO时钟频率控制7.5.2 振荡器与时钟控制寄存器7.5.3 SFR控制位第8章 输入输出端口8.1 引 言8.2 端口P1、P28.2.1 P1、P2的控制寄存器8.2.2 P1、P2的原理8.2.3 P1、P2的中断控制功能8.3 端口P3、P4、P5和P68.3.1 端口P3、P4、P5和P6的控制寄存器8.3.2 端口P3、P4、P5和P6的端口逻辑第9章 看门狗定时器WDT9.1 看门狗定时器9.2 WDT寄存器9.3 WDT中断控制功能9.4 WDT操作第10章 16位定时器Timer_A10.1 引 言10.2 Timer_A的操作10.2.1 定时器模式控制10.2.2 时钟源选择和分频10.2.3 定时器启动10.3 定时器模式10.3.1 停止模式10.3.2 增计数模式10.3.3 连续模式10.3.4 增/减计数模式10.4 捕获/比较模块10.4.1 捕获模式10.4.2 比较模式10.5 输出单元10.5.1 输出模式10.5.2 输出控制模块10.5.3 输出举例10.6 Timer_A的寄存器10.6.1 Timer_A控制寄存器TACTL10.6.2 Timer_A寄存器TAR10.6.3 捕获/比较控制寄存器CCTLx10.6.4 Timer_A中断向量寄存器10.7 Timer_A的UART应用 第11章 16位定时器Timer_B11.1 引 言11.2 Timer_B的操作11.2.1 定时器长度11.2.2 定时器模式控制11.2.3 时钟源选择和分频11.2.4 定时器启动11.3 定时器模式11.3.1 停止模式11.3.2 增计数模式11.3.3 连续模式11.3.4 增/减计数模式11.4 捕获/比较模块11.4.1 捕获模式11.4.2 比较模式11.5 输出单元11.5.1 输出模式11.5.2 输出控制模块11.5.3 输出举例11.6 Timer_B的寄存器11.6.1 Timer_B控制寄存器TBCTL11.6.2 Timer_B寄存器TBR11.6.3 捕获/比较控制寄存器CCTLx11.6.4 Timer_B中断向量寄存器第12章 USART通信模块的UART功能12.1 异步模式12.1.1 异步帧格式12.1.2 异步通信的波特率发生器12.1.3 异步通信格式12.1.4 线路空闲多机模式12.1.5 地址位多机通信格式12.2 中断和中断允许12.2.1 USART接收允许12.2.2 USART发送允许12.2.3 USART接收中断操作12.2.4 USART发送中断操作12.3 控制和状态寄存器12.3.1 USART控制寄存器UCTL12.3.2 发送控制寄存器UTCTL12.3.3 接收控制寄存器URCTL12.3.4 波特率选择和调整控制寄存器12.3.5 USART接收数据缓存URXBUF12.3.6 USART发送数据缓存UTXBUF12.4 UART模式,低功耗模式应用特性12.4.1 由UART帧启动接收操作12.4.2 时钟频率的充分利用与UART的波特率12.4.3 多处理机模式对节约MSP430资源的支持12.5 波特率计算 第13章 USART通信模块的SPI功能13.1 USART同步操作13.1.1 SPI模式中的主模式13.1.2 SPI模式中的从模式13.2 中断与控制功能 13.2.1 USART接收/发送允许位及接收操作13.2.2 USART接收/发送允许位及发送操作13.2.3 USART接收中断操作13.2.4 USART发送中断操作13.3 控制与状态寄存器13.3.1 USART控制寄存器13.3.2 发送控制寄存器UTCTL13.3.3 接收控制寄存器URCTL13.3.4 波特率选择和调制控制寄存器13.3.5 USART接收数据缓存URXBUF13.3.6 USART发送数据缓存UTXBUF第14章 比较器Comparator_A14.1 概 述14.2 比较器A原理14.2.1 输入模拟开关14.2.2 输入多路切换14.2.3 比较器14.2.4 输出滤波器14.2.5 参考电平发生器14.2.6 比较器A中断电路14.3 比较器A控制寄存器14.3.1 控制寄存器CACTL114.3.2 控制寄存器CACTL214.3.3 端口禁止寄存器CAPD14.4 比较器A应用14.4.1 模拟信号在数字端口的输入14.4.2 比较器A测量电阻元件14.4.3 两个独立电阻元件的测量系统14.4.4 比较器A检测电流或电压14.4.5 比较器A测量电流或电压14.4.6 测量比较器A的偏压14.4.7 比较器A的偏压补偿14.4.8 增加比较器A的回差第15章 模数转换器ADC1215.1 概 述15.2 ADC12的工作原理及操作15.2.1 ADC内核15.2.2 参考电平15.3 模拟输入与多路切换15.3.1 模拟多路切换15.3.2 输入信号15.3.3 热敏二极管的使用15.4 转换存储15.5 转换模式15.5.1 单通道单次转换模式15.5.2 序列通道单次转换模式15.5.3 单通道重复转换模式15.5.4 序列通道重复转换模式15.5.5 转换模式之间的切换15.5.6 低功耗15.6 转换时钟与转换速度15.7 采 样15.7.1 采样操作15.7.2 采样信号输入选择15.7.3 采样模式15.7.4 MSC位的使用15.7.5 采样时序15.8 ADC12控制寄存器15.8.1 控制寄存器ADC12CTL0和ADC12CTL115.8.2 转换存储寄存器ADC12MEMx15.8.3 控制寄存器ADC12MCTLx15.8.4 中断标志寄存器ADC12IFG.x和中断允许寄存器ADC12IEN.x15.8.5 中断向量寄存器ADC12IV15.9 ADC12接地与降噪第16章 FLASH型芯片的开发16.1 开发系统概述16.1.1 开发技术16.1.2 MSP430系列的开发16.1.3 MSP430F系列的开发16.2 FLASH型的FET开发方法16.2.1 MSP430芯片的JTAG接口16.2.2 FLASH型仿真工具16.3 FLASH型的BOOT ROM16.3.1 标准复位过程和进入BSL过程16.3.2 BSL的UART协议16.3.3 数据格式16.3.4 退出BSL16.3.5 保护口令16.3.6 BSL的内部设置和资源附录A 寻址空间附录B 指令说明B.1 指令汇总B.2 指令格式B.3 不增加ROM开销的模拟指令B.4 指令说明(字母顺序)B.5 用几条指令模拟的宏指令附录C MSP430系列单片机参数表附录D MSP430系列单片机封装形式附录E MSP430系列器件命名

    标签: flash MSP 430 超低功耗

    上传时间: 2014-04-28

    上传用户:sssnaxie

  • 89S51看门狗功能的使用方法

    89S51看门狗功能的使用方法:在ATMEL的89S51系列的89S51与89C51功能相同,指令兼容。HEX程序无需任何转换可以直接使用。89S51只比89C51增加了一个看门狗功能。向看门狗寄存器(WDTRST地址是0A6H)中先写入01EH,再写入0E1H,即可激活看门狗。汇编程序如下:Mov 0A6H,#01EH ;先送1EMov 0A6H,#0E1H ;后送E1C51程序如下:在AT89X51.h声明文件中增加一行 sfr WDTRST = 0xA6来声明看门狗寄存器。Main(){WDTRST=0x1E; //先送1EWDTRST=0xE1; //后送E1喂狗指令与激活相同:WDTRST=0x1E;WDTRST=0xE1;

    标签: 89S51 看门狗

    上传时间: 2013-10-08

    上传用户:lyy1234

  • Microchip ZigBee协议栈

    Microchip ZigBee协议栈:ZigBee™ 是专为低速率传感器和控制网络设计的无线网络协议。有许多应用可从ZigBee 协议受益,其中可能的一些应用有:建筑自动化网络、住宅安防系统、工业控制网络、远程抄表以及PC 外设。与其他无线协议相比, ZigBee 无线协议提供了低复杂性、缩减的资源要求,最重要的是它提供了一组标准的规范。它还提供了三个工作频带,以及一些网络配置和可选的安全功能。如果您正在寻求现有的控制网络技术(例如RS-422、RS-485)或专有无线协议的替代方案, ZigBee 协议可能是您所需的解决方案。此应用笔记旨在帮助您在应用中采用ZigBee 协议。 可以使用在应用笔记中提供的Microchip ZigBee 协议栈快速地构建应用。为了说明该协议栈的用法,本文包含了两个有效的演示应用程序。可将这两个演示程序作为参考或者根据您的需求经过简单修改来采用它们。此应用笔记中提供的协议栈函数库实现了一个与物理层无关的应用程序接口。 因此,无需做重大修改就可以轻松地在射频(Radio Frequency,RF)收发器之间移植应用程序。在此文档末尾的“常见问题解答”中提供了有关Microchip 协议栈和用法的一些常见问题及其答案。

    标签: Microchip ZigBee 协议栈

    上传时间: 2013-10-08

    上传用户:u789u789u789

  • 基于P89C51RA的智能广播系统控制器

    介绍了P89C51RA 单片机的性能和特点,设计了智能广播系统控制器。详细分析了该型号单片机ISP 功能,实现了智能广播系统控制器的在系统升级。通过串口通信对PC 主机命令进行接收并解析,实现对广播设备和广播分区的控制。系统成功地进行了系统调试,经长期运行表明,该系统结构简洁,运行稳定可靠,性价比高。关键词:控制器;智能广播系统;P89C51RA;ISP;串口通信随着计算机技术和多媒体技术的发展,计算机越来越多地应用到社会各个领域。智能广播系统是计算机技术和多媒体技术在广播系统中的综合应用,是在原有广播系统的基础上增加计算机系统和控制器实现广播系统的智能化升级。智能广播系统具有以下功能:程序化自动广播;广播分区预设;无人职守全自动运行;支持多种广播模式。智能广播系统一方面可以大大减轻广播节目制作和播放人员的工作量,另一方面还为广播节目的制作提供了丰富的素材和节目来源。智能广播系统将广泛地应用于大、中、小各类学校和部分企、事业单位。智能广播系统主要由计算机软件系统、计算机硬件系统、控制器和原有广播体系构成。控制器在整个系统中起着连接计算机系统和原有广播体系的桥梁作用,实现对计算机发出的各种控制指令的解释和执行,因此,智能广播系统控制器的性能在一定程度上决定着整个系统安全、可靠和稳定地运行。本文研究开发了一种基于P89C51RA 的智能广播系统控制器来实现整个系统的安全可靠运行。

    标签: P89 89C C51 89

    上传时间: 2014-01-07

    上传用户:mengmeng444425

  • 多功能高集成外围器件

     多功能高集成外围器件6. 1  多功能高集成外围器件82371PCI的英文名称:Peripheral Component Interconnect (外围部件互联PCI总线);82371是PCI总线组件。ISA是:Industry Standard Architecture(工业标准体系结构)IDE是 (Integrated Device Electronics)集成电路设备简称PIIX4PIIX4器件(芯片)的特点1、是一种支持Pentium和PentiumII微处理器的部件。2、82371对ISA桥来说,是一种多功能PCI总线。3、对可移动性和桌面深绿色环境均提供支持。4、电源管理逻辑。5、被集成化的IDE控制器。6、增强了性能的DMA控制器。 (7)基于两个82C59的中断控制器。(8)基于82C54芯片的定时器。(9)USB(Universal Serial Bus)通用串行总线。(10)SMBus系统管理总线。(11)实时时钟(12)顺应Microsoft Win95所需的功能其芯片的逻辑框图如图6-1所示。    PIIX4芯片逻辑框图6.1.1   概述PIIX4芯片是一个多功能的PCI器件,图6-2 是82371在系统中扮演的角色。(续上图)1. PCI与EIO之间的桥(PIIX4芯片)桥是不对程的,是各类不同标准总线与PCI总线连接,82371AB桥也可理解为一种总线转换译码器和控制器,桥内包含复杂的协议总线信号和缓冲器。(1).在PCI系统内,当PIIX4操作时,它总是作为系统内各种模块的主控设备,如USB和DMA控制器、IDE总线和分布式DMA的主控设备等,而且总是以ISA主控设备的名义出现。(2).  在向ISA总线或IDE总线进行传送操作的传送周期期间作为从属设备使用,并对内部寄存器译码。PIIX4芯片(桥)的配置(1).可以把PIIX4芯片配置成整个ISA总线,或ISA总线的子集,也可扩展成EIO总线。在使用EIO总线时,可以把未使用的信号配置成通用的输入和输出。(2).PIIX4可直接驱动5个ISA插槽;(3).能提供字节-交换逻辑、I/O的恢复支持、等待状态的生成以及SYSCLK的生成。(4).提供X-BUS键盘控制器芯片、BIOS芯片、实时时钟芯片、二级微程序器等的选择。2.  IDE接口(总线主控设备的权利和同步DMA方式)IDE接口为4个IDE的设备提供支持,比如IDE接口的硬盘和CD-ROM等。注意:目前硬盘接口有5类:IDE、SCSI、Fibre Channel、IEEE1394和USB等。IDE口几乎在PC机最多,因为便宜。SCSI多用于服务器和集群机。IDE的PIO IDE速率:14MB/s;而总线主控设备IDE的速率:33MB/s在PIIX4芯片的IDE系统内,配有两个各次独立的IDE信号通道。3. 具有兼容性的模块—DMA、定时器/计数器、中断控制器等(1)在PIIX4内的两各82C37 DMA控制器经逻辑的组合,产生7个独立的可编程通道。通道[0:3]是通过与8个二进位的硬件连线实现的。通过以字节为单位的计数进行传送。而通道[5:7]是通过16个二进位的连线实现的,以字为单位的计数进行传送。(2)DMA控制器还能通过PCI总线,处理旧的DMA的两个不同的方法提供支持。(3)计数/定时器模块在功能上与82C54等价。(4)中断控制器与ISA兼容,其功能是两个82C59的功能之和。

    标签: 多功能 外围器件 集成

    上传时间: 2013-11-19

    上传用户:3到15

  • 用单片机制作多功能莫尔斯码电路

    用单片机制作多功能莫尔斯码电路:用单片机制作多功能莫尔斯码电路莫尔斯电码通信有着悠久的历史,尽管它已被现代通信方式所取代,但在业余无线电通信和特殊的专业场合仍具有重要的地位,这是因为等幅电码通信的抗干扰能力是其它任何一种通信方式都无法相比的。在短波波段用几瓦的功率即可进行国际间的通信,收发射设备简单易制成本低廉,所以深受业余无线电爱好者的喜爱,是业余无线电高手必备的技能。要想熟练掌握莫尔斯电码的收发技术除了持之以恒的毅力外,还需要相关的设备。设计本电路的目的就是给爱好者提供一个实用和训练的工具。  一、功能简介    本电路可以配合自动键体和手动键体,产生莫尔斯码控制信号,设有16种速度,从初学者到操作高手都能适用。监听音调也有16种,均可以通过功能键进行选择。可以按程序中设定好的呼号自动呼叫,设有听抄练习功能,听抄练习有短码和混合码两种模式,分别对10个数字和常用的38个混合码模拟随机取样,产生分组报码,供爱好者提高抄收水平之用,速度低4档的听抄练习是专为初学者所设,内容是时间间隔较长的单字符。设有PTT开关键,可以决定是否控制发射机工作,不需要反复通断控制线。无论当前处于呼叫状态还是听抄状态只要电键接点接通则自动转到人工发报程序。4分钟内不使用电路将自动关闭电源,只有按复位键才能重新开始工作。先按住听抄练习键复位则进入短码练习状态,其它功能不变。从开机到自动关机执行每个功能都有不同的莫尔斯码提示音。本电路具有较强的抗高低频干扰的能力和使用方便的大电流开关接口,以适应不同的发射设备。    二、硬件电路原理硬件电路如图1所示。设计电路的目的在于方便实用,以免在紧张的操作中失误,所以除了听抄练习键外其它键没有定义复用功能。各键的作用在图中已经标出。PTT控制在每次复位时处于关闭状态,每按动一次PTT功能键则改变一次状态,这样可以使用软件开关控制发射。 PTT处于控制状态时发光二极管随控制信号闪亮。考虑到自制设备及淘汰军用设备与高档设备控制电流的不同,PTT开关管采用了2SC2073,可以承受500mA的电流,同时还增加了无极性PTT开关电路,无论外部被控制的端口直流极性如何加到VT3的极性始终不变,供有兴趣的爱好者实验。应该注意,如果被控制的负载是感性,则电感两端必须并联续流二极管,除自制设备外成品机在这方面一般没有什么问题。手动键只有一个接点,接通后产生连续的音频和发射控制信号。在本电路中手动键的输入端是P1.5 ,程序不断检测P1.5电平,当按键按下时P1.5电平为0,程序转入手动键子程序。 自动键的接点分别接到P1.3和P1.4 ,同样当程序检测到有接点闭合时便自动产生“点”或“划”。音频信号从P输出,经VT1放大后推动扬声器发音。单片机的I/O口在输入状态下阻抗较高,容易受到高低频信号干扰,所以在每个输入端口和三极管的be端并联电阻和高频旁路电容,确保在较长的电键连线和大功率发射时电路工作稳定。图2是印刷电路版图,尺寸为110mmX85mm,扬声器用粘合剂直接粘接在电路版有铜箔的面。    三、软件设计方法  “点”时间长度是莫尔斯电码中的基本时间单位。按规定“划”的时间长度不小于三个“点”,同字符中“点”与“划”的间隔不小于一个“点”,字符之间不小于一个“划”,词与词之间不应小于五个“点”。在本程序中用条件转移指令来产生“点”时间长度。通过速度功能键功可以设置16种延时参数。用T0中断产生监听音频信号,并将中断设为优先级,保证在听觉上纯正悦耳。T1用于自动关机计时,如果不使用任何功能四分钟后将向PCON 位写1,单片机进入休眠状态,此时耗电量仅有几个微安。自动键的“点”或“划”以及手动键的连续发音都是子程序的反复调用。P1.2对地短接时自动呼叫可设定为另一内容。为了便于熟悉汇编语言的读者对发音内容进行修改,这里介绍发音字符的编码方法。莫尔斯码的信息与计算机中二进制恰好相同,我们可以用0表示“点”,用1表示“划”。提示音、自动呼叫、听抄内容等字符是预先按一定编码方式存储在程序中的常数。每个字符的莫尔斯码一般是由1至6位“点”、“划”组成,也就是发音次数最多6次。程序中每个字符占用1个字节,字符时间间隔不占用字节,但更长的延时或发音结束信息占用一个字节。我们用字节的低三位表示字节的性质,对于5次及5次以下发音的字符我们用存储器的高5位存储发音信息,发音顺序由高位至低位,用低3位存储发音次数,发音时将数据送入累加器A,先得到发音次数,然后使A左环移,对E0进行位寻址,判断是发“点”还是“划”,环移次数由发音次数决定。对于6次发音的字符不能完全按照上述编码规则,否则会出现信息重叠,如果是6次发音且最后一次是“划”我们把发音次数定义为111B,因为这时第6次位寻址得到的是1。如果第6次发音是“点”,那么这个字符的低三位定义为000B。字符间隔时间由程序自动产生,更长的时间隔或结束标志由字节低三位110B来定义,高半字节表示字符间隔的倍数,例如26H表示再加两倍时间间隔。如果字节为06H则表示读字符程序结束,返回主程序。更详细的内容不再赘述,读者可阅读源程序。四、使用注意事项手动键的操作难度相对大一些,时间节拍全由人掌握,其特点是发出的电码带有“人情味”。自动键的“点”、“划”靠电路产生,发音标准,容易操作,而且可以达到相当快的速度,长时间工作也不易疲劳。在干扰较大、信号微弱的条件下自动键码的辨别程度好于手动键码。初学者初次使用手动键练习发报要有老师指导,且不可我行我素,一旦养成不正确的手法则很难纠正。在电台上时常听到一些让对方难以抄收的电码,这可能会使对方反感而拒绝回答。使用自动键也应在一定的听抄基础上再去练习。在暂时找不老师的情况下可多练习听力,这对于今后能够发出标准正确的电码非常有益。

    标签: 用单片机 多功能 莫尔斯 电路

    上传时间: 2013-10-31

    上传用户:sdq_123

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

    有两种方式可以让设备和应用程序之间联系: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

  • 指令功能及汇编语言程序设计

    7-1. 设计范例——数码管显示7-2. 51单片机的并行I/O接口的使用方法7-3. 数码管的知识和使用方法7-4. 传送类指令的功能7-5. 汇编语言程序设计的一般步骤要求在最左侧的数码管上显示数字1。范例分析:硬件分析       电路中用到了单片机的并行I/O口和数码管软件设计       由于硬件电路中数码管接在单片机的P0口上,故将显示内容送至单片机的P0口就可以在数码管上看到显示内容。8051单片机的并口是几位的?在四个并口中,真正的双向口是哪一个?它的用法有多少种?四个并口中功能相对较为简单的是哪一个?在作为输入、输出口使用时有何不同?在实际应用中,并口的使用要考虑其负载能力,在四个并口中负载力相对较强的是哪一个?

    标签: 指令 汇编语言 程序设计

    上传时间: 2013-10-13

    上传用户:Maple

  • pic单片机实用教程(提高篇)

    pic单片机实用教程(提高篇)以介绍PIC16F87X型号单片机为主,并适当兼顾PIC全系列,共分9章,内容包括:存储器;I/O端口的复位功能;定时器/计数器TMR1;定时器TMR2;输入捕捉/输出比较/脉宽调制CCP;模/数转换器ADC;通用同步/异步收发器USART;主控同步串行端口MSSP:SPI模式和I2C模式。突出特点:通俗易懂、可读性强、系统全面、学练结合、学用并重、实例丰富、习题齐全。<br>本书作为Microchip公司大学计划选择用书,可广泛适用于初步具备电子技术基础和计算机知识基础的学生、教师、单片机爱好者、电子制作爱好者、电器维修人员、电子产品开发设计者、工程技术人员阅读。本教程全书共分2篇,即基础篇和提高篇,分2册出版,以适应不同课时和不同专业的需要,也为教师和读者增加了一种可选方案。 第1章 EEPROM数据存储器和FIASH程序存储器1.1 背景知识1.1.1 通用型半导体存储器的种类和特点1.1.2 PIC单片机内部的程序存储器1.1.3 PIC单片机内部的EEPROM数据存储器1.1.4 PIC16F87X内部EEPROM和FIASH操作方法1.2 与EEPROM相关的寄存器1.3 片内EEPROM数据存储器结构和操作原理1.3.1 从EEPROM中读取数据1.3.2 向EEPROM中烧写数据1.4 与FLASH相关的寄存器1.5 片内FLASH程序存储器结构和操作原理1.5.1 读取FLASH程序存储器1.5.2 烧写FLASH程序存储器1.6 写操作的安全保障措施1.6.1 写入校验方法1.6.2 预防意外写操作的保障措施1.7 EEPROM和FLASH应用举例1.7.1 EEPROM的应用1.7.2 FIASH的应用思考题与练习题第2章 输入/输出端口的复合功能2.1 RA端口2.1.1 与RA端口相关的寄存器2.1.2 电路结构和工作原理2.1.3 编程方法2.2 RB端口2.2.1 与RB端口相关的寄存器2.2.2 电路结构和工作原理2.2.3 编程方法2.3 RC端口2.3.1 与RC端口相关的寄存器2.3.2 电路结构和工作原理2.3.3 编程方法2.4 RD端口2.4.1 与RD端口相关的寄存器2.4.2 电路结构和工作原理2.4.3 编程方法2.5 RE端口2.5.1 与RE端口相关的寄存器2.5.2 电路结构和工作原理2.5.3 编程方法2.6 PSP并行从动端口2.6.1 与PSP端口相关的寄存器2.6.2 电路结构和工作原理2.7 应用举例思考题与练习题第3章 定时器/计数器TMR13.1 定时器/计数器TMR1模块的特性3.2 定时器/计数器TMR1模块相关的寄存器3.3 定时器/计数器TMR1模块的电路结构3.4 定时器/计数器TMR1模块的工作原理3.4.1 禁止TMR1工作3.4.2 定时器工作方式3.4.3 计数器工作方式3.4.4 TMR1寄存器的赋值与复位3.5 定时器/计数器TMR1模块的应用举例思考题与练习题第4章 定时器TMR24.1 定时器TMR2模块的特性4.2 定时器TMR2模块相关的寄存器4.3 定时器TMR2模块的电路结构4.4 定时器TMR2模块的工作原理4.4.1 禁止TMR2工作4.4.2 定时器工作方式4.4.3 寄存器TMR2和PR2以及分频器的复位4.4.4 TMR2模块的初始化编程4.5 定时器TMR2模块的应用举例思考题与练习题第5章 输入捕捉/输出比较/脉宽调制CCP5.1 输入捕捉工作模式5.1.1 输入捕捉摸式相关的寄存器5.1.2 输入捕捉模式的电路结构5.1.3 输入捕捉摸式的工作原理5.1.4 输入捕捉摸式的应用举例5.2 输出比较工作模式5.2.1 输出比较模式相关的寄存器5.2.2 输出比较模式的电路结构5.2.3 输出比较模式的工作原理5.2.4 输出比较模式的应用举例5.3 脉宽调制输出工作模式5.3.1 脉宽调制模式相关的寄存器5.3.2 脉宽调制模式的电路结构5.3.3 脉宽调制模式的工作原理5.3.4 脉定调制模式的应用举例5.4 两个CCP模块之间相互关系思考题与练习题第6章 模/数转换器ADC6.1 背景知识6.1.1 ADC种类与特点6.1.2 ADC器件的工作原理6.2 PIC16F87X片内ADC模块6.2.1 ADC模块相关的寄存器6.2.2 ADC模块结构和操作原理6.2.3 ADC模块操作时间要求6.2.4 特殊情况下的A/D转换6.2.5 ADC模块的转换精度和分辨率6.2.6 ADC模块的内部动作流程和传递函数6.2.7 ADC模块的操作编程6.3 PIC16F87X片内ADC模块的应用举例思考题与练习题第7章 通用同步/异步收发器USART7.1 串行通信的基本概念7.1.1 串行通信的两种基本方式7.1.2 串行通信中数据传送方向7.1.3 串行通信中的控制方式7.1.4 串行通信中的码型、编码方式和帧结构7.1.5 串行通信中的检错和纠错方式7.1.6 串行通信组网方式7.1.7 串行通信接口电路和参数7.1.8 串行通信的传输速率7.2 PIC16F87X片内通用同步/异步收发器USART模块7.2.1 与USART模块相关的寄存器7.2.2 USART波特率发生器BRG7.2.3 USART模块的异步工作方式7.2.4 USART模块的同步主控工作方式7.2.5 USART模块的同步从动工作方式7.3 通用同步/异步收发器USART的应用举例思考题与练习题第8章 主控同步串行端口MSSP——SPI模式8.1 SPI接口的背景知识8.1.1 SPI接口信号描述8.1.2 基于SPI的系统构成方式8.1.3 SPI接口工作原理8.1.4 兼容的MicroWire接口8.2 PIC16F87X的SPI接口8.2.1 SPI接口相关的寄存器8.2.2 SPI接口的结构和操作原理8.2.3 SPI接口的主控方式8.2.4 SPI接口的从动方式8.3 SPI接口的应用举例思考题与练习题第9章 主控同步串行端口MSSP——I(平方)C模式9.1 I(平方)C总线的背景知识9.1.1 名词术语9.1.2 I(平方)C总线的技术特点9.1.3 I(平方)C总线的基本工作原理9.1.4 I(平方)C总线信号时序分析9.1.5 信号传送格式9.1.6 寻址约定9.1.7 技术参数9.1.8 I(平方)C器件与I(平方)C总线的接线方式9.1.9 相兼容的SMBus总线9.2 与I(平方)C总线相关的寄存器9.3 典型信号时序的产生方法9.3.1 波特率发生器9.3.2 启动信号9.3.3 重启动信号9.3.4 应答信号9.3.5 停止信号9.4 被控器通信方式9.4.1 硬件结构9.4.2 被主控器寻址9.4.3 被控器接收——被控接收器9.4.4 被控器发送——被控发送器9.4.5 广播式寻址9.5 主控器通信方式9.5.1 硬件结构9.5.2 主控器发送——主控发送器9.5.3 主控器接收——主控接收器9.6 多主通信方式下的总线冲突和总线仲裁9.6.1 发送和应答过程中的总线冲突9.6.2 启动过程中的总线冲突9.6.3 重启动过程中的总线冲突9.6.4 停止过程中的总线冲突9.7 I(平方)C总线的应用举例思考题与练习题附录A 包含文件P16F877.INC附录B 新版宏汇编器MPASM伪指令总表参考文献

    标签: pic 单片机 实用教程

    上传时间: 2013-12-14

    上传用户:xiaoyuer