微控制器學習 2 中斷操作

2021-10-19 05:25:42 字數 2118 閱讀 8596

1、按鈕s0接在51微控制器的 p3.3(int1)引腳上,p1口接了8個發光二極體,程式設計實現:初始狀態時,led0燈亮,其它燈滅,利用s0按鈕控制p1口的燈(中斷方式),要求每按一下就點亮一盞燈( 前面點亮的保持點亮的狀態 )

**:

#include

#include

#define uchar unsigned char

#define uint unsigned int

uchar ledstatus_1;

uchar ledstatus_2;

bit flag; //標誌位,中斷後賦予1

uint i=0;

void wint1(

) interrupt 2

void main(

)else}}

}

電路圖:

2、按鈕s0接在51微控制器的 p3.3(int1)引腳上,p1口接了8個發光二極體,程式設計實現:初始狀態時,p1口控制的燈按一定的頻率閃爍;按一下s0,觸發 外部中斷1(int1),實現單燈 右移 (即按led7至led0的順序依次點亮)3圈結束,恢復初始狀態。

**:

#include

#include

#define uint unsigned int

#define led p1

void delay(int xms) //延時函式

void right(int x) //右移

delay(250);}

}void my_interrupt(

) interrupt 2 //中斷函式

void main(

)}

電路圖:

3、51微控制器的p1.7引腳外接乙個發光二極體d1,p3.2(int0)引腳外接訊號發生器(single generator)。程式設計實現:首先通過p1.7口點亮發光二極體d1,然後訊號發生器每輸入10個脈衝觸發一次中斷,使d1燈亮、滅交替一次。

**:

#include

#include

#define uint unsigned int

#define led p1

void delay(int xms) //延時函式

void left(int x) //左移

delay(250);}

}void right(int x) //右移

delay(250);}

}void my_int_right(void) interrupt 2 //中斷函式

void my_int_left(void) interrupt 0 //中斷函式

void main(

)}

電路圖:

4、p1口接8個發光二極體,p3.2和p3.3接兩個按鈕開關模擬兩個外部中斷源。平常8個燈以一定頻率閃爍,按鍵s0按下觸發中斷,控制8個燈左移(即按d1至d8的順序依次點亮)3圈,按鍵s1按下觸發中斷,控制8個燈右移(即按d8至d1的順序依次點亮)3圈(右移的中斷優先順序高於左移)。

**:

#include

#define uint unsigned int

sbit p1_7=p1^7;

uint i = 0; //脈衝計數

void interrupt0(

) interrupt 0 using 2

}void main(

)while(1)

;}

電路圖:

所有**和電路圖:

微控制器學習筆記(二) 中斷系統

cpu正在處理某件事情時,微控制器的內部或外部發生的某一事件請求cpu迅速去處理,於是cpu暫時中止當前的工作去處理所發生的事件。處理的過程是由中斷服務處理程式來負責的,它處理完後又回到原來被中止的地方,繼續原來的工作,這就是中斷。一 中斷請求 51 mcs 51系統簡稱,以下均使用51 中斷系統有...

藍橋杯微控制器學習記錄5中斷

這年過的人都過傻了,一覺醒來假期延長半個月。休息了這麼多天,把stc15f2k61s2的中斷簡單的說明一下 這裡只說外部中斷和定時中斷了,串列埠中斷講起來稍微麻煩點,但是 很簡單,回去直接看 先說一下要用到的中斷暫存器的幾個位 ea cpu的總中斷允許位 enable 1時允許中斷 exy y 0 ...

51微控制器 中斷1 中斷整體介紹

外部中斷請求源 即外部中斷0 和1,經由外部引腳引入,在微控制器上有兩個引腳,外稱為int0 int1,也就是p3.2 p3.3這兩個引腳 mcs51 微控制器內部的中斷模組在每個cpu週期都查詢各個中斷源的狀態,當其發生預期的中斷事件時,通知cpu將程式跳轉到中斷服務程式所在的程式儲存器 rom ...