帶中斷的交通燈控制系統(tǒng)_第1頁(yè)
帶中斷的交通燈控制系統(tǒng)_第2頁(yè)
帶中斷的交通燈控制系統(tǒng)_第3頁(yè)
帶中斷的交通燈控制系統(tǒng)_第4頁(yè)
帶中斷的交通燈控制系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩81頁(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)介

觀察與思考1、實(shí)際交通燈控制是怎樣的?2、此程序會(huì)出現(xiàn)問(wèn)題嗎?3、是什么原因出現(xiàn)問(wèn)題的?4、如何改正?1.答案見(jiàn)KEILC程序中的注釋,可單步執(zhí)行,觀察現(xiàn)象,再解釋。2.第七章單片機(jī)的中斷系統(tǒng)

知識(shí)目標(biāo):理解單片機(jī)中斷系統(tǒng)的結(jié)構(gòu),掌握其控制存放器,掌握中斷嵌套的概念,理解單片機(jī)中斷的執(zhí)行過(guò)程。技能目標(biāo):能運(yùn)用中斷的方法編寫(xiě)交通燈控制程序,能利用中斷的方法設(shè)計(jì)中等難度的單片機(jī)控制系統(tǒng)。素質(zhì)目標(biāo):養(yǎng)成不斷提升知識(shí)水平及技能水平的學(xué)習(xí)習(xí)慣。養(yǎng)成將學(xué)習(xí)內(nèi)容與日常生活類比的學(xué)習(xí)習(xí)慣。3.交通燈控制系統(tǒng)前面存在的主要問(wèn)題:無(wú)法在任意時(shí)間通過(guò)S1及S2強(qiáng)制使交通燈到所需的狀態(tài).怎么辦?通過(guò)中斷的方式:強(qiáng)制執(zhí)行所需的工作(暫?,F(xiàn)在的工作)4.工程二任務(wù)2改進(jìn)的交通燈控制器

要求:用中斷的方法控制交通燈控制器中的S1、S2.任務(wù)分析:交通燈控制系統(tǒng)存在的主要問(wèn)題:無(wú)法在任意時(shí)間通過(guò)S1及S2強(qiáng)制使交通燈到所需的狀態(tài).5.分析就可知道,必需等交通燈的一個(gè)轉(zhuǎn)換循環(huán)結(jié)束,S1及S2的強(qiáng)制作用才能生效,通過(guò)仿真也可觀察到這一現(xiàn)象,但這在現(xiàn)實(shí)中是不允許的,如有地方發(fā)生火災(zāi)或有重病病人要緊急送往醫(yī)院,這類事情是耽誤不得的。6.硬件電路及控制方法7.流程圖開(kāi)始東西向通行60秒黃燈亮3秒南北向通行120秒黃燈亮3秒中斷的初始化:開(kāi)中斷;電平觸發(fā)方式;外中斷0為低優(yōu)先級(jí),外中斷1為高優(yōu)先級(jí)東西向通行3S中斷返回中斷入口南北向通行3S中斷返回中斷入口S1按下,產(chǎn)生外部中斷0S2按下,產(chǎn)生外部中斷18.要求掌握中斷的概念;掌握8051中斷的控制方法:開(kāi)關(guān)中斷;外部中斷的中斷觸發(fā)方式;優(yōu)先級(jí);掌握中斷處理函數(shù)的編制方法;能應(yīng)用中斷的方法處理交通燈控制及其它中斷問(wèn)題;9.10.11.中斷要做哪些工作中斷處位置的記錄。因?yàn)橹袛嗪筮€要回來(lái),回到何處,只有記錄了位置,才能回到正確的位置。中斷前的重要信息存儲(chǔ)。因?yàn)槿ヌ幚碇袛嗍聞?wù),可能更改原來(lái)的記錄信息,故必需將原來(lái)的重要信息保存起來(lái),回到原來(lái)處理的事情時(shí),才能利用原有的信息,而不是被中斷程序更改正的信息。12.正在執(zhí)行顯示程序鍵盤(pán)按下處理鍵盤(pán)掃描繼續(xù)處理鍵盤(pán)掃描繼續(xù)執(zhí)行顯示程序處理定時(shí)器動(dòng)作定時(shí)時(shí)間到圖7.3顯示及鍵盤(pán)中斷流程圖中斷處理的去向。要處理中斷的事情,必需知道到哪里去處理。中斷允許。因?yàn)?,如果現(xiàn)在處理的問(wèn)題很重要,現(xiàn)在的進(jìn)程就不能被打斷。只有在重要的事情處理完之后,才去響應(yīng)中斷的請(qǐng)求。中斷的優(yōu)先級(jí)。如果同時(shí)出現(xiàn)幾個(gè)中斷事由要求處理,必需按照輕重緩急處理,因此,必需對(duì)它們編制一個(gè)優(yōu)先等級(jí)。13.單片機(jī)的中斷系統(tǒng)的結(jié)構(gòu)中斷是指在突發(fā)事件到來(lái)時(shí)先中止當(dāng)前正在進(jìn)行的工作,轉(zhuǎn)而去處理突發(fā)事件。待處理完成后,再返回到原先被中止的工作處,繼續(xù)進(jìn)行隨后的工作。14.MCS-51單片機(jī)的中斷系統(tǒng)結(jié)構(gòu)執(zhí)行主程序主程序繼續(xù)執(zhí)行主程序斷點(diǎn)中斷請(qǐng)求中斷響應(yīng)執(zhí)行中斷處理程序中斷返回15.引起突發(fā)事件的來(lái)源稱為中斷源中斷源要求效勞的請(qǐng)求稱為中斷請(qǐng)求對(duì)中斷請(qǐng)求提供的效勞稱為中斷效勞中斷管理系統(tǒng)處理事件的過(guò)程稱為中斷響應(yīng)過(guò)程16.引起CPU中斷的根源,稱為中斷源。中斷源向CPU提出的中斷請(qǐng)求。CPU暫時(shí)中斷原來(lái)的事務(wù)A,轉(zhuǎn)去處理事件B。對(duì)事件B處理完畢后,再回到原來(lái)被中斷的地方〔即斷點(diǎn)〕,稱為中斷返回。實(shí)現(xiàn)上述中斷功能的部件稱為中斷系統(tǒng)〔中斷機(jī)構(gòu)〕。17.18.8051的中斷源

一、〔P3.2〕??捎蒊T0(TCON.0)選擇其為低電平有效還是下降沿有效。當(dāng)CPU檢測(cè)到P3.2引腳上出現(xiàn)有效的中斷信號(hào)時(shí),中斷標(biāo)志IE0(TCON.1)置1,向CPU申請(qǐng)中斷。二、(P3.3〕??捎蒊T1(TCON.2)選擇其為低電平有效還是下降沿有效。當(dāng)CPU檢測(cè)到P3.3引腳上出現(xiàn)有效的中斷信號(hào)時(shí),中斷標(biāo)志IE1(TCON.3)置1,向CPU申請(qǐng)中斷。以上兩個(gè)中斷源稱作外部中斷源,因?yàn)樗鼈兌际怯赏獠枯斎氲摹?9.三、定時(shí)器T0。TF0〔TCON.5〕,片內(nèi)定時(shí)/計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志。當(dāng)定時(shí)/計(jì)數(shù)器T0發(fā)生溢出時(shí),置位TF0,并向CPU申請(qǐng)中斷。四、定時(shí)器T1。TF1〔TCON.7〕,片內(nèi)定時(shí)/計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志。當(dāng)定時(shí)/計(jì)數(shù)器T1發(fā)生溢出時(shí),置位TF1,并向CPU申請(qǐng)中斷。五、串行通信。RI〔SCON.0〕或TI〔SCON.1〕,串行口中斷請(qǐng)求標(biāo)志。當(dāng)串行口接收完一幀串行數(shù)據(jù)時(shí)置位RI或當(dāng)串行口發(fā)送完一幀串行數(shù)據(jù)時(shí)置位TI,向CPU申請(qǐng)中斷。20.二、中斷請(qǐng)求標(biāo)志1、TCON的中斷標(biāo)志IT0〔TCON.0〕,外部中斷0觸發(fā)方式控制位。當(dāng)IT0=0時(shí),為電平觸發(fā)方式。當(dāng)IT0=1時(shí),為邊沿觸發(fā)方式〔下降沿有效〕。IE0〔TCON.1〕,外部中斷0中斷請(qǐng)求標(biāo)志位。IT1〔TCON.2〕,外部中斷1觸發(fā)方式控制位。IE1〔TCON.3〕,外部中斷1中斷請(qǐng)求標(biāo)志位。TF0〔TCON.5〕,定時(shí)/計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志位。TF1〔TCON.7〕,定時(shí)/計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志位。21.2、SCON的中斷標(biāo)志RI〔SCON.0〕,串行口接收中斷標(biāo)志位。當(dāng)允許串行口接收數(shù)據(jù)時(shí),每接收完一個(gè)串行幀,由硬件置位RI。同樣,RI必須由軟件去除。TI〔SCON.1〕,串行口發(fā)送中斷標(biāo)志位。當(dāng)CPU將一個(gè)發(fā)送數(shù)據(jù)寫(xiě)入串行口發(fā)送緩沖器時(shí),就啟動(dòng)了發(fā)送過(guò)程。每發(fā)送完一個(gè)串行幀,由硬件置位TI。CPU響應(yīng)中斷時(shí),不能自動(dòng)去除TI,TI必須由軟件去除。22.一、中斷允許控制CPU對(duì)中斷系統(tǒng)所有中斷以及某個(gè)中斷源的開(kāi)放和屏蔽是由中斷允許存放器IE控制的。80C51中斷的控制

EX0(IE.0),外部中斷0允許位;ET0(IE.1),定時(shí)/計(jì)數(shù)器T0中斷允許位;EX1(IE.2),外部中斷1允許位;ET1(IE.3),定時(shí)/計(jì)數(shù)器T1中斷允許位;ES〔IE.4),串行口中斷允許位;EA(IE.7),CPU中斷允許〔總允許〕位。23.以上各位為1時(shí),允許相應(yīng)的中斷,為0時(shí)禁止相應(yīng)的中斷,其中,EA為中斷的總開(kāi)關(guān)。24.二、中斷優(yōu)先級(jí)控制80C51單片機(jī)有兩個(gè)中斷優(yōu)先級(jí),即可實(shí)現(xiàn)二級(jí)中斷效勞嵌套。每個(gè)中斷源的中斷優(yōu)先級(jí)都是由中斷優(yōu)先級(jí)存放器IP中的相應(yīng)位的狀態(tài)來(lái)規(guī)定的。PX0〔IP.0〕,外部中斷0優(yōu)先級(jí)設(shè)定位;PT0〔IP.1〕,定時(shí)/計(jì)數(shù)器T0優(yōu)先級(jí)設(shè)定位;PX1〔IP.2〕,外部中斷0優(yōu)先級(jí)設(shè)定位;PT1〔IP.3〕,定時(shí)/計(jì)數(shù)器T1優(yōu)先級(jí)設(shè)定位;PS〔IP.4〕,串行口優(yōu)先級(jí)設(shè)定位;PT2(IP.5),定時(shí)/計(jì)數(shù)器T2優(yōu)先級(jí)設(shè)定位。25.上面各位為1時(shí),是高優(yōu)先級(jí),為0時(shí)為低優(yōu)先級(jí)。同一優(yōu)先級(jí)中的中斷申請(qǐng)不止一個(gè)時(shí),那么有中斷優(yōu)先權(quán)排隊(duì)問(wèn)題。同一優(yōu)先級(jí)的中斷優(yōu)先權(quán)排隊(duì),由中斷系統(tǒng)硬件確定的自然優(yōu)先級(jí)形成,其排列如所示:26.27.80C51單片機(jī)的中斷優(yōu)先級(jí)有三條原那么:CPU同時(shí)接收到幾個(gè)中斷時(shí),首先響應(yīng)優(yōu)先級(jí)別最高的中斷請(qǐng)求。正在進(jìn)行的中斷過(guò)程不能被新的同級(jí)或低優(yōu)先級(jí)的中斷請(qǐng)求所中斷。正在進(jìn)行的低優(yōu)先級(jí)中斷效勞,能被高優(yōu)先級(jí)中斷請(qǐng)求所中斷。28.中斷的入口

單片機(jī)響應(yīng)中斷時(shí),系統(tǒng)會(huì)自動(dòng)跳到相應(yīng)的地址,即中斷入口地址執(zhí)行中斷程序。這一過(guò)程是由中斷系統(tǒng)自動(dòng)安排的,不需要人為干預(yù)。中斷入口地址表如上表所示,它們位于程序最開(kāi)始的一段區(qū)間〔0003H-0023H〕。29.80C51單片機(jī)中斷處理過(guò)程

一、中斷響應(yīng)條件中斷源有中斷請(qǐng)求;此中斷源的中斷允許位為1;CPU開(kāi)中斷〔即EA=1〕。同時(shí)滿足時(shí),CPU才有可能響應(yīng)中斷。

中斷響應(yīng)條件和時(shí)間

30.二、中斷效勞的進(jìn)入與返回進(jìn)入中斷效勞是單片機(jī)自動(dòng)安排的,如進(jìn)入前會(huì)保存中斷處地址及重要信息。進(jìn)入中斷效勞程序后那么執(zhí)行相應(yīng)的效勞程序,執(zhí)行完后還要恢復(fù)原來(lái)的地址及重要信息,然后返回到原來(lái)被中斷處斷續(xù)執(zhí)行原來(lái)的程序。31.三、中斷響應(yīng)時(shí)間

即從發(fā)出中斷請(qǐng)求到響應(yīng)中斷之間的時(shí)間,這一時(shí)間不長(zhǎng),一般為3-8?jìng)€(gè)機(jī)器周期。32.中斷效勞程序的編制一、中斷效勞程序編制的格式中斷響應(yīng)過(guò)程就是自動(dòng)調(diào)用并執(zhí)行中斷函數(shù)的過(guò)程。C51編譯器支持在C源程序中直接以函數(shù)形式編寫(xiě)中斷效勞程序。常用的中斷函數(shù)定義語(yǔ)法如下:33.中斷處理函數(shù)void函數(shù)名〔〕interruptn34.

中斷源 n入口地址 外部中斷0 0 0003H

定時(shí)/計(jì)數(shù)器01 000BH

外部中斷1 2 0013H

定時(shí)/計(jì)數(shù)器13001BH

串行口 4 0023H35.中斷要做哪些工作呢?中斷處位置的記錄。中斷前的重要信息存儲(chǔ)。中斷處理的去向。中斷允許。中斷的優(yōu)先級(jí)。36.二、工程二任務(wù)2解答:交通燈中斷控制器設(shè)計(jì)1、電路圖圖7.11交通燈電路圖237.電路與原來(lái)的不同是將兩個(gè)控制開(kāi)關(guān)S1及S2移到了外部中斷輸入端口處。當(dāng)開(kāi)關(guān)合上時(shí),輸入低電平產(chǎn)生中斷,斷開(kāi)時(shí)不產(chǎn)生中斷。38.2、控制程序流程圖

控制程序流程圖如圖7.1所示。中斷的產(chǎn)生是隨機(jī)的,并沒(méi)有固定的時(shí)刻。只有S1或S2按下那么產(chǎn)生中斷,還可對(duì)它們?cè)O(shè)置中斷優(yōu)先級(jí),從而防止以前同時(shí)按下時(shí),不好確定響應(yīng)哪個(gè)中斷的情況。39.#include<reg51.h>voiddelay(unsignedint);main(){IE=0x85;//開(kāi)中斷TCON=0x00;//電平觸發(fā)方式IP=0x04;//外中斷0為低優(yōu)先級(jí),外中斷1為高優(yōu)先級(jí)3、控制程序40.while(1){P1=0x21;delay(200);P1=0x12;delay(20);P1=0x0c;delay(400);P1=0x12;delay(20);}}41.voidint0()interrupt0//外中斷0{P1=0x21;delay(100);}voidint1()interrupt2//外中斷1{P1=0x0c;delay(100);}42.voiddelay(unsignedintj){unsignedinti,k;for(k=0;k<j;k++)for(i=0;i<500;i++){;}

}43.三、關(guān)于中斷觸發(fā)方式及程序編制的討論1、關(guān)于邊沿觸發(fā)與電平觸發(fā)的討論1〕電平觸發(fā)中斷44.電平觸發(fā)方式比較好理解.處理器每個(gè)指令周期查詢中斷引腳,當(dāng)發(fā)現(xiàn)引腳電平為低時(shí),觸發(fā)中斷.如果信號(hào)從1變?yōu)?,一個(gè)周期后又變?yōu)?,中斷并不會(huì)被去除,直到中斷執(zhí)行完畢并用RETI指令返回之后.但是如果輸入信號(hào)一直為低,那么將一直觸發(fā)中斷,當(dāng)要求中斷效勞的器件在中斷效勞結(jié)束一段時(shí)間之后才釋放信號(hào)線時(shí)就會(huì)發(fā)生這種情況.這時(shí)你會(huì)發(fā)現(xiàn)中斷被執(zhí)行了屢次,所消耗的時(shí)間比預(yù)期的要長(zhǎng)很多,這時(shí)應(yīng)使用邊沿觸發(fā)方式45.2〕邊沿觸發(fā)方式當(dāng)外部中斷引腳電平由高向低變化時(shí),將觸發(fā)中斷處理器.每個(gè)指令周期查詢中斷引腳,當(dāng)前一個(gè)指令周期是引腳電平為高,緊接著下一個(gè)指令周期檢測(cè)到引腳電平為低時(shí),將觸發(fā)中斷.像前面所提到的那樣,這種方法適用于請(qǐng)求中斷效勞的器件在中斷效勞結(jié)束一段時(shí)間之后才釋放信號(hào)線時(shí)的情況.因?yàn)檫@時(shí)只有下降沿才會(huì)觸發(fā)中斷,如果你還想觸發(fā)下一個(gè)中斷就必須把電平先置高.46.當(dāng)設(shè)計(jì)中斷結(jié)構(gòu)時(shí),你要記住邊沿觸發(fā)適用于那些器件發(fā)出的中斷請(qǐng)求信號(hào)不需要軟件去除的場(chǎng)合.最為普遍的例子是系統(tǒng)的時(shí)標(biāo).這種信號(hào)一般由實(shí)時(shí)時(shí)鐘電路產(chǎn)生,這些器件一般提供一個(gè)占空比為50%的信號(hào)(即信號(hào)的一半是高電平,另一半為低電平).如果使用電平觸發(fā),將將產(chǎn)生很多中斷,這樣即使不擾亂程序的運(yùn)行也將浪費(fèi)系統(tǒng)的資源.47.關(guān)于程序文檔的標(biāo)準(zhǔn)化問(wèn)題討論盡量用易于理解的文字、符號(hào)替換專業(yè)等號(hào)為使程序簡(jiǎn)化,可定義簡(jiǎn)單的符號(hào)代替常用的沉長(zhǎng)的符號(hào)或關(guān)鍵字延時(shí)程序單獨(dú)作為一個(gè)子程序主程序要盡量簡(jiǎn)單化,讓讀者明了程序的骨干、主旨每一功能,無(wú)論簡(jiǎn)單或復(fù)雜,最好編為一子程序48.下面是交通燈控制的另一種程序?qū)懛?,?qǐng)注意它的標(biāo)準(zhǔn)性。49.中斷控制的交通燈#include<reg51.h>//宏定義#defineucharunsignedchar#defineuintunsignedint50.//位變量定義sbitEAST_REDLIGHT=P1^0;sbitEAST_YELLOWLIGHT=P1^1;sbitEAST_GREENLIGHT=P1^2;sbitSOUTH_REDLIGNT=P1^3;sbitSOUTH_YELLOWLIGHT=P1^4;sbitSOUTH_GREENLIGHT=P1^5;51.//延時(shí)子程序voiddelay(uintk){uinti,j;for(i=0;i<1000;i++)for(j=0;j<k;j++);}52.//外部中斷0響應(yīng)程序

voidint0()interrupt0{EAST_REDLIGHT=1;//東西路口紅燈開(kāi)啟

EAST_YELLOWLIGHT=0;//黃綠燈關(guān)閉

EAST_GREENLIGHT=0;SOUTH_REDLIGHT=1;//南北路口紅燈開(kāi)啟53.SOUTH_YELLOWLIGHT=0;//黃綠燈關(guān)閉SOUTH_GREENLIGHT=0;delay(850);}//東西路口通行的子程序

voideast(){54.EAST_REDLIGHT=0;EAST_YELLOWLIGHT=0;EAST_GREENLIGHT=1;SOUTH_REDLIGHT=1;SOUTH_YELLOWLIGHT=0;SOUTH_GREENLIGHT=0;delay(850);55.EAST_REDLIGHT=0;EAST_YELLOWLIGHT=1;EAST_GREENLIGHT=0;delay(85);}//南北路口通行子程序

voidsouth(){56.EAST_REDLIGHT=1;EAST_YELLOWLIGHT=0;EAST_GREENLIGHT=0;SOUTH_REDLIGHT=0;SOUTH_YELLOWLIGHT=0;SOUTH_GREENLIGHT=1;delay(850);57.SOUTH_REDLIGHT=0;SOUTH_YELLOWLIGHT=1;SOUTH_GREENLIGHT=0;delay(85);}58.//主程序

main(){IE=0x81;//開(kāi)中斷

TCON=0x00;//觸發(fā)方式為電平方式

IP=0x00;//while(1){east();//東西路口通行

south();//南北路口通行}}59.中斷嵌套上面列舉的幾個(gè)例子中都有中斷嵌套的問(wèn)題。中斷嵌套,即中斷被中斷。千萬(wàn)是注意,屢次中斷并不是中斷嵌套!60.要求掌握中斷嵌套的概念;能運(yùn)用中斷嵌套處理簡(jiǎn)單的嵌套問(wèn)題;能仿真中斷嵌套實(shí)驗(yàn);61.中斷嵌套8051具有2個(gè)響應(yīng)優(yōu)先級(jí),可以實(shí)現(xiàn)中斷的嵌套,即高優(yōu)先級(jí)的中斷請(qǐng)求可以打斷低優(yōu)先級(jí)的中斷程序程序。等高優(yōu)先級(jí)的中斷程序執(zhí)行完后再轉(zhuǎn)到低優(yōu)先級(jí)的中斷效勞程序繼續(xù)執(zhí)行。中斷嵌套即中斷被中斷;日常生活中中斷嵌套的例子如科代表交作業(yè)中斷了老師的備課,在老師處理科代表交作業(yè)時(shí),老師又補(bǔ)系領(lǐng)導(dǎo)叫去有其它事情,老師回來(lái)后繼續(xù)與科代表交談,了解班級(jí)學(xué)習(xí)情況,科代表離開(kāi)后老師繼續(xù)備課。62.工程二任務(wù)3中斷嵌套仿真63.仿真實(shí)驗(yàn)如下圖,正常時(shí)與P0中相接的數(shù)碼管顯示0-9;如果低優(yōu)先級(jí)的開(kāi)關(guān)按下,那么P0中的數(shù)碼管停止不動(dòng),與P1口相接的數(shù)碼管顯示0-9;如果這時(shí)高優(yōu)先級(jí)的開(kāi)關(guān)按下,那么與P2口相接的數(shù)碼管顯示0-9;斷開(kāi)高優(yōu)先級(jí)的開(kāi)關(guān)后,等0-9一次循環(huán)顯示完后,轉(zhuǎn)到低優(yōu)先級(jí)的數(shù)碼管繼續(xù)顯示;低優(yōu)先級(jí)的開(kāi)關(guān)斷開(kāi)后,轉(zhuǎn)到正常的與P0口相連的數(shù)碼管繼續(xù)循環(huán)顯示0-9.64.65.任務(wù)分析:這里有三個(gè)顯示程序,即P0、P1、P2口的數(shù)碼管都循環(huán)顯示0-9。正常是P0口的顯示,如果發(fā)生開(kāi)關(guān)按下的情況,那么要運(yùn)程其它兩個(gè)口的顯示程序,既然有中斷的情況有兩個(gè),就要對(duì)它們排隊(duì),這就是中斷嵌套的問(wèn)題。66.程序//中斷嵌套實(shí)驗(yàn)//頭文件引用#include"reg51.h"http://宏定義#defineucharunsignedchar#defineuintunsignedint//延時(shí)子程序voiddelay(uintk){uinti,j;for(i=0;i0;i++)for(j=0;j<k;j++);}67.//外部中斷0響應(yīng)程序voidint0()interrupt0{uchari;for(i=0x00;i<0x0a;i++){P1=i;delay(850);}P1=0;}68.//外部中斷1響應(yīng)程序voidint1()interrupt2{uchari;for(i=0xf0;i<0xfa;i++){P2=i;delay(850);}P2=0;}69.//主程序main(){uchari;IE=0x85;//開(kāi)中斷總開(kāi)關(guān)及開(kāi)外部中斷0與1//EA=1;EX0=1;EX1=1;TCON=0x00;//外部中斷為電平觸發(fā)//IT0=0;IT1=0;IP=0x04;//外部中斷0為低級(jí)中斷,外部中斷1為高級(jí)中斷//PX0=0;PX1=1;70.while(1){for(i=0;i<10;i++){P0=i;delay(850);//延時(shí)1秒

}}}71.注意:如果P0口不接上拉電阻,那么P0口的數(shù)碼管顯示不正常;這說(shuō)明P0口的高阻狀態(tài);即P0口沒(méi)有輸出高電平的能力;因?yàn)椋校翱谑羌姌O〔漏極〕開(kāi)路的;72.三個(gè)數(shù)碼管分別通過(guò)BCD碼-七段碼譯碼器CD4511與P0、P1、P2的低四位的四根引腳相連,故送入三個(gè)端口的數(shù)據(jù)直接為十進(jìn)制數(shù),無(wú)需送七段碼。兩個(gè)開(kāi)關(guān)接到外部中斷輸入端,按下開(kāi)關(guān)就可產(chǎn)生中斷。73.程序更改與思考改變IE的值,如為0x81/84,看看再按下中斷開(kāi)關(guān),情況是怎樣的?為什么?改變IP的值,如為0x00/01/11,看看在按下開(kāi)關(guān)時(shí),情況是怎樣的?為什么?改變TCON的值,如為0x05,即為邊沿觸發(fā),看看按下開(kāi)關(guān)時(shí),情況是怎樣的,分析為什么。74.啟示按下中斷開(kāi)關(guān),馬上停止主程序中的P0口的顯示,轉(zhuǎn)到中斷的顯示;反響出中斷響應(yīng)的實(shí)時(shí)性;高級(jí)中斷中斷低級(jí)中斷效勞程序時(shí),也是實(shí)時(shí)性的;即馬上停止低級(jí)顯示,轉(zhuǎn)到高級(jí)顯示。高級(jí)中斷撤消時(shí),一次輪回顯示0-9必需進(jìn)行完后才回到低級(jí)中斷控制的顯示;反響出高級(jí)中斷程序必需進(jìn)行完才去執(zhí)行低級(jí)的中斷,即高級(jí)中斷效勞程序執(zhí)行的完整性;低級(jí)中斷撤消,回到主程序時(shí),也是如此。75.注意74ls47(cd4511)為LED譯碼驅(qū)動(dòng)器;74LS47是輸出低電平有效的;CD4511是輸出高電平有效的;故用74LS47時(shí)接共陽(yáng)的數(shù)碼管,而用CD4511時(shí),應(yīng)接共陰的數(shù)碼管;76.思考如果不用譯碼器,直接將數(shù)碼管

溫馨提示

  • 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)論