0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

認(rèn)識(shí)80S51的中斷

冬至子 ? 來(lái)源:華維單片機(jī)編程 ? 作者:華維 ? 2023-06-06 11:36 ? 次閱讀

中斷(interrupt)是CPU在執(zhí)行程序時(shí),對(duì)系統(tǒng)發(fā)生的某個(gè)事件(程序自身或外界的原因)作出的一種反應(yīng),暫時(shí)放下目前所執(zhí)行的程序,先去執(zhí)行特定的程序,待完成特定的程序后,再返回執(zhí)行剛才放下的程序。比如用戶按下按鈕,程序必須及時(shí)處理用戶的按鈕請(qǐng)求,然后再返回來(lái)繼續(xù)執(zhí)行。

圖片

比如,老師正在講課,而同學(xué)有疑問(wèn),隨時(shí)都可以舉手發(fā)問(wèn),老師將立即暫停講課,為同學(xué)解惑,再繼續(xù)剛才暫停的課程,這樣的動(dòng)作就是中斷。

中斷源

中斷源(中斷請(qǐng)求源):能夠向CPU發(fā)出中斷申請(qǐng)的部件。

8051提供5個(gè)中斷服務(wù)(中斷源):外部中斷(INT0、INT1),定時(shí)器中斷/計(jì)數(shù)器中斷(TF0、TF1),串行口中斷UART(RI/TI)。

8052提供6個(gè)中斷服務(wù)(中斷源),除了包含8051提供的5個(gè)中斷外,還包括第三個(gè)定時(shí)器/計(jì)數(shù)器(Timer2)的中斷。

MCS-51的中斷

圖片

圖片

外部中斷

外部中斷INT0/INT1,CPU通過(guò)12引腳(即P3.2)及13腳(即P3.3)來(lái)接收外部中斷的請(qǐng)求。

外部中斷信號(hào)的采樣方式可分為電平觸發(fā)(低電平觸發(fā))及邊緣觸發(fā)(負(fù)邊緣觸發(fā),即時(shí)鐘信號(hào)由高轉(zhuǎn)低時(shí)觸發(fā))兩種。

若要采用電平觸發(fā),需要將TCON寄存器中的IT0(或IT1)設(shè)定為0,則只要P3.2引腳(或P3.3引腳)為低電平,即視為外部中斷需求。

若要采用邊緣觸發(fā)需要將TCON寄存器中的IT0(或IT1)設(shè)定為1,則只需要P3.2引腳(或P3.3引腳)的信號(hào)由高電平轉(zhuǎn)為低電平,即視為外部中斷需求。

這些中斷需求將反應(yīng)在IE0(或IE1)里,若IE寄存器的EX0(或EX1)=1,且EA=1,CPU將進(jìn)入該中斷的服務(wù)。

至于中斷的優(yōu)先級(jí)寄存器(IP寄存器),只是安排多個(gè)中斷發(fā)生時(shí)中斷服務(wù)執(zhí)行的順序而已,若只有一個(gè)中斷,將不會(huì)有所影響。

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

定時(shí)器/計(jì)數(shù)器中斷有TF0和TF1兩個(gè)(8052多一個(gè):TF2)。若是定時(shí)器,CPU將對(duì)內(nèi)部的時(shí)鐘脈沖計(jì)數(shù),而提出內(nèi)部中斷;若是計(jì)數(shù)器,CPU將對(duì)外部的脈沖計(jì)數(shù),而提出內(nèi)部中斷。至于外部脈沖的輸入,則是通過(guò)T0引腳(即14腳,也就是P3.4)及T1引腳(即15腳,也就是P3.5)

串行口中斷

串行口中斷(UART)有RI或TI兩個(gè),CPU通過(guò)RXD引腳(即10引腳,也就是P3.0)及TXD引腳(即11腳,也就是P3.1)要求接收(RI)中斷需求或傳送(TI)中斷需求。

相關(guān)寄存器

在前面的[MCS-51中斷系統(tǒng)圖]中,我們可將中斷啟用寄存器(IE寄存器)看作中斷功能的開(kāi)關(guān),中斷優(yōu)先級(jí)寄存器(IP寄存器)是判斷各中斷優(yōu)先級(jí)的開(kāi)關(guān)。而實(shí)際上,IE寄存器、IP寄存器、TCON寄存器都是一個(gè)8位的可尋址寄存器,如下圖

圖片

中斷優(yōu)先級(jí)

若沒(méi)有在IP寄存器里設(shè)定優(yōu)先級(jí),則中斷的優(yōu)先級(jí)為:

INT0 >TF0>INT1>TF1>RI/TI。

若設(shè)定了優(yōu)先級(jí):

假設(shè)TF1=1,則中斷優(yōu)先級(jí)應(yīng)為:

TF1>INT0 >TF0>INT1> RI/TI;

假設(shè)TF0 =1,INT1=1,則中斷優(yōu)先級(jí)應(yīng)為:TF0>INT1>INT0 > TF1>RI/TI。

定時(shí)器/計(jì)數(shù)器控制寄存器TCON里,有部分設(shè)定與外部中斷信號(hào)的采樣有關(guān)。其中IT0與IT1分別為INT0與INT1的采樣信號(hào)設(shè)置位:

若設(shè)置為1,則是采用下降沿觸發(fā)信號(hào);

若設(shè)置為0,則是采用低電平觸發(fā)。

IE0與IE1是由CPU所操作的中斷標(biāo)志位,當(dāng)中斷發(fā)生時(shí)將被設(shè)定為1,結(jié)束中斷時(shí),恢復(fù)為0。

中斷的應(yīng)用

中斷的設(shè)定包括開(kāi)啟中斷開(kāi)關(guān)(IE寄存器的設(shè)定)、中斷優(yōu)先級(jí)的設(shè)定(IP寄存器的設(shè)定)、中斷信號(hào)的設(shè)定(TCON寄存器的設(shè)定)等。

在程序中設(shè)定中斷命令:

IE=0x81  //即1000 0001,對(duì)照前面IE寄存器圖片可得EA=1,EX0=1,即啟用INT0中斷
IE=0x84  //啟用INT1中斷
IE=0x85  //啟動(dòng)INT0、INT1中斷
IP=0x04  //設(shè)置INT1中斷具有最高優(yōu)先級(jí)
TCON=0x8  //設(shè)定INT1采用下降沿觸發(fā)

中斷程序格式:void +函數(shù)名+interrupt +數(shù)字0~4,其中0—4分別表示

0:外部中斷INT0

1:定時(shí)器/計(jì)數(shù)器TF0

2:外部中斷INT1

3:定時(shí)器/計(jì)數(shù)器TF1

4:串行口TI/RI

如:void my_INT (void) interrupt 0

{

......//中斷子程序邏輯代碼

}

舉例:12引腳(即P3.2)接入按鈕,當(dāng)在主程序運(yùn)行過(guò)程中,按下這個(gè)按鈕,程序就會(huì)進(jìn)入中斷子程序,執(zhí)行子程序的邏輯,中斷子程序執(zhí)行完,再進(jìn)入主程序繼續(xù)執(zhí)行。

//主程序:
void main()
{
   IE=0x81 // 啟用INT0中斷
   TCON=0x01  //設(shè)置INT0 為下降沿觸發(fā)
   ......
   While(1)
   {
     ......
   }
}
//中斷子程序 使用INT0外部中斷
void int0_test(void) interrupt 0
{
  ......//中斷程序邏輯代碼
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 計(jì)數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2241

    瀏覽量

    93979
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3218

    瀏覽量

    113697
  • UART接口
    +關(guān)注

    關(guān)注

    0

    文章

    124

    瀏覽量

    15199
  • 外部中斷
    +關(guān)注

    關(guān)注

    1

    文章

    131

    瀏覽量

    15739
  • 8051芯片
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    5644
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    80S51的IO該如何利用晶體管驅(qū)動(dòng)外圍設(shè)備?

    80S51的IO該如何利用晶體管驅(qū)動(dòng)外圍設(shè)備? 80C51單片機(jī)的P1、P2、P3都是準(zhǔn)雙向IO,P0是開(kāi)漏IO。對(duì)開(kāi)漏IO來(lái)說(shuō),外接上拉電阻后,特性與準(zhǔn)雙向IO類似。準(zhǔn)雙向IO的特點(diǎn)是,高電平
    發(fā)表于 08-17 21:33

    80s51入門推薦圖書(shū)

    80s51入門推薦圖書(shū)
    發(fā)表于 08-17 21:42

    80c5180s51不是原創(chuàng)請(qǐng)擔(dān)待

     51單片機(jī)S系列與C系列區(qū)別  兩者主要的區(qū)別是AT89S51支持ISP(In System Programming,即“在線可編程”)。而AT89C51無(wú)此功能。  以下描述更加詳
    發(fā)表于 12-20 12:58

    80C51中斷系統(tǒng)結(jié)構(gòu)

    80C51中斷系統(tǒng)1.1 80C51中斷系統(tǒng)結(jié)構(gòu)一、中斷的概念CPU在處理某一事件A時(shí),發(fā)生了另一事件B,請(qǐng)求CPU迅速去處理(
    發(fā)表于 07-22 08:54

    有關(guān)80C51中斷系統(tǒng)的基本知識(shí)匯總

    什么是中斷?80C51中斷系統(tǒng)結(jié)構(gòu)是由哪些部分組成的?80C51單片機(jī)的中斷優(yōu)先級(jí)有哪幾條原則?
    發(fā)表于 08-24 06:34

    80C31BH, 80C51BH,80C51BHP, 87C

    Characterized errata that may cause the 80C31BH, 80C51BH,80C51BHP, 87C51
    發(fā)表于 06-24 09:53 ?25次下載

    80C51中斷系統(tǒng)的結(jié)構(gòu)

    80C51中斷系統(tǒng)的結(jié)構(gòu)
    發(fā)表于 09-20 09:24 ?15次下載
    <b class='flag-5'>80C51</b><b class='flag-5'>中斷</b>系統(tǒng)的結(jié)構(gòu)

    如何實(shí)現(xiàn)80C51單片機(jī)對(duì)外中斷功能的控制問(wèn)題詳細(xì)資料概述

    分析了80C51單片機(jī)的2個(gè)對(duì)外中斷入口—INT0—lNT1和 而的結(jié)構(gòu)、功能。討論了通過(guò)控制機(jī)構(gòu)的合理設(shè)置、編程,實(shí)現(xiàn)單片機(jī)對(duì)外中斷功能的控制問(wèn)題。
    發(fā)表于 09-25 17:03 ?3次下載
    如何實(shí)現(xiàn)<b class='flag-5'>80C51</b>單片機(jī)對(duì)外<b class='flag-5'>中斷</b>功能的控制問(wèn)題詳細(xì)資料概述

    單片機(jī)教程之80C51中斷系統(tǒng)及定時(shí)和計(jì)數(shù)器的詳細(xì)資料概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是單片機(jī)教程之80C51中斷系統(tǒng)及定時(shí)和計(jì)數(shù)器的詳細(xì)資料概述主要內(nèi)容包括了:1、80C51單片機(jī)的中斷系統(tǒng) 2、80C5
    發(fā)表于 11-13 19:05 ?9次下載
    單片機(jī)教程之<b class='flag-5'>80C51</b>的<b class='flag-5'>中斷</b>系統(tǒng)及定時(shí)和計(jì)數(shù)器的詳細(xì)資料概述

    51單片機(jī)的中斷優(yōu)先級(jí)和中斷嵌套的詳細(xì)資料概述

    基本型80C51系列單片機(jī)有5個(gè)中斷源,2個(gè)優(yōu)先級(jí),每個(gè)中斷源可通過(guò)軟件設(shè)置為高優(yōu)先級(jí)或低優(yōu)先級(jí)中斷,可以實(shí)現(xiàn)二級(jí)中斷服務(wù)嵌套。
    發(fā)表于 09-03 17:28 ?5次下載
    <b class='flag-5'>51</b>單片機(jī)的<b class='flag-5'>中斷</b>優(yōu)先級(jí)和<b class='flag-5'>中斷</b>嵌套的詳細(xì)資料概述

    80C51單片機(jī)的中斷系統(tǒng)和系統(tǒng)結(jié)構(gòu)的詳細(xì)資料說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是80C51單片機(jī)的中斷系統(tǒng)和系統(tǒng)結(jié)構(gòu)的詳細(xì)資料說(shuō)明。
    發(fā)表于 07-25 17:36 ?2次下載
    <b class='flag-5'>80C51</b>單片機(jī)的<b class='flag-5'>中斷</b>系統(tǒng)和系統(tǒng)結(jié)構(gòu)的詳細(xì)資料說(shuō)明

    AT89S51單片機(jī)擴(kuò)充外部中斷源系統(tǒng)的設(shè)計(jì)

    如下圖所示,若系統(tǒng)中有5個(gè)外部中斷請(qǐng)求源IR0~I(xiàn)R4,它們均為高電平請(qǐng)求有效,這時(shí)可按中斷請(qǐng)求的輕重緩急進(jìn)行排隊(duì),把其中最高級(jí)別的中斷請(qǐng)求源IR0直接接到AT89S51的一個(gè)外部
    發(fā)表于 06-18 15:48 ?2794次閱讀
    AT89<b class='flag-5'>S51</b>單片機(jī)擴(kuò)充外部<b class='flag-5'>中斷</b>源系統(tǒng)的設(shè)計(jì)

    基于51單片機(jī)的外部中斷設(shè)計(jì)

    基于51單片機(jī)的外部中斷(嵌套)選用芯片AT89S52/***********************************************************此中斷函數(shù)
    發(fā)表于 11-20 18:06 ?10次下載
    基于<b class='flag-5'>51</b>單片機(jī)的外部<b class='flag-5'>中斷</b>設(shè)計(jì)

    80C51中斷系統(tǒng)

    80C51中斷系統(tǒng)1.1 80C51中斷系統(tǒng)結(jié)構(gòu)一、中斷的概念 CPU在處理某一事件A時(shí),發(fā)生了另一事件B,請(qǐng)求CPU迅速去處理(
    發(fā)表于 11-22 13:06 ?23次下載
    <b class='flag-5'>80C51</b>的<b class='flag-5'>中斷</b>系統(tǒng)

    80c51是幾位單片機(jī) 80c51單片機(jī)有幾個(gè)中斷

    80C51是一種8位微處理器,也被稱為8051,由Intel公司推出。它是最早的商用單片機(jī)之一,由于它的簡(jiǎn)單易用、靈活可靠,被廣泛應(yīng)用于許多嵌入式系統(tǒng)中。在80C51系列中,最常見(jiàn)的型號(hào)包括AT89C51和AT89
    發(fā)表于 03-31 18:21 ?6205次閱讀