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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

6、。在該修飾符中,m的取值為031,對(duì)應(yīng)的中斷情況如下:0外部中斷01定時(shí)/計(jì)數(shù)器T02外部中斷13定時(shí)/計(jì)數(shù)器T14串行口中斷5定時(shí)/計(jì)數(shù)器T2其它值預(yù)留。程序代碼如下:#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ā)方式是負(fù)跳變,如果按下中斷按鍵后不松手,那么外中斷0應(yīng)該會(huì)不斷的觸發(fā) ,那么外中斷1的只會(huì)觸發(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論