当前位置:文档之家› msp430

msp430

msp430
msp430

MSP430

目录[隐藏]

基本简介

MSP430 单片机的发展

MSP430 单片机的特点

MSP430 与89C51系列的比较

应使用的多种MSP430

[编辑本段]

基本简介

MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗的混合信号处理器(Mixed Signal Processor)。称之为混合信号处理器,主要是由于其针对实际应用需求,把许多模拟电路、数字电路和微处理器集成在一个芯片上,以提供“单片”解决方案。

[编辑本段]

MSP430 单片机的发展

MSP430 系列是一个16 位的、具有精简指令集的、超低功耗的混合型单片机,在1996 年问世,由于它具有极低的功耗、丰富的片内外设和方便灵活的开发手段,已成为众多单片机系列中一颗耀眼的新星。回忆MSP430 系列单片机的发展过程,可以看出有这样三个阶段:

开始阶段从1996 年推出MSP430 系列开始到2000 年初,这个阶段首先推出有33X 、32X 、31X 等几个系列,而后于2000 年初又推出了11X 、11X 1 系列。

MSP430 的33X 、32X 、31X 等系列具有LCD 驱动模块,对提高系统的集成度较有利。每一系列有ROM 型( C )、OTP 型(P )、和EPROM 型( E )等芯片。EPROM型的价格昂贵,运行环境温度范围窄,主要用于样机开发。这也表明了这几个系列的开发模式,即:用户可以用EPROM 型开发样机;用OTP 型进行小批量生产;而ROM 型适应大批量生产的产品。

2000 年推出了11X/11X1 系列。这个系列采用20 脚封装,内存容量、片上功能和I/O 引脚数比较少,但是价格比较低廉。

这个时期的MSP430 已经显露出了它的特低功耗等的一系列技术特点,但也有不尽如人意之处。它的许多重要特性,如:片内串行通信接口、硬件乘法器、足够的I/O 引脚等,只有33X 系列才具备。33X 系列价格较高,比较适合于较为复杂的应用系统。当用户设计需要更多考虑成本时,33X 并不一定是最适合的。而片内高精度A/D转换器又只有32X 系列才有。

寻找突破,引入Flash技术随着Flash 技术的迅速发展,TI 公司也将这一技术引入MSP430 系列中。在2000 年7 月推出F13X/F14X 系列,在2001 年

7 月到2002 年又相继推出F41X 、F43X 、F44X 这些全部是Flash 型单片机。

F41X 单片机是目前应用比较广的单片机,它有48 个I/O 口,96 段LCD 驱动。F43X 、F44X 系列是在13X 、14X 的基础上,增加了液晶驱动器,将驱动LCD 的段数由3XX 系列的最多120 段增加到160 段。并且相应地调整了显示存储器在存储区内的地址,为以后的发展拓展了空间。

MSP430 系列由于具有Flash 存储器,在系统设计、开发调试及实际应用上都表现出较明显的优点。这是TI 公司推出具有Flash 型存储器及JTAG 边界扫描技术的廉价开发工具MSP-FET430X110 ,将国际上先进的JTAG 技术和Flash 在线编程技术引入MSP430 。

这种以Flash 技术与FET 开发工具组合的开发方式,具有方便、廉价、实用等优点,给用户提供了一个较为理想的样机开发方式。

另外,2001 年TI 公司又公布了BOOTSTRAP LOADER技术,利用它可在烧断熔丝以后只要几根线就可更改并运行内部的程序。这为系统软件的升级提供了又一方便的手段。BOOTSTRAP 具有很高的保密性,口令可达到32 个字节的长度。

蓬勃发展阶段在前一阶段,引进新技术和内部进行调整之后,为MSP430 的功能扩展打下了良好的基础。于是TI 公司在2002 年底和2003 年期间又陆续推出了F15X 和F16X 系列的产品。

在这一新的系列中,有了两个方面的发展。一是从存储器方面来说,将RAM

容量大大增加,如F1611 的RAM 容量增加到了10KB 。这样一来,希望将实时操作系统(RTOS )引入MSP430 的,就不会因RAM 不够而发愁了。二是从外围模块来说,增加了I 2 C 、DMA 、DAC12 和SVS 等模块。

在2003 年中,TI 公司还推出了专门用于电量计量的MSP430FE42X 和用于水表、气表、热表上的具有无磁传感模块的MSP430FW42X 单片机。我们相信由于MSP430 的开放性的基本架构和新技术的应用,新的MSP430 的产品品种必将会不断出现。

[编辑本段]

MSP430 单片机的特点

MSP430 系列单片机的迅速发展和应用范围的不断扩大,主要取决于以下的特点。

强大的处理能力MSP430 系列单片机是一个16 位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7 种源操作数寻址、 4 种目的操作数寻址)、简洁的27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令;有较高的处理速度,在8MHz 晶体驱动下指令周期为125 ns 。这些特点保证了可编制出高效率的源程序。

在运算速度方面,MSP430 系列单片机能在8MHz 晶体的驱动下,实现125 ns 的指令周期。16 位的数据宽度、125ns 的指令周期以及多功能的硬件乘法器(能实现乘加)相配合,能实现数字信号处理的某些算法(如FFT等)。

MSP430 系列单片机的中断源较多,并且可以任意嵌套,使用时灵活方便。当系统处于省电的备用状态时,用中断请求将它唤醒只用6us 。

超低功耗MSP430 单片机之所以有超低的功耗,是因为其在降低芯片的电源电压及灵活而可控的运行时钟方面都有其独到之处。

首先,MSP430 系列单片机的电源电压采用的是 1.8~3.6V 电压。因而可使其在1MHz 的时钟条件下运行时,芯片的电流会在200~400uA 左右,时钟关断模式的最低功耗只有0.1uA 。

其次,独特的时钟系统设计。在MSP430 系列中有两个不同的系统时钟系统:基本时钟系统和锁频环(FLL 和FLL+ )时钟系统或DCO 数字振荡器时钟系统。有的使用一个晶体振荡器(32768Hz ), 有的使用两个晶体振荡器)。由系统时钟系统产生CPU 和各功能所需的时钟。并且这些时钟可以在指令的控制下,打开和关闭,从而实现对总体功耗的控制。

由于系统运行时打开的功能模块不同,即采用不同的工作模式,芯片的功耗有着显著的不同。在系统中共有一种活动模式(AM )和五种低功耗模式(LPM0~LP M4 )。在等待方式下,耗电为0.7uA ,在节电方式下,最低可达0.1uA 。

系统工作稳定。上电复位后,首先由DCOCLK 启动CPU ,以保证程序从正确的位置开始执行,保证晶体振荡器有足够的起振及稳定时间。然后软件可设置适当的寄存器的控制位来确定最后的系统时钟频率。如果晶体振荡器在用做CPU 时钟MCLK 时发生故障,DCO 会自动启动,以保证系统正常工作;如果程序跑飞,可用看门狗将其复位。

丰富的片上外围模块MSP430 系列单片机的各成员都集成了较丰富的片内外设。它们分别是看门狗(WDT )、模拟比较器 A 、定时器 A (Timer_A )、定时器 B (Timer_B )、串口0 、1(USART0 、1 )、硬件乘法器、液晶驱动器、10 位/12 位ADC 、16位Sigma-Delta AD、直接寻址模块(DMA )、端口O (P0 )、端口1~6 (P1~P6 )、基本定时器(Basic Timer )等的一些外围模块的不同组合。其中,看门狗可以使程序失控时迅速复位;模拟比较器进行模拟电压的比较,配合定时器,可设计出A/D 转换器;16 位定时器(Timer_ A 和Timer_B )具有捕获/ 比较功能,大量的捕获/ 比较寄存器,可用于事件计

数、时序发生、PWM等;有的器件更具有可实现异步、同步及多址访问串行通信接口可方便的实现多机通信等应用;具有较多的I/O 端口,最多达6*8 条I/O 口线;P0 、P1 、P2 端口能够接收外部上升沿或下降沿的中断输入;12/14 位硬件A/D 转换器有较高的转换速率,最高可达200kbps ,能够满足大多数数据采集应用;能直接驱动液晶多达160 段;实现两路的12 位D/A 转换;硬件IIC串行总线接口实现存储器串行扩展;以及为了增加数据传输速度,而采用直接数据传输(DMA )模块。MSP430 系列单片机的这些片内外设为系统的单片解决方案提供了极大的方便。

方便高效的开发环境目前MSP430 系列有OPT 型、FLASH 型和ROM 型三种类型的器件,这些器件的开发手段不同。对于OPT 型和ROM 型的器件是使用仿真器开发成功之后在烧写或掩膜芯片;对于FLASH 型则有十分方便的开发调试环境,因为器件片内有JTAG 调试接口,还有可电擦写的FLASH 存储器,因此采用先下载程序到FLASH 内,再在器件内通过软件控制程序的运行,由JTAG 接口读取片内信息供设计者调试使用的方法进行开发。这种方式只需要一台PC 机和一个JTAG 调试器,而不需要仿真器和编程器。开发语言有汇编语言和 C 语言。

MSP430 单片机目前主要以FLASH 型为主。

适应工业级运行环境MSP430 系列器件均为工业级的,运行环境温度为-40~+ 85 摄氏度,所设计的产品适合用于工业环境下。

u 同其它微控制器相比MSP430系列可以大大延长电池的使用寿命

u 6us的启动时间可以使启动更加迅速

u ESD保护,抗干扰力强

u 低电压供电

u 多达64KB寻址空间,包含ROM、RAM 闪存RAM和外围模块。将来计划扩大至1MB

u 通过堆栈处理,中断和子程序调用层次无限制

u 仅3种子令格式全部为正交结构

u 尽可能做到1字/指令

u 源操作数有7种寻址模式目的操作数有4种寻址模式

u 外部中断引脚:I/O口具有中断能力

u 中断优先级:对同时发生的中断按优先级别处理

u 嵌套中断结构:可以在中断服务过程中再次响应其它中断

u 外围模块地址为存储器分配:全部寄存器不占用RAM空间,均在模块内

u 定时器中断可用于事件计数、时序发生、PWM等

u 看门狗功能

u A/D转换器(10位或更高精度)

u 正交指令简化了程序的开发:所有指令可以用任意寻址模式

u 已开发了C-编译器

u 模块设计思想:所有模块采用存储器分配

u MSP430 全部为工业级16 位RISC MCU -40 85ºC

[编辑本段]

MSP430 与89C51系列的比较

我国的多数读者对89C51系列的单片机是很熟悉的,为了加深对MSP430 系列单片机的认识,我们不妨将两者进行一下比较。

首先,89C51单片机是8 位单片机。其指令是采用的被称为“ CISC ”的复杂指令集,共具有111 条指令。而MSP430 单片机是16 位的单片机,采用了精简指令集(RISC )结构,只有简洁的27 条指令,大量的指令则是模拟指令,众多的寄存器以及片内数据存储器都可参加多种运算。这些内核指令均为单周期指令,功能强,运行的速度快。

其次,89C51单片机本身的电源电压是 5 伏,有两种低功耗方式:待机方式和掉电方式。正常情况下消耗的电流为24mA ,在待机状态下,其耗电电流仍为3m A ;即使在掉电方式下,电源电压可以下降到2V ,但是为了保存内部RAM 中的数据,还需要提供约50uA 的电流。而MSP430 系列单片机在低功耗方面的优越之处,则是89C51系列不可比拟的。正因为如此,MSP430 更适合应用于使用电池供电的仪器、仪表类产品中。

再者,89C51系列单片机由于其内部总线是8 位的,其内部功能模块基本上都是8 位的虽然经过各种努力其内部功能模块有了显著增加,但是受其结构本身的限制很大,尤其模拟功能部件的增加更显困难。MSP430 系列其基本架构是16位的,同时在其内部的数据总线经过转换还存在8 位的总线,在加上本身就是混合型的结构,因而对它这样的开放型的架构来说,无论扩展8 位的功能模块,还是16位的功能模块,即使扩展模/ 数转换或数/ 模转换这类的功能模块也是很方便的。这也就是为什么MSP430 系列产品和其中功能部件迅速增加的原因。

最后,就是在开发工具上面。对于89C51来说,由于它是最早进入中国的单片机,人们对它在熟悉不过了,再加上我国各方人士的努力,创造了不少适合我们使用的开发工具。但是如何实现在线编程还是一个很大的问题。对于MSP430 系列而言,由于引进了Flash 型程序存储器和JTAG 技术,不仅使开发工具变得简便,而且价格也相对低廉,并且还可以实现在线编程。

[编辑本段]

应使用的多种MSP430

使用参数搜索为您的应用找到合适的MSP430 产品。MSP430 产品系列类型描述。

MSP430F5xx 基于闪存的MCU 提供 1.2 伏至 3.6 伏工作电压、高达256k B的闪存和最高25MIPS的时钟系统,内置4个USCI模块。

MSP430F4xx 基于闪存的MCU 提供 1.8 伏至 3.6 伏工作电压、高达60kB 的闪存/ROM 和8 MIP(带有FLL + SVS)内置LCD Driver

MSP430F2xx 基于闪存的MCU 提供 1.8 伏至 3.6 伏工作电压、掉电复位及16MIP(带有基本时钟)

MSP430F1xx 基于闪存/ ROM 的MCU 提供 1.8 伏至 3.6 伏的工作电压、高达60kB 和8MIP(带有基本时钟)

LaunchPad-MSP430入门系列4-定时器模块(定时、计数、捕获)

LaunchPad-MSP430入门系列4-定时器模块 (定时、计数、捕获) Version 1.2 文先,介绍几个英文缩写的意思以及一些注意的地方。 1.Timer0/1 定时器0/1,在User's Guide中用的是TimerA/B,所指的也是Timer0/1 。 G2553Datasheet中用的是Timer0/1 ,本文以G2553Datasheet为准。全文以Timer0 为例,Timer1类同。 2.TAxR(x = 0/1)定时器x对应的计数器,这是一个只读寄存器。硬件自动驱动计数。 3.EQUy(y = 0/1/2)计数事件发生寄存器,当TAxR = TAxCCRy时EQUy置1。 4. 定时器简介 MSPG2553共有两个定时器,Timer0、Timer1,他们都是十六位的定时、计数器,内含三个捕获、比较寄存器。两个定时器均支持多个捕获、PWM输出、间歇性计时,定时器包含多个中断源,可以是计数溢出中断、捕获中断等等。 定时器包含: ●同步十六位定时、计数器运行模式。 ●时钟源可从MCLK、SMCLK、ACLK任意选择。 ●三个比较、捕获寄存器。 ●中断向量寄存器能快速解码的所有定时器中断 本文以Timer0为例详细介绍430的定时器模块,下图是Timer0组成框图

0-1定时器0组成框图 下面简要介绍一下该硬件框图的意思,从左上角看,首先是一个时钟源选择寄存器TASSELx,通过该寄存器选择定时器的时钟源,选择了时钟源后有一个分频器Divider,相应的设置寄存器是IDx,再过来就到一个定时器的核心部分,一个16位的定时器TAR。其右侧有一个定时器的计数模块,MCx寄存器用来设置计数模式。 接下来,TAR正下方有三个横线,右侧标有CCR0、CCR1、CCR2,意思是CCR1、CCR0的框图和下方CCR2的框图是一样的。此处省略不写。在CCR中,左上角为一个捕获源选择寄存器。可以从CCI2A、CCI2B、GND或者VCC选择捕获源,选择捕获源后有一个选择捕获模式寄存器Capture Mode,然后过来有一个捕获溢出状态寄存器COV,SCS同步/异步捕获模式选择位,然后连接到捕获比较寄存器。下方为模式选择寄存器,具体设置可以查看相应的寄存器设置。 这里仅是大概介绍一下Timer0的寄存器,具体的设置使用还看参考相应的寄存器并结合例程慢慢学习理解。 定时器运行方式 下面简要重点介绍定时器计数模块的四种模式以及7种输出模式。 Timer0有一个在不断计数的只读寄存器TA0R。计数器的计数模式共有四种,

MSP430程序库之定时器TA的PWM输出

MSP430程序库之定时器TA的PWM输出 定时器是单片机常用的其本设备,用来产生精确计时或是其他功能;msp430的定时器不仅可以完成精确定时,还能产生PWM波形输出,和捕获时刻值(上升沿或是下降沿到来的时候)。这里完成一个比较通用的PWM波形产生程序。 1.硬件介绍: MSP430系列单片机的TimerA结构复杂,功能强大,适合应用于工业控制,如数字化电机控制,电表和手持式仪表的理想配置。它给开发人员提供了较多灵活的选择余地。当PWM 不需要修改占空比和时间时,TimerA 能自动输出PWM,而不需利用中断维持PWM输出。 MSP430F16x和MSP430F14x单片机内部均含有两个定时器,TA和TB;TA 有三个模块,CCR0-CCR2;TB含有CCR0-CCR67个模块;其中CCR0模块不能完整的输出PWM波形(只有三种输出模式可用);TA可以输出完整的2路PWM波形;TB可以输出6路完整的PWM波形。 定时器的PWM输出有有8种模式: 输出模式0 输出模式:输出信号OUTx由每个捕获/比较模块的控制寄存器CCTLx中的OUTx位定义,并在写入该寄存器后立即更新。最终位OUTx直通。 输出模式1 置位模式:输出信号在TAR等于CCRx时置位,并保持置位到定时器复位或选择另一种输出模式为止。 输出模式2 PWM翻转/复位模式:输出在TAR的值等于CCRx时翻转,当TAR 的值等于CCR0时复位。 输出模式3 PWM置位/复位模式:输出在TAR的值等于CCRx时置位,当TAR 的值等于CCR0时复位。 输出模式4 翻转模式:输出电平在TAR的值等于CCRx时翻转,输出周期是定时器周期的2倍。 输出模式5复位模式:输出在TAR的值等于CCRx时复位,并保持低电平直到选择另一种输出模式。 输出模式6PWM翻转/置位模式:输出电平在TAR的值等于CCRx时翻转,当TAR值等于CCR0时置位。 输出模式7PWM复位/置位模式:输出电平在TAR的值等于CCRx时复位,当TAR的值等于CCR0时置位。 下图是增计数模式下的输出波形(本程序使用的是增模式3和7):

MSP430FW427中文数据手册

MSP430xW42x混合信号微控制器 ●低电源电压范围:1.8V…3.6V ●超低功耗: -活动模式: 200 μA (1 MHz, 2.2 V) -等待模式:0.7 μA -关断模式(RAM保持):0.1 μA ●五种省电模式 ●6微秒内从等待状态唤醒 ●锁频环,FLL+ ●16位精简指令结构,125纳秒指令时间周期 ●应用于水、热和气体仪表的体积流量测量的SCAN-I/F单元 ●带有三个捕捉/比较寄存器的16位定时器Timer_A ●带有五个捕捉/比较寄存器的16位定时器Timer_A ●集成96段LCD驱动器 ●片内比较器 ●串行片上编程,无需外部编程电压,可编程的安全熔丝代码保护 ●FLASH器件具有程序装载器(BSL) ●系列成员包括: MSP430CW423: 8KB ROM存储器, 512B RAM MSP430CW425: 16KB ROM 存储器, 512B RAM MSP430CW427: 32KB ROM 存储器, 1KB RAM MSP430FW423: 8KB Flash存储器, 512B RAM MSP430FW425: 16KB Flash存储器, 512B RAM MSP430FW427: 32KB Flash存储器, 1KB RAM ●64引脚Quad Flat Pack(QFP)封装 ●完全的模块描述请参见: MSP430x4xx系列用户指南,文献号:SLAU056 说明 德州仪器公司的MSP430系列超低功耗微控制器由几个针对水、热和气体仪表等不同应用目标的片上系统(System-on-chip)具有不同外围设备的芯片系列组成。MSP430微控制器采用低功耗设计和16位精简指令结构,CPU内置16位寄存器以及常数发生器,能够实现最高的代码效率。锁频环FLL+和数控振荡器使得微处理器能在6微秒内从低功耗模式快速切换到工作模式。MSP430xW42x系列配置有两个内置16位定时器、一个比较器、一个SCAN接口模块、96段LCD驱动器和48个I/O引脚的微控制器。 MSP430的典型应用包括热量仪表、热水和冷水仪表、气体仪表和工业传感器系统。定时器支持额外的计数器应用、射频位流操作、IrDA和M-Bus通讯。

MSP430定时器A捕捉脉实例

MSP430定时器A捕捉脉实例[调试通过,很好用] 微控论坛原创主贴作者:fangth Microcontrol CODE /***************************************************************** //功能:利用定时器A的捕捉能测量脉冲信号的脉宽 // // // MSP430F449 // ----------------- // /|\| XIN|- // | | | 32kHz // --|RST XOUT|- // | | // | P1.5/ACLK|---+ // | | | // | P2.0/TA2|<--+ // | | // | | //说明:ACLK要进行8分频(4K),并将其作为外部的要捕获的脉冲; //MCLK=SMCLK=8M; *****************************************************************/ #include int pwm_start,pwm_end,pwm_wide=0; void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT P1DIR = 0x20; // P1.5 输出 P1SEL = 0x20; // P1.5输出ACLK P2SEL|=BIT0; //P2.0 CCI2A SCFI0 |= FN_4; SCFQCTL = 121; // (121+1) ×32768 *2= 7.99Mhz FLL_CTL0=DCOPLUS+OSCCAP1; //MCLK=SMCLK=8M FLL_CTL1 |= FLL_DIV_8; //ACLK要进行8分频,ACLK=4K TACCTL2 =CAP+CM_3+CCIS_0+SCS+CCIE; //捕获模式,上升和下降都捕获,选择CCI2A,同步,捕获中断开 //Capture input select: 0 - CCI2A

MSP430中文数据手册

MSP430混合信号微控制器数据手册产品特性 ●低电压范围:2.5V~5.5V ●超低功耗 ——活动模式:330μA at 1MHz, 3V ——待机模式:0.8μA ——掉电模式(RAM数据保持):0.1μA ●从待机模式唤醒响应时间不超过6μs ●16位精简指令系统,指令周期200ns ●基本时钟模块配置 ——多种内部电阻 ——单个外部电阻 ——32kHz晶振 ——高频晶体 ——谐振器 ——外部时钟源 ●带有三个捕获/比较寄存器的16位定时器(Timer_A) ●串行在线可编程 ●采用保险熔丝的程序代码保护措施 ●该系列产品包括 ——MSP430C111:2K字节ROM,128字节RAM ——MSP430C112:4K字节ROM,256字节RAM ——MSP430P112:4K字节OTP,256字节RAM ●EPROM原型 ——PMS430E112:4KB EPROM, 256B RAM ●20引脚塑料小外形宽体(SOWB)封装,20引脚陶瓷双列直插式(CDIP) 封装(仅EPROM) ●如需完整的模块说明,请查阅MSP430x1xx系列用户指南(文献编号: SLAU049 产品说明 TI公司的MSP43O系列超低功耗微控制器由一些基本功能模块按照不同的应用目

标组合而成。在便携式测量应用中,这种优化的体系结构结合五种低功耗模式可以达到延长电池寿命的目的。MSP430系列的CPU采用16位精简指令系统,集成有16位寄存器和常数发生器,发挥了最高的代码效率。它采用数字控制振荡器(DCO),使得从低功耗模式到唤醒模式的转换时间小于6μs. MSP430x11x系列是一种超低功耗的混合信号微控制器,它拥有一个内置的16位计数器和14个I/0引脚。 典型应用:捕获传感器的模拟信号转换为数据,加以处理后输出或者发送到主机。作为独立RF传感器的前端是其另一个应用领域。 DW封装(顶视图) 可用选型 功能模块图

一种基于MSP430单片机的交流频率检测系统

本文提出了一种交流信号过零检测的电路,即捕获交流信号的零点,并借助MSP430单片机内部的16位定时器A(Timer A)的脉冲捕获功能便能得到该交流信号的周期进而能得到它的频率。系统的硬件部分主要由MSP430单片机以及整流桥、光电耦合器、三级管等器件构成;而软件部分主要是基于MSP430单片机的C语言程序,包括系统的初始化、定时器的设置等。该系统的实验结果和电路仿真吻合较好,具有一定的应用价值。 1 引言 由于频率信号具有抗干扰性强、易于传输、测量准确度较高等优点,因此许多非频率量的传感信号都转换为频率量来进行测量和处理。因此频率测量方法愈来愈引起关注和研究。 频率测量是测量和控制系统领域的最基本测量之一。当今用的最多的测量信号频率的仪器是频率计,由于频率计在测量过程中需要一个时基信号作为测量信号频率的时基。时基信号一般是由本机振荡电路发生的,尽管现在多用石英晶体振荡器,但是仍然不能保证时基信号的精度,因此频率计的测量精度也就成了问题。传统的频率测量方法有两种[1]:一种是测频法,在一定时间间隔T内测出待测信号重复变化次数N, 频率即为;另一种方法是测周法,在被测信号的一个周期内测出标准高频信号f的个数N,则被测频率。 本文介绍了一种测宽法[2],借助光电耦合原理,将交流信号转变成周期脉冲信号,通过捕获脉冲信号的下降沿,由定时器计数,通过二次计数的差值便能得到脉冲信号的周期,进而可以计算出所测交流信号的频率。 2 硬件电路设计 硬件电路完成的任务是: (1)模拟电路部分的设计,其功能是进行信号的转化。交流信号通过整流桥、光电耦合器等模拟器件便能得到周期脉冲信号。 (2)数字电路部分的设计,其功能是进行信号的检测。MSP430单片机内部的16位定时器A具有脉冲捕获功能,能将脉冲信号的占空比检测出来。 图1为它的基本结构图。 图1 系统的基本结构

MSP430F5418中文翻译

混合信号单片机 特征 低电源电压范围:1.8 V至3.6 V 超低功耗 主动模式 所有系统时钟模式 230微安/ MHz的频率为8 MHz,3.0伏,闪存程序执行 110微安/ MHz的频率为8 MHz,3.0伏,内存程序执行 待机模式 实时时钟,看门狗 电源监控操作,全内存保留,快速工作 1.7 μA at 2.2 V, 2.1 μA at 3.0 V (Typical) 低功耗振荡器 通用计数器,看门狗,和电源监控操作,全内存保留,快速上电1.2 μA at 3.0 V (Typical) 关闭模式 电源监控操作,全内存保留,快速上电 1.2 μA at 3.0 V (Typical) 关断模式 0.1μA at 3.0 V (Typical) 唤醒时间小于5μs的待机模式 16位RISC构架 内存扩展 高达25 MHz的系统时钟 灵活的电源管理系统 完全集成的LDO稳压随着可编程核心供电电压 电源电压监控,监测和掉电 统一时钟系统 FLL的稳定控制回路频 Low-Power/Low-Frequency内部时钟源(VLO) 低频修剪过的内部参考源 32-kHz 石英钟 高频率高达32 MHz的石英钟 16位定时器TA0,有五个Timer_A捕捉/比较寄存器 16位定时器TA1的,有三个Timer_A捕捉/比较寄存器 16位定时器TB0,七Timer_B捕捉/比较寄存器的阴影 多达四个通用串行通信接口 USCI_A0,USCI_A1,USCI_A2,和USCI_A3相互支持 增强型UART支持自动波特率检测 IrDA编码器和解码器 同步SPI USCI_B0,USCI_B1,USCI_B2,和USCI_B3相互支持 I2CTM 同步SPI

MSP430单片机定时器实验报告

实验四定时器实验 实验目的: MPS430F5529片内集成的定时器A的使用,学习计数器的补捕获比较模块的使用。实验内容: 定时器采用辅助时钟ACLK作为计数脉冲,fACLK=32768Hz,实现以下功能: 1.定时器TA0延时1s,点亮或熄灭LED6,即灯亮1s灭1s,如此循环,采用中断服务程序实现。 2.定时器TA0延时1s,点亮或熄灭LED4,采用捕获比较器CCR0的比较模式,设定输出方式,输出方波,不用中断服务程序 3.采用捕获比较器CCR1的比较模式LED5,设定输出方式,输出PWM波形,使LED 亮2s,灭1s。 4.用定时器实现30s倒计时,在液晶模块上显示,每过一秒显示数字变化一次。 5.使用TA1的捕获比较器CCR0捕获按键的间隔时间,在液晶模块上显示。 程序代码: 程序1: #include void main() {WDTCTL = WDTPW + WDTHOLD; //关看门狗 P1DIR |= BIT3; //设置P1.0口方向为输出。 TA0CCTL0 = CCIE; //设置捕获/比较控制寄存器中CCIE位为1, //CCR0捕获/比较功能中断为允许。 TA0CCR0 = 32767; //捕获/比较控制寄存器CCR0初值为32767 TA0CTL = TASSEL_1 + MC_1+TACLR; //设置定时器A控制寄存器TACTL, //使时钟源选择为SMCLK辅助时钟。 //进入低功耗模式LPM0和开总中断 _BIS_SR(LPM0_bits +GIE); } //定时器A 中断服务程序区 #pragma vector=TIMER0_A0_VECTOR __interrupt void Timer_A (void) {

MSP430--定时器B

MSP430--定时器B (2012-07-20 10:56:37) 转载▼ 分类:单片机专区 标签: 转载 原文地址:MSP430--定时器B作者:wangtangwang2012 MSP43016位定时器B模块是单片机的重要资源。MSP430F13/14/15x系列都有定时器模块B,但是不同单片机系列所带的比较/捕获模块功能有所不同。 1.定时器B模块: TimerB与TimerA大部分相同,不同点在于定时器B的捕获/比较单元增加了锁存器。 二者区别: (1)TimerB计数长度为8位,10位,12位,16位可编程,由TBCTL寄存器的CNTLx两位来配置,而定时器A的计数长度是固定的16位; (2)TimerB没有实现定时器A中的SCCI功能位的功能; (3)TimerB在比较模式下的捕获/比较寄存器功能与TimerA不同,增加了捕获比较锁存器; (4)有些芯片型号当中TimerB输出实现了高阻抗输出; (5)比较模式的原理有所不同:TimerA当中CCRx寄存器当中保存与TAR相比较的数据,而在TimerB 当中CCRx中保存要比较的数据,但并不直接与定时器TBR相比较,而是将CCRx当中的数据锁存到相应的锁存器之后,由锁存器与TBR相比较。从捕获/比较寄存器相比较锁存器传输数据的过程的时间也是可编程的,可以是写入比较捕获寄存器之后立即传输,也可有一个定时器来触发传输。(6)TimerB支持多种同步的定时功能,多重比较捕获功能和多重波形输出功能(PWM波)。而且,通过对比较数据的两级缓冲,可实现多个PWM波同步周期更新。

2.TimerB的逻辑结构图: 定时器B的逻辑结构基本与定时器A相同。

MSP430F149单片机定时器B捕获例程

/** *************************************************************** MSP430F149单片机定时器B捕获例程 日期:2013.9.10 姓名:MRT notice:捕获比较中断入口向量相同 ************************************************************** * * * **/ #include #define uint unsigned int #define uchar unsigned char uint ccr0=0; uint ccr1=0; uint ccr2=0; uint ccr3=0; uint ccr4=0; uint ccr5=0; uint ccr6=0; /*****************************main函数***********************/ void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT P5DIR|= BIT6; // P5.6输出 P5SEL|= BIT6; // P5.6输出ACLK P4SEL|= BIT0; P4DIR&= ~BIT0; P4SEL|= BIT1; P4DIR&= ~BIT1; P4SEL|= BIT2; P4DIR&= ~BIT2; P4SEL|= BIT3; P4DIR&= ~BIT3; P4SEL|= BIT4; P4DIR&= ~BIT4; P4SEL|= BIT5; P4DIR&= ~BIT5; P4SEL|= BIT6; P4DIR&= ~BIT6; /*----------定时器B CCIS_0/CCIS_1(CCIxA/CCIxB)两个外部输入中断公用一个IO-----------------*/ TBCCTL0 =CAP+CM_1+CCIS_0+SCS+CCIE; //捕获模式,上升捕获,选择CCI0A,同步,捕获中断开

MSP430定时器输出PWM方波

定时器A输出方波 1、定时器的PWM输出8种模式 输出模式0输出模式:输出信号OUTx由每个捕获/比较模块的控制寄存器CCTLx中的OUTx位定义,并在写入该寄存器后立即更新。最终位OUTx直通。 输出模式1置位模式:输出信号在TAR等于CCRx时置位,并保持置位到定时器复位或选择另一种输出模式为止。 输出模式2PWM翻转/复位模式:输出在TAR的值等于CCRx时翻转,当TAR的值等于CCR0时复位。 输出模式3PWM置位/复位模式:输出在TAR的值等于CCRx时置位,当TAR的值等于CCR0时复位。 输出模式4翻转模式:输出电平在TAR的值等于CCRx时翻转,输出周期是定时器周期的2倍。 输出模式5复位模式:输出在TAR的值等于CCRx时复位,并保持低电平直到选择另一种输出模式。 输出模式6 PWM翻转/置位模式:输出电平在TAR的值等于CCRx时翻转,当TAR值等于CCR0时置位。 输出模式7 PWM复位/置位模式:输出电平在TAR的值等于CCRx时复位,当TAR的值等于CCR0时置位。 下图是增计数模式下的输出波形:

2、程序:(TA定时器输出1K的方波) void TAPWM(void) { //引脚设置(暂时使用P1.2输出一路PWM) P1SEL |= BIT2; //TA1从P1.2输出 P1DIR |= BIT2; //TA1从P1.2输出 //P2SEL |= BIT0; //TA2从P1.2输出 //P2DIR |= BIT0; //TA2从P1.2输出 TACTL |= MC_1 + TASSEL_1; //时钟源选择ACLK,增计数模式TA设置 TACCTL1 = OUTMOD_7; //模式7 高电平PWM输出PWM设置 //TACCTL2 = OUTMOD_7; //模式7 高电平PWM输出 TACCR0 = 33-1; //PWM总周期=32个ACLK周期约等于1000Hz 设置PWM 的周期 TACCR1 = 16; //TA1 占空比= 16/32=50% 设置占空比 //TACCR2 = 16; //TA2 占空比= 16/32=50% } 软件改变TACCR0即可改变PWM的周期,改变TACCR1或者TACCR2即可改变占空比

MSP430 中文版用户指南

用于MSP430?的IAR嵌入式工作平台版本3+用户指南 Literature Number:ZHCU026X June2004–Revised November2011

内容Preface (5) 1现在就开始! (7) 1.1软件安装 (8) 1.2LED闪烁 (8) 1.3光盘和网络上重要的MSP430文档 (9) 2开发流程 (10) 2.1概述 (11) 2.2使用KickStart (11) 2.2.1项目设置 (12) 2.2.2用于MSP430L092/MSP430C092的附件项目设置 (13) 2.2.3从零开始创建一个项目 (15) 2.2.4用于LPMx.5调试的附加项目设置 (16) 2.2.5MSP430器件的密码保护 (17) 2.2.6使用一个现有的IAR V1.x/V2.x/V3.x项目 (18) 2.2.7堆栈管理和.xcl文件 (18) 2.2.8如何生成德州仪器(TI).TXT(和其它格式)文件 (18) 2.2.9示例程序概述 (18) 2.3使用C-SPY (18) 2.3.1断点类型 (19) 2.3.2使用断点 (20) 2.3.3使用单步执行 (21) 2.3.4使用观察窗口 (21) A常见问题和解答 (23) A.1硬件 (24) A.2程序开发(汇编语言、C语言编译器、连接器) (24) A.3调试中(C-SPY) (26) B FET专用菜单 (30) B.1菜单 (31) B.1.1Emulator→Device Information (31) B.1.2Emulator→Release JTAG on Go (31) B.1.3Emulator→Resynchronize JTAG (31) B.1.4Emulator→Init New Device (31) B.1.5Emulator→Secure-Blow JTAG Fuse (31) B.1.6Emulator→Breakpoint Usage (31) B.1.7Emulator→Advanced→Clock Control (31) B.1.8Emulator→Advanced→Emulation Mode (31) B.1.9Emulator→Advanced→Memory Dump (32) B.1.10Emulator→Advanced→Breakpoint Combiner (32) B.1.11Emulator→State Storage Control (32) B.1.12Emulator→State Storage Window (32) B.1.13Emulator→Sequencer Control (32) B.1.14Emulator→"Power on"Reset (32) B.1.15Emulator→GIE on/off (32) B.1.16Emulator→Leave Target Running (32)

MSP430定时器A中文超级详解

文章转载自网络-----------------感谢原作者的辛勤奉献 MSP430的定时器中有比较捕获 比较模式: 这是定时器的默认模式,当在比较模式下的时候,与捕获模式相关的硬件停止工作,如果这个时候开启定时器中断,然后设置定时器终值(将终值写入TACCRx),开启定时器,当TAR的值增到TACCRx的时候,中断标志位CCIFGx 置一,同时产生中断。若中断允许未开启则只将中断标志位CCIFGx置一。 例子:比较模式就像51单片机一样,要能够软件设置定时间隔来产生中断处理一些事情,如键盘扫描,也可以结合信号输出产生时序脉冲发生器,PWM信号发生器。如:不断装载TACCRx,启动定时器,TAR和TACCRx比较产生中断处理。 捕获模式: 利用外部信号的上升沿、下降沿或上升下降沿触发来测量外部或内部事件,也可以由软件停止。捕获源可以由CCISx选择CCIxA,CCIxB,GND,VCC。完成捕获后相应的捕获标志位CCIFGx置一 捕获模式的应用: 利用捕获源的来触发捕获TAR的值,并将每次捕获的值都保存到TACCRx 中,可以随时读取TACCRx的值,TACCRx是个16位的寄存器,捕获模式用于事件的精确定位。如测量时间、频率、速度等 例子:利用两次捕获的值来测量脉冲的宽度。或捕获选择任意沿,CCISx=”11“(输入选择VCC),这样即当VCC与GND发生切换时产生捕获条件 结合利用:异步通讯

同时应用比较模式和捕获模式来实现UART异步通信。即利用定时器的比较模式来模拟通讯时序的波特率来发送数据,同时采用捕获模式来接收数据,并及时转换比较模式来选定调整通信的接受波特率,达到几首一个字节的目的 ---------------------------------------- 利用MSP430单片机定时器A和捕获/比较功能模块结合使用,实现脉冲宽度的测量。 本例程用到了定时器A的CCI1A端口(例如MSP430F14X的P1.2引脚)作捕获外部输入的脉冲电平跳变,同时结合简单的软件算法就能实现脉冲宽度的测量。在实际应用中可根据例程中的start,end,overflow三个变量来计算脉冲宽度。此功能模块在实际产品应用中体现出有较高的应用价值。 2-例程 #include unsigned int start,end; unsigned char overflow; void main (void) { WDTCTL = WDTPW+WDTHOLD; //关闭看门狗定时器 P1DIR = BIT0+BIT4; //设置P1.0方向为输出 P1SEL = BIT2; //设置P1.2端口为功能模块使用 TACTL = TASSEL0+TACLR+TAIE+MC1; //定时器A时钟信号选择ACLK,同时设置定时器A计数模式为连续增计模式

MSP430F149定时器B讲解

MSP430F149定时器B 1.定时器B模块: TimerB与TimerA大部分相同,不同点在于定时器B的捕获/比较单元增加了锁存器。 二者区别: (1)TimerB计数长度为8位,10位,12位,16位可编程,由TBCTL寄存器的CNTLx两位来配置,而定时器A的计数长度是固定的16位; (2)TimerB没有实现定时器A中的SCCI功能位的功能; (3)TimerB在比较模式下的捕获/比较寄存器功能与TimerA不同,增加了捕获比较锁存器; (4)有些芯片型号当中TimerB输出实现了高阻抗输出; (5)比较模式的原理有所不同:TimerA当中CCRx寄存器当中保存与TAR相比较的数据,而在TimerB 当中CCRx中保存要比较的数据,但并不直接与定时器TBR相比较,而是将CCRx当中的数据锁存到相应的锁存器之后,由锁存器与TBR相比较。从捕获/比较寄存器相比较锁存器传输数据的过程的时间也是可编程的,可以是写入比较捕获寄存器之后立即传输,也可有一个定时器来触发传输。(6)TimerB支持多种同步的定时功能,多重比较捕获功能和多重波形输出功能(PWM波)。而且,通过对比较数据的两级缓冲,可实现多个PWM波同步周期更新。 2.TimerB的逻辑结构图:

定时器B的逻辑结构基本与定时器A相同。 3.定时器B的寄存器: 寄存器相关位的配置过程参考定时器A和数据手册。

4.定时器B的比较功能 当定时器B工作在比较模式时,将数据写入捕获比较锁存器TBCCRx当中,当TBCCTLx当中的CLLDx位决定的装载事件的发生时,TBCCRx中的数据会自动地传输到比较寄存器当中。 5.TI提供的例程: // // // // // MSP430F149 // ----------------- // /|| XIN|- // | | | HF XTAL (455k - 8MHz) // --|RST XOUT|- // | | // | P4.1/TB1|--> CCR1 - 75% PWM // | P4.2/TB2|--> CCR2 - 25% PWM // // M. Buccini // Texas Instruments Inc. // Feb 2005 // Built with IAR Embedded Workbench Version: 3.21A //******************************************************************************

MSP430_定时器A的使用

第四讲定时器A 的使用 MSP430F413芯片中含有TimerA3模块,如图1-2所示。其常用的外引线有三条:TACLK 、 TA1 和 TA2。 TACLK :定时器_A 输入时钟(48脚),与P1.6和ACLK 输出共用同一引脚。 TA1 :定时器_A 的第一通道输入、输出引脚(51脚)。捕获方式:CCI1A 输入;比较方式: OUT1输出。 TA2 :定时器_A 的第二通道输入、输出引脚(45脚)。捕获方式:CCI2A 输入;比较方式: 0UT2输出。 1定时器A 功能及结构 定时器A 基本结构是一个十六位计数器,由时钟信号驱动工作,结构框图如图 4-1所示。 TPSSEL1 TPSSELO C CM 11 CCM 10 CCJ?A ―O CCIZB —0 C4M> —6 VCC "& 图4-1定时器A 结构图 定时器A 具有多种功能,其特性如下: (1) 输入时钟可以有三种选择,可以是慢时钟(ACLK )、快时钟(SMCLK 与单片机主时 钟同频)和外部时钟。 (2) 能产生的定时中断、定时脉冲和 PWM (脉宽调制)信号,没有软件带来的误差。 TACLK ― ACLK ―O >7 MCLK —-O 弄 INCL K ―O X ID1 II KJftCLR Carrjr'Zcr o Timer EquO ---------------- ? 设富TMFC CCISil J CCJ&4 —r CCJOB —c OID —13 Wx —13 CCISOO F —H 比投罟 o 比血 CCMD1 CCMOO CCIS11 CCIS10 CC11A —4 CC11B ―° GHD —0 vcc —° £ 炳捉,比戕餐存辭(riw QF.10? 3MOI m/mo LQUO 捕怩'比牧蒂存幣WIU OMI? OM11 CM10 CCI2 CCM21 CCM20 LUU?

MSP430F5529中文技术资料

描述 MSP430F5529 实验板(MSP-EXP430F5529) 是MSP430F5529 器件的开发平台,出自最新一代的具有集成USB 的MSP430 器件。该实验板与CC2520EMK 等众多TI 低功耗射频无线评估模块兼容。实验板能帮助设计者快速使用新的F55xx MCU 进行学习和开发,其中F55xx MCU 为能量收集、无线传感以及自动抄表基础设施(AMI) 等应用提供了业界最低工作功耗的集成USB、更大的内存和领先的集成技术。 实验板上的MSP430F5529 器件可以通过集成ezFET或通过TI 闪存仿真工具(如MSP-FET430UIF)进行供电和调试。 ?基于新的MSP430F5529 MCU,可用于需要增强型功能和集成USB 的超低功耗设计 ?凭借eZ430-RF2500 工具、用于Z-Stack Pro 的开包即用平台以及对各种TI 低功耗射频无线评估模块的支持,可实现快速的低功耗无线开发,覆盖低于1GHz 和 2.4GHz 的频带 ?用于各种用户界面和娱乐游戏的102x64 点-矩阵LCD ?多个输入/输出选项可实现快速的系统开发:电容触摸按钮/滑块、按钮、USB、micro SD 插槽、LED 和滚轮。 ?集成ezFET 可让实验板直接插到PC 上,通过USB 实现供电和调试。 ?JTAG 接头连接,可借助MSP-FET430UIF 用于4 线JTAG 编程和调试。 ?与Code Composer Studio 兼容,免费的16KB IDE ?已预安装完整的用户体验软件演示,源码提供下载 ?PCB 设计提供下载(Eagle PCB) 特性 ?集成MSP430F5529: o128KB 闪存/ 8KB SRAM(如禁用USB,则为10kB) o全速USB 2.0 o16 位RISC 架构,高达25MHz o 3 个Timer_A 块、1 个Timer_B 块 o 2 个USCI (UART/SPI/I2C) 块、16 通道12 位ADC12_A、12 通道 Comp_B、63 I/O ?USB 开发平台 ? 5 块电容触摸条(按钮或滑块功能) ?microSD Card 插槽,附1GB 内存卡。 ?102x64 灰阶点-矩阵LCD,带背光。 ? 4 个按钮(2 个用户配置按钮、1 个复位按钮、1 个USB 自举按钮) ? 3 个通用LED、5 个用于电容触摸按钮的LED 和1 个LED 电源指示灯。 ?滚轮/分压器 ?集成的EM 接头可支持TI 低功耗射频无线评估模块和eZ430-RF2500T。当前支

HCSR04超声波模块程序(MSP430)

声明:本程序仅供学习参考使用。 献给有需要的同学?>`o`<? (1)源程序: /* * HC_SR04.c * * Created on: 2015年4月4日 * Author: LGY */ #include #include "config.h" #include "HC_SR04.h" void HC_config() { P4DIR |=BIT0;//P4.0口用作输出 P2SEL |=BIT0;//P2.0用作TA1.1捕获信号输入 } void HC_start()///开始发送10usTTL促发信号 { P4OUT &=~BIT0;//P4.0口输出低电平 P4OUT |=BIT0;//P4.0口输出高电平 TA1cap_next=0; Inversion_hc=0; _NOP();//接下来延时10us以上的TTL _NOP();_NOP();_NOP(); _NOP();_NOP();_NOP(); _NOP();_NOP();_NOP(); _NOP();_NOP();_NOP(); P4OUT &=~BIT0;//P4.0口输出低电平 while(TA1cap_next<2);//等待捕获完成,若发送1次无效则跳出 TA1CCTL1 &=~CCIE; //CCR中断关闭 distance=(float)TA1cap_time/58;//求出距离,单位厘米 } void TA1_config() { UCSCTL4 |=SELS__XT2CLK;/* SMCLK 时钟源选择XT2CLK 4Mhz*/ // UCSCTL5 |=0x0010;// //SMCLK 2分频,2Mhz TA1CTL |=TASSEL_2;///* Timer A 时钟源选择: SMCLK */ TA1CTL |=0x0080;// Timer A 4分频 TA1CTL |=0x0020;// Timer A 反复计数模式 // TA1CCR0 =400;//约10ms //计数终值

最新实战msp430TB捕获PWM波的脉冲宽度

实战m s p430T B捕获P W M波的脉冲宽度

实战msp430:TB捕获PWM波的脉冲宽度 字体: 小中大 | 打印发布: 2007-8-03 14:29 作者: 网络转载来源: 网络查看: 61次 用TB捕获脉宽 想用TBCCRO捕获脉冲低电平宽度,思路是:tbccr0捕获到下降沿中断,则记下tbccro的值,并改为上升沿触发;捕获到上升沿中断,则记下tbccro的值,改为下降沿触发。 硬件:单片机:MSP430F149 晶振:32K,8M 输入信号:通过无线接收到低电平10ms,高电平7.5ms, 输入口:P4.0(TB0) 要求:捕获低电平的脉宽 软件: 1. 初步思路:通过定时器TBCCR0作为捕获模块对外部输入信号进行捕获:先设为下降沿捕获,如果捕获到,马上修改为上升沿捕获,并马上TBR清零开始计数;如果不过到上升沿,马细奈陆笛兀裈BCCR0的数据记下来,此即为脉冲低电平宽度。 2. 使用TI公司的c语言例程稍做修改程序可以运行。 3. 出现问题:程序能捕获到上升下降沿,并且捕获到的width总是忽大忽小,毫无规律。

程序改来改去毫无进展,头开始慢慢大了~~~ 4.师兄过来看看说,怎么没有开晶振啊?我说没用到8M的,也就没专门开晶振~不过既然说起,要不干脆换个晶振试试,于是加了段程序,并把TB改成用MCLK (8M): void InitSys() { unsigned int iq0; //使用XT2振荡器 BCSCTL1&=~XT2OFF; //打开XT2振荡器 do { IFG1 &= ~OFIFG; // 清除振荡器失效标志 for (iq0 = 0xFF; iq0 > 0; iq0--); // 延时,等待XT2起振 } while ((IFG1 & OFIFG) != 0); // 判断XT2是否起振 BCSCTL2 =SELM_2+SELS; //选择MCLK=SMCLK为XT2 } 奇怪的事情发生了,程序一直卡在此处的延时程序语句中,怎么回事,难道晶振打不开?突然想到查查硬件,才发现8M晶振一个管脚松了#◎¥※@$…… 焊好8M晶振后,程序可以继续运行了.

利用MSP430定时器A的捕捉能测量脉冲信号的脉宽

/***************************************************************** //功能:利用定时器A的捕捉能测量脉冲信号的脉宽 // // // MSP430F449 // ----------------- // /|\| XIN|- // | | | 32kHz // --|RST XOUT|- // | | // | P1.5/ACLK|---+ // | | | // | P2.0/TA2|<--+ // | | // | | //说明:ACLK要进行8分频(4K),并将其作为外部的要捕获的脉冲; //MCLK=SMCLK=8M; *****************************************************************/ #include int pwm_start,pwm_end,pwm_wide=0; void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT P1DIR = 0x20; // P1.5 输出 P1SEL = 0x20; // P1.5输出ACLK P2SEL|=BIT0; //P2.0 CCI2A SCFI0 |= FN_4; SCFQCTL = 121; // (121+1) ×32768 *2= 7.99Mhz FLL_CTL0=DCOPLUS+OSCCAP1; //MCLK=SMCLK=8M FLL_CTL1 |= FLL_DIV_8; //ACLK要进行8分频,ACLK=4K TACCTL2 =CAP+CM_3+CCIS_0+SCS+CCIE; //捕获模式,上升和下降都捕获,选择CCI2A,同步,捕获中断开 //Capture input select: 0 - CCI2A TACTL = TASSEL_2 + MC_2 ; //SMCLK=8M,L连续计数模式 _EINT(); //开总中断 LPM0; _NOP(); pwm_wide=pwm_end-pwm_start;

MSP430PDF中文版PDF资料

指令集描述P(220—257) * DECX.A目的操作数减1 * DECX.[W] 目的操作数减1 * DECX.B 目的操作数减1 语法DECV.A dst DECX dst 或DECX.W dst DECX.B dst 操作dst – 1 →dst 仿真SUBX.A#1,dst SUBX #1,dst SUBX.B #1,dst 说明目的操作数减1 以前的内容丢失 状态位N :结果为负时置位为正时复位 Z : dst包含1时置位其他情况时复位 C : dst包含0时置位其他情况时复位 V : 产生算术溢出时置位其他情况时复位 目的操作数的初始值为08000H时置位其他情况时复位 方式位OscOff(晶振控制位),CPUOff(CPU控制位)和GIE(中断标志位)不受影响 例子目的地址操作数减一 DECX.A TONI ; TONI减一

* DECDX.[W] 目的操作数减2 * DECDX.B 目的操作数减2 语法DECDX.A dst DECDX dst or DECDX.W ds DECDX.B dst 操作dst - 2 -> dst 仿真SUBX.A#2,dst SUBX #2,dst SUBX.B #2,dst 说明目的操作数减2 以前的内容丢失 状态位N : 结果为负时置位为正时复位 Z : dst包含2时置位其他情况时复位 C : dst包含0或1时置位其他情况时复位 V : dst产生算术溢出时置位其他情况时复位 目的操作数的初始值为08001H或08000H时置方式位OscOff, CPUOff 和GIE不受影响 例子目的地址操作数减二 DECDX.A TONI ; Decrement TONI

相关主题
文本预览
相关文档 最新文档