實(shí)驗(yàn)6實(shí)驗(yàn)名稱:基本時鐘和低功耗模式_第1頁
實(shí)驗(yàn)6實(shí)驗(yàn)名稱:基本時鐘和低功耗模式_第2頁
實(shí)驗(yàn)6實(shí)驗(yàn)名稱:基本時鐘和低功耗模式_第3頁
實(shí)驗(yàn)6實(shí)驗(yàn)名稱:基本時鐘和低功耗模式_第4頁
實(shí)驗(yàn)6實(shí)驗(yàn)名稱:基本時鐘和低功耗模式_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

2、基礎(chǔ)上,編程輸出單片機(jī)上電復(fù)位后的aclk 、和 smclk 時鐘,用示波器測量其頻率值,記錄下來。答:上電復(fù)位后的aclk時鐘頻率為32.77khz 上電復(fù)位后的smclk 時鐘頻率為1.04mhz 程序見程序清單中的程序2.c 思考:1)將實(shí)驗(yàn)板上jp8 中間的兩個插針接到:(1) 32.768kh晶振側(cè),如圖6-1 ;(2) p2.6/p2.7側(cè),如圖6-2 。測得 aclk的結(jié)果有何不同? 圖 6-1 圖 6-2 答: 接到 32.768kh 晶振側(cè)時,測得結(jié)果為32.77khz ,接到 p2.6/p2.7側(cè),測得結(jié)果為890khz。2)在 debug 下如圖 6-3 ,通過 view

3、/register 更改 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中,掌握時鐘模塊各控制寄存器相關(guān)位的作用。實(shí)用文檔圖 6-3 通過 view/register 更改 system clock模塊控制寄存器值表 6-1 divaxx與 aclk關(guān)系diva1 diva0 aclk頻率值作用0 1 16.39khz aclk二分頻1 1 4.0

4、963khz aclk八分頻表 6-2 divsxx與 smclk 關(guān)系divs1 divs0 smclk 頻率值作用1 0 26.6khz smclk 四分頻1 1 133.0khz smclk 八分頻表 6-3 lfxt1sxx與 aclk關(guān)系lfxt1s1 lfxt1s0 aclk頻率值時鐘來源0 0 32.77khz 外部晶振1 0 11.762khz vloclk 3)分析上電復(fù)位后,cpu工作的時鐘信號mclk 頻率值是多少?答: 根據(jù)上電復(fù)位后寄存器的值,可以發(fā)現(xiàn)上電復(fù)位后mclk 頻率值實(shí)際上是與smclk 頻率值相等的(時鐘源均為dco ,且均為一分頻) ,而上電復(fù)位后測得的

5、smclk 時鐘頻率為1.04mhz,故上電復(fù)位后mclk 頻率值為1.04mhz。4)( 提高 ) 置 rsel3rsel0=1111 ;dco2dco0=111;記錄當(dāng)前smclk 的頻率值。這是基本時鐘模塊提供的最高頻率值。答: smlck 的值為 20.1mhz。3.掌握基本時鐘模塊的編程控制參看附錄a 實(shí)驗(yàn)板原理圖,如圖6-1 用跳線將jp8 中的插針信號接到晶振32.768khz 側(cè)。編程控制基本時鐘模塊,設(shè)置aclk分別為下面時鐘頻率,并通過p1.0 輸出 aclk ,用示波器觀察:1) aclk=16.384hz; (外部晶振二分頻,約為32768hz/2 )答: aclk的頻

6、率為32.77khz 。程序見程序清單中的程序3.1.c 。實(shí)用文檔2) aclk=vloclk/8 ;( 內(nèi)部 vloclk 八分頻,約為12khz/8) 答: aclk的頻率為1.4243khz 。程序見程序清單中的程序3.2.c 。思考:可否通過對時鐘模塊編程在引腳p2.4 上輸出 aclk ? 為什么?答: 不可以,因?yàn)橐_p2.4 在硬件層面上并未與aclk的輸出引腳相連,所以無論如何對時鐘模塊進(jìn)行編程都無法做到在引腳p2.4 上輸出 aclk 。4.dco 出廠校驗(yàn)值的頻率檢測1)利用出廠校驗(yàn)值,編程使 dco 分別為 1mhz 、16mhz ,通過 p1.4 輸出,并用示波器測量

7、實(shí)際值。答: 1mhz的實(shí)際值為960khz,16mhz的實(shí)際值為15.9mhz。程序見程序清單中的程序4.1.c 。2)(提高) 在實(shí)驗(yàn) 1 例程 test_2553.c基礎(chǔ)上,分別編程使主系統(tǒng)時鐘工作在(1) mclk = 復(fù)位頻率 /8 約 100khz ;(2) mclk=dco=16mhz; 兩種不同mclk 頻率下,觀察燈的亮滅速度有何不同,掌握主系統(tǒng)時鐘的變化對程序執(zhí)行速度的影響。答: 在 mclk = 復(fù)位頻率 /8 時,燈的亮滅速度較慢,在mclk=dco=16mhz時,燈的亮滅速度較快??梢娭飨到y(tǒng)時鐘頻率越高,程序執(zhí)行的速度越快。程序見程序清單中的程序4.2.c 。5.低功

8、耗模式學(xué)習(xí)程序 l6_lpm.c 見下,用跳線將p2.3 與 l4 短接,將p2.4 用長杜邦線與buzz 短接, p1.1 與 k2短接,用示波器分別觀察p1.0 、p1.4 輸出的 aclk和 smclk ,了解低功耗模式的進(jìn)入和退出。1)運(yùn)行程序,觀察現(xiàn)象,并記錄進(jìn)入低功耗前、進(jìn)入低功耗后、響應(yīng)中斷后、退出中斷后的時鐘、發(fā)光二極管和蜂鳴器狀態(tài),并做分析。答:進(jìn)入低功耗前:led燈閃亮五次,隨后蜂鳴器鳴響三次,aclk=32.77khz,smclk=1.09mhz 。進(jìn)入低功耗后:led燈不亮,蜂鳴器不響,aclk與 smclk 均無信號。響應(yīng)中斷后:led燈不亮,蜂鳴器鳴響三次,aclk

9、=32.81khz,smclk=1mhz。退出中斷后:led燈不亮,蜂鳴器不響,aclk與 smclk 均無信號。發(fā)生以上現(xiàn)象的原因是在程序執(zhí)行至lpm4前,程序正常執(zhí)行,時鐘有信號;程序執(zhí)行至lpm4后,單片機(jī)進(jìn)入了lpm4 ,cpu 、mclk 、smclk 、dco均禁止,故程序不再向下執(zhí)行,時鐘無信號;中斷發(fā)生之后單片機(jī)被喚醒,恢復(fù)活動模式,中斷子程開始執(zhí)行,時鐘有信號;在退出中斷之后單片機(jī)又回到了lpm4 ,故程序不再向下執(zhí)行,時鐘無信號。2)如果中斷程序中有l(wèi)pm4_exit 語句,運(yùn)行的結(jié)果會有什么不同?請分析。答: 在退出中斷之后,led閃亮五次,蜂鳴器不響,aclk=32.7

10、7khz,smclk=1.06mhz ,隨后 led實(shí)用文檔燈不亮,蜂鳴器不響,aclk與 smclk 均無信號。因?yàn)橹袛嘧映讨嘘P(guān)閉了低功耗模式,所以中斷子程結(jié)束之后單片機(jī)依舊為活動模式,所以程序繼續(xù)向下執(zhí)行,時鐘有信號。不過由于之后程序經(jīng)過循環(huán)體的循環(huán)又執(zhí)行了lpm4;語句,故單片機(jī)又回到了lpm4 ,故程序不再向下進(jìn)行,時鐘無信號。6.(提高)利用輸出的時鐘信號做中斷源,實(shí)現(xiàn)定時功能將任務(wù) 3 中 p1.0 輸出的 aclk=vloclk/8 時鐘信號, 作為 p1.7 的中斷申請信號,用導(dǎo)線將 p1.7與 p1.0 相連即可,在中斷函數(shù)中設(shè)置一個計數(shù)變量,計數(shù)中斷函數(shù)被執(zhí)行的次數(shù),如果a

11、clk的頻率值為1.5khz(實(shí)驗(yàn)時, 以實(shí)測的為準(zhǔn)) ,那么中斷函數(shù)每被執(zhí)行1500 次表示一秒時間到。利用該定時功能,將8 個發(fā)光二級管設(shè)計成一個秒表,顯示秒值,每秒改變一次8 個發(fā)光二級管的顯示。答: 程序見程序清單中的程序6.1.c 。思考: 如果要每隔5 秒蜂鳴器響一聲,如何在任務(wù)6 的基礎(chǔ)上編程實(shí)現(xiàn)?答: 程序見程序清單中的程序6.2.c 。實(shí)用文檔程序清單:程序 2.c #include io430.h int main( void ) / stop watchdog timer to prevent time out reset wdtctl = wdtpw + wdthold

12、; /p1.0輸出時鐘aclk, p1.4 輸出時鐘smclk p1sel |=bit0+bit4; p1sel2 &=(bit0+bit4); p1dir |=bit0+bit4; while(1); 程序 3.1.c #include io430.h unsigned int i; int main( void ) / stop watchdog timer to prevent time out reset wdtctl = wdtpw + wdthold; /p1.0輸出時鐘aclk, p1.4 輸出時鐘smclk p1sel |=bit0+bit4; p1sel2 &

13、=(bit0+bit4); p1dir |=bit0+bit4; while(ifg1 & ofifg)!=0) ifg1 &=ofifg; for(i=0;i=0 xffff;i+); ; bcsctl3 |= lfxt1s_0; bcsctl1 |= diva_1; while(1); 實(shí)用文檔程序 3.2.c #include io430.h int main( void ) / stop watchdog timer to prevent time out reset wdtctl = wdtpw + wdthold; /p1.0輸出時鐘aclk, p1.4 輸出時鐘s

14、mclk p1sel |=bit0+bit4; p1sel2 &=(bit0+bit4); p1dir |=bit0+bit4; bcsctl3 |= lfxt1s_2; bcsctl1 |= diva_3; while(1); 程序 4.1.c #include io430.h int main( void ) / stop watchdog timer to prevent time out reset wdtctl = wdtpw + wdthold; /p1.0輸出時鐘aclk, p1.4 輸出時鐘smclk p1sel |=bit0+bit4; p1sel2 &=(b

15、it0+bit4); p1dir |=bit0+bit4; /(1)使 dco 為 1mhz if(calbc1_1mhz!= 0 xff) bcsctl1=calbc1_1mhz; dcoctl=caldco_1mhz; /(2)使 dco 為 16mhz 實(shí)用文檔 /* if(calbc1_16mhz!= 0 xff) bcsctl1=calbc1_16mhz; dcoctl=caldco_16mhz; */ while(1); 程序 4.2.c #include io430.h unsigned int i; int main ( void ) unsigned int j; / 定義延

16、時變量wdtctl = wdtpw + wdthold; / 關(guān)閉看門狗/ (1) mclk = 復(fù)位頻率 /8 bcsctl2 |= divm_3; / (2) mclk=dco=16mhz /* if(calbc1_16mhz!= 0 xff) bcsctl1=calbc1_16mhz; dcoctl=caldco_16mhz; */ p2sel &=(bit2+bit5); / 設(shè)置引腳p2.2 和 p2.5 為基本輸入輸出功能p2sel2 &=(bit2+bit5); p2out |=bit2+bit5; / 設(shè)置引腳p2.2 和 p2.5 輸出的初值為1 p2dir

17、|=bit2+bit5; / 設(shè)置端口p2.2 和 p2.5 為輸出方向for (;) / 主循環(huán) p2out =(bit2+bit5); /將 p2.2 和 p2.5 的值取反后輸出for (i=0;i0 xffff;i+); /延時; 實(shí)用文檔程序 l6_lpm.c #include io430.h #include in430.h void delay( unsigned int i) / 延時函數(shù) unsigned int k; /定義局部變量 for (k=0;ki;k+); void blink( ) /led 閃 unsigned int i; for (i=0;i5;i+) p

18、2out &= bit3; delay(0 xe000); p2out |=bit3; delay(0 xe000); ; void buzz( ) / 蜂鳴響 unsigned int i; for (i=0;i3;i+) p2out &= bit4; delay(0 xf800); p2out |=bit4; delay(0 xf800); ; int main ( void ) wdtctl = wdtpw + wdthold; / 關(guān)閉看門狗/ 設(shè)置端口p2.3 輸出,控制led,p2.4 輸出,控制蜂鳴器p2sel &=(bit3+bit4); p2sel2&

19、amp;=(bit3+bit4); p2out |= bit3+bit4; p2dir |= bit3+bit4; / 設(shè)置端口p1.1 允許中斷p1sel &=bit1; p1sel2 &=bit1; p1ren |=bit1; 實(shí)用文檔p1out |=bit1; p1dir &=bit1; p1ies |=bit1; p1ifg &=bit1; p1ie |=bit1; _eint(); /p1.0輸出時鐘aclk, p1.4 輸出時鐘smclk p1sel |=bit0+bit4; p1sel2 &=(bit0+bit4); p1dir |=bit

20、0+bit4; blink(); buzz(); for (;) /主循環(huán) lpm4; / blink(); #pragma vector=port1_vector _interrupt void port_isr( ) buzz(); p1ifg&=(bit1); /清中斷標(biāo)志/lpm4_exit; 程序 6.1.c #include io430.h #include in430.h int main( void ) / stop watchdog timer to prevent time out reset wdtctl = wdtpw + wdthold; /p1.0輸出時鐘a

21、clk p1sel |=bit0; 實(shí)用文檔 p1sel2 &=bit0; p1dir |=bit0; /設(shè)置輸入輸出 p1sel&=bit7; p1sel2&=bit7; p1dir&=bit7; p1sel &=bit1; p1sel2 &=bit1; p1dir |=bit1; p1out |=bit1; p2sel = 0 x00; p2sel2 = 0 x00; p2dir = 0 xff; /設(shè)置時鐘 bcsctl3 |= lfxt1s_2; bcsctl1 |= diva_3; /設(shè)置中斷 p1ies|=bit7; p1ifg&=bit7; p1ie|=bit7; _eint(); lpm0; unsigned int count = 0; unsigned char num = 0; #pragma vector=port1_vector/置 p1 中斷向量_interrupt void led() count+; if(count=1424)/1424根據(jù)之前的實(shí)測值確定 num+; p2out=num; count=0; p1ifg&=bit7; 實(shí)用文檔程序 6.2.c #include io430.h #in

溫馨提示

  • 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

提交評論