国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

AVR單片機(jī)ATemga328P中斷原理的介紹

這篇具有很好參考價(jià)值的文章主要介紹了AVR單片機(jī)ATemga328P中斷原理的介紹。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1、一AVR單片機(jī)中斷原理的介紹

ATmega328P微控制器具有兩個(gè)外部中斷引腳,分別是INT0和INT1。

  • 外部中斷0(INT0):它對(duì)應(yīng)的引腳是PD2(數(shù)字引腳2)。INT0可以用于響應(yīng)外部信號(hào)的邊沿觸發(fā)(上升沿、下降沿或任意邊沿),并觸發(fā)相應(yīng)的中斷服務(wù)程序。INT0具有附加的可選特性,例如使能/禁用中斷、選擇觸發(fā)邊沿、使能上拉電阻等。

  • 外部中斷1(INT1):它對(duì)應(yīng)的引腳是PD3(數(shù)字引腳3)。INT1的功能與INT0類似,它也可以用于響應(yīng)外部信號(hào)的邊沿觸發(fā),并觸發(fā)相應(yīng)的中斷服務(wù)程序。INT1同樣具有附加的可選特性,例如使能/禁用中斷、選擇觸發(fā)邊沿、使能上拉電阻等。

這兩個(gè)外部中斷引腳提供了一種機(jī)制,使得ATmega328P能夠在外部事件發(fā)生時(shí)及時(shí)中斷當(dāng)前的程序執(zhí)行,以處理外部事件或執(zhí)行其他特定的任務(wù)。程序員可以根據(jù)應(yīng)用需求來配置和利用這些外部中斷功能。

AVR單片機(jī)ATemga328P中斷原理的介紹

AVR單片機(jī)ATemga328P中斷原理的介紹
AVR單片機(jī)ATemga328P中斷原理的介紹

ATmega328單片機(jī)具有26個(gè)中斷源。每個(gè)中斷源都有個(gè)獨(dú)立的中斷向量作為中斷服務(wù)程序的入口地址,而且所有的中斷源都有自己獨(dú)立的使能位。如果全局中斷I和相應(yīng)的中斷使能位都置位,則在中斷標(biāo)志位置位時(shí)將執(zhí)行中斷服務(wù)程序。

一個(gè)中斷產(chǎn)生后,全局中斷使能位I將被清零,后續(xù)的中斷被屏蔽。用戶可以在中斷服務(wù)程序里面對(duì)工置位從而開發(fā)中斷,在中斷返回后全局中斷位I將重新置位。

ATmega328P單片機(jī)中斷向量表介紹:

AVR單片機(jī)ATemga328P中斷原理的介紹

AVR單片機(jī)ATemga328P中斷原理的介紹

ATmega328單片機(jī)具有2個(gè)外部中斷,分別是INT0(中斷號(hào)為2),INT1(中斷號(hào)為1),這2個(gè)外部中斷都是由單片機(jī)的引腳觸發(fā)。需要注意的是,如果允許外部中斷的話,即使是INT0,INT1這2個(gè)引腳都設(shè)置為輸出方式,外部中斷也會(huì)觸發(fā)。INT0,INT1外部中斷可以選擇的觸發(fā)方式有上升沿觸發(fā)、下降沿觸發(fā)以及低電平觸發(fā);使用外部中斷涉及到的寄存器有:

AVR單片機(jī)ATemga328P中斷原理的介紹

1.1 外部中斷控制寄存器A

EICRA(External Interrupt Control Register A):這是一個(gè)8位寄存器,用于配置外部中斷的觸發(fā)方式。它的低兩位(ISC01和ISC00)控制INT0的觸發(fā)方式,而高兩位(ISC11和ISC10)控制INT1的觸發(fā)方式。這些位可用于選擇外部中斷的觸發(fā)邊沿(上升沿、下降沿或任意邊沿)。
AVR單片機(jī)ATemga328P中斷原理的介紹

ISC11 ISC10 說明
0 0 INT1引腳為低電平時(shí)產(chǎn)生中斷請(qǐng)求
0 1 INT1引腳上的任意邏輯電平變化都會(huì)產(chǎn)生中斷請(qǐng)求
1 0 INT1引腳為下降沿產(chǎn)生中斷請(qǐng)求
1 1 INT1引腳為上升沿產(chǎn)生中斷請(qǐng)求

AVR單片機(jī)ATemga328P中斷原理的介紹

ISC01 ISC00 說明
0 0 INT0引腳為低電平時(shí)產(chǎn)生中斷請(qǐng)求
0 1 INT0引腳上的任意邏輯電平變化都會(huì)產(chǎn)生中斷請(qǐng)求
1 0 INT0引腳為下降沿產(chǎn)生中斷請(qǐng)求
1 1 INT0引腳為上升沿產(chǎn)生中斷請(qǐng)求

1.2 外部中斷屏蔽寄存器

EIMSK(External Interrupt Mask Register):這是一個(gè)8位寄存器,用于使能/禁用外部中斷。它包含兩個(gè)位用于使能/禁用INT0和INT1外部中斷。設(shè)置EIMSK寄存器的相應(yīng)位可以啟用對(duì)應(yīng)的外部中斷功能。
AVR單片機(jī)ATemga328P中斷原理的介紹

當(dāng) INT1 位被設(shè)置1并且狀態(tài)寄存器SREG中的I位被設(shè)置1時(shí),外部引腳中斷被啟用。 外部中斷控制寄存器 A (EICRA) 中的中斷檢測(cè)控制 1 位 1/0(ISC11 和 ISC10)定義外部中斷是在 INT1 引腳的上升沿和/或下降沿激活還是在檢測(cè)到電平時(shí)激活。 即使 INT1 配置為輸出,一旦引腳電平發(fā)生了相應(yīng)的變化,中斷就產(chǎn)生。 外部中斷請(qǐng)求1對(duì)應(yīng)的中斷從INT1中斷向量執(zhí)行。

當(dāng) INT0 位被設(shè)置1并且狀態(tài)寄存器SREG中的 I 位被設(shè)置1時(shí),外部引腳中斷被啟用。 外部中斷控制寄存器 A (EICRA) 中的中斷檢測(cè)控制 0 位 1/0(ISC01 和 ISC00)定義外部中斷是在 INT0 引腳的上升沿和/或下降沿激活還是在檢測(cè)到電平時(shí)激活。 即使INT0配置為輸出,一旦引腳電平發(fā)生了相應(yīng)的變化,中斷就產(chǎn)生。 外部中斷請(qǐng)求0對(duì)應(yīng)的中斷從INT0 中斷向量執(zhí)行。

1.3 外部中斷標(biāo)志寄存器

EIFR(External Interrupt Flag Register):這是一個(gè)8位寄存器,用于指示外部中斷事件的發(fā)生。當(dāng)外部中斷事件觸發(fā)時(shí),相應(yīng)的位(INTF0和INTF1)會(huì)被置位。在處理完中斷后,可以通過清除EIFR寄存器的相應(yīng)位來復(fù)位中斷標(biāo)志。

AVR單片機(jī)ATemga328P中斷原理的介紹
當(dāng)INT1引腳上的邊沿或邏輯變化觸發(fā)中斷請(qǐng)求時(shí),INTF1變?yōu)橹梦?。 如果 SREG 中的I位和IMSK中的INT1位被置位1,MCU將跳轉(zhuǎn)到相應(yīng)的中斷向量。中斷程序執(zhí)行時(shí)該標(biāo)志被清除。 或者,可以通過向其寫入邏輯1來清除該標(biāo)志。 當(dāng) INT1配置為電平中斷時(shí),該標(biāo)志總是被清除。

當(dāng)INT0引腳上的邊沿或邏輯變化觸發(fā)中斷請(qǐng)求時(shí),INTF0變?yōu)橹梦?。 如果SREG中的I位和EIMSK中的INT0位被置位1,MCU將跳轉(zhuǎn)到相應(yīng)的中斷向量。中斷程序執(zhí)行時(shí)該標(biāo)志被清除。 或者,可以通過向其寫入邏輯 1 來清除該標(biāo)志。 當(dāng) INT0配置為電平中斷時(shí),該標(biāo)志總是被清除。

二、中斷服務(wù)函數(shù)寫法

語法格式:

#pragma interrupt_handler<函數(shù)名>:<中斷向量號(hào)>

例如定義INT0中所服務(wù)程序:

#pragma interrupt_handler into_isr: 2
void into_isr(void)
{
	//INTO中斷服務(wù)函數(shù)
}

三、外部中斷使用步驟

1、設(shè)置外部中斷觸發(fā)方式
2、使能外部中斷
3、設(shè)置中斷管腳(是否需要上拉電阻)
4、打開全局中斷
5、選擇終端號(hào),編寫中斷服務(wù)函數(shù)文章來源地址http://www.zghlxwxcb.cn/news/detail-453138.html

#include <avr/io.h>
#include <avr/interrupt.h>

// 外部中斷0的中斷服務(wù)函數(shù)
ISR(INT0_vect)
{
    // 在此處編寫中斷處理代碼
    // ...
}

int main(void)
{
    // 配置引腳和外部中斷

    // 設(shè)置PD2引腳為輸入
    DDRD &= ~(1 << PD2);
    // 使能PD2引腳的上拉電阻
    PORTD |= (1 << PD2);

    // 配置外部中斷0的觸發(fā)方式為下降沿觸發(fā)
    EICRA |= (1 << ISC01);
    EICRA &= ~(1 << ISC00);

    // 使能外部中斷0
    EIMSK |= (1 << INT0);

    // 全局使能中斷
    sei();//SREG |= (1 << 7);

    while (1)
    {
        // 主循環(huán)代碼
        // ...
    }

    return 0;
}

到了這里,關(guān)于AVR單片機(jī)ATemga328P中斷原理的介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • AVR128單片機(jī) USART通信控制發(fā)光二極管顯示

    AVR128單片機(jī) USART通信控制發(fā)光二極管顯示

    一、系統(tǒng)方案 二、硬件設(shè)計(jì) 原理圖如下: 三、單片機(jī)軟件設(shè)計(jì) 1、首先是系統(tǒng)初始化 void port_init(void) { PORTA = 0xFF; DDRA = 0x00;//輸入 PORTB = 0xFF;//低電平 DDRB = 0x00;//輸入 PORTC = 0xFF;//低電平 DDRC = 0xFF;//輸出 PORTE = 0xFF; DDRE = 0xfE;//輸出 PORTD = 0xff; DDRD = 0xFB;//輸出 PORTD = 0xff; PORTF = 0xFF

    2024年02月10日
    瀏覽(13)
  • 單片機(jī)原理及應(yīng)用 實(shí)驗(yàn)四 指示燈數(shù)碼管的中斷控制

    單片機(jī)原理及應(yīng)用 實(shí)驗(yàn)四 指示燈數(shù)碼管的中斷控制

    單片機(jī)原理及應(yīng)用(C51?版) 功能: 開機(jī)后D1滅燈,LED1黑屏,隨后單擊K1→D1狀態(tài)反轉(zhuǎn),單擊K2→LED1從0開始循環(huán)顯示0~F字符。 實(shí)驗(yàn)?zāi)康募耙螅?1.掌握外部中斷的工作原理,學(xué)會(huì)中斷程序設(shè)計(jì); 2.按照實(shí)驗(yàn)報(bào)告要求圖,繪制本實(shí)驗(yàn)電路原理圖; 3.要求采用外部中斷原理完成

    2024年02月07日
    瀏覽(18)
  • 【期末不掛科-單片機(jī)考前速過系列P10】(第十章:11題中斷系統(tǒng)的工作原理及應(yīng)用)經(jīng)典例題盤點(diǎn)(帶圖解析)

    【期末不掛科-單片機(jī)考前速過系列P10】(第十章:11題中斷系統(tǒng)的工作原理及應(yīng)用)經(jīng)典例題盤點(diǎn)(帶圖解析)

    前言 大家好吖,歡迎來到 YY 滴單片機(jī)期末速過系列 ,熱烈歡迎! 本章主要內(nèi)容面向接觸過單片機(jī)的老鐵 主要內(nèi)容含: 歡迎訂閱 YY 滴C++專欄!更多干貨持續(xù)更新!以下是傳送門! YY的《C++》專欄 YY的《C++11》專欄 YY的《Linux》專欄 YY的《數(shù)據(jù)結(jié)構(gòu)》專欄 YY的《C語言基礎(chǔ)》專

    2024年02月01日
    瀏覽(99)
  • AT89C51單片機(jī)實(shí)現(xiàn)單片機(jī)串口互動(dòng)(中斷方式,單片機(jī)--單片機(jī),應(yīng)答)

    AT89C51單片機(jī)實(shí)現(xiàn)單片機(jī)串口互動(dòng)(中斷方式,單片機(jī)--單片機(jī),應(yīng)答)

    ?說一下功能:客戶機(jī)發(fā)送0x01到服務(wù)機(jī) 2服務(wù)單片機(jī)應(yīng)答0xf2到客戶機(jī) 3客戶機(jī)接收到0xf2,發(fā)送信息153432這6個(gè)數(shù)字到服務(wù)機(jī) 4client發(fā)送完信息后發(fā)送0xaa結(jié)束通信 5server接收到0xaa后回復(fù)0xaa結(jié)束通信,從此老死不相往來 看代碼: 服務(wù)端代碼: ? ?

    2024年02月13日
    瀏覽(28)
  • 51單片機(jī)——中斷

    51單片機(jī)——中斷

    中斷系統(tǒng)的設(shè)置,是為了讓CPU能對(duì)外界緊急事件進(jìn)行實(shí)時(shí)處理 中斷的過程是,當(dāng)中斷請(qǐng)求源發(fā)出中斷請(qǐng)求時(shí),CPU響應(yīng)中斷后,CPU先暫停當(dāng)時(shí)正在執(zhí)行的主程序,轉(zhuǎn)而去處理中斷服務(wù)程序,處理完后繼續(xù)原來的工作 微型機(jī)一般允許多個(gè)中斷源,當(dāng)幾個(gè)中斷源同時(shí)發(fā)出中斷時(shí),

    2023年04月15日
    瀏覽(23)
  • 51單片機(jī)中斷系統(tǒng)

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

    我們先來舉一個(gè)生活事例: 你打開火,燒上一壺水。然后去洗衣服,在洗衣服的過程中,突然聽到水壺發(fā)出水開的報(bào)警聲,這時(shí),你停止洗衣服動(dòng)作,立即去關(guān)掉火,然后將開水灌入暖水瓶中,灌完開水后,你又回去繼續(xù)洗衣服。這個(gè)過程中實(shí)際上就發(fā)生了一次中斷。 對(duì)于

    2024年02月05日
    瀏覽(30)
  • 51單片機(jī)(九):中斷

    51單片機(jī)(九):中斷

    一、“中斷”與定時(shí)器的關(guān)系 ? ? ? ? 前面我們學(xué)習(xí)過了定時(shí)器,實(shí)際上 定時(shí)器的一般用法都是采取中斷的方式進(jìn)行實(shí)現(xiàn)的 。需要明確的是,定時(shí)器和中斷不是一回事,定時(shí)器是單片機(jī)模塊的一個(gè)資源,確確實(shí)實(shí)存在的一個(gè)模塊,而中斷是單片機(jī)中的一種運(yùn)行機(jī)制。 在單片

    2024年02月04日
    瀏覽(26)
  • 【51單片機(jī)】外部中斷

    【51單片機(jī)】外部中斷

    51的 外部中斷 與 定時(shí)器(內(nèi)部中斷) 有一個(gè)共同特點(diǎn),那就是與主程序是 并行 工作的,就是主程序在運(yùn)行的時(shí)候,中斷也在等待觸發(fā)條件,當(dāng) 中斷被觸發(fā)的時(shí)候會(huì)暫停主程序 轉(zhuǎn)而執(zhí)行中斷服務(wù)程序,只有中斷服務(wù)程序執(zhí)行完后,才會(huì)繼續(xù)執(zhí)行主程序。 這里的觸發(fā)條件是指:

    2024年02月02日
    瀏覽(31)
  • 51單片機(jī)中斷

    51單片機(jī)中斷

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

    2024年01月21日
    瀏覽(29)
  • 【51單片機(jī)——————外部中斷】

    中斷是指單片機(jī)主程序運(yùn)行過程中,出現(xiàn)某些意外情況需要單片機(jī)處理,單片機(jī)能自動(dòng)停止正在運(yùn)行的程序并轉(zhuǎn)入處理新情況的程序,處理完畢后又返回原被暫停的程序繼續(xù)運(yùn)行。 在實(shí)際應(yīng)用開發(fā)中,單片機(jī)不可能一直輪詢查看按鍵是否按下,單片機(jī)還需要去執(zhí)行其他任務(wù),

    2024年02月06日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包