單片機C語言外中斷程序_第1頁
單片機C語言外中斷程序_第2頁
單片機C語言外中斷程序_第3頁
單片機C語言外中斷程序_第4頁
全文預覽已結(jié)束

下載本文檔

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

文檔簡介

1、現(xiàn)在我們寫一個單片機的外中斷程序在寫中斷程序之前,先要了解一下單片機中的中斷寄存器。在單片機的256B的片機RAM中,其高128位中分布著很多的特殊功能寄存器我們用中斷允許寄存器IE來控制單片機的中斷程序IE寄存器地址A8H,位尋址AFHA8H。位地址AFAEADACABAAA9A8位符號EA/ET2ESET1EX1ET0EX0其中的位有其不同的意義:EA:中斷總允許位,當EA為0時,中斷是不允許的,當EA為1時,中斷總允許。EX0(EX1):外部中斷允許位當EX00時,外部中斷禁止;當EX01時,外部中斷開啟。ET0(EX1):定時/計數(shù)中斷允許控制位當ET0(ET1)0 禁止定時(或計數(shù))

2、中斷當ET0(ET1)1 允許定時(或計數(shù))中斷ES:串行中斷允許控制位當ES0時,串行中斷禁止當ES1時,串行中斷開啟ET2:定時器2中斷允許寄存位IP中斷優(yōu)先級控制寄存器寄存器地址B8H,位尋址BFHB8H。位地址BFBEBDBCBBBAB9B8位符號/PT2PSPT1PX1PT0PX0PT2:定時器2優(yōu)先級設(shè)定位PS:串行中斷優(yōu)先級設(shè)定位PT1:定時中斷1優(yōu)先級設(shè)定位PT2:定時中斷2優(yōu)先級設(shè)定位PX1:外中斷1優(yōu)先級設(shè)定位PX2:外中斷2優(yōu)先級設(shè)定位TCON定時器控制寄存器:寄存器地址88H,位尋址8FH88H。位地址8F8E8D8C8B8A8988位符號TF1TR1TF0TR0IE1

3、IT1IE0IT0TF0(TF1)計數(shù)溢出標志位,當計數(shù)器計數(shù)溢出時,該位置1。TR0(TR1)定時器運行控制位當TR0(TR1)0 停止定時器/計數(shù)器工作當TR0(TR1)1 啟動定時器/計數(shù)器工作IE0(IE1)外中斷請求標志位當CPU采樣到P3.2(P3.3)出現(xiàn)有效中斷請求時,此位由硬件置1。在中斷響應(yīng)完成后轉(zhuǎn)向中斷服務(wù)時,再由硬件自動清0。IT0(IT1)外中斷請求信號方式控制位當IT0(IT1)=1 脈沖方式(后沿負跳有效)所謂負跳變,即從高電平跳到低電平。當IT0(IT1)0 電平方式(低電平有效)此位由軟件置1或清0。外部中斷操作(1)IE寄存器中的EA1時,中斷總允許打開(2

4、)IE寄存器的EX01,打開外中斷0允許。(3)查詢TCON的IE0,如果該位為1,那么說明有外中斷請求下面寫一個簡單的中斷程序:經(jīng)測試,上述代碼沒有問題。單片機有兩個外中斷分別是INT0和INT1上述代碼用的外中斷是INT0,外中斷1原理與外中斷0相同,將上述代碼中的中斷位允許開關(guān)EX0換成EX1,然后查詢外中斷請求IE1即可,代碼如下:#include"reg52.h"void main()EA=1;EX1=1;while(1)if(IE1=1)P0=0x00;if(IE1=0)P0=0xff;TCON中的外中斷請求方式控制位IT0與IT1可以控制外中斷的請求方式當IT

5、00時,外中斷的請求方式是電平方式,低電平有效。該位置1或者清0是由軟件控制當IT01時,外中斷的請求方式是脈沖方式,當外中斷的電平由高電平跳到低電平時,觸發(fā)外中斷。下面用C語言設(shè)計一下程序,在沒有中斷請求的情況下,數(shù)碼管運行從0到9的不斷的顯示循環(huán),當外中斷1按下后,蜂鳴器響一聲,當外中斷2按下后,P1口的8個指示二極管閃一次。P2口控制第幾個數(shù)碼管顯示 ,P0口控制數(shù)碼管顯示的內(nèi)容,軟件驅(qū)動數(shù)碼管的解碼。中斷的執(zhí)行步驟:1 確認單片機的中斷允許。2 接收到中斷的請求,低電平或者負跳變信號3 TCON的IE位置14 檢測到IE0位置1后,執(zhí)行中斷指令5 IE0標志位自動清0以備一下次中斷申請

6、。在該修飾符中,m的取值為031,對應(yīng)的中斷情況如下:0外部中斷01定時/計數(shù)器T02外部中斷13定時/計數(shù)器T14串行口中斷5定時/計數(shù)器T2其它值預留。程序代碼如下:#include"reg52.h"sbit fmq=P36;unsigned int keycode=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf;void delayms(unsigned int i)unsigned int j;while(i-)for(j=0;j<125;j+);void main()unsigned char i;fmq=0;P2=0xfe;IT0=0;/外中斷0的中斷觸發(fā)方式是電平式IT1=0;/外中斷1的中斷觸發(fā)方式是負跳變,如果按下中斷按鍵后不松手,那么外中斷0應(yīng)該會不斷的觸發(fā) ,那么外中斷1的只會觸發(fā)一次。while(1)EA=1;EX0=1;EX1=1;for(i=0;i<=9;i+)P0=keycodei;delayms(500);void int0() interrupt 0 unsigned char i;for(i=0;i<=250;i+)

溫馨提示

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

評論

0/150

提交評論