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

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

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

MCS-51單片機外部中斷詳解

CHANBAEK ? 來源:透析之眼 ? 作者:AdamChen ? 2023-11-01 17:48 ? 次閱讀

CPU在執(zhí)行的過程中,一般來說都是在執(zhí)行主程序(main函數(shù)里面的代碼)。如果希望處理其他的功能,可以通過查詢的方式進行,判斷是否需要處理或者通過中斷的方式,進入中斷服務(wù)函數(shù)程序里面執(zhí)行。

前者是在主程序中判斷條件是否成立,如果成立則執(zhí)行其他功能,否則不執(zhí)行;后者是CPU在執(zhí)行過程中,判斷是否有中斷標志位,響應(yīng)中斷進入中斷服務(wù)函數(shù),執(zhí)行相關(guān)功能。

MCS-51 單片機中,有兩個外部中斷(INT0與INT1),中斷有兩種方式低電平觸發(fā)與負跳變(下降沿)觸發(fā)。

下面通過講INT0說明外部中斷,INT1同理。

原理圖:

P0連接8個LED,INT0引腳連接一個按鈕連接到地。

圖片

在中斷系統(tǒng)中,INT0設(shè)計的寄存器中有IE、IP、TCON,在C51規(guī)定特殊寄存器的地址為8的倍數(shù)均可以位尋址。IE寄存器地址為:0xA8;IP寄存器地址為0xB8;TCON寄存器地址為0x88;因此它們可以被位尋址。

以下是它們的位定義。

/*  TCON  */
sbit TF1   = TCON^7;
sbit TR1   = TCON^6;
sbit TF0   = TCON^5;
sbit TR0   = TCON^4;
sbit IE1   = TCON^3;
sbit IT1   = TCON^2;
sbit IE0   = TCON^1;
sbit IT0   = TCON^0;


/*  IE  */
sbit EA    = IE^7;
sbit ET2   = IE^5; //8052 only
sbit ES    = IE^4;
sbit ET1   = IE^3;
sbit EX1   = IE^2;
sbit ET0   = IE^1;
sbit EX0   = IE^0;


/*  IP  */
sbit PT2   = IP^5;
sbit PS    = IP^4;
sbit PT1   = IP^3;
sbit PX1   = IP^2;
sbit PT0   = IP^1;
sbit PX0   = IP^0;

如果需要使用外部中斷,需要滿足以下條件

1)中斷中允許設(shè)置(置1)EA = 1;

2)中斷源允許設(shè)置(置1)Ex0 = 1;

3)中斷觸發(fā)方式設(shè)置(置1或置0) IT0 =1 或者 IT0 = 0;

4)中斷服務(wù)函數(shù)

圖片

代碼實現(xiàn)

#include "reg52.h"
#include "stdio.h"


void main(){
   IT0 = 1;
   EA = 1;
   EX0 = 1;
   while(1){};


}


void irq0(void) interrupt  0
{
    P0=~P0;
}

注:由于IT0 =1;設(shè)置中斷觸發(fā)方式為負跳變(下降沿),CPU相應(yīng)中斷后清除中斷標志位。而由于IT0 =0;設(shè)置中斷觸發(fā)方式為低電平觸發(fā),CPU相應(yīng)中斷后不會清除中斷標志位。

在上面的中斷服務(wù)功能中表現(xiàn),按一下LED燈亮,再按一次LED燈滅;

如果將IT0設(shè)置為0,則按下時LED會閃爍。因為中斷標志位沒有清除,不斷進入中斷服務(wù)函數(shù)。

如果需要設(shè)置外部中斷1,負跳變觸發(fā)。只需要改上面代碼的三條語句即可。

IT0 = 1; ---- >  IT1 = 1;
 
  EX0 = 1;  ---- >  EX1 = 1;

   
void irq0(void) interrupt  0   -- >  修改終端號,將0 修改為2;


void irq0(void) interrupt  2    ---- >函數(shù)名irq0,可根據(jù)需要修改或不改
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6040

    文章

    44594

    瀏覽量

    636943
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5359

    瀏覽量

    120812
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10890

    瀏覽量

    212420
  • 51單片機
    +關(guān)注

    關(guān)注

    274

    文章

    5705

    瀏覽量

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

    關(guān)注

    1

    文章

    132

    瀏覽量

    15843
收藏 人收藏

    評論

    相關(guān)推薦

    MCS-51單片機基本原理

    MCS-51單片機基本原理[學(xué)習(xí)要求] 掌握MCS-51單片機的基本概念和基本原理。[重點與難點]重點:單片機的基本原理與內(nèi)部結(jié)構(gòu)。難點:
    發(fā)表于 03-19 16:39

    新編MCS-51單片機應(yīng)用設(shè)計

    新編MCS-51單片機應(yīng)用設(shè)計
    發(fā)表于 03-21 22:03 ?576次下載

    mcs-51單片機應(yīng)用教程

    mcs-51單片機應(yīng)用教程以MCS-51系列單片機為主線,從實用的角度出發(fā),通過介紹大量單片機技能訓(xùn)練實例和應(yīng)用實例,指導(dǎo)讀者學(xué)習(xí)和使用
    發(fā)表于 10-28 16:21 ?77次下載
    <b class='flag-5'>mcs-51</b><b class='flag-5'>單片機</b>應(yīng)用教程

    MCS-51單片機系統(tǒng)擴展技術(shù)

    1 MCS-51單片機系統(tǒng)擴展的基本概念2 程序存儲器擴展技術(shù)3 數(shù)據(jù)存儲器擴展4 輸入/輸出口擴展技術(shù)MCS-51單片機系統(tǒng)擴展的基本概念1.1
    發(fā)表于 12-01 14:39 ?66次下載
    <b class='flag-5'>MCS-51</b><b class='flag-5'>單片機</b>系統(tǒng)擴展技術(shù)

    MCS-51 單片機基本原理

    [學(xué)習(xí)要求] 掌握MCS-51單片機的基本概念和基本原理。[重點與難點]重點:單片機的基本原理與內(nèi)部結(jié)構(gòu)。難點:MCS-51單片機存儲器結(jié)構(gòu)
    發(fā)表于 03-18 22:05 ?67次下載

    MCS-51 外部中斷方案的改進

    MCS-51 外部中斷方案的改進
    發(fā)表于 05-15 13:43 ?4次下載

    MCS-51單片機硬件結(jié)構(gòu)

    教學(xué)內(nèi)容:2.1  MCS-51單片機的基本結(jié)構(gòu)2.2  MCS-51單片機的引腳及片外總線結(jié)構(gòu)教學(xué)方法:  講授法教學(xué)目的1、理解
    發(fā)表于 07-07 15:43 ?38次下載

    MCS-51單片機系統(tǒng)結(jié)構(gòu)

    2.1  MCS-51單片機的外特性2.2  MCS-51單片機內(nèi)部結(jié)構(gòu)2.3  CPU及復(fù)位電路2.4  IO端口2.5 
    發(fā)表于 08-12 11:33 ?46次下載

    MCS-51單片機詳解

    MCS-51是美國Intel公司的八位高檔單片機系列,是在MCS-48系列基礎(chǔ)上發(fā)展而成的,也是我國目前應(yīng)用最廣的一種單片機系列。在這個系列里,有8031、8051、8751、80C
    發(fā)表于 09-13 07:06 ?66次下載

    MCS-51單片機中斷軟件編程

    MCS-51單片機中斷軟件編程 MCS-51單片機有多個中斷源,以8051為例,有5個
    發(fā)表于 03-06 10:08 ?1328次閱讀
    <b class='flag-5'>MCS-51</b><b class='flag-5'>單片機</b>外<b class='flag-5'>中斷</b>軟件編程

    MCS-51單片機應(yīng)用設(shè)計

    本書從應(yīng)用的角度,詳細地介紹了MCS-51單片機的硬件結(jié)構(gòu)、指令系統(tǒng)、各種硬件接口設(shè)計、各種常用的數(shù)據(jù)運算和處理程序及接口驅(qū)動程序的設(shè)計以及MCS-51單片機應(yīng)用系統(tǒng)的設(shè)計,并對
    發(fā)表于 10-28 10:06 ?84次下載
    <b class='flag-5'>MCS-51</b><b class='flag-5'>單片機</b>應(yīng)用設(shè)計

    MCS-51單片機應(yīng)用系統(tǒng)

    MCS-51單片機應(yīng)用系統(tǒng)詳解,感興趣的可以下載看看。
    發(fā)表于 11-06 18:19 ?2次下載

    MCS-51單片機的結(jié)構(gòu)和原理

    MCS-51單片機的結(jié)構(gòu)和原理
    發(fā)表于 12-11 23:41 ?0次下載

    一文詳解MCS-51單片機中斷系統(tǒng)

    一文詳解MCS-51單片機中斷系統(tǒng),具體的跟隨小編來了解一下。
    的頭像 發(fā)表于 07-28 11:26 ?1.3w次閱讀
    一文<b class='flag-5'>詳解</b><b class='flag-5'>MCS-51</b><b class='flag-5'>單片機</b>的<b class='flag-5'>中斷</b>系統(tǒng)

    MCS-51單片機應(yīng)用設(shè)計

    MCS-51單片機應(yīng)用設(shè)計說明。
    發(fā)表于 05-24 14:27 ?48次下載