51微控制器學習筆記 中斷

2021-10-05 23:49:57 字數 2517 閱讀 6528

52微控制器共有6個中斷源。

中斷源解釋

埠線int0

外部中斷0,低電平或下降沿引起

p3.2

int1

外部中斷1,低電平或下降沿引起

p3.3

t0定時器/計數器0,由t0計數器計滿回零引起

p3.4

t1定時器/計數器1,由t1計數器計滿回零引起

p3.5

t2定時器/計數器2,由t2計數器計滿回零引起

p1.0

ti/ri

序列口中斷,串列埠完成一幀字元傳送後引起

p3.0/p3.1

中斷源中斷級別

序號(c語言用)

入口位址(彙編用)

注釋int0最高0

0003h

外部中斷0

t0第2

1000bh

定時器/計數器0

int1第32

0013h

外部中斷1

t1第4

3001bh

定時器/計數器1

ti/ri第54

0023h

序列口中斷

t2最低

5002bh

定時器/計數器2

注:

(1)模式控制暫存器tmod

位序號d7

d6d5

d4d3

d2d1

d0位符號

gate

c/tm1

m0gate

c/tm1

m0注:其中高四位設定定時器/計數器t1,低四位設定定時器/計數器t0。

電平狀態

注釋gate = 0

僅受tcon暫存器中的tr位來控制

gate = 1

受tcon暫存器中的tr位和外部中斷引腳電平控制

電平狀態

注釋c/t = 0

定時器模式

c/t = 1

計數器模式

電平狀態

注釋m1 = 0 , m0 = 0

工作方式0,13位定時器/計數器

m1 = 0 , m0 = 1

工作方式1,16位定時器/計數器

m1 = 1 , m0 = 0

工作方式2,8位初值自動重灌的8位定時器/計數器

m1 = 1 , m0 = 1

工作方式3,僅適用於t0,分成兩個8位計數器,t1停止計數

注:常使用工作方式1,因為計數範圍比較大。

(2)控制暫存器tcon

位序號d7

d6d5

d4d3

d2d1

d0位符號

tf1tr1

tf0tr0

ie1it1

ie0it0

位位址8fh

8eh8dh

8ch8bh

8ah89h

88h(3)中斷允許暫存器ie

位序號d7

d6d5

d4d3

d2d1

d0位符號ea–

et2es

et1ex1

et0ex0

位位址afh

–adh

achabh

aaha9h

a8h

(4)中斷優先順序暫存器ip

位序號d7

d6d5

d4d3

d2d1

d0位符號––

–pspt1px1

pt0px0

位位址–––

bchbbh

bahb9h

b8h

/*定時器0初始化*/

void

timer0_init

(void

)/*定時器0中斷服務程式*/

void

timer0

() interrupt 1

//interrupt 1 表示使用序號1 代表使用定時器t0

/*計數器0初始化*/

void

counter0_init

(void

)void

counter0

() interrupt 1

//interrupt 1 表示使用序號1 代表使用計數器t0

/*串列埠中斷初始化*/

void

uart_init

(void

)/*串列埠中斷服務程式*/

void

uart

() interrupt 4

第一次寫部落格,如有錯誤,希望大佬們指正。

51微控制器中斷學習

一 中斷的概念 cpu在處理某一事件a時,發生了另一事件b請求cpu迅速去處理 中斷發生 cpu暫時中斷當前的工作,轉去處理事件b 中斷響應和中斷服務 待cpu將事件b處理完畢後,再回到原來事件a被中斷的地方繼續處理事件a 中斷返回 這一過程稱為中斷 二 中斷源 在51微控制器中有5個中斷源 中斷號...

學習筆記之 51微控制器中斷

通俗的講,中斷就是cup正在工作的時候,突然外部來了某一請求,要求cpu轉去處理請求的事件,當事情做完之後cup再回來繼續它的工作。這一過程稱為中斷 微控制器中斷響應可以分為以下幾個步驟 1 停止主程式執行。當前指令執行完後立即終止現行程式的執行 2 保護斷點。把程式計數器pc 的當前值壓入堆疊,儲...

51微控制器 中斷

一 中斷的概念 cpu在處理某一事件a時,發生了另一事件b請求cpu迅速去處理 中斷發生 cpu暫時中斷當前的工作,轉去處理事件b 中斷響應和中斷服務 待cpu將事件b處理完畢後,再回到原來事件a被中斷的地方繼續處理事件a 中斷返回 這一過程稱為中斷 二 中斷源 在51微控制器中有5個中斷源 中斷號...