MSP430G2553學(xué)習(xí)筆記數(shù)據(jù)手冊_第1頁
MSP430G2553學(xué)習(xí)筆記數(shù)據(jù)手冊_第2頁
MSP430G2553學(xué)習(xí)筆記數(shù)據(jù)手冊_第3頁
MSP430G2553學(xué)習(xí)筆記數(shù)據(jù)手冊_第4頁
MSP430G2553學(xué)習(xí)筆記數(shù)據(jù)手冊_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、MSP430G2553 學(xué)習(xí)筆記學(xué)習(xí)筆記(數(shù)據(jù)手冊)(數(shù)據(jù)手冊)MSP430G2553 性能參數(shù)性能參數(shù)(DIP-20)工作電壓范圍:1.83.6V。5 種低功耗模式。16 位的 RISC 結(jié)構(gòu),62.5ns 指令周期。超低功耗:運(yùn)行模式-230A;待機(jī)模式-0.5A;關(guān)閉模式-0.1A;可以在不到 1s 的時間里超快速地從待機(jī)模式喚醒?;緯r鐘模塊配置:具有四種校準(zhǔn)頻率并高達(dá) 16MHz 的內(nèi)部頻率;內(nèi)部超低功耗 LF 振蕩器;32.768KHz 晶體;外部數(shù)字時鐘源。兩個 16 位 Timer_A,分別具有三個捕獲/比較寄存器。用于模擬信號比較功能或者斜率模數(shù)(A/D)轉(zhuǎn)換的片載比較器。帶

2、內(nèi)部基準(zhǔn)、采樣與保持以及自動掃描功能的 10 位 200-ksps 模數(shù)(A/D)轉(zhuǎn)換器。16KB 閃存,512B 的 RAM。16 個 I/O 口。注意:注意:MSP430G2553 無無 P3 口!口!MSP430G2553 的時鐘的時鐘基本時鐘系統(tǒng)的寄存器基本時鐘系統(tǒng)的寄存器DCOCTL-DCO 控制寄存器控制寄存器DCOxDCO 頻率選擇控制 1MODxDCO 頻率校正選擇,通常令 MODx=0注意:在 MSP430G2553 上電復(fù)位后,默認(rèn) RSEL=7,DCO=3,通過數(shù)據(jù)手冊查得 DCO 頻率大概在0.81.5MHz 之間。BCSCTL1-基本時鐘基本時鐘控制寄存器控制寄存器

3、1XT2OFF不用管,因?yàn)?MSP430G2553 內(nèi)部沒有 XT2 提供的 HF 時鐘XTS不用管,默認(rèn)復(fù)位后的 0 值即可DIVAx設(shè)置 ACLK 的分頻數(shù)00/101/210/411/8RSELxDCO 頻率選擇控制 2BCSCTL2-基本時鐘基本時鐘控制寄存器控制寄存器 2SELMxMCLK 的選擇控制位00DCOCLK01DCOCLK10LFXT1CLK 或者 VLOCLK11LFXT1CLK 或者 VLOCLKDIVMx設(shè)置 MCLK 的分頻數(shù)00/101/210/411/8SELSSMCLK 的選擇控制位0DCOCLK1LFXT1CLK 或者 VLOCLKDIVSx設(shè)置 SMCL

4、K 的分頻數(shù)00/101/210/411/8DCORDCO 直流發(fā)生電阻選擇,此位一般設(shè) 00內(nèi)部電阻1外部電阻BCSCTL3-基本時鐘基本時鐘控制寄存器控制寄存器 3XT2Sx不用管LFXT1Sx00LFXT1 選為 32.768KHz 晶振01保留10VLOCLK11外部數(shù)字時鐘源XCAPxLFXT1 晶振諧振電容選擇001pF016pF1010pF1112.5pFmsp430g2553.h 中基本時鐘系統(tǒng)的內(nèi)容中基本時鐘系統(tǒng)的內(nèi)容/* 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*/基本時鐘系統(tǒng)例程基本時鐘系統(tǒng)例程(DCO)MSP430G2553 在上電之后默認(rèn) CPU 執(zhí)行程序的時鐘 MCLK 來自于 DCO 時鐘。 TI 提供的 Launch Pad上,P1.0 和 P1.6 分別接了紅色和綠色的 LED 燈,下面寫一個程序讓它們交替閃爍;之后我們來改變 DCO的頻率,進(jìn)而使軟延時時間變化,可以看到 LED 閃爍間隔有變化。#include msp430g2553.hvoid main(void)WDTCTL = WDTPW + WDTHOLD;P1DIR |= BIT

16、0 + BIT6;while(1)P1OUT = BIT0 + BIT6;_delay_cycles(100000);這段程序采用 430 上電后默認(rèn)的 DCO 頻率, 假設(shè)是 1MHz 的話, 則延時 100000 個 DCO 提供的 MCLK大概是 0.1s 左右。下面一段程序, 將 DCOx 設(shè)置為 1, RSELx 設(shè)置為 1, 通過數(shù)據(jù)手冊查得 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 組數(shù)字 I/O 口:P1 和 P2,每組各有 8 個引腳,每個引腳都能夠響應(yīng)中斷,接受外部輸入的上升沿或者下降中斷請求。所有 I/O 口均與單片機(jī)內(nèi)部外設(shè)的特殊功能引腳復(fù)用,當(dāng)我們選用 I/O 功能時

18、,要作為通用 I/O 口來使用,這需要相應(yīng)的寄存器來進(jìn)行控制。I/O 頭文件內(nèi)容頭文件內(nèi)容/* 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 為輸入寄存器,外部的電平輸入狀態(tài)可從此寄存器相應(yīng)的位讀取。P1OUT 為輸出寄存器,向外輸出的電平狀態(tài)可從此寄存器送出。P1SEL 和 P1SEL2 為引腳功能選擇。MSP430G2553 的的

22、Timer_ATimer_A 的工作原理的工作原理MSP430G2553 內(nèi)部有兩個 Timer_A 模塊,分別是 Timer0_A3 和 Timer1_A3。 “3”表示每個 Timer_A模塊有 3 組“捕獲/比較”寄存器。Timer_A 的主要特性包括:(1) 具有 16 位定時/計(jì)數(shù)功能,3 種計(jì)數(shù)模式可選(2) 16 位定時計(jì)數(shù)器時鐘源可選(3) 可在 CPU 不介入的情況下,產(chǎn)生 PWM 波(4) 計(jì)數(shù)器溢出可產(chǎn)生中斷Timer_A 又兩部分組成:主計(jì)數(shù)器和比較捕獲模塊。其中主計(jì)數(shù)器如下圖。TAR 為 16 主計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值, 可對 TAR 賦初值。 主計(jì)數(shù)器計(jì)數(shù)時鐘有 4 種

23、來源, 通過 TASSELx來進(jìn)行選擇。IDx 可對輸入時鐘進(jìn)行分頻,TACLR 為主計(jì)數(shù)器的清零控制位,MCx 用來選擇主計(jì)數(shù)器的4 種計(jì)數(shù)模式,TAIFG 為主計(jì)數(shù)器中斷標(biāo)志位。TASSELx:00=外部管腳時鐘輸入01=ACLK10=SMCLK11=TACLK 取反IDx:00=不分頻01=2 分頻10=4 分頻11=8 分頻TACLR:0=不清零1=清零Timer_A 一共有三種計(jì)數(shù)模式,分別是:增計(jì)數(shù)、連續(xù)增計(jì)數(shù)和增減計(jì)數(shù)。增計(jì)數(shù)模式下,每個時鐘周期計(jì)數(shù)值 TAR 加 1,當(dāng) TAR 值超過 TACCR0 時,TAR 自動清零,并且置位 TAIFG 標(biāo)志位。而后 TAR 從 0 值重

24、新開始加 1。改變 TACCR0 的值即可改變定時周期。連續(xù)增計(jì)數(shù)模式下,TAR 從零加 1,加到溢出值 0 xFFFF 為止,之后自動歸零重新開始。通常我們利用該計(jì)數(shù)模式進(jìn)行信號的捕捉,利用 TACCRx 寄存器存儲捕獲發(fā)生的時刻。增減計(jì)數(shù)模式下,TAR 的值從零加到 TACRR0,而后再減到零,如此循環(huán)。通常我們利用該計(jì)數(shù)模式產(chǎn)生對稱、可加死區(qū)延時的 PWM 波。Timer_A 的另一重要組成部分,是捕獲/比較模塊,每個 Timer_A 均有 3 個捕獲/比較模塊,它的作用主要有兩方面。一是在比較模式下,每個捕獲/比較模塊都拿自身捕獲/比較寄存器 TACCRx 的值與主計(jì)數(shù)器 TAR 的值

25、比較,一旦相等,就自動的改變某個引腳的輸出電平,一共有 8 種電平變化規(guī)律可選,這樣可以在無 CPU 干預(yù)的情況下產(chǎn)生 PWM 波; 二是在捕獲模式下, 從某個指定引腳的輸入電平跳變可以觸發(fā)捕獲電路,并將此時主計(jì)數(shù)器的數(shù)值自動保存到相應(yīng)的捕獲值寄存器 TACCRx 中,這個過程純硬件實(shí)現(xiàn),無 CPU 干預(yù),可以用來測量頻率、占空比等。捕獲/比較模塊結(jié)構(gòu)圖如下:CAP 用來切換選擇捕獲/比較工作模式;CCISx 選擇捕獲輸入源;CMx 選擇捕獲觸發(fā)沿狀態(tài),COV為捕獲溢出標(biāo)志位,如果前一次的捕獲值未被讀取而新的捕獲已經(jīng)產(chǎn)生,則溢出標(biāo)志位會置位;捕獲引腳的電平狀態(tài)可以實(shí)時的通過 CCI 讀出;由于

26、捕獲信號可能與時鐘信號不同步,從而產(chǎn)生數(shù)字電路競爭,我們可以置位 SCS 進(jìn)行同步捕獲,假設(shè)實(shí)際信號的發(fā)生時刻值為 N,那么同步捕捉到的值將為 N+1,建議均采用同步捕捉。在比較模式下,我們可以通過程序填寫 TACCRx 的值,硬件會自動的將該值與 TAR 的值進(jìn)行比較,一旦相等,即產(chǎn)生 EQU 信號,則通過輸出引腳產(chǎn)生電平變化,其中 OUTMODEx 可以選擇電平變化的 8種方式,這樣就可以產(chǎn)生不同種類的 PWM 波。OUT 可以控制引腳的輸出電平(高、低的選擇)。已 Timer0_A3 為例,其捕獲/比較引腳均與 I/O 口復(fù)用,具體復(fù)用引腳參加數(shù)據(jù)手冊。在比較輸出模式 0 下,輸出引腳的

27、狀態(tài)由 OUT 位控制。其余 7 種模式下,引腳電平的變化如下圖:增計(jì)數(shù)模式下連續(xù)增計(jì)數(shù)模式下增減計(jì)數(shù)模式下Timer_A 頭文件內(nèi)容頭文件內(nèi)容/* 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主計(jì)數(shù)器時鐘源選擇01ACLKTASSEL_1IDx時鐘輸入的分頻控制00/1ID_001/2ID_110/4ID_211/8ID_3MCx計(jì)數(shù)模式選擇00停止模式MC_001UpMC_110ContinuousMC_211Up/DownMC_3TACLRTACLR清零控制TAIETAIETAIFG 中斷使能控制0禁止1使能TAIFGTAIFGTAIFG 中斷標(biāo)志TA0R-

49、主計(jì)數(shù)器計(jì)數(shù)寄存器主計(jì)數(shù)器計(jì)數(shù)寄存器TA0CCRx-捕獲捕獲/比較寄存器比較寄存器TA0CCTLx-捕獲捕獲/比較控制寄存器比較控制寄存器CMx捕獲模式控制00不進(jìn)行捕獲操作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置位模式:當(dāng)主計(jì)數(shù)器計(jì)數(shù)至 TACCRx 值時,TAx 引腳置 1OUTMOD_1010取反/清零模式: 當(dāng)主計(jì)數(shù)器計(jì)數(shù)至 TACCRx 值時, TAx 引腳取反, 當(dāng)主計(jì)數(shù)器計(jì)數(shù)至 TACCR0值時,TAx 引腳置 0OUTMOD_2011置位清零模式: 當(dāng)主計(jì)數(shù)器計(jì)數(shù)至 TACCRx 值時, TAx 引腳置 1, 當(dāng)主計(jì)數(shù)器計(jì)數(shù)至 TACCR0值時,TAx 引腳置 0OUTMOD_3100取反模式:當(dāng)主計(jì)數(shù)器計(jì)數(shù)至 TACCRx 值時,TAx 引腳取反OUTMOD_4101清零模式:當(dāng)主計(jì)數(shù)器計(jì)數(shù)至 TACCRx 值時,TAx 引腳置 0OUTMOD_5110取反置位模式: 當(dāng)主計(jì)數(shù)器

51、計(jì)數(shù)至 TACCRx 值時, TAx 引腳取反, 當(dāng)主計(jì)數(shù)器計(jì)數(shù)至 TACCR0值時,TAx 引腳置 1OUTMOD_6111清零置位模式: 當(dāng)主計(jì)數(shù)器計(jì)數(shù)至 TACCRx 值時, TAx 引腳置 0, 當(dāng)主計(jì)數(shù)器計(jì)數(shù)至 TACCR0值時,TAx 引腳置 1OUTMOD_7COVCOV捕獲溢出標(biāo)志位CCIFGCCIFG捕獲/比較中斷標(biāo)志位TA0IV-中斷向量寄存器中斷向量寄存器MSP430G2553 的的 ADC10ADC10 簡介簡介ADC10 是一個 10 位 AD 轉(zhuǎn)換器,轉(zhuǎn)換速度快。它包含一個 10 位的轉(zhuǎn)換內(nèi)核 SAR、采樣選擇控制、參考電壓輸出、數(shù)字量傳輸控制 DTC 等模塊。DT

52、C 可以將數(shù)字量轉(zhuǎn)換結(jié)果存儲到任何一個內(nèi)存單元內(nèi),這不需要 CPU 來干預(yù)。MSP430G2553 的 ADC10 具有如下特點(diǎn):200ksps 最大轉(zhuǎn)換速率;可編程設(shè)置采樣/保持時間;可以通過軟件或者 Timer_A 觸發(fā)轉(zhuǎn)換;可選內(nèi)部參考電壓,1.5V 或者 2.5V;8 路模擬輸入通道;內(nèi)部轉(zhuǎn)換通道自帶溫度傳感器;可選的轉(zhuǎn)換時鐘源;單通道、重復(fù)單通道、序列采樣、重復(fù)序列采樣模式;10 位轉(zhuǎn)換核心位轉(zhuǎn)換核心轉(zhuǎn)換核心將輸入的模擬信號轉(zhuǎn)換成 10 位數(shù)字量,將轉(zhuǎn)換結(jié)果存儲在 ADC10MEM 寄存器中。VR+和VR-定義了模擬輸入電壓的上限和下限。當(dāng)模擬輸入電壓大于 VR+時,轉(zhuǎn)換結(jié)果為 03

53、FFh,當(dāng)模擬輸入電壓小于 VR-時,轉(zhuǎn)換結(jié)果為 0。轉(zhuǎn)換結(jié)果按下式計(jì)算:轉(zhuǎn)換核心由兩個控制寄存器來進(jìn)行設(shè)置:ADC10CTL0、ADC10CTL1。轉(zhuǎn)換核心通過 ADC10ON 來使能工作。 只有當(dāng) ENC=0 時, ADC10CTL0、 ADC10CTL1 的位才允許被改寫; 若要轉(zhuǎn)換開始, 必須將 ENC=1。轉(zhuǎn)換時鐘轉(zhuǎn)換時鐘ADC10 模塊的時鐘稱為 ADC10CLK,轉(zhuǎn)換時間和采樣周期與之相關(guān)。ADC10 的時鐘源可以通過ADC10SSELx 來進(jìn)行選擇,并通過 ADC10DIVx 選擇分頻。ADC10 的時鐘源有:ACLK、SMCLK、MCLK和 ADC10OSC。輸入多路選擇器輸

54、入多路選擇器8 路外部模擬輸入和 4 路內(nèi)部模擬輸入可被選中為轉(zhuǎn)換輸入。ADC10 的外部輸入包括:Ax、VeREF+、VREF-,這些端口與 I/O 口復(fù)用。2553 的 I/O 口為數(shù)字 CMOS門電路,當(dāng)模擬信號加在數(shù)字 CMOS 門時,VCC 與 GND 之間會有寄生電流,禁用 I/O 緩沖器可以消除寄生電流以此降低功耗。ADC10AEx 可以選擇控制禁用 I/O 緩沖器。參考電壓產(chǎn)生參考電壓產(chǎn)生ADC10 內(nèi)部自帶參考電壓模塊, 提供兩種可選的參考電壓。 REFON=1, 使能內(nèi)部參考源; REF2_5=1,內(nèi)部參考電壓為 2.5V;REF2_5=0,內(nèi)部參考電壓為 1.5V。當(dāng) R

55、EFOUT=0 時,內(nèi)部參考電壓只留給芯片內(nèi)部使用,當(dāng) REFOUT=1 時,可以將內(nèi)部參考電壓通過 VREF+引腳輸出。外部參考電壓通過 VR+和 VR-兩個引腳輸入。 當(dāng)采用外部參考電壓或者 VCC作為參考電壓時, 內(nèi)部參考電壓關(guān)閉,以降低功耗。ADC10 的內(nèi)部參考電壓發(fā)生模塊具有低功耗功能。內(nèi)部參考電壓模塊由兩部分組成,分別是:帶隙基準(zhǔn)電壓源和獨(dú)立緩沖器。當(dāng) REFON=1 時,兩部分同時開啟;當(dāng) REFON=0 時,兩部分同時關(guān)閉。采樣和轉(zhuǎn)換時間采樣和轉(zhuǎn)換時間AD 采樣可以由一個上升沿信號 SHI 觸發(fā),SHI 信號可以為如下幾種:置位 ADC10SC;Timer_A 的輸出單元 0

56、、1、2;SHI 信號的極性可以由 ISSH 位選擇。 SHT 可以將采樣周期 tsample設(shè)置為 4、 8、 16 或 64 個 ADC10CLK時鐘周期。 SAPMCON 為可以將采樣周期設(shè)置與 ADC10CLK 同步。 一個完整的采樣周期包括 tsample和 tsync。SAMPCON 有高向低變化,將啟動模擬-數(shù)字轉(zhuǎn)換過程,一次轉(zhuǎn)換需要 13 個連續(xù)的 ADC10CLK 時鐘周期長度。當(dāng) SAMPCON=0 時,所有的模擬輸入引腳 Ax 都為高阻狀態(tài);當(dāng) SAMPON=1 時,Ax 輸入端在 tsample時間內(nèi)可以看成 RC 網(wǎng)絡(luò)構(gòu)成的低通濾波器。(我們把采樣時間設(shè)置為最大來用)

57、轉(zhuǎn)換模式轉(zhuǎn)換模式CONSEQx 用來選擇轉(zhuǎn)換模式。Single-Channel Single-Conversion Mode使用 INCHx 位來選擇一路模擬輸入通道進(jìn)行采樣轉(zhuǎn)換。AD 轉(zhuǎn)換的結(jié)果寫入 ADC10MEM 寄存器。Sequence-of-Channels Mode使用 INCHx 位來選擇一個序列的模擬輸入通道進(jìn)行采樣轉(zhuǎn)換,直至降序轉(zhuǎn)換至 A0 通道結(jié)束。每一個轉(zhuǎn)換結(jié)果都被寫入 ADC10MEM 寄存器。A0 通道轉(zhuǎn)換完成后,整個序列轉(zhuǎn)換結(jié)束。若 MSC=0,需要每次觸發(fā)采樣轉(zhuǎn)換;若 MSC=1,自動序列轉(zhuǎn)換。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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論