mspf簡(jiǎn)介學(xué)習(xí)課程_第1頁(yè)
mspf簡(jiǎn)介學(xué)習(xí)課程_第2頁(yè)
mspf簡(jiǎn)介學(xué)習(xí)課程_第3頁(yè)
mspf簡(jiǎn)介學(xué)習(xí)課程_第4頁(yè)
mspf簡(jiǎn)介學(xué)習(xí)課程_第5頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、msp430f449 1、IO口 2、時(shí)鐘 3、中斷 4、定時(shí) 5、AD 6、UART 7、PWM波 8、頭文件第1頁(yè)/共48頁(yè)第一頁(yè),編輯于星期六:九點(diǎn) 十九分。1、IO口一、P口端口寄存器: 1、PxDIR 輸入/輸出方向寄存器 (0:輸入模式 1:輸出模式) 2、PxIN 輸入寄存器 輸入寄存器是只讀寄存器,用戶不能對(duì)其寫入,只能通過(guò)讀取該寄存器的內(nèi)容知道I/O口的輸入信號(hào)。 3、PxOUT 輸出寄存器 寄存器內(nèi)的內(nèi)容不會(huì)受引腳方向改變的影響。 4、PxIFG 中斷標(biāo)志寄存器 (0:沒(méi)有中斷請(qǐng)求 1:有中斷請(qǐng)求) 該寄存器有8個(gè)標(biāo)志位,對(duì)應(yīng)相應(yīng)的引腳是否有待處理的中斷請(qǐng)求; 這8個(gè)中斷標(biāo)

2、志共用一個(gè)中斷向量,中斷標(biāo)志不會(huì)自動(dòng)復(fù)位,必須軟件復(fù)位; 外部中斷事件的時(shí)間必須=1.5倍的MCLK的時(shí)間,以保證中斷請(qǐng)求被接受; 5、PxIES 中斷觸發(fā)沿選擇寄存器 (0:上升沿中斷 1:下降沿中斷) 6、PxSEL 功能選擇寄存器 (0:選擇引腳為I/O端口 1:選擇引腳為外圍模塊功能) 7、PxREN 上拉/下拉電阻使能寄存器 (0:禁止 1:使能)第2頁(yè)/共48頁(yè)第二頁(yè),編輯于星期六:九點(diǎn) 十九分。二、常用特殊P口: 1、P1和P2口可作為外部中斷口。 2、P6可作為A/D輸入口。 3、P1.2和P2.0可作為PWM波輸出口。 4、P1.1:MCLK P1.5:ACLK 5、串口通信

3、時(shí)P2.4 P4.0為發(fā)送TXD P2.5 P4.1為接收RXD 第3頁(yè)/共48頁(yè)第三頁(yè),編輯于星期六:九點(diǎn) 十九分。2、時(shí)鐘一、三個(gè)時(shí)鐘源: 1、LFXT1CLK:低頻時(shí)鐘(32768HZ) 2、XT2CLK:高頻時(shí)鐘(8MHZ) 3、DCOCLK:片內(nèi)數(shù)控振蕩器最高46MHZ 但不穩(wěn)定(不能作為定時(shí)用)第4頁(yè)/共48頁(yè)第四頁(yè),編輯于星期六:九點(diǎn) 十九分。三、基本操作:1、所有P口都可作為通用IO口使用2、所有P口都可進(jìn)行字節(jié)操作和位操作 按字節(jié)操作: 例 P1DIR=0 xff; /將P1口作為輸出口 PIOUT=0 x20; / P1口輸出0 x20 P1DIR=0 x00; /將P1口

4、作為輸入口 data=P1IN /讀取P1口外部輸入值 按位操作: 例 P1DIR=BIT0; /將P1.0作為輸出口 P1OUT|=BIT0; /P1.0輸出1 P1OUT&=BIT0; /P1.0輸出0 P1DIR&=BIT0; /將P1.0口作為輸入 data=P1IN&BIT0; /讀取P1.0口外部輸入值第5頁(yè)/共48頁(yè)第五頁(yè),編輯于星期六:九點(diǎn) 十九分。第6頁(yè)/共48頁(yè)第六頁(yè),編輯于星期六:九點(diǎn) 十九分。三、時(shí)鐘模塊可提供的四種時(shí)鐘信號(hào): 1、ACLK:輔助時(shí)鐘,來(lái)自LFXT1CLK低頻時(shí)鐘,可有軟件選作各外圍模塊的時(shí)鐘信號(hào),一般用于低速外設(shè)。2、ACLK/

5、n:ACLK經(jīng)過(guò)1、2、4、8分頻后由P1.5輸出,僅供外部電路使用。3、MCLK:系統(tǒng)主時(shí)鐘,可有軟件選擇來(lái)自LFXT1CLK、XT2CLK或DCOCLK的時(shí)鐘,然后經(jīng)1、2、4、8分頻得到。可由P1.1輸出(主要用于cpu)4、SMCLK:子系統(tǒng)時(shí)鐘,可有軟件選擇來(lái)自XT2CLK或DCOCLK的時(shí)鐘。(主要用于高速外設(shè))第7頁(yè)/共48頁(yè)第七頁(yè),編輯于星期六:九點(diǎn) 十九分。四、MCLK應(yīng)用舉例: 1、在默認(rèn)情況下,MCLK來(lái)自于DCOCLK其頻率為1.048576MHZ 其計(jì)算方法:MCLK=(31+1)*32768 2、如何選擇ACLK作為MCLK: void clk_initial()

6、do IFG1&=OFIFG; /清除振蕩器的失效標(biāo)志 _delay_cycles(200); while(IFG1&OFIFG)!=0); /如果振蕩器的失效標(biāo)志存在 FLL_CTL1=SELM1+SELM0; /選擇ACLK作為MCLK 第8頁(yè)/共48頁(yè)第八頁(yè),編輯于星期六:九點(diǎn) 十九分。3、如何選擇 XT2CLK作為MCLK: void clk_initial() do IFG1&=OFIFG; /清除振蕩器的失效標(biāo)志 _delay_cycles(200); while(IFG1&OFIFG)!=0); /如果振蕩器的失效標(biāo)志存在 FLL_CTL1=SEL

7、M1; /選擇XT2CLK作為MCLK 4、如何選擇 DCOCLK作為MCLK:計(jì)算(121+1)*2*32768=7.995MHZ void CLK_initial() SCFI0|=FN_4; /選擇DCO頻率調(diào)整范圍為2.826.6MHZ SCFQCTL=249; /倍頻倍數(shù),最高位為DCO+調(diào)制器的控制位 FLL_CTL0=DCOPLUS+OSCCAP_1; /選擇DCO作為MCLK前分頻 第9頁(yè)/共48頁(yè)第九頁(yè),編輯于星期六:九點(diǎn) 十九分。3、中斷一、中斷源:1、外部中斷:P1、P22、定時(shí)器中斷。3、看門狗定時(shí)器中斷。4、串口中斷。5、A/D轉(zhuǎn)換中斷。6、比較器中斷。二、中斷的 一

8、般設(shè)置: 1、打開(kāi)、關(guān)閉局部中斷:打開(kāi)局部中斷一般是給想關(guān)的特殊功能寄存器相關(guān)位置1以P1口外部中斷為例: 打開(kāi)局部中斷: P1IE|=BIT0;/打開(kāi)P1.0外部中斷第10頁(yè)/共48頁(yè)第十頁(yè),編輯于星期六:九點(diǎn) 十九分。4、中斷優(yōu)先級(jí):優(yōu)先級(jí)順序從高到低為:PORT2_VECTOR (1 * 2u) /* 0 xFFE2 Port 2 */PORT1_VECTOR (4 * 2u) /* 0 xFFE8 Port 1 */TIMERA1_VECTOR (5 * 2u) /* 0 xFFEA Timer A CC1-2, TA */TIMERA0_VECTOR (6 * 2u) /* 0 xF

9、FEC Timer A CC0 */ADC_VECTOR (7 * 2u) /* 0 xFFEE ADC */USART0TX_VECTOR (8 * 2u) /* 0 xFFF0 USART 0 Transmit */USART0RX_VECTOR (9 * 2u) /* 0 xFFF2 USART 0 Receive */WDT_VECTOR (10 * 2u) /* 0 xFFF4 Watchdog Timer */COMPARATORA_VECTOR (11 * 2u) /* 0 xFFF6 Comparator A */TIMERB1_VECTOR (12 * 2u) /* 0 xF

10、FF8 Timer B CC1-2, TB */TIMERB0_VECTOR (13 * 2u) /* 0 xFFFA Timer B CC0 */NMI_VECTOR (14 * 2u) /* 0 xFFFC Non-maskae */RESET_VECTOR (15 * 2u) /* 0 xFFFE Reset Highest Priority */第11頁(yè)/共48頁(yè)第十一頁(yè),編輯于星期六:九點(diǎn) 十九分。關(guān)閉局部中斷一般是給想關(guān)的特殊功能寄存器相關(guān)位置0同樣以P1口外部中斷為例: 關(guān)閉局部中斷: P1IE&=BIT0;/關(guān)閉P1.0外部中斷2、打開(kāi)、關(guān)閉全局中斷: _EINT();

11、/打開(kāi)總中斷,相當(dāng)于51的EA=1; _DINT();/關(guān)閉總中斷,相當(dāng)于51的EA=0;3、各中斷向量Interrupt Vectors:#define BASICTIMER_VECTOR (0 * 2u) /* 0 xFFE0 Basic Timer */#define PORT2_VECTOR (1 * 2u) /* 0 xFFE2 Port 2 */#define USART1TX_VECTOR (2 * 2u) /* 0 xFFE4 USART 1 Transmit */#define USART1RX_VECTOR (3 * 2u) /* 0 xFFE6 USART 1 Recei

12、ve */#define PORT1_VECTOR (4 * 2u) /* 0 xFFE8 Port 1 */#define TIMERA1_VECTOR (5 * 2u) /* 0 xFFEA Timer A CC1-2, TA */#define TIMERA0_VECTOR (6 * 2u) /* 0 xFFEC Timer A CC0 */#define ADC12_VECTOR (7 * 2u) /* 0 xFFEE ADC */#define USART0TX_VECTOR (8 * 2u) /* 0 xFFF0 USART 0 Transmit */#define USART0R

13、X_VECTOR (9 * 2u) /* 0 xFFF2 USART 0 Receive */#define WDT_VECTOR (10 * 2u) /* 0 xFFF4 Watchdog Timer */#define COMPARATORA_VECTOR (11 * 2u) /* 0 xFFF6 Comparator A */#define TIMERB1_VECTOR (12 * 2u) /* 0 xFFF8 Timer B CC1-6, TB */#define TIMERB0_VECTOR (13 * 2u) /* 0 xFFFA Timer B CC0 */#define NMI

14、_VECTOR (14 * 2u) /* 0 xFFFC Non-maskable */#define RESET_VECTOR (15 * 2u) /* 0 xFFFE Reset Highest Priority */第12頁(yè)/共48頁(yè)第十二頁(yè),編輯于星期六:九點(diǎn) 十九分。5、中斷的嵌套:當(dāng)同時(shí)有多個(gè)中斷來(lái)的時(shí)候才有優(yōu)先級(jí)的考慮(優(yōu)先級(jí)順序可查看向量表)實(shí)現(xiàn)中斷嵌套需要注意以下幾點(diǎn):1)430默認(rèn)的是關(guān)閉中斷嵌套的,一定要中斷嵌套的話,就必須在中斷服務(wù)程序中打開(kāi)總中斷msp430的指令中,_DINT()和_EINT()分別指關(guān)和開(kāi)總中斷。2)當(dāng)進(jìn)入中斷服務(wù)程序時(shí),只要不在中斷服務(wù)程序中再次

15、開(kāi)中斷,則總中斷是關(guān)閉的,此時(shí)來(lái)中斷不管是比當(dāng)前中斷的優(yōu)先級(jí)高還是低都不執(zhí)行;3)若在中斷服務(wù)程序A中開(kāi)了總中斷,則可以響應(yīng)后來(lái)的中斷B(不管B的優(yōu)先級(jí)比A高還是低),B執(zhí)行完再繼續(xù)執(zhí)行A。注意:進(jìn)入中斷服務(wù)程序B后總中斷同樣也會(huì)關(guān)閉,如 果B中斷程序執(zhí)行時(shí)需響應(yīng)中斷C,則此時(shí)也要開(kāi)總中斷,若不需響應(yīng)中斷,則不用開(kāi)中斷,B執(zhí)行完后跳出中斷程序進(jìn)入A程序時(shí),總中斷會(huì)自動(dòng)打開(kāi);4)若在中斷服務(wù)程序中開(kāi)了總中斷,后來(lái)的中斷同時(shí)有多個(gè),則會(huì)按優(yōu)先級(jí)來(lái)執(zhí)行,即中斷優(yōu)先級(jí)只有在多個(gè)中斷同時(shí)到來(lái)時(shí)才起做用!中斷服務(wù)不執(zhí)行搶先原則。5)對(duì)于單源中斷,只要響應(yīng)中斷,系統(tǒng)硬件自動(dòng)清中斷標(biāo)志位,對(duì)于TA/TB定時(shí)器

16、的比較/捕獲中斷,只要訪問(wèn)TAIV/TBIV,標(biāo)志位倍被自動(dòng)清除; 對(duì)于多源中斷要手動(dòng)清標(biāo)志位,比如P1/P2口中斷,要手工清除相應(yīng)的標(biāo)志,如果在這種中斷用EINT();開(kāi)中斷,而在打開(kāi)中斷前沒(méi)有清標(biāo)志,就會(huì) 有相同的中斷不斷嵌入,而導(dǎo)致堆棧溢出引起復(fù)位,所以在這類中斷中必須先清標(biāo)志再打開(kāi)中斷開(kāi)關(guān).第13頁(yè)/共48頁(yè)第十三頁(yè),編輯于星期六:九點(diǎn) 十九分。6、中斷應(yīng)用程序舉例(外部中斷): void interrupt_initial() P1DIR&=BIT7; /P1.7為輸入 P1IE|=0 x80; /P1.7中斷允許 P1IES|=0 x00; /P1.7上升沿觸發(fā) P1IFG

17、=0; /P1.7中斷標(biāo)志清除,對(duì)于多源中斷必須先清中斷標(biāo)志再打開(kāi)中斷 _EINT(); /總中斷允許#pragma vector=PORT1_VECTOR_interrupt void Port_1(void) P1IFG&=BIT7; /P1.7中斷標(biāo)志清除/*在此寫中斷服務(wù)子程序*/ 第14頁(yè)/共48頁(yè)第十四頁(yè),編輯于星期六:九點(diǎn) 十九分。4、定時(shí) 一、常見(jiàn)的定時(shí)方式: 1、軟件定時(shí):通過(guò)延時(shí)程序?qū)崿F(xiàn)。缺點(diǎn):在延時(shí)期間,CPU一直被占用,浪費(fèi)了CPU的利用率,而且延時(shí)時(shí)間不好計(jì)算。 2、硬件延時(shí):通過(guò)專門的定時(shí)器件實(shí)現(xiàn)。優(yōu)點(diǎn):在簡(jiǎn)單的軟件控制下,產(chǎn)生準(zhǔn)確的延時(shí)。二、硬件定時(shí)器種類

18、: 1、看門狗定時(shí)器。 2、定時(shí)器A。 3、定時(shí)器B。 4、實(shí)時(shí)時(shí)鐘RTC。第15頁(yè)/共48頁(yè)第十五頁(yè),編輯于星期六:九點(diǎn) 十九分。三、Timer_A的基本特點(diǎn): 四、定時(shí)器的工作模式:1、停止模式:用于定時(shí)器的暫停,并不發(fā)生復(fù)位,所有寄存器現(xiàn)行類容在停止模式結(jié)束后都可用。當(dāng)定時(shí)器暫停后重新計(jì)數(shù)時(shí),計(jì)數(shù)器將從暫停前的計(jì)數(shù)方向計(jì)數(shù)。2、增計(jì)數(shù)模式:捕獲/比較寄存器CCR0用作Timer_A增計(jì)數(shù)模式的周期寄存器,因?yàn)镃CR0為16位寄存器,所以該模式適用于定時(shí)周期小于65536的連續(xù)計(jì)數(shù)情況。計(jì)數(shù)器TAR可以增計(jì)數(shù)到CCR0的值,當(dāng)計(jì)數(shù)值與CCR0的值相等時(shí),定時(shí)器復(fù)位,并從0開(kāi)始重新計(jì)數(shù)。第1

19、6頁(yè)/共48頁(yè)第十六頁(yè),編輯于星期六:九點(diǎn) 十九分。 增計(jì)數(shù)模式:void zengjishu() /aclk 輔助時(shí)鐘 TACTL=TASSEL1+TACLR; /選擇計(jì)數(shù)時(shí)鐘為ACLK,將計(jì)數(shù)器TAR清零 CCTL0=CCIE; /使能中斷 CCR0=200; /計(jì)數(shù)終值,方波頻率為:32768/200/2 TACTL|=MC_1; /選擇Timer_A為增計(jì)數(shù)模式 P1DIR|=BIT0; /P1.0作為輸出 _EINT(); /使能總中斷 #pragma vertor =TIMERA0_VECTOR_interrupt void Timer_A(void) P1OUT=0X01; /P

20、1.0取反 例程:第17頁(yè)/共48頁(yè)第十七頁(yè),編輯于星期六:九點(diǎn) 十九分。3、連續(xù)計(jì)數(shù)模式: 特點(diǎn):定時(shí)器從0開(kāi)始記到0XFFFF后又開(kāi)始從0開(kāi)始計(jì)數(shù),當(dāng)記到CCR0時(shí)產(chǎn)生中斷(可產(chǎn)生多個(gè)定時(shí)信號(hào))第18頁(yè)/共48頁(yè)第十八頁(yè),編輯于星期六:九點(diǎn) 十九分。例程: void lianxujishu() TACTL=TASSEL_1+TACLR; /選擇計(jì)數(shù)時(shí)鐘為ACLK,將計(jì)數(shù)器TAR清零 CCTL0=CCIE; /使能中斷 CCR0=1000; /計(jì)數(shù)終值,方波頻率為:32768/1000/2 TACTL|=MC_2; /選擇Timer_A為連續(xù)計(jì)數(shù)模式 P1DIR|=BIT0; /P1.0作為

21、輸出 _EINT(); /使能總中斷 #pragma vertor =TIMERA0_VECTOR_interrupt void Timer_A(void) P1OUT=0X01; /P1.0取反 CCR0+=1000; 第19頁(yè)/共48頁(yè)第十九頁(yè),編輯于星期六:九點(diǎn) 十九分。5、捕獲/比較模塊:一、工作模式: 1、捕獲模式:當(dāng)捕獲/比較控制寄存器CCTLx中的CAP=1時(shí),該模塊工作于捕 獲模式。這時(shí)如果在選定的引腳上發(fā)生設(shè)定的脈沖沿,則TAR中的值將自動(dòng)寫入到捕獲/比較寄存器CCRx中。 用途:1、測(cè)量軟件程序執(zhí)行所用時(shí)間。 2、測(cè)量硬件之間的時(shí)間。 3、測(cè)量頻率。 2、比較模式:當(dāng)捕獲/

22、比較控制寄存器CCTLx中的CAP=0時(shí),該模塊工作于比較模式。Timer_A 有三個(gè)捕獲/比較器,在比較模式下有8個(gè)輸出模式第20頁(yè)/共48頁(yè)第二十頁(yè),編輯于星期六:九點(diǎn) 十九分。4、增/減計(jì)數(shù)模式:需要對(duì)稱波形的情況可以用增/減計(jì)數(shù)模式,該模式下,定時(shí)器先計(jì)數(shù)到CCR0的值,然后反向減計(jì)數(shù)到0。 注:定時(shí)器TAR的值從CCR01增計(jì)數(shù)到CCR0時(shí),中斷標(biāo)志CCIFG0置位,從1減計(jì)數(shù)到0時(shí),中斷標(biāo)志TAIFG置位第21頁(yè)/共48頁(yè)第二十一頁(yè),編輯于星期六:九點(diǎn) 十九分。5、A/D一、msp430f449內(nèi)自帶A/D的主要特點(diǎn):1、 12位轉(zhuǎn)換精度。2、有多種時(shí)鐘源可供選擇,內(nèi)帶時(shí)鐘發(fā)生器。

23、3、配有8個(gè)外部通道和4個(gè)內(nèi)部通道。4、內(nèi)置參考電源,并且參考電壓Vref有6種組合。5、采樣速度快,最快200Ks/s。6、四種工作模式: 1、單通道單次轉(zhuǎn)換模式:CONSEQ_0。 2、單通道多次轉(zhuǎn)換模式:CONSEQ_2。 3、序列通道單次轉(zhuǎn)換模式:CONSEQ_1 。 4、序列通道多次轉(zhuǎn)換模式:CONSEQ_3。二、ADC12內(nèi)部結(jié)構(gòu)圖:第22頁(yè)/共48頁(yè)第二十二頁(yè),編輯于星期六:九點(diǎn) 十九分。第23頁(yè)/共48頁(yè)第二十三頁(yè),編輯于星期六:九點(diǎn) 十九分。三、A/D轉(zhuǎn)換的一般步驟: 1、選擇轉(zhuǎn)換通道: P6SEL|=0 x01; /使能A/D通道A0(P6.0); P6SEL|=BIT7;

24、 /使能A/D通道A7(P6.7); 2、打開(kāi)ADC12內(nèi)核,設(shè)置采樣周期,參考電壓: ADC12CTL0=ADC12ON; /打開(kāi)ADC12內(nèi)核; ADC12CTL0=SHT0_0; /設(shè)置采樣周期為4/200KHZ*1 ADC12CTL0=REFON; /選擇內(nèi)部參考電壓為2.5V; ADC12CTL0=MSC; /多次采樣/轉(zhuǎn)換位 3、設(shè)置工作模式,轉(zhuǎn)換觸發(fā)方式: ADC12CTL1=SHP; /采樣信號(hào)SAMPCON來(lái)自采樣定時(shí)器 ADC12CTL1=ADC12SSEL_0; /采樣時(shí)鐘來(lái)自ADC12OSC為200KHZ ADC12CTL1=CONSEQ_2;/單通道多次轉(zhuǎn)換模式 4、

25、使能轉(zhuǎn)換(即允許轉(zhuǎn)換): ADC12CTL0|=ENC; /使能轉(zhuǎn)換; 第24頁(yè)/共48頁(yè)第二十四頁(yè),編輯于星期六:九點(diǎn) 十九分。注意:當(dāng)MSC=1且SHP=1時(shí),僅首次轉(zhuǎn)換由SHI信號(hào)的上升沿觸發(fā)采樣定 時(shí)器,之后采樣轉(zhuǎn)換將在前一次轉(zhuǎn)換完成之后立即進(jìn)行。5、開(kāi)始轉(zhuǎn)換 ADC12CTL0|=ADC12SC; /開(kāi)始轉(zhuǎn)換;四、幾種工作模式例程: 1、單通道單次轉(zhuǎn)換: void ADC_convert() P6SEL|=0 x01; /使能A/D通道A0(P6.0); ADC12CTL0=ADC12ON+ SHT0_0; /開(kāi)ADC12內(nèi)核,設(shè)置采樣周期為4*200KHZ*1 ADC12CTL1=

26、SHP; /采樣信號(hào)SAMPCON來(lái)自采樣定時(shí)器 ADC12CTL0|=ENC; /使能轉(zhuǎn)換; ADC12CTL0|=ADC12SC; /開(kāi)始轉(zhuǎn)換; int Read_result() int result; result= ADC12MEM0; return (result); 第25頁(yè)/共48頁(yè)第二十五頁(yè),編輯于星期六:九點(diǎn) 十九分。2、單通道多次轉(zhuǎn)換: Void ADC_convert() P6SEL|=0 x02; /使能A/D通道A1; ADC12CTL0=ADC12ON+SHT0_8+MSC; /打開(kāi)ADC12內(nèi)核,設(shè)置為首次觸發(fā)即可,確定采樣周期為4*mclk*64,選擇內(nèi)部參考

27、電壓為2.5v; ADC12CTL1=SHP+ADC12SSEL_2+CONSEQ_2; /設(shè)置為單通道多次轉(zhuǎn)換模式并且由采樣輸入信號(hào)的上升沿觸發(fā)采樣定時(shí)器 ; ADC12CTL0|=ENC; /使能轉(zhuǎn)換; ADC12CTL0|=ADC12SC; /開(kāi)始轉(zhuǎn)換; int Read_result() int result; result= ADC12MEM1; return (result); 第26頁(yè)/共48頁(yè)第二十六頁(yè),編輯于星期六:九點(diǎn) 十九分。3、序列通道單次轉(zhuǎn)換: void ADC_convert() P6SEL|=0 x0f; ADC12MCTL0=SREF_0+INCH_0; ADC

28、12MCTL1=SREF_0+INCH_1; ADC12MCTL2=SREF_0+INCH_2; ADC12MCTL3=SREF_0+INCH_3+EOS; /EOS為序列結(jié)束信號(hào) ADC12CTL0=ADC12ON+MSC+ SHT0_0; /開(kāi)ADC12內(nèi)核,設(shè)置采樣周期為4*200KHZ*1 ADC12CTL1=SHP+CONSEQ_1; /采樣信號(hào)SAMPCON來(lái)自采樣定時(shí)器 ADC12CTL0|=ENC; /使能轉(zhuǎn)換; ADC12CTL0|=ADC12SC; /開(kāi)始轉(zhuǎn)換; _EINT(); /開(kāi)中斷 #pragma vector=ADC_VECTOR_interrupt void A

29、DC12ISR(void) result0 = ADC12MEM0; result1 = ADC12MEM1; result2 = ADC12MEM2; result3 = ADC12MEM3;第27頁(yè)/共48頁(yè)第二十七頁(yè),編輯于星期六:九點(diǎn) 十九分。4、序列通道多次轉(zhuǎn)換: void ADC_convert() P6SEL|=0 x0f; ADC12MCTL0=SREF_0+INCH_0; ADC12MCTL1=SREF_0+INCH_1; ADC12MCTL2=SREF_0+INCH_2; ADC12MCTL3=SREF_0+INCH_3+EOS; /EOS為序列結(jié)束信號(hào) ADC12CTL0

30、=ADC12ON+MSC+ SHT0_0; /開(kāi)ADC12內(nèi)核,設(shè)置采樣周期為4*200KHZ*1 ADC12CTL1=SHP+CONSEQ_3; /采樣信號(hào)SAMPCON來(lái)自采樣定時(shí)器 ADC12CTL0|=ENC; /使能轉(zhuǎn)換; ADC12CTL0|=ADC12SC; /開(kāi)始轉(zhuǎn)換; _EINT(); /開(kāi)中斷 #pragma vector=ADC_VECTOR_interrupt void ADC12ISR(void) result0 = ADC12MEM0; result1 = ADC12MEM1; result2 = ADC12MEM2; result3 = ADC12MEM3;第28

31、頁(yè)/共48頁(yè)第二十八頁(yè),編輯于星期六:九點(diǎn) 十九分。6、USART一、串口是系統(tǒng)與外界聯(lián)系的重要手段,我們有時(shí)需要使用上位機(jī)實(shí)現(xiàn)系統(tǒng)調(diào)試 及現(xiàn)場(chǎng)數(shù)據(jù)的采集和控制,msp430f449中有兩個(gè)串口模塊USART0、USART1分別對(duì)應(yīng)P2.4、P2.5和P4.0、P4.1都可實(shí)現(xiàn) UART異步通信和SPI同步通信。二、串行異步通信的主要特點(diǎn): 1、兩個(gè)獨(dú)立的移位寄存器:輸入、輸出寄存器。 2、傳輸7位或8位數(shù)據(jù),可采用奇校驗(yàn)或偶校驗(yàn)或無(wú)校驗(yàn)。 3、數(shù)據(jù)在發(fā)送或接收時(shí)低位在先。 4、獨(dú)立的發(fā)送、接收中斷。 5、可編程實(shí)現(xiàn)分頻因子為整數(shù)或小數(shù)的波特率。三、USART模塊結(jié)構(gòu)圖:第29頁(yè)/共48頁(yè)第二

32、十九頁(yè),編輯于星期六:九點(diǎn) 十九分。第30頁(yè)/共48頁(yè)第三十頁(yè),編輯于星期六:九點(diǎn) 十九分。四、串口通信的一般步驟(無(wú)校驗(yàn)): 1、選擇串口模塊(USART0、USART1)。 USART1: P4SEL=0X03; P4DIR=0X01; /P4.0為發(fā)送TXD,P4.1為接收RXD 2、在SWRST=1時(shí),設(shè)置串口。 U1CTL=SWRST; / 復(fù)位USART,并設(shè)置串口 3、選擇波特率發(fā)生器時(shí)鐘。 UTCTL1=SSEL1; /UCLK=MCLK 4、使能發(fā)送、接收。 ME2=UTXE1+URXE1; /使能RXD TXD 5、設(shè)置字符長(zhǎng)度。 U1CTL=CHAR; /設(shè)置字符長(zhǎng)度為8

33、位,默認(rèn)時(shí)為7位 6、設(shè)置波特率。 注:UBR=U1BR0+U1BR1; 其值應(yīng)大于3 U1BR0=0X1B; /存放波特率分頻因子的整數(shù)部分的低字節(jié) U1BR1=0X00; /存放波特率分頻因子的整數(shù)部分的高字節(jié) U1MCTL=0X03; /設(shè)置波特率為38400 7、SWRST=0,串口設(shè)置完畢。 U1CTL&=SWRST; /在SWRST為1之前設(shè)置串口 8、使能中斷。 IE2=URXIE1; /使能接收 中斷第31頁(yè)/共48頁(yè)第三十一頁(yè),編輯于星期六:九點(diǎn) 十九分。7、PWM波一、Timer_A在增計(jì)數(shù)模式下的PWM輸出:void PWM_Creat(int a,int b)

34、TACTL=TASSEL_1+TACLR+ID_3; /選擇計(jì)數(shù)時(shí)鐘為ACLK,并進(jìn)行8分頻,將計(jì)數(shù)器TAR清零 CCR0=255; /計(jì)數(shù)終值,方波頻率為:32768/256/8/2=8HZ CCTL1=OUTMOD_7; CCR1=a; /占空比為:a/256 CCTL2=OUTMOD_7; CCR2=b; /占空比為:b/256 P1DIR|=BIT2; /CCR1 P1SEL|=BIT2; P2DIR|=BIT0; /CCR2 P2SEL|=BIT0; TACTL|=MC_1; /選擇Timer_A為增計(jì)數(shù)模式 第32頁(yè)/共48頁(yè)第三十二頁(yè),編輯于星期六:九點(diǎn) 十九分。二、增計(jì)數(shù)模式下

35、的輸出:第33頁(yè)/共48頁(yè)第三十三頁(yè),編輯于星期六:九點(diǎn) 十九分。8、頭文件一、兩種頭文件使用方式: 1、#ifndef _ADC_H #define _ADC_H extern void ADC_convert(); extern int Read_result(); #endif 2、在工程里直接調(diào)用.C文件 第34頁(yè)/共48頁(yè)第三十四頁(yè),編輯于星期六:九點(diǎn) 十九分。Msp430g2553 1、IO口 2、時(shí)鐘 3、中斷 4、定時(shí) 5、AD 6、PWM波第35頁(yè)/共48頁(yè)第三十五頁(yè),編輯于星期六:九點(diǎn) 十九分。msp430launchpadMsp430g2553簡(jiǎn)介:1、低工作電壓:1.8

36、3.6V2、超低功耗: 活動(dòng)模式 :280UA(1MHZ,2.2V) 待機(jī)模式 : 0.5UA 掉電模式 : (RAM數(shù)據(jù)保持)0.1UA3、有5種節(jié)電模式4、從待機(jī)到喚醒的響應(yīng)時(shí)間不超過(guò)1us5、10位A/D轉(zhuǎn)換器 (帶有內(nèi)部參考源、采樣保持,最大采樣率200Ks/s)6、16位精簡(jiǎn)指令結(jié)構(gòu)(RISC),6.25ns指令周期7、帶有3個(gè)捕獲/比較器結(jié)構(gòu)的16位定時(shí)器8、串行通信可軟件選擇UART/SPI/I2C三種模式9、可在線串行編程,不需要外部編程電壓11、FLASH存儲(chǔ)器為16KB,RAM為512B第36頁(yè)/共48頁(yè)第三十六頁(yè),編輯于星期六:九點(diǎn) 十九分。Msp430g2553結(jié)構(gòu)圖第

37、37頁(yè)/共48頁(yè)第三十七頁(yè),編輯于星期六:九點(diǎn) 十九分。1、I/O一、P口的基本特點(diǎn):1、有P1、P2兩個(gè)可獨(dú)立編程的IO口。2、每個(gè)P口都有輸入、輸出、中斷功能。3、對(duì)P口控制寄存器的讀寫支持所有指令集。4、每一個(gè)P口都有獨(dú)立可編程的上拉、下拉電阻。二、P口的 基本操作: 大致同msp430f449相同。 注意:在將P2.6、P2.7作為普通IO口時(shí),需要進(jìn)行以下設(shè)置: P2SEL&=(BIT6+BIT7); 第38頁(yè)/共48頁(yè)第三十八頁(yè),編輯于星期六:九點(diǎn) 十九分。三、IO口的復(fù)用:第39頁(yè)/共48頁(yè)第三十九頁(yè),編輯于星期六:九點(diǎn) 十九分。2、時(shí)鐘一、時(shí)鐘源: 1、ACLK:系統(tǒng)輔

38、助時(shí)鐘,來(lái)自 LFXT1CLK 為32768HZ。 2、MCLK:系統(tǒng)主時(shí)鐘,有以下5種選擇: 1、32768HZ,來(lái)自ACLK。 2、1MHZ: BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ; 3、8MHZ: BCSCTL1 = CALBC1_8MHZ; DCOCTL = CALDCO_8MHZ; 4、12MHZ: BCSCTL1 = CALBC1_12MHZ; DCOCTL = CALDCO_12MHZ; 5、16MHZ: BCSCTL1 = CALBC1_16MHZ; DCOCTL = CALDCO_16MHZ; 3、SMCLK:子系統(tǒng)時(shí)鐘,一般

39、為16MHZ。 重點(diǎn) 第40頁(yè)/共48頁(yè)第四十頁(yè),編輯于星期六:九點(diǎn) 十九分。二、時(shí)鐘結(jié)構(gòu)圖:第41頁(yè)/共48頁(yè)第四十一頁(yè),編輯于星期六:九點(diǎn) 十九分。3、中斷例程: void interrupt_initial() P1DIR&=BIT7; /P1.7為輸入 P1SEL|=BIT7; P1IE|=BIT7; /P1.7中斷允許 P1IES|=0 x80; /P1.7下降沿觸發(fā) P1IFG=0; /P1.7中斷標(biāo)志清除,對(duì)于多源中斷必須先清中斷標(biāo)志再打開(kāi)中斷 P1DIR|=BIT6; P1OUT&=BIT6; _EINT(); /總中斷允許#pragma vector=PORT1_VECTOR_interrupt void Port_1(void) P1IFG&=BIT7; /P1.7中斷標(biāo)志清除 P1OUT|=BIT6; /點(diǎn)亮綠燈第42頁(yè)/共48頁(yè)第四十二頁(yè),編輯于星期六:九點(diǎn) 十九分。4、定時(shí)例程:void zengjishu() TACTL=TASSEL_2+TACLR+ID_3; /選擇計(jì)數(shù)時(shí)鐘為MCLK,并進(jìn)行8分頻,將計(jì)數(shù)器TAR清零 CCTL0=CCIE; /使能中斷 CCR0=65535; /計(jì)數(shù)終值,方波頻率為:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論