程序實例PPT課件_第1頁
程序實例PPT課件_第2頁
程序實例PPT課件_第3頁
程序實例PPT課件_第4頁
程序實例PPT課件_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、msp430f4491、IO口2、時鐘3、中斷4、定時5、AD6、UART7、PWM波8、頭文件第1頁/共48頁1、IO口一、P口端口寄存器: 1、PxDIR 輸入/輸出方向寄存器 (0:輸入模式 1:輸出模式) 2、PxIN 輸入寄存器 輸入寄存器是只讀寄存器,用戶不能對其寫入,只能通過讀取該寄存器的內(nèi)容知道I/O口的輸入信號。 3、PxOUT 輸出寄存器 寄存器內(nèi)的內(nèi)容不會受引腳方向改變的影響。 4、PxIFG 中斷標志寄存器 (0:沒有中斷請求 1:有中斷請求) 該寄存器有8個標志位,對應相應的引腳是否有待處理的中斷請求; 這8個中斷標志共用一個中斷向量,中斷標志不會自動復位,必須軟件復

2、位; 外部中斷事件的時間必須=1.5倍的MCLK的時間,以保證中斷請求被接受; 5、PxIES 中斷觸發(fā)沿選擇寄存器 (0:上升沿中斷 1:下降沿中斷) 6、PxSEL 功能選擇寄存器 (0:選擇引腳為I/O端口 1:選擇引腳為外圍模塊功能) 7、PxREN 上拉/下拉電阻使能寄存器 (0:禁止 1:使能)第2頁/共48頁二、常用特殊P口: 1、P1和P2口可作為外部中斷口。 2、P6可作為A/D輸入口。 3、P1.2和P2.0可作為PWM波輸出口。 4、P1.1:MCLK P1.5:ACLK 5、串口通信時:P2.4、 P4.0為發(fā)送TXD, P2.5 、P4.1為接收RXD。 第3頁/共4

3、8頁三、基本操作:1、所有P口都可作為通用IO口使用2、所有P口都可進行字節(jié)操作和位操作 按字節(jié)操作: 例 : P1DIR=0 xff; /將P1口作為輸出口 PIOUT=0 x20; / P1口輸出0 x20 P1DIR=0 x00; /將P1口作為輸入口 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口外部輸入值第4頁/共48

4、頁2、時鐘一、三個時鐘源: 1、LFXT1CLK:低頻時鐘(32768HZ) 2、XT2CLK:高頻時鐘(8MHZ) 3、DCOCLK:片內(nèi)數(shù)控振蕩器最高46MHZ 但不穩(wěn)定(不能作為定時用)二、時鐘模塊結構圖:第5頁/共48頁第6頁/共48頁三、時鐘模塊可提供的四種時鐘信號: 1、ACLK:輔助時鐘,來自LFXT1CLK低頻時 鐘,可有軟件選作各外圍模塊的時 鐘信號,一般用于低速外設。2、ACLK/n:ACLK經(jīng)過1、2、4、8分頻后由 P1.5輸出,僅供外部電路使用。3、MCLK:系統(tǒng)主時鐘,可有軟件選擇來自 LFXT1CLK、XT2CLK或DCOCLK的 時鐘,然后經(jīng)1、2、4、8分頻得

5、 到??捎蒔1.1輸出(主要用于cpu)4、SMCLK:子系統(tǒng)時鐘,可有軟件選擇來自 XT2CLK或DCOCLK的時鐘。(主要用于高速外設)第7頁/共48頁四、MCLK應用舉例: 1、在默認情況下,MCLK來自于DCOCLK其頻率為1.048576MHZ 其計算方法:MCLK=(31+1)*32768 2、如何選擇ACLK作為MCLK: void clk_initial() do IFG1&=OFIFG; /清除振蕩器的失效標志 _delay_cycles(200); while(IFG1&OFIFG)!=0); /如果振蕩器的失效標志存在 FLL_CTL1=SELM1+SEL

6、M0; /選擇ACLK作為MCLK 第8頁/共48頁3、如何選擇 XT2CLK作為MCLK: void clk_initial() do IFG1&=OFIFG; /清除振蕩器的失效標志 _delay_cycles(200); while(IFG1&OFIFG)!=0); /如果振蕩器的失效標志存在 FLL_CTL1=SELM1; /選擇XT2CLK作為MCLK 4、如何選擇 DCOCLK作為MCLK:計算(121+1) *2*32768=7.995MHZ void CLK_initial() SCFI0|=FN_4; /選擇DCO頻率調整范圍為2.826.6MHZ SCFQC

7、TL=249; /倍頻倍數(shù),最高位為DCO+調制器的控制位 FLL_CTL0=DCOPLUS+OSCCAP_1; /選擇DCO作為MCLK前分頻 第9頁/共48頁3、中斷一、中斷源:1、外部中斷:P1、P22、定時器中斷。3、看門狗定時器中斷。4、串口中斷。5、A/D 轉換中斷。6、比較器中斷。二、中斷的 一般設置: 1 1、打開、關閉局部中斷:、打開、關閉局部中斷:打開局部中斷一般是給想關的特殊功能寄存器相關位置1以P1口外部中斷為例: 打開局部中斷: P1IE|=BIT0;/打開P1.0外部中斷第10頁/共48頁關閉局部中斷一般是給想關的特殊功能寄存器相關位置0同樣以P1口外部中斷為例:

8、關閉局部中斷: P1IE&=BIT0;/關閉P1.0外部中斷2 2、打開、關閉全局中斷:、打開、關閉全局中斷: _EINT();/打開總中斷,相當于51的EA=1; _DINT();/關閉總中斷,相當于51的EA=0;3 3、各中斷向量、各中斷向量Interrupt VectorsInterrupt Vectors:#define BASICTIMER_VECTOR (0 * 2u) /* 0 xFFE0 Basic Timer */#define PORT2_VECTOR (1 * 2u) /* 0 xFFE2 Port 2 */#define USART1TX_VECTOR (2

9、* 2u) /* 0 xFFE4 USART 1 Transmit */#define USART1RX_VECTOR (3 * 2u) /* 0 xFFE6 USART 1 Receive */#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) /*

10、 0 xFFEE ADC */#define USART0TX_VECTOR (8 * 2u) /* 0 xFFF0 USART 0 Transmit */#define USART0RX_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 xF

11、FF8 Timer B CC1-6, TB */#define TIMERB0_VECTOR (13 * 2u) /* 0 xFFFA Timer B CC0 */#define NMI_VECTOR (14 * 2u) /* 0 xFFFC Non-maskable */#define RESET_VECTOR (15 * 2u) /* 0 xFFFE Reset Highest Priority */第11頁/共48頁4 4、中斷優(yōu)先級:、中斷優(yōu)先級:優(yōu)先級順序從高到低為:PORT2_VECTOR (1 * 2u) /* 0 xFFE2 Port 2 */PORT1_VECTOR (4 *

12、 2u) /* 0 xFFE8 Port 1 */TIMERA1_VECTOR (5 * 2u) /* 0 xFFEA Timer A CC1-2, TA */TIMERA0_VECTOR (6 * 2u) /* 0 xFFEC 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

13、 xFFF4 Watchdog Timer */COMPARATORA_VECTOR (11 * 2u) /* 0 xFFF6 Comparator A */TIMERB1_VECTOR (12 * 2u) /* 0 xFFF8 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 */第12頁/共48頁5

14、5、中斷的嵌套:、中斷的嵌套:當同時有多個中斷來的時候才有優(yōu)先級的考慮(優(yōu)先級順序可查看向量表)實現(xiàn)中斷嵌套需要注意以下幾點:1)430默認的是關閉中斷嵌套的,一定要中斷嵌套的話,就必須在中斷服務程序中打開總中斷msp430的指令中,_DINT()和_EINT()分別指關和開總中斷。2)當進入中斷服務程序時,只要不在中斷服務程序中再次開中斷,則總中斷是關閉的,此時來中斷不管是比當前中斷的優(yōu)先級高還是低都不執(zhí)行;3)若在中斷服務程序A中開了總中斷,則可以響應后來的中斷B(不管B的優(yōu)先級比A高還是低),B執(zhí)行完再繼續(xù)執(zhí)行A。注意:進入中斷服務程序B后總中斷同樣也會關閉,如 果B中斷程序執(zhí)行時需響應

15、中斷C,則此時也要開總中斷,若不需響應中斷,則不用開中斷,B執(zhí)行完后跳出中斷程序進入A程序時,總中斷會自動打開;4)若在中斷服務程序中開了總中斷,后來的中斷同時有多個,則會按優(yōu)先級來執(zhí)行,即中斷優(yōu)先級只有在多個中斷同時到來時才起做用!中斷服務不執(zhí)行搶先原則。5)對于單源中斷,只要響應中斷,系統(tǒng)硬件自動清中斷標志位,對于TA/TB定時器的比較/捕獲中斷,只要訪問TAIV/TBIV,標志位倍被自動清除; 對于多源中斷要手動清標志位,比如P1/P2口中斷,要手工清除相應的標志,如果在這種中斷用EINT();開中斷,而在打開中斷前沒有清標志,就會 有相同的中斷不斷嵌入,而導致堆棧溢出引起復位,所以在這

16、類中斷中必須先清標志再打開中斷開關.第13頁/共48頁6 6、中斷應用程序舉例(外部中斷)、中斷應用程序舉例(外部中斷): : void interrupt_initial() P1DIR&=BIT7; /P1.7為輸入 P1IE|=0 x80; /P1.7中斷允許 P1IES|=0 x00; /P1.7上升沿觸發(fā) P1IFG=0; /P1.7中斷標志清除,對于多源中斷必須先清中斷標志再打開中斷 _EINT(); /總中斷允許#pragma vector=PORT1_VECTOR_interrupt void Port_1(void) P1IFG&=BIT7; /P1.7中斷標

17、志清除/*在此寫中斷服務子程序*/ 第14頁/共48頁4、定時 一、常見的定時方式: 1、軟件定時軟件定時:通過延時程序實現(xiàn)。缺點:在延時期間,CPU一直被占用,浪費 了CPU的利用率,而且延時時間不好計算。 2、硬件延時硬件延時:通過專門的定時器件實現(xiàn)。優(yōu)點:在簡單的軟件控制下,產(chǎn)生準 確的延時。二、硬件定時器種類: 1、看門狗定時器。 2、定時器A。 3、定時器B。 4、實時時鐘RTC。第15頁/共48頁三、Timer_A的基本特點: 1、輸入時鐘可以有多種選擇。 2、產(chǎn)生的定時脈沖或PWM信號沒有軟件帶來的誤差。 3、四種計數(shù)功能。 4、8種輸出方式。 5、16位定時器。 6、生成的PW

18、M波能用軟件任意改變占空比和周期,當PWM波不需要修改占空比和周期時,Timer_A能自動輸出PWM,而不需要利用中斷來維持PWM波的輸出 四、定時器的工作模式:1、停止模式:停止模式:用于定時器的暫停,并不發(fā)生復位,所有寄存器現(xiàn)行類容在停止模式結束后都可用。當定時器暫停后重新計數(shù)時,計數(shù)器將從暫停前的計數(shù)方向計數(shù)。2 2、增計數(shù)模式:、增計數(shù)模式:捕獲/比較寄存器CCR0用作Timer_A增計數(shù)模式的周期寄存器,因為CCR0為16位寄存器,所以該模式適用于定時周期小于65536的連續(xù)計數(shù)情況。計數(shù)器TAR可以增計數(shù)到CCR0的值,當計數(shù)值與CCR0的值相等時,定時器復位,并從0開始重新計數(shù)。

19、第16頁/共48頁 增計數(shù)模式增計數(shù)模式:void zengjishu() TACTL=TASSEL1+TACLR; /選擇計數(shù)時鐘為ACLK,將計數(shù)器TAR清零 CCTL0=CCIE; /使能中斷 CCR0=200; /計數(shù)終值,方波頻率為:32768/200/2 TACTL|=MC_1; /選擇Timer_A為增計數(shù)模式 P1DIR|=BIT0; /P1.0作為輸出 _EINT(); /使能總中斷 #pragma vertor =TIMERA0_VECTOR_interrupt void Timer_A(void) P1OUT=0X01; /P1.0取反 例程:例程:第17頁/共48頁3

20、3、連續(xù)計數(shù)模式:、連續(xù)計數(shù)模式: 特點:特點:定時器從0開始記到0XFFFF后又開始從0開始計數(shù),當記到CCR0時產(chǎn)生中斷(可產(chǎn)生多個定時信號)第18頁/共48頁例程:例程: void lianxujishu() TACTL=TASSEL_1+TACLR; /選擇計數(shù)時鐘為ACLK,將計數(shù)器TAR清零 CCTL0=CCIE; /使能中斷 CCR0=1000; /計數(shù)終值,方波頻率為:32768/1000/2 TACTL|=MC_2; /選擇Timer_A為連續(xù)計數(shù)模式 P1DIR|=BIT0; /P1.0作為輸出 _EINT(); /使能總中斷 #pragma vertor =TIMERA0

21、_VECTOR_interrupt void Timer_A(void) P1OUT=0X01; /P1.0取反 CCR0+=1000; 第19頁/共48頁4 4、增、增/ /減計數(shù)模式:減計數(shù)模式:需要對稱波形的情況可以用增/減計數(shù)模式,該模式下,定時器先計數(shù)到CCR0的值,然后反向減計數(shù)到0。 注:注:定時器TAR的值從CCR01增計數(shù)到CCR0時,中斷標志CCIFG0置位,從1減計數(shù)到0時,中斷標志TAIFG置位第20頁/共48頁5 5、捕獲、捕獲/ /比較模塊:比較模塊:一、工作模式:一、工作模式: 1、捕獲模式捕獲模式:當捕獲/比較控制寄存器CCTLx中的CAP=1時,該模塊工作于捕

22、 獲模式。這時如果在選定的引腳上發(fā)生設定的脈沖沿,則TAR中的值將自動寫入到捕獲/比較寄存器CCRx中。 用途:用途:1、測量軟件程序執(zhí)行所用時間。 2、測量硬件之間的時間。 3、測量頻率。 2、比較模式:當捕獲/比較控制寄存器CCTLx中的CAP=0時,該模塊工作于比較模式。Timer_A 有三個捕獲/比較器,在比較模式下有8個輸出模式第21頁/共48頁5、A/D一、msp430f449內(nèi)自帶A/D的主要特點:1、 12位轉換精度。2、有多種時鐘源可供選擇,內(nèi)帶時鐘發(fā)生器。3、配有8個外部通道和4個內(nèi)部通道。4、內(nèi)置參考電源,并且參考電壓Vref有6種組合。5、采樣速度快,最快200Ks/s

23、。6、四種工作模式: 1、單通道單次轉換模式: CONSEQ_0。 2、單通道多次轉換模式: CONSEQ_2。 3、序列通道單次轉換模式:CONSEQ_1 。 4、序列通道多次轉換模式:CONSEQ_3。二、ADC12內(nèi)部結構圖:第22頁/共48頁第23頁/共48頁三、A/D轉換的一般步驟: 1、選擇轉換通道: P6SEL|=0 x01; /使能A/D通道A0(P6.0); P6SEL|=BIT7; /使能A/D通道A7(P6.7); 2、打開ADC12內(nèi)核,設置采樣周期,參考電壓: ADC12CTL0=ADC12ON; /打開ADC12內(nèi)核; ADC12CTL0=SHT0_0; /設置采樣

24、周期為4/200KHZ*1 ADC12CTL0=REFON; /選擇內(nèi)部參考電壓為2.5V; ADC12CTL0=MSC; /多次采樣/轉換位 3、設置工作模式,轉換觸發(fā)方式: ADC12CTL1=SHP; /采樣信號SAMPCON來自采樣定時器 ADC12CTL1=ADC12SSEL_0; /采樣時鐘來自ADC12OSC為200KHZ ADC12CTL1=CONSEQ_2;/單通道多次轉換模式 4、使能轉換(即允許轉換): ADC12CTL0|=ENC; /使能轉換; 第24頁/共48頁注意:當MSC=1且SHP=1時,僅首次轉換由SHI信號的上升沿觸發(fā)采樣定 時器,之后采樣轉換將在前一次轉

25、換完成之后立即進行。5、開始轉換: ADC12CTL0|=ADC12SC; /開始轉換;四、幾種工作模式例程: 1、單通道單次轉換: void ADC_convert() P6SEL|=0 x01; /使能A/D通道A0(P6.0); ADC12CTL0=ADC12ON+ SHT0_0; /開ADC12內(nèi)核,設置采樣周期為4*200KHZ*1 ADC12CTL1=SHP; /采樣信號SAMPCON來自采樣定時器 ADC12CTL0|=ENC; /使能轉換; ADC12CTL0|=ADC12SC; /開始轉換; int Read_result() int result; result= ADC1

26、2MEM0; return (result); 第25頁/共48頁2、單通道多次轉換: Void ADC_convert() P6SEL|=0 x02; /使能A/D通道A1; ADC12CTL0=ADC12ON+SHT0_8+MSC; /打開ADC12內(nèi)核,設置為首次觸發(fā)即可,確定采樣周期為4*mclk*64,選擇內(nèi)部參考電壓為2.5v; ADC12CTL1=SHP+ADC12SSEL_2+CONSEQ_2; /設置為單通道多次轉換模式并且由采樣輸入信號的上升沿觸發(fā)采樣定時器 ; ADC12CTL0|=ENC; /使能轉換; ADC12CTL0|=ADC12SC; /開始轉換; int Re

27、ad_result() int result; result= ADC12MEM1; return (result); 第26頁/共48頁3、序列通道單次轉換: 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為序列結束信號 ADC12CTL0=ADC12ON+MSC+ SHT0_0; /開ADC12內(nèi)核,設置采樣周期為4*200KHZ*1 ADC12CT

28、L1=SHP+CONSEQ_1; /采樣信號SAMPCON來自采樣定時器 ADC12CTL0|=ENC; /使能轉換; ADC12CTL0|=ADC12SC; /開始轉換; _EINT(); /開中斷 #pragma vector=ADC_VECTOR_interrupt void ADC12ISR(void) result0 = ADC12MEM0; result1 = ADC12MEM1; result2 = ADC12MEM2; result3 = ADC12MEM3;第27頁/共48頁4、序列通道多次轉換: void ADC_convert() P6SEL|=0 x0f; ADC12M

29、CTL0=SREF_0+INCH_0; ADC12MCTL1=SREF_0+INCH_1; ADC12MCTL2=SREF_0+INCH_2; ADC12MCTL3=SREF_0+INCH_3+EOS; /EOS為序列結束信號 ADC12CTL0=ADC12ON+MSC+ SHT0_0; /開ADC12內(nèi)核,設置采樣周期為4*200KHZ*1 ADC12CTL1=SHP+CONSEQ_3; /采樣信號SAMPCON來自采樣定時器 ADC12CTL0|=ENC; /使能轉換; ADC12CTL0|=ADC12SC; /開始轉換; _EINT(); /開中斷 #pragma vector=ADC_

30、VECTOR_interrupt void ADC12ISR(void) result0 = ADC12MEM0; result1 = ADC12MEM1; result2 = ADC12MEM2; result3 = ADC12MEM3;第28頁/共48頁6、USART一、串口是系統(tǒng)與外界聯(lián)系的重要手段,我們有時需要使用上位機實現(xiàn)系統(tǒng)調試 及現(xiàn)場數(shù)據(jù)的采集和控制,msp430f449中有兩個串口模塊USART0、USART1 分別對應P2.4、P2.5和P4.0、P4.1都可實現(xiàn) UART異步通信和SPI同步通信。二、串行異步通信的主要特點: 1、兩個獨立的移位寄存器:輸入、輸出寄存器。 2

31、、傳輸7位或8位數(shù)據(jù),可采用奇校驗或偶校驗或無校驗。 3、數(shù)據(jù)在發(fā)送或接收時低位在先。 4、獨立的發(fā)送、接收中斷。 5、可編程實現(xiàn)分頻因子為整數(shù)或小數(shù)的波特率。三、USART模塊結構圖:第29頁/共48頁第30頁/共48頁四、串口通信的一般步驟(無校驗): 1、選擇串口模塊(USART0、USART1)。 USART1: P4SEL=0X03; P4DIR=0X01; /P4.0為發(fā)送TXD,P4.1為接收RXD 2、在SWRST=1時,設置串口。 U1CTL=SWRST; / 復位USART,并設置串口 3、選擇波特率發(fā)生器時鐘。 UTCTL1=SSEL1; /UCLK=MCLK 4、使能發(fā)

32、送、接收。 ME2=UTXE1+URXE1; /使能RXD TXD 5、設置字符長度。 U1CTL=CHAR; /設置字符長度為8位,默認時為7位 6、設置波特率。 注:UBR=U1BR0+U1BR1; 其值應大于3 U1BR0=0X1B; /存放波特率分頻因子的整數(shù)部分的低字節(jié) U1BR1=0X00; /存放波特率分頻因子的整數(shù)部分的高字節(jié) U1MCTL=0X03; /設置波特率為38400 7、SWRST=0,串口設置完畢。 U1CTL&=SWRST; /在SWRST為1之前設置串口 8、使能中斷。 IE2=URXIE1; /使能接收 中斷第31頁/共48頁7、PWM波一、Time

33、r_A在增計數(shù)模式下的PWM輸出:void PWM_Creat(int a,int b) TACTL=TASSEL_1+TACLR+ID_3; /選擇計數(shù)時鐘為ACLK,并進行8分頻,將計數(shù)器TAR清零 CCR0=255; /計數(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_

34、A為增計數(shù)模式 第32頁/共48頁二、增計數(shù)模式下的輸出:二、增計數(shù)模式下的輸出:第33頁/共48頁8、頭文件一、兩種頭文件使用方式: 1、#ifndef _ADC_H #define _ADC_H extern void ADC_convert(); extern int Read_result(); #endif 2、在工程里直接調用.C文件 第34頁/共48頁msp430launchpadMsp430g2553簡介:1、低工作電壓:1.83.6V2、超低功耗: 活動模式:280UA(1MHZ,2.2V) 待機模式 : 0.5UA 掉電模式 : (RAM數(shù)據(jù)保持)0.1UA3、有5種節(jié)電模

35、式4、從待機到喚醒的響應時間不超過1us5、10位A/D轉換器 (帶有內(nèi)部參考源、采樣保持,最大采樣率200Ks/s)6、16位精簡指令結構(RISC),6.25ns指令周期7、帶有3個捕獲/比較器結構的16位定時器8、串行通信可軟件選擇UART/SPI/I2C三種模式9、可在線串行編程,不需要外部編程電壓11、FLASH存儲器為16KB,RAM為512B第35頁/共48頁Msp430g2553結構圖第36頁/共48頁Msp430g25531、IO口2、時鐘3、中斷4、定時5、AD6、PWM波第37頁/共48頁1、IO一、P口的基本特點:1、有P1、P2兩個可獨立編程的IO口。2、每個P口都有

36、輸入、輸出、中斷功能。3、對P口控制寄存器的讀寫支持所有指令集。4、每一個P口都有獨立可編程的上拉、下拉電阻。二、P口的 基本操作: 大致同msp430f449相同,注意:在將P2.6、P2.7作為普通IO口時,需要進行以下設置: P2SEL&=(BIT6+BIT7); 第38頁/共48頁三、三、IO口的復用:口的復用:第39頁/共48頁2、時鐘一、時鐘源: 1、ACLK:系統(tǒng)輔助時鐘,來自 LFXT1CLK 為32768HZ。 2、MCLK:系統(tǒng)主時鐘,有以下5種選擇: 1、32768HZ,來自ACLK。 2、1MHZ: BCSCTL1 = CALBC1_1MHZ; DCOCTL =

37、 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)時鐘,一般為16MHZ。 第40頁/共48頁二、時鐘結構圖:二、時鐘結構圖:第41頁/共48頁3、中斷一、其中斷基本同msp430f449一樣。二、例程: void interrupt_initial() P1DIR&a

38、mp;=BIT7; /P1.7為輸入 P1SEL|=BIT7; P1IE|=BIT7; /P1.7中斷允許 P1IES|=0 x80; /P1.7下降沿觸發(fā) P1IFG=0; /P1.7中斷標志清除,對于多源中斷必須先清中斷標志再打開中斷 P1DIR|=BIT6; P1OUT&=BIT6; _EINT(); /總中斷允許#pragma vector=PORT1_VECTOR_interrupt void Port_1(void) P1IFG&=BIT7; /P1.7中斷標志清除 P1OUT|=BIT6; /點亮綠燈第42頁/共48頁4、定時一、其定時基本同msp430f449一樣。二、例程:void zengjishu() TACTL=TASSEL_2+TACLR+ID_3; /選擇計數(shù)時鐘為MCLK,并進行8

溫馨提示

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

評論

0/150

提交評論