第6章 51單片機(jī)的中斷系統(tǒng)和外部中斷_第1頁
第6章 51單片機(jī)的中斷系統(tǒng)和外部中斷_第2頁
第6章 51單片機(jī)的中斷系統(tǒng)和外部中斷_第3頁
第6章 51單片機(jī)的中斷系統(tǒng)和外部中斷_第4頁
第6章 51單片機(jī)的中斷系統(tǒng)和外部中斷_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第六章第六章 51單片機(jī)的中斷系統(tǒng)和外部中單片機(jī)的中斷系統(tǒng)和外部中斷斷 6.1 51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng) 6.2 51單片機(jī)的中斷處理過程單片機(jī)的中斷處理過程 6.3 51單片機(jī)的中斷服務(wù)子程序設(shè)計單片機(jī)的中斷服務(wù)子程序設(shè)計 6.4 51單片機(jī)的外部中斷單片機(jī)的外部中斷 6.5 51單片機(jī)外部中斷應(yīng)用實例單片機(jī)外部中斷應(yīng)用實例 6.1 51單片機(jī)的中斷系統(tǒng)單片機(jī)的中斷系統(tǒng) 51單片機(jī)的中斷體系由相關(guān)控制寄存器和外部的中斷引腳組成,這些外部中斷引腳包括定時/計數(shù)器引腳T0/T1/T2/T2EX、外部中斷引腳INT0/INT1以及串口發(fā)送和接收引腳RXD/TXD。 中斷控制寄存器IE內(nèi)

2、部結(jié)構(gòu)這個寄存器可以位尋址,可以對該寄存器相應(yīng)位進(jìn)行置“1”或清“0”來對相應(yīng)的中斷進(jìn)行操作。 中斷優(yōu)先級控制寄存器IP來提高某個中斷的優(yōu)先級別,從而達(dá)到在多個中斷同時發(fā)生時先處理該中斷的目的。中斷優(yōu)先級控制寄存器內(nèi)部結(jié)構(gòu),該寄存器可以位尋址,如果中斷源對應(yīng)的控制位被置位為1,則該中斷源被置位為高優(yōu)先級,否則則為低優(yōu)先級,高優(yōu)先級的中斷事件總是被優(yōu)先處理。6.2 51單片機(jī)的中斷處理過程單片機(jī)的中斷處理過程 6.2.1 51單片機(jī)中斷系統(tǒng)的初始化步驟單片機(jī)中斷系統(tǒng)的初始化步驟 1. 初始化堆棧指針SP;2. 設(shè)置中斷源的觸發(fā)方式;3. 設(shè)置中斷源的優(yōu)先級別;4. 使能相應(yīng)中斷源。注:在C語言編

3、寫的代碼中,第一步會由編譯器自動完成。 6.2 51單片機(jī)的中斷處理過程單片機(jī)的中斷處理過程 6.2.2 51單片機(jī)的中斷服務(wù)子程序處理流程單片機(jī)的中斷服務(wù)子程序處理流程 1. 在中斷向量入口放置一條跳轉(zhuǎn)指令,讓程序從中斷向量入口跳轉(zhuǎn)到其實際代碼的起始位置;2. 保存當(dāng)前寄存器的內(nèi)容;3. 清除中斷標(biāo)志位;4. 處理中斷事件;5. 恢復(fù)寄存器內(nèi)容;6. 返回到原來主程序的執(zhí)行處。沒有能夠及時響應(yīng)的中斷請求標(biāo)志位沒有能夠及時響應(yīng)的中斷請求標(biāo)志位51單片機(jī)的中斷處理流程單片機(jī)的中斷處理流程 :屏蔽同級和低級別的中斷;把當(dāng)前程序指針PC的內(nèi)容保存到堆棧中;根據(jù)中斷標(biāo)志位,把相應(yīng)的中斷源對應(yīng)的中斷向量

4、入口地址裝入到PC中;從中斷向量入口地址跳轉(zhuǎn)到對應(yīng)的中斷服務(wù)程序中;執(zhí)行中斷服務(wù);中斷服務(wù)執(zhí)行完成之后打開被屏蔽的中斷,然后從堆棧中取出原先保存的PC內(nèi)容,使得程序可以從原先的PC地址繼續(xù)運行。6.3 51單片機(jī)的中斷服務(wù)子程序設(shè)計單片機(jī)的中斷服務(wù)子程序設(shè)計 中斷服務(wù)函數(shù)需要使用關(guān)鍵字interrupt來進(jìn)行定義,interrupt后面的參數(shù)04表明了中斷源,在實際使用中常常使用using來定義在中斷服務(wù)函數(shù)中使用的寄存器組,其參數(shù)可以為03,分別對應(yīng)通用工作寄存器組0組3,可以減少壓入堆棧的變量內(nèi)容,從而簡化中斷服務(wù)函數(shù)的內(nèi)容,以加快程序執(zhí)行的速度。標(biāo)準(zhǔn)結(jié)構(gòu):void 函數(shù)名(void) i

5、nterrupt 中斷標(biāo)號 using 寄存器編號 中斷函數(shù)代碼; 51單片機(jī)中斷源對應(yīng)的中斷標(biāo)號按照內(nèi)部優(yōu)先級從高到低的順序分配為05,外部中斷0對應(yīng)的中斷號是0,定時/計數(shù)器T2對應(yīng)的中斷號是5 。6.4 51單片機(jī)的外部中斷單片機(jī)的外部中斷 由中斷系統(tǒng)和外部引腳組成,其使用P3端口的P3.2(INT0)和P3.3(INT1)引腳來作為外部信號的輸入引腳。 外部中斷INT0和INT1在使能后有兩種觸發(fā)方式,一種是下降沿觸發(fā),一種是低電平觸發(fā),這兩種方式可以選擇,通過對定時計數(shù)器控制寄存器TCON(Timer/Counter Control Register)的相關(guān)位的設(shè)置來切換 當(dāng)IT0/

6、IT1被置“1”時,INT0/INT1被引腳上的下降沿觸發(fā),否則由引腳上的低電平觸發(fā)。6.5 51單片機(jī)外部中斷應(yīng)用實例單片機(jī)外部中斷應(yīng)用實例 6.5.1 中斷計數(shù)(三極管)中斷計數(shù)(三極管) 1、三極管基礎(chǔ)、三極管基礎(chǔ) 三極管是一種用電流來控制電流的半導(dǎo)體器件其作用是把微弱信號放大成輻值較大的電信號,也常常用作無觸點開關(guān)有三個引腳,分布為發(fā)射極(emitter/E)、基極(base/B)和集電極(collector/C)。2、Proteus中的三極管中的三極管 位于Transistors庫中包括Bipolar、IGBT、JEET等。6.5 51單片機(jī)外部中斷應(yīng)用實例單片機(jī)外部中斷應(yīng)用實例 6

7、.5.1 中斷計數(shù)(三極管)中斷計數(shù)(三極管) 3、實例的設(shè)計思路、實例的設(shè)計思路 內(nèi)部設(shè)置一個軟件計數(shù)器,當(dāng)檢測到外部中斷的時候?qū)⒃撥浖嫈?shù)器增加,然后將計數(shù)器拆分之后的值對應(yīng)的字符編碼通過I/O口送出驅(qū)動數(shù)碼管顯示。 4、實例的、實例的Proteus電路電路 在51單片機(jī)的INT0引腳上連接了一個按鍵,按鍵的一端連接到地,另一端通過上拉電阻連接到INT0,對該按鍵被按下的事件計數(shù),并且在三位8段數(shù)碼管上顯示出來。另外在普通I/O引腳上連接一個按鍵用于清零計數(shù),當(dāng)計數(shù)達(dá)到999或者清零按鍵被按下的的時候,數(shù)碼管被歸零,重新開始計數(shù)。 D0D1D2D3D4D5D6L1L2L3L1D6D5D4D

8、3D2D1D0D0D1D2D3D4D6D5D6D5D4D3D2D1D0L2L3XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.

9、1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C52X1CRYSTALC130pFC230pFR110kC310uFVCCQ1NPNQ2NPNQ3NPNR2100R3100R4100VCCK1K2R510kR610k6.5 51單片機(jī)外部中斷應(yīng)用實例單片機(jī)外部中斷應(yīng)用實例 6.5.1 中斷計數(shù)(三極管)中斷計數(shù)(三極管) 4、實例的、實例的Proteus電路電路 D0D1D2D3D4D5D6L1L2L3L1D6D5D4D3D2D1D0D0D1D2D3D4D6D5D6D5D4D3D2D1D0L2L3XTAL218XTA

10、L119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.

11、6/A1427U1AT89C52X1CRYSTALC130pFC230pFR110kC310uFVCCQ1NPNQ2NPNQ3NPNR2100R3100R4100VCCK1K2R510kR610k6.5 51單片機(jī)外部中斷應(yīng)用實例單片機(jī)外部中斷應(yīng)用實例 6.5.1 中斷計數(shù)(三極管)中斷計數(shù)(三極管) 5、實例的應(yīng)用代碼、實例的應(yīng)用代碼 使用IE = 0 x81和IT0 = 1使能了外部中斷并且將中斷觸發(fā)事件設(shè)置為脈沖方式,在中斷服務(wù)函數(shù)EX_INT0中對計數(shù)器Counter加1,并且拆分為對應(yīng)的數(shù)字后在主循環(huán)中顯示。 6.5 51單片機(jī)外部中斷應(yīng)用實例單片機(jī)外部中斷應(yīng)用實例 6.5.1 中斷

12、計數(shù)(三極管)中斷計數(shù)(三極管) 6、實例的仿真結(jié)果和說明、實例的仿真結(jié)果和說明 點擊運行,按下K1,可以看到顯示的數(shù)據(jù)隨著按鍵值的改變而發(fā)生改變,按下K2可以看到顯示數(shù)據(jù)被清除 6.5 51單片機(jī)外部中斷應(yīng)用實例單片機(jī)外部中斷應(yīng)用實例 6.5.2 低電平中斷的應(yīng)用低電平中斷的應(yīng)用 1、實例的設(shè)計思路、實例的設(shè)計思路 INT0和INT1引腳上分別兩連接到開關(guān)S1和S2,P1.0和P1.7引腳使用灌電流方式驅(qū)動了兩個LED,單片機(jī)配置為外部中斷0、外部中斷1均為電平觸發(fā)方式,中斷優(yōu)先級為默認(rèn)。當(dāng)SW1和SW2單獨閉合時,對應(yīng)的LED1和LED2閃爍;如果SW1閉合后SW2閉合,只有LED1閃爍;

13、如果SW2閉合后SW1閉合,開始LED2閃爍,當(dāng)SW1閉合后LED2不閃爍,LED1閃爍;如果SW1和SW2同時閉合,LED1閃爍,當(dāng)SW1斷開后LED1停止閃爍,LED2開始閃爍。 2、實例的、實例的Proteus電路電路 XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/I

14、NT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C52X1CRYSTALC130pFC230pFR110kC310uFVCCSW1SW-SPSTSW2SW-SPSTR210kD1LED-REDD2LED-REDR4100R5100VCC6.5 51單片機(jī)外部中斷應(yīng)用實例單片機(jī)外部中斷應(yīng)用實例 6.5.2 低電平中斷的應(yīng)用低電平中斷的應(yīng)用 3、實例的應(yīng)用代碼、實例的應(yīng)用代碼

15、51單片機(jī)使用兩個外部中斷服務(wù)子程序來對外部中斷0和外部中斷1的進(jìn)行處理,在中斷服務(wù)子程序中只做一件事情,就是控制對應(yīng)的LED翻轉(zhuǎn)。 4、實例的仿真結(jié)果和說明、實例的仿真結(jié)果和說明 XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T

16、014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C52X1CRYSTALC130pFC230pFR110kC310uFVCCSW1SW-SPSTSW2SW-SPSTR210kD1LED-REDD2LED-REDR4100R5100VCC6.5 51單片機(jī)外部中斷應(yīng)用實例單片機(jī)外部中斷應(yīng)用實例 6.5.3 多個信號共用一個外部中斷多個信號共用一個外部中斷 1、實例的設(shè)計思路、實例的設(shè)計思路 將多個信號通過輸入與門的輸出

17、信號連接到單片機(jī)的外部中斷引腳上,然后同時將4個信號分別連接到51單片機(jī)的一個外部引腳上,當(dāng)檢測到外部中斷信號的時候去檢測這些外部引腳上的信號,然后判斷到底是哪個信號觸發(fā)了外部中斷事件。2、實例的實例的Proteus電路電路 4個由按鍵(K1K4)和上拉電阻構(gòu)造的低電平事件信號通過74LS21四輸入與門連接到單片機(jī)的外部中斷引腳INT0(P3.2)上,然后4個信號分別連接到單片機(jī)的P1.0P1.3引腳上 XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.

18、6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C52X1CRYSTALC130pFC230pFR110kC310uFVCC12456U2:A74LS2123456781RP1RESPACK-7K1K2K3K4D1LED-REDD2LED-REDD3LED-REDD4LED-RED12345678161514131211109RN1RX8VCC6.5 51單片機(jī)外部中斷應(yīng)用實例單片機(jī)外部中斷應(yīng)用實例 6.5.3 多個信號共用一個外部中斷多個信號共用一個外部中斷 3、實例的應(yīng)用代碼、實例的應(yīng)用代碼 當(dāng)4個外部中斷事件中有一個變?yōu)榈碗娖降闹?,四輸入與門的輸出為低電平,觸發(fā)外部中斷0中斷事件,程序進(jìn)入EX_Int0函數(shù),然后對P1.4P

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論