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