8051
Tu, Yung-Chin
中斷控制與外部中斷
中斷控制
中斷函 數編號
中斷源 中斷向
量位址 說明 優先
順序
0 INT0 0003h 外部中斷腳INT0 (P32) 1 1 Timer0 000Bh 計時/計數0溢位中斷(T0) 2 2 INT1 0013h 外部中斷腳INT1(P33) 3 3 Timer1 001Bh 計時/計數1溢位中斷(T1) 4
4 UART 0023h 串列中斷 5
5 Timer2 002Bh 計時/計數2溢位中斷(僅52) 6
和中斷相關的暫存器
暫存器 位址 D7 D6 D5 D4 D3 D2 D1 D0
IP中斷優先 B8h - - - PS PT1 PX1 PT0 PX0
IE中斷致能 A8h EA - - ES ET1 EX1 ET0 EX0
TCON計時控制 88h TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
中斷的設定
EX0
ET0
EX1
ET1
ES
EA INT0
INT1 TIMER0
串列腳 TIMER1
EA
EA
EA
EA
IE中斷致能
ET2 TIMER2
EA
PX0
PT0
PX1
PT1
PS
PT2
IP中斷優先
interrupt 0 interrupt 1 interrupt 2 interrupt 3 interrupt 4 interrupt 5
中斷的設定控制
D7 D6 D5 D4 D3 D2 D1 D0
EA - ET2 ES ET1 EX1 ET0 EX0
中斷的設定控制
位 元
名 稱
功 能
D7 EA EA=1允許各別中斷的設定 EA=0禁止所有中斷工作
D6 - 無使用
D5 ET 2
ET2=1計時/計數器2中斷致 能
ET2=0除能 D4 ES ES0=1串列中斷致能 ES0=0串列中斷除能 D3 ET
1
ET1=1計時/計數器1中斷致 能
ET1=0計時/計數器1中斷 除能
D2 EX 1
EX1=1外部INT1腳中斷致能 EX1=0外部INT1腳中斷除 能
D1 ET 0
ET0=1計時/計數器0中斷致 能
ET0=0計時/計數器0中斷 除能
D0 EX 0
EX0=1外部INT0腳中斷致能 EX0=0外部INT0腳中斷除 能
中斷的設定控制
D7 D6 D5 D4 D3 D2 D1 D0
- - PT2 PS PT1 PX1 PT0 PX0
中斷的設定控制
位元 名稱 功 能
D7 - 無使用
D6 - 無使用
D5 PT2 PT2=1,計時/計數器2中斷致能優先。
D4 PS PS0=1,串列中斷致能優先。
D3 PT1 PT1=1,計時/計數器1中斷致能優先。
D2 PX1 PX1=1,外部INT1腳中斷致能優先。
D1 PT0 PT0=1,計時/計數器0中斷致能優先。
D0 PX0 PX0=1,外部INT0腳中斷致能優先。
中斷程式的工作方式
致能中斷 {
主程式
} 中斷
中斷函數 {
中斷程式
}
(2)
(1)
(3) (2)
中斷程式的工作方式
致能中斷1 致能中斷2 {
主程式
} 最優先
中斷1
中斷函數1 {
(最優先) 中斷程式1 }
中斷2
中斷函數2 {
(次優先) 中斷程式2
}
(2)
(1) (2)
(3)
(4)
(5)
中斷程式的工作方式
致能中斷1 致能中斷2 {
主程式
} 次優先
中斷2
中斷函數2 {
(次優先) 中斷程式2
} 最優先
中斷1
中斷函數1 {
(最優先) 中斷程式1
}
(2)
(1)
(3)
(5) (4)
外部中斷控制
EX0
EX1
EA INT0
INT1
EA
IE中斷致能
PX0
PX1
IP中斷優先
interrupt
interrupt
IT0=0 IT0=1
0準位
負緣觸發
IE0
IE1
IT1=0
IT1=1
0準位
負緣觸發 TCON計時/計數器控制
計時器控制與實習
計時器的控制
暫存器 D7 D 6 D5 D4 D3 D2 D1 D0 位址
TH2 15 14 13 12 11 10 9 8 CDh
TL2 7 6 5 4 3 2 1 0 CCh
RCAP2H 15 14 13 12 11 10 9 8 CBh
RCAP2L 7 6 5 4 3 2 1 0 CAh
T2CON TF2 EXF2 RCLK TCLK EXEN 2
TR2 C_T2 CP_RL2 C8h
TH1 15 14 13 12 11 10 9 8 8Dh
TL1 7 6 5 4 3 2 1 0 8Bh
TMOD GATE C/T M1 M0 GATE C/T M1 M0 89h
TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 88h
TH0 15 14 13 12 11 10 9 8 8Ch
TL0 7 6 5 4 3 2 1 0 8Ah
TCON
D7 D6 D5 D4 D3 D2 D1 D0
TF1 TR1 TF0 TR0 末用
位元 名稱 功 能
D7 TF1 T1溢位旗標:計時/計數器1溢位時,令TF1=1。此時必須用軟體令 TF1=0,下次才可以再工作。若是用計時中斷,跳到中斷副程式後會自 動令TF1=0。
D6 TR1 T1啟動位元:TR1=1令計時/計數器1開始工作。
D5 TF0 T0溢位旗標:計時/計數器0溢位時,令TF0=1。此時必須用軟體令 TF0=0,下次才可以再工作。若是計時中斷,跳到中斷副程式後會自動 令TF0=0。
D4 TR0 T0啟動位元:TR0=1令計時/計數器0開始工作。
TMOD
D7 D6 D5 D4 D3 D2 D1 D0
GATE C/T M1 M0 GATE C/T M1 M0
計時/計數器1模式選擇 計時/計數器0模式選擇
TMOD(2)
位元 名稱 功 能
D7 GATE 決定是否由外部INT1(P33)腳啟動計時1,當GATE=1, T1的計時/計數由外部 INT1腳及TR1一起啟動用計時。若GATE=0僅由TR1啟動計時1。
D6 C/T 計數(Counter)及計時(Timer)1的選擇,當C/T=0,為內部計時。C/T=1,由外部T1(P35)腳來計 數。
D5 M1 M1 M0 模式 T1操作模式
0 0 0 13位元計時/計數器
D4 M0 0 1 1 16位元計時/計數器
1 0 2 8位元計時/計數器,可自動載入
1 1 3 停止動作
D3 GATE 決定是否由外部INT0(P32)腳啟動計時0,當GATE=1,T0的計時/計數由外部INT0 腳及TR0一起啟動計時。若GATE=0僅由TR0啟動計時0。
D2 C/T 計數(Counter)及計時(Timer)0的選擇,當C/T=0,為內部計時。C/T=1,由外部T0(P34)腳來計 數。
D1 M1 M1 M0 模式 T0操作模式
0 0 0 13位元計時/計數器
D0 M0 0 1 1 16位元計時/計數器
1 0 2 8位元計時/計數器,可自動載入
1 1 3 8位元計時/計數器,TL0由TR0啟動,TH0由TR1啟動
計時器0-1的控制方式
12MHz 除12
內部計時 時間=1uS C/T=0
C/T=1
Tx腳
外部計數
TLx THx TFx
GATE
INTx腳
TRx