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

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

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

STC8A8K64S4A12系列單片機(jī)中斷原理詳解

CHANBAEK ? 來源:百家號(hào)電子友人號(hào) ? 作者:百家號(hào)電子友人號(hào) ? 2023-11-15 17:10 ? 次閱讀

前言

今天來說說單片機(jī)中斷原理,概念搞清楚很重要!

一、關(guān)于中斷的一些概念

  1. 中斷的概念:當(dāng)CPU正在處理某件事的時(shí)候外界發(fā)生了緊急事件請(qǐng)求,要求CPU暫停當(dāng)前的工作,轉(zhuǎn)而去處理這個(gè)緊急事件,處理完以后,再回到原來被中斷的地方,繼續(xù)原來的工作,這樣的過程稱之為中斷。
  2. 中斷系統(tǒng):實(shí)現(xiàn)中斷功能的部件稱為中斷系統(tǒng),中斷系統(tǒng)是為CPU具有對(duì)外界緊急事件的實(shí)時(shí)處理能力而設(shè)置的。
  3. 中斷請(qǐng)求源:請(qǐng)示CPU中斷的請(qǐng)求源即為中斷請(qǐng)求源,簡(jiǎn)稱中斷源。
  4. 中斷優(yōu)先級(jí):中斷系統(tǒng)一般允許多個(gè)中斷源,當(dāng)幾個(gè)中斷源同時(shí)向CPU請(qǐng)求中斷,那就誕生一個(gè)優(yōu)先處理哪個(gè)中斷源的問題,這樣中斷優(yōu)先級(jí)便產(chǎn)生了。
  5. 中斷嵌套:CPU按照中斷源的中斷優(yōu)先級(jí)處理一個(gè)低優(yōu)先級(jí)中斷的時(shí)候,假如有另外一個(gè)更高優(yōu)先級(jí)的中斷源發(fā)出中斷請(qǐng)求,那CPU需要暫停原來中斷源的服務(wù)程序,轉(zhuǎn)而去處理更高優(yōu)先級(jí)的中斷源,待處理結(jié)束后,再回到原低優(yōu)先級(jí)的中斷服務(wù)程序,這個(gè)過程就是中斷嵌套。

二、STC8A8K64S4A12系列的中斷請(qǐng)求源

■ STC8A8K64S4A12系列單片機(jī)有22個(gè)中斷請(qǐng)求源。具體如下:

  • 5個(gè)外部中斷:外部中斷0/INT0、外部中斷1/INT1、外部中斷2/INT2、外部中斷3/INT3、外部中斷4/INT4 。
  • 5個(gè)定時(shí)器中斷:定時(shí)器0中斷、定時(shí)器1中斷、定時(shí)器2中斷、定時(shí)器3中斷、定時(shí)器4中斷 。
  • 4個(gè)串口中斷:串口1中斷、串口2中斷、串口3中斷、串口4中斷 。
  • 1個(gè)A/D轉(zhuǎn)換中斷。
  • 1個(gè)低壓檢測(cè)(LVD)中斷。
  • 1個(gè)CCP/PWM/PCA中斷。
  • 1個(gè)SPI中斷。
  • 1個(gè)比較器中斷。
  • 1個(gè)PWM中斷。
  • 1個(gè)PWM異常檢測(cè)中斷。
  • 1個(gè)I2C中斷。

■ 比較常用的中斷是:外部引腳中斷、定時(shí)器中斷、串行口(UART)中斷。
■ 在講到每一部分知識(shí)時(shí),我們都會(huì)詳細(xì)講解相關(guān)的中斷使用原理。
■ 下圖是STC8A8K64S4A12系列的中斷結(jié)構(gòu)圖,大家需要了解的是:

  • 所有中斷使能的話都必須有個(gè)“總閘”控制,那就是總中斷允許位EA。
  • 有多個(gè)中斷一起觸發(fā)時(shí),如何仲裁以保證有序的先后執(zhí)行順序,那就存在中斷優(yōu)先級(jí)的問題。
  • 關(guān)于中斷,有個(gè)不可回避的概念,那就是中斷向量。

三、關(guān)于中斷的一些概念STC8A8K64S4A12系列的中斷結(jié)構(gòu)圖

四、STC8A8K64S4A12系列的中斷優(yōu)先級(jí)

STC8A8K64S4A12系列單片機(jī)自然優(yōu)先級(jí):手冊(cè)里面稱之為輔助優(yōu)先級(jí)結(jié)構(gòu)或者內(nèi)部的查詢次序。如下圖。

C語(yǔ)言編程時(shí),中斷查詢次序號(hào)就是中斷號(hào),例如,針對(duì)外部中斷0的中斷服務(wù)函數(shù):

void INT0_Isr (void) interrupt  0
         {
               ;   //添加中斷處理語(yǔ)句
           }	


STC8A8K64S4A12系列單片機(jī)中斷優(yōu)先級(jí)的設(shè)置: STC8A8K64S4A12系列單片機(jī)通過設(shè)置特殊功能寄存器(IP、IPH、IP2和IP2H)中的相應(yīng)位,對(duì)有4個(gè)優(yōu)先級(jí)中斷的中斷請(qǐng)求源進(jìn)行編程。

僅有1個(gè)中斷優(yōu)先級(jí)(最低優(yōu)先級(jí)0)的是:外部中斷2/INT2、外部中斷3/INT3、定時(shí)器2、定時(shí)器3、定時(shí)器4、串行口3、串行口4。(共7個(gè))

STC8A8K64S4A12系列IP和IPH寄存器各位含義介紹如下:

STC8A8K64S4A12系列IP2和IP2H寄存器各位含義介紹如下:

STC8A8K64S4A12系列單片機(jī)中斷嵌套: 中斷優(yōu)先級(jí)高的中斷請(qǐng)求可以中斷CPU正在處理的優(yōu)先級(jí)低的中斷服務(wù)程序,待完成了中斷優(yōu)先級(jí)高的中斷服務(wù)程序后,再繼續(xù)被打斷的低優(yōu)先級(jí)的中斷服務(wù)程序。

下圖描述了主程序和中斷服務(wù)程序的示意圖,也詮釋了中斷嵌套的含義。

中斷比喻舉例,以下情形:

  • 只有排長(zhǎng)或者團(tuán)長(zhǎng)給士兵打電話;
  • 排長(zhǎng)和團(tuán)長(zhǎng)同時(shí)給士兵打電話;
  • 士兵已在排長(zhǎng)地里接到團(tuán)長(zhǎng)電話;
  • 士兵已在團(tuán)長(zhǎng)地里接到排長(zhǎng)電話;
  • 士兵同時(shí)接到兩個(gè)排長(zhǎng)的電話;
  • 士兵同時(shí)接到兩個(gè)團(tuán)長(zhǎng)的電話。

STC8A8K64S4A12系列單片機(jī)中斷產(chǎn)生而且被CPU響應(yīng),主程序被中斷,接下來將執(zhí)行如下操作:

  • 當(dāng)前正被執(zhí)行的指令全部執(zhí)行完畢。
  • PC值被壓入棧。
  • 現(xiàn)場(chǎng)保護(hù)。
  • 阻止同級(jí)別或更低級(jí)別其他中斷。
  • 將中斷向量地址裝載到程序計(jì)數(shù)器PC。
  • 執(zhí)行響應(yīng)的中斷服務(wù)程序。

中斷向量:當(dāng)某中斷被響應(yīng)時(shí),被裝載到程序計(jì)數(shù)器PC的數(shù)值稱為中斷向量,是該中斷源相對(duì)應(yīng)的中斷服務(wù)程序的起始地址。具體各中斷源服務(wù)程序的入口地址就不一一列舉了。

總結(jié)

不知道說的夠不夠清楚,望大家指正!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6023

    文章

    44376

    瀏覽量

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

    關(guān)注

    68

    文章

    10699

    瀏覽量

    209352
  • 計(jì)數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2241

    瀏覽量

    93970
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    889

    瀏覽量

    41219
  • 中斷系統(tǒng)
    +關(guān)注

    關(guān)注

    1

    文章

    96

    瀏覽量

    60971
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STC8A8K64S4A12系列單片機(jī)DAC數(shù)模轉(zhuǎn)換器講解

      今天介紹下STC8A8K64S4A12系列單片機(jī)DAC數(shù)模轉(zhuǎn)換原理及RC積分電路原理,掌握掌握STC8A8K64S4A12系列
    的頭像 發(fā)表于 11-17 16:38 ?2070次閱讀
    <b class='flag-5'>STC8A8K64S4A12</b><b class='flag-5'>系列</b><b class='flag-5'>單片機(jī)</b>DAC數(shù)模轉(zhuǎn)換器講解

    STC8A8K64S4A12串口通信

    宏晶 的51單片機(jī)STC8A8K64S4A12想用r422的串口通信方式,誰(shuí)能發(fā)個(gè)原理圖,r422芯片是TI的65HVD33。
    發(fā)表于 03-09 15:48

    STC8A8K64S4A12開發(fā)板學(xué)習(xí)資料

    `STC8A8K64S4A12系列單片機(jī)是宏晶公司(STC)2016年推出的寬電壓工作范圍的1T單片機(jī),該
    發(fā)表于 01-06 10:25

    淺析STC8A8K64S4A12開發(fā)板

    版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上原文出處鏈接。文章目錄前言一、STC8A8K64S4A12系列單片機(jī)介紹二、STC8A8K64S4A12開發(fā)板概述三、
    發(fā)表于 07-19 09:24

    如何對(duì)基于STC8A8K64S4A12單片機(jī)的ADC進(jìn)行檢測(cè)

    STC8系列單片機(jī)有哪些優(yōu)點(diǎn)?與ADC相關(guān)的寄存器有哪些?如何對(duì)基于STC8A8K64S4A12單片機(jī)的ADC進(jìn)行檢測(cè)?
    發(fā)表于 08-03 07:30

    基于STC8A8K64S4A12智能車設(shè)計(jì)資料分享

    智能車進(jìn)階版文章目錄基于STC8A8K64S4A12智能車設(shè)計(jì)一、板載外設(shè)二、功能三、實(shí)物:四、代碼五、PCB和元件六、焊接基于STC8A8K64S4A12智能車設(shè)計(jì)一、板載外設(shè)1.1 紅外接收頭
    發(fā)表于 02-16 06:43

    STC8A8K64S4A12的命名規(guī)則是什么

    STC8A8K64S4A12的命名規(guī)則STC8 -- STC8系列A -- 子系列中的
    發(fā)表于 02-18 07:32

    如何使用STC8A8K64S4A12單片機(jī)實(shí)現(xiàn)簡(jiǎn)單的LED燈閃爍

    前幾日,使用STC8A8K64S4A12單片機(jī)寫了一個(gè)簡(jiǎn)單的LED燈閃爍,是在庫(kù)函數(shù)里直接寫的,生成的HEX有100多K,下載進(jìn)入板子,本來設(shè)置的1秒延時(shí)突然變的有20秒的樣子,檢查一天都沒有結(jié)果
    發(fā)表于 02-18 07:17

    STC8A8K64S4A12單片機(jī)怎么能掉電后保存數(shù)據(jù)?

    STC8A8K64S4A12單片機(jī)怎么才能做到掉電后把數(shù)據(jù)寫到EEPROM通過哪些功能實(shí)現(xiàn)
    發(fā)表于 10-08 08:00

    使用STC8A8K64S4A12單片機(jī)掉電喚醒定時(shí)器應(yīng)用的實(shí)例

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用STC8A8K64S4A12單片機(jī)掉電喚醒定時(shí)器應(yīng)用的實(shí)例。
    發(fā)表于 01-28 08:00 ?24次下載
    使用<b class='flag-5'>STC8A8K64S4A12</b><b class='flag-5'>單片機(jī)</b>掉電喚醒定時(shí)器應(yīng)用的實(shí)例

    STC8A8K64S4A12開發(fā)板】—聊聊單片機(jī)中斷原理

    版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上原文出處鏈接。文章目錄前言一、關(guān)于中斷的一些概念二、STC8A8K64S4A12系列中斷請(qǐng)求源三、關(guān)于中斷
    發(fā)表于 11-10 20:50 ?13次下載
    【<b class='flag-5'>STC8A8K64S4A12</b>開發(fā)板】—聊聊<b class='flag-5'>單片機(jī)</b><b class='flag-5'>中斷</b>原理

    基于STC8A8K64S4A12單片機(jī)硬件IIC_光照強(qiáng)度檢測(cè)

    基于STC8A8K64S4A12單片機(jī)硬件IIC_光照強(qiáng)度檢測(cè)
    發(fā)表于 11-14 15:21 ?18次下載
    基于<b class='flag-5'>STC8A8K64S4A12</b><b class='flag-5'>單片機(jī)</b>硬件IIC_光照強(qiáng)度檢測(cè)

    STC8A8K64S4A12的命名規(guī)則

    STC8A8K64S4A12的命名規(guī)則STC8 -- STC8系列A -- 子系列中的
    發(fā)表于 12-23 19:11 ?24次下載
    <b class='flag-5'>STC8A8K64S4A12</b>的命名規(guī)則

    四軸飛控STC8A8K16S4A12原理圖與源代碼分享

    四軸飛控-STC8A8K16S4A12原理圖與源代碼,本飛控使用世界上速度最快的51:宏晶科技出品的STC8系列單片機(jī)STC8A8K64S4A12
    發(fā)表于 09-30 17:23 ?10次下載

    基于STC8A8K64S4A12制作一個(gè)示波器

    摘要:此示波器的主控是STC8A8K64S4A12,是在B站老劉示波器基礎(chǔ)上的升級(jí)版,擴(kuò)展了測(cè)量負(fù)電壓的功能,更新了UI設(shè)計(jì),屏幕升級(jí)為1.3寸OLED屏。
    的頭像 發(fā)表于 02-06 11:48 ?2435次閱讀