MSP430G2553学习笔记数据手册_第1页
MSP430G2553学习笔记数据手册_第2页
MSP430G2553学习笔记数据手册_第3页
MSP430G2553学习笔记数据手册_第4页
MSP430G2553学习笔记数据手册_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MSP430G2553 学习笔记学习笔记(数据手册)(数据手册)MSP430G2553 性能参数性能参数(DIP-20)工作电压范围:1.83.6V。5 种低功耗模式。16 位的 RISC 结构,62.5ns 指令周期。超低功耗:运行模式-230A;待机模式-0.5A;关闭模式-0.1A;可以在不到 1s 的时间里超快速地从待机模式唤醒。基本时钟模块配置:具有四种校准频率并高达 16MHz 的内部频率;内部超低功耗 LF 振荡器;32.768KHz 晶体;外部数字时钟源。两个 16 位 Timer_A,分别具有三个捕获/比较寄存器。用于模拟信号比较功能或者斜率模数(A/D)转换的片载比较器。带

2、内部基准、采样与保持以及自动扫描功能的 10 位 200-ksps 模数(A/D)转换器。16KB 闪存,512B 的 RAM。16 个 I/O 口。注意:注意:MSP430G2553 无无 P3 口!口!MSP430G2553 的时钟的时钟基本时钟系统的寄存器基本时钟系统的寄存器DCOCTL-DCO 控制寄存器控制寄存器DCOxDCO 频率选择控制 1MODxDCO 频率校正选择,通常令 MODx=0注意:在 MSP430G2553 上电复位后,默认 RSEL=7,DCO=3,通过数据手册查得 DCO 频率大概在0.81.5MHz 之间。BCSCTL1-基本时钟基本时钟控制寄存器控制寄存器

3、1XT2OFF不用管,因为 MSP430G2553 内部没有 XT2 提供的 HF 时钟XTS不用管,默认复位后的 0 值即可DIVAx设置 ACLK 的分频数00/101/210/411/8RSELxDCO 频率选择控制 2BCSCTL2-基本时钟基本时钟控制寄存器控制寄存器 2SELMxMCLK 的选择控制位00DCOCLK01DCOCLK10LFXT1CLK 或者 VLOCLK11LFXT1CLK 或者 VLOCLKDIVMx设置 MCLK 的分频数00/101/210/411/8SELSSMCLK 的选择控制位0DCOCLK1LFXT1CLK 或者 VLOCLKDIVSx设置 SMCL

4、K 的分频数00/101/210/411/8DCORDCO 直流发生电阻选择,此位一般设 00内部电阻1外部电阻BCSCTL3-基本时钟基本时钟控制寄存器控制寄存器 3XT2Sx不用管LFXT1Sx00LFXT1 选为 32.768KHz 晶振01保留10VLOCLK11外部数字时钟源XCAPxLFXT1 晶振谐振电容选择001pF016pF1010pF1112.5pFmsp430g2553.h 中基本时钟系统的内容中基本时钟系统的内容/* Basic Clock Module*/#define _MSP430_HAS_BC2_/* Definition to show that Module

5、 isavailable */SFR_8BIT(DCOCTL);/* DCO Clock Frequency Control */SFR_8BIT(BCSCTL1);/* Basic Clock System Control 1 */SFR_8BIT(BCSCTL2);/* Basic Clock System Control 2 */SFR_8BIT(BCSCTL3);/* Basic Clock System Control 3 */#define MOD0(0 x01)/* Modulation Bit 0 */#define MOD1(0 x02)/* Modulation Bit 1

6、 */#define MOD2(0 x04)/* Modulation Bit 2 */#define MOD3(0 x08)/* Modulation Bit 3 */#define MOD4(0 x10)/* Modulation Bit 4 */#define DCO0(0 x20)/* DCO Select Bit 0 */#define DCO1(0 x40)/* DCO Select Bit 1 */#define DCO2(0 x80)/* DCO Select Bit 2 */#define RSEL0(0 x01)/* Range Select Bit 0 */#define

7、 RSEL1(0 x02)/* Range Select Bit 1 */#define RSEL2(0 x04)/* Range Select Bit 2 */#define RSEL3(0 x08)/* Range Select Bit 3 */#define DIVA0(0 x10)/* ACLK Divider 0 */#define DIVA1(0 x20)/* ACLK Divider 1 */#define XTS(0 x40)/* LFXTCLK 0:Low Freq. / 1: High Freq. */#define XT2OFF(0 x80)/* Enable XT2CL

8、K */#define DIVA_0(0 x00)/* ACLK Divider 0: /1 */#define DIVA_1(0 x10)/* ACLK Divider 1: /2 */#define DIVA_2(0 x20)/* ACLK Divider 2: /4 */#define DIVA_3(0 x30)/* ACLK Divider 3: /8 */#define DIVS0(0 x02)/* SMCLK Divider 0 */#define DIVS1(0 x04)/* SMCLK Divider 1 */#define SELS(0 x08)/* SMCLK Source

9、 Select 0:DCOCLK /1:XT2CLK/LFXTCLK */#define DIVM0(0 x10)/* MCLK Divider 0 */#define DIVM1(0 x20)/* MCLK Divider 1 */#define SELM0(0 x40)/* MCLK Source Select 0 */#define SELM1(0 x80)/* MCLK Source Select 1 */#define DIVS_0(0 x00)/* SMCLK Divider 0: /1 */#define DIVS_1(0 x02)/* SMCLK Divider 1: /2 *

10、/#define DIVS_2(0 x04)/* SMCLK Divider 2: /4 */#define DIVS_3(0 x06)/* SMCLK Divider 3: /8 */#define DIVM_0(0 x00)/* MCLK Divider 0: /1 */#define DIVM_1(0 x10)/* MCLK Divider 1: /2 */#define DIVM_2(0 x20)/* MCLK Divider 2: /4 */#define DIVM_3(0 x30)/* MCLK Divider 3: /8 */#define SELM_0(0 x00)/* MCL

11、K Source Select 0: DCOCLK */#define SELM_1(0 x40)/* MCLK Source Select 1: DCOCLK */#define SELM_2(0 x80)/* MCLK Source Select 2: XT2CLK/LFXTCLK*/#define SELM_3(0 xC0)/* MCLK Source Select 3: LFXTCLK */#define LFXT1OF(0 x01)/* Low/high Frequency Oscillator FaultFlag */#define XT2OF(0 x02)/* High freq

12、uency oscillator 2 fault flag*/#define XCAP0(0 x04)/* XIN/XOUT Cap 0 */#define XCAP1(0 x08)/* XIN/XOUT Cap 1 */#define LFXT1S0(0 x10)/* Mode 0 for LFXT1 (XTS = 0) */#define LFXT1S1(0 x20)/* Mode 1 for LFXT1 (XTS = 0) */#define XT2S0(0 x40)/* Mode 0 for XT2 */#define XT2S1(0 x80)/* Mode 1 for XT2 */#

13、define XCAP_0(0 x00)/* XIN/XOUT Cap : 0 pF */#define XCAP_1(0 x04)/* XIN/XOUT Cap : 6 pF */#define XCAP_2(0 x08)/* XIN/XOUT Cap : 10 pF */#define XCAP_3(0 x0C)/* XIN/XOUT Cap : 12.5 pF */#define LFXT1S_0(0 x00)/* Mode 0 for LFXT1 : Normal operation */#define LFXT1S_1(0 x10)/* Mode 1 for LFXT1 : Rese

14、rved */#define LFXT1S_2(0 x20)/* Mode 2 for LFXT1 : VLO */#define LFXT1S_3(0 x30)/* Mode 3 for LFXT1 : Digital input signal*/#define XT2S_0(0 x00)/* Mode 0 for XT2 : 0.4 - 1 MHz */#define XT2S_1(0 x40)/* Mode 1 for XT2 : 1 - 4 MHz */#define XT2S_2(0 x80)/* Mode 2 for XT2 : 2 - 16 MHz */#define XT2S_

15、3(0 xC0)/* Mode 3 for XT2 : Digital input signal*/基本时钟系统例程基本时钟系统例程(DCO)MSP430G2553 在上电之后默认 CPU 执行程序的时钟 MCLK 来自于 DCO 时钟。 TI 提供的 Launch Pad上,P1.0 和 P1.6 分别接了红色和绿色的 LED 灯,下面写一个程序让它们交替闪烁;之后我们来改变 DCO的频率,进而使软延时时间变化,可以看到 LED 闪烁间隔有变化。#include msp430g2553.hvoid main(void)WDTCTL = WDTPW + WDTHOLD;P1DIR |= BIT

16、0 + BIT6;while(1)P1OUT = BIT0 + BIT6;_delay_cycles(100000);这段程序采用 430 上电后默认的 DCO 频率, 假设是 1MHz 的话, 则延时 100000 个 DCO 提供的 MCLK大概是 0.1s 左右。下面一段程序, 将 DCOx 设置为 1, RSELx 设置为 1, 通过数据手册查得 DCO频率大概在0.060.14MHz之间,所以明显 MCLK 要慢得多了,因此 LED 闪烁时间延长。#include msp430g2553.hvoid main(void)WDTCTL = WDTPW + WDTHOLD;DCOCTL

17、|= DCO0;DCOCTL &=(DCO1 + DCO2);BCSCTL1 |= RSEL0;BCSCTL1 &= (RSEL1 + RSEL2 + RSEL3);P1DIR |= BIT0 + BIT6;while(1)P1OUT = BIT0 + BIT6;_delay_cycles(100000);MSP430G2553 的的 I/O 口口MSP430G2553 共有 2 组数字 I/O 口:P1 和 P2,每组各有 8 个引脚,每个引脚都能够响应中断,接受外部输入的上升沿或者下降中断请求。所有 I/O 口均与单片机内部外设的特殊功能引脚复用,当我们选用 I/O 功能时

18、,要作为通用 I/O 口来使用,这需要相应的寄存器来进行控制。I/O 头文件内容头文件内容/* DIGITAL I/O Port1/2 Pull up / Pull down Resistors*/#define _MSP430_HAS_PORT1_R_/* Definition to show that Module isavailable */#define _MSP430_HAS_PORT2_R_/* Definition to show that Module isavailable */SFR_8BIT(P1IN);/* Port 1 Input */SFR_8BIT(P1OUT);

19、/* Port 1 Output */SFR_8BIT(P1DIR);/* Port 1 Direction */SFR_8BIT(P1IFG);/* Port 1 Interrupt Flag */SFR_8BIT(P1IES);/* Port 1 Interrupt Edge Select */SFR_8BIT(P1IE);/* Port 1 Interrupt Enable */SFR_8BIT(P1SEL);/* Port 1 Selection */SFR_8BIT(P1SEL2);/* Port 1 Selection 2 */SFR_8BIT(P1REN);/* Port 1 R

20、esistor Enable */SFR_8BIT(P2IN);/* Port 2 Input */SFR_8BIT(P2OUT);/* Port 2 Output */SFR_8BIT(P2DIR);/* Port 2 Direction */SFR_8BIT(P2IFG);/* Port 2 Interrupt Flag */SFR_8BIT(P2IES);/* Port 2 Interrupt Edge Select */SFR_8BIT(P2IE);/* Port 2 Interrupt Enable */SFR_8BIT(P2SEL);/* Port 2 Selection */SF

21、R_8BIT(P2SEL2);/* Port 2 Selection 2 */SFR_8BIT(P2REN);/* Port 2 Resistor Enable */P1 口口P1.0、P1.1、P1.2P1.3P1.4P1.5、P1.6、P1.7P2.0、P2.1、P2.2、P2.3、P2.4、P2.5P2.6P2.7P1DIR 用来选择 I/O 口是输入还是输出,0 为输入,1 为输出。P1IN 为输入寄存器,外部的电平输入状态可从此寄存器相应的位读取。P1OUT 为输出寄存器,向外输出的电平状态可从此寄存器送出。P1SEL 和 P1SEL2 为引脚功能选择。MSP430G2553 的的

22、Timer_ATimer_A 的工作原理的工作原理MSP430G2553 内部有两个 Timer_A 模块,分别是 Timer0_A3 和 Timer1_A3。 “3”表示每个 Timer_A模块有 3 组“捕获/比较”寄存器。Timer_A 的主要特性包括:(1) 具有 16 位定时/计数功能,3 种计数模式可选(2) 16 位定时计数器时钟源可选(3) 可在 CPU 不介入的情况下,产生 PWM 波(4) 计数器溢出可产生中断Timer_A 又两部分组成:主计数器和比较捕获模块。其中主计数器如下图。TAR 为 16 主计数器的当前计数值, 可对 TAR 赋初值。 主计数器计数时钟有 4 种

23、来源, 通过 TASSELx来进行选择。IDx 可对输入时钟进行分频,TACLR 为主计数器的清零控制位,MCx 用来选择主计数器的4 种计数模式,TAIFG 为主计数器中断标志位。TASSELx:00=外部管脚时钟输入01=ACLK10=SMCLK11=TACLK 取反IDx:00=不分频01=2 分频10=4 分频11=8 分频TACLR:0=不清零1=清零Timer_A 一共有三种计数模式,分别是:增计数、连续增计数和增减计数。增计数模式下,每个时钟周期计数值 TAR 加 1,当 TAR 值超过 TACCR0 时,TAR 自动清零,并且置位 TAIFG 标志位。而后 TAR 从 0 值重

24、新开始加 1。改变 TACCR0 的值即可改变定时周期。连续增计数模式下,TAR 从零加 1,加到溢出值 0 xFFFF 为止,之后自动归零重新开始。通常我们利用该计数模式进行信号的捕捉,利用 TACCRx 寄存器存储捕获发生的时刻。增减计数模式下,TAR 的值从零加到 TACRR0,而后再减到零,如此循环。通常我们利用该计数模式产生对称、可加死区延时的 PWM 波。Timer_A 的另一重要组成部分,是捕获/比较模块,每个 Timer_A 均有 3 个捕获/比较模块,它的作用主要有两方面。一是在比较模式下,每个捕获/比较模块都拿自身捕获/比较寄存器 TACCRx 的值与主计数器 TAR 的值

25、比较,一旦相等,就自动的改变某个引脚的输出电平,一共有 8 种电平变化规律可选,这样可以在无 CPU 干预的情况下产生 PWM 波; 二是在捕获模式下, 从某个指定引脚的输入电平跳变可以触发捕获电路,并将此时主计数器的数值自动保存到相应的捕获值寄存器 TACCRx 中,这个过程纯硬件实现,无 CPU 干预,可以用来测量频率、占空比等。捕获/比较模块结构图如下:CAP 用来切换选择捕获/比较工作模式;CCISx 选择捕获输入源;CMx 选择捕获触发沿状态,COV为捕获溢出标志位,如果前一次的捕获值未被读取而新的捕获已经产生,则溢出标志位会置位;捕获引脚的电平状态可以实时的通过 CCI 读出;由于

26、捕获信号可能与时钟信号不同步,从而产生数字电路竞争,我们可以置位 SCS 进行同步捕获,假设实际信号的发生时刻值为 N,那么同步捕捉到的值将为 N+1,建议均采用同步捕捉。在比较模式下,我们可以通过程序填写 TACCRx 的值,硬件会自动的将该值与 TAR 的值进行比较,一旦相等,即产生 EQU 信号,则通过输出引脚产生电平变化,其中 OUTMODEx 可以选择电平变化的 8种方式,这样就可以产生不同种类的 PWM 波。OUT 可以控制引脚的输出电平(高、低的选择)。已 Timer0_A3 为例,其捕获/比较引脚均与 I/O 口复用,具体复用引脚参加数据手册。在比较输出模式 0 下,输出引脚的

27、状态由 OUT 位控制。其余 7 种模式下,引脚电平的变化如下图:增计数模式下连续增计数模式下增减计数模式下Timer_A 头文件内容头文件内容/* Timer0_A3*/#define _MSP430_HAS_TA3_/* Definition to show that Module isavailable */SFR_16BIT(TA0IV);/* Timer0_A3 Interrupt Vector Word */SFR_16BIT(TA0CTL);/* Timer0_A3 Control */SFR_16BIT(TA0CCTL0);/* Timer0_A3 Capture/Compar

28、e Control 0 */SFR_16BIT(TA0CCTL1);/* Timer0_A3 Capture/Compare Control 1 */SFR_16BIT(TA0CCTL2);/* Timer0_A3 Capture/Compare Control 2 */SFR_16BIT(TA0R);/* Timer0_A3 */SFR_16BIT(TA0CCR0);/* Timer0_A3 Capture/Compare 0 */SFR_16BIT(TA0CCR1);/* Timer0_A3 Capture/Compare 1 */SFR_16BIT(TA0CCR2);/* Timer0_

29、A3 Capture/Compare 2 */* Alternate register names */#define TAIVTA0IV/* Timer A Interrupt Vector Word */#define TACTLTA0CTL/* Timer A Control */#define TACCTL0TA0CCTL0/* Timer A Capture/Compare Control 0 */#define TACCTL1TA0CCTL1/* Timer A Capture/Compare Control 1 */#define TACCTL2TA0CCTL2/* Timer

30、A Capture/Compare Control 2 */#define TARTA0R/* Timer A */#define TACCR0TA0CCR0/* Timer A Capture/Compare 0 */#define TACCR1TA0CCR1/* Timer A Capture/Compare 1 */#define TACCR2TA0CCR2/* Timer A Capture/Compare 2 */#define TAIV_TA0IV_/* Timer A Interrupt Vector Word */#define TACTL_TA0CTL_/* Timer A

31、Control */#define TACCTL0_TA0CCTL0_/* Timer A Capture/Compare Control 0 */#define TACCTL1_TA0CCTL1_/* Timer A Capture/Compare Control 1 */#define TACCTL2_TA0CCTL2_/* Timer A Capture/Compare Control 2 */#define TAR_TA0R_/* Timer A */#define TACCR0_TA0CCR0_/* Timer A Capture/Compare 0 */#define TACCR1

32、_TA0CCR1_/* Timer A Capture/Compare 1 */#define TACCR2_TA0CCR2_/* Timer A Capture/Compare 2 */* Alternate register names 2 */#define CCTL0TACCTL0/* Timer A Capture/Compare Control 0 */#define CCTL1TACCTL1/* Timer A Capture/Compare Control 1 */#define CCTL2TACCTL2/* Timer A Capture/Compare Control 2

33、*/#define CCR0TACCR0/* Timer A Capture/Compare 0 */#define CCR1TACCR1/* Timer A Capture/Compare 1 */#define CCR2TACCR2/* Timer A Capture/Compare 2 */#define CCTL0_TACCTL0_/* Timer A Capture/Compare Control 0 */#define CCTL1_TACCTL1_/* Timer A Capture/Compare Control 1 */#define CCTL2_TACCTL2_/* Time

34、r A Capture/Compare Control 2 */#define CCR0_TACCR0_/* Timer A Capture/Compare 0 */#define CCR1_TACCR1_/* Timer A Capture/Compare 1 */#define CCR2_TACCR2_/* Timer A Capture/Compare 2 */#define TASSEL1(0 x0200)/* Timer A clock source select 1 */#define TASSEL0(0 x0100)/* Timer A clock source select 0

35、 */#define ID1(0 x0080)/* Timer A clock input divider 1 */#define ID0(0 x0040)/* Timer A clock input divider 0 */#define MC1(0 x0020)/* Timer A mode control 1 */#define MC0(0 x0010)/* Timer A mode control 0 */#define TACLR(0 x0004)/* Timer A counter clear */#define TAIE(0 x0002)/* Timer A counter in

36、terrupt enable */#define TAIFG(0 x0001)/* Timer A counter interrupt flag */#define MC_0(0*0 x10u)/* Timer A mode control: 0 - Stop */#define MC_1(1*0 x10u)/* Timer A mode control: 1 - Up to CCR0*/#define MC_2(2*0 x10u)/* Timer A mode control: 2 - Continous up*/#define MC_3(3*0 x10u)/* Timer A mode c

37、ontrol: 3 - Up/Down */#define ID_0(0*0 x40u)/* Timer A input divider: 0 - /1 */#define ID_1(1*0 x40u)/* Timer A input divider: 1 - /2 */#define ID_2(2*0 x40u)/* Timer A input divider: 2 - /4 */#define ID_3(3*0 x40u)/* Timer A input divider: 3 - /8 */#define TASSEL_0(0*0 x100u)/* Timer A clock source

38、 select: 0 - TACLK*/#define TASSEL_1(1*0 x100u)/* Timer A clock source select: 1 - ACLK*/#define TASSEL_2(2*0 x100u)/* Timer A clock source select: 2 - SMCLK*/#define TASSEL_3(3*0 x100u)/* Timer A clock source select: 3 - INCLK*/#define CM1(0 x8000)/* Capture mode 1 */#define CM0(0 x4000)/* Capture

39、mode 0 */#define CCIS1(0 x2000)/* Capture input select 1 */#define CCIS0(0 x1000)/* Capture input select 0 */#define SCS(0 x0800)/* Capture sychronize */#define SCCI(0 x0400)/* Latched capture signal (read) */#define CAP(0 x0100)/* Capture mode: 1 /Compare mode : 0 */#define OUTMOD2(0 x0080)/* Outpu

40、t mode 2 */#define OUTMOD1(0 x0040)/* Output mode 1 */#define OUTMOD0(0 x0020)/* Output mode 0 */#define CCIE(0 x0010)/* Capture/compare interrupt enable */#define CCI(0 x0008)/* Capture input signal (read) */#define OUT(0 x0004)/* PWM Output signal if output mode 0 */#define COV(0 x0002)/* Capture/

41、compare overflow flag */#define CCIFG(0 x0001)/* Capture/compare interrupt flag */#define OUTMOD_0(0*0 x20u)/* PWM output mode: 0 - output only */#define OUTMOD_1(1*0 x20u)/* PWM output mode: 1 - set */#define OUTMOD_2(2*0 x20u)/* PWM output mode: 2 - PWM toggle/reset*/#define OUTMOD_3(3*0 x20u)/* P

42、WM output mode: 3 - PWM set/reset */#define OUTMOD_4(4*0 x20u)/* PWM output mode: 4 - toggle */#define OUTMOD_5(5*0 x20u)/* PWM output mode: 5 - Reset */#define OUTMOD_6(6*0 x20u)/* PWM output mode: 6 - PWM toggle/set*/#define OUTMOD_7(7*0 x20u)/* PWM output mode: 7 - PWM reset/set */#define CCIS_0(

43、0*0 x1000u)/* Capture input select: 0 - CCIxA */#define CCIS_1(1*0 x1000u)/* Capture input select: 1 - CCIxB */#define CCIS_2(2*0 x1000u)/* Capture input select: 2 - GND */#define CCIS_3(3*0 x1000u)/* Capture input select: 3 - Vcc */#define CM_0(0*0 x4000u)/* Capture mode: 0 - disabled */#define CM_

44、1(1*0 x4000u)/* Capture mode: 1 - pos. edge */#define CM_2(2*0 x4000u)/* Capture mode: 1 - neg. edge */#define CM_3(3*0 x4000u)/* Capture mode: 1 - both edges */* T0_A3IV Definitions */#define TA0IV_NONE(0 x0000)/* No Interrupt pending */#define TA0IV_TACCR1(0 x0002)/* TA0CCR1_CCIFG */#define TA0IV_

45、TACCR2(0 x0004)/* TA0CCR2_CCIFG */#define TA0IV_6(0 x0006)/* Reserved */#define TA0IV_8(0 x0008)/* Reserved */#define TA0IV_TAIFG(0 x000A)/* TA0IFG */* Timer1_A3*/#define _MSP430_HAS_T1A3_/* Definition to show that Module isavailable */SFR_16BIT(TA1IV);/* Timer1_A3 Interrupt Vector Word */SFR_16BIT(

46、TA1CTL);/* Timer1_A3 Control */SFR_16BIT(TA1CCTL0);/* Timer1_A3 Capture/Compare Control 0 */SFR_16BIT(TA1CCTL1);/* Timer1_A3 Capture/Compare Control 1 */SFR_16BIT(TA1CCTL2);/* Timer1_A3 Capture/Compare Control 2 */SFR_16BIT(TA1R);/* Timer1_A3 */SFR_16BIT(TA1CCR0);/* Timer1_A3 Capture/Compare 0 */SFR

47、_16BIT(TA1CCR1);/* Timer1_A3 Capture/Compare 1 */SFR_16BIT(TA1CCR2);/* Timer1_A3 Capture/Compare 2 */* Bits are already defined within the Timer0_Ax */* T1_A3IV Definitions */#define TA1IV_NONE(0 x0000)/* No Interrupt pending */#define TA1IV_TACCR1(0 x0002)/* TA1CCR1_CCIFG */#define TA1IV_TACCR2(0 x

48、0004)/* TA1CCR2_CCIFG */#define TA1IV_TAIFG(0 x000A)/* TA1IFG */Timer0_A 寄存器寄存器TA0CTL-Timer0_A 控制寄存器控制寄存器TASSELx主计数器时钟源选择01ACLKTASSEL_1IDx时钟输入的分频控制00/1ID_001/2ID_110/4ID_211/8ID_3MCx计数模式选择00停止模式MC_001UpMC_110ContinuousMC_211Up/DownMC_3TACLRTACLR清零控制TAIETAIETAIFG 中断使能控制0禁止1使能TAIFGTAIFGTAIFG 中断标志TA0R-

49、主计数器计数寄存器主计数器计数寄存器TA0CCRx-捕获捕获/比较寄存器比较寄存器TA0CCTLx-捕获捕获/比较控制寄存器比较控制寄存器CMx捕获模式控制00不进行捕获操作MC_001捕获上升沿MC_110捕获下降沿MC_211上升沿和下降沿同时捕获MC_3CCISx捕获引脚选择00CCIxACCIS_001CCIxBCCIS_110GNDCCIS_211VCCCCIS_3SCSSCS同步/异步捕获选择控制0异步捕获1同步捕获(建议)CAPCAP捕获/比较模式选择0比较模式1捕获模式OUMODx比较输出模式选择000电平输出模式:TAx 引脚的输出由 OUT 控制位的值决定OUTMOD_00

50、01置位模式:当主计数器计数至 TACCRx 值时,TAx 引脚置 1OUTMOD_1010取反/清零模式: 当主计数器计数至 TACCRx 值时, TAx 引脚取反, 当主计数器计数至 TACCR0值时,TAx 引脚置 0OUTMOD_2011置位清零模式: 当主计数器计数至 TACCRx 值时, TAx 引脚置 1, 当主计数器计数至 TACCR0值时,TAx 引脚置 0OUTMOD_3100取反模式:当主计数器计数至 TACCRx 值时,TAx 引脚取反OUTMOD_4101清零模式:当主计数器计数至 TACCRx 值时,TAx 引脚置 0OUTMOD_5110取反置位模式: 当主计数器

51、计数至 TACCRx 值时, TAx 引脚取反, 当主计数器计数至 TACCR0值时,TAx 引脚置 1OUTMOD_6111清零置位模式: 当主计数器计数至 TACCRx 值时, TAx 引脚置 0, 当主计数器计数至 TACCR0值时,TAx 引脚置 1OUTMOD_7COVCOV捕获溢出标志位CCIFGCCIFG捕获/比较中断标志位TA0IV-中断向量寄存器中断向量寄存器MSP430G2553 的的 ADC10ADC10 简介简介ADC10 是一个 10 位 AD 转换器,转换速度快。它包含一个 10 位的转换内核 SAR、采样选择控制、参考电压输出、数字量传输控制 DTC 等模块。DT

52、C 可以将数字量转换结果存储到任何一个内存单元内,这不需要 CPU 来干预。MSP430G2553 的 ADC10 具有如下特点:200ksps 最大转换速率;可编程设置采样/保持时间;可以通过软件或者 Timer_A 触发转换;可选内部参考电压,1.5V 或者 2.5V;8 路模拟输入通道;内部转换通道自带温度传感器;可选的转换时钟源;单通道、重复单通道、序列采样、重复序列采样模式;10 位转换核心位转换核心转换核心将输入的模拟信号转换成 10 位数字量,将转换结果存储在 ADC10MEM 寄存器中。VR+和VR-定义了模拟输入电压的上限和下限。当模拟输入电压大于 VR+时,转换结果为 03

53、FFh,当模拟输入电压小于 VR-时,转换结果为 0。转换结果按下式计算:转换核心由两个控制寄存器来进行设置:ADC10CTL0、ADC10CTL1。转换核心通过 ADC10ON 来使能工作。 只有当 ENC=0 时, ADC10CTL0、 ADC10CTL1 的位才允许被改写; 若要转换开始, 必须将 ENC=1。转换时钟转换时钟ADC10 模块的时钟称为 ADC10CLK,转换时间和采样周期与之相关。ADC10 的时钟源可以通过ADC10SSELx 来进行选择,并通过 ADC10DIVx 选择分频。ADC10 的时钟源有:ACLK、SMCLK、MCLK和 ADC10OSC。输入多路选择器输

54、入多路选择器8 路外部模拟输入和 4 路内部模拟输入可被选中为转换输入。ADC10 的外部输入包括:Ax、VeREF+、VREF-,这些端口与 I/O 口复用。2553 的 I/O 口为数字 CMOS门电路,当模拟信号加在数字 CMOS 门时,VCC 与 GND 之间会有寄生电流,禁用 I/O 缓冲器可以消除寄生电流以此降低功耗。ADC10AEx 可以选择控制禁用 I/O 缓冲器。参考电压产生参考电压产生ADC10 内部自带参考电压模块, 提供两种可选的参考电压。 REFON=1, 使能内部参考源; REF2_5=1,内部参考电压为 2.5V;REF2_5=0,内部参考电压为 1.5V。当 R

55、EFOUT=0 时,内部参考电压只留给芯片内部使用,当 REFOUT=1 时,可以将内部参考电压通过 VREF+引脚输出。外部参考电压通过 VR+和 VR-两个引脚输入。 当采用外部参考电压或者 VCC作为参考电压时, 内部参考电压关闭,以降低功耗。ADC10 的内部参考电压发生模块具有低功耗功能。内部参考电压模块由两部分组成,分别是:带隙基准电压源和独立缓冲器。当 REFON=1 时,两部分同时开启;当 REFON=0 时,两部分同时关闭。采样和转换时间采样和转换时间AD 采样可以由一个上升沿信号 SHI 触发,SHI 信号可以为如下几种:置位 ADC10SC;Timer_A 的输出单元 0

56、、1、2;SHI 信号的极性可以由 ISSH 位选择。 SHT 可以将采样周期 tsample设置为 4、 8、 16 或 64 个 ADC10CLK时钟周期。 SAPMCON 为可以将采样周期设置与 ADC10CLK 同步。 一个完整的采样周期包括 tsample和 tsync。SAMPCON 有高向低变化,将启动模拟-数字转换过程,一次转换需要 13 个连续的 ADC10CLK 时钟周期长度。当 SAMPCON=0 时,所有的模拟输入引脚 Ax 都为高阻状态;当 SAMPON=1 时,Ax 输入端在 tsample时间内可以看成 RC 网络构成的低通滤波器。(我们把采样时间设置为最大来用)

57、转换模式转换模式CONSEQx 用来选择转换模式。Single-Channel Single-Conversion Mode使用 INCHx 位来选择一路模拟输入通道进行采样转换。AD 转换的结果写入 ADC10MEM 寄存器。Sequence-of-Channels Mode使用 INCHx 位来选择一个序列的模拟输入通道进行采样转换,直至降序转换至 A0 通道结束。每一个转换结果都被写入 ADC10MEM 寄存器。A0 通道转换完成后,整个序列转换结束。若 MSC=0,需要每次触发采样转换;若 MSC=1,自动序列转换。Repeat-Single-Channel ModeRepeat-Se

58、quence-of-Channels ModeADC10 的头文件定义的头文件定义/* ADC10*/#define _MSP430_HAS_ADC10_/* Definition to show that Module isavailable */SFR_8BIT(ADC10DTC0);/* ADC10 Data Transfer Control 0 */SFR_8BIT(ADC10DTC1);/* ADC10 Data Transfer Control 1 */SFR_8BIT(ADC10AE0);/* ADC10 Analog Enable 0 */SFR_16BIT(ADC10CTL0

59、);/* ADC10 Control 0 */SFR_16BIT(ADC10CTL1);/* ADC10 Control 1 */SFR_16BIT(ADC10MEM);/* ADC10 Memory */SFR_16BIT(ADC10SA);/* ADC10 Data Transfer Start Address */* ADC10CTL0 */#define ADC10SC(0 x001)/* ADC10 Start Conversion */#define ENC(0 x002)/* ADC10 Enable Conversion */#define ADC10IFG(0 x004)/*

60、 ADC10 Interrupt Flag */#define ADC10IE(0 x008)/* ADC10 Interrupt Enalbe */#define ADC10ON(0 x010)/* ADC10 On/Enable */#define REFON(0 x020)/* ADC10 Reference on */#define REF2_5V(0 x040)/* ADC10 Ref 0:1.5V / 1:2.5V */#define MSC(0 x080)/* ADC10 Multiple SampleConversion */#define REFBURST(0 x100)/* ADC10 R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论