第5章 中斷系統(tǒng)講義_第1頁(yè)
第5章 中斷系統(tǒng)講義_第2頁(yè)
第5章 中斷系統(tǒng)講義_第3頁(yè)
第5章 中斷系統(tǒng)講義_第4頁(yè)
第5章 中斷系統(tǒng)講義_第5頁(yè)
已閱讀5頁(yè),還剩46頁(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、第第 5 5 章章 單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng)5.1 中斷的概念中斷的概念5.2 中斷控制系統(tǒng)中斷控制系統(tǒng)5.3 中斷處理過(guò)程中斷處理過(guò)程5.4 中斷編程及應(yīng)用中斷編程及應(yīng)用 與上對(duì)比,單片機(jī)中也有同樣的問(wèn)題。與上對(duì)比,單片機(jī)中也有同樣的問(wèn)題。CPUCPU正在正在執(zhí)行原程序,突然,被意外事情打斷,轉(zhuǎn)去執(zhí)行新程執(zhí)行原程序,突然,被意外事情打斷,轉(zhuǎn)去執(zhí)行新程序。序。CPUCPU執(zhí)行新程序結(jié)束后,又回到原程序中繼續(xù)執(zhí)執(zhí)行新程序結(jié)束后,又回到原程序中繼續(xù)執(zhí)行。這樣的過(guò)程就叫行。這樣的過(guò)程就叫中斷中斷。舉例:某同學(xué)(乙方)正在教室寫作業(yè),忽然被人舉例:某同學(xué)(乙方)正在教室寫作業(yè),忽然被人(甲方)

2、叫出去,回來(lái)后,繼續(xù)寫作業(yè)。這就是生活(甲方)叫出去,回來(lái)后,繼續(xù)寫作業(yè)。這就是生活中中斷的例子。中中斷的例子。 1 1、什么叫中斷?、什么叫中斷?5.1 5.1 中斷的概念中斷的概念日常生活的中斷現(xiàn)象舉例日常生活的中斷現(xiàn)象舉例某人正在看報(bào)某人正在看報(bào)電話鈴響了電話鈴響了去接電話去接電話繼續(xù)接電話繼續(xù)接電話繼續(xù)看報(bào)繼續(xù)看報(bào)跑向廚房跑向廚房關(guān)煤氣、灌開水關(guān)煤氣、灌開水水開了水開了2、80C51單片機(jī)的中斷系統(tǒng)結(jié)構(gòu)執(zhí)行主程序主程序主程序繼續(xù)執(zhí)行主程序斷點(diǎn)斷點(diǎn)中斷請(qǐng)求中斷請(qǐng)求中斷響應(yīng)中斷響應(yīng)執(zhí)行中斷處理程序中斷返回中斷返回日常生活中日常生活中的中斷與的中斷與單片機(jī)單片機(jī)中斷的比較:中斷的比較: 某同

3、學(xué)某同學(xué) 單片機(jī)單片機(jī) 過(guò)程說(shuō)明過(guò)程說(shuō)明正在看書正在看書 執(zhí)行主程序執(zhí)行主程序有人找出去有人找出去 中斷信號(hào)中斷信號(hào) 中斷請(qǐng)求中斷請(qǐng)求暫??磿鴷和?磿?暫停執(zhí)行主程序暫停執(zhí)行主程序 中斷響應(yīng)中斷響應(yīng)書中作記號(hào)書中作記號(hào) 當(dāng)前當(dāng)前PC入棧入棧 保護(hù)斷點(diǎn)保護(hù)斷點(diǎn)出去做事出去做事 執(zhí)行中斷程序執(zhí)行中斷程序 中斷服務(wù)中斷服務(wù)回來(lái)繼續(xù)看回來(lái)繼續(xù)看 返回主程序返回主程序 中斷返回中斷返回實(shí)例實(shí)例1 1 單片機(jī)開關(guān)狀態(tài)檢測(cè)單片機(jī)開關(guān)狀態(tài)檢測(cè)要求:若有按鍵壓下D1 狀態(tài)反轉(zhuǎn)。常規(guī)辦法中斷辦法運(yùn)行效果運(yùn)行效果問(wèn)題:?jiǎn)栴}:1 1、主函數(shù)中沒有調(diào)用中斷函數(shù),為何能自動(dòng)執(zhí)行?、主函數(shù)中沒有調(diào)用中斷函數(shù),為何能自動(dòng)執(zhí)行

4、?2 2、主函數(shù)中的變量賦值語(yǔ)句的作用?、主函數(shù)中的變量賦值語(yǔ)句的作用?3 3、這種程序結(jié)構(gòu)的意義?、這種程序結(jié)構(gòu)的意義?答案答案:1 1、當(dāng)、當(dāng)P3.2P3.2端口有脈沖下降沿出現(xiàn)端口有脈沖下降沿出現(xiàn)時(shí)系統(tǒng)自動(dòng)調(diào)用該中斷函數(shù);時(shí)系統(tǒng)自動(dòng)調(diào)用該中斷函數(shù);2 2、實(shí)現(xiàn)中斷功能的管理命令;、實(shí)現(xiàn)中斷功能的管理命令;3 3、可實(shí)現(xiàn)多任務(wù)實(shí)時(shí)操作功能。、可實(shí)現(xiàn)多任務(wù)實(shí)時(shí)操作功能。中斷中斷是指在突發(fā)事件到來(lái)時(shí)先中止當(dāng)前正在進(jìn)行是指在突發(fā)事件到來(lái)時(shí)先中止當(dāng)前正在進(jìn)行的工作,轉(zhuǎn)而去處理突發(fā)事件。待處理完成后,的工作,轉(zhuǎn)而去處理突發(fā)事件。待處理完成后,再返回到原先被中止的工作處,繼續(xù)進(jìn)行隨后的再返回到原先被中

5、止的工作處,繼續(xù)進(jìn)行隨后的工作。工作。中斷函數(shù)與一般函數(shù)的區(qū)別:中斷函數(shù)與一般函數(shù)的區(qū)別: 一般函數(shù)的返回?cái)帱c(diǎn)是已知的,而中斷一般函數(shù)的返回?cái)帱c(diǎn)是已知的,而中斷 函數(shù)的返回?cái)帱c(diǎn)是隨機(jī)的。函數(shù)的返回?cái)帱c(diǎn)是隨機(jī)的。 引起突發(fā)事件的來(lái)源稱為引起突發(fā)事件的來(lái)源稱為中斷源中斷源 中斷源要求服務(wù)的請(qǐng)求稱為中斷源要求服務(wù)的請(qǐng)求稱為中斷請(qǐng)求中斷請(qǐng)求 對(duì)中斷請(qǐng)求提供的服務(wù)稱為對(duì)中斷請(qǐng)求提供的服務(wù)稱為中斷服務(wù)中斷服務(wù) 中斷管理系統(tǒng)處理事件的過(guò)程稱為中斷管理系統(tǒng)處理事件的過(guò)程稱為中斷響應(yīng)過(guò)程中斷響應(yīng)過(guò)程中斷技術(shù)的關(guān)鍵問(wèn)題:中斷技術(shù)的關(guān)鍵問(wèn)題:1 1、哪些事件可以作為、哪些事件可以作為5151單片機(jī)的中斷源?單片機(jī)的

6、中斷源?2 2、CPU怎樣知道有突發(fā)事件發(fā)生了?怎樣知道有突發(fā)事件發(fā)生了?3 3、CPU怎樣處理中斷過(guò)程(允許或禁止中斷、怎樣處理中斷過(guò)程(允許或禁止中斷、響應(yīng)順序)?響應(yīng)順序)?5.2 5.2 中斷控制系統(tǒng)中斷控制系統(tǒng)1 1、中斷源、中斷源(哪些信號(hào)可以引起單片機(jī)中斷?)(哪些信號(hào)可以引起單片機(jī)中斷?)中斷源數(shù)量和種類越多,中斷源數(shù)量和種類越多,MCUMCU處理突發(fā)事件的能力就越強(qiáng)。處理突發(fā)事件的能力就越強(qiáng)。80C5180C51單片機(jī)共有單片機(jī)共有5 5種中斷源。種中斷源。中斷源中斷源名稱名稱中斷引起原因中斷引起原因/INT0外部中斷外部中斷0 0P3.2引腳低電平或下降沿信號(hào)引腳低電平或下

7、降沿信號(hào)T0定時(shí)器定時(shí)器0 0中斷中斷定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器0 0計(jì)數(shù)回計(jì)數(shù)回0溢出溢出/INT1外部中斷外部中斷1 1P3.3引腳低電平或下降沿信號(hào)引腳低電平或下降沿信號(hào)T1定時(shí)器定時(shí)器1 1中斷中斷定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器1 1計(jì)數(shù)回計(jì)數(shù)回0 0溢出溢出TI/RI串行口中斷串行口中斷一幀串行數(shù)據(jù)被發(fā)送出去后一幀串行數(shù)據(jù)被發(fā)送出去后一幀串行數(shù)據(jù)被接收進(jìn)來(lái)后一幀串行數(shù)據(jù)被接收進(jìn)來(lái)后(本章)(第六章)(本章)(第六章)(第七章)每個(gè)中斷源都有一個(gè)位于每個(gè)中斷源都有一個(gè)位于ROMROM內(nèi)的中斷程序入口內(nèi)的中斷程序入口地址地址中斷向量中斷向量或中斷矢量。每個(gè)中斷源都有或中斷矢量。每個(gè)中斷源都有

8、一個(gè)一個(gè)中斷號(hào)中斷號(hào)。C51中不必考慮中斷向量,但要使用中斷號(hào)(見后)匯編程序中的中斷向量實(shí)例匯編程序中的中斷向量實(shí)例C程序中斷函數(shù)的中斷號(hào)程序中斷函數(shù)的中斷號(hào)0INT1INT0INT 系統(tǒng)為每個(gè)中斷源設(shè)立了中斷請(qǐng)求標(biāo)志中斷請(qǐng)求標(biāo)志; 中斷請(qǐng)求標(biāo)志由中斷源硬件置硬件置1或清或清0;在每個(gè)機(jī)器周期的S6期間,CPU會(huì)自動(dòng)查看中斷請(qǐng)求標(biāo)志,也可采用軟件方式查看該標(biāo)志;中斷響應(yīng)時(shí)間至少需要3個(gè)機(jī)器周期。2 2、中斷請(qǐng)求標(biāo)志、中斷請(qǐng)求標(biāo)志(單片機(jī)如何知道中斷信號(hào)出現(xiàn)了?)(單片機(jī)如何知道中斷信號(hào)出現(xiàn)了?)中斷源中斷源名稱名稱中斷引起原因中斷引起原因中斷請(qǐng)求中斷請(qǐng)求標(biāo)志標(biāo)志/INT0外部中斷外部中斷0

9、0P3.2引腳低電平或下降沿信號(hào)引腳低電平或下降沿信號(hào) IE0=1T0定時(shí)器定時(shí)器0 0中斷中斷定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器0 0計(jì)數(shù)回計(jì)數(shù)回0溢出溢出 TF0=1/INT1外部中斷外部中斷1 1P3.3引腳低電平或下降沿信號(hào)引腳低電平或下降沿信號(hào) IE1=1T1定時(shí)器定時(shí)器1 1中斷中斷定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器1 1計(jì)數(shù)回計(jì)數(shù)回0 0溢出溢出 TF1=1TI/RI串行口中斷串行口中斷一幀串行數(shù)據(jù)被發(fā)送出去后一幀串行數(shù)據(jù)被發(fā)送出去后一幀串行數(shù)據(jù)被接收進(jìn)來(lái)后一幀串行數(shù)據(jù)被接收進(jìn)來(lái)后 TI = 1 RI = 1各標(biāo)志位為各標(biāo)志位為1時(shí)向時(shí)向CPUCPU申請(qǐng)中斷。申請(qǐng)中斷。 以上以上6個(gè)中斷請(qǐng)求標(biāo)志

10、位分別分布在個(gè)中斷請(qǐng)求標(biāo)志位分別分布在TCON、SCON兩個(gè)寄存器中。兩個(gè)寄存器中。IT0IE0IT1IE1TR0TF0TR1TF1 外部中斷信號(hào)0 標(biāo)志位,IE0 TCON1 外部中斷信號(hào)1標(biāo)志位, IE1 TCON3 1有中斷請(qǐng)求 0 無(wú)中斷請(qǐng)求IE0 (IE1) = TCON定時(shí)器控制寄存器(88H)IT0IE0IT1IE1TR0TF0TR1TF1 定時(shí)/計(jì)數(shù)器0溢出,TF0 TCON5 定時(shí)/計(jì)數(shù)器1溢出,TF1 TCON71 有中斷請(qǐng)求0 無(wú)中斷請(qǐng)求TF0 (TF1) = TCON定時(shí)器控制寄存器(88H)SCONSCON RI TIRB8TB8RENSM2SM1SM0一幀串口數(shù)據(jù)發(fā)

11、送完成,TI SCON1 一幀串口數(shù)據(jù)接收完成,RI SCON0SCON,串行口控制寄存器,98H1 有中斷請(qǐng)求0 無(wú)中斷請(qǐng)求TI (RI) = 3 3、CPUCPU怎樣管理中斷處理過(guò)程?怎樣管理中斷處理過(guò)程? 系統(tǒng)為每個(gè)中斷源設(shè)立了系統(tǒng)為每個(gè)中斷源設(shè)立了中斷允許標(biāo)志中斷允許標(biāo)志。當(dāng)該標(biāo)。當(dāng)該標(biāo)志為志為1時(shí),可自動(dòng)執(zhí)行相應(yīng)中斷函數(shù),否則不予時(shí),可自動(dòng)執(zhí)行相應(yīng)中斷函數(shù),否則不予響應(yīng)。中斷允許標(biāo)志可在程序中由軟件修改;響應(yīng)。中斷允許標(biāo)志可在程序中由軟件修改; 系統(tǒng)為每個(gè)中斷源設(shè)立了系統(tǒng)為每個(gè)中斷源設(shè)立了中斷優(yōu)先級(jí)標(biāo)志中斷優(yōu)先級(jí)標(biāo)志。當(dāng)該。當(dāng)該標(biāo)志為標(biāo)志為1時(shí),可優(yōu)先執(zhí)行相應(yīng)中斷函數(shù),否則按時(shí),可優(yōu)

12、先執(zhí)行相應(yīng)中斷函數(shù),否則按請(qǐng)求先后順序響應(yīng)。中斷優(yōu)先級(jí)標(biāo)志可在程序中請(qǐng)求先后順序響應(yīng)。中斷優(yōu)先級(jí)標(biāo)志可在程序中由軟件修改由軟件修改; 系統(tǒng)為外部中斷源設(shè)立了系統(tǒng)為外部中斷源設(shè)立了中斷觸發(fā)方式標(biāo)志中斷觸發(fā)方式標(biāo)志,可,可據(jù)此指定相應(yīng)信號(hào)類型。據(jù)此指定相應(yīng)信號(hào)類型。(1)中斷允許標(biāo)志)中斷允許標(biāo)志IEEX0ET0EX1ET1 ES EA中斷總允許標(biāo)志, EA IE7串口中斷允許標(biāo)志, ESIE4定時(shí)中斷1允許標(biāo)志, ET1IE3外部中斷1允許標(biāo)志, EX1 IE2定時(shí)中斷0允許標(biāo)志, ET0IE1外部中斷0允許標(biāo)志, EX0 IE0IE,中斷允許寄存器,A8H(2)中斷優(yōu)先級(jí))中斷優(yōu)先級(jí)為什么要有

13、為什么要有中斷優(yōu)先級(jí)中斷優(yōu)先級(jí)?CPU同一時(shí)間只能響應(yīng)一個(gè)中斷請(qǐng)求。若同時(shí)來(lái)了兩個(gè)或兩個(gè)同一時(shí)間只能響應(yīng)一個(gè)中斷請(qǐng)求。若同時(shí)來(lái)了兩個(gè)或兩個(gè)以上中斷請(qǐng)求,就必須有先有后。以上中斷請(qǐng)求,就必須有先有后。 ! 為此將為此將5個(gè)中斷源分成高級(jí)、低級(jí)兩個(gè)級(jí)別,高級(jí)優(yōu)先,由個(gè)中斷源分成高級(jí)、低級(jí)兩個(gè)級(jí)別,高級(jí)優(yōu)先,由IP控制??刂?。 IPPX0PT0PX1PT1 PS=1=高級(jí)優(yōu)先級(jí)高級(jí)優(yōu)先級(jí)= 0=低級(jí)優(yōu)先級(jí)低級(jí)優(yōu)先級(jí)串口中斷優(yōu)先級(jí)標(biāo)志, PS IP4定時(shí)中斷1優(yōu)先級(jí)標(biāo)志,PT1IP3外部中斷1優(yōu)先級(jí)標(biāo)志,PX1 IP2定時(shí)中斷0優(yōu)先級(jí)標(biāo)志,PT0 IP1外部中斷0優(yōu)先級(jí)標(biāo)志,PX0 IP0優(yōu)先級(jí)原則:

14、1)高級(jí)中斷請(qǐng)求可以打斷正在執(zhí)行的低級(jí)中斷;2)同級(jí)或低級(jí)中斷請(qǐng)求不能打斷正在執(zhí)行的中斷;3)同級(jí)中斷源同時(shí)提出請(qǐng)求時(shí)按自然優(yōu)先級(jí)響應(yīng): INT0 T0 INT1T1TI/RI4)單片機(jī)復(fù)位時(shí),IP各位都被置0, 所有中斷源為低級(jí)中斷(3)中斷觸發(fā)方式)中斷觸發(fā)方式TCONIT0IT1IT1(IT0) = 0 ,低電平觸發(fā)。低電平觸發(fā)。IT1(IT0) = 1 ,下降沿觸發(fā)。下降沿觸發(fā)。外部中斷外部中斷0觸發(fā)方式標(biāo)志,觸發(fā)方式標(biāo)志,IT0 TCON0外部中斷外部中斷1觸發(fā)方式標(biāo)志,觸發(fā)方式標(biāo)志,IT1 TCON2TCON,定時(shí)器控制寄存器,88H中斷標(biāo)志匯總中斷標(biāo)志匯總中斷源名稱 中斷請(qǐng)求標(biāo)志

15、 中斷允許標(biāo)志 中斷優(yōu)先標(biāo)志 中斷觸發(fā)方式標(biāo)志 中斷編號(hào) INT0 IE0 EX0 PX0 IT0 0 T0 TF0 ET0 PT0 1 INT1 IE1 EX1 PX1 IT1 2 T1 TF1 ET1 PT1 3 TI/RI TI/RI ES PS 4中斷特殊功能寄存器匯總中斷特殊功能寄存器匯總 IE0TCONSCONINT0 IT0=0 IT0=1INT1 IT1=0 IT1=1TF0 IE1TF1T0T1TIRITXDRXDESET0EX0EX1ET1EA自然優(yōu)先級(jí)自然優(yōu)先級(jí)矢量矢量地址地址高級(jí)中斷請(qǐng)求高級(jí)中斷請(qǐng)求自然優(yōu)先級(jí)自然優(yōu)先級(jí)矢量矢量地址地址低級(jí)中斷請(qǐng)求低級(jí)中斷請(qǐng)求PX0PT0

16、PX1PT1PSIEIP中斷標(biāo)志位中斷源允許總允許中斷優(yōu)先級(jí)中斷信號(hào)的傳送是分別沿著中斷信號(hào)的傳送是分別沿著5條水平路徑由左向右進(jìn)行的條水平路徑由左向右進(jìn)行的 。中斷系統(tǒng)的組成中斷系統(tǒng)的組成(影響中斷的因素?)(影響中斷的因素?)課后思考題課后思考題1 1、CPUCPU處理中斷的過(guò)程?處理中斷的過(guò)程?2 2、MCS51MCS51分別有幾個(gè)中斷源分別有幾個(gè)中斷源, ,入口地址分別是入口地址分別是? ?3 3、中斷控制有哪幾個(gè)寄存器、中斷控制有哪幾個(gè)寄存器? ?4 4、中斷有幾個(gè)優(yōu)先級(jí)、中斷有幾個(gè)優(yōu)先級(jí), ,能理解如何設(shè)置能理解如何設(shè)置. .1 1、中斷響應(yīng)條件、中斷響應(yīng)條件n 中斷源有中斷請(qǐng)求;

17、中斷源有中斷請(qǐng)求;n 此中斷源的中斷允許位為此中斷源的中斷允許位為1 1;n CPUCPU開中斷(即開中斷(即EA=1EA=1)。)。以上三條同時(shí)滿足時(shí),以上三條同時(shí)滿足時(shí),CPUCPU才有可能響應(yīng)中斷才有可能響應(yīng)中斷。5.3 5.3 中斷的編程及應(yīng)用中斷的編程及應(yīng)用使用中斷,程序員需要做什么?使用中斷,程序員需要做什么? 你想使用的中斷是哪個(gè)?選擇相應(yīng)的中斷號(hào);你想使用的中斷是哪個(gè)?選擇相應(yīng)的中斷號(hào);打開你選擇的中斷和總中斷;打開你選擇的中斷和總中斷;你所希望的觸發(fā)條件是什么?(針對(duì)外部中斷)你所希望的觸發(fā)條件是什么?(針對(duì)外部中斷)你希望在中斷之后干什么?你希望在中斷之后干什么?以外部中斷

18、以外部中斷0 0為例:為例:主程序中需要有以下代碼:主程序中需要有以下代碼:EA=1;/打開總中斷開關(guān)EX0=1;/開外部中斷0IT0=0/1;/設(shè)置外部中斷的觸發(fā)方式中斷服務(wù)函數(shù):中斷服務(wù)函數(shù):void int0 ( ) interrupt 0 using 1do anything that you want中斷向量中斷向量位于位于ROM內(nèi)的中斷程序入口地址內(nèi)的中斷程序入口地址匯編程序匯編程序 跳轉(zhuǎn)指令跳轉(zhuǎn)指令 跳轉(zhuǎn)指令跳轉(zhuǎn)指令0000H0003H0013H0015H0INT1INT主程序首指令主程序首指令ROM跳轉(zhuǎn)指令跳轉(zhuǎn)指令0026H0028H中斷號(hào)中斷號(hào)與中斷向量對(duì)應(yīng)的編號(hào)與中斷向量對(duì)

19、應(yīng)的編號(hào)C51程序程序 0INTC51中斷函數(shù)的聲明格式:void 函數(shù)名 (void) interrupt n using minterrupt n,表示是關(guān)于中斷源n的中斷服務(wù)函數(shù);using m,表示該中斷函數(shù)將使用第m組組工作寄存器。缺省為當(dāng)前工作寄存器組?!咀⒁庾⒁狻?1、中斷服務(wù)函數(shù)既沒有返回值,也沒有調(diào)用參數(shù); 2、中斷服務(wù)函數(shù)只能由系統(tǒng)調(diào)用,不能被其他函數(shù)調(diào)用。實(shí)例2 將第4章實(shí)例3行列式鍵盤改用中斷方式編程如何既能快速響應(yīng)按鍵操作,又不過(guò)多占用CPU時(shí)間?中斷掃描法中斷掃描法有鍵按下時(shí)才進(jìn)行掃描查詢,以獲取按鍵鍵值。若無(wú)鍵按下,可不考慮鍵盤的存在。查詢掃描法查詢掃描法能快速響

20、應(yīng)按鍵動(dòng)作,但需花費(fèi)較多CPU機(jī)時(shí)。主函數(shù)獲取鍵值keykey = -1?P2鍵值顯示碼NYP2黑屏顯示碼分析分析:增加一個(gè)與門,利用按鍵壓下時(shí)的電平產(chǎn)生INT0中斷請(qǐng)求信號(hào);鍵盤改在P1口(中斷接P3.2)。完整程序編程界面運(yùn)行效果 實(shí)例3 將第4章實(shí)例2鍵控流水燈改用中斷方式檢測(cè)按鍵 問(wèn)題問(wèn)題:當(dāng)CPU運(yùn)行于LED循環(huán)環(huán)節(jié)時(shí),將因不能及時(shí)檢測(cè)按鍵狀態(tài),而使按鍵操作動(dòng)作不靈敏。解決思路:采用中斷監(jiān)測(cè)按鍵狀態(tài),及時(shí)更新標(biāo)志位。 硬件改動(dòng):增加一只4輸入與門電路,使按鍵閉合電平作為外部中斷信號(hào)。軟件改動(dòng)參參考考程程序序編程界面運(yùn)行效果按鍵動(dòng)作靈敏度明顯增強(qiáng)5.1 中斷的概念5.2 中斷控制系統(tǒng)5

21、.3 中斷處理過(guò)程5.4 中斷編程及應(yīng)用 5.4.1 中斷的編程和應(yīng)用舉例 5.4.2 擴(kuò)展外部中斷源5.4.2 擴(kuò)展外部中斷源擴(kuò)展外部中斷源 實(shí)際應(yīng)用中,兩個(gè)外部中斷請(qǐng)求源往往不夠用,需對(duì)外部中斷源進(jìn)行擴(kuò)充。 如系統(tǒng)有如系統(tǒng)有5個(gè)外部中斷請(qǐng)求源個(gè)外部中斷請(qǐng)求源IR0R4,高,高電平有效。電平有效。0INT1INT 優(yōu)先級(jí)高優(yōu)先級(jí)高的請(qǐng)求源IR0直接接到80C51的一個(gè)外部中斷請(qǐng)求輸入端 ,其余4個(gè)請(qǐng)求源IR1IR4通過(guò)各自的OC門(集電極開路門)連到80C51的另一個(gè)外中斷源輸入端,同時(shí)還連到P1口的P1.0P1.3腳,供80C51查詢。假設(shè)上圖中的4個(gè)外設(shè)中有一個(gè)提出高電平有效的中斷請(qǐng)求信

22、號(hào),則中斷請(qǐng)求通過(guò)4個(gè)集電極開路OC門的輸出公共點(diǎn),即1INT 腳的電平就會(huì)變低。究竟是哪個(gè)外設(shè)提出的請(qǐng)求,要通過(guò)程序查詢P1.0P1.3引腳上的邏輯電平來(lái)確定。查詢法擴(kuò)展外部中斷源比較簡(jiǎn)單,但是擴(kuò)展的外部中斷源個(gè)數(shù)較多時(shí),查詢時(shí)間稍長(zhǎng)。因此,可以采用74LS優(yōu)先編碼器來(lái)實(shí)現(xiàn)?!?4LS14874LS148;8 83 3線八進(jìn)制優(yōu)先編碼器線八進(jìn)制優(yōu)先編碼器】07編碼輸入端(低電平有效)EI選通輸入端(低電平有效)A0、A1、A2編碼輸出端(低電平有效)GS寬展端(低電平有效)EO選通輸出端(高電平有效)Inputs(Inputs(輸入輸入)OutputsOutputs(輸出)(輸出)EIEI0

23、 1 2 3 4 5 6 0 1 2 3 4 5 6 7 7A 0A 0GS EOGS EOH H H HH HLH H H H H H H H H H HH LL LL L LL HL L HL L HL HL L H HL H LL HL L H H HL H HL HL L H H H HH L LL HL L H H H H HH L HL HL L H H H H H HH H LL HLL L H H H H H H HH H HL H#include 【已通過(guò)已通過(guò)74LS14874LS148擴(kuò)展中斷擴(kuò)展中斷】#include unsigned char led_code=0 x

24、c0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8;void delay(unsigned int count)void delay(unsigned int count) unsigned char i; while(count-) for(i=0;i120;i+);void EX_INT0() interrupt 0void EX_INT0() interrupt 0 unsigned char bi; bi= P2 & 0 x07; /0 x070000 0111,保留P2口的低3位switch(bi) case 0 x00: /7按下 P0

25、= led_code 7; break; case 0 x01: /6按下 P0= led_code 6; break; case 0 x02: /5按下 P0= led_code 5; break; case 0 x03: /4按下 P0= led_code 4; break; case 0 x04: /3按下 P0= led_code 3; break; case 0 x05: / 2按下 P0= led_code 2; break; case 0 x06: / 1按下 P0= led_code 1; break; case 0 x07: / 0按下 P0= led_code 0; break;void main()v

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論