實驗6實驗名稱:基本時鐘和低功耗模式_第1頁
實驗6實驗名稱:基本時鐘和低功耗模式_第2頁
實驗6實驗名稱:基本時鐘和低功耗模式_第3頁
實驗6實驗名稱:基本時鐘和低功耗模式_第4頁
實驗6實驗名稱:基本時鐘和低功耗模式_第5頁
免費預覽已結束,剩余8頁可下載查看

下載本文檔

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

文檔簡介

1、實驗名稱:基本時鐘和低功耗模式2)姓名: 實驗班號:學號:機器號:.實驗目的掌握其控制方法;1. 了解MSP430Gxxx基本時鐘模塊的工作原理,2. 掌握利用時鐘信號和中斷技術實現(xiàn)定時功能的方法;3 .掌握低功耗模式控制方法。二.實驗任務1. 數(shù)字示波器的使用(在實驗5中已完成)1 )將信號源的波形在示波器上顯示出來,掌握測量周期、頻率、峰峰值的方法;2)用導線將實驗板的地信號與示波器的地信號相連,測量實驗板上的VCC電源信號是否正常。2. 測試上電復位系統(tǒng)ACLK和SMCLK寸鐘頻率,了解基本時鐘模塊控制寄存器各位作用。 新創(chuàng)建一個 MSP430G2553項目,在給出的 main.c基礎上

2、,編程輸出單片機上電復位后的ACLK和SMCLK時鐘,用示波器測量其頻率值,記錄下來。答:上電復位后的ACLK時鐘頻率為32.77kHz 上電復位后的SMCLK時鐘頻率為1.04MHz程序見程序清單中的程序 2.C思考:將實驗板上JP8中間的兩個插針接到:(1)32.768KH 晶振側(cè),如圖 6-1;(2)P2.&P2.7 側(cè),如圖 6-2。測得ACLK的結果有何不同?1)JPS9 卜Crv5lalCrystal* 圖6-2圖6-1答:接到32.768KH晶振側(cè)時,測得結果為32.77kHz,接到P2.6/P2.7側(cè),測得結果為 890kHz。在debug下如圖6-3,通過View/Regis

3、ter更改System Clock模塊控制寄存器值,分別置DIVA1、 DIVA0=01、11; DIVS1、DIVS0=10 11;置 LFXT1S0 LFXT1S0=00 10,記錄示波器測量得到 的ACLK( P1.0輸出)和SMCLK ( P1.4輸出)的頻率值,填寫在表6-1、6-2、6-3中,掌握時鐘模塊各控制寄存器相關位的作用。+1DCOCTLOkOOnBCSCTL2 BCSCTLS3BCSCTL10k20-SELS=0-XT2S0-RSELO0-DIVHO=0L XT2S1-RSELl0-DIVMl=0-RSEL20-SELMO=0-RSEL30L SELHl=0-DIVA00

4、E3BCSCTL3=OkOO000000-LFXT1OF -XT2OF-XCAP0-XCAP1-LF2T1S0 -LFXT1S1IH 00OkOO00DIVA1 XTS XT2OFF ABCSCTL2 -DIVS0 -DIVS1=0=0RegisterSystem Clock圖6-3 通過View/Register更改System Clock模塊控制寄存器值表 6-1 DIVAxx與 ACLK關系DIVA1DIVA0ACLK頻率值作用0116.39kHzACLK二分頻114.0963kHzACLK八分頻表 6-2 DIVSxx與 SMCLK關系DIVS1DIVS0SMCLK頻率值作用1026.

5、6kHzSMCLK四分頻11133.0kHzSMCLK八分頻表 6-3 LFXT1SX)與 ACLK關系LFXT1S1LFXT1S0ACLK頻率值時鐘來源0032.77kHz外部晶振1011.762kHzVLOCLK3)分析上電復位后,CPU工作的時鐘信號 MCLK頻率值是多少?答:根據(jù)上電復位后寄存器的值,可以發(fā)現(xiàn)上電復位后MCLK頻率值實際上是與 SMCLK頻率值相等的(時鐘源均為 DCO,且均為一分頻),而上電復位后測得的 SMCLK時鐘頻率為1.04MHz , 故上電復位后 MCLK頻率值為1.04MHz。4)(提高)置 RSEL3RSELO=111;1DC02DCOO=111;記錄當

6、前 SMCLK的頻率值。這是基本時鐘模 塊提供的最咼頻率值。答:SMLCK的值為 20.1MHz。3. 掌握基本時鐘模塊的編程控制參看附錄A實驗板原理圖,如圖 6-1用跳線將JP8中的插針信號接到晶振 32.768Khz側(cè)。編程控 制基本時鐘模塊,設置 ACLK分別為下面時鐘頻率,并通過P1.0輸出ACLK用示波器觀察:1) ACLK=16.384Hz (外部晶振二分頻,約為32768Hz/2)答:ACLK的頻率為32.77kHz。程序見程序清單中的程序3.1.C。2)ACLK=VLOCLK/;(內(nèi)部 VLOCLK八分頻,約為 12KHZ/8) 答:ACLK的頻率為1.4243kHz。程序見程

7、序清單中的程序 3.2.C。思考:可否通過對時鐘模塊編程在引腳P2.4上輸出ACLK?為什么?答:不可以,因為引腳P2.4在硬件層面上并未與 ACLK的輸出引腳相連,所以無論如何對時鐘模 塊進行編程都無法做到在引腳P2.4上輸出ACLK4. DCO出廠校驗值的頻率檢測1 )利用出廠校驗值,編程使 DCO分別為1MHz、16MHz,通過P1.4輸出,并用示波器測量實際 值。答:1MHz的實際值為 960kHz,16MHz的實際值為 15.9MHz。程序見程序清單中的程序4.1.C。2)(提高)在實驗1例程test_2553.c基礎上,分別編程使主系統(tǒng)時鐘工作在MCLK =復位頻率/8約100KH

8、Z; (2) MCLK=DCO=16MHz 兩種不同MCLK頻率下,觀察燈的亮滅速度有何不 同,掌握主系統(tǒng)時鐘的變化對程序執(zhí)行速度的影響。答:在MCLK =復位頻率/8時,燈的亮滅速度較慢,在MCLK=DCO=16MHz時,燈的亮滅速度較快??梢娭飨到y(tǒng)時鐘頻率越高,程序執(zhí)行的速度越快。程序見程序清單中的程序4.2.C。5.低功耗模式學習程序L6_LPM.C見下,用跳線將 P2.3與L4短接,將P2.4用長杜邦線與buzz短接,P1.1與K2短接,用示波器分別觀察P1.0、P1.4輸出的ACLK和SMCLK 了解低功耗模式的進入和退出。1) 運行程序,觀察現(xiàn)象,并記錄進入低功耗前、進入低功耗后、

9、響應中斷后、退出中斷后的 時鐘、發(fā)光二極管和蜂鳴器狀態(tài),并做分析。答:進入低功耗前:LED燈閃亮五次,隨后蜂鳴器鳴響三次,ACLK=32.77kHz SMCLK=1.09MHz3進入低功耗后:LED燈不亮,蜂鳴器不響,ACLK與 SMCLK均無信號。響應中斷后:LED燈不亮,蜂鳴器鳴響三次,ACLK=32.81kHz SMCLK=1MHz退出中斷后:LED燈不亮,蜂鳴器不響,ACLK與 SMCLK均無信號。發(fā)生以上現(xiàn)象的原因是在程序執(zhí)行至LPM4前,程序正常執(zhí)行,時鐘有信號;程序執(zhí)行至LPM4后,單片機進入了 LPM4, CPU MCLK、SMCLK DCO均禁止,故程序不再向下執(zhí)行,時鐘無信

10、 號;中斷發(fā)生之后單片機被喚醒,恢復活動模式,中斷子程開始執(zhí)行,時鐘有信號;在退出中斷之后單片機又回到了 LPM4,故程序不再向下執(zhí)行,時鐘無信號。2)如果中斷程序中有 LPM 4_EXIT語句,運行的結果會有什么不同?請分析。答:在退出中斷之后,LED閃亮五次,蜂鳴器不響,ACLK=32.77kHz SMCLK=1.06MHz隨后LED燈不亮,蜂鳴器不響,ACLK與 SMCLK均無信號。因為中斷子程中關閉了低功耗模式,所以中斷子程結束之后單片機依舊為活動模式,所以程序繼續(xù)向下執(zhí)行,時鐘有信號。不過由于之后程序經(jīng)過循環(huán)體的循環(huán)又執(zhí)行了LPM4;語句,故單片機又回到了 LPM4,故程序不再向下進

11、行,時鐘無信號。6.(提高)利用輸出的時鐘信號做中斷源,實現(xiàn)定時功能將任務3中P1.0輸出的ACLK=VLOCLK/時鐘信號,作為 P1.7的中斷申請信號,用導線將P1.7ACLK與P1.0相連即可,在中斷函數(shù)中設置一個計數(shù)變量,計數(shù)中斷函數(shù)被執(zhí)行的次數(shù),如果的頻率值為1.5KHz(實驗時,以實測的為準),那么中斷函數(shù)每被執(zhí)行 1500次表示一秒時間到。 利用該定時功能,將8個發(fā)光二級管設計成一個秒表,顯示秒值,每秒改變一次 8個發(fā)光二級管的顯示。答:程序見程序清單中的程序6.1.C。思考:如果要每隔5秒蜂鳴器響一聲,如何在任務6的基礎上編程實現(xiàn)?答:程序見程序清單中的程序6.2.C。程序清單

12、:程序2.C#i nclude io430.hint mai n( void )/ Stop watchdog timer to prevent time out resetWDTCTL = WDT PW + WDTHOLD;P 1.0輸出時鐘 ACLK, P1.4輸出時鐘SMCLKP1SEL FBIT0+BIT4;P1SEL2 &=(BIT0+BIT4);P1DIR |=BIT0+BIT4;while(1);程序3.1.C#i nclude io430.hun sig ned int i;int mai n( void )/ Stop watchdog timer to prevent ti

13、me out resetWDTCTL = WDT PW + WDTHOLD;P 1.0輸出時鐘 ACLK, P1.4輸出時鐘 SMCLKP1SEL |=BIT0+BIT4;P1SEL2 &=(BIT0+BIT4);P1DIR |=BIT0+BIT4;while(IFG1 & OFIFG)!=0)IFG1 &=OFIFG;for(i=0;i=0xffff;i+);BCSCTL3 |= LFXT1S_0;BCSCTL1 |= DIVA_1;while(1);程序32c#i nclude io430.hint mai n( void )/ Stop watchdog timer to prevent

14、 time out resetWDTCTL = WDT PW + WDTHOLD;P 1.0輸出時鐘 ACLK, P1.4輸出時鐘 SMCLKP1SEL FBIT0+BIT4;P1SEL2 &=(BIT0+BIT4);P1DIR |=BIT0+BIT4;BCSCTL3 |= LFXT1S_2;BCSCTL1 |= DIVA_3;while(1);程序4.1.C#i nclude io430.hint mai n( void )/ Stop watchdog timer to prevent time out resetWDTCTL = WDT PW + WDTHOLD;P 1.0輸出時鐘 AC

15、LK, P1.4輸出時鐘SMCLKP1SEL |=BIT0+BIT4;P1SEL2 &=(BIT0+BIT4);P1DIR |=BIT0+BIT4;/ (1 )使 DCO為 1MHzif(CALBC1_1MHZ!= 0xff)BCSCTL1=CALBC1_1MH Z;DCOCTL=CALDCO_1MH Z;/ (2)使 DCO為 16MHz/*if(CALBC1_16MHZ!= 0xff)BCSCTL仁CALBC1_16MH Z;DCOCTL=CALDCO_16MH Z;*/while(1);程序4.2.C#i nclude io430.hun sig ned int i;int mai n

16、( void ) unsigned int j; /定義延時變量WDTCTL = WDTPW + WDTHOLD; / 關閉看門狗/ (1) MCLK =復位頻率/8BCSCTL2 |= DIVM_3;/ (2) MCLK=DCO=16MHz /*if(CALBC1_16MHZ!= 0xff)BCSCTL1=CALBC1_16MHZ;DCOCTL=CALDCO_16MH Z;*/P 2SEL &=(BIT2+BIT5);/設置引腳P2.2和P2.5為基本輸入輸出功能P2SEL2 &=(BIT2+BIT5);P 2OUT FBIT2+BIT5;設置引腳P2.2和P2.5輸出的初值為1P2DIR

17、FBIT2+BIT5;設置端口 P2.2和P2.5為輸出方向/主循環(huán)P 2OUT A=(BIT2+BIT5);/將P2.2和P2.5的值取反后輸出for (i=0;i0xffff;i+); / 延時;程序 L6_LPM.C#i nclude io430.h#i nclude in 43O.h void delay( un sig ned int i) / 延時函數(shù)un sig ned int k;/定乂局部變量/LED 閃for (k=0;ki;k+);void Bli nk()un sig ned int i;for (i=0;i5;i+) P 2OUT &= BIT3;delay(0xe0

18、00);P 2OUT |=BIT3;delay(0xe000);/蜂鳴響;void Buzz()un sig ned int i;for (i=0;i3;i+) P 2OUT &= BIT4;delay(0xf800);P 2OUT |=BIT4;delay(0xf800);intmai n ( void )WDTCTL = WDTPW + WDTHOLD; / 關閉看門狗/設置端口 P2.3輸出,控制LED,P2.4輸出,控制蜂鳴器P 2SEL &=(BIT3+BIT4);P2SEL2 &=(BIT3+BIT4);P 2OUT |= BIT3+BIT4;P2DIR |= BIT3+BIT4;

19、/設置端口 P1.1允許中斷P1SEL &=BIT1;P1SEL2 &=BIT1;P1REN |=BIT1;P1OUT |=BIT1;P1DIR &=BIT1;P1IES |=BIT1;P1IFG &=BIT1;P1IE |=BIT1;_EINT();P 1.0輸出時鐘 ACLK, P1.4輸出時鐘 SMCLKP1SEL FBIT0+BIT4;P1SEL2 &=(BIT0+BIT4);P1DIR |=BIT0+BIT4;Bli nk();Buzz();for (;)/主循環(huán)LPM4; /Bli nk();#p ragma vector= P0RT1_VECT0R_in terr uptvoid

20、 po rt_ISR()Buzz();P1IFG&=(BIT1);/清中斷標志/L PM 4_EXIT;程序6.1.C#i nclude io430.h #i nclude in430.h int mai n( void )/ Stop watchdog timer to prevent time out resetWDTCTL = WDT PW + WDTHOLD;P 1.0輸出時鐘ACLKP1SEL |=BIT0;P1SEL2 &=BIT0;P1DIR |=BIT0;/設置輸入輸出P1SEL&=BIT7;P1SEL2&=BIT7;P1DIR&=BIT7;P1SEL &=BIT1;P1SEL

21、2 &=BIT1;P1DIR |=BIT1;P1OUT |=BIT1;P2SEL = 0x00;P 2SEL2 = 0x00;P2DIR = 0xff;/設置時鐘BCSCTL3 |= LFXT1S_2;BCSCTL1 |= DIVA_3;/設置中斷P 1IES|=BIT7;P1IFG&=BIT7;P 1IE|=BIT7;_EINT();LPM0;un sig ned int count = 0;un sig ned char num = 0;#pragma vector= PORT1_VECTOR/置 P1 中斷向量_in terr upt void LED()coun t+;if(count=1424)/1424根據(jù)之前的實測值確定nu m+;P2OUT= num

溫馨提示

  • 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

提交評論