中斷源寄存器包括定時器/計數器控制寄存器TCON和串行通信口控制寄存器SCON。
1.定時器/計數器控制寄存器TCON
定時器/計數器控制寄存器 TCON 的功能主要是接收外部中斷源( INT0、INT1 )和定時器/計數器(T0、T1)送來的中斷請求信號。其字節地址是88H,它有8位,每位均可進行位尋址,各位的地址和名稱如下:
下面是寄存器TCON各位功能的說明。
IE0和IE1:它們分別是外部中斷0(?)和外部中斷1(?)的中斷請求標志位。當外部有中斷請求信號輸入單片機的?引腳(即P3.2引腳)或?引腳(即P3.3引腳)時,寄存器TCON的IE0和IE1位會被置“1”。
IT0和IT1:它們分別是外部中斷0和外部中斷1的輸入方式控制位。以外部中斷0(?)為例,當IT0=0時,開關置“1”處,?端輸入的低電平經非門后會將定時器/計數器控制寄存器TCON的IE0位置“1”;當IT1=1時,開關置“2”處,?端只有輸入信號下降沿時才能將IE0位置“1”,才表示?有中斷請求。
TF0和TF1:它們分別是定時器/計數器0和定時器/計數器1的中斷請求標志。當定時器/計數器工作產生溢出時,會將TF0或TF1位置“1”,表示定時器/計數器有中斷請求。
TR0和TR1:它們分別是定時器/計數器0和定時器/計數器1的啟動/停止位。在編寫程序時,若將TR0或TR1設置為“1”,那么相應的定時器/計數器開始工作;若設置為“0”,定時器/計數器則會停止工作。
注意:如果將TF*位設為“1”,則把IE*設置為下降沿置“1”,中斷子程序執行完后,IE*位自動變為“0”(硬件置“0”);如果將TF*位設為“0”,則把IE*設置為低電平置“1”,中斷子程序執行完后,IE*位將仍是“1”,所以在退出中斷子程序前,要將 INT*端的低電平信號撤掉,再用指令將IE*位置“0”(軟件置“0”),若退出中斷子程序后,IE*位仍為“1”,將會產生錯誤的再次中斷。
在單片機復位時,定時器/計數器控制寄存器TCON的各位均為“0”。
2.串行通信口控制寄存器SCON
串行通信口控制寄存器SCON的功能主要是接收串行通信口送到的中斷請求信號。其字節地址是98H,它有8位,每位均可進行位尋址,各位的地址和名稱如下:
?串行通信口控制寄存器SCON的TI位和RI位與中斷有關,其他位用作串行通信控制,將在后面說明。
TI:串行通信口發送中斷標志位。在串行通信時,每發送完一幀數據,串行通信口會將TI位置“1”,表明數據已發送完成,向單片機發送中斷請求信號。RI:串行通信口接收中斷標志位。在串行通信時,每接收完一幀數據,串行通信口會將 RI 位置“1”,表明數據已接收完成,向單片機發送中斷請求信號。
單片機執行中斷子程序后,TI位和RI位不能自動變為“0”,需要在退出中斷子程序時,用軟件指令將它們清0。
責任編輯人:CC
-
寄存器
+關注
關注
31文章
5412瀏覽量
123181 -
中斷源
+關注
關注
0文章
16瀏覽量
8150
發布評論請先 登錄
評論