




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)名稱(chēng):中斷技術(shù)、根本時(shí)鐘和定時(shí)功能實(shí)驗(yàn) 4、5姓名學(xué)號(hào)實(shí)驗(yàn)班號(hào) 21 機(jī)器號(hào)_一、實(shí)驗(yàn)?zāi)康? . 了解中斷原理,包括對(duì)中斷源、中斷向量、中斷類(lèi)型號(hào)、中斷程序以及中斷響應(yīng)過(guò) 程的理解;2 .掌握單片機(jī)C語(yǔ)言中斷程序設(shè)計(jì)方法;3 . 了解MSP430G2553根本時(shí)鐘模塊的工作原理,掌握其限制方法;4 .掌握利用時(shí)鐘信號(hào)和中斷技術(shù)實(shí)現(xiàn)定時(shí)功能的方法 二、實(shí)驗(yàn)根本任務(wù)1 .中斷響應(yīng)過(guò)程的理解閱讀下面 C語(yǔ)言中斷程序,說(shuō)明程序L4 int.c執(zhí)行的流程和實(shí)現(xiàn)功能.上機(jī)實(shí)踐,答復(fù)下面問(wèn)題,掌握用 C語(yǔ)言編寫(xiě)中斷程序的方法.1從程序如何判斷用的是哪個(gè)中斷源其中斷類(lèi)型號(hào)是多少將實(shí)驗(yàn)板上某一按鍵與該中斷源
2、對(duì)應(yīng)的引腳相連,運(yùn)行程序,操作按鍵,觀(guān)察現(xiàn)象.答:注:源程序主函數(shù)中第 7、8行有誤,應(yīng)為P1SEL &= BIT5; P1SEL2 &= BIT5; P1.1為中斷源,中斷類(lèi)型號(hào)為2; 現(xiàn)象:LED燈一直在閃爍,按下按鍵后閃爍暫停,蜂鳴器響三聲,然后LED燈繼續(xù)閃爍;2) main 函數(shù)中無(wú)調(diào)用函數(shù) Buzz的語(yǔ)句, 函數(shù)Buzz如何能被執(zhí)行何時(shí)會(huì)被執(zhí)行據(jù)此描述中斷響應(yīng)過(guò)程.答:當(dāng)按下按鍵時(shí)函數(shù) Buzz被執(zhí)行;中斷響應(yīng)的過(guò)程:P1.1處發(fā)出中斷請(qǐng)求一判斷是否滿(mǎn)足響應(yīng)條件一假設(shè)滿(mǎn)足,那么 CPU在執(zhí)行完當(dāng)前指令后,硬件自動(dòng)完成保護(hù)現(xiàn)場(chǎng)的操作一從中斷向量表中取中斷向量至 PC 一轉(zhuǎn)去執(zhí)行中斷效
3、勞子程;3如果port_int 函數(shù)中不清分中斷標(biāo)志P1IFG的后果是什么答:中斷將一直重復(fù)進(jìn)行下去;4如果 L4 int.c 中的 PORT1_VECTOR 改為 PORT2_VECTOR , 其他不 變,程序執(zhí)行的后果是什么為什么可在中斷處加一斷點(diǎn),運(yùn)行程序,看現(xiàn)象,分 析原因答:PORT1_VECTOR 改為PORT2_VECTOR ,其他不變,程序?qū)?huì)無(wú)法進(jìn)入中斷.由于程序中的中斷屬于 P1引腳的中斷,中斷向量與P2引腳的中斷向量不同,所進(jìn)行的的改動(dòng)那么是把中斷程序?qū)懭氲搅薖2引腳的中斷向量對(duì)應(yīng)的地址中,而P1引腳的中斷向量對(duì)應(yīng)的地址上沒(méi)有程序,因此無(wú)法執(zhí)行原先的中斷子程.5如果中斷源
4、采用的是 P1.5,按鍵用K7,請(qǐng)?jiān)O(shè)計(jì)連線(xiàn),修改程序完成以中斷方式響應(yīng)K7的操作.答: 只需將程序中對(duì) P1.1的操作改為對(duì)P1.5的操作即可,程序見(jiàn)附錄 程序1 ; 連線(xiàn):將引腳與 K6相連,其他連線(xiàn)不變;2 .中斷程序編程練習(xí)在實(shí)驗(yàn)板上用跳線(xiàn)將按鍵 K5、K6分別與單片機(jī)的P1.4、P1.5相連,編程以中斷方式 響應(yīng)按鍵K5和K6的請(qǐng)求:當(dāng)按一次 K5鍵,實(shí)驗(yàn)板上的蜂鳴器發(fā)出一聲警報(bào)聲;當(dāng)按下 一次K6鍵,實(shí)驗(yàn)板上的發(fā)光二極管L1閃3次.主循環(huán)中限制 L7循環(huán)閃亮.思考:如果用長(zhǎng)導(dǎo)線(xiàn)將按鍵 K5、K6分別連接在 P2.2和P2.5上,如何修改程序以 實(shí)現(xiàn)任務(wù)2功能答:經(jīng)過(guò)分析, 本程序需要
5、有四個(gè)函數(shù),分別是延時(shí)函數(shù)、 L1閃爍3次的函數(shù)、L7循環(huán)閃爍、 以及蜂鳴器響一聲的函數(shù); 其次P2端口為輸出端口,分別限制L1、L7和蜂鳴器,本程序中選用P2.1、P2.3、 P2.4弓|腳;P1.4與P1.5作為中斷源; 應(yīng)注意到本程序有兩個(gè)中斷源,須利用 P1IFG判斷產(chǎn)生中斷的中斷源引腳.程序見(jiàn)附錄程序2.思考題:如果用長(zhǎng)導(dǎo)線(xiàn)將按鍵K5、K6分別連接在 P2.2和P2.5上,那么應(yīng)設(shè)置 P2.2、P2.5為中斷源,設(shè)置中斷向量時(shí)也應(yīng)注意將對(duì)P1端口的操作改為對(duì) P2端口操作.具體程序見(jiàn)附錄程序2之思考題.3 .數(shù)字示波器的使用1)將信號(hào)源的波形在示波器上顯示出來(lái),掌握測(cè)量周期、頻率、峰
6、峰值的方法;2)用孔孔導(dǎo)線(xiàn)將實(shí)驗(yàn)板的地信號(hào)與示波器的地信號(hào)相連,測(cè)量實(shí)驗(yàn)板上的Vcc電源信號(hào)是否正常.答:1)a. 信號(hào)源的峰峰值為 3.20V ;b. 周期為 1.000ms ;c. 頻率為 1.000kHz.2)經(jīng)測(cè)量,Vcc=3.64V ,正常4 .測(cè)試上電復(fù)位系統(tǒng)的 ACLK、和SMCLK時(shí)鐘頻率編程輸出單片機(jī)上電復(fù)位后的ACLK、和SMCLK時(shí)鐘,用示波器測(cè)量其頻率,并記錄下來(lái).思考:上電復(fù)位后,CPU工作的時(shí)鐘信號(hào) MCLK頻率值是多少答:經(jīng)分析 本程序需要置引腳 P1.0、P1.4分別輸出ACLK、SMCLK ;需要確認(rèn)外部晶振連上; 具體程序見(jiàn)附錄 程序5測(cè)試程序.測(cè)得 f(A
7、CLK)=32.79kHz,f(SMCLK)=1.044MHz.思考題上電復(fù)位后,通過(guò)觀(guān)察存放器, 發(fā)現(xiàn)BCSCTL2 存放器上SELM位為00 , SELS位為 那么0,說(shuō)明MCLK與SMCLK均由DCO振蕩器限制,所以MCLK的頻率與SMCLK相同, 也為 1.044MHz .5 .掌握根本時(shí)鐘模塊的編程限制參看附錄A實(shí)驗(yàn)板原理圖,用跳線(xiàn)將 JP8中的插針信號(hào)接到晶振32.768Khz 側(cè),使晶振與單片機(jī)的 P2.6和P2.7相連.編程限制根本時(shí)鐘模塊,設(shè)置 ACLK分別為下面時(shí)鐘 頻率,并通過(guò) P1.0輸出ACLK ,用示波器觀(guān)察:1) ACLK=4096Hz ;時(shí)鐘源外部晶振,3276
8、8Hz/8 2) ACLK=3KHz ;時(shí)鐘源 VLOCLK, 12KHz/4思考:可否編程在引腳P2.0上輸出 ACLK ? 為什么a. 1中,應(yīng)使單片機(jī)接外部晶振,并使 ACLK的輸出為8分頻;具體程序見(jiàn)附錄 程序5 之1 b. 2中,應(yīng)通過(guò) BCSCTL3存放器選擇時(shí)鐘源 VLOCLK ,并使其輸出為 4分頻,具體 程序見(jiàn)附錄程序5之2 思考題不能在引腳P2.0上輸出ACLK ,由于,各引腳的特殊功能是由單片機(jī)結(jié)構(gòu)所決定的,P2.0引腳不具有輸出輔助時(shí)鐘的功能.b. DCO出廠(chǎng)校驗(yàn)值的頻率檢測(cè)1利用出廠(chǎng)校驗(yàn)值, 編程使 DCO 分別為1MHz、8MHz、12MHz、16MHz ,通過(guò)P1
9、.4 輸出,用示波器測(cè)量實(shí)際值.答:經(jīng)分析知 P1.4輸出的是 SMCLK ; 1MHz、8MHz、12MHz、16MHz的情況類(lèi)似,此處僅以1MHz為例,具體程序見(jiàn)附錄程序6 測(cè)得真實(shí)值分另1J為 1.002MHz 、7.752MHz 、12.08MHz 、15.94MHz .7.利用輸出的時(shí)鐘信號(hào)做中斷源,實(shí)現(xiàn)定時(shí)功能將任務(wù)3中P1.0輸出的3KHz ACLK 時(shí)鐘信號(hào),作為 P1.5的中斷申請(qǐng)信號(hào),用導(dǎo)線(xiàn)將P1.5與P1.0相連即可,在中斷子程中設(shè)置一個(gè)計(jì)數(shù)變量,計(jì)數(shù)中斷子程被執(zhí)行的次數(shù),中斷子程每被執(zhí)行 3000次表示一秒時(shí)間到.利用該定時(shí)功能,將 8個(gè)發(fā)光二級(jí)管設(shè)計(jì)成一個(gè)秒表,顯示秒
10、值,每秒改變一次 8個(gè)發(fā)光二級(jí)管的顯示.答:根據(jù)分析可知a.需要在實(shí)驗(yàn)5之2的根底上進(jìn)行編程;b.須用跳線(xiàn)板將P2的引腳與LED燈相連;c. 具體程序見(jiàn)附錄程序7思考:如果要每隔 10秒蜂鳴器響一聲,如何在任務(wù)5的根底上編程實(shí)現(xiàn)答:將P1.7與蜂鳴器相連,增加一個(gè)延時(shí)函數(shù)以及每10秒操作一次P1.7上電位;具體程序見(jiàn)附錄程序7之思考題三、實(shí)驗(yàn)選做任務(wù)1 .中斷響應(yīng)的理解6選做 去掉L4 int.c程序最后的那條無(wú)限循環(huán)語(yǔ)句,看看有什么現(xiàn)象可以去掉嗎答: 現(xiàn)象:程序很快運(yùn)行結(jié)束,無(wú)法響應(yīng)中斷;不可去掉無(wú)限循環(huán)語(yǔ)句注意:1 查看io430G2553.h文件末尾處有關(guān)中斷向量偏址的符號(hào)定義.2為便于
11、了解程序執(zhí)行流程,可在中斷子程入口處設(shè)置一斷點(diǎn),然后連續(xù)運(yùn)行程序F5,觀(guān)察操作按鍵和不操作按鍵兩種情況下程序執(zhí)行的現(xiàn)象有何不同.2 .(選彳)采用事件標(biāo)志處理中斷閱讀程序L4 intA.c 和L4 intB.c(見(jiàn)后頁(yè)),描述其實(shí)現(xiàn)功能. 在實(shí)驗(yàn)板上將 P1.0一個(gè)按鍵的限制端相連,P1.7與蜂鳴器的限制端相連.比擬L4_intA.c 和L4_intB.c二者在編程實(shí)現(xiàn)上有何不同.注意各自中斷子程執(zhí)行時(shí)間的長(zhǎng)短.用L4_intB.c的方法,改寫(xiě)任務(wù)2的編程. 答: 不同之處: 采用事件標(biāo)志處理中斷時(shí),按鍵之后機(jī)器做出的反響相對(duì)較慢,這是由于它需要現(xiàn)在中斷子程中設(shè)置flag ,再回到主程序根據(jù)
12、flag做相應(yīng)改動(dòng),消耗時(shí)間較長(zhǎng). 但是采用事件標(biāo)志中斷的一個(gè)好處就是,由于它在中斷子程中只是進(jìn)行了一個(gè)標(biāo)記,你可以在標(biāo)記flag在主程序中發(fā)揮作用之前再次進(jìn)行中斷,將 flag改為其它值.它相 當(dāng)于解決了一般中斷過(guò)程中“中斷執(zhí)行時(shí),屏蔽其他中斷的問(wèn)題.任務(wù)2改寫(xiě)后的程序程序33 .(選彳)按鍵抖動(dòng)處理程序L4 Key.C 見(jiàn)后頁(yè),其功能是用中斷方式相應(yīng)與 P1.2連接的按鍵,計(jì)數(shù)按鍵的次數(shù),并將所計(jì)的次數(shù)用8個(gè)發(fā)光二極管顯示出來(lái).運(yùn)行該程序,并操作按鍵,觀(guān)察實(shí)際操作的次數(shù)與顯示值之間的關(guān)系.編程改良L4_Key.C程序,用軟件方式去除按鍵抖動(dòng)的影響.答:根據(jù)分析,需要在響應(yīng)了第一次下降沿后,
13、參加一定的延時(shí),躲過(guò)其它電壓毛刺的產(chǎn)生 時(shí)間.具體程序見(jiàn)附錄程序4通過(guò)實(shí)驗(yàn)觀(guān)察可以發(fā)現(xiàn),改良之前,二進(jìn)制顯示的數(shù)值明顯大于實(shí)際按鍵數(shù),而改良之 后,兩者數(shù)值大致相等.4 . DCO出廠(chǎng)校驗(yàn)值的頻率檢測(cè)2)(選做)限制發(fā)光二級(jí)管通過(guò)延時(shí)閃亮,編程分別使主系統(tǒng)時(shí)鐘工作在(1) MCLK=復(fù)位頻率/8 約 100KHz ;(2) MCLK=DCO=16MHz ;兩種不同頻率下,觀(guān)察燈的亮滅速度有何不同,掌握主系統(tǒng)時(shí)鐘的變化對(duì)程序執(zhí)行速度的影響答:根據(jù)分析a. (1)須選擇8分頻;b. (1)須具備延時(shí)函數(shù)與 LED燈亮函數(shù);c. (2)須選擇DCO時(shí)鐘源,并使用出廠(chǎng)校驗(yàn)值16MHz ;d. (2)須
14、具備延時(shí)函數(shù)與 LED燈亮函數(shù);e. 具體程序見(jiàn)附錄 選彳4之1)和選彳4之2)f. 實(shí)驗(yàn)觀(guān)察到兩種不同頻率下,第一種情形下燈的亮滅速度非常慢,而第二種情形下燈的亮滅速度非???那么說(shuō)明:主系統(tǒng)時(shí)鐘頻率的加快會(huì)加速執(zhí)行速度.5.(選做)改用 4個(gè)數(shù)碼管顯示秒值,重新完成必做任務(wù)7答:此題需要用到數(shù)碼管的知識(shí),需要標(biāo)志值,具體程序見(jiàn)附錄選彳5程序四、小結(jié)總的來(lái)說(shuō),我覺(jué)得這次的實(shí)驗(yàn)內(nèi)容很多,但是收獲也是很大的;并且在這個(gè)過(guò)程中重溫 了課本,加深了對(duì)課本上抽象的內(nèi)容的理解,比方說(shuō)實(shí)驗(yàn)前對(duì)于時(shí)鐘, 我的理解一直很模糊,四個(gè)時(shí)鐘源之間的問(wèn)似是而非,經(jīng)過(guò)實(shí)驗(yàn),發(fā)現(xiàn)其實(shí)它不過(guò)是三個(gè)存放器,三個(gè)時(shí)鐘信號(hào), 題
15、,雖然過(guò)程比擬繁瑣,脈絡(luò)卻是清楚的;而且關(guān)于中斷,我也有了進(jìn)一步的理解,特別是難度有點(diǎn)大,但是寫(xiě)出來(lái)之后還最后幾個(gè)選作實(shí)驗(yàn)和必做實(shí)驗(yàn)是對(duì)這兩節(jié)知識(shí)的綜合應(yīng)用, 是很有成就感的. 【附錄】 一、根本任務(wù)程序 1.必做第1題 5)#include io430.h#include in430.h void delay( )/ 延時(shí)函數(shù) unsigned int j;for (j=0;j0xffff;j+);void Blink( ) /LED 閃 P2OUT &=BIT3;delay();P2OUT |= BIT3; delay(); void Buzz( )/ 蜂鳴響 unsigned int i
16、; for (i=0;i3;i+) P2OUT &=BIT4; delay();P2OUT|= BIT4; delay();void main ( void ) WDTCTL = WDTPW + WDTHOLD;/ 關(guān)閉看門(mén)狗/設(shè)置引腳 P2.4、P2.3 輸出,P2.3連接LED, P2.4連接蜂鳴器 P2SEL &=(BIT3+BIT4);P2SEL2 &=(BIT3+BIT4);P2OUT|=(BIT3+BIT4);P2DIR|=(BIT3+BIT4);/設(shè)置端口 P1.5允許中斷P1SEL &= BIT5;P1SEL2 &= BIT5;P1OUT |=BIT5;P1REN 尸BIT5;
17、P1DIR &=BIT5;P1IES |= BIT5;P1IFG &=BIT5;P1IE |= BIT5;_EINT();總中斷允許for (;)/主循環(huán) Blink(); ;)#pragma vector=PORT1_VECTOR_interrupt void port_ISR() Buzz();P1IFG &=BIT5;2 .必做第2題#include io430.h#include in430.hvoid delay( )/ 延時(shí)函數(shù) unsigned int j;for (j=0;j0xffff;j+);void L1Blink( )/L1 閃 3 次 unsigned int i;f
18、or (i=0;i3;i+) P2OUT &=BIT1;delay();P2OUT|= BIT1;delay();void L7Blink( )/L7 閃 P2OUT &=BIT3;delay();P2OUT |= BIT3;delay();void Buzz( )/ 蜂鳴響 P2OUT &=BIT4;delay();P2OUT|= BIT4;delay();void main ( void ) WDTCTL = WDTPW + WDTHOLD;/ 關(guān)閉看門(mén)狗/設(shè)置引腳 P2.1、P2.3 、P2.4輸出,P2.1、P2.3分別連接 L1和L7 , P2.4 連接蜂鳴P2SEL &=(BIT1
19、+BIT3+BIT4);P2SEL2 &=(BIT1+BIT3+BIT4);P2OUT|=(BIT1+BIT3+BIT4);P2DIR|=(BIT1+BIT3+BIT4);/設(shè)置端口 P1.4、P1.5 允許中斷P1SEL &= (BIT4+BIT5);P1SEL2 &= (BIT4+BIT5);P1OUT |=(BIT4+BIT5);P1REN |=(BIT4+BIT5);P1DIR &=(BIT4+BIT5);P1IES |= (BIT4+BIT5);P1IFG &=(BIT4+BIT5);P1IE |= (BIT4+BIT5);_EINT();總中斷允許for (;)/主循環(huán) L7Bli
20、nk(); ; #pragma vector=PORT1_VECTOR_interrupt void port_ISR()if (P1IFG&BIT4)!=0)Buzz();P1IFG &=-BIT4; ;if (P1IFG&BIT5)!=0)L1Blink();P1IFG&=BIT5;2.思考題#include io430.h#include in430.hvoid delay( )/ 延時(shí)函數(shù) unsigned int j;for (j=0;j0xffff;j+);void L1Blink( )/L1 閃 3 次 unsigned int i;for (i=0;i=3000) time+=
21、1;i=0;P2OUT=time;/LED 燈顯示輸出秒表的值#pragma vector=PORT1_VECTOR_interruptvoid port_ISR()i+;P1IFG&=(BIT5);/ 清中斷標(biāo)志2)必做7之思考題#include io430.h#include in430.hunsigned char time=0;unsigned int i=0;void delay();int main( void )/關(guān)閉看門(mén)狗WDTCTL = WDTPW + WDTHOLD;/設(shè)置端口 P1.0輸出3KHzACLK 時(shí)鐘信號(hào)P1SEL|=BIT0;P1SEL2&=BIT0;P1DI
22、R|=BIT0;BCSCTL3&=LFXT1S0;BCSCTL3|=LFXT1S1;BCSCTL1&=DIVA0;BCSCTL1|=DIVA1;/設(shè)置P2.0P2.7 為輸出狀態(tài)P2SEL&=0;P2SEL2&=0;P2DIR|=0Xff;P2OUT|=0Xff;/設(shè)置P1.7為輸出狀態(tài)P1SEL&=BIT7;P1SEL2&=BIT7;P1OUT|=BIT7;P1DIR|=BIT7;/設(shè)置端口 P1.5允許中斷P1SEL&=BIT5;P1SEL2&=BIT5;P1REN|=BIT5;P1OUT&=BIT5;P1DIR&=BIT5;P1IES&=BIT5;P1IFG&=BIT5;P1IE|=BI
23、T5;_EINT();while(1)if (i=3000) time+=1; if(time%10)=0) P1OUT&=BIT7;delay();P1OUT|=BIT7;i=0;P2OUT=time;/LED燈顯示輸出秒表的值 void delay()/ 延時(shí)函數(shù)unsigned int j;for (j=0;j0xffff;j+);)#pragma vector=PORT1_VECTOR_interrupt void port_ISR()i+;P1IFG&=(BIT5);/ 清中斷標(biāo)志)二、選做任務(wù)程序2.采用事件標(biāo)志處理中斷#include io430.h#include in430.
24、hint flag=0;void delay( )/ 延時(shí)函數(shù) unsigned int j;for (j=0;j0xffff;j+);)void L1Blink( )L1閃 3 次 unsigned int i;for (i=0;i3;i+) P2OUT &=BIT1;delay();P2OUT|= BIT1;delay(););)void L7Blink( )L7閃 P2OUT &=BIT3;delay();P2OUT |= BIT3;delay();)void Buzz( )/ 蜂鳴響 P2OUT &=BIT4;delay();P2OUT|= BIT4;delay();)void mai
25、n ( void )/關(guān)閉看門(mén)狗 WDTCTL = WDTPW + WDTHOLD;/設(shè)置引腳 P2.1、P2.3 、P2.4輸出,P2.1、P2.3分別連接 L1和L7 , P2.4 連接蜂鳴P2SEL &=(BIT1+BIT3+BIT4);P2SEL2 &=(BIT1+BIT3+BIT4);P2OUT|=(BIT1+BIT3+BIT4);P2DIR|=(BIT1+BIT3+BIT4);/設(shè)置端口 P1.4、P1.5 允許中斷P1SEL &= (BIT4+BIT5);P1SEL2 &= (BIT4+BIT5);P1OUT |=(BIT4+BIT5);P1REN |=(BIT4+BIT5);P
26、1DIR &=(BIT4+BIT5);P1IES |= (BIT4+BIT5);P1IFG &=(BIT4+BIT5);P1IE |= (BIT4+BIT5);_EINT(); 總中斷允許 for (;)/主循環(huán) L7Blink(); if (flag=1) Buzz(); flag=0; if (flag=2) L1Blink(); flag=0; ;#pragma vector=PORT1_VECTOR_interrupt void port_ISR() if (P1IFG&BIT4)!=0) flag=1;P1IFG &=-BIT4; ;if (P1IFG&BIT5)!=0) flag=
27、2;P1IFG&=BIT5; 3.(詵做)按犍抖動(dòng)處理#include io430.h#include in430.hunsigned int number=0;/記錄響應(yīng)按鍵次數(shù)void delay( )/ 延時(shí)函數(shù) unsigned int j;for (j=0; j0xffff; j+);int main( void ) WDTCTL = WDTPW + WDTHOLD;/ 關(guān)閉看門(mén)狗_disable_interrupt();/_DINT(); 禁止總中斷P2SEL=0;/置 P2為根本I/O 功能P2SEL2=0;/P2OUT=0xFF;/置 P2輸出的初值P2DIR=0xFF;/置
28、P2 為輸出方向P1SEL &= BIT2;P1SEL2 &= BIT2;P1OUT |=BIT2;P1REN |=BIT2;P1DIR &=BIT2;P1IES |= BIT2;P1IFG &=BIT2;P1IE |= BIT2;_enable_interrupt();/_EINT(); 總中斷運(yùn)行while(1) ;#pragma vector=PORT1_VECTOR_interrupt void port_int(void) if( (P1IFG&BIT2)!=0)delay();/增加延時(shí)函數(shù),避開(kāi)毛刺if ( (P1IFG&BIT2)!=0 ) number+;P2OUT=numb
29、er;P1IFG &=BIT2;選做第4題之DCO出廠(chǎng)校驗(yàn)值的頻率檢測(cè)1) MCLK=復(fù)位頻率 /8 約 100KHz;將P2.0與L1相連,程序如下:#include io430.hvoid LED();void delay();int main( void )/關(guān)閉看門(mén)狗WDTCTL = WDTPW + WDTHOLD;/設(shè)置P2.0為輸出狀態(tài)P2SEL&=BIT0;P2SEL2&=BIT0;P2OUT|=BIT0;P2DIR|=BIT0;/復(fù)位8分頻BCSCTL2|=(DIVM0+DIVM1);while(1)LED();void LED()/LED 燈延時(shí)亮滅P2OUT&=BIT0;d
30、elay();P2OUT|=BIT0;delay();void delay()/ 延時(shí)函數(shù)unsigned int i;for (i=0;i0xffff;i+);2) MCLK=DCO=16MHz ;#include io430.hvoid LED();void delay();int main( void )/關(guān)閉看門(mén)狗WDTCTL = WDTPW + WDTHOLD;/P2.0為輸出狀態(tài)P2SEL&=BIT0;P2SEL2&=BIT0;P2OUT|=BIT0;P2DIR|=BIT0;/設(shè)置MCLK時(shí)鐘源為DCO振蕩器BCSCTL2&=(SELM0+SELM1);/DCO振蕩器頻率設(shè)置為16
31、MHzBCSCTL1=CALBC1_16MHZ;DCOCTL=CALDCO_16MHZ;while(1)LED();)void LED()/LED燈延時(shí)亮滅P2OUT&=BIT0;delay();P2OUT|=BIT0;delay();)void delay()/ 延時(shí)函數(shù)unsigned int i;for (i=0;i3000) time+=1;i=0;time=time%10000;d=time/1000;c=(time%1000)/100;b=(time%100)/10;a=time%10;if (a=0) P1OUT&=BIT7; delay(); P1OUT|=BIT7;/蜂鳴器響
32、void delay()/ 延時(shí)函數(shù)unsigned int j;for (j=0;j0xffff;j+);#pragma vector=PORT1_VECTOR_interruptvoid port_ISR()i+;/顯示輸出數(shù)碼管if (flag=0) P2OUT=LEDtaba; P1OUT&=(BIT1+BIT2+BIT3+BIT4);P1OUT|=BIT1; flag=1;else if (flag=1) P2OUT=LEDtabb; P1OUT&=(BIT1+BIT2+BIT3+BIT4);P1OUT|=BIT2; flag=2;else if (flag=2) P2OUT=LED
33、tabc; P1OUT&=(BIT1+BIT2+BIT3+BIT4);P1OUT|=BIT3; flag=3;else if (flag=3) P2OUT=LEDtabd; P1OUT&=(BIT1+BIT2+BIT3+BIT4);P1OUT|=BIT4; flag=0;P1IFG&=(BIT5);/ 清中斷標(biāo)志三、課本程序【L4_int.c =incluk 嗎oHSMiinclude 加3力出void delayt,/延時(shí)函數(shù)! unsigned ml j;kcid 3link()/LCD 閃:PZObT A-BJT31delays);P2OLT = Btn; delajl ;、心id I舞
34、鳴響! unMncd int i;fur (i=0;i3;i+)P2OLH A;-BH4;dtrlayf P2OL1T|= BJ14:11 elfiyi:iTin ( void )小DTCTL = WDTPM+M 口I HOLD;4關(guān)用看門(mén)狗,-彼登引腳FZ4. FL3輸出.PH3連接LE口,P24連接繞鳴器TAHITI:PSL1_2 &T閨T3+BIT4j;P2OUT= F Bm();P1IFG)L4_intA.c程序清單(提供電子文件):include-io430.hMinclude Hin43O.hvoid delayO:int nuiin( void ) H Stop watchdog
35、 timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD:_disable_interrupt();P1SEL &=BIT7;PISEL2 &7J1T7;PIOUT|=BIT7;PIDIR -BIT7:PISEL&=-BITO;P1SEL2 ITO;P1REN =B1TO;P1OUT |BIT0;PIDIR &=-BIT0;PIIES =BITO;PIIFG&=-BITO;PI IE =BIT0: enable mtcrrupt();while(1) );卜pragma vector=P()RTI VECTOR _interrupt void portjnl(oid) if(PHFG&B!TO) !-0) PIOUT&=-B1T7;delay();Pl OUT -B1T7-P11FG BITO;void delay. unsigned ini i; 定義函數(shù)變量 for (i=O;iOxnK;i+)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 供用苗木合同范本
- 加盟教育協(xié)議合同范本
- 與收款合同范本
- 儀器協(xié)議合同范本
- 化驗(yàn)用品購(gòu)銷(xiāo)合同范本
- 2024年四川旅游學(xué)院引進(jìn)考試真題
- 2024年省廈門(mén)市梧村小學(xué)招聘考試真題
- 第二單元 遵守社會(huì)規(guī)則 大單元教學(xué)設(shè)計(jì)-2023-2024學(xué)年統(tǒng)編版道德與法治八年級(jí)上冊(cè)
- 買(mǎi)賣(mài)物品交易合同范本
- 保溫發(fā)泡板合同范本
- 非ST段抬高型急性冠脈綜合征診斷和治療指南(2024)解讀
- 小學(xué)三年級(jí)下冊(cè)英語(yǔ)(牛津上海一起點(diǎn))全冊(cè)語(yǔ)法知識(shí)點(diǎn)總結(jié)
- 2024年計(jì)算機(jī)考試-ISTQB認(rèn)證考試近5年真題附答案
- 云南省2021年中考生物真題試卷(+答案+解析)
- 腦出血中醫(yī)診療方案
- 2024學(xué)年九年級(jí)英語(yǔ)上冊(cè) Unit 4 Stories and poems教案(新版)冀教版
- 2024農(nóng)村宅基地轉(zhuǎn)讓合同范本
- 公務(wù)員考試言語(yǔ)理解高頻詞匯
- 各類(lèi)學(xué)校校園安全應(yīng)急預(yù)案匯編-(附應(yīng)急全套流程圖)
- 《積極心理學(xué)(第3版)》 課件 第3章 積極情緒的價(jià)值
- 斯坦福大學(xué)人生設(shè)計(jì)課 (美比爾·博內(nèi)特 戴夫·伊萬(wàn)斯)
評(píng)論
0/150
提交評(píng)論