單片機(jī)技術(shù)應(yīng)用項(xiàng)目化教程(C語(yǔ)言版)(第2版) 課件 任務(wù)4.2_第1頁(yè)
單片機(jī)技術(shù)應(yīng)用項(xiàng)目化教程(C語(yǔ)言版)(第2版) 課件 任務(wù)4.2_第2頁(yè)
單片機(jī)技術(shù)應(yīng)用項(xiàng)目化教程(C語(yǔ)言版)(第2版) 課件 任務(wù)4.2_第3頁(yè)
單片機(jī)技術(shù)應(yīng)用項(xiàng)目化教程(C語(yǔ)言版)(第2版) 課件 任務(wù)4.2_第4頁(yè)
單片機(jī)技術(shù)應(yīng)用項(xiàng)目化教程(C語(yǔ)言版)(第2版) 課件 任務(wù)4.2_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

項(xiàng)目4電子時(shí)鐘控制系統(tǒng)任務(wù)4.2秒表計(jì)明確任務(wù)

在項(xiàng)目三中定時(shí)時(shí)間采用查詢方式,不能及時(shí)的處理定時(shí)器溢出,特別是程序較大時(shí)會(huì)出現(xiàn)很大的計(jì)時(shí)誤差。并且查詢會(huì)占用CPU寶貴的系統(tǒng)資源。單片機(jī)內(nèi)部中斷系統(tǒng)可以能夠及時(shí)的解決類似的突發(fā)事件,把CPU解放出來(lái),只有在突發(fā)事件到來(lái)的時(shí)候才去處理相應(yīng)事件。工作任務(wù):設(shè)計(jì)制作一個(gè)秒表計(jì)。利用單片機(jī)中斷系統(tǒng),配合3個(gè)按鍵1位共陽(yáng)數(shù)碼管,實(shí)現(xiàn)一位數(shù)秒表計(jì)功能。3個(gè)按鍵分別為啟動(dòng)功能,停止功能,清零功能。知識(shí)鏈接一中斷概念什么是中斷,我們從生活中的例子引入。某人看書(shū)執(zhí)行主程序 中斷過(guò)程電話鈴響中斷信號(hào)INTx=0 中斷請(qǐng)求暫停看書(shū) 暫停執(zhí)行主程序中斷響應(yīng)書(shū)中作記號(hào)當(dāng)前PC值入棧 保護(hù)斷點(diǎn)電話談話 執(zhí)行中斷程序 中斷服務(wù)繼續(xù)看書(shū) 返回主程序中斷返回某人看書(shū)執(zhí)行主程序 中斷過(guò)程電話鈴響中斷信號(hào)INTx=0 中斷請(qǐng)求暫??磿?shū) 暫停執(zhí)行主程序中斷響應(yīng)書(shū)中作記號(hào)當(dāng)前PC值入棧 保護(hù)斷點(diǎn)電話談話 執(zhí)行中斷程序 中斷服務(wù)繼續(xù)看書(shū) 返回主程序中斷返回中斷源——中斷的申請(qǐng)方中斷控制寄存器——中斷的控制“工具”中斷響應(yīng)——中斷的“內(nèi)容”中斷返回——中斷結(jié)束中斷發(fā)生或中斷請(qǐng):CPU在處理某一事件A時(shí),發(fā)生了另一事件B請(qǐng)求CPU迅速去處理中斷響應(yīng)和中斷服務(wù):CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)去處理事件B中斷返回:待CPU將事件B處理完畢,再回到原來(lái)事件A被中斷的地方繼續(xù)處理事件A二AT89S51單片機(jī)中斷系統(tǒng)定時(shí)器控制寄存器TCON(88H)

TF0/TF1:定時(shí)器溢出中斷申請(qǐng)標(biāo)志位(由硬件自動(dòng)置位)。

=0:定時(shí)器未溢出;

=1:定時(shí)器溢出(由全“1”變成全“0”)時(shí)由硬件自動(dòng)置位,申請(qǐng)中斷,中斷被CPU響應(yīng)后由硬件自動(dòng)清零。TR0/TR1:定時(shí)器運(yùn)行啟??刂莆唬ㄓ脩敉ㄟ^(guò)軟件設(shè)置)。

=0:定時(shí)器停止運(yùn)行;

=1:定時(shí)器啟動(dòng)運(yùn)行。IE0/IE1:外部中斷申請(qǐng)標(biāo)志位(由硬件自動(dòng)置位,中斷響應(yīng)后轉(zhuǎn)向中斷服務(wù)程序時(shí),由硬件自動(dòng)清0)。

=0:沒(méi)有外部中斷申請(qǐng);

=1:有外部中斷申請(qǐng)。IT0/IT1:外部中斷請(qǐng)求的觸發(fā)方式控制位(用戶通過(guò)軟件設(shè)置)。

=0:在INT0/INT1端申請(qǐng)中斷的信號(hào)低電平有效;

=1:在INT0/INT1端申請(qǐng)中斷的信號(hào)負(fù)跳變有效。TI/RI:串行口發(fā)送/接收中斷申請(qǐng)標(biāo)志位

=0:沒(méi)有串行口發(fā)送/接收中斷申請(qǐng)

=1:有串行口發(fā)送/接收中斷申請(qǐng)。SCON的高6位用于串行口工作方式設(shè)置和串行口發(fā)送/接收控制。由硬件自動(dòng)置位,必須由用戶在中斷服務(wù)程序中用軟件清串行口控制寄存器SCON

位地址9FH9EH9DH9CH9BH9AH99H98HSCONSM0SM1SM2RENTB8RB8TIRIEA(EnableAll)總中斷允許標(biāo)志ES(EnableSeries)串行口允許標(biāo)志ET0、ET1(EnableTimer)定時(shí)器/計(jì)數(shù)器溢出中斷標(biāo)志EX0、EX1(EnableeXternal)外部中斷允許標(biāo)志上述中:“1”表示允許中斷,“0”表示屏蔽中斷。IE(InterruptEnable)中斷允許寄存器IP(Interruptpriority)中斷優(yōu)先權(quán)控制寄存器(B8H)PS:串行口中斷優(yōu)先級(jí)控制位PT0、PT1:定時(shí)器/計(jì)數(shù)器中斷優(yōu)先級(jí)控制位PX0、PX1:外部中斷優(yōu)先級(jí)控制位上述中:“1”表示高優(yōu)先級(jí),“0”表示低優(yōu)先級(jí)。CPU響應(yīng)中斷必須首先滿足以下三個(gè)基本條件。①有中斷源發(fā)出中斷請(qǐng)求。②中斷總允許位EA=1。③請(qǐng)求中斷的中斷源的中斷允許位為1。在滿足以上條件的基礎(chǔ)上,若有下列任何一種情況存在,中斷響應(yīng)都會(huì)受到阻斷。①CPU正在執(zhí)行一個(gè)同級(jí)或高優(yōu)先級(jí)的中斷服務(wù)程序。②正在執(zhí)行的指令尚未執(zhí)行完。③正在執(zhí)行中斷返回指令RETI或者對(duì)專用寄存器IE、IP進(jìn)行讀/寫(xiě)的指令。CPU在執(zhí)行完上述指令之后,要再執(zhí)行一條指令,才能響應(yīng)中斷請(qǐng)求。三中斷處理過(guò)程

中斷過(guò)程包括中斷請(qǐng)求、中斷響應(yīng)、中斷服務(wù)、中斷返回四個(gè)階段。

中斷請(qǐng)求:中斷源將相應(yīng)請(qǐng)求中斷的標(biāo)志位置“1”,表示發(fā)出請(qǐng)求,并由CPU查詢。中斷響應(yīng):在中斷允許條件下相應(yīng)中斷。斷點(diǎn)入?!烦袛鄻?biāo)志→關(guān)閉低同級(jí)中斷允許→中斷入口地址送PC。這些工作都是由硬件自動(dòng)完成的。

中斷服務(wù):根據(jù)入口地址轉(zhuǎn)中斷服務(wù)程序,包含保護(hù)現(xiàn)場(chǎng)、執(zhí)行中斷主體、恢復(fù)現(xiàn)場(chǎng)。

中斷返回:執(zhí)行中斷返回RETI指令→斷點(diǎn)出棧→開(kāi)放中斷允許→返回原程序。中斷請(qǐng)求的撤除定時(shí)器溢出中斷請(qǐng)求的撤除CPU在響應(yīng)中斷后,硬件會(huì)自動(dòng)清除中斷請(qǐng)求標(biāo)志TF0或TFl。串行口中斷的撤除在CPU響應(yīng)中斷后,硬件不能清除中斷請(qǐng)求標(biāo)志TI和RI,而要由軟件來(lái)清除相應(yīng)的標(biāo)志。外部中斷的撤除外部中斷為邊沿觸發(fā)方式時(shí),CPU響應(yīng)中斷后,硬件會(huì)自動(dòng)清除中斷請(qǐng)求標(biāo)志IE0或IEl。

外部中斷為電平觸發(fā)方式時(shí),CPU響應(yīng)中斷后,硬件會(huì)自動(dòng)清除中斷請(qǐng)求標(biāo)志IE0或IEl,但由于加到INT0或INT1引腳的外部中斷請(qǐng)求信號(hào)并未撤除,中斷請(qǐng)求標(biāo)志IE0或IEl會(huì)再次被置1,所以在CPU響應(yīng)中斷后應(yīng)立即撤除INT0或INT1引腳上的低電平。一般采用加一個(gè)D觸發(fā)器和幾條指令的方法來(lái)解決這個(gè)問(wèn)題。四單片機(jī)中斷應(yīng)用

定時(shí)計(jì)數(shù)器在應(yīng)用中往往采用中斷方式進(jìn)行處理,常常作為一個(gè)時(shí)間基,通過(guò)中斷提供不同時(shí)間分割,提供不同定時(shí)需求。對(duì)定時(shí)計(jì)數(shù)器的應(yīng)用初始化除了需要最基本的定時(shí)相關(guān)工作配置,還需要對(duì)定時(shí)中斷進(jìn)行配置。具體步驟:①定時(shí)計(jì)數(shù)器工作模式配置。根據(jù)需要,選擇定時(shí)計(jì)數(shù)器及其工作方式。②計(jì)算初始值,并賦值。計(jì)算方法詳見(jiàn)項(xiàng)目三。③清除標(biāo)志位。④開(kāi)定時(shí)器中斷,并開(kāi)放總中斷位。⑤根據(jù)需要開(kāi)啟運(yùn)行定時(shí)計(jì)數(shù)器。為了能使單片機(jī)在執(zhí)行主程序過(guò)程中能響應(yīng)中斷,就必須先對(duì)使用中斷的相關(guān)寄存器進(jìn)行初始化。1.初始化TMOD=0x01;//設(shè)置定時(shí)器T0,工作模式1,內(nèi)部控制運(yùn)行方式TH0=0x3C;//TL0=0xB0;//賦初始值TF0=0;//清標(biāo)志位ET0=1;//運(yùn)行定時(shí)器0中斷EA=1;//開(kāi)總中斷TR0=1;//運(yùn)行T0若采用定時(shí)器計(jì)算1s,那么定時(shí)器最大定時(shí)65ms,顯然不能滿足要求,可以通過(guò)間接方式顯示,20*50ms=1000ms。定時(shí)器采用T0,工作方式1.則上述步驟程序?qū)?yīng)為如果一個(gè)按鍵采用外部中斷0,則中斷初始化程序如下:IT0=0;//設(shè)置INT0為下降沿觸發(fā)EX0=1;//允許外部中斷0EA=1;//開(kāi)發(fā)所有中斷2.中斷服務(wù)程序(1)中斷服務(wù)程序入口。

KeilC中規(guī)定51單片機(jī)每種中斷類型所對(duì)應(yīng)的中斷服務(wù)程序入口編號(hào)。中斷源類型KeilC中斷號(hào)外部中斷00定時(shí)計(jì)數(shù)器中斷01外部中斷12定時(shí)計(jì)數(shù)器中斷13串行口中斷42.中斷服務(wù)程序void中斷服務(wù)程序名()

interrupt中斷號(hào)

【usingn】{//中斷服務(wù)語(yǔ)句}

中斷服務(wù)程序名:自定義名稱,一般依據(jù)中斷服務(wù)程序功能命名;“interrupt”是中斷服務(wù)程序的關(guān)鍵字;“中斷號(hào)”根據(jù)KeilC規(guī)定編號(hào);using,定義工作寄存器組;n為寄存器組編號(hào)(0-3)。中斷服務(wù)語(yǔ)句盡可能的短,基本不用來(lái)進(jìn)行數(shù)據(jù)處理,大多數(shù)置為標(biāo)志信號(hào)。有主程序根據(jù)標(biāo)志信號(hào)在進(jìn)行數(shù)據(jù)的處理。若采用定時(shí)器中斷0,則中斷服務(wù)程序。/*定時(shí)器中斷0中斷服務(wù)程序*/voidT0_sev()interrupt1{ //定時(shí)器中斷0處理語(yǔ)句}若要求禁止更高優(yōu)先級(jí)中斷源的中斷請(qǐng)求,應(yīng)先用軟件關(guān)閉CPU中斷或屏蔽更高級(jí)中斷源的中斷,在中斷返回前再開(kāi)放被關(guān)閉或被屏蔽的中斷。二、硬件電路圖三、軟件設(shè)計(jì)與編程

(1)定時(shí)器中斷方式實(shí)現(xiàn)0-9s時(shí)鐘顯示。voidT0_sev()interrupt1//T0中斷函數(shù){ TH0=0x3C; //置初始值

TL0=0xB0; count++; if(count>=20) //1s到

{ count=0; //計(jì)數(shù)器清零

flag_1s=1;//1s標(biāo)志位置位

} }(2)秒表計(jì)按照任務(wù)要求添加上3個(gè)按鍵,實(shí)現(xiàn)啟動(dòng)、停止、清零功能。if(START==0)TR0=1;//啟動(dòng)

if(STOP==0)TR0=0;//停止if(CLR==0)i=0;//清零sbitSTART=P2^0;//啟動(dòng)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論