計算機硬件實驗報告 (6000字) - 實驗報告 - 書業(yè)網(wǎng).docx

上傳人:黑** 文檔編號:72688883 上傳時間:2022-04-09 格式:DOCX 頁數(shù):34 大?。?1.18KB
收藏 版權(quán)申訴 舉報 下載
計算機硬件實驗報告 (6000字) - 實驗報告 - 書業(yè)網(wǎng).docx_第1頁
第1頁 / 共34頁
計算機硬件實驗報告 (6000字) - 實驗報告 - 書業(yè)網(wǎng).docx_第2頁
第2頁 / 共34頁
計算機硬件實驗報告 (6000字) - 實驗報告 - 書業(yè)網(wǎng).docx_第3頁
第3頁 / 共34頁

下載文檔到電腦,查找使用更方便

38 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《計算機硬件實驗報告 (6000字) - 實驗報告 - 書業(yè)網(wǎng).docx》由會員分享,可在線閱讀,更多相關(guān)《計算機硬件實驗報告 (6000字) - 實驗報告 - 書業(yè)網(wǎng).docx(34頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、計算機硬件實驗報告 (6000字)-實驗報告- 書業(yè)網(wǎng) 計算機硬件技術(shù) 實驗報告 第四次和第五次實驗 姓名:李新基 學號:2012010630 實驗班號:23 機器號:39 目錄 實驗四. 中斷技 術(shù) 3 一 .實 驗 目 的 3 二. 實驗基本任 務(wù) 3 1. 中斷響應(yīng)過程的理 2.掌握利用時鐘信號和中斷技術(shù)實現(xiàn)定時功能的方 法; 二.實驗基礎(chǔ)任務(wù)。 1 .數(shù)字示波器的使用 1)將信號源的波形在示波器上顯示出來,掌握測量周 期、頻率、峰峰值的方法; 2)用孔孔導線將實驗板的地信號與示波器的地信號相 連,測量實驗板上的Vcc電源信號是否

2、正常。 測試結(jié)果為3.68Vo跟預(yù)期值相差不大。 2 .測試上電復位系統(tǒng)的ACLK、和SMCLK時鐘頻率 編程輸出單片機上電復位后的ACLK、和SMCLK時 鐘,用示波器測量其頻率,并記錄下來。 思考:上電復位后,CPU工作的時鐘信號MCLK頻 率值是多少? ACLK的時鐘頻率是32.89kHzo SMCLK的 時鐘頻率是1.149MHz。 思考題:在上電復位以后,進入到View Register觀察,發(fā) 現(xiàn)BCSCTL2寄存器上SELM位為00, SELS位為0,因此, MCLK的頻率與SMCLK的頻率一樣,都是LI49MHz。 3 .掌握基本時鐘模塊的編程控制 參看附錄A實驗板

3、原理圖,用跳線將JP8中的插針信 號接到晶振32.768Khz側(cè),使晶振與單片機的P2.6和P2.7 相連。編程控制基本時鐘模塊,設(shè)置ACLK分別為下面時 鐘頻率,并通過PLO輸出ACLK,用示波器觀察: 1) ACLK=4096Hz;(時鐘源外部晶振,32768Hz/8) 2) ACLK=3KHz;(時鐘源 VLOCLK, 12KHz/4) 思考:可否編程在引腳P2.0上輸出ACLK?為什 么? 1) 4098Hz o 2) 2.89kHzo 思考題:不能,P2引腳不具有輸出輔助時鐘的功能。 4. DCO出廠校驗值的頻率檢測 1)利用出廠校驗值,編程使DCO分別為1MHz、

4、 8MHz、12MHz、16MHz,通過PL4輸出,用示波器測量實 際值。 1) DCO 為 1MHz 時,實際值為 1.010MHz, DCO為8MHz時,實際值為8.065MHz, DCO為12MHz時,實際值為12.05MHz, DCO為16MHz時,實際值為16.03MHz。 5.利用輸出的時鐘信號做中斷源,實現(xiàn)定時功能 將任務(wù)3中P1.0輸出的3KHz ACLK時鐘信號,作 為P1.5的中斷申請信號,用導線將PL5與PL0相連即可, 在中斷子程中設(shè)置一個計數(shù)變量,計數(shù)中斷子程被執(zhí)行的次 數(shù),中斷子程每被執(zhí)行3000次表示一秒時間到。利用該定 時功能,將8個發(fā)光二級管設(shè)計成

5、一個秒表,顯示秒值,每 秒改變一次8個發(fā)光二級管的顯示。 思考:如果要每隔10秒蜂鳴器響一聲,如何在任務(wù) 5的基礎(chǔ)上編程實現(xiàn)? 思考題:只需設(shè)置一個函數(shù),執(zhí)行十分度和二分度的 相互轉(zhuǎn)換,然后利用十分度的輸出來控制蜂鳴器即可。 三.實驗小結(jié) 這兩次的實驗內(nèi)容基本上都是與硬件技術(shù)關(guān)系密切, 從這兩次的實驗來看,計算機硬件這門課程中,C語言的學 習只是一個輔助功能,更多的是考察我們對于本課程的理解 和應(yīng)用。 實驗代碼清單。 實驗四。1. #include "in430.h" #include "io430.h" void delay() 〃延時函

6、數(shù){ unsigned intj; for (j=O;j<Oxffff;j++); ) void Blink( ) //LED 閃{ P2OUT &=^BIT3; delay(); P2OUT |= BIT3; delay(); ) void Buzz() 〃蜂鳴響{ unsigned int i; for (i=0;i&It;3;i++) { P2OUT &=-BIT4; delay(); P2OUT|= BIT4; delay(); ) void main ( void ) { WDTCTL = WDTPW + WDTHOLD; 〃關(guān)閉看門狗 〃設(shè)

7、置引腳P2.4、P2.3輸出,P2.3連接LED, P2.4連 接蜂鳴器 P2SEL &=^(BIT3+BIT4); P2SEL2 &=^(BIT3+BIT4); P2OUT|=(BIT3+BIT4); P2DIR|=(BIT3+BIT4); 〃設(shè)置端DPLl允許中斷 P1SEL &=?BIT1; P1SEL2 &=?BIT1; P1OUT |=BIT1;; P1REN |=BIT1; P1DIR &=^BITl; P1IES |= BIT1; P1IFG &=~BITl; P1IE |= BIT1; _EINT();〃

8、總中斷允許 for (;;) 〃主循環(huán) { Blink(); }; #pragma vector=PORTl_VECTOR —interrupt void port_ISR() { Buzz(); P1IFG &=^BITl; } 1-5 #include "in430.h" #include "io430,h" void delay()〃延時函數(shù) { unsigned int j; for (j=O;j<Oxffff;j++); ) void Blink() //LED 閃 { P2OUT &=~B

9、IT3; delay(); P2OUT |= BIT3; delayO; ) void Buzz() 〃蜂鳴響 { unsigned int i; for (i=0;i<3;i++) { P2OUT &=^BIT4; delay(); P2OUT|= BIT4; delay(); ); } void main ( void ) { WDTCTL = WDTPW + WDTHOLD; 〃關(guān)閉看門狗 〃設(shè)置引腳P2.4、P2.3輸出,P2.3連接LED, P2.4連 接蜂鳴器 P2SEL &=^(BIT3+BIT4); P2SEL2 &

10、;=^(BIT3+BIT4); P2OUT|=(BIT3+BIT4); P2DIR|=(BIT3+BIT4); 〃設(shè)置端DPI. 1允許中斷 P1SEL &=?BIT5; P1SEL2 &=?BIT5; Pl OUT |=BIT5;; Pl REN |=BIT5; P1DIR &=-BIT5; P1IES |= BIT5; P1IFG &=^BIT5; P1IE |= BIT5; _EINT();〃總中斷允許 for(;;)〃主循環(huán) { BIink(); }; } #pragma vector=PORTl_VECTOR —int

11、errupt void port_ISR() { Buzz(); P1IFG &=~BIT5; } 2. #include "in430.h" #include "io430.h" void delay() 〃延時函數(shù) { unsigned int j; for g=O;j<Oxffff;j++); ) void Blink() //LED 閃 ( unsigned int i; for(i=0;i&It;3;i++) P2OUT &=-BIT0; delay(); P2OUT |= BITO;

12、delay(); ) ) void Buzz() 〃蜂鳴響 ( P2OUT &=~BIT4; delay(); P2OUT|= BIT4; delay(); ) void main ( void ) { WDTCTL = WDTPW + WDTHOLD; 〃關(guān)閉看門狗 〃設(shè)置引腳P2.4、P2.0輸出,P2.0連接LED, P2.4連 接蜂鳴器 P2SEL &=^(BIT0+BIT4+BIT6); P2SEL2 &=^(BIT0+BIT4+BIT6); P2OUT|=(BIT0+BIT4+BIT6); P2DIR|=(BIT0+BIT4+B

13、IT6); 〃設(shè)置端口 P1.4,PL5允許中斷 P1SEL &= -(BIT4+BIT5); P1SEL2 &= -(BIT4+BIT5); Pl OUT |=(BIT4+BIT5); Pl REN |=(BIT4+BIT5); P1DIR &=4BIT4+BIT5); P1IES |= (BIT4+BIT5); P1IFG &=^(BIT4+BIT5); P1IE |= (BIT4+BIT5); _EINT();〃總中斷允許 for (;;)〃主循環(huán) { P2OUT&=^BIT6; delay(); P2OUT|=BIT6;

14、 delay(); }; } #pragma vector=PORTl_VECTOR _interrupt void port_ISR() ( if((PHFG&BIT4)!=0) Buzz(); P1IFG &二?BIT4; } if((PHFG&BIT5)!=0) ( BIink(); P1IFG &=^BIT5; } } 2 .思考題 #include "in430.h" #include "io430.h" void delay() 〃延時函數(shù) { unsigned int j

15、; for (j=O;j<Oxffff;j++); } void Blink() //LED 閃 | unsigned int i; for(i=0;i<3;i++) P2OUT &=~BIT0; delay(); P2OUT |= BITO; 解 3 2. 中斷程序編程練 習 三、已完成的選作任 務(wù)。 ……8 1.6)(選做)去掉L4Jnt.c程序最后的那條無限循環(huán) 語句,看看有什么現(xiàn)象?可以 去 掉 嗎? 8 3 .(選做)采用事件標志處理中 斷 8 4 .(選做)按鍵抖動處 理 10 實驗五. 基本時鐘和定時功 能

16、 11 一 .實 驗 目 的 11 delay(); ) ) void Buzz() 〃蜂鳴響 ( P2OUT &=^BIT4; delay(); P2OUT|= BIT4; delay(); ) void main ( void ) { WDTCTL = WDTPW + WDTHOLD; 〃關(guān)閉看門狗 .DINT(); 〃設(shè)置引腳P2.4、P2.0輸出,P2.0連接LED, P2.4連 接蜂鳴器 P2SEL &=^(BIT0+BIT4+BIT6); P2SEL2 &=~(BrrO+Brr4+BIT6); P2OUT|=(BIT0+BIT4+

17、BIT6); P2DIR|=(BIT0+BIT4+BIT6); 〃設(shè)置端口 Pl.4,P1.5 允許中 斷 P2SEL &= ^(BIT2+BIT5); P2SEL2 &= ~(BIT2+BIT5); P2OUT |=(BIT2+BIT5); P2REN |=(BIT2+BIT5); P2DIR &=^(BIT2+BIT5); P2IES |= (BIT2+BIT5); P2IFG &=^(BIT2+BIT5); P2IE |= (BIT2+BIT5); _EINT();〃總中斷允許 for(;;)〃主循環(huán) ( P2OUT&=^BIT6

18、; delay(); P2OUT|=BIT6; delay(); ); ) #pragma vector=PORT2_VECTOR —interrupt void port_ISR() ( if((P2IFG&BIT2)!=0) { Buzz(); P2IFG &=~BIT2; } if((P2IFG&BIT5)!=0) { BlinkQ; P2IFG &=?BIT5; } ) 3 .改進版 #include "in430.h" #include "io430.h" int flagl=

19、0,flag2=0;〃設(shè)置標志 void delay() 〃延 時函數(shù){ unsigned int j; for (j=O;j&It;Oxffff;j++); ) void Blink() //LED 閃 | unsigned int i; for(i=0;i<3;i++) ( P2OUT &=^BIT0; delay(); P2OUT |= BITO; delay(); ) } void Buzz() 〃蜂鳴響 ( P2OUT &=~BIT4; delay(); P2OUT|= BIT4; delayO; ) void main

20、 ( void ) { WDTCTL = WDTPW + WDTHOLD; 〃關(guān)閉看門狗 〃設(shè)置引腳P2.4、P2.0輸出,P2.0連接LED, P2.4連接 蜂鳴器 P2SEL &=^(BIT0+BIT4+BIT6); P2SEL2 &=^(BIT0+BIT4+BIT6); P2OUT|=(BIT0+BIT4+BIT6); P2DIR|=(BIT0+BIT4+BIT6); 〃設(shè)置端DPI4Pl.5允許中斷 P1SEL &=?(BIT4+BIT5); P1SEL2 &=?(BIT4+BIT5); P1OUT |=(BIT4+BIT5); P

21、1REN |=(BIT4+BIT5); P1DIR &=-(BIT4+BIT5); P1IES |= (BIT4+BIT5); P1IFG &=~(BIT4+BIT5); P1IE |= (BIT4+BIT5); _EINT();〃總中斷允許 for(;;)〃主循環(huán) if(flagl==l) Buzz(); flagl=(); } if(flag2==l) ( Blink(); flag2=0; } P2OUT&=^BIT6; delay(); P2OUT|=BIT6; delay(); }; } #pragma vector=

22、PORTl_VECTOR —interrupt void port_ISR() ( if((PHFG&BIT4)!=0) ( flagl=l; P1IFG &=-BIT4; } if((PHFG&BIT5)!=0) ( flag2=l; P1IFG &=-BIT5; } } 3選作intA #include "io430,h" #include "in430.h" void delay(); int main( void ) { // Stop watchdog timer to pr

23、event time out reset WDTCTL = WDTPW + WDTHOLD; —disable_interrupt(); P1SEL &尸?BIT7; P1SEL2 &=~BIT7; P1OUT |=BIT7; P1DIR |=BIT7; P1SEL &=~BIT0; P1SEL2 &=~BIT0; P1REN |=BIT0; Pl OUT |=BIT0; P1DIR &=-BIT0; P1IES |=BIT0; P1IFG &=^BIT0; P1IE |=BIT0; —enable_interrupt(

24、); while(l){ }; ) #pragma vector=PORTl_VECTOR _interrupt void portjnt(void) { if ((P1IFG &BIT0) !=0 ) { Pl OUT &=-BIT7;; delay(); P1OUT |=BIT7;; P1IFG &=-BIT0;; } ) void delay() { unsigned int i; 〃定義函數(shù)變量 for (i=O;i<Oxffff;i++); 〃延時} 3intB #include "io430.h" #inc

25、lude "in430.h" void delayO; int main( void ) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; —disable_interrupt(); P1SEL &=^BIT7; P1SEL2 &=^BIT7; P1OUT |=BIT7; P1DIR |=BIT7; P1SEL &=-BIT0; P1SEL2 &=^BIT(); PIREN |=BIT0; P1OUT |=BIT0;

26、 P1DIR &=-BIT0; P1IES |=BIT0; P1IFG &=~BIT0; PHE |=BIT0; —enable_interrupt(); while(l){ }; ) #pragma vector=PORTl_VECTOR interrupt void port_int(void) {if ((P1IFG &BITO) !=0 ) { P1OUT &=^BIT7;; delay(); PIOUT |=BIT7;; P1IFG &=^BIT0;; } } void delay() { unsigned

27、int i; 〃定義函數(shù)變量 for (i=O;i<Oxffff;i++); 〃延時 ) 4 .原程序 #include "io430.h" #include "in430.h" unsigned int number=0; 〃記錄響應(yīng)按鍵次數(shù) void delay() 〃延時函數(shù) { unsigned int j; for g=O;j<Oxffff;j++); ) int main( void ) { WDTCTL = WDTPW + WDTHOLD; 〃關(guān)閉看門狗 _disable_interrupt(); //_

28、DINT();禁止總中斷 P2SEL=0; 〃置P2為基本I/O功能〃〃置P2輸出的初值〃 置 P2 為輸出方向 P2SEL2=0; P2OUT=0xFF; P2DIR=0xFF; P1SEL &= BIT2; P1SEL2 &= BIT2; P1OUT |=BIT2;; P1REN |=BIT2; P1DIR &=^BIT2; P1IES |= BIT2; P1IFG &=-BIT2; P1IE |= BIT2; //_EINT();總中斷運行 —enable_interrupt(); } while(l){ }; #pragma vect

29、or=PORTl_VECTOR —interrupt void port_int(void) ( if ((PlIFG&BIT2)!=0) { number++; P2OUT=-number; ) P1IFG &=~BIT2; ) 4選作改進版 #include "io430.h" #include "in430.h" unsigned int number=0; 〃記錄響應(yīng)按鍵次數(shù) void 二. 實驗基礎(chǔ)任 務(wù)。 XI I. 數(shù)字示波器的使 用 11 2.測試上電復位系統(tǒng)的ACLK、和SMCLK時鐘

30、頻 率 11 3.掌握基本時鐘模塊的編 程控制 12 4. DCO 出廠校驗值的頻率檢 測 12 5.利 用輸出的時鐘信號做中斷源,實現(xiàn)定時功 能 13 三. 實 驗 小 結(jié) 13 實 驗 代 碼 清 單。 14 實 驗 四。 14 delay()〃延時函數(shù) { unsigned int j; for(j=0;j<0xffff;j++); ) int main( void ) { WDTCTL = WDTPW + WDTHOLD; 〃關(guān)閉看門狗 _disable_interrupt(); //_DINT();禁止總中斷 P2SEL=0; //

31、 置P2為基本I/O功能 P2SEL2=0; // P2OUT=0xFF; //S P2 輸出的初值 P2DIR=0xFF; 〃置P2為輸出方向 P1SEL &= BIT2; P1SEL2 &= BIT2; P1OUT |=BIT2;; PIREN |=BIT2; P1DIR &=-BIT2; PHES |= BIT2; P1IFG &=~BIT2; P1IE |= BIT2; —enable_interrupt(); //_EINT();總中斷運行 while(l){ }; } #pragma vector=PORTl_VECTOR

32、 —interrupt void port_int(void) ( delay();〃加了一個延時處理,處理按鍵抖動情況if ((PlIFG&BIT2)!=0) { number++; P2OUT=-number; ) P1IFG &=~BIT2; ) 實驗五 2. #include "io430.h" int main( void ) ( 〃關(guān)閉看門狗 WDTCTL = WDTPW + WDTHOLD; 〃設(shè)置 P2.6、 P2.7 連接外部晶振 P2SEL|=(BIT6+BIT7); P2SEL2&=^(BIT

33、6+BIT7); P2DIR&=-BIT6; P2DIR|=BIT7; 〃設(shè)置 P1.0、Pl.4 輸 出 ACLK、SMCLK P1SEL|=BITO; PlSEL2&^BIT0; P1DIR|=BITO; P1SEL|=BIT4; PlSEL2&^BIT4; P1DIR|=BIT4; while(l); ) 3. 1) #include "io430.h" int main( void ) ( 〃關(guān)閉看門狗 WDTCTL = WDTPW + WDTHOLD; 〃設(shè)置 P2.6、 P2.7 連接外部晶振 P2S

34、EL|=(BIT6+BIT7); P2SEL2&=^(BIT6+BIT7); P2DIR&=-BIT6; P2DIR|=BIT7; 〃設(shè)置Pl.0輸出ACLK P1SEL|=BITO; PlSEL2&=^BIT0; P1DIR|=BITO; BCSCTL3&=^(LFXTlS0+LFXTlSl); BCSCTL1|=(DIVAO+DIVA1); while(l); ) 2) } 4. #include "io430.h" int main( void ) { 〃關(guān)閉看門狗 WDTCTL = WDTPW + WDTHOL

35、D; // 設(shè)置 P1.0 輸出 ACLK P1SEL|=BITO; PlSEL2&=~BIT0; P1DIR|=BITO; BCSCTL3&=^LFXTlS0; BCSCTL3|=LFXT1S1; BCSCTLl&=^DIVAO; BCSCTL1|=DIVA1; while(l); #include "io430.h" int main( void) | // Stop watchdog timer to prevent time out reset ) 5. WDTCTL = WDTPW + WDTHOLD; P1SEL|=BIT

36、4; PlSEL2&^BIT4; P1DIR|=BIT4; BCSCTL2&=^SELS; BCSCTL1=CALBC1_8MHZ; 〃其他情況改變 8MHz 就可以了 DCOCTL=CALDCO_8MHZ; while(l); #include "io430.h" #include "in430.h" unsigned char time=O; unsigned int i=0; int main( void ) ( 〃關(guān)閉看門狗 WDTCTL = WDTPW + WDTHOLD; 〃設(shè)置端口 P1.0輸出3KHzA

37、CLK 時鐘信號 P1SEL|=BITO; PlSEL2&^BIT0; P1DIR|=BITO; BCSCTL3&=-LFXTlS0; BCSCTL3|=LFXT1S1; BCSCTLl&=^DIVAO; BCSCTL1|=DIVA1; 〃設(shè)置P2.0~P2.7為輸出狀態(tài) P2SEL&=0; P2SEL2&=0; P2DIR|=0Xff; P2OUT|=0Xff; 〃設(shè)置端口 Pl.5允許中斷 PlSEL&=^BIT5; PlSEL2&=-BIT5; P1REN|=BIT5; PlOUT&=~BIT5;

38、PIDIR&尸?BIT5; PHES&尸?BIT5; PlIFG&=^BIT5; P1IE|=BIT5; _EINT(); while(l){ if (i>=3000) { time+=l; i=0;} P2OUT=~time; //LED燈顯示輸出秒表的值 } ) #pragma vector=PORTl_VECTOR —interrupt void port_ISR(){ i++; PlIFG&=~(BIT5);〃清中斷標志 14 2 18 2 . 思 考 題 21 3 .改 進 版 24

39、 4 選 作 intA 28 3intB 29 5 .原 程 序 31 選 作 改 進 版 33 實 驗 五 35 2 35 3 36 4 37 5 38 實驗四.中斷技術(shù) 一.實驗?zāi)康? 1 . 了解中斷原理,包括對中斷源、中斷向量、中斷類 型號、中斷程序以及中斷響應(yīng)過程的理解; 2 .掌握單片機C語言中斷程序設(shè)計方法; 二.實驗基本任務(wù) 1 .中斷響應(yīng)過程的理解 閱讀下面C語言中斷程序L4_int.C (見后頁),說明 程序執(zhí)行的流程和實現(xiàn)功能。上機實踐,回答下面問題,掌 握用C語言編寫中斷程序的方法

40、。 1)從程序如何判斷用的是哪個中斷源?其中斷類型 號是多少?將實驗板上某一按鍵與該中斷源對應(yīng)的引腳相 連,運行程序,操作按鍵,觀察現(xiàn)象。 2 ) main函數(shù)中無調(diào)用函數(shù)Buzz的語句,函數(shù)Buzz 如何能被執(zhí)行?何時會被執(zhí)行?據(jù)此描述中斷響應(yīng)過程。 3)如果portjnt函數(shù)中不清分中斷標志P1IFG的后 果是什么? 4)如果L4Jnt?c中的 PORT1_VECTOR 改為 PORT2_VECTOR,其他不變,程序執(zhí)行的后果是什么? 為什么?(可在關(guān)中斷處加一斷 點,運行程序,看現(xiàn)象,分析原因) 5)如果中斷源采用的是PL5,按鍵用K7,請設(shè)計連線, 修改L4_int.c程序

41、完成以中斷方式響應(yīng)K7的操作。 問題回答: 1 .程序執(zhí)行的流程和實現(xiàn)功能。 流程:主循環(huán) 實現(xiàn)功能:當不進行任何操作時,L4不停閃爍,如 果按下K2,那么L4閃爍暫停,蜂鳴器響三次后,L4繼續(xù)閃 爍。 1)從P1OUT1=BFH;可判斷出中斷源為P1.1中 斷類型號為2。現(xiàn)象為當不進行任何操作時,L4不停閃爍, 如果按下K2,那么L4閃爍暫停,蜂鳴器響三次后,L4繼續(xù) 閃爍。 2)程序中有中斷向量設(shè)置,當中斷信號發(fā)出時,Blink被 暫停,而Buzz作為中斷子程序被調(diào)用。 中斷響應(yīng)過程是指在收到中斷源信號時,程序暫停主 程序中正在操作的過程,優(yōu)先執(zhí)行中斷子程序,等中斷子程 序完

42、成后,再次轉(zhuǎn)向主程序。 3)那樣會使得中斷子程序一直運行而不終止,從而系 統(tǒng)無法回到主程序。 4)后果:無法執(zhí)行中斷操作。 原因:中斷向量所表示的偏執(zhí)地址與中斷子程序地址 不一致。5) 2 .中斷程序編程練習 在實驗板上用跳線將按鍵K5、K6分別與單片機的 PL4和PL5相連,編程以中斷方式響應(yīng)按鍵K5和K6的請 求:當按下一次K5鍵,實驗板上的蜂鳴器發(fā)出一警報聲; 當按下一次K6鍵,實驗板上的發(fā)光二極管L1閃3次。主 循環(huán)中控制L7循環(huán)閃亮。 思考:如果用長導線將按鍵K5、K6分別連接在P2.2 和P2.5上,如何修改程序以實現(xiàn)任務(wù)2功能? 原題目的電路圖如下所示。 思考題的

43、電路圖為: 三、已完成的選作任務(wù)。 1.6)(選做)去掉L4_int.c程序最后的那條無限循環(huán) 語句,看看有什么現(xiàn)象?可以去掉嗎? 6)現(xiàn)象:L4閃爍一下后不再閃爍,程序停止,即使 再次按下K2,也不能使蜂鳴器發(fā)出聲音。 3.(選做)采用事件標志處理中斷 閱讀程序L4JntA.c和L4_intB.c (見后頁),描述其 實現(xiàn)功能。在實驗板上將P1.0與一個按鍵的控制端相連, P1.7與蜂鳴器的控制端相連。比擬L4_intA.c和L4_intB.c 二者在編程實現(xiàn)上有何不同。 注意各自中斷子程執(zhí)行時間的長短。用L4JntB.c的方法, 改寫任務(wù)2的編程。 L4-inA.C實現(xiàn)的功

44、能是按下K1,蜂鳴器響一下,不 按那么不響。L4-inB.C與L4-inA.C功能相同。 電路圖如下。 L4-inA.C和L4?inB.C的電路圖。 用L4?inB.C的方式編程,電路圖為 4.(選做)按鍵抖動處理 程序L4_Key.C見后頁,其功能是用中斷方式相應(yīng)與 PL2連接的按鍵,計數(shù)按鍵的次數(shù),并將所計的次數(shù)用8個 發(fā)光二極管顯示出來。運行該程序,并操作按鍵,觀察實際 操作的次數(shù)與顯示值之間的關(guān)系。編程改進L4_Key.C程序, 用軟件方式去除按鍵抖動的影響。 實際操作次數(shù)與顯示值之間的關(guān)系是,顯示值用二進 制的方式表現(xiàn)實際操作次數(shù)。 電路圖如下所示。 實驗五.基本時鐘和定時功能 一.實驗?zāi)康? 1 .了解MSP430Gxxx基本時鐘模塊的工作原理,掌 握其控制方法;

展開閱讀全文
溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!