第2章 51系列單片機(jī)系統(tǒng)結(jié)構(gòu)1_第1頁(yè)
第2章 51系列單片機(jī)系統(tǒng)結(jié)構(gòu)1_第2頁(yè)
第2章 51系列單片機(jī)系統(tǒng)結(jié)構(gòu)1_第3頁(yè)
第2章 51系列單片機(jī)系統(tǒng)結(jié)構(gòu)1_第4頁(yè)
第2章 51系列單片機(jī)系統(tǒng)結(jié)構(gòu)1_第5頁(yè)
已閱讀5頁(yè),還剩69頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第2章51系列單片機(jī)系統(tǒng)結(jié)構(gòu)

重點(diǎn):存儲(chǔ)器組織、定時(shí)器以及并行口結(jié)構(gòu)

難點(diǎn):并行口操作和存儲(chǔ)器組織2.1總體結(jié)構(gòu)一、51系列單片機(jī)一般的總體結(jié)構(gòu)二、AT89C52的總體結(jié)構(gòu)2.11.AT89C52的總體結(jié)構(gòu)框圖2.AT89C52芯片封裝2.1

PDIPPQFP/TQFPPLCCPQFP/TQFP

2.1PLCC3.AT89C52引腳功能

2.1

P0.0~P0.7、P1.0~P1.7、P2.0~P2.7、P3.0~P3.7為4個(gè)8位(共32個(gè))具有第1功能—I/O口功能的引腳,其中P0.0~P0.7、P1.0、P1.1、P2.0~P2.7、P3.0~P3.7等26個(gè)引腳具有第2功能,具體情況詳見(jiàn)I/O口第2功能表2.1

I/O口第2功能表引腳第2功能功能說(shuō)明P0.0~P0.7AD0~AD7低8位地址/8位數(shù)據(jù)復(fù)用信號(hào)線P1.0T2定時(shí)器/計(jì)數(shù)器2計(jì)數(shù)輸入端P1.1T2EXT2的捕捉/重新加載觸發(fā)輸入信號(hào)P2.0~P2.7A8~A15高8位地址線,16位地址可尋址64KB范圍P3.0RXDUART串行數(shù)據(jù)輸入端P3.1TXDUART串行數(shù)據(jù)輸出端P3.2INT0外部中斷0請(qǐng)求信號(hào)P3.3INT1外部中斷1請(qǐng)求信號(hào)P3.4T0定時(shí)器/計(jì)數(shù)器0計(jì)數(shù)輸入端P3.5T1定時(shí)器/計(jì)數(shù)器1計(jì)數(shù)輸入端P3.6/WR外部RAM寫(xiě)控制信號(hào)P3.7/RD外部RAM讀控制信號(hào)

2.1VCC:電源正端,典型值為+5V;GND:地。RST:復(fù)位信號(hào)引腳。必須在此引腳上出現(xiàn)兩個(gè)機(jī)器周期的高電平,才能保證單片機(jī)可靠的復(fù)位。返回低電平則退出復(fù)位。/EA/VPP:正常運(yùn)行方式:為/EA程序存儲(chǔ)器選擇信號(hào)。

Flash編程方式:為VPP編程電源輸入端(+5V或+12V)。XTAL1、XTAL2:為內(nèi)部振蕩電路的輸入端和輸出端。外接石英晶振,也可直接引入外部時(shí)鐘。

2.1ALE//PROG:正常運(yùn)行方式:為ALE地址鎖存允許信號(hào)。其作用:當(dāng)外接存儲(chǔ)器(RAM/ROM)時(shí),ALE(允許地址鎖存)的輸出用于鎖存地址的低8位。一般ALE接鎖存器74HC373的EN端。當(dāng)沒(méi)有外部存儲(chǔ)器時(shí),ALE端可輸出脈沖信號(hào),此頻率為石英振蕩頻率的1/6。因此,它可用作對(duì)外部芯片提供輸出的時(shí)鐘,或用于定時(shí)的目的。

Flash編程方式:為/PROG編程脈沖輸入信號(hào)。2.2中央處理器

51系列單片機(jī)都有一個(gè)在功能上相同(或相近)的中央處理器CPU。CPU由運(yùn)算器(包括算術(shù)邏輯運(yùn)算部件ALU、布爾處理器、工作寄存器)、控制器組成。

一、運(yùn)算器

2.21.ALU和布爾處理器是實(shí)現(xiàn)數(shù)據(jù)傳送和數(shù)據(jù)運(yùn)算的部件。

ALU完成:數(shù)據(jù)傳送操作;加、減、乘、除算術(shù)運(yùn)算;增量、減量運(yùn)算;十進(jìn)制調(diào)整運(yùn)算;與、或、非、異或邏輯運(yùn)算。

布爾處理器實(shí)現(xiàn)位運(yùn)算,即位置“1”、清“0”和取反。

2.2

2.工作寄存器:就是對(duì)用戶(hù)開(kāi)放的寄存器,包括:程序計(jì)數(shù)器PC,位于內(nèi)部SFR中的累加器ACC(A)、寄存器B、、數(shù)據(jù)指針DPTR、程序狀態(tài)字PSW、堆棧指針SP,位于內(nèi)部RAM中的工作寄存器R0~R7。二、控制器

2.2控制整個(gè)單片機(jī)系統(tǒng)各種操作的部件。包括:時(shí)鐘發(fā)生器、定時(shí)控制邏輯、指令寄存器、指令譯碼器、存儲(chǔ)器的/數(shù)據(jù)傳送控制等。2.3存儲(chǔ)器組織

51系列(主要品種:51子系列、52子系列)單片機(jī)有5個(gè)存貯空間(擴(kuò)展系統(tǒng)地址線A0~A15):①擴(kuò)展系統(tǒng)有64KB(0~0FFFFH)程序ROM空間,片內(nèi)51子系列有4KB(0000H~0FFFH)或52子系列8KB(0000H~1FFFH)程序ROM空間;②51子系列128B(0~7FH)、52子系列256B(0~0FFH)內(nèi)部RAM空間;

2.3

③128B(80H~0FFH,名義值)內(nèi)部特殊功能寄存器(SFR);④256b(0~0FFH,名義值)位尋址空間,其中128b((0~7FH))在內(nèi)部RAM20H~2FH的16B中,另128b(80H~0FFH,名義值)在內(nèi)部SFR中能夠被8整除的16B中。⑤擴(kuò)展系統(tǒng)有64KB(0~0FFFFH)外部數(shù)據(jù)存儲(chǔ)器(RAM/IO)空間。一、程序存儲(chǔ)器2.3

51系列單片機(jī)程序存儲(chǔ)器空間為64KB,其地址指針為16位的程序計(jì)數(shù)器PC,對(duì)應(yīng)地址線A0~A15。1.入口地址:①?gòu)?fù)位入口地址:復(fù)位后,PC值為0,CPU從0000H開(kāi)始執(zhí)行程序,即地址0為復(fù)位入口地址。2.3

②中斷入口地址:被安排在程序ROM的開(kāi)始部分,各中斷入口地址如下:0003H:INT0中斷;000BH:INT1中斷;0013H:T0中斷;001BH:T1中斷;0023H:串行口中斷;002BH:T2中斷(52子系列才有)

2.3

2.3

2.與程序ROM相關(guān)的引腳:①P0口、P1口:分別產(chǎn)生A0~A7、A8~A15;②ALE:地址鎖存信號(hào);③/PSEN:擴(kuò)展了外部程序存儲(chǔ)器時(shí),僅當(dāng)訪問(wèn)外部程序存儲(chǔ)器時(shí),產(chǎn)生讀選通負(fù)脈沖信號(hào);2.3

④/EA:程序存儲(chǔ)器可以在片內(nèi),也可以在片外,取決于單片機(jī)的類(lèi)型,并由/EA的電平所控制。/EA=0:CPU總是從片外M中取指令執(zhí)行程序。/EA=1:CPU先從片內(nèi)M開(kāi)始取指令執(zhí)行程序,再到片外M中取指令執(zhí)行程序。即:若系統(tǒng)設(shè)計(jì)程序存儲(chǔ)器總?cè)萘砍^(guò)片內(nèi)M容量時(shí),則CPU實(shí)際取指令時(shí),在片內(nèi)M容量范圍內(nèi)是從片內(nèi)M中取指令,超過(guò)時(shí)在片外M中取指令。在只使用片內(nèi)M時(shí),/EA必須接高電平,即/EA=1。

2.32.3以下是51系列常見(jiàn)的單片機(jī)品種(第1章曾講述)資源配置子系列片內(nèi)ROM形式片內(nèi)ROM容量片內(nèi)RAM容量定時(shí)器/計(jì)數(shù)器中斷源無(wú)ROMEPROMEEPROM(Flash)NMOS5180318051875189514KB128B2×165NMOS5280328052875289528KB256B3×166CMOS5180C3180C5187C51(AT89C51)4KB128B2×165CMOS5280C3280C5287C52(AT89C52)8KB256B3×1662.3二、內(nèi)部數(shù)據(jù)存儲(chǔ)器1.根據(jù)操作分類(lèi):⑴多功能型51系列單片機(jī)均有,一般RAM容量128B或256B。⑵單功能型少數(shù)新型51單片機(jī)才有,只能完成數(shù)據(jù)傳送操作。實(shí)質(zhì)是把外部RAM放進(jìn)片內(nèi),稱(chēng)為XRAM。2.32.根據(jù)功能和用途分類(lèi):

⑴CPU工作寄存器工作寄存器共有四組,每組8字節(jié)一個(gè)區(qū),對(duì)應(yīng)工作寄存器為R0~R7。占用內(nèi)部RAM的0~1FH共32字節(jié)。CPU使用工作寄存器只能分區(qū)使用。CPU當(dāng)前使用的工作寄存器區(qū)由程序狀態(tài)字PSW的RS0(PSW.3)位和RS1(PSW.4)位的狀態(tài)決定。2.3

RSO、RS1可以人為修改,即CPU工作在哪個(gè)工作寄存器區(qū)可以人為設(shè)定。這一特點(diǎn)可以提高CPU現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)的速度,從而提高CPU的工作效率和響應(yīng)中斷的速度。

復(fù)位時(shí)RS0、RS1為0、0,即復(fù)位時(shí)系統(tǒng)自動(dòng)設(shè)置在0區(qū)。注意:不需要4組工作寄存器時(shí),這個(gè)區(qū)域多余的單元可以作為一般的數(shù)據(jù)緩沖器使用。

對(duì)這部分RAM,CPU有三種字節(jié)型尋址方式:當(dāng)作工作寄存器的寄存器尋址,當(dāng)作普通RAM的直接尋址或寄存器間接尋址。

2.3以下是各工作寄存器的地址映象和工作寄存器區(qū)的狀態(tài)選擇表:寄存器區(qū)域寄存器地址映象R0~R7對(duì)應(yīng)寄存器區(qū)域狀態(tài)選擇RS1、RS00區(qū)00H~07H0、01區(qū)08H~0FH0、12區(qū)10H~17H1、03區(qū)18H~1FH1、12.3

⑵位標(biāo)志區(qū)內(nèi)部RAM20H~2FH這16B是位尋址區(qū),共有16×8=128b的位地址,占據(jù)位地址空間0~7FH,這128b的每個(gè)單元都可視為一個(gè)軟件觸發(fā)器,用于存放各種程序標(biāo)志、位控制變量。所以這部分位尋址區(qū)也稱(chēng)為位標(biāo)志區(qū)。注意:位標(biāo)志不多時(shí),這個(gè)區(qū)域不用的RAM可以作為數(shù)據(jù)緩沖器使用。

對(duì)這部分RAM,CPU在字節(jié)操作時(shí)有二種尋址方式:直接尋址或寄存器間接尋址;在位操作時(shí)只能直接尋址。

2.3

⑶堆棧和數(shù)據(jù)緩沖區(qū)

①堆棧

堆棧是用于CPU保護(hù)現(xiàn)場(chǎng)的后進(jìn)先出、先進(jìn)后出的緩沖器。

復(fù)位時(shí),堆棧指針SP=07H??紤]工作寄存器區(qū)和位標(biāo)志區(qū)的存在,所以堆棧一般設(shè)在30H~7FH或30H~0FFH之間。故此系統(tǒng)在初始化程序中一般要修改SP值。

如設(shè)SP=5FH,則堆棧設(shè)置在60H開(kāi)始的區(qū)域中。2.3

當(dāng)然,在實(shí)際編制的程序堆棧不需要比較大的區(qū)域,且工作寄存器組有多、位標(biāo)志較少時(shí),堆棧也可以設(shè)置在08H~2FH之間的區(qū)域范圍內(nèi),如果程序不設(shè)位標(biāo)志,堆棧區(qū)域還可以擴(kuò)大到08H~7FH或0FFH。

堆棧操作是字節(jié)型寄存器間接尋址。進(jìn)棧時(shí):SP=(SP)+1,(direct)→(SP);退棧時(shí):((SP))→direct,SP=(SP)-1。

即堆棧存放數(shù)據(jù)是由低地址向高地址逐步擴(kuò)大存放區(qū)域的(8086/8088系統(tǒng)恰好相反)。

2.3②數(shù)據(jù)緩沖區(qū)

數(shù)據(jù)緩沖區(qū)用于存放中間數(shù)據(jù)或運(yùn)算結(jié)果。對(duì)于不用作工作寄存器、位標(biāo)志、堆棧操作的內(nèi)部RAM單元均可用來(lái)作為數(shù)據(jù)緩沖區(qū)。數(shù)據(jù)緩沖器數(shù)量不夠時(shí),可以考慮選擇內(nèi)部RAM容量較大的品種或擴(kuò)展外部RAM解決。

數(shù)據(jù)緩沖器的尋址方式為字節(jié)型,有兩種:直接尋址或寄存器間接尋址。對(duì)于52系列,內(nèi)部RAM80~0FFH單元只能采用字節(jié)型寄存器間接尋址方式。2.3

2.3三、特殊功能寄存器

特殊功能寄存器SFR包括:內(nèi)部CPU寄存器、I/O口鎖存器、各種功能控制寄存器和狀態(tài)寄存器。SFR根據(jù)型號(hào)不同,多少不一,差別較大,但常用的51、52兩個(gè)子系列基本相同。SFR離散地分布在80H~0FFH之間。以下是AT89C52SFR地址映象2.3AT89C52的SFR地址映象SFR字節(jié)地址SFR字節(jié)地址SFR字節(jié)地址*P080HTH08CH*PSW0D0HSP81HTH18DH*ACC0E0HDPL82H*P190H*B0F0HDPH83H*SCON98H*T2CON0C8HPCON87HSBUF99HT2MOD0C9H*TCON88H*P2A0HRCAP2L0CAHTMOD89H*IE0A8HRCAP2A0CBHTL08AH*P30B0HTL20CCHTL18BH*IP0B8HTH20CDH2.3說(shuō)明:

①上述SFR共27個(gè),前21個(gè)51子系列均有。52子系列因?yàn)樵黾恿薚2定時(shí)器/計(jì)數(shù)器功能,從而增加了6個(gè)FSR。

②上述SFR中12個(gè)帶“*”號(hào)的SFR均能被8整除,這些寄存器均具有位尋址功能。③ACC(A)—累加器,最重要的寄存器,用于存放參加運(yùn)算的數(shù)據(jù)和運(yùn)算結(jié)果。2.3

B—運(yùn)算器中寄存器,在乘除運(yùn)算中存放參加運(yùn)算的數(shù)據(jù)和運(yùn)算結(jié)果,在其他運(yùn)算中作中間結(jié)果寄存器。SP—堆棧指針。DPTR—16位數(shù)據(jù)指針,由DPL和DPH組成,用于訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器。CPU可以DPL、DPH單獨(dú)操作。④SFR不用的單元是空的(廠商預(yù)留發(fā)展新芯片用單元),用戶(hù)不應(yīng)對(duì)這些單元進(jìn)行讀寫(xiě)操作。

SFR的操作:直接尋址(字節(jié)型、能被8整除字節(jié)的位);能寄存器尋址的有:A(字節(jié))、B(字節(jié))、C(PSW的CY位)、AB(雙字節(jié))、DPTR(雙字節(jié))。

2.3

四、位地址空間從前面可知,51系列的內(nèi)部RAM中20H~2FH單元以及地址為8的倍數(shù)的SFR可以位尋址,占據(jù)了相應(yīng)的位地址。這些單元有8位作為一個(gè)整體的字節(jié)操作,也有按位進(jìn)行的位操作。所以有字節(jié)地址和位地址之分。內(nèi)部RAM20H~2FH字節(jié)地址與0~7FH位地址對(duì)應(yīng)關(guān)系見(jiàn)下表。

2.3內(nèi)部RAM20H~2FH字節(jié)地址與0~7FH位地址對(duì)應(yīng)關(guān)系字節(jié)地址位地址D7D6……D1D020H07H06H……01H00H21H0FH0EH……09H08H22H17H16H……11H10H23H1FH1EH……19H18H24H27H26H……21H20H25H2FH2EH……29H28H26H37H36H……31H30H27H3FH3EH……39H38H28H47H46H……41H40H29H4FH4EH……49H48H2AH57H56H……51H50H2BH5FH5EH……59H58H2CH67H66H……61H60H2DH6FH6EH……69H68H2EH77H76H……71H70H2FH7FH7EH……79H78H2.3SFR80H~0FFH字節(jié)地址為8的倍數(shù)字節(jié)地址與80H~0FFH位地址對(duì)應(yīng)關(guān)系見(jiàn)下表。相關(guān)SFR字節(jié)地址與80H~0FFH位地址對(duì)應(yīng)關(guān)系SFR字節(jié)地址位地址D7D6……D1D0P080H87H86H……81H80HTCON88H8FH8EH……89H88HP190H97H96H……91H90HSCON98H9FH9EH……99H98HP2A0HA7HA6H……A1HA0HIEA8HAFHAEH……A9HA8HP3B0HB7HB6H……B1HB0HIPB8HBFHBEH……B9HB8HT2CON

C8HCFHCEH……C9HC8HPSWD0HD7HD6H……D1HD0HACCE0HE7HE6H……E1HE0HBF0HF7HF6H……F1HF0H2.4時(shí)鐘和時(shí)鐘電路、復(fù)位和復(fù)位電路一、時(shí)鐘和時(shí)鐘電路

時(shí)鐘電路是計(jì)算機(jī)的心臟,它控制著計(jì)算機(jī)的工作節(jié)奏,并且可通過(guò)提高時(shí)鐘頻率來(lái)提高CPU的速度。單片機(jī)允許的最高頻率隨型號(hào)而異,目前單片機(jī)多使用CMOS工藝,最高頻率可達(dá)60MHZ。2.4圖中:XTAL1、XTAL2分別為單片機(jī)的輸入、輸出引腳。片內(nèi)反相放大器和片外晶體振蕩器(或陶瓷諧振器)、電容組成振蕩器。其頻率主要取決于晶體振蕩器(或陶瓷諧振器),但不高于器件所允許的最高頻率。C1、C2典型值為30pf±10pf(晶體振蕩器)或40pf±10pf(陶瓷諧振器),

C1、C2作用:幫助起振、微調(diào)頻率。2.4

Rf反饋電阻。Ra限流保護(hù)。二個(gè)二極管限壓保護(hù)。/PD(PCON.1)控制振蕩器起停。

復(fù)位后/PD=1(PCON.1=0)振蕩器工作,可由軟件使PCON.1=1(/PD=0)讓振蕩器停振,使單片機(jī)停止工作,達(dá)到節(jié)電的目的。

2.4二、復(fù)位和復(fù)位電路

復(fù)位就是在啟動(dòng)計(jì)算機(jī)時(shí),使CPU和其他相關(guān)部件處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開(kāi)始工作。

復(fù)位條件:為了實(shí)現(xiàn)單片機(jī)的復(fù)位,在時(shí)鐘電路工作后,必須在單片機(jī)的RESET端至少維持2個(gè)機(jī)器周期以上的高電平,單片機(jī)才進(jìn)入復(fù)位狀態(tài)。若時(shí)鐘頻率為12MHZ,機(jī)器周期為1μs,則在單片機(jī)的RESET端只需持續(xù)2μs以上時(shí)間的高電平就能進(jìn)入復(fù)位狀態(tài)。2.4

復(fù)位狀態(tài):?jiǎn)纹瑱C(jī)復(fù)位后,片內(nèi)RAM中低128B的內(nèi)容不會(huì)改變,但特殊功能寄存器(SFR)的值被初始化。復(fù)位期間單片機(jī)的ALE、/PSEN和P0~P3端輸出高電平。各寄存器復(fù)位狀態(tài)如下:

89C52復(fù)位后各位不是全0的SFR寄存器共10個(gè):SP=07H,P0~P3(口鎖存器內(nèi)容)=11111111B,IP=××000000B,IE=0×000000B,SBUF不定,

PCON=0×××0000B,T2MOD=××××××00B。

89C52復(fù)位后各位是全0的SFR寄存器共17個(gè),包括:DPTR(DPH+DPL)、ACC、B等。

復(fù)位后,PC=0(PC不是SFR,不可直接訪問(wèn)),計(jì)算機(jī)從0000H地址開(kāi)始執(zhí)行程序。

2.4復(fù)位電路:以下是普通CMOS單片機(jī)的上電自動(dòng)復(fù)位電路和手動(dòng)開(kāi)關(guān)復(fù)位電路。上電自動(dòng)復(fù)位電路實(shí)質(zhì)是一個(gè)RC微分電路。2.4

89C52內(nèi)部具有下拉電阻,其復(fù)位電路更簡(jiǎn)單。2.4

當(dāng)系統(tǒng)中不止一個(gè)芯片需要復(fù)位操作時(shí),可參照以下系統(tǒng)復(fù)位電路的思路設(shè)計(jì)符合要求的系統(tǒng)復(fù)位電路。

其中a圖的R1、C組成RC積分電路。電容、電阻的具體值要由所用的芯片和使用頻率決定。三、CPU時(shí)序

2.4

MCS-51包括4個(gè)定時(shí)單位,它們分別是:振蕩周期(節(jié)拍)、時(shí)鐘周期(狀態(tài)周期)、機(jī)器周期和指令周期。以下是單片機(jī)兩種常用晶振4個(gè)周期信號(hào)的對(duì)比表。1.振蕩周期2.4

振蕩周期也叫節(jié)拍,用P表示,振蕩周期是指為單片機(jī)提供定時(shí)信號(hào)的振蕩源的周期。是時(shí)序中最小的時(shí)間單位。例如:若某單片機(jī)時(shí)鐘頻率為2MHz,則它的振蕩周期應(yīng)為0.5μs。2.時(shí)鐘周期

時(shí)鐘周期又叫做狀態(tài)周期,用S表示。是振蕩周期的二倍,其前半周期對(duì)應(yīng)的節(jié)拍叫P1拍,后半周期對(duì)應(yīng)的節(jié)拍叫P2。P1節(jié)拍通常完成算術(shù)、邏輯運(yùn)算,P2節(jié)拍通常完成傳送指令。3.機(jī)器周期2.4

機(jī)器周期是實(shí)現(xiàn)特定功能所需的周期。51系列一個(gè)機(jī)器周期是固定不變的,由S1~S6(S1P1、S1P2~S6P1、S6P2)等6個(gè)狀態(tài)周期(12個(gè)振蕩周期)組成。4.指令周期指令周期是最大的時(shí)序定時(shí)單位。指令周期是指執(zhí)行一條指令需要的時(shí)間。通常MCS-51的指令周期可以包含有1~4個(gè)機(jī)器周期,大多數(shù)指令執(zhí)行時(shí)間為1~2個(gè)機(jī)器周期,只有乘法和除法指令需要4個(gè)機(jī)器周期。MCS-51的幾種典型的指令時(shí)序如下圖所示,每個(gè)機(jī)器周期內(nèi)地址鎖存信號(hào)(ALE)產(chǎn)生兩次有效信號(hào),分別出現(xiàn)在S1P2、S2P1期間與S4P2、S5P1期間。但在訪問(wèn)外部RAM時(shí),ALE的有效信號(hào)將減少一次。下圖是51系列單片機(jī)的CPU時(shí)序圖2.4一、中斷的概念

執(zhí)行主程序主程序繼續(xù)執(zhí)行主程序斷點(diǎn)中斷請(qǐng)求中斷響應(yīng)執(zhí)行中斷處理程序中斷返回中斷是指CPU正在處理正常工作時(shí),外部發(fā)生了某一事件,請(qǐng)求CPU迅速處理,CPU暫時(shí)中斷當(dāng)前工作,轉(zhuǎn)去處理所發(fā)生的事件,處理完后,再回到原來(lái)被中斷的地方繼續(xù)原來(lái)工作的過(guò)程。2.5中斷系統(tǒng)

優(yōu)點(diǎn)2.5①分時(shí)操作。②實(shí)現(xiàn)實(shí)時(shí)處理。③故障處理。中斷的功能①實(shí)現(xiàn)中斷及返回。②能實(shí)現(xiàn)優(yōu)先權(quán)排隊(duì)。多個(gè)中斷源時(shí),當(dāng)幾個(gè)中斷同時(shí)到來(lái)時(shí),需要按輕重緩急處理,由此須設(shè)置各中斷的優(yōu)先級(jí)別。③能實(shí)現(xiàn)中斷嵌套。如果在執(zhí)行中斷處理程序過(guò)程中,程序又被新的更高級(jí)中斷所打斷,并去執(zhí)行新的中斷處理程序,然后返回來(lái)執(zhí)行原中斷程序。這一過(guò)程叫中斷嵌套。

2.5

二、89C52中斷系統(tǒng)2.5

下圖是89C52的中斷系統(tǒng)結(jié)構(gòu)1共有六個(gè)中斷源,分別是外部中斷兩個(gè)、內(nèi)部的定時(shí)中斷三個(gè)和串行中斷一個(gè),它們是:外部中斷0—INT0:由P3.2提供。外部中斷1—INT1:由P3.3提供。外部中斷有兩種信號(hào)方式,即電平方式和脈沖方式。T0溢出中斷—TF0:由片內(nèi)定時(shí)/計(jì)數(shù)器0提供。T1溢出中斷—TF1:由片內(nèi)定時(shí)/計(jì)數(shù)器1提供。串行口中斷—RI/TI:由片內(nèi)串行口提供。T2溢出中斷—TF2/EXF2:由片內(nèi)定時(shí)/計(jì)數(shù)器2提供。1.89C52中斷請(qǐng)求源

2.52.5

在中斷請(qǐng)求被響應(yīng)前,中斷請(qǐng)求是由CPU鎖存在特殊功能寄存器TCON、SCON、T2CON的相應(yīng)中斷標(biāo)志位中。與中斷控制有關(guān)的控制寄存器有五個(gè):TCON—定時(shí)控制寄存器;IE—中斷允許控制寄存器;IP—中斷優(yōu)先級(jí)控制寄存器;SCON—串行口控制寄存器;T2CON—T2定時(shí)控制寄存器。⑴定時(shí)控制寄存器TCON2.5

D7D6D5D4D3D2D1D0TF1TF0IE1IT1IE0IT0中斷請(qǐng)求標(biāo)志觸發(fā)方式選擇0低電平1下降沿TF1:T1溢出中斷標(biāo)志。T1被啟動(dòng)計(jì)數(shù)后,從初值開(kāi)始加1計(jì)數(shù),直至計(jì)滿(mǎn)溢出由硬件使TF1=l,向CPU請(qǐng)求中斷,此標(biāo)志一直保持到CPU響應(yīng)中斷后,才由硬件自動(dòng)清“0”TF1。也可用軟件查詢(xún)?cè)摌?biāo)志,并由軟件清“0”TF1。TF0:T0溢出中斷標(biāo)志。其操作功能類(lèi)似于TF1。IE1:外部中斷1標(biāo)志。IE1=1表明外部中斷1向CPU申請(qǐng)中斷。在邊沿觸發(fā)方式下,CPU響應(yīng)中斷后由硬件清“0”IE1IE0:外部中斷0標(biāo)志。其操作功能與IE1類(lèi)似。⑵串行口控制寄存器SCON

2.5

D7D6D5D4D3D2D1D0TIRI串行中斷請(qǐng)求標(biāo)志TI:串行發(fā)送中斷標(biāo)志。CPU將一個(gè)字節(jié)數(shù)據(jù)寫(xiě)入發(fā)送緩沖器SBUF后啟動(dòng)發(fā)送,每發(fā)送完一個(gè)串行幀,硬件置位TI,使TI=1。但CPU響應(yīng)中斷后,并不能自動(dòng)清除TI標(biāo)志,必須由軟件清“0”TI。

RI:串行接收中斷標(biāo)志。在串行口允許接收時(shí),每接收完一個(gè)串行幀,硬件置位RI,使RI=1。同樣CPU響應(yīng)中斷后不會(huì)自動(dòng)清除RI標(biāo)志,必須由軟件清“0”RI。

⑶T2定時(shí)控制寄存器T2CON2.5D7D6D5D4D3D2D1D0T2EXF2EXEN2T2中斷請(qǐng)求標(biāo)志TF2:T2溢出中斷標(biāo)志。在捕捉方式和常數(shù)自動(dòng)重裝方式中,T2溢出時(shí),置“1”TF2

,向CPU請(qǐng)求中斷。CPU響應(yīng)中斷后,必須由用戶(hù)程序清“0”TF2。在T2作為串行口波特率發(fā)生器或時(shí)鐘輸出方式時(shí),TF2不會(huì)被置“1”,即不會(huì)產(chǎn)生中斷溢出。EXF2:T2外部中斷標(biāo)志。EXEN2=1時(shí),當(dāng)T2EX(P1.1)發(fā)生負(fù)跳變時(shí)置“1”EXF2,向CPU請(qǐng)求中斷。CPU響應(yīng)中斷后,必須由用戶(hù)程序清“0”TF2。在T2作為加減計(jì)數(shù)方式時(shí),EXF2不會(huì)產(chǎn)生中斷。T2外部允許標(biāo)志2.中斷控制

2.5⑴中斷使能控制—中斷允許控制寄存器IED7D6D5D4D3D2D1D0EAET2ESET1EX1ET0EX00禁止,1允許EA:CPU中斷總允許位。EA=1,CPU開(kāi)放中斷,每個(gè)中斷源是被允許還是被禁止,分別由各自的允許位確定;EA=0,CPU屏蔽所有的中斷要求,稱(chēng)關(guān)中斷。2.5ET2:T2中斷允許位。ET2=1,允許T2中斷;ET2=0,禁止T2中斷。ES:串行口中斷允許位。ES=1,允許串行口中斷;ES=0,禁止串行口中斷。ET1:T1中斷允許位。ET1=1,允許T1中斷;ET1=0,禁止T1中斷。EX1:外部中斷1允許位。EX1=1,允許外部中斷1中斷;EX1=0,禁止外部中斷1中斷。ET0:T0中斷允許位。ET0=1,允許T0中斷;ET0=0,禁止T0中斷。EX0:外部中斷0允許位。EX0=1,允許外部中斷0中斷;EX0=0,禁止外部中斷0中斷。⑵中斷優(yōu)先級(jí)控制—中斷優(yōu)先級(jí)控制寄存器IP2.5

基本原則是:①高優(yōu)先級(jí)不能被低優(yōu)先級(jí)中斷;②低優(yōu)先級(jí)可被高優(yōu)先級(jí)中斷。③任何一種中斷(不管是高級(jí)還是低級(jí)),一旦得到響應(yīng),不會(huì)再被它的同級(jí)中斷所中斷。④兩個(gè)同一級(jí)的中斷源同時(shí)向CPU發(fā)出中斷申請(qǐng),CPU通過(guò)內(nèi)部硬件查詢(xún),按自然優(yōu)先級(jí)確定優(yōu)先響應(yīng)哪一個(gè)中斷要求。最低次低低高次高最高ET2ESET1EX1ET0EX0

PT2:定時(shí)計(jì)數(shù)器T2中斷優(yōu)先級(jí)控制位。PS:串行口中斷優(yōu)先級(jí)控制位。PT1:定時(shí)計(jì)數(shù)器T1中斷優(yōu)先級(jí)控制位。PX1:外部中斷1中斷優(yōu)先級(jí)控制位。PT0:定時(shí)計(jì)數(shù)器T0中斷優(yōu)先級(jí)控制位。PX0:外部中斷0中斷優(yōu)先級(jí)控制位。單片機(jī)復(fù)位后,IP寄存器被清0,所有中斷源為低級(jí)中斷。

中斷優(yōu)先級(jí)控制寄存器(IP)2.5

D7D6D5D4D3D2D1D0PT2PSPT1PX1PT0PX00低級(jí)別,1高級(jí)別3.中斷響應(yīng)

2.5⑴CPU的中斷響應(yīng)條件

①無(wú)同級(jí)或高級(jí)中斷正在服務(wù);②正在執(zhí)行的機(jī)器周期不是所執(zhí)行指令的最后一個(gè)機(jī)器周期;③若現(xiàn)行指令是RETI、RET或訪問(wèn)IE、IP指令,則需要執(zhí)行完當(dāng)前指令后,至少再執(zhí)行一條指令后方可響應(yīng)。⑵響應(yīng)過(guò)程①置位中斷優(yōu)先級(jí)狀態(tài)觸發(fā)器,即關(guān)閉同級(jí)和低級(jí)中斷:②調(diào)用入口地址,斷點(diǎn)入棧,相當(dāng)于硬件的LCALL指令;③進(jìn)入中斷服務(wù)程序。

中斷源入口地址(52子系列)2.5中斷源入口地址INT00003HT0000BHINT10013HT1001BHRI/TI0023HT2002BH在這些地址中往往安排一條跳轉(zhuǎn)指令,如SJMP(機(jī)器代碼2字節(jié),地址低8位可變,范圍-128B~+127B)、AJMP(機(jī)器代碼2字節(jié),地址低11位可變,范圍2KB)、LJMP(機(jī)器代碼3字節(jié),地址16位均可變,范圍64KB)跳轉(zhuǎn)到真正的中斷服務(wù)程序中去執(zhí)行程序,這是因?yàn)榻o每個(gè)中斷源安排的空間只有8個(gè)單元。特別注意:復(fù)位后PC從0000H地址開(kāi)始執(zhí)行程序,而0000H到00003H之間只有三個(gè)字節(jié),因此,真正意義上的應(yīng)用程序往往被安排在002EH單元之后的某個(gè)地址上開(kāi)始,此時(shí)也需要在0000H地址安排一條跳轉(zhuǎn)指令(常用LJMP)轉(zhuǎn)向應(yīng)用程序。4.響應(yīng)時(shí)間

2.5響應(yīng)時(shí)間—從查詢(xún)中斷請(qǐng)求標(biāo)志位到轉(zhuǎn)向中斷服務(wù)入口地址所需的機(jī)器周期數(shù)。⑴最快響應(yīng)時(shí)間以外部中斷的電平觸發(fā)為最快。從查詢(xún)中斷請(qǐng)求信號(hào)到中斷服務(wù)程序需要3個(gè)機(jī)器周期:

1個(gè)周期(查詢(xún))+2個(gè)周期(長(zhǎng)調(diào)用LCALL)⑵最長(zhǎng)時(shí)間若當(dāng)前指令是RET、RETI和IP、IE指令,緊接著下一條是乘除指令發(fā)生,則最長(zhǎng)為8個(gè)周期:

2個(gè)周期執(zhí)行當(dāng)前指令(其中含有1個(gè)周期查詢(xún))+4個(gè)周期乘除指令+2個(gè)周期長(zhǎng)調(diào)用=8個(gè)周期。三、外部中斷應(yīng)用

2.51.外部中斷觸發(fā)方式

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論