立即注冊(cè) 登錄
返回首頁

uid:105323的個(gè)人空間

日志

單片機(jī)中斷系統(tǒng)

已有 1501 次閱讀2016-2-23 15:54 | 單片機(jī)

理論部分:

中斷系統(tǒng)是為了使單片機(jī)能夠?qū)ν獠炕騼?nèi)部隨機(jī)發(fā)生的事件實(shí)時(shí)處理而設(shè)置的。中斷系統(tǒng)很大程度上提高了單片機(jī)實(shí)時(shí)處理能力,它也是單片機(jī)最重要的功能之一。

 

單片機(jī)輸入\輸出方式(信息交互):

1.      無條件傳送方式

2.      查詢傳送方式

3.      中斷傳送方式

 

中斷概念

對(duì)于單片機(jī)來講,中斷是指CPU在處理某一事件A時(shí),發(fā)生了另一事件B,請(qǐng)求CPU迅速去處理(中斷發(fā)生);CPU接到中斷請(qǐng)求后,暫停當(dāng)前正在進(jìn)行的工作(中斷響應(yīng)),轉(zhuǎn)去處理事件B(執(zhí)行相應(yīng)的中斷服務(wù)程序),待CPU將事件B處理完畢后,再回到原來事件A被中斷的地方繼續(xù)處理事件A(中斷返回),這一過程稱為中斷。簡而言之,CPU正在執(zhí)行主程序的過程中,由于CPU之外的某種原因,有必要暫停主程序的執(zhí)行,轉(zhuǎn)而去執(zhí)行相應(yīng)的處理(中斷服務(wù))程序。待處理程序結(jié)束之后,再返回原程序斷點(diǎn)處繼續(xù)運(yùn)行的過程。

 

相關(guān)重要概念:

中斷源、中斷系統(tǒng)、主程序和中斷服務(wù)程序、中斷優(yōu)先級(jí)、中斷嵌套。

51單片機(jī)中斷系統(tǒng)原理圖:

原理概述:

中斷源共有5個(gè),其中外部中斷源共2個(gè)(外部中斷0和外部中斷1,圖中INTO和INT1)、定時(shí)/計(jì)數(shù)器中斷源2個(gè)(T0和T1,圖中T0和T1)、串行口中斷源1個(gè)(圖中結(jié)合的RX和TX的SCON);

 

TCON:可尋地址的8位定時(shí)/計(jì)數(shù)器控制寄存器;它可以用來控制定時(shí)/計(jì)數(shù)器的啟動(dòng)與停止,標(biāo)志定時(shí)/計(jì)數(shù)器是否計(jì)滿溢出和中斷情況,還可以設(shè)定兩個(gè)外部中斷的觸發(fā)方式、標(biāo)志外部中斷請(qǐng)求是否觸發(fā)。

TCON寄存器的各位功能介紹如下:

IT0:外部中斷0的觸發(fā)方式控制位。當(dāng)IT0=0時(shí),為電平觸發(fā)方式,低電平觸發(fā)有效;當(dāng)IT0=1時(shí), 為邊沿觸發(fā)方式,下降沿觸發(fā)有效。

IE0:外部中斷0的中斷請(qǐng)求標(biāo)志位。當(dāng)外部中斷0的觸發(fā)請(qǐng)求有效時(shí),硬件電路自動(dòng)將該位置1,否則清0。換句話說,當(dāng)IE0=1時(shí),表明外部中斷0正在向CPU申請(qǐng)中斷;當(dāng)IE0=0時(shí),則表明外部中斷0沒有向CPU申請(qǐng)中斷。當(dāng)CPU響應(yīng)該中斷后,由硬件自動(dòng)將該位清0,不需用專門的語句將該位清0。

IT1:外部中斷1的觸發(fā)方式控制位。當(dāng)IT1=0時(shí),為電平觸發(fā)方式,低電平觸發(fā)有效;當(dāng)IT1=1時(shí), 為邊沿觸發(fā)方式,下降沿觸發(fā)有效。

IE1:外部中斷1的中斷請(qǐng)求標(biāo)志位。當(dāng)外部中斷1的觸發(fā)請(qǐng)求有效時(shí),硬件電路自動(dòng)將該位置1,否則清0。換句話說,當(dāng)IE1=1時(shí),表明外部中斷1正在向CPU申請(qǐng)中斷;當(dāng)IE1=0時(shí),則表明外部中斷1沒有向CPU申請(qǐng)中斷。當(dāng)CPU響應(yīng)該中斷后,由硬件自動(dòng)將該位清0,不需用專門的語句將該位清0。

TR0:定時(shí)/計(jì)數(shù)器0(T0)的啟動(dòng)控制位。當(dāng)TR0=1時(shí),T0啟動(dòng)計(jì)數(shù);當(dāng)TR0=0時(shí),T0停止計(jì)數(shù);

TF0:定時(shí)/計(jì)數(shù)器0(T0)的溢出中斷標(biāo)志位。當(dāng)定時(shí)/計(jì)數(shù)器0計(jì)滿溢出時(shí),由硬件自動(dòng)將TF0置1,并向CPU發(fā)出中斷請(qǐng)求,當(dāng)CPU響應(yīng)該中斷進(jìn)入中斷服務(wù)程序后,由硬件自動(dòng)將該位清0,不需用專門的語句將該位清0。需要說明的是:如果使用定時(shí)/計(jì)數(shù)器的中斷功能,則該位完全不用人為操作,硬件電路會(huì)自動(dòng)將該位置1、清0,但是如果中斷被屏蔽,使用軟件查詢方式去處理該位時(shí),則需用專門語句將該位清0。

TR1:定時(shí)/計(jì)數(shù)器1(T1)的啟動(dòng)控制位。其功能及使用方法同TR0。

TF1:定時(shí)/計(jì)數(shù)器1(T1)的溢出中斷標(biāo)志位。其功能及使用方法同TF0。

 

中斷允許寄存器IE:中斷的允許或禁止是在中斷允許寄存器IE中設(shè)置的。IE也是一個(gè)可位尋址的8位特殊功能寄存器

中斷允許寄存器IE的各位功能定義說明如下:

EA:即Enable All的縮寫,全局中斷允許控制位。當(dāng)EA=0時(shí),則所有中斷均被禁止;當(dāng)EA=1時(shí),全局中斷允許打開,在此條件下,由各個(gè)中斷源的中斷控制位確定相應(yīng)的中斷允許或禁止。換言之,EA就是各種中斷源的總開關(guān)。

EX0:外部中斷0( )的中斷允許位。如果EX0置1,則允許外部中斷0中斷,否則禁止外部中斷0中斷。

ET0:定時(shí)/計(jì)數(shù)器0的中斷允許位。如果ET0置1,則允許定時(shí)/計(jì)數(shù)器0中斷,否則禁止定時(shí)/計(jì)數(shù)器0中斷。

EX1:外部中斷1( )的中斷允許位。如果EX1置1,則允許外部中斷1中斷,否則禁止外部中斷1中斷。

ET1:定時(shí)/計(jì)數(shù)器1的中斷允許位。如果ET1置1,則允許定時(shí)/計(jì)數(shù)器1中斷,否則禁止定時(shí)/計(jì)數(shù)器1中斷。

中斷優(yōu)先級(jí)寄存器IP: 中斷源,按優(yōu)先級(jí)分為兩級(jí)中斷:1級(jí)中斷即高級(jí)中斷,0級(jí)中斷即低級(jí)中斷。中斷源的優(yōu)先級(jí)需在中斷優(yōu)先級(jí)寄存器IP中設(shè)置。IP也是一個(gè)可位尋址的8位特殊功能寄存器。

PX0、PT0、PX1、PT1、PS分別為外部中斷0、定時(shí)/計(jì)數(shù)器0中斷、外部中斷1、定時(shí)/計(jì)

數(shù)器1中斷、串行口中斷的優(yōu)先級(jí)控制位。當(dāng)某位置1時(shí),則相應(yīng)的中斷就是高級(jí)中斷,

否則就是低級(jí)中斷。優(yōu)先級(jí)相同的中斷源同時(shí)提出中斷請(qǐng)求時(shí),CPU優(yōu)先響應(yīng)自然優(yōu)先級(jí)

較高的中斷。

中斷初始化和中斷服務(wù)程序結(jié)構(gòu)

中斷初始化實(shí)質(zhì)上就是對(duì)4個(gè)與中斷有關(guān)的特殊功能寄存器TCON、SCON、IE和IP進(jìn)行管理和控制,具體實(shí)施如下:

① CPU的開、關(guān)中斷(即全局中斷允許控制位的打開與關(guān)閉,EA=1或EA=0);

② 具體中斷源中斷請(qǐng)求的允許和禁止(屏蔽);

③ 各中斷源優(yōu)先級(jí)別的控制;

④ 外部中斷請(qǐng)求觸發(fā)方式的設(shè)定。

中斷管理和控制(中斷初始化)程序一般都包含在主函數(shù)中,也可單獨(dú)寫成一個(gè)初始化函數(shù),根據(jù)需要通常只需幾條賦值語句即可完成。中斷服務(wù)程序是一種具有特定功能的獨(dú)立程序段,往往寫成一個(gè)獨(dú)立函數(shù),函數(shù)內(nèi)容可根據(jù)中斷源的要求進(jìn)行編寫。

C51的中斷服務(wù)程序(函數(shù))的格式如下:

void 中斷處理函數(shù)名()interrupt中斷序號(hào)

{

                    中斷函數(shù)處理內(nèi)容;

}

51單片機(jī)的5個(gè)中斷源的中斷序號(hào)、默認(rèn)優(yōu)先級(jí)別、對(duì)應(yīng)的中斷服務(wù)程序的入口地址

中斷源名稱

中斷序號(hào)

默認(rèn)優(yōu)先級(jí)別

中斷服務(wù)程序入口地址

外部中斷0( )

0

最高

0003H

定時(shí)/計(jì)數(shù)器0中斷

1

第2

000BH

外部中斷1( )

2

第3

0013H

定時(shí)/計(jì)數(shù)器1中斷

3

第4

001BH

串行口中斷

4

第5

0023H

 

 

實(shí)踐部分

中斷實(shí)驗(yàn)

代碼:

#include

#define uint unsigned int

#define uchar unsigned char

sbit dula=P2^6;

sbit wela=P2^7;

sbit d1=P1^0;

uchar num;

uchar code table[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

void delay(uint z);

void main()

{

                    EA=1;//開總中斷

                    EX0=1;//開外部中斷0

                    //IT0=1;

                    TCON=0x01;

                    wela=1;//11101010

                    P0=0xea;

                    wela=0;

                    while(1)

                    {

                     for(num=0;num<16;num++)

                         {

                            d1=1;

                            dula=1;

                            P0=table[num];

                            dula=0;

                            delay(1000); 

                         }

                    }

}

 

void delay(uint z)

{

                    uintx,y;

                    for(x=z;x>0;x--)

                     for(y=110;y>0;y--); 

}

 

void exter0() interrupt 0

{

                    d1=0;  

}

實(shí)驗(yàn)現(xiàn)象:

單片機(jī)LED顯示屏顯示數(shù)字從1顯示到16(十六進(jìn)制),當(dāng)把P3^2和GND接通時(shí),D1亮起,斷開D1熄滅。


路過

雞蛋

鮮花

握手

雷人

評(píng)論 (0 個(gè)評(píng)論)

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

返回頂部