各種工作寄存器(定時(shí)器/中斷)
以下內(nèi)容參考郭天祥的書籍:
EA:全局中斷允許位,要想打開任何中斷,EA都必須為1.然后再允許某個(gè)特定的中斷。ES:串行口中斷允許。ES=1時(shí),串口接收或者發(fā)送完成數(shù)據(jù)以后會(huì)引起中斷(TI=1,或者RI=1)ET1:定時(shí)計(jì)數(shù)器1中斷允許。ET1=1時(shí),當(dāng)定時(shí)計(jì)數(shù)器1計(jì)數(shù)滿,溢出后引起中斷,可在中斷函數(shù)中處理定時(shí)器。EX1:外部中斷1允許位。EX=1時(shí),外部條邊沿(或者電平)中斷信號(hào)來后,會(huì)引起外部中斷,可在外部中斷函數(shù)中處理事件。ET0/EX0功能跟上面一樣,只是換了個(gè)定時(shí)器或者外部中斷。
PS:串行口中斷優(yōu)先級控制位。PS=1設(shè)定串行口為高優(yōu)先級中斷;PS=0為低優(yōu)先級中斷。
PT1:T1中斷優(yōu)先級控制位。PT1=1設(shè)定定時(shí)器T1為高優(yōu)先級中斷;PT1=0為低優(yōu)先級中斷。
PX1:外部中斷1優(yōu)先級控制位。PX1=1設(shè)定定時(shí)器外部中斷1為高優(yōu)先級中斷;PX1=0為低優(yōu)先級中斷。
PT0:T0中斷優(yōu)先級控制位。PT0=1設(shè)定定時(shí)器T0為高優(yōu)先級中斷;PT0=0為低優(yōu)先級中斷。
PX0:外部中斷0優(yōu)先級控制位。PX0=1設(shè)定定時(shí)器外部中斷0為高優(yōu)先級中斷;PX0=0為低優(yōu)先級中斷。
例:設(shè)有如下要求,將T0、外中斷1設(shè)為高優(yōu)先級,其它為低優(yōu)先級,求IP的值。
IP的首3位沒用,可任意取值,設(shè)為000,后面根據(jù)要求寫就可以了因此,最終,IP的值就是06H。
在上例中,如果5個(gè)中斷請求同時(shí)發(fā)生,求中斷響應(yīng)的次序。
響應(yīng)次序?yàn)椋憾〞r(shí)器0->外中斷1->外中斷0->實(shí)時(shí)器1->串行中斷。
其中低四位定義定時(shí)器/計(jì)數(shù)器T0,高四位定義定時(shí)器/計(jì)數(shù)器T1,各位的說明:
?、?,GATE——門控制。
●GATE=1時(shí),由外部中斷引腳INT0、INT1來啟動(dòng)定時(shí)器T0、T1。
當(dāng)INT0引腳為高電平時(shí)TR0置位,啟動(dòng)定時(shí)器T0;
當(dāng)INT1引腳為高電平時(shí)TR1置位,啟動(dòng)定時(shí)器T1。
●GATE=0時(shí),僅由TR0,TR1置位分別啟動(dòng)定時(shí)器T0、T1。
Ⅱ,C/T——功能選擇位
C/T=0時(shí)為定時(shí)功能,C/T=1時(shí)為計(jì)數(shù)功能。
置位時(shí)選擇計(jì)數(shù)功能,清零時(shí)選擇定時(shí)功能。
?、?,M0、M1——方式選擇功能
由于有2位,因此有4種工作方式
=================================================================
M1M0 工作方式 計(jì)數(shù)器模式 TMOD(設(shè)置定時(shí)器模式) ==
0 0 方式0 13位計(jì)數(shù)器 TMOD=0x00 ==
0 1 方式1 16位計(jì)數(shù)器 TMOD=0x01 ==
1 0 方式2 自動(dòng)重裝8位計(jì)數(shù)器 TMOD=0x02 ==
1 1 方式3 T0分為2個(gè)8位獨(dú)立計(jì)數(shù)器,T1為無中斷重裝8位計(jì)數(shù)器 TMOD=0x03 ==
=================================================================
=============================================================================================
TF1 TCON.7 8FH 定時(shí)器1溢出標(biāo)志;當(dāng)定時(shí)器/計(jì)數(shù)器發(fā)生溢出時(shí)由硬件置位;該位可以用軟件清零,當(dāng)CPU轉(zhuǎn)向中斷服務(wù)程序時(shí)該位被自動(dòng)清零,要注意的是, 如果使用定時(shí)器中斷,那么改位不用人為操作,但是是用軟件的話,查詢到該位置1后,就需要用軟件清0.
TR1 TCON.6 8EH 定時(shí)器1運(yùn)行控制,由軟件置位和清零,分別可以啟動(dòng)和停止定時(shí)/計(jì)數(shù)器1,當(dāng)GATE=1,且INT1=1時(shí),TR1=1啟動(dòng)定時(shí)器。當(dāng)GATE=0, TR1=1啟動(dòng)定時(shí)器。
TF0 TCON.5 8DH 定時(shí)器0標(biāo)志
TR0 TCON.4 8CH 定時(shí)器0運(yùn)行控制
IE1 TCON.3 8BH 外部中斷1的中斷標(biāo)志,當(dāng)探測到外部中斷1時(shí)由硬件置位,當(dāng)轉(zhuǎn)入中斷服務(wù) 程序后用軟件清零
IT1 TCON.2 8AH 外部中斷1控制位,其置位和清零由軟件設(shè)置,分別對應(yīng)著外部中斷1的下降沿觸發(fā)和低電平觸發(fā)
當(dāng)IT1=1,為電平觸發(fā)方式,每個(gè)機(jī)器周期的S5P2采樣INT1引腳,若INT1腳為低電平,則置1,否則IE1清0。
當(dāng)IT1=0,INT1為跳變延觸發(fā)方式,當(dāng)?shù)谝粋€(gè)周期采樣到INT1位低電平時(shí),則IE1=1,表示外部中斷1正在向CPU申請中斷。當(dāng)CPU響應(yīng)中斷,轉(zhuǎn)向中斷服務(wù)程序時(shí),該位由硬件清0.
IE0 TCON.1 89H 外部中斷0的中斷標(biāo)志
IT0 TCON.0 88H 外部中斷0控制位
=============================================================================================
可以通過TMOD寄存器中的M1M0來進(jìn)行工作方式的選擇