




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
視察與思索1、實際交通燈限制是怎樣的?2、此程序會出現問題嗎?3、是什么緣由出現問題的?4、如何改正?答案見KEILC程序中的注釋,可單步執行,視察現象,再說明。第七章單片機的中斷系統
學問目標:理解單片機中斷系統的結構,駕馭其限制寄存器,駕馭中斷嵌套的概念,理解單片機中斷的執行過程。技能目標:能運用中斷的方法編寫交通燈限制程序,能利用中斷的方法設計中等難度的單片機限制系統。素養目標:養成不斷提升學問水平及技能水平的學習習慣。養成將學習內容與日常生活類比的學習習慣。交通燈限制系統前面存在的主要問題:無法在隨意時間通過S1及S2強制使交通燈到所需的狀態.怎么辦?通過中斷的方式:強制執行所需的工作(暫?,F在的工作)項目二任務2改進的交通燈限制器
要求:用中斷的方法限制交通燈限制器中的S1、S2.任務分析:交通燈限制系統存在的主要問題:無法在隨意時間通過S1及S2強制使交通燈到所需的狀態.分析就可知道,必需等交通燈的一個轉換循環結束,S1及S2的強制作用才能生效,通過仿真也可視察到這一現象,但這在現實中是不允許的,如有地方發生火災或有重病病人要緊急送往醫院,這類事情是耽擱不得的。硬件電路及限制方法流程圖起先東西向通行60秒黃燈亮3秒南北向通行120秒黃燈亮3秒中斷的初始化:開中斷;電平觸發方式;外中斷0為低優先級,外中斷1為高優先級東西向通行3S中斷返回中斷入口南北向通行3S中斷返回中斷入口S1按下,產生外部中斷0S2按下,產生外部中斷1要求駕馭中斷的概念;駕馭8051中斷的限制方法:開關中斷;外部中斷的中斷觸發方式;優先級;駕馭中斷處理函數的編制方法;能應用中斷的方法處理交通燈限制及其它中斷問題;中斷要做哪些工作中斷處位置的記錄。因為中斷后還要回來,回到何處,只有記錄了位置,才能回到正確的位置。中斷前的重要信息存儲。因為去處理中斷事務,可能更改原來的記錄信息,故必需將原來的重要信息保存起來,回到原來處理的事情時,才能利用原有的信息,而不是被中斷程序更改過的信息。正在執行顯示程序鍵盤按下處理鍵盤掃描接著處理鍵盤掃描接著執行顯示程序處理定時器動作定時時間到圖7.3顯示及鍵盤中斷流程圖中斷處理的去向。要處理中斷的事情,必需知道到哪里去處理。中斷允許。因為,假如現在處理的問題很重要,現在的進程就不能被打斷。只有在重要的事情處理完之后,才去響應中斷的懇求。中斷的優先級。假猶如時出現幾個中斷事由要求處理,必需依據輕重緩急處理,因此,必需對它們編制一個優先等級。單片機的中斷系統的結構中斷是指在突發事務到來時先中止當前正在進行的工作,轉而去處理突發事務。待處理完成后,再返回到原先被中止的工作處,接著進行隨后的工作。MCS-51單片機的中斷系統結構執行主程序主程序接著執行主程序斷點中斷懇求中斷響應執行中斷處理程序中斷返回引起突發事務的來源稱為中斷源中斷源要求服務的懇求稱為中斷懇求對中斷懇求供應的服務稱為中斷服務中斷管理系統處理事務的過程稱為中斷響應過程引起CPU中斷的根源,稱為中斷源。中斷源向CPU提出的中斷懇求。CPU短暫中斷原來的事務A,轉去處理事務B。對事務B處理完畢后,再回到原來被中斷的地方(即斷點),稱為中斷返回。實現上述中斷功能的部件稱為中斷系統(中斷機構)。8051的中斷源
一、(P3.2)。可由IT0(TCON.0)選擇其為低電平有效還是下降沿有效。當CPU檢測到P3.2引腳上出現有效的中斷信號時,中斷標記IE0(TCON.1)置1,向CPU申請中斷。二、(P3.3)??捎蒊T1(TCON.2)選擇其為低電平有效還是下降沿有效。當CPU檢測到P3.3引腳上出現有效的中斷信號時,中斷標記IE1(TCON.3)置1,向CPU申請中斷。以上兩個中斷源稱作外部中斷源,因為它們都是由外部輸入的。三、定時器T0。TF0(TCON.5),片內定時/計數器T0溢出中斷懇求標記。當定時/計數器T0發生溢出時,置位TF0,并向CPU申請中斷。四、定時器T1。TF1(TCON.7),片內定時/計數器T1溢出中斷懇求標記。當定時/計數器T1發生溢出時,置位TF1,并向CPU申請中斷。五、串行通信。RI(SCON.0)或TI(SCON.1),串行口中斷懇求標記。當串行口接收完一幀串行數據時置位RI或當串行口發送完一幀串行數據時置位TI,向CPU申請中斷。二、中斷懇求標記1、TCON的中斷標記IT0(TCON.0),外部中斷0觸發方式限制位。當IT0=0時,為電平觸發方式。當IT0=1時,為邊沿觸發方式(下降沿有效)。IE0(TCON.1),外部中斷0中斷懇求標記位。IT1(TCON.2),外部中斷1觸發方式限制位。IE1(TCON.3),外部中斷1中斷懇求標記位。TF0(TCON.5),定時/計數器T0溢出中斷懇求標記位。TF1(TCON.7),定時/計數器T1溢出中斷懇求標記位。2、SCON的中斷標記RI(SCON.0),串行口接收中斷標記位。當允許串行口接收數據時,每接收完一個串行幀,由硬件置位RI。同樣,RI必需由軟件清除。TI(SCON.1),串行口發送中斷標記位。當CPU將一個發送數據寫入串行口發送緩沖器時,就啟動了發送過程。每發送完一個串行幀,由硬件置位TI。CPU響應中斷時,不能自動清除TI,TI必需由軟件清除。一、中斷允許限制CPU對中斷系統全部中斷以及某個中斷源的開放和屏蔽是由中斷允許寄存器IE限制的。80C51中斷的限制EX0(IE.0),外部中斷0允許位;ET0(IE.1),定時/計數器T0中斷允許位;EX1(IE.2),外部中斷1允許位;ET1(IE.3),定時/計數器T1中斷允許位;ES(IE.4),串行口中斷允許位;EA(IE.7),CPU中斷允許(總允許)位。以上各位為1時,允許相應的中斷,為0時禁止相應的中斷,其中,EA為中斷的總開關。二、中斷優先級限制80C51單片機有兩個中斷優先級,即可實現二級中斷服務嵌套。每個中斷源的中斷優先級都是由中斷優先級寄存器IP中的相應位的狀態來規定的。PX0(IP.0),外部中斷0優先級設定位;PT0(IP.1),定時/計數器T0優先級設定位;PX1(IP.2),外部中斷0優先級設定位;PT1(IP.3),定時/計數器T1優先級設定位;PS
(IP.4),串行口優先級設定位;PT2(IP.5),定時/計數器T2優先級設定位。上面各位為1時,是高優先級,為0時為低優先級。同一優先級中的中斷申請不止一個時,則有中斷優先權排隊問題。同一優先級的中斷優先權排隊,由中斷系統硬件確定的自然優先級形成,其排列如所示:80C51單片機的中斷優先級有三條原則:CPU同時接收到幾個中斷時,首先響應優先級別最高的中斷懇求。正在進行的中斷過程不能被新的同級或低優先級的中斷懇求所中斷。正在進行的低優先級中斷服務,能被高優先級中斷懇求所中斷。中斷的入口
單片機響應中斷時,系統會自動跳到相應的地址,即中斷入口地址執行中斷程序。這一過程是由中斷系統自動支配的,不須要人為干預。中斷入口地址表如上表所示,它們位于程序最起先的一段區間(0003H-0023H)。80C51單片機中斷處理過程
一、中斷響應條件中斷源有中斷懇求;此中斷源的中斷允許位為1;CPU開中斷(即EA=1)。同時滿足時,CPU才有可能響應中斷。
中斷響應條件和時間
二、中斷服務的進入與返回進入中斷服務是單片機自動支配的,如進入前會保存中斷處地址及重要信息。進入中斷服務程序后則執行相應的服務程序,執行完后還要復原原來的地址及重要信息,然后返回到原來被中斷處斷續執行原來的程序。三、中斷響應時間
即從發出中斷懇求到響應中斷之間的時間,這一時間不長,一般為3-8個機器周期。中斷服務程序的編制一、中斷服務程序編制的格式中斷響應過程就是自動調用并執行中斷函數的過程。C51編譯器支持在C源程序中干脆以函數形式編寫中斷服務程序。常用的中斷函數定義語法如下:中斷處理函數void
函數名()interruptn
中斷源 n入口地址 外部中斷0 0 0003H
定時/計數器01 000BH
外部中斷1 2 0013H
定時/計數器13001BH
串行口 4 0023H中斷要做哪些工作呢?中斷處位置的記錄。中斷前的重要信息存儲。中斷處理的去向。中斷允許。中斷的優先級。二、項目二任務2解答:交通燈中斷限制器設計1、電路圖圖7.11交通燈電路圖2電路與原來的不同是將兩個限制開關S1及S2移到了外部中斷輸入端口處。當開關合上時,輸入低電平產生中斷,斷開時不產生中斷。2、限制程序流程圖
限制程序流程圖如圖7.1所示。中斷的產生是隨機的,并沒有固定的時刻。只有S1或S2按下則產生中斷,還可對它們設置中斷優先級,從而避開以前同時按下時,不好確定響應哪個中斷的狀況。#include<reg51.h>voiddelay(unsignedint);main(){IE=0x85;//開中斷TCON=0x00;//電平觸發方式IP=0x04;//外中斷0為低優先級,外中斷1為高優先級3、限制程序while(1){P1=0x21;delay(200);P1=0x12;delay(20);P1=0x0c;delay(400);P1=0x12;delay(20);}}voidint0()interrupt0//外中斷0{P1=0x21;delay(100);}voidint1()interrupt2//外中斷1{P1=0x0c;delay(100);}voiddelay(unsignedintj){unsignedinti,k;for(k=0;k<j;k++)for(i=0;i<500;i++){;}
}三、關于中斷觸發方式及程序編制的探討1、關于邊沿觸發與電平觸發的探討1)電平觸發中斷電平觸發方式比較好理解.處理器每個指令周期查詢中斷引腳,當發覺引腳電平為低時,觸發中斷.假如信號從1變為0,一個周期后又變為1,中斷并不會被清除,直到中斷執行完畢并用RETI指令返回之后.但是假如輸入信號始終為低,那么將始終觸發中斷,當要求中斷服務的器件在中斷服務結束一段時間之后才釋放信號線時就會發生這種狀況.這時你會發覺中斷被執行了多次,所消耗的時間比預期的要長很多,這時應運用邊沿觸發方式2)邊沿觸發方式當外部中斷引腳電平由高向低變更時,將觸發中斷處理器.每個指令周期查詢中斷引腳,當前一個指令周期是引腳電平為高,緊接著下一個指令周期檢測到引腳電平為低時,將觸發中斷.像前面所提到的那樣,這種方法適用于懇求中斷服務的器件在中斷服務結束一段時間之后才釋放信號線時的狀況.因為這時只有下降沿才會觸發中斷,假如你還想觸發下一個中斷就必需把電平先置高.當設計中斷結構時,你要記住邊沿觸發適用于那些器件發出的中斷懇求信號不須要軟件清除的場合.最為普遍的例子是系統的時標.這種信號一般由實時時鐘電路產生,這些器件一般供應一個占空比為50%的信號(即信號的一半是高電平,另一半為低電平).假如運用電平觸發,將將產生很多中斷,這樣即使不擾亂程序的運行也將奢侈系統的資源.關于程序文檔的規范化問題探討盡量用易于理解的文字、符號替換專業等號為使程序簡化,可定義簡潔的符號代替常用的沉長的符號或關鍵字延時程序單獨作為一個子程序主程序要盡量簡潔化,讓讀者明白程序的骨干、主旨每一功能,無論簡潔或困難,最好編為一子程序下面是交通燈限制的另一種程序寫法,請留意它的規范性。中斷限制的交通燈#include<reg51.h>//宏定義#defineucharunsignedchar#defineuintunsignedint//位變量定義sbitEAST_REDLIGHT=P1^0;sbitEAST_YELLOWLIGHT=P1^1;sbitEAST_GREENLIGHT=P1^2;sbitSOUTH_REDLIGNT=P1^3;sbitSOUTH_YELLOWLIGHT=P1^4;sbitSOUTH_GREENLIGHT=P1^5;//延時子程序voiddelay(uintk){uinti,j;for(i=0;i<1000;i++)for(j=0;j<k;j++);}//外部中斷0響應程序
voidint0()interrupt0{EAST_REDLIGHT=1;//東西路口紅燈開啟
EAST_YELLOWLIGHT=0;//黃綠燈關閉
EAST_GREENLIGHT=0;SOUTH_REDLIGHT=1;//南北路口紅燈開啟SOUTH_YELLOWLIGHT=0;//黃綠燈關閉SOUTH_GREENLIGHT=0;delay(850);}//東西路口通行的子程序
voideast(){EAST_REDLIGHT=0;EAST_YELLOWLIGHT=0;EAST_GREENLIGHT=1;SOUTH_REDLIGHT=1;SOUTH_YELLOWLIGHT=0;SOUTH_GREENLIGHT=0;delay(850);EAST_REDLIGHT=0;EAST_YELLOWLIGHT=1;EAST_GREENLIGHT=0;delay(85);}//南北路口通行子程序
voidsouth(){EAST_REDLIGHT=1;EAST_YELLOWLIGHT=0;EAST_GREENLIGHT=0;SOUTH_REDLIGHT=0;SOUTH_YELLOWLIGHT=0;SOUTH_GREENLIGHT=1;delay(850);SOUTH_REDLIGHT=0;SOUTH_YELLOWLIGHT=1;SOUTH_GREENLIGHT=0;delay(85);}//主程序
main(){IE=0x81;//開中斷
TCON=0x00;//觸發方式為電平方式
IP=0x00;//while(1){east();//東西路口通行
south();//南北路口通行}}中斷嵌套上面列舉的幾個例子中都有中斷嵌套的問題。中斷嵌套,即中斷被中斷。千萬是留意,多次中斷并不是中斷嵌套!要求駕馭中斷嵌套的概念;能運用中斷嵌套處理簡潔的嵌套問題;能仿真中斷嵌套試驗;中斷嵌套8051具有2個響應優先級,可以實現中斷的嵌套,即高優先級的中斷懇求可以打斷低優先級的中斷程序程序。等高優先級的中斷程序執行完后再轉到低優先級的中斷服務程序接著執行。中斷嵌套即中斷被中斷;日常生活中中斷嵌套的例子如科代表交作業中斷了老師的備課,在老師處理科代表交作業時,老師又補系領導叫去有其它事情,老師回來后接著與科代表交談,了解班級學習狀況,科代表離開后老師接著備課。項目二任務3中斷嵌套仿真仿真試驗如圖所示,正常時與P0中相接的數碼管顯示0-9;假如低優先級的開關按下,則P0中的數碼管停止不動,與P1口相接的數碼管顯示0-9;假如這時高優先級的開關按下,則與P2口相接的數碼管顯示0-9;斷開高優先級的開關后,等0-9一次循環顯示完后,轉到低優先級的數碼管接著顯示;低優先級的開關斷開后,轉到正常的與P0口相連的數碼管接著循環顯示0-9.任務分析:這里有三個顯示程序,即P0、P1、P2口的數碼管都循環顯示0-9。正常是P0口的顯示,假如發生開關按下的狀況,則要運程其它兩個口的顯示程序,既然有中斷的狀況有兩個,就要對它們排隊,這就是中斷嵌套的問題。程序//中斷嵌套試驗//頭文件引用#include"reg51.h"http://宏定義#defineucharunsignedchar#defineuintunsignedint//延時子程序voiddelay(uintk){uinti,j;for(i=0;i0;i++)for(j=0;j<k;j++);}//外部中斷0響應程序voidint0()interrupt0{uchari;for(i=0x00;i<0x0a;i++){P1=i;delay(850);}P1=0;}//外部中斷1響應程序voidint1()interrupt2{uchari;for(i=0xf0;i<0xfa;i++){P2=i;delay(850);}P2=0;}//主程序main(){uchari;IE=0x85;//開中斷總開關及開外部中斷0與1//EA=1;EX0=1;EX1=1;TCON=0x00;//外部中斷為電平觸發//IT0=0;IT1=0;IP=0x04;//外部中斷0為低級中斷,外部中斷1為高級中斷//PX0=0;PX1=1;while(1){for(i=0;i<10;i++){P0=i;delay(850);//延時1秒
}}}留意:假如P0口不接上拉電阻,則P0口的數碼管顯示不正常;這說明P0口的高阻狀態;即P0口沒有輸出高電平的實力;因為P0口是集電極(漏極)開路的;三個數碼管分別通過BCD碼-七段碼譯碼器CD4511與P0、P1、P2的低四位的四根引腳相連,故送入三個端口的數據干脆為十進制數,無需送七段碼。兩個開關接到外部中斷輸入端,按下開關就可產生中斷。程序更改與思索變更IE的值,如為0x81/84,看看再按下中斷開關,狀況是怎樣的?為什么?變更IP的值,如為0x00/01/11,看看在按下開關時,狀況是怎樣的?為什么?變更TCON的值,如為0x05,即為邊沿觸發,看看按下開關時,狀況是怎樣的,分析為什么。啟示按下中斷開關,立刻停止主程序中的P0口的顯示,轉到中斷的顯示;反應出中斷響應的實時性;高級中斷中斷低級中斷服務程序時,也是實時性的;即立刻停止低級顯示,轉到高級顯示。高級中斷撤消時,一次輪回顯示0-9必需進行完后才回到低級中斷限制的顯示;反應出高級中斷程序必需進行完才去執行低級的中斷,即高級中斷服務程序執行的完整性;低級中斷撤消,回到主程序時,也是如此。留意74ls47(cd4511)為LED譯碼驅動器;74LS47是輸出低電平有效的;CD4511是輸出高電平有效的;故用74LS47時接共陽的數碼管,而用CD4511時,應接共陰的數碼管;思索假如不用譯碼器,干脆將數碼管接
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 年產300套SVG動態無功補償裝置研發生產項目可行性研究報告-立項備案
- 誠信教育:誠信與考試主題班會
- 自動控制原理課程設計報告
- 城區土地押金合同協議
- 大學生心理教育
- 租賃農村屋頂合同協議
- 生肉購買合同協議
- 軟件課程學習心得體會
- 煙道開孔合同協議
- 礦石供銷協議書范本
- 義務兵家庭優待金審核登記表
- GA 255-2022警服長袖制式襯衣
- GB/T 5202-2008輻射防護儀器α、β和α/β(β能量大于60keV)污染測量儀與監測儀
- GB/T 39560.4-2021電子電氣產品中某些物質的測定第4部分:CV-AAS、CV-AFS、ICP-OES和ICP-MS測定聚合物、金屬和電子件中的汞
- GB/T 3452.4-2020液壓氣動用O形橡膠密封圈第4部分:抗擠壓環(擋環)
- 計劃生育協會基礎知識課件
- 【教材解讀】語篇研讀-Sailing the oceans
- 抗腫瘤藥物過敏反應和過敏性休克
- 排水管道非開挖預防性修復可行性研究報告
- 交通工程基礎習習題及參考答案
- 線路送出工程質量創優項目策劃書
評論
0/150
提交評論