MCS-51單片機是一種集成的電路芯片,是采用超大規模集成電路技術把具有數據處理能力的中央處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計時器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊硅片上構成的一個小而完善的計算機系統。本文主要詳解MCS-51與中斷有關的寄存器、中斷入口地址及編號,具體的跟隨小編一起來了解一下。
MCS-51單片機引腳圖及功能
1、電源
Vcc:芯片電源,一般為+5V;
Vss:接地端。
2、時鐘
XTAL1和XTAL2:晶體振蕩電路反相輸入端和輸出端。當使用內部振蕩電路時,需要外接晶振,常見有的4M、6M、11.0592M、12M等。當使用外部振蕩輸入時XTAL1接地,XTAL2接外部振蕩脈沖輸入。
3、控制線
MCS-51單片機的控制線共有4根,其中3根是復用線,具有兩種功能。
(1)ALE/PROG:地址鎖存允許/編程脈沖。
ALE:正常使用時為ALE功能,主要用來鎖存P0口送出的8位地址。P0口一般分時傳送低8位地址和數據信號,且均為二進制數。區分是否是低8位數據信號還是地址信號就看ALE引腳。當ALE信號有效時,P0口傳送的是低8位地址信號;當ALE無效時,P0口傳送的是8位數據信號。一般在ALE引腳的下降沿鎖定P0口傳送的內容,即低8位地址信號。
當CPU不執行訪問外部RAM指令(MOVX)時,ALE以時鐘振蕩頻率1/6的固定頻率輸出,所以ALE信號也可以作為外部芯片的時鐘信號。但當CPU執行訪問外部RAM(MOVX)時,ALE將跳過一個ALE脈沖。
PROG:當單片機在編程期間,該引腳輸入編程脈沖(由編程器提供)。
(2)PSEN:外部ROM讀選通信號。
當單片機讀外部ROM時,每個機器周期內PSEN兩次有效輸出。PSEN就相當于外部ROM芯片輸出允許的選通信號。但讀片內ROM和讀片外RAM時無效。
(3)RST:復位引腳。
RST為單片機上電復位輸入端,只要在該引腳上連續保持兩個機器周期以上的高電平,單片機就可以實現復位操作,復位后程序從0000H處開始執行。在一般應用中可以用RC電路來實現單片機的上電復位,在一些工業控制等要求較高的場合一般用專用的看門狗芯片進行復位及電源監控,典型的RC上電復位電路如圖所示:
(4)EA/VPP:內外ROM選擇/EPROM編程電源。
EA:正常工作時,EA為內外ROM選擇端。MCS-51型單片機的尋址范圍為64KB,其中4K在片內,60K在片外,當EA為高電平時,先訪問片內ROM,當程序長度超過4K時將自動轉向執行外部ROM中的程序。當EA為低電平時單片機只訪問外部ROM,對老的8031單片機(因片內沒有ROM),EA必須接地。目前的大部分單片機都自帶ROM,所以一般應用中也將EA接高電平。
VPP:對于有內部EPROM的單片機,在片內EPROM編程期間,此引腳用于施加編程電源。
4、I/O引腳
MCS-51單片機共有4個8位并行I/O端口,共32個可編程I/O引腳。四個I/O口各有各的功能,在一般情況下,P0專用于分時傳送低8位地址信號和8位數據信號,P2口專用于傳送高8位地址信號,P3口大部分時間用于第二功能。當然所有I/O口都可以做為普通的輸入/輸出端口用。
MCS-51與中斷有關的寄存器、中斷入口地址及編號
一、中斷入口地址及編號
MCS-51在每一個機器周期順序檢查每一個中斷源,在機器周期的S6按優先級處理所有被激活的中斷請求,此時,如果CPU沒有正在處理更高或相同優先級的中斷,或者現在的機器周期不是所執行指令的最后一個機器周期,或者CPU不是正在執行RETI指令或訪問IE和IP的指令(因為按MCS-51中斷系統的特性規定,在執行完這些指令之后,還要在繼續執行一條指令,才會響應中斷),CPU在下一個機器周期響應激活了的最高級中斷請求。
中斷響應的主要內容就是由硬件自動生成一條長調用LCALL addr16指令,這里的addr16就是程序存儲器中相應的中斷區入口地址,這些中斷源的服務程序入口地址如下:
生成LCALL指令后,CPU緊跟著便執行之。首先將PC(程序計數器)的內容壓入堆棧保護斷點,然后把中斷入口地址賦予PC,CPU便按新的PC地址(即中斷服務程序入口地址)執行程序。
值得一提的是,各中斷區只有8個單元,一般情況下(除非中斷程序非常簡單),都不可能安裝下一個完整的中斷服務程序。因此,通常是在這些入口地址區放置一條無條件轉移指令,使程序按轉移的實際地址去執行真正的中斷服務程序。
對于匯編,中斷函數的一般形式為:
對于C語言,中斷函數的一般形式為:
二、與中斷有關的寄存器
1、定時器控制寄存器TCON
IE1:外部邊沿觸發中斷1請求標志,其功能和操作類似于TF0。
IT1:外部中斷1類型控制位,通過軟件設置或清除,用于控制外中斷的觸發信號類型。IT1=1,邊沿觸發。IT=0是電平觸發。
IE0:外部邊沿觸發中斷0請求標志,其功能和操作類似于IE1。
IT0:外部中斷0類型控制位,通過軟件設置或清除,用于控制外中斷的觸發信號類型。其功能和操作類似于IE1。
2、 中斷允許寄存器IE
EA:中斷總控制位,EA=1,CPU開放中斷。EA=0,CPU禁止所有中斷。
ES:串行口中斷控制位,ES=1允許串行口中斷,ES=0,屏蔽串行口中斷。
ET1:定時/計數器T1中斷控制位。ET1=1,允許T1中斷,ET1=0,禁止T1中斷。
EX1:外中斷1中斷控制位,EX1=1,允許外中斷1中斷,EX1=0,禁止外中斷1中斷。
ET0:定時/計數器T0中斷控制位。ET1=1,允許T0中斷,ET1=0,禁止T0中斷。
EX0:外中斷0中斷控制位,EX1=1,允許外中斷0中斷,EX1=0,禁止外中斷0中斷。
3、中斷優選級控制寄存器IP
PS:串行口中斷口優先級控制位,PS=1,串行口中斷聲明為高優先級中斷,PS=0,串行口定義為低優先級中斷。
PT1:定時器1優先級控制位。PT1=1,聲明定時器1為高優先級中斷,PT1=0定義定時器1為低優先級中斷。
PX1:外中斷1優先級控制位。PT1=1,聲明外中斷1為高優先級中斷,PX1=0定義外中斷1為低優先級中斷。
PT0:定時器0優先級控制位。PT1=1,聲明定時器0為高優先級中斷,PT1=0定義定時器0為低優先級中斷。
PX0:外中斷0優先級控制位。PT1=1,聲明外中斷0為高優先級中斷,PX1=0定義外中斷0為低優先級中斷。
4、串行通信控制寄存器SCON
它是一個可尋址的專用寄存器,用于串行數據的通信控制,單元地址是98H,其結構格式如下:
TI:發送中斷標志位。
方式0時,發送完第8位數據后,由硬件置位,其它方式下,在發送或停止位之前由硬件置位,因此,TI=1表示幀發送結束,TI可由軟件清“0”。
RI:接收中斷標志位。
接收完第8位數據后,該位由硬件置位,在其他工作方式下,該位由硬件置位,RI=1表示幀接收完成。
5、T2狀態控制寄存器T2CON
TF2:T2溢出中斷標志。TF2必須由用戶程序清“0”。當T2作為串口波特率發生器時,TF2不會被置“1”。
EXF2:定時器T2外部中斷標志。EXEN2為1時,當T2EX(P1.1)發生負跳變時置1中斷標志DXF2,EXF2必須由用戶程序清“0”。
EXEN2:T2的外部中斷充許標志
-
單片機
+關注
關注
6035文章
44554瀏覽量
634660 -
寄存器
+關注
關注
31文章
5336瀏覽量
120232 -
MCS-51
+關注
關注
2文章
126瀏覽量
29331
發布評論請先 登錄
相關推薦
評論