




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實驗名稱:基本時鐘和低功耗模式姓名: 學號:實驗班號: 機器號:一實驗目的1. 了解MSP430Gxxx基本時鐘模塊的工作原理,掌握其控制方法;2. 掌握利用時鐘信號和中斷技術實現定時功能的方法;3掌握低功耗模式控制方法。二. 實驗任務1. 數字示波器的使用(在實驗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思考:1) 將實驗板上JP8中間的兩個插針接到:(1) 32.768KH晶振側,如圖6-1;(2) P2.6/P2.7側,如圖6-2。測得ACLK的結果有何不同? 圖6-1 圖6-2答:接到32.768KH晶振側時,測得結果為32.77kHz,接到P2.6/P2.7側,測得結果為890kHz。2) 在debug下如圖6-3,通過View/Register 更改System Clock模塊控制寄存
3、器值,分別置DIVA1、DIVA0=01、11;DIVS1、DIVS0=10、11;置LFXT1S0、LFXT1S0=00、10,記錄示波器測量得到的ACLK(P1.0輸出)和SMCLK(P1.4輸出)的頻率值,填寫在表6-1、6-2、6-3中,掌握時鐘模塊各控制寄存器相關位的作用。圖6-3 通過View/Register 更改System Clock模塊控制寄存器值表6-1 DIVAxx與ACLK關系DIVA1DIVA0ACLK頻率值作用0116.39kHzACLK二分頻114.0963kHzACLK八分頻表6-2 DIVSxx與SMCLK關系DIVS1DIVS0SMCLK頻率值作用1026
4、.6kHzSMCLK四分頻11133.0kHzSMCLK八分頻表6-3 LFXT1Sxx與ACLK關系LFXT1S1LFXT1S0ACLK頻率值時鐘來源0032.77kHz外部晶振1011.762kHzVLOCLK3) 分析上電復位后,CPU工作的時鐘信號MCLK頻率值是多少?答:根據上電復位后寄存器的值,可以發(fā)現上電復位后MCLK頻率值實際上是與SMCLK頻率值相等的(時鐘源均為DCO,且均為一分頻),而上電復位后測得的SMCLK時鐘頻率為1.04MHz,故上電復位后MCLK頻率值為1.04MHz。4) (提高)置RSEL3RSEL0=1111;DCO2DCO0=111;記錄當前SMCLK的
5、頻率值。這是基本時鐘模塊提供的最高頻率值。 答:SMLCK的值為20.1MHz。3. 掌握基本時鐘模塊的編程控制參看附錄A實驗板原理圖,如圖6-1用跳線將JP8中的插針信號接到晶振32.768Khz側。編程控制基本時鐘模塊,設置ACLK分別為下面時鐘頻率,并通過P1.0輸出ACLK,用示波器觀察:1) ACLK=16.384Hz;(外部晶振二分頻,約為32768Hz/2)答:ACLK的頻率為32.77kHz。程序見程序清單中的程序3.1.c。2) ACLK=VLOCLK/8;(內部VLOCLK 八分頻,約為12KHz/8)答:ACLK的頻率為1.4243kHz。程序見程序清單中的程序3.2.c
6、。思考:可否通過對時鐘模塊編程在引腳P2.4上輸出ACLK? 為什么?答:不可以,因為引腳P2.4在硬件層面上并未與ACLK的輸出引腳相連,所以無論如何對時鐘模塊進行編程都無法做到在引腳P2.4上輸出ACLK。4. DCO出廠校驗值的頻率檢測1) 利用出廠校驗值,編程使DCO分別為1MHz、16MHz,通過P1.4輸出,并用示波器測量實際值。 答:1MHz的實際值為960kHz,16MHz的實際值為15.9MHz。程序見程序清單中的程序4.1.c。2) (提高)在實驗1例程test_2553.c基礎上,分別編程使主系統(tǒng)時鐘工作在 (1) MCLK = 復位頻率/8 約100KHz;(2) MC
7、LK=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) 運行程序,觀察現象,并記錄進入低功耗前、進入低功耗后、響應中斷后、
8、退出中斷后的時鐘、發(fā)光二極管和蜂鳴器狀態(tài),并做分析。答:進入低功耗前:LED燈閃亮五次,隨后蜂鳴器鳴響三次,ACLK=32.77kHz,SMCLK=1.09MHz。進入低功耗后:LED燈不亮,蜂鳴器不響,ACLK與SMCLK均無信號。響應中斷后:LED燈不亮,蜂鳴器鳴響三次,ACLK=32.81kHz,SMCLK=1MHz。退出中斷后:LED燈不亮,蜂鳴器不響,ACLK與SMCLK均無信號。發(fā)生以上現象的原因是在程序執(zhí)行至LPM4前,程序正常執(zhí)行,時鐘有信號;程序執(zhí)行至LPM4后,單片機進入了LPM4,CPU、MCLK、SMCLK、DCO均禁止,故程序不再向下執(zhí)行,時鐘無信號;中斷發(fā)生之后單片
9、機被喚醒,恢復活動模式,中斷子程開始執(zhí)行,時鐘有信號;在退出中斷之后單片機又回到了LPM4,故程序不再向下執(zhí)行,時鐘無信號。2) 如果中斷程序中有LPM4_EXIT 語句,運行的結果會有什么不同?請分析。答:在退出中斷之后,LED閃亮五次,蜂鳴器不響,ACLK=32.77kHz,SMCLK=1.06MHz,隨后LED燈不亮,蜂鳴器不響,ACLK與SMCLK均無信號。因為中斷子程中關閉了低功耗模式,所以中斷子程結束之后單片機依舊為活動模式,所以程序繼續(xù)向下執(zhí)行,時鐘有信號。不過由于之后程序經過循環(huán)體的循環(huán)又執(zhí)行了LPM4;語句,故單片機又回到了LPM4,故程序不再向下進行,時鐘無信號。6. (提
10、高)利用輸出的時鐘信號做中斷源,實現定時功能將任務3 中P1.0輸出的ACLK=VLOCLK/8時鐘信號,作為P1.7的中斷申請信號,用導線將P1.7與P1.0相連即可,在中斷函數中設置一個計數變量,計數中斷函數被執(zhí)行的次數,如果ACLK的頻率值為1.5KHz(實驗時,以實測的為準),那么中斷函數每被執(zhí)行1500次表示一秒時間到。利用該定時功能,將8個發(fā)光二級管設計成一個秒表,顯示秒值,每秒改變一次8個發(fā)光二級管的顯示。答:程序見程序清單中的程序6.1.c。思考:如果要每隔5秒蜂鳴器響一聲,如何在任務6的基礎上編程實現?答:程序見程序清單中的程序6.2.c。程序清單:程序2.c#include
11、 "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 &=(BIT0+BIT4); P1DIR |=BIT0+BIT4; while(1);程序3.1.c#include "io430.h"unsigned int i;int main( void ) / Stop watchdog timer
12、 to prevent time out reset WDTCTL = WDTPW + WDTHOLD;/P1.0輸出時鐘ACLK, P1.4輸出時鐘SMCLK P1SEL |=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);程序3.2.c#include "io430.h&qu
13、ot;int main( void ) / Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD;/P1.0輸出時鐘ACLK, P1.4輸出時鐘SMCLK 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 watchd
14、og timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD;/P1.0輸出時鐘ACLK, P1.4輸出時鐘SMCLK P1SEL |=BIT0+BIT4; P1SEL2 &=(BIT0+BIT4); P1DIR |=BIT0+BIT4; /(1)使DCO為1MHz if(CALBC1_1MHZ!= 0xff) BCSCTL1=CALBC1_1MHZ; DCOCTL=CALDCO_1MHZ; /(2)使DCO為16MHz /* if(CALBC1_16MHZ!= 0xff) BCSCTL1=CALBC1_16MHZ; DCOCT
15、L=CALDCO_16MHZ; */ while(1);程序4.2.c#include "io430.h"unsigned int i;int main ( 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_16MHZ; */ P2SEL &=(BIT2+BIT5
16、); /設置引腳P2.2和P2.5為基本輸入輸出功能P2SEL2 &=(BIT2+BIT5); P2OUT |=BIT2+BIT5; /設置引腳P2.2和P2.5輸出的初值為1P2DIR |=BIT2+BIT5; /設置端口P2.2和P2.5為輸出方向 for (;) /主循環(huán) P2OUT =(BIT2+BIT5); /將P2.2和P2.5的值取反后輸出for (i=0;i<0xffff;i+); /延時;程序L6_LPM.c#include "io430.h"#include "in430.h"void delay( unsigned i
17、nt i) /延時函數 unsigned int k; /定義局部變量 for (k=0;k<i;k+);void Blink( ) /LED閃 unsigned int i; for (i=0;i<5;i+) P2OUT &= BIT3; delay(0xe000); P2OUT |=BIT3; delay(0xe000); ;void Buzz( ) /蜂鳴響 unsigned int i; for (i=0;i<3;i+) P2OUT &= BIT4; delay(0xf800); P2OUT |=BIT4; delay(0xf800); ;int ma
18、in ( void ) WDTCTL = WDTPW + WDTHOLD; /關閉看門狗/設置端口P2.3輸出,控制LED,P2.4輸出,控制蜂鳴器 P2SEL &=(BIT3+BIT4); P2SEL2&=(BIT3+BIT4); P2OUT |= BIT3+BIT4; P2DIR |= BIT3+BIT4; /設置端口P1.1允許中斷 P1SEL &=BIT1;P1SEL2 &=BIT1; P1REN |=BIT1;P1OUT |=BIT1;P1DIR &=BIT1;P1IES |=BIT1;P1IFG &=BIT1;P1IE |=BIT1;
19、 _EINT(); /P1.0輸出時鐘ACLK, P1.4輸出時鐘SMCLKP1SEL |=BIT0+BIT4;P1SEL2 &=(BIT0+BIT4);P1DIR |=BIT0+BIT4;Blink();Buzz();for (;) /主循環(huán) LPM4;/ Blink(); #pragma vector=PORT1_VECTOR _interrupt void port_ISR( )Buzz();P1IFG&=(BIT1); /清中斷標志/LPM4_EXIT;程序6.1.c#include "io430.h"#include "in430.h&q
20、uot;int main( void ) / Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD;/P1.0輸出時鐘ACLK P1SEL |=BIT0; P1SEL2 &=BIT0; P1DIR |=BIT0; /設置輸入輸出 P1SEL&=BIT7; P1SEL2&=BIT7; P1DIR&=BIT7; P1SEL &=BIT1; P1SEL2 &=BIT1; P1DIR |=BIT1; P1OUT |=BIT1; P2SEL = 0x00; P2SEL2
21、 = 0x00; P2DIR = 0xff; /設置時鐘 BCSCTL3 |= LFXT1S_2; BCSCTL1 |= DIVA_3; /設置中斷 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根據之前的實測值確定 num+; P2OUT=num; count=0; P1IFG&=BIT7;程序6.2.c#include "io430.h"#include "in430
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高效的鍋爐鼓、引風機項目建議書
- 城市污水管網建設工程實施方案(模板)
- 2025年糧食、棉花、化肥等農產品倉儲服務項目建議書
- 2025年城市污水處理廠智能化升級改造與智能監(jiān)測預警平臺應用報告
- 工業(yè)互聯(lián)網平臺邊緣計算硬件架構在物聯(lián)網領域的創(chuàng)新優(yōu)化報告
- 教育公平與教育資源分配的政策實踐及反思
- 教育政策的綜合評價與持續(xù)改進
- 商業(yè)培訓中的教育心理學實踐
- 數字鴻溝的現狀及教育技術的應用前景
- 2025武漢市二手汽車交易合同書范本
- 學堂在線 管理溝通的藝術 期末考試答案
- 低壓培訓課件
- 教師團隊協(xié)作與溝通能力
- 保安公司薪酬管理制度
- 井蓋巡查管理制度
- GB/T 33490-2025展覽展示工程服務基本要求
- 2024年國能榆林化工有限公司招聘真題
- 2025年會計職業(yè)入門會計基礎知識深度解析與要點梳理
- 消防總隊面試題目及答案
- 《低鈉血癥中國專家共識(2023年版)》解讀課件
- 公司法期末考試卷及答案
評論
0/150
提交評論