第五週 特殊功能寄存器中三個主要部件運用及中斷系統結構

導航

1.中斷結構系統的中斷源
2.特殊功能寄存器三個主要位置及功能
3.中斷的初始化以及中斷服務函數
————————————————————————————————————————

中斷結構系統的中斷源

中斷源 符號 類型 產生條件 中斷請求標誌
外部中斷0 INT0 外部 P3.2/INTO引腳,低電平或者下降沿 IEO
定時/計數器0 T0 內部 T0的計數器滿模 TF0
外部中斷1 INT1 外部 P3.3/INTO引腳,低電平或者下降沿 IE1
定時/計數器1 T1 內部 T1的計數器滿模 TF1
串行I/O端口 TI/RI 內部 串口發送完一幀數據,串口接收一幀數據 TI / RI

特殊功能寄存器三個主要位置及功能

1.中斷允許控制寄存器 IE(Interrupt Enable)

功能:控制各中斷源的打開與關閉
字節地址爲0xa8,各個位都分配地址,進行位訪問

中間有2個未定義功能,6個有功能的
分別爲

EA 全局中斷允位
ES 串行I/O口中斷允許位
ET1 定時/計數器1中斷允許位
EX1 外部中斷1允許位
ET0 定時/計數器0中斷允許位
EX0 外部中斷0允許位

賦值0爲關閉,1爲打開

0xaf-0xa8位置:EA X X ES ET1 EX1 ET0 EX0

復位後統一變爲0x00

例1:單片機使用外部中斷0,定時中斷0,如何設置IE

IE => 10000011B ,爲0x83 EX0 ,ET0,EA置1,其餘置0

例2:外部中斷0,外部中斷1,和串行中斷,怎麼設置

EX0 = 1 EX1 = 1 ES = 1 EA = 1

開放中斷的規則:先開啓局部中斷,再開啓總中斷也就是EA


2.定時器控制寄存器 TCON(Timer Control Register)

位地址0x88開始的
位置0x8f-0x88:TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

復位後用0x00表示

TF1 TR1:定時/計數器1
TF0 TR0:定時/計算器0
IE1 IT1:外部中斷1
IE0 IT0:外部中斷0

IT i:是外部中斷的觸發方式選擇位

IT i = 0 //外部中斷採用低電平觸發
IT I=1 //外部中斷採用下降沿的方式觸發

IE i :置1後結果:

若開放外部中斷(EX i = 1且 EA = 1),CPU會自動進入對應的外部中斷服務函數中去執行中斷服務


3.中斷的優先級寄存器 IP(Interrupt Priority) 中斷優先級

地址位從0x68開始的
位置0x6f-0x68:X X X PS PT1 PX1 PT0 PX0

PS 串行優秀級控制位
PT1 定時/計數器1的中斷優先級控制位
PX1 外部中斷1的中斷優先級控制位
PT 0 定時/計數器0的中斷優先級控制位
PX 0 外部中斷0的中斷優先級控制位

置1位高優先級,0爲低優先級

若是同級向cpu發出中斷,優先級排序高->低爲:

(外中斷0)IE0 (定時/計數器中斷0)TF0 (外中斷1)IE1 (定時/計算器中斷1)TF1 (串行中斷)T2/R2

若是同時開放T0 T1 INT0 順序 高到低爲:

INT0 T0 T1

若是設置T1,INTO,T0順序響應,怎麼編寫?

PT1設置爲1,其餘不設置,按照原本設置就是INTO TO
PT1 = 1; //另外兩個省略


中斷的初始化

1.選擇外部中斷方式 IT0 = 0(低電平) 或者 IT0 = 1 (下降沿)
2.設置中斷的優先級 Px0 = 0(低優先級) 或者 Px0 = 1(高優先級)
3.開局部中斷 EX0 = 1
4.總中斷 EA = 1

void main(void)
{
	IT0 = 1;  //外部中斷0 ,下降
	Px0 = 1; //外部中斷0 採用高優先級
	Ex0 = 1;  //開局部中斷
	EA = 1;   //開全局中斷
}

中斷服務函數:

void 函數名(void) iterrupt n [using m]

其中iterrupt 和 using 關鍵字
n 對應的是中斷號 根據中斷源分配中斷號
m 對應的寄存器組 (一般選擇1-3,0是復位後自動選擇的)

中斷源 中斷請求標誌 中斷號
外部中斷0 IE0 0
定時/計數器0 TF0 1
外部中斷1 IE1 2
定時/計數器 TF1 3
串行發送 TI 4
串行接收 RI 5

using m:寄存器組間

m CPU使用的工作寄存器組間 R0-R7的地址
0 第0組 0x00-0x07
1 第1組 0x08-0x0f
2 第2組 0x10-0x17
3 第3組 0x18

注意點:
中斷服務函數不是通過調函數來實現的
應在函數中做好初始化

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章