女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

中斷流程分析與示例

田豐 ? 來源:jf_35235301 ? 作者:jf_35235301 ? 2023-11-25 12:30 ? 次閱讀

中斷的概念:
CPU在處理某一事件A時,發(fā)生了另一事件B的請求(中斷請求);CPU暫時中斷當(dāng)前的工作,轉(zhuǎn)去處理事件B(中斷響應(yīng)和中斷服務(wù));待CPU將事件B處理完畢后,再回到原來事件A被中斷的地方繼續(xù)處理事件A(中斷返),這一過程稱為中斷。

wKgaomVhd2qAfwCeAAczh1MgDBc191.png中斷執(zhí)行過程圖

如何執(zhí)行如上圖所示:先執(zhí)行主程序,到達斷點的地方出現(xiàn)中斷請求,此時執(zhí)行中斷響應(yīng),執(zhí)行中斷處理程序,執(zhí)行完中斷返回斷點,再繼續(xù)執(zhí)行主程序。

中斷源:
引起CPU中斷的根源,稱為中斷源。中斷源向CPU提出的中斷請求。CPU暫時中斷原來的事務(wù)A,轉(zhuǎn)去處理事件B。對事件B處理完畢后,再回到原來被中斷的地方(即斷點),稱為中斷返回。實現(xiàn)上述中斷功能的部件稱為中斷系統(tǒng)(中斷機構(gòu))。
中斷的優(yōu)點:
分時操作:CPU可以分時為多個外設(shè)服務(wù),提高了計算機的利用率;
實時響應(yīng):CPU能夠及時處理應(yīng)用系統(tǒng)的隨機事件,系統(tǒng)的實時性大大增強;
可靠性高:CPU具有處理設(shè)備故障及掉電等突發(fā)性事件能力,從而使系統(tǒng)可靠性提高。

定義中斷函數(shù)的一般形式:
viod 函數(shù)名() interrupt n
(1) interrupt必須要加,表示定義成中斷服務(wù)函數(shù)。
(2)后面n是中斷號,中斷號是編譯器識別不同中斷的唯一編號.
中斷服務(wù)函數(shù)和普通函數(shù)的異同:
同:函數(shù)的形式非常類似,中斷響應(yīng)過程和普通函數(shù)調(diào)用過程也非常相似。
異:①中斷服務(wù)函數(shù)不需要聲明,普通函數(shù)一般需要聲明。②普通函數(shù)的執(zhí)行是可預(yù)測的;而中斷服務(wù)函數(shù)的執(zhí)行是不可預(yù)測的。③普通函數(shù)的跳轉(zhuǎn)是軟件(函數(shù)調(diào)用語句)完成的;中斷的跳轉(zhuǎn)(中斷響應(yīng))是由硬件完成的,只要發(fā)生了中斷事件,并且中斷被允許,硬件自動會幫我們完成中斷的跳轉(zhuǎn)(中斷響應(yīng))。④普通函數(shù):通過函數(shù)名找到被調(diào)用函數(shù);中斷服務(wù)函數(shù):通過中斷號找到中斷服務(wù)函數(shù)。所以我們可以知道,中斷服務(wù)函數(shù)中的函數(shù)名其實并沒有什么作用。
使用中斷函數(shù)時應(yīng)遵循以下規(guī)則:
(1)中斷函數(shù)不能進行參數(shù)轉(zhuǎn)遞;
(2)在任何情況下,都不能直接調(diào)用中斷函數(shù)。

那么我們?nèi)绾瓮ㄟ^keil使用51單片機外部中斷0觸發(fā)數(shù)碼管顯示三位數(shù)字呢?

下面給予chatGPT示例

#include

sbit LED = P1^0; //定義LED連接的IO口
sbit KEY = P3^2; //定義KEY連接的IO口

unsigned int num = 0; //定義計數(shù)器

void delay(unsigned int x) //延時函數(shù)
{
unsigned int i, j;
for(i=0; i for(j=0; j<125; j++);
}

void display(unsigned int n) //數(shù)碼管顯示函數(shù)
{
unsigned char code table[] = { //數(shù)碼管顯示表
0x3f, //0
0x06, //1
0x5b, //2
0x4f, //3
0x66, //4
0x6d, //5
0x7d, //6
0x07, //7
0x7f, //8
0x6f //9
};
unsigned int i, j;
for(i=0; i<3; i++)
{
P2 = 0xff; //關(guān)閉所有數(shù)碼管
switch(i) //選擇要顯示的數(shù)位
{
case 0:
P0 = 0xfe; //第一位數(shù)碼管
break;
case 1:
P0 = 0xfd; //第二位數(shù)碼管
break;
case 2:
P0 = 0xfb; //第三位數(shù)碼管
break;
}
P2 = table[n%10]; //顯示個位數(shù)字
delay(1); //延時一段時間
P2 = 0xff; //關(guān)閉所有數(shù)碼管
switch(i) //選擇要顯示的數(shù)位
{
case 0:
P0 = 0xfd; //第二位數(shù)碼管
break;
case 1:
P0 = 0xfb; //第三位數(shù)碼管
break;
case 2:
P0 = 0xf7; //第四位數(shù)碼管
break;
}
P2 = table[n/10%10]; //顯示十位數(shù)字
delay(1); //延時一段時間
P2 = 0xff; //關(guān)閉所有數(shù)碼管
switch(i) //選擇要顯示的數(shù)位
{
case 0:
P0 = 0xfb; //第三位數(shù)碼管
break;
case 1:
P0 = 0xf7; //第四位數(shù)碼管
break;
case 2:
P0 = 0xef; //第五位數(shù)碼管
break;
}
P2 = table[n/100%10]; //顯示百位數(shù)字
delay(1); //延時一段時間
P2 = 0xff; //關(guān)閉所有數(shù)碼管
switch(i) //選擇要顯示的數(shù)位
{
case 0:
P0 = 0xf7; //第四位數(shù)碼管
break;
case 1:
P0 = 0xef; //第五位數(shù)碼管
break;
case 2:
P0 = 0xdf; //第六位數(shù)碼管
break;
}
P2 = table[n/1000%10]; //顯示千位數(shù)字
delay(1); //延時一段時間
}
}

void main()
{
EA = 1; //開啟總中斷
EX0 = 1; //開啟外部中斷0
IT0 = 1; //設(shè)置外部中斷0為下降沿觸發(fā)
while(1)
{
display(num%1000); //顯示后三位數(shù)字
}
}

void Interrupt0() interrupt 0 //外部中斷0中斷服務(wù)函數(shù)
{
num++; //計數(shù)器加1
LED = ~LED; //LED翻轉(zhuǎn)
}
在上面的代碼中,我們定義了一個計數(shù)器num,并在外部中斷0中斷服務(wù)函數(shù)中將其加1。同時,在main函數(shù)中,我們使用display函數(shù)來顯示num的后三位數(shù)字。display函數(shù)中使用了一個數(shù)碼管顯示表來將數(shù)字轉(zhuǎn)換為數(shù)碼管的顯示碼,然后通過控制數(shù)碼管的選擇位和段選位來實現(xiàn)數(shù)碼管的顯示。在每次顯示完一個數(shù)位后,我們都會延時一段時間,以控制數(shù)碼管的亮度和顯示效果。最后,我們在main函數(shù)的無限循環(huán)中不斷調(diào)用display函數(shù),以實現(xiàn)數(shù)碼管的動態(tài)顯示。

需要注意的是,在使用外部中斷0時,我們需要先開啟總中斷(EA=1),然后再開啟外部中斷0(EX0=1)。同時,我們還需要設(shè)置外部中斷0的觸發(fā)方式,可以選擇下降沿觸發(fā)(IT0=1)或者上升沿觸發(fā)(IT0=0),具體根據(jù)實際情況而定。在外部中斷0中斷服務(wù)函數(shù)中,我們可以進行一些需要立即響應(yīng)的操作,比如計數(shù)器加1、LED翻轉(zhuǎn)等。

我覺得還是太復(fù)雜了(主要是太多了不想看又看不懂emmm),下面是我通過keil使用51單片機外部中斷0觸發(fā)數(shù)碼管顯示后三位學(xué)號的示例代碼:

#include
#define duan P0
#define uchar unsigned char
sbit wei1 = P2^4;//定義第一位數(shù)碼管
sbit wei2 = P2^5;//定義第二位數(shù)碼管
sbit wei3 = P2^6;//定義第三位數(shù)碼管
sbit wei4 = P2^7;//定義第四位數(shù)碼管

uchar code sz[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};

void delay (unsigned int xms)
{
unsigned int i,j;
for(i=xms;i>0;i--) //i=xms即延時xms
for(j=112;j>0;j--);
}

void main()
{
EX0 = 1;//INT0中斷允許
EA = 1;//全局中斷打開
IT0 = 0;//觸發(fā)方式為低電平觸發(fā)

while(1)
{
duan = sz[8];
wei1 = 0;
wei2 = 0;
wei3 = 0;
wei4 = 1;
delay(0);
duan = sz[2];//0111 1100 "b"
wei1 = 0;
wei2 = 0;
wei3 = 1;
wei4 = 0;
delay(0);
duan = sz[6];
wei1 = 0;
wei2 = 1;
wei3 = 0;
wei4 = 0;
delay(0);
duan = sz[7];
wei1 = 1;
wei2 = 0;
wei3 = 0;
wei4 = 0;
delay(0);
}
}

void low()interrupt 0
{
wei1 = 0;
delay(0);
}

wKgaomVjGM-APz5EAADIZdO7cxQ736.png運行結(jié)果

wKgZomVjGWGADNLKAAhz7ubzg1w506.png硬件顯示效果

顯示效果:顯示4位學(xué)號7628,通過外部中斷0使第一位數(shù)碼管不亮,從而顯示學(xué)號后三位。

總結(jié):P3.2由ITO(TCON.0)選擇其為低電平有效。當(dāng)CPU檢測到P3.2引腳上出現(xiàn)有效的中斷信號時,中斷標(biāo)志 IEO(TCON.1)置1,向CPU申請中斷。

審核編輯 黃宇

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

    關(guān)注

    6063

    文章

    44929

    瀏覽量

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

    關(guān)注

    68

    文章

    11040

    瀏覽量

    216043
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    AS32X601驅(qū)動系列教程 PLIC_中斷應(yīng)用詳解

    連到PLIC,PLIC統(tǒng)一管理并輸出中斷請求到內(nèi)核。 硬件設(shè)計 本節(jié)硬件同USART章節(jié)一致。 軟件設(shè)計 代碼分析 在之前的按鍵章節(jié)我們已經(jīng)對AS32的中斷進行了簡單實用,本節(jié)將用串口的接收
    的頭像 發(fā)表于 05-23 17:10 ?133次閱讀
    AS32X601驅(qū)動系列教程 PLIC_<b class='flag-5'>中斷</b>應(yīng)用詳解

    伺服電機測試流程分析

    伺服電機的測試流程是確保電機正常工作的關(guān)鍵步驟。以下是對伺服電機測試流程的詳細(xì)分析。 ?一、初步檢查與準(zhǔn)備 1. 外觀檢查:首先,對伺服電機進行外觀檢查,確保電機完好無損,沒有明顯的物理損傷或變形
    的頭像 發(fā)表于 04-23 17:56 ?238次閱讀

    單片機ST控制lan8651的示例

    基于STM32單片機控制LAN8651的示例框架和關(guān)鍵步驟說明: 硬件準(zhǔn)備 主控芯片:STM32F4/F7/H7系列(需支持SPI或MAC接口) LAN8651模塊:10BASE-T1S以太網(wǎng)控制器
    發(fā)表于 03-26 10:46

    封裝失效分析流程、方法及設(shè)備

    本文首先介紹了器件失效的定義、分類和失效機理的統(tǒng)計,然后詳細(xì)介紹了封裝失效分析流程、方法及設(shè)備。
    的頭像 發(fā)表于 03-13 14:45 ?668次閱讀
    封裝失效<b class='flag-5'>分析</b>的<b class='flag-5'>流程</b>、方法及設(shè)備

    芯片失效分析的方法和流程

    ? 本文介紹了芯片失效分析的方法和流程,舉例了典型失效案例流程,總結(jié)了芯片失效分析關(guān)鍵技術(shù)面臨的挑戰(zhàn)和對策,并總結(jié)了芯片失效分析的注意事項。
    的頭像 發(fā)表于 02-19 09:44 ?922次閱讀

    串口中斷是內(nèi)部中斷還是外部中斷,串口中斷是怎么觸發(fā)的

    串口中斷通常被視為外部中斷。雖然串口控制器(如USART、UART等)可能集成在微控制器或處理器的內(nèi)部,但從中斷的角度來看,串口中斷是由處理器外部的通信事件觸發(fā)的。這些事件包括數(shù)據(jù)的接
    的頭像 發(fā)表于 01-29 15:03 ?1474次閱讀

    利用Minitab應(yīng)對供應(yīng)鏈中斷問題

    供應(yīng)鏈中斷是不可避免的,但積極的措施和數(shù)據(jù)驅(qū)動的戰(zhàn)略可以減輕其影響。Minitab全面的數(shù)據(jù)分析和問題解決工具使組織能夠分析、優(yōu)化和調(diào)整其供應(yīng)鏈,以應(yīng)對不可預(yù)見的挑戰(zhàn),確保面對中斷時的
    的頭像 發(fā)表于 01-02 17:16 ?399次閱讀

    關(guān)于中斷知識學(xué)習(xí)總結(jié)筆記

    正在忙碌工作的人,突然接到一個緊急電話(中斷事件),先停下手中工作去接聽電話并處理相關(guān)事宜,之后再回來繼續(xù)之前的工作。 二、中斷流程剖析 (一)中斷請求(IRQ) 外部設(shè)備或內(nèi)部事件產(chǎn)生中斷
    發(fā)表于 11-23 11:23

    編寫高效Testbench的指南和示例

    Testbench是驗證HDL設(shè)計的主要手段,本文提供了布局和構(gòu)建高效Testbench的指南以及示例。另外,本文還提供了一種示例,可以為任何設(shè)計開發(fā)自檢Testbench。
    的頭像 發(fā)表于 10-29 16:14 ?1496次閱讀
    編寫高效Testbench的指南和<b class='flag-5'>示例</b>

    西門子博途中循環(huán)中斷功能的編程示例

    在以下示例中,將讀取循環(huán)中斷 OB (OB31) 的相位和循環(huán)時間,并設(shè)置一個新的循環(huán)時間。
    的頭像 發(fā)表于 10-28 10:11 ?3162次閱讀
    西門子博途中循環(huán)<b class='flag-5'>中斷</b>功能的編程<b class='flag-5'>示例</b>

    CC430射頻示例

    電子發(fā)燒友網(wǎng)站提供《CC430射頻示例.pdf》資料免費下載
    發(fā)表于 10-18 09:48 ?0次下載
    CC430射頻<b class='flag-5'>示例</b>

    掃描模塊的編程示例和調(diào)試策略

    電子發(fā)燒友網(wǎng)站提供《掃描模塊的編程示例和調(diào)試策略.pdf》資料免費下載
    發(fā)表于 09-27 09:38 ?0次下載
    掃描模塊的編程<b class='flag-5'>示例</b>和調(diào)試策略

    freertos中斷優(yōu)先級在哪設(shè)置

    中斷優(yōu)先級之前,我們需要理解中斷優(yōu)先級的概念。在嵌入式系統(tǒng)中,中斷是硬件或軟件事件,它們可以打斷CPU的當(dāng)前執(zhí)行流程,讓CPU去處理更緊急的任務(wù)。
    的頭像 發(fā)表于 09-02 14:17 ?1401次閱讀

    stm32怎樣觸發(fā)軟件中斷

    了解STM32中斷系統(tǒng) STM32微控制器具有豐富的中斷系統(tǒng),包括NVIC(嵌套向量中斷控制器)和SYSTICK定時器。NVIC可以處理多達240個中斷源,包括外部
    的頭像 發(fā)表于 09-02 09:32 ?1666次閱讀

    流程工業(yè)物聯(lián)網(wǎng)遠(yuǎn)程監(jiān)控系統(tǒng)解決方案

    與離散領(lǐng)域顯著不同的是,流程領(lǐng)域的生產(chǎn)流程本質(zhì)上是連續(xù)的,被加工處理的工質(zhì)不論是產(chǎn)生物理變化還是化學(xué)變化,其過程不會中斷,而且往往是處于密閉的管道或容器中,生產(chǎn)工藝相對簡單,生產(chǎn)流程
    的頭像 發(fā)表于 08-05 11:07 ?524次閱讀
    <b class='flag-5'>流程</b>工業(yè)物聯(lián)網(wǎng)遠(yuǎn)程監(jiān)控系統(tǒng)解決方案