




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、中斷 高廣春 5#B 210 MCS-51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng) 計(jì)算機(jī)與外界的聯(lián)系是通過外部設(shè)備(也稱為外設(shè)、輸入/ 輸出設(shè)備或I/O設(shè)備)與外界聯(lián)系的。計(jì)算機(jī)與外設(shè)之間不是直接 相連的,而是通過不同的接口電路來達(dá)到彼此間的信息傳送的目的。 計(jì)算機(jī)與外設(shè)之間交換信息的方式計(jì)算機(jī)與外設(shè)之間交換信息的方式: (1)無條件傳送方式:外設(shè)對(duì)計(jì)算機(jī)來說總是準(zhǔn)備好的。 (2)查詢傳送方式:傳送前計(jì)算機(jī)先查詢外設(shè)的狀態(tài),若已經(jīng)準(zhǔn)備 好就傳送,否則就繼續(xù)查詢/等待。 (3)中斷傳送方式:外設(shè)通過申請(qǐng)中斷的方式與計(jì)算機(jī)進(jìn)行數(shù)據(jù)傳 送。 (4)直接存儲(chǔ)器存取方式(DMA):傳送數(shù)據(jù)的雙方直接通過總線傳
2、 送數(shù)據(jù), 不經(jīng)CPU中轉(zhuǎn)。 中斷的定義中斷的定義 所謂“中斷”,是指CPU執(zhí)行正常程序時(shí),系統(tǒng)中出現(xiàn)特殊請(qǐng)求,CPU 暫時(shí)中止當(dāng)前的程序,轉(zhuǎn)去處理更緊急的事件(執(zhí)行中斷服務(wù)程序), 處理完畢(中斷服務(wù)完成)后,CPU自動(dòng)返回原程序的過程。 作用:作用:采用中斷技術(shù)可以提高CPU效率、解決速度矛盾、實(shí)現(xiàn)并行 工作、分時(shí)操作、實(shí)時(shí)處理、故障處理、應(yīng)付突發(fā)事件,可使多項(xiàng) 任務(wù)共享一個(gè)資源(CPU)。 中斷與子程序的最主要區(qū)別:中斷與子程序的最主要區(qū)別:子程序是預(yù)先安排好的,中斷是隨 機(jī)發(fā)生的。 中斷涉及的幾個(gè)環(huán)節(jié):中斷涉及的幾個(gè)環(huán)節(jié):中斷源、 中斷申請(qǐng)、開放中斷、保護(hù)現(xiàn)場、 中斷服務(wù)、恢復(fù)現(xiàn)場、中
3、斷返回。 中斷的作用中斷的作用 由于資源有限,面對(duì)多項(xiàng)任務(wù)同時(shí)由于資源有限,面對(duì)多項(xiàng)任務(wù)同時(shí) 要處理時(shí),就會(huì)出現(xiàn)資源競爭的現(xiàn)象。要處理時(shí),就會(huì)出現(xiàn)資源競爭的現(xiàn)象。 中斷技術(shù)就是為了解決資源競爭的中斷技術(shù)就是為了解決資源競爭的 一個(gè)可行的方法,采用中斷技術(shù)可使多一個(gè)可行的方法,采用中斷技術(shù)可使多 項(xiàng)任務(wù)共享一個(gè)資源。項(xiàng)任務(wù)共享一個(gè)資源。 中斷的功能中斷的功能 o 實(shí)現(xiàn)實(shí)現(xiàn)CPU與外部設(shè)備的速度配合以及與外部設(shè)備的速度配合以及 分時(shí)操作分時(shí)操作 o 實(shí)現(xiàn)實(shí)時(shí)控制實(shí)現(xiàn)實(shí)時(shí)控制 o 實(shí)現(xiàn)故障的及時(shí)發(fā)現(xiàn)及處理實(shí)現(xiàn)故障的及時(shí)發(fā)現(xiàn)及處理 o 實(shí)現(xiàn)人機(jī)聯(lián)系實(shí)現(xiàn)人機(jī)聯(lián)系 中斷的相關(guān)概念中斷的相關(guān)概念 、中斷的本
4、質(zhì)、中斷的本質(zhì) CPU在執(zhí)行當(dāng)前程序的過程中,插入了另外一段程序的運(yùn)行,相當(dāng)在執(zhí)行當(dāng)前程序的過程中,插入了另外一段程序的運(yùn)行,相當(dāng) 于調(diào)用了一個(gè)子程序。換句話說中斷的本質(zhì)是硬件調(diào)用子程序的過程。于調(diào)用了一個(gè)子程序。換句話說中斷的本質(zhì)是硬件調(diào)用子程序的過程。 2、中斷源、中斷源 能產(chǎn)生中斷的外部和內(nèi)部事件統(tǒng)稱為中斷源。能產(chǎn)生中斷的外部和內(nèi)部事件統(tǒng)稱為中斷源。 3、中斷優(yōu)先級(jí)、中斷優(yōu)先級(jí) 多個(gè)中斷源同時(shí)申請(qǐng)中斷時(shí),或者多個(gè)中斷源同時(shí)申請(qǐng)中斷時(shí),或者CPU正在處理某個(gè)中斷源的服務(wù)正在處理某個(gè)中斷源的服務(wù) 程序時(shí),又有了另一中斷源申請(qǐng)中斷,程序時(shí),又有了另一中斷源申請(qǐng)中斷,CPU必須區(qū)分哪個(gè)中斷更重要
5、,從必須區(qū)分哪個(gè)中斷更重要,從 而決定優(yōu)先處理哪個(gè)事件,這就是中斷優(yōu)先級(jí)問題。而決定優(yōu)先處理哪個(gè)事件,這就是中斷優(yōu)先級(jí)問題。 4、中斷的嵌套、中斷的嵌套 當(dāng)?shù)蛢?yōu)先級(jí)的中斷源正在享用中斷服務(wù)時(shí),若優(yōu)先級(jí)比它高的中斷源當(dāng)?shù)蛢?yōu)先級(jí)的中斷源正在享用中斷服務(wù)時(shí),若優(yōu)先級(jí)比它高的中斷源 提出申請(qǐng)中斷,這時(shí)要求提出申請(qǐng)中斷,這時(shí)要求CPU能夠停下低優(yōu)先級(jí)中斷源的中斷服務(wù)轉(zhuǎn)而去能夠停下低優(yōu)先級(jí)中斷源的中斷服務(wù)轉(zhuǎn)而去 執(zhí)行更高優(yōu)先級(jí)別中斷源的服務(wù)程序,待完成了高優(yōu)先級(jí)中斷的服務(wù)程序執(zhí)行更高優(yōu)先級(jí)別中斷源的服務(wù)程序,待完成了高優(yōu)先級(jí)中斷的服務(wù)程序 之后,再返回原程序的斷點(diǎn)繼續(xù)執(zhí)行被打斷的低優(yōu)先級(jí)中斷服務(wù)程序,這之
6、后,再返回原程序的斷點(diǎn)繼續(xù)執(zhí)行被打斷的低優(yōu)先級(jí)中斷服務(wù)程序,這 就是中斷嵌套問題。就是中斷嵌套問題。 中斷執(zhí)行的一般過程:中斷執(zhí)行的一般過程: (1) 外部設(shè)備發(fā)出脈沖信號(hào)向外部設(shè)備發(fā)出脈沖信號(hào)向CPU申請(qǐng)中斷;申請(qǐng)中斷; (2) CPU在每條指令執(zhí)行時(shí)均檢測是否有中斷請(qǐng)求;在每條指令執(zhí)行時(shí)均檢測是否有中斷請(qǐng)求; (3) 若檢測到有中斷申請(qǐng),則根據(jù)計(jì)算機(jī)目前狀態(tài)決定是否響應(yīng)中斷;若檢測到有中斷申請(qǐng),則根據(jù)計(jì)算機(jī)目前狀態(tài)決定是否響應(yīng)中斷; (4) 若要響應(yīng)中斷,則需判別產(chǎn)生中斷申請(qǐng)的中斷源;若要響應(yīng)中斷,則需判別產(chǎn)生中斷申請(qǐng)的中斷源; (5) CPU響應(yīng)中斷時(shí),把程序斷點(diǎn)處的響應(yīng)中斷時(shí),把程序斷
7、點(diǎn)處的PC值壓入堆棧保存起來,以備中斷處理值壓入堆棧保存起來,以備中斷處理 完畢后能夠返回程序的被中斷處;完畢后能夠返回程序的被中斷處; (6) CPU在響應(yīng)中斷后,內(nèi)部自動(dòng)關(guān)中斷,以禁止新的中斷請(qǐng)求干擾本中斷處在響應(yīng)中斷后,內(nèi)部自動(dòng)關(guān)中斷,以禁止新的中斷請(qǐng)求干擾本中斷處 理的進(jìn)行。若要求中斷過程中允許理的進(jìn)行。若要求中斷過程中允許 CPU 響應(yīng)比它優(yōu)先級(jí)別更高的中斷源的中斷,響應(yīng)比它優(yōu)先級(jí)別更高的中斷源的中斷, 則應(yīng)在保護(hù)現(xiàn)場之后,用軟件把中斷打開;則應(yīng)在保護(hù)現(xiàn)場之后,用軟件把中斷打開; (7) CPU按中斷源給出中斷入口地址,轉(zhuǎn)入被響應(yīng)的中斷處理子程序;按中斷源給出中斷入口地址,轉(zhuǎn)入被響應(yīng)
8、的中斷處理子程序; 以上以上7步是由硬件自動(dòng)完成的,以下步驟卻須由中斷處理程序來完成:步是由硬件自動(dòng)完成的,以下步驟卻須由中斷處理程序來完成: (8) 保護(hù)現(xiàn)場:為了使中斷服務(wù)程序的執(zhí)行不破壞被中斷了的程序所使用的寄保護(hù)現(xiàn)場:為了使中斷服務(wù)程序的執(zhí)行不破壞被中斷了的程序所使用的寄 存器或存儲(chǔ)單元的原有內(nèi)容,要把中斷服務(wù)程序?qū)⒁褂枚恢袛嗟某绦蛑腥孕璐嫫骰虼鎯?chǔ)單元的原有內(nèi)容,要把中斷服務(wù)程序?qū)⒁褂枚恢袛嗟某绦蛑腥孕?要繼續(xù)使用的寄存器或存儲(chǔ)單元的內(nèi)容保護(hù)起來;要繼續(xù)使用的寄存器或存儲(chǔ)單元的內(nèi)容保護(hù)起來; (9)執(zhí)行中斷服務(wù)程序:中斷服務(wù)子程序是中斷要求處理的具體內(nèi)容;執(zhí)行中斷服務(wù)程序:中斷
9、服務(wù)子程序是中斷要求處理的具體內(nèi)容; (10)恢復(fù)現(xiàn)場:把保護(hù)現(xiàn)場時(shí)所保存起來的各寄存器或存儲(chǔ)單元的內(nèi)容恢復(fù),恢復(fù)現(xiàn)場:把保護(hù)現(xiàn)場時(shí)所保存起來的各寄存器或存儲(chǔ)單元的內(nèi)容恢復(fù), 以便返回被中斷的程序后,能夠正常運(yùn)行;以便返回被中斷的程序后,能夠正常運(yùn)行; (11)開中斷:在返回被中斷的程序之前,應(yīng)該使用開中斷的指令把由硬件關(guān)開中斷:在返回被中斷的程序之前,應(yīng)該使用開中斷的指令把由硬件關(guān) 閉了的中斷打開,以使閉了的中斷打開,以使 CPU能夠響應(yīng)新的中斷;能夠響應(yīng)新的中斷; (12)中斷返回:中斷返回是把程序運(yùn)行從中斷處理程序轉(zhuǎn)回到被中斷的程序中斷返回:中斷返回是把程序運(yùn)行從中斷處理程序轉(zhuǎn)回到被中斷
10、的程序 中去,通過中斷返回指令中去,通過中斷返回指令RETI來完成,來完成,RETI除具有子程序返回指令除具有子程序返回指令RET所具有所具有 的全部功能之外,還有清除中斷響應(yīng)時(shí)被置位的優(yōu)先級(jí)狀態(tài)、開放較低級(jí)中斷、的全部功能之外,還有清除中斷響應(yīng)時(shí)被置位的優(yōu)先級(jí)狀態(tài)、開放較低級(jí)中斷、 自動(dòng)開中斷等功能(可省去第自動(dòng)開中斷等功能(可省去第步驟)。步驟)。 中斷響應(yīng)及處理過程 o 保護(hù)斷點(diǎn) o 尋找中斷源 o 中斷處理 o 中斷返回 保護(hù)斷點(diǎn)和尋找中斷源都是由硬件自動(dòng)自動(dòng)完成 的,用戶不用考慮 中斷的控制方法中斷的控制方法 o 實(shí)現(xiàn)中斷及返回實(shí)現(xiàn)中斷及返回 o 能實(shí)現(xiàn)優(yōu)先權(quán)排隊(duì)能實(shí)現(xiàn)優(yōu)先權(quán)排隊(duì) o
11、 高優(yōu)先級(jí)中斷源能中斷低優(yōu)先級(jí)中斷高優(yōu)先級(jí)中斷源能中斷低優(yōu)先級(jí)中斷 源的中斷處理源的中斷處理 n MCS-51中斷結(jié)構(gòu)中斷結(jié)構(gòu) n MCS-51的中斷應(yīng)用編程的中斷應(yīng)用編程 中斷源:中斷源:五個(gè)中斷源,外部中斷源為五個(gè)中斷源,外部中斷源為 、 ,可選擇低電平有效或下,可選擇低電平有效或下 降沿有效;內(nèi)部中斷源為降沿有效;內(nèi)部中斷源為T0、T1溢出中斷;串行口的發(fā)送和接收部件共用一個(gè)中溢出中斷;串行口的發(fā)送和接收部件共用一個(gè)中 斷源。斷源。 中斷請(qǐng)求標(biāo)志:中斷請(qǐng)求標(biāo)志:五個(gè)中斷請(qǐng)求的標(biāo)志位相應(yīng)為五個(gè)中斷請(qǐng)求的標(biāo)志位相應(yīng)為IE0、IE1、 TF0、 TF1、 TI/RI。 中斷允許:中斷允許:兩級(jí)
12、串聯(lián)式的中斷允許。兩級(jí)串聯(lián)式的中斷允許。 EA=1時(shí),開時(shí),開CPU 中斷;開某個(gè)中斷源中中斷;開某個(gè)中斷源中 斷時(shí),置位該中斷源的中斷允許位斷時(shí),置位該中斷源的中斷允許位EX0、 EX1、 ET0、ET1、ES。 中斷優(yōu)先級(jí)管理:中斷優(yōu)先級(jí)管理:有兩組優(yōu)先級(jí),即高優(yōu)先級(jí)組與低優(yōu)先級(jí)組,同組時(shí)還由硬件有兩組優(yōu)先級(jí),即高優(yōu)先級(jí)組與低優(yōu)先級(jí)組,同組時(shí)還由硬件 規(guī)定有優(yōu)先級(jí)的順序規(guī)定有優(yōu)先級(jí)的順序(稱自然優(yōu)先級(jí))(稱自然優(yōu)先級(jí)) 。 INT0INT1 P3.2 p3.3 INT0 INT1 T0 T1 IT0 IT1 IE0 IE1 + EA EX0 ET0 ET1 ES EX1 PX0 PT0 P
13、T1 PS PX1 (IE) 0 1 1 0 TF1 TF0 TI/RI (IP) TI RI 高高 優(yōu)優(yōu) 先先 級(jí)級(jí) 中斷轉(zhuǎn)移中斷轉(zhuǎn)移 入口入口 低低 優(yōu)優(yōu) 先先 級(jí)級(jí) 中斷轉(zhuǎn)移中斷轉(zhuǎn)移 入口入口 (TC0N/SC0N) 中斷中斷 總允許總允許 中斷優(yōu)先中斷優(yōu)先 級(jí)寄存器級(jí)寄存器 中斷允中斷允 許寄存器許寄存器 中斷請(qǐng)中斷請(qǐng) 求標(biāo)志求標(biāo)志 中斷源中斷源 80C51中斷系統(tǒng)結(jié)構(gòu)示意圖 外部中斷外部中斷 外部中斷外部中斷0 0( )和外部中斷)和外部中斷1 1( )。其中斷請(qǐng)求信號(hào)分別由)。其中斷請(qǐng)求信號(hào)分別由P3.2P3.2, P3.3P3.3引腳輸入??梢杂械碗娖接行У囊_輸入。可以有低電平
14、有效的電平觸發(fā)電平觸發(fā)、下跳沿、下跳沿 邊沿觸發(fā)邊沿觸發(fā)這兩種觸發(fā)方式,這兩種觸發(fā)方式, 分別由分別由 IT0 IT0 和和 IT1 IT1 進(jìn)行設(shè)置;一旦外部中斷信號(hào)有效,則將進(jìn)行設(shè)置;一旦外部中斷信號(hào)有效,則將 TCON TCON 中的中的 IE0 IE0 或或 IE1 IE1 標(biāo)志位置標(biāo)志位置1 1,可向,可向CPUCPU申請(qǐng)中斷。申請(qǐng)中斷。 定時(shí)器定時(shí)器/ /計(jì)數(shù)器中斷計(jì)數(shù)器中斷 定時(shí)器中斷是定時(shí)器中斷是MCS-51MCS-51單片機(jī)內(nèi)部單片機(jī)內(nèi)部 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器0 0 和和 定時(shí)器定時(shí)器/ /計(jì)數(shù)器計(jì)數(shù)器1 1 定時(shí)時(shí)間定時(shí)時(shí)間 到或計(jì)數(shù)值滿產(chǎn)生溢出時(shí),將到或計(jì)數(shù)值滿
15、產(chǎn)生溢出時(shí),將 TCON TCON 中的中的 TF0 TF0 和和 TF1 TF1 置位,向置位,向CPUCPU申請(qǐng)中斷。申請(qǐng)中斷。 串行口中斷串行口中斷 串行口接收和發(fā)送部件共用一個(gè)中斷源,當(dāng)串行口接收或發(fā)送完一幀數(shù)據(jù)時(shí),將串行口接收和發(fā)送部件共用一個(gè)中斷源,當(dāng)串行口接收或發(fā)送完一幀數(shù)據(jù)時(shí),將 TCON TCON 中的中斷標(biāo)志位中的中斷標(biāo)志位 RI RI 或或 TI TI 置置1 1,向,向CPUCPU申請(qǐng)中斷。申請(qǐng)中斷。 INT0INT1 當(dāng)某個(gè)中斷源的中斷請(qǐng)求被CPU響應(yīng)之后,CPU將自動(dòng) 把該中斷源的中斷入口地址(又稱中斷矢量地址)裝入PC,中 斷服務(wù)程序即從該地址開始執(zhí)行。 MCS-
16、51單片機(jī)各中斷源的中斷矢量地址是固定的,參 見表。由表可見,每個(gè)中斷矢量地址只占8個(gè)單元,因此一般在 此地址單元中存放一條跳轉(zhuǎn)指令,跳至用戶安排的中斷服務(wù)程 序的入口處。 最低最低0023H R1或或T1串行口中斷串行口中斷 001BH T1定時(shí)器定時(shí)器1中斷中斷 0013H 外部中斷外部中斷1中斷中斷 000BH T0定時(shí)器定時(shí)器0中斷中斷 最高最高0003H 外部中斷外部中斷0中斷中斷 同級(jí)自然優(yōu)先級(jí)同級(jí)自然優(yōu)先級(jí)矢量地址矢量地址中斷源中斷源 INT1 INT0 8051的5個(gè)中斷源的中斷服務(wù)入口地址之間相差8個(gè)單元。這8個(gè) 存儲(chǔ)單元用來存儲(chǔ)中斷服務(wù)程序一般來說是不夠的。用戶常在 中斷服
17、務(wù)程序地址入口處放一條三字節(jié)的長轉(zhuǎn)移指令。一般地, 主程序從0030H單元以后開始存放。例如: ORG 0000H LJMP START ; 轉(zhuǎn)入主程序,START為主程序地址標(biāo)號(hào) ORG 0003H LJMP INT0 ; 轉(zhuǎn)外中斷中斷服務(wù)程序 ORG 000BH LJMP T0 ; 轉(zhuǎn)定時(shí)器T0中斷服務(wù)程序 ORG 0030H START: ; 主程序開始 與中斷系統(tǒng)有關(guān)的特殊功能寄存器有與中斷系統(tǒng)有關(guān)的特殊功能寄存器有: TCON :定時(shí)器定時(shí)器/計(jì)數(shù)器的控制寄存器計(jì)數(shù)器的控制寄存器 SCON :串行口控制寄存器串行口控制寄存器 IE :中斷允許寄存器中斷允許寄存器 IP :中斷優(yōu)先級(jí)管
18、理寄存器中斷優(yōu)先級(jí)管理寄存器 MCS-51的中斷控制通過對(duì)這的中斷控制通過對(duì)這4個(gè)個(gè)SFR的操作來實(shí)現(xiàn)。的操作來實(shí)現(xiàn)。 IT0、IT1:外部中斷外部中斷 、 引腳電平觸發(fā)方式引腳電平觸發(fā)方式 選擇位。當(dāng)為選擇位。當(dāng)為“0”時(shí)低電平有效;為時(shí)低電平有效;為“1”時(shí)下降沿有效。時(shí)下降沿有效。 IE0、IE1:外部中斷的中斷請(qǐng)求標(biāo)志位。置位時(shí)表示有外部中斷的中斷請(qǐng)求標(biāo)志位。置位時(shí)表示有 中斷請(qǐng)求。中斷請(qǐng)求。 TF0、TF1:定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)溢出中斷請(qǐng)求標(biāo)志。置計(jì)數(shù)器計(jì)數(shù)溢出中斷請(qǐng)求標(biāo)志。置 位時(shí)表示有中斷請(qǐng)求,中斷響應(yīng)后位時(shí)表示有中斷請(qǐng)求,中斷響應(yīng)后硬件自動(dòng)清零硬件自動(dòng)清零 。 定時(shí)器定時(shí)器
19、/計(jì)數(shù)器控制計(jì)數(shù)器控制寄存器寄存器 TCON 結(jié)構(gòu)結(jié)構(gòu) TCON D7D6D5D4D3D2D1D0 TF1TR1TF0TR0IE1IT1IE0IT0 位地址位地址8FH8EH8DH8CH8BH8AH89H88H INT0INT1 特別說明特別說明IE0、IE1復(fù)位的問題復(fù)位的問題 o當(dāng)外部中斷是低電平觸發(fā)方式時(shí),當(dāng)外部中斷是低電平觸發(fā)方式時(shí),CPU每個(gè)機(jī)器周期的每個(gè)機(jī)器周期的S5P2期間對(duì)期間對(duì) 引腳采樣,若為低電平,則認(rèn)為有中斷申請(qǐng),隨即使其標(biāo)志位置引腳采樣,若為低電平,則認(rèn)為有中斷申請(qǐng),隨即使其標(biāo)志位置 “1”;若為高電平,則認(rèn)為無中斷申請(qǐng)或中斷申請(qǐng)已撤除,隨即清除中;若為高電平,則認(rèn)為無
20、中斷申請(qǐng)或中斷申請(qǐng)已撤除,隨即清除中 斷請(qǐng)求標(biāo)志位。所以在電平觸發(fā)方式中,在中斷返回前應(yīng)撤消斷請(qǐng)求標(biāo)志位。所以在電平觸發(fā)方式中,在中斷返回前應(yīng)撤消 引腳上的低電平,否則將再次中斷造成出錯(cuò)。引腳上的低電平,否則將再次中斷造成出錯(cuò)。 o當(dāng)外部中斷設(shè)置為邊沿觸發(fā)方式時(shí)當(dāng)外部中斷設(shè)置為邊沿觸發(fā)方式時(shí),CPU在每個(gè)機(jī)器周期的在每個(gè)機(jī)器周期的S5P2期間期間 采樣采樣 引腳,若在連續(xù)兩個(gè)機(jī)器周期分別采樣到(先)高、(后)引腳,若在連續(xù)兩個(gè)機(jī)器周期分別采樣到(先)高、(后) 低不同電平,則將中斷請(qǐng)求標(biāo)志位置低不同電平,則將中斷請(qǐng)求標(biāo)志位置“1”,此標(biāo)志一直保持到,此標(biāo)志一直保持到CPU響響 應(yīng)中斷時(shí),才由應(yīng)
21、中斷時(shí),才由硬件自動(dòng)清除硬件自動(dòng)清除 。所以在邊沿觸發(fā)方式中,為保證所以在邊沿觸發(fā)方式中,為保證CPU 在兩個(gè)機(jī)器周期內(nèi)檢測到由高至低的負(fù)跳變,輸入高電平和低電平的持在兩個(gè)機(jī)器周期內(nèi)檢測到由高至低的負(fù)跳變,輸入高電平和低電平的持 續(xù)時(shí)間起碼要保持續(xù)時(shí)間起碼要保持12個(gè)振蕩器周期即一個(gè)機(jī)器周期的時(shí)間。個(gè)振蕩器周期即一個(gè)機(jī)器周期的時(shí)間。 iINT iINT iINT 串行口控制串行口控制寄存器寄存器 SCON 結(jié)構(gòu)結(jié)構(gòu) SCON D7D6D5D4D3D2D1D0 -TIRI 位地址位地址 99H98H RI:接收中斷標(biāo)志位;接收中斷標(biāo)志位; CPU響應(yīng)中斷時(shí)不能硬件清除響應(yīng)中斷時(shí)不能硬件清除RI位
22、,必須由軟件清除。位,必須由軟件清除。 TI:發(fā)送中斷標(biāo)志位。發(fā)送中斷標(biāo)志位。 CPU響應(yīng)中斷時(shí)不能硬件清除響應(yīng)中斷時(shí)不能硬件清除TI位,必須由軟件清除。位,必須由軟件清除。 中斷允許寄存器中斷允許寄存器 IE 結(jié)構(gòu)結(jié)構(gòu) IE D7D6D5D4D3D2D1D0 EA-ESET1EX1ET0EX0 位地址位地址AFH ACHABHAAHA9HA8H EA:中斷總控制位,中斷總控制位,EA=1,CPU開放中斷。開放中斷。EA=0,CPU禁止所有中斷。禁止所有中斷。 ES:串行口中斷控制位,串行口中斷控制位,ES=1允許串行口中斷,允許串行口中斷,ES=0,屏蔽串行口中斷。,屏蔽串行口中斷。 ET1
23、:定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T1中斷控制位。中斷控制位。ET1=1,允許,允許T1中斷,中斷,ET1=0,禁止,禁止T1中斷。中斷。 EX1:外部中斷外部中斷1中斷控制位,中斷控制位,EX1=1,允許外中斷,允許外中斷1中斷,中斷,EX1=0,禁止外中斷,禁止外中斷1 中斷。中斷。 ET0:定時(shí)定時(shí)/計(jì)數(shù)器計(jì)數(shù)器T0中斷控制位。中斷控制位。ET0=1,允許,允許T0中斷,中斷,ET0=0,禁止,禁止T0中斷。中斷。 EX0:外部中斷外部中斷0中斷控制位,中斷控制位,EX0=1,允許外中斷,允許外中斷0中斷,中斷,EX0=0,禁止外中斷,禁止外中斷0 中斷。中斷。 中斷優(yōu)先級(jí)管理寄存器中斷優(yōu)先級(jí)管理
24、寄存器 IP 結(jié)構(gòu)結(jié)構(gòu) IP D7D6D5D4D3D2D1D0 -PSPT1PX1PT0PX0 位地址位地址 BCHBBHBAHB9HB8H PS:串行口中斷口優(yōu)先級(jí)控制位,串行口中斷口優(yōu)先級(jí)控制位,PS=1,串行口中斷聲明為高優(yōu)先級(jí)中斷,串行口中斷聲明為高優(yōu)先級(jí)中斷, PS=0,串行口定義為低優(yōu)先級(jí)中斷。,串行口定義為低優(yōu)先級(jí)中斷。 PT1:定時(shí)器定時(shí)器1優(yōu)先級(jí)控制位。優(yōu)先級(jí)控制位。PT1=1,聲明,聲明T1為高優(yōu)先級(jí)中斷,為高優(yōu)先級(jí)中斷, PT1=0, 定義定時(shí)器定義定時(shí)器1為低優(yōu)先級(jí)中斷。為低優(yōu)先級(jí)中斷。 PX1:外中斷外中斷1優(yōu)先級(jí)控制位。優(yōu)先級(jí)控制位。PX=1,聲明外部中斷,聲明外部
25、中斷1為高優(yōu)先級(jí)中斷,為高優(yōu)先級(jí)中斷, PX1=0,定義外部中斷,定義外部中斷1為低優(yōu)先級(jí)中斷。為低優(yōu)先級(jí)中斷。 PT0:定時(shí)器定時(shí)器0優(yōu)先級(jí)控制位。優(yōu)先級(jí)控制位。PT0=1,聲明,聲明T0為高優(yōu)先級(jí)中斷,為高優(yōu)先級(jí)中斷, PT0=0, 定義定時(shí)器定義定時(shí)器0為低優(yōu)先級(jí)中斷。為低優(yōu)先級(jí)中斷。 PX0:外中斷外中斷0優(yōu)先級(jí)控制位。優(yōu)先級(jí)控制位。PX0=1,聲明外部中斷,聲明外部中斷0為高優(yōu)先級(jí)中斷,為高優(yōu)先級(jí)中斷, PX0=0,定義外中斷,定義外中斷0為低優(yōu)先級(jí)中斷。為低優(yōu)先級(jí)中斷。 程序通過設(shè)置程序通過設(shè)置IP寄存器可按需要把各中斷源的優(yōu)寄存器可按需要把各中斷源的優(yōu) 先級(jí)設(shè)置成高、低先級(jí)設(shè)置成
26、高、低2級(jí)。它們遵循級(jí)。它們遵循2條基本原則:條基本原則: 1、低優(yōu)先級(jí)中斷可以被高優(yōu)先級(jí)中斷所中低優(yōu)先級(jí)中斷可以被高優(yōu)先級(jí)中斷所中 斷,反之不能;斷,反之不能; 2、一種中斷(不管是什么優(yōu)先級(jí))一旦得一種中斷(不管是什么優(yōu)先級(jí))一旦得 到響應(yīng),與它同級(jí)的中斷不能再中斷它。到響應(yīng),與它同級(jí)的中斷不能再中斷它。 中斷系統(tǒng)內(nèi)部包含著兩個(gè)不可尋址的中斷系統(tǒng)內(nèi)部包含著兩個(gè)不可尋址的“優(yōu)先級(jí)激優(yōu)先級(jí)激 活活”觸發(fā)器。一個(gè)指示某高優(yōu)先級(jí)的中斷正在得到服務(wù),所觸發(fā)器。一個(gè)指示某高優(yōu)先級(jí)的中斷正在得到服務(wù),所 有后來的中斷都被阻斷。另一個(gè)指示某個(gè)低優(yōu)先級(jí)的中斷正有后來的中斷都被阻斷。另一個(gè)指示某個(gè)低優(yōu)先級(jí)的中
27、斷正 在得到服務(wù),所有同級(jí)的中斷請(qǐng)求都被阻斷,但不阻斷高優(yōu)在得到服務(wù),所有同級(jí)的中斷請(qǐng)求都被阻斷,但不阻斷高優(yōu) 先級(jí)中斷請(qǐng)求。先級(jí)中斷請(qǐng)求。 o當(dāng)當(dāng)CPU同時(shí)收到幾個(gè)同一優(yōu)先級(jí)的中斷請(qǐng)求時(shí),哪一個(gè)的請(qǐng)同時(shí)收到幾個(gè)同一優(yōu)先級(jí)的中斷請(qǐng)求時(shí),哪一個(gè)的請(qǐng) 求將優(yōu)先得到服務(wù),取決于內(nèi)部的硬件查詢順序,求將優(yōu)先得到服務(wù),取決于內(nèi)部的硬件查詢順序,CPU將按將按 自然權(quán)優(yōu)先級(jí)順序確定響應(yīng)哪個(gè)中斷請(qǐng)求,其自然權(quán)優(yōu)先級(jí)自然權(quán)優(yōu)先級(jí)順序確定響應(yīng)哪個(gè)中斷請(qǐng)求,其自然權(quán)優(yōu)先級(jí) 由硬件形成,次序可參見表由硬件形成,次序可參見表6-1中所示中所示 CPU在每個(gè)機(jī)器周期的在每個(gè)機(jī)器周期的S5P2期間,各中斷標(biāo)志順序采樣相應(yīng)
28、的中期間,各中斷標(biāo)志順序采樣相應(yīng)的中 斷源。在下一個(gè)機(jī)器周期的斷源。在下一個(gè)機(jī)器周期的S6期間按優(yōu)先級(jí)的順序查詢各中斷標(biāo)志,若查期間按優(yōu)先級(jí)的順序查詢各中斷標(biāo)志,若查 詢到某中斷標(biāo)志為詢到某中斷標(biāo)志為1,則按優(yōu)先級(jí)的高低進(jìn)行處理,即響應(yīng)中斷;,則按優(yōu)先級(jí)的高低進(jìn)行處理,即響應(yīng)中斷; 響應(yīng)中斷后,響應(yīng)中斷后,CPU首先使被響應(yīng)中斷的相應(yīng)首先使被響應(yīng)中斷的相應(yīng)“優(yōu)先級(jí)激活優(yōu)先級(jí)激活”觸發(fā)器觸發(fā)器 置位,以阻撓同級(jí)和低優(yōu)先級(jí)的中斷的響應(yīng)。然后,執(zhí)行硬件生成的長調(diào)置位,以阻撓同級(jí)和低優(yōu)先級(jí)的中斷的響應(yīng)。然后,執(zhí)行硬件生成的長調(diào) 用指令用指令“LCALL”,將程序計(jì)數(shù)器,將程序計(jì)數(shù)器PC的內(nèi)容壓入堆棧中
29、保護(hù)起來,斷點(diǎn)地的內(nèi)容壓入堆棧中保護(hù)起來,斷點(diǎn)地 址的入棧次序是:先低位地址入棧,再高位地址入棧,堆棧指針的值被加址的入棧次序是:先低位地址入棧,再高位地址入棧,堆棧指針的值被加 2; 將對(duì)應(yīng)中斷源的中斷矢量地址裝入程序計(jì)數(shù)器將對(duì)應(yīng)中斷源的中斷矢量地址裝入程序計(jì)數(shù)器PC,使程序轉(zhuǎn)向該,使程序轉(zhuǎn)向該 中斷矢量地址,去執(zhí)行中斷服務(wù)程序;中斷矢量地址,去執(zhí)行中斷服務(wù)程序; 中斷服務(wù)程序由中斷矢量地址開始執(zhí)行,直至遇到中斷服務(wù)程序由中斷矢量地址開始執(zhí)行,直至遇到RETI為止;為止; 執(zhí)行執(zhí)行RETI指令,從堆棧中彈出斷點(diǎn)地址進(jìn)入指令,從堆棧中彈出斷點(diǎn)地址進(jìn)入PC,先彈出高位地址,先彈出高位地址, 后彈
30、出低位地址,堆棧指針減后彈出低位地址,堆棧指針減2,恢復(fù)原程序的執(zhí)行。,恢復(fù)原程序的執(zhí)行。 注意!注意! CPU響應(yīng)中斷請(qǐng)求,轉(zhuǎn)而執(zhí)行中斷服務(wù)程序,響應(yīng)中斷請(qǐng)求,轉(zhuǎn)而執(zhí)行中斷服務(wù)程序, 在執(zhí)行中斷返回指令在執(zhí)行中斷返回指令RETI前,中斷請(qǐng)求信號(hào)前,中斷請(qǐng)求信號(hào) 必須以硬件或軟件方式撤除,否則將會(huì)再次必須以硬件或軟件方式撤除,否則將會(huì)再次 引起中斷而引起出錯(cuò)。引起中斷而引起出錯(cuò)。 o同級(jí)或高優(yōu)先級(jí)的中斷正在進(jìn)行中。同級(jí)或高優(yōu)先級(jí)的中斷正在進(jìn)行中。 o現(xiàn)在的機(jī)器周期還不是執(zhí)行指令的最后一個(gè)機(jī)器周期,即正在現(xiàn)在的機(jī)器周期還不是執(zhí)行指令的最后一個(gè)機(jī)器周期,即正在 執(zhí)行的指令還沒完成前,不響應(yīng)任何中斷
31、。執(zhí)行的指令還沒完成前,不響應(yīng)任何中斷。 o正在執(zhí)行的是中斷返回指令正在執(zhí)行的是中斷返回指令RETI或是訪問專用寄存器或是訪問專用寄存器IE、IP 的指令。的指令。 中斷系統(tǒng)規(guī)定:在執(zhí)行完這些指令之后,不中斷系統(tǒng)規(guī)定:在執(zhí)行完這些指令之后,不 會(huì)馬上響應(yīng)中斷,至少再執(zhí)行一條其它指令后才會(huì)響應(yīng)。會(huì)馬上響應(yīng)中斷,至少再執(zhí)行一條其它指令后才會(huì)響應(yīng)。 一般,在一般,在單級(jí)中斷系統(tǒng)單級(jí)中斷系統(tǒng) 中,中斷的響應(yīng)時(shí)間中,中斷的響應(yīng)時(shí)間最短為最短為3個(gè)機(jī)器周期,最長個(gè)機(jī)器周期,最長 為為8個(gè)機(jī)器周期。個(gè)機(jī)器周期。因?yàn)椋阂驗(yàn)椋?o查中斷請(qǐng)求標(biāo)志位占查中斷請(qǐng)求標(biāo)志位占1個(gè)機(jī)器周期,如果這時(shí)滿足中斷響應(yīng)條件,下一條
32、個(gè)機(jī)器周期,如果這時(shí)滿足中斷響應(yīng)條件,下一條 執(zhí)行執(zhí)行“LCLLA”指令,需指令,需2個(gè)機(jī)器周期,這樣個(gè)機(jī)器周期,這樣 機(jī)器周期。機(jī)器周期。 o如果如果正在執(zhí)行的是中斷返回指令正在執(zhí)行的是中斷返回指令RETI或是訪問專用寄存器或是訪問專用寄存器IE、IP的指的指 令,令,占占2個(gè)機(jī)器周期;個(gè)機(jī)器周期;執(zhí)行完后再繼續(xù)執(zhí)行一條其它指令,若該指令恰好執(zhí)行完后再繼續(xù)執(zhí)行一條其它指令,若該指令恰好 是是4個(gè)機(jī)器個(gè)機(jī)器周期的周期的指令;再加上指令;再加上執(zhí)行執(zhí)行“LCALL”指令的指令的2個(gè)機(jī)器周期,這個(gè)機(jī)器周期,這 樣樣機(jī)器周期。機(jī)器周期。 o如果正在處理如果正在處理同級(jí)或高優(yōu)先級(jí)的中斷,則同級(jí)或高優(yōu)先
33、級(jí)的中斷,則還需取還需取 決于決于正在處理中的服務(wù)程序時(shí)間。正在處理中的服務(wù)程序時(shí)間。 IE0/IE1:外部中斷申請(qǐng)標(biāo)志位(由硬件自動(dòng)置位(由硬件自動(dòng)置位 ,中斷響應(yīng)后轉(zhuǎn)向中斷,中斷響應(yīng)后轉(zhuǎn)向中斷 服務(wù)程序時(shí),由硬件自動(dòng)清服務(wù)程序時(shí),由硬件自動(dòng)清0 )。)。 =0:沒有外部中斷申請(qǐng); =1:有外部中斷申請(qǐng)。 TI/RI:串行口發(fā)送/接收中斷申請(qǐng)標(biāo)志位(由硬件自動(dòng)置位,必須由用戶在由硬件自動(dòng)置位,必須由用戶在 中斷服務(wù)程序中用軟件清中斷服務(wù)程序中用軟件清0)。)。 =0:沒有串行口發(fā)送/接收中斷申請(qǐng); =1:有串行口發(fā)送/接收中斷申請(qǐng)。 TF0/TF1:定時(shí)器溢出中斷申請(qǐng)標(biāo)志位(由硬件自動(dòng)置位)
34、。 =0:定時(shí)器未溢出; =1:定時(shí)器溢出(由全“1”變成全“0”)時(shí)由硬件自動(dòng)置位,申請(qǐng) 中斷,中斷被CPU響應(yīng)后由硬件硬件自動(dòng)清零。 1、中斷請(qǐng)求信號(hào)可以由外部設(shè)備發(fā)出,是隨機(jī)、中斷請(qǐng)求信號(hào)可以由外部設(shè)備發(fā)出,是隨機(jī) 的,而子程序調(diào)用是由軟件編排好的。的,而子程序調(diào)用是由軟件編排好的。 2、中斷響應(yīng)后由固定的矢量地址轉(zhuǎn)入中斷服務(wù)、中斷響應(yīng)后由固定的矢量地址轉(zhuǎn)入中斷服務(wù) 程序,而子程序地址是由軟件設(shè)定的。程序,而子程序地址是由軟件設(shè)定的。 3、中斷響應(yīng)是受控的,其響應(yīng)時(shí)間會(huì)受到一些、中斷響應(yīng)是受控的,其響應(yīng)時(shí)間會(huì)受到一些 因素的影響,而子程序的響應(yīng)時(shí)間是固定的。因素的影響,而子程序的響應(yīng)時(shí)間
35、是固定的。 MCS-51的中斷應(yīng)用編程的中斷應(yīng)用編程 1、外部中斷編程舉例、外部中斷編程舉例 硬件原理如圖所示,將硬件原理如圖所示,將 P1.4P1.7 作為輸入位,作為輸入位, P1.0P1.3作為輸出位。希望將開作為輸出位。希望將開 關(guān)所設(shè)的數(shù)據(jù)讀入單片機(jī)內(nèi),并關(guān)所設(shè)的數(shù)據(jù)讀入單片機(jī)內(nèi),并 通過通過 P1.0P1.3 輸出來驅(qū)動(dòng)發(fā)光輸出來驅(qū)動(dòng)發(fā)光 二極管,以檢查二極管,以檢查 P1.4P1.7 輸入輸入 的電平情況(若輸入為高電平則的電平情況(若輸入為高電平則 相應(yīng)的相應(yīng)的 LED 亮)。現(xiàn)要求采用亮)?,F(xiàn)要求采用 中斷邊沿觸發(fā)方式,每中斷一次中斷邊沿觸發(fā)方式,每中斷一次 ,完成一次讀,完
36、成一次讀/寫操作。寫操作。 LED INT0 P1.7 P1.6 P1.5 P1.4 80C51 P1.3 P1.2 P1.1 P1.0 R R LED R +5V +5V +5V 圖圖 解:采用外部中斷解:采用外部中斷0,當(dāng),當(dāng) 端輸入脈沖有下降沿跳變時(shí),發(fā)出中斷請(qǐng)求,端輸入脈沖有下降沿跳變時(shí),發(fā)出中斷請(qǐng)求, 中斷服務(wù)程序的矢量地址為中斷服務(wù)程序的矢量地址為0003H;P1.0P1.3中任何一位輸出高電平中任何一位輸出高電平“1”時(shí),時(shí), 相應(yīng)的發(fā)光二極管就會(huì)發(fā)光。程序清單如下:相應(yīng)的發(fā)光二極管就會(huì)發(fā)光。程序清單如下: ORG 0000H AJMP MAIN ORG 0003H AJMP I
37、NSER ;轉(zhuǎn)向中斷服務(wù)程序;轉(zhuǎn)向中斷服務(wù)程序 ORG 0100H ;主程序;主程序 MAIN: SETB EX0 ;允許外部中斷;允許外部中斷0中斷中斷 SETB IT0 ;選擇邊沿觸發(fā)方式;選擇邊沿觸發(fā)方式 SETB EA ;CPU開中斷開中斷 WAIT: SJMP WAIT ;等待中斷;等待中斷 ORG 0200H ;中斷服務(wù)程序;中斷服務(wù)程序 INSER:MOV A,#0F0H MOV P1,A ;設(shè);設(shè)P1.4P1.7作為輸入作為輸入 MOV A,P1 ;取開關(guān)狀態(tài);取開關(guān)狀態(tài) SWAP A ;A的高、低四位互換的高、低四位互換 MOV P1,A ;輸出驅(qū)動(dòng);輸出驅(qū)動(dòng)LED發(fā)光發(fā)光
38、RETI ;中斷返回;中斷返回 END INT0 2、中斷優(yōu)先級(jí)調(diào)度舉例、中斷優(yōu)先級(jí)調(diào)度舉例 例、例、上例中,要求當(dāng)上例中,要求當(dāng)T0引腳上有脈沖加入后,發(fā)光二引腳上有脈沖加入后,發(fā)光二 極管的顯示狀態(tài)將被保持。極管的顯示狀態(tài)將被保持。 解:可設(shè)解:可設(shè)T0為計(jì)數(shù)方式為計(jì)數(shù)方式2,并在中斷優(yōu)先級(jí)寄存器,并在中斷優(yōu)先級(jí)寄存器 IP中,把中,把T0設(shè)置成高優(yōu)先級(jí)。在設(shè)置成高優(yōu)先級(jí)。在T0的中斷服務(wù)程序中屏的中斷服務(wù)程序中屏 蔽外部中斷蔽外部中斷 ,則,則P1.0P1.3的輸出將被保持。的輸出將被保持。 當(dāng)當(dāng)T0引腳出現(xiàn)負(fù)跳變時(shí),即向引腳出現(xiàn)負(fù)跳變時(shí),即向CPU申請(qǐng)中斷,故此申請(qǐng)中斷,故此 時(shí)的計(jì)數(shù)
39、初值應(yīng)為時(shí)的計(jì)數(shù)初值應(yīng)為X0=0FFH。方式控制寄存器。方式控制寄存器TMOD設(shè)設(shè) 定為定為#06H。程序清單如下:。程序清單如下: INT0 ORG 0000H AJMP MAIN ORG 0003H ;外部中斷;外部中斷0入口地址入口地址 AJMP INSER ;轉(zhuǎn)向;轉(zhuǎn)向 中斷服務(wù)程序中斷服務(wù)程序INT0 ORG000BH ;T0溢出中斷入口地址溢出中斷入口地址 AJMP INTA ;轉(zhuǎn)向;轉(zhuǎn)向T0中斷服務(wù)程序中斷服務(wù)程序 ORG 0100H ;主程序;主程序 MAIN: MOV TMOD,#06H ;設(shè);設(shè)T0為計(jì)數(shù)方式為計(jì)數(shù)方式2 MOVTL0,#0FFH ;設(shè);設(shè)TL0初值初值 M
40、OVTH0,#0FFH ;設(shè);設(shè)TH0初值初值 SETB EX0 ;允許外部中斷;允許外部中斷0中斷中斷 SETB IT0 ;選擇邊沿觸發(fā)方式;選擇邊沿觸發(fā)方式 SETB ET0 ;允許;允許T0溢出中斷溢出中斷 SETB PT0 ;置;置T0溢出中斷為高優(yōu)先級(jí)溢出中斷為高優(yōu)先級(jí) SETB TR0 ;啟動(dòng)計(jì)數(shù);啟動(dòng)計(jì)數(shù) SETB EA ;CPU中斷開放中斷開放 WAIT: SJMP WAIT ;等待中斷;等待中斷 ORG 0200H ; 中斷服務(wù)程序中斷服務(wù)程序 INSER: MOV A,#0F0H MOV P1,A ;設(shè);設(shè)P1.4P1.7作為輸入作為輸入 MOV A,P1 ;取開關(guān)狀態(tài);取
41、開關(guān)狀態(tài) SWAP A ;A的高、低四位互換的高、低四位互換 MOV P1,A ;輸出驅(qū)動(dòng);輸出驅(qū)動(dòng)LED發(fā)光發(fā)光 RETI ;中斷返回;中斷返回 ORG 0300H ;T0溢出中斷服務(wù)程序溢出中斷服務(wù)程序 INTA: CLR EX0 ;屏蔽外部中斷;屏蔽外部中斷0中斷中斷 RETI END INT0 MCS-51的中斷擴(kuò)展的中斷擴(kuò)展 1、通過定時(shí)器、通過定時(shí)器/計(jì)數(shù)器擴(kuò)展計(jì)數(shù)器擴(kuò)展 2、通過、通過I/O口擴(kuò)展口擴(kuò)展 1、通過定時(shí)器、通過定時(shí)器/計(jì)數(shù)器擴(kuò)展計(jì)數(shù)器擴(kuò)展 o即將定時(shí)器即將定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0、T1的溢出中斷改作外部中的溢出中斷改作外部中 斷源。斷源。 MCS-51單片機(jī)有兩個(gè)定
42、時(shí)器單片機(jī)有兩個(gè)定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器T0、T1 ,當(dāng)設(shè)置為計(jì),當(dāng)設(shè)置為計(jì) 數(shù)方式,計(jì)數(shù)初值為滿量程(如方式數(shù)方式,計(jì)數(shù)初值為滿量程(如方式1時(shí)計(jì)數(shù)初值為時(shí)計(jì)數(shù)初值為FFFFH)時(shí),)時(shí), 一旦外部從其引腳輸入一個(gè)負(fù)跳變信號(hào),計(jì)數(shù)器加一旦外部從其引腳輸入一個(gè)負(fù)跳變信號(hào),計(jì)數(shù)器加1,產(chǎn)生中斷請(qǐng),產(chǎn)生中斷請(qǐng) 求,其入口地址為求,其入口地址為T0、T1溢出中斷的入口地址。因此,我們可以溢出中斷的入口地址。因此,我們可以 把外部中斷源作為邊沿觸發(fā)輸入信號(hào),接至定時(shí)器的把外部中斷源作為邊沿觸發(fā)輸入信號(hào),接至定時(shí)器的T0或或T1引腳引腳 上,該定時(shí)器的溢出中斷標(biāo)志及中斷服務(wù)程序作為擴(kuò)充外部中斷源上,該定時(shí)器
43、的溢出中斷標(biāo)志及中斷服務(wù)程序作為擴(kuò)充外部中斷源 的標(biāo)志和中斷服務(wù)程序。的標(biāo)志和中斷服務(wù)程序。 2、通過、通過I/O口擴(kuò)展口擴(kuò)展 o即通過一個(gè)外部中斷源和即通過一個(gè)外部中斷源和 n個(gè)個(gè)I/O口線擴(kuò)展口線擴(kuò)展n-1個(gè)外個(gè)外 部中斷源部中斷源 利用利用MCS-51的外部中斷的外部中斷 輸入線輸入線 ,通過線或的關(guān)系,通過線或的關(guān)系 連接到多個(gè)外部中斷源上;連接到多個(gè)外部中斷源上; 同時(shí),利用輸入端口線作為同時(shí),利用輸入端口線作為 各中斷源的識(shí)別線。各中斷源的識(shí)別線。 4# 1# 2# 3# 圖圖6-5 用用I/O口擴(kuò)展外部中斷源口擴(kuò)展外部中斷源 Vcc 80C51 P1.0 P1.1 P1.2 P1
44、.3 INT0 iINT ORG 0003H LJMP INTRP0 INTRP0:PUSH PSW PUSHA ; 資源保護(hù)資源保護(hù) JBP1.0,DV1 JBP1.1,DV2 JBP1.2,DV3 JBP1.3,DV4 EXIT:POP ACC POP PSW RETI 圖中無論哪一個(gè)外設(shè)輸出高電平提出中斷請(qǐng)求,都可以通過程序查詢圖中無論哪一個(gè)外設(shè)輸出高電平提出中斷請(qǐng)求,都可以通過程序查詢P1.0P1.3 的邏輯電平來獲知。優(yōu)先級(jí)設(shè)為的邏輯電平來獲知。優(yōu)先級(jí)設(shè)為1#裝置最高,裝置最高, 4#裝置最低。軟件查詢時(shí)由最高裝置最低。軟件查詢時(shí)由最高 至最低的順序查詢。有關(guān)的中斷服務(wù)程序段如下:至最低的順序查詢。有關(guān)的中斷服務(wù)程序段如下: DV1: ;1#裝置的中斷服務(wù)程序裝置的中斷服務(wù)程序 AJMP EXIT DV2: ;2#裝置的中斷服務(wù)程序裝置的中斷服務(wù)程序 AJMP EXIT DV3: ;3#裝置的中斷服務(wù)程序裝置的中斷服務(wù)程序 AJMP EXIT DV4: ;4#裝置的中斷服務(wù)程序裝置的中斷服務(wù)程序 AJMP EXIT 通過擴(kuò)展的通過擴(kuò)展的1#4#裝置的中斷源,由查詢順序規(guī)定了它們之間的優(yōu)先級(jí)別裝置的中斷源,由查詢順序規(guī)定了它們之間的優(yōu)先級(jí)別 定時(shí)器定時(shí)器/ /計(jì)數(shù)器應(yīng)用舉例計(jì)數(shù)器應(yīng)用舉例 例題例題 設(shè)一只發(fā)光二極管LED和8051的P1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 顱腦非腫瘤病變
- 二手房抵押合同協(xié)議書
- 銀行債權(quán)承攬協(xié)議書
- 駐場人員管理協(xié)議書
- 轉(zhuǎn)讓醬菜技術(shù)協(xié)議書
- 裝修委托代管協(xié)議書
- 項(xiàng)目聯(lián)合投資協(xié)議書
- 菏澤港口合作協(xié)議書
- 高齡健身免責(zé)協(xié)議書
- 云公益平臺(tái)捐贈(zèng)協(xié)議書
- 杭州市2025年中考作文《勇敢自信》寫作策略與范文
- 起重機(jī)司機(jī)(限橋式)Q2特種設(shè)備作業(yè)人員資格鑒定參考試題(附答案)
- 熱點(diǎn)主題作文寫作指導(dǎo):古樸與時(shí)尚(審題指導(dǎo)與例文)
- 河南省洛陽市2025屆九年級(jí)下學(xué)期中考一模英語試卷(原卷)
- 成都設(shè)計(jì)咨詢集團(tuán)有限公司2025年社會(huì)公開招聘(19人)筆試參考題庫附帶答案詳解
- 2025年上海市金融穩(wěn)定發(fā)展研究中心招聘考試模擬測試
- 河北開放大學(xué)2025年《醫(yī)用基礎(chǔ)化學(xué)#》形考任務(wù)4答案
- 遼寧省名校聯(lián)盟2025屆高三下學(xué)期高考模擬押題卷生物學(xué)(三)試題(有解析)
- 房屋市政工程生產(chǎn)安全重大事故隱患判定檢查表(2024版)
- 江蘇南京茉莉環(huán)境投資有限公司招聘筆試題庫2025
- 鋁屑粉塵清掃管理制度
評(píng)論
0/150
提交評(píng)論