2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第二章 MCS—51系列單片機(jī)芯片結(jié)構(gòu),2.1 MCS—51系列單片機(jī)的結(jié)構(gòu)原理2.1.1 MCS-51單片機(jī)邏輯結(jié)構(gòu) MCS-51單片機(jī)的系統(tǒng)結(jié)構(gòu)框圖如圖2.1所示。,,圖2.1 MCS-51單片機(jī)的系統(tǒng)結(jié)構(gòu)框圖,128,由圖2.1可以看出,單片機(jī)內(nèi)部主要包含下列幾個(gè)部件:u       一個(gè)8位CPU;u  

2、0;    一個(gè)時(shí)鐘電路;u       4Kbyte程序存儲(chǔ)器;u       128byte數(shù)據(jù)存儲(chǔ)器;u       兩個(gè)16位定時(shí)/計(jì)數(shù)器;u      

3、 64Kbyte擴(kuò)展總線控制電路;u       四個(gè)8-bit并行I/O端口;u       一個(gè)可編程串行接口;五個(gè)中斷源,其中包括兩個(gè)優(yōu)先級(jí)嵌套中斷,,2.1.2 MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)MCS-51單片機(jī)芯片內(nèi)部結(jié)構(gòu)框圖如圖2.2所示。,,圖2.2 MCS-51單片機(jī)芯片內(nèi)部結(jié)構(gòu)框圖,1

4、. CPU CPU即中央處理器的簡(jiǎn)稱,是單片機(jī)的核心部件,它完成各種運(yùn)算和控制操作,CPU由運(yùn)算器和控制器兩部分電路組成。(1)運(yùn)算器電路 運(yùn)算器電路包括ALU(算術(shù)邏輯單元)、ACC(累加器)、B寄存器、狀態(tài)寄存器、暫存器1和暫存器2等部件,運(yùn)算器的功能是進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算。 (2)控制器電路 控制器電路包括程序計(jì)數(shù)器PC、PC加1寄存器、指令寄存器、指令譯碼器、數(shù)據(jù)指針DPTR、堆棧指針S

5、P、緩沖器以及定時(shí)與控制電路等??刂齐娐吠瓿芍笓]控制工作,協(xié)調(diào)單片機(jī)各部分正常工作。,(3).位處理器 單片機(jī)一般用做控制,需要有較強(qiáng)的位處理功能,也把它稱為布爾處理器。位處理器以狀態(tài)寄存器中的進(jìn)位標(biāo)記為累加位,可進(jìn)行置位、復(fù)位、取反、等于“0”轉(zhuǎn)移、等于“1”轉(zhuǎn)移且清“0”以及C與可尋址位之間的傳送、邏輯與、邏輯或等位操作。俠處理操作也是通過(guò)運(yùn)算器實(shí)現(xiàn)的,但圖2.2中沒(méi)有具體畫(huà)出。 必須特別指出,雖然圖中沒(méi)有把位處理器

6、具體畫(huà)出,但位處理器是單片機(jī)的重要內(nèi)容,因?yàn)樗菃纹瑱C(jī)實(shí)現(xiàn)控制功能的保證。有關(guān)位處理器的問(wèn)題在第三章的“位處理指令”部分中還要介紹。,2. 定時(shí)器/計(jì)數(shù)器 MCS-51單片機(jī)片內(nèi)有兩個(gè)16位的定時(shí)/計(jì)數(shù)器,即定時(shí)器0和定時(shí)器1。它們可以用于定時(shí)控制、延時(shí)以及對(duì)外部事件的計(jì)數(shù)和檢測(cè)等。3. 存儲(chǔ)器 MCS-51系列單片機(jī)的存儲(chǔ)器包括數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器,其主要特點(diǎn)是程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的尋址空間是相互

7、獨(dú)立的,物理結(jié)構(gòu)也不相同。4. 并行I/O口 MCS-51單片機(jī)共有4個(gè)8位的I/O口(P0、P1、P2和P3),每一條I/O線都能獨(dú)立地用作輸入或輸出。P0口為三態(tài)雙向口,能帶8個(gè)TTL門(mén)電路,P1、P2和P3口為準(zhǔn)雙向口,負(fù)載能力為4個(gè)TTL門(mén)電路。,5. 串行口 MCS-51單片機(jī)具有一個(gè)采用通用異步工作方式的全雙工串行通信接口,可以同時(shí)發(fā)送和接收數(shù)據(jù)。6. 中斷控制系統(tǒng) 805

8、1共有5個(gè)中斷源,即外中斷2個(gè),定時(shí)/計(jì)數(shù)中斷2個(gè),串行中斷1個(gè)。7. 時(shí)鐘電路 MCS-51芯片內(nèi)部有時(shí)鐘電路,但晶體振蕩器和微調(diào)電容必須外接。時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)鐘脈沖序列,振蕩器的頻率范圍為1.2MHz~12MHz,典型取值為6MHz。8. 總線 以上所有組成部分都是通過(guò)總線連接起來(lái),從而構(gòu)成一個(gè)完整的單片機(jī)。系統(tǒng)的地址信號(hào)、數(shù)據(jù)信號(hào)和控制信號(hào)都是通過(guò)總線傳送的,總線結(jié)構(gòu)減少了單片機(jī)的連線和引腳,提高

9、了集成度和可靠性。,,2.1.3 引腳信號(hào) 圖2.3為MCS-51系列單片機(jī)引腳圖及邏輯符號(hào),它們?yōu)闃?biāo)準(zhǔn)的40腳DIP封裝。,,圖2.3 MCS-51系列單片機(jī)引腳圖及邏輯符號(hào),電源引腳Vcc和Vss Vcc:電源端,接+5V。 Vss:接地端。 時(shí)鐘電路引腳XTAL1和XTAL2 XTAL1:接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,若使用外部

10、TTL時(shí)鐘時(shí),該引腳必須接地。 XTAL2:接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出,若使用外部TTL時(shí)鐘時(shí),該引腳為外部時(shí)鐘的輸入端。 地址鎖存允許ALE 系統(tǒng)擴(kuò)展時(shí),ALE用于控制地址鎖存器鎖存P0口輸出的低8位地址,從而實(shí)現(xiàn)數(shù)據(jù)與低位地址的復(fù)用。,,,,外部程序存儲(chǔ)器讀選通信號(hào) 是讀外部程序存儲(chǔ)器的選通信號(hào),低電平有效。 程序存儲(chǔ)器地址允許輸入端

11、 /VPP 當(dāng)為高電平時(shí),CPU執(zhí)行片內(nèi)程序存儲(chǔ)器指令,但當(dāng)PC中的值超過(guò)0FFFH時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行片外程序存儲(chǔ)器指令。當(dāng)為低電平時(shí),CPU只執(zhí)行片外程序存儲(chǔ)器指令。 復(fù)位信號(hào)RST 該信號(hào)高電平有效,在輸入端保持兩個(gè)機(jī)器周期的高電平后,就可以完成復(fù)位操作。,,,,1.   輸入/輸出口引腳P0、P1、P2和P3 P0口(P0.0~P0.7):該端口為漏極開(kāi)

12、路的8位準(zhǔn)雙向口,負(fù)載能力位8高LSTTL負(fù)載,它為8位地址線和8位數(shù)據(jù)線的復(fù)用端口。 P1口(P1.0~P1.7):它是一個(gè)內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口,P1口的驅(qū)動(dòng)能力為4個(gè)LSTTL負(fù)載。 P2口(P2.0~P2.7):它為一個(gè)內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口,P2口的驅(qū)動(dòng)能力也為4個(gè)LSTTL負(fù)載。在訪問(wèn)外部程序存儲(chǔ)器時(shí),它作存儲(chǔ)器的高8位地址線。 P3口(P3.0~P3.7

13、):P3口同樣是內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口,P3口除了作為一般的I/O口使用之外,其還具有特殊功能。,,,2.2 MCS—51單片機(jī)的存儲(chǔ)器 MCS-51的存儲(chǔ)器結(jié)構(gòu)如圖2.4所示。在本節(jié)中我們將對(duì)單片機(jī)的內(nèi)部數(shù)據(jù)存儲(chǔ)器、內(nèi)部程序存儲(chǔ)器和外部存儲(chǔ)器分別作一介紹。,,圖2.4 MCS-51的存儲(chǔ)器結(jié)構(gòu),,2.2.1 內(nèi)部數(shù)據(jù)存儲(chǔ)器,1. 內(nèi)部數(shù)據(jù)存儲(chǔ)器低128單元1.寄存器區(qū) 內(nèi)部RAM

14、的前32個(gè)單元是可作為寄存器使用的,共分為4組,每組有8個(gè)寄存器,組號(hào)依次為0、1、2、3。每個(gè)寄存器都是8位,在組中按R0 ~ R7編號(hào)。寄存器常用于存放操作數(shù)及中間結(jié)果等,由于功能使用作預(yù)規(guī)定,因此稱之為通用寄存器,有時(shí)也叫工作寄存器。4組通用寄存器占據(jù)內(nèi)部RAM的00H~1FH單元地址。在任一時(shí)刻,CPU只能使用其中的一組寄存器,并且把正在使用的那組寄存器稱之為當(dāng)前寄存器組。到底是那一組,由程序狀態(tài)字寄存器PSW中RS1、、RS0

15、位的狀態(tài)組合來(lái)決定。 通用寄存器為CPU提供了數(shù)據(jù)就近存取的便利,有利于提高單片機(jī)的處理速度。因此在MCS-51中使用通用寄存器的指令特別多,又多為單字節(jié)的指令,執(zhí)行速度最快。,為什么速度快,存儲(chǔ)代碼率高呢?,,2.位尋址區(qū) 內(nèi)部RAM的20H~2FH單元,既可作為一般RAM單元使用,進(jìn)行字節(jié)操作,也可以對(duì)單元中的每一位進(jìn)行位操作,因此把該區(qū)稱之為位尋址區(qū)。位尋址區(qū)共有16個(gè)RAM單元,總計(jì)128位,位地址為此0H~7F

16、H,位尋址區(qū)是為位操作而準(zhǔn)備的,是MCS-51位處理器的數(shù)據(jù)存儲(chǔ)空間,其中的所有位均可以直接尋址。表2-2為位尋址區(qū)的位地址表。其中:MSB——Most Significant Bit(最高有效位) LSB——Least Significant Bit(最低有效位) 通常在使用中,“位”有兩種表示方式。一種是以位地址的形式(如表2-2所示),例如俠尋址區(qū)的最后一個(gè)位是7FH;另一種是以存儲(chǔ)單元

17、地址加位的形式表示,例如同樣的最后位表示為2FH.7。,在內(nèi)部RAM低128單元中,通用寄存器占去32個(gè)單元,位尋址區(qū)占去16個(gè)單元,剩余80個(gè)單元,這就是供用戶使用的一般RAM區(qū),其單元地址為30H~7FH。對(duì)于用戶RAM區(qū),只能以存儲(chǔ)器的形式來(lái)使用,其他沒(méi)有任何規(guī)定或限制。但應(yīng)當(dāng)提及,在一般應(yīng)用中常把堆棧開(kāi)辟在此區(qū)中。,再次強(qiáng)調(diào)低128個(gè)字節(jié)都可以用做一般用戶RAM,只是在低32字節(jié)上又加上寄存器區(qū)和在20H—2FH再加上位尋址區(qū)

18、。,3.用戶RAM區(qū),2.   內(nèi)部數(shù)據(jù)存儲(chǔ)器高128單元 內(nèi)部數(shù)據(jù)存儲(chǔ)器的高128個(gè)單元是為專用寄存器提供的,因此該區(qū)也稱作特殊功能寄存器區(qū)(SFR),它們主要用于存放控制命令、狀態(tài)或數(shù)據(jù)。除去程序計(jì)數(shù)器PC外,還有21個(gè)特殊功能寄存器,其地址空間為80H~FFH。這21個(gè)寄存器中有11個(gè)特殊功能寄存器具有位尋址能力,它們的字節(jié)地址剛好能被8整除。下面將對(duì)部分專用寄存器作簡(jiǎn)要介紹。,累加器ACC

19、 累加器為8位寄存器,是程序中最常用的專用寄存器,在指令系統(tǒng)中累加器的助記符為A。大部分單操作數(shù)指令的操作取自累加器,很多雙操作數(shù)指令的一個(gè)操作數(shù)也取自累加器。加、減乘和除等算術(shù)運(yùn)算指令的運(yùn)算結(jié)果都存放在累加器A或AB寄存器中,在變址尋址方式中累加器被作為變址寄存器使用。在MCS-51中由于只有一個(gè)累加器,而單片機(jī)中的大部分?jǐn)?shù)據(jù)操作都是通過(guò)累加器進(jìn)行的,故累加器的使用是十分頻繁的。,※程序計(jì)數(shù)器(PC——Program Counte

20、r) PC是一個(gè)16位的計(jì)數(shù)器。其內(nèi)容為將要執(zhí)行的指令地址,尋址范圍達(dá)64KB。PC有自動(dòng)加1的功能,以實(shí)現(xiàn)程序的順序執(zhí)行。PC沒(méi)有地址,是不可尋址的,因此用戶無(wú)法對(duì)它進(jìn)行讀寫(xiě)。但在執(zhí)行轉(zhuǎn)移、調(diào)用、返回等指令時(shí)能自動(dòng)改變其內(nèi)容,以改變程序的執(zhí)行順序。,B寄存器 B寄存器為8位寄存器,主要用于乘除指令中。乘法指令的兩個(gè)操作數(shù)分別取自累加器A和寄存器B,其中B為乘數(shù),乘法結(jié)果的高8位存放于寄存器B中。除法指令中,被除數(shù)取自

21、A,除數(shù)取自B,除法的結(jié)果商數(shù)存放于A,余數(shù)存放于B中。在其它指令中,B寄存器也可作為一般的數(shù)據(jù)單元來(lái)使用。 程序狀態(tài)字PSW 程序狀態(tài)字是一個(gè)8位寄存器,它包含程序的狀態(tài)信息。在狀態(tài)字中,有些位狀態(tài)是根據(jù)指令執(zhí)行結(jié)果,由硬件自動(dòng)完成設(shè)置的,而有些狀態(tài)位則必須通過(guò)軟件方法設(shè)定。PSW中的每個(gè)狀態(tài)位都可由軟件讀出,PSW的各位定義如表2.1。,,表2.1 PSW的各狀態(tài)位定義,(1)CY:進(jìn)位標(biāo)志位 在執(zhí)行某些算術(shù)和邏輯

22、指令時(shí),可以被硬件或軟件置位或清零。在算術(shù)運(yùn)算中它可作為進(jìn)位標(biāo)志,在位運(yùn)算中,它作累加器使用,在位傳送、位與和位或等位操作中,都要使用進(jìn)位標(biāo)志位。(2) AC:輔助進(jìn)位標(biāo)志 進(jìn)行加法或減法操作時(shí),當(dāng)發(fā)生低四位向高四位進(jìn)位或借位時(shí),AC由硬件置位,否則AC位被置“0”。在進(jìn)行十進(jìn)制調(diào)整指令時(shí),將借助AC狀態(tài)進(jìn)行判斷。,(3)用戶標(biāo)志位 該位為用戶定義的狀態(tài)標(biāo)記,用戶根據(jù)需要用軟件對(duì)其置位或清零,也可以用軟件測(cè)試F

23、0來(lái)控制程序的跳轉(zhuǎn)。(4)RS1和RS0:寄存器區(qū)選擇控制位 該兩位通過(guò)軟件置“0”或“1”來(lái)選擇當(dāng)前工作寄存器區(qū)。(5)OV:溢出標(biāo)志位 當(dāng)執(zhí)行算術(shù)指令時(shí),由硬件置位或清零來(lái)指示溢出狀態(tài)。在帶符號(hào)的加減運(yùn)算中,OV=1表示加減運(yùn)算結(jié)果超出了累加器A所能表示的符號(hào)數(shù)有效范圍(-128~+127),即運(yùn)算結(jié)果是錯(cuò)誤的,反之,OV=0表示運(yùn)算正確,即無(wú)溢出產(chǎn)生。 無(wú)符號(hào)數(shù)乘法指令MUL的執(zhí)行結(jié)

24、果也會(huì)影響溢出標(biāo)志,若置于累加器A和寄存器B的兩個(gè)數(shù)的乘積超過(guò)了255,則OV=1,反之OV=0。由于乘積的高8位存放于B中,低8位存放于A中,OV=0則意味著只要從A中取得乘積即可,否則要從BA寄存器對(duì)中取得乘積結(jié)果。,在除法運(yùn)算中,DIV指令也會(huì)影響溢出標(biāo)志,當(dāng)除數(shù)為0時(shí),OV=1,否則OV=0。(6) P:奇偶標(biāo)志位 每個(gè)指令周期由硬件來(lái)置位或清零用以表示累加器A中1的個(gè)數(shù)的奇偶性,若累加器中1的個(gè)數(shù)為奇數(shù)則P=1

25、,否則P=0?!?#160;    數(shù)據(jù)指針DPTR 數(shù)據(jù)指針DPTR為一個(gè)16位的專用寄存器,其高位用DPH表示,其低位用DPL表示,它即既可以作為一個(gè)16位的寄存器來(lái)使用,也可作為兩個(gè)8位的的寄存器DPH和DPL使用。DPTR在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)既可用來(lái)存放16位地址,也可作地址指針使用。如MOVX @DPTR,A。,2.專用寄存器的字節(jié)尋址 如上所述,MCS-51的22個(gè)專用寄存

26、器中,有21個(gè)是可尋址的。這些可尋址寄存器的名稱、符號(hào)及地址列于表2-3中。 對(duì)專用寄存器的字節(jié)尋址問(wèn)題作如下幾點(diǎn)說(shuō)明: ·21個(gè)可尋址的專用寄存器是不連續(xù)地分散在內(nèi)部RAM高128單元之中。盡管還剩余許多空閑單元,但用戶并不能使用。如果訪問(wèn)了這些沒(méi)有定義的單元,讀出的為不定數(shù),而寫(xiě)入的數(shù)被舍棄。 ·在22個(gè)專用寄存器中,唯一一個(gè)不可尋址的專用寄存器就是程序計(jì)數(shù)器(PC)。PC在物理上是獨(dú)立的,不占據(jù)R

27、AM單元,因此是不可尋址的寄存器。 ·對(duì)專用寄存器只能使用直接尋址方式,在指令中既可使用寄存器符號(hào)表示,也可使用寄存器地址表示。,3.專用寄存器的位尋址 在21個(gè)可尋址的專用寄存器中,有11個(gè)寄存器是可尋址的,即表2-3中在寄器符號(hào)前打星號(hào)的寄存器。 80C51專用寄存器中可尋址位共有83個(gè),其中許多位還有其專用名稱,尋址時(shí)既可使用位地址,也可使用位名稱。專用寄存器的可尋址位加工位尋址區(qū)的128個(gè)運(yùn)用位,構(gòu)成了MC

28、S-51位處理器的整個(gè)數(shù)據(jù)位存儲(chǔ)空間。下面再把各專用寄存器的位地址/位名稱列于表2-4中。,2.2.3 MCS-51的堆棧操作,堆棧是一種數(shù)據(jù)結(jié)構(gòu),所謂堆棧就是只允許在其一端進(jìn)行數(shù)據(jù)插入和數(shù)據(jù)刪除操作的線性表。數(shù)據(jù)寫(xiě)入堆棧稱為插入運(yùn)算(PUSH),也叫入棧。數(shù)據(jù)從堆棧中讀出稱之為刪除運(yùn)算(POP),也叫出棧。堆棧的大特點(diǎn)就是“后進(jìn)先出”的數(shù)據(jù)操作規(guī)則,常把后進(jìn)先出寫(xiě)為L(zhǎng)IFO(Last-In First-Out),這里所說(shuō)的進(jìn)與出就是數(shù)

29、據(jù)的入棧和出棧。即先入棧的數(shù)據(jù)由于存放的棧的底部,因此后出棧;而后入棧的數(shù)據(jù)存放在棧的頂部,因此先出棧。這跟往彈倉(cāng)壓入子彈和從彈倉(cāng)中彈出子彈的情形非常類似。,1.堆棧的功用堆棧主要是為子程序調(diào)用和中斷操作而設(shè)立。其具體功能有兩:保護(hù)斷點(diǎn)和保護(hù)現(xiàn)場(chǎng)。因?yàn)樵谟?jì)算機(jī)中無(wú)論是執(zhí)行子程序調(diào)用操作還是執(zhí)行中斷操作,最終都要返主程序。因此在計(jì)算機(jī)轉(zhuǎn)去執(zhí)行子程序或中斷服務(wù)之前,必須考慮其返回問(wèn)題。為此應(yīng)預(yù)先把主程序的斷點(diǎn)保護(hù)起來(lái),為程序的正確返回作準(zhǔn)

30、備。計(jì)算機(jī)在轉(zhuǎn)去執(zhí)行子程序或中斷服務(wù)程序以后,很可能要使用單片機(jī)中的一些寄存單元,這樣就會(huì)破壞這些寄存單元中的原有內(nèi)容。為了既能在子程序或中斷服務(wù)程序中使用這些寄存單元,又能保證在返回主程序之,后恢復(fù)這些寄存單元的原有內(nèi)容。所以在轉(zhuǎn)中斷服務(wù)程序之前要把單片機(jī)中各有關(guān)寄存單元的內(nèi)容保存起來(lái),這就是所謂現(xiàn)場(chǎng)保護(hù)。,那么把斷點(diǎn)和現(xiàn)場(chǎng)內(nèi)容保存在哪兒呢?保存在堆棧中。可見(jiàn)堆棧主要是為中斷服務(wù)操作和子程序調(diào)用而設(shè)立的。為了使計(jì)算機(jī)能進(jìn)行多級(jí)中斷嵌

31、套及多重子程序嵌套,所以要求堆棧具有足夠的容量(或者說(shuō)足夠的堆棧深度)。此外,堆棧也可用于數(shù)據(jù)的臨時(shí)存放,在程序設(shè)計(jì)中時(shí)常用到,2.堆棧的開(kāi)辟 鑒于單片機(jī)的單片特點(diǎn),堆棧只能開(kāi)辟在芯片的內(nèi)部數(shù)據(jù)存儲(chǔ)器中,即所謂的內(nèi)堆棧形式。MCS-51當(dāng)然也不例外。內(nèi)堆棧的主要優(yōu)點(diǎn)是操作速度快,但堆棧容量有限。,3.堆棧指示器如前所述,堆棧共有兩種操作:進(jìn)棧和出棧。但不論是數(shù)據(jù)進(jìn)棧還是數(shù)據(jù)出棧,都是對(duì)堆棧的棧頂單元進(jìn)行的,即對(duì)棧頂單元的和讀

32、操作。為了指示棧頂?shù)刂罚砸O(shè)置堆棧指示器SP(Stack Pointer),SP的內(nèi)容就是堆棧棧頂?shù)拇鎯?chǔ)單元地址。MCS-51單片機(jī)由于堆棧設(shè)在內(nèi)部RAM中,因此SP是一個(gè)8位寄存器,實(shí)際上SP就是專用寄存器的一員。系統(tǒng)復(fù)位后,SP的內(nèi)容為07H,便由于堆棧最好在內(nèi)部RAM的30H~7FH單元中開(kāi)辟,所以在程序設(shè)計(jì)時(shí)應(yīng)注意把SP值初始化為30H以上,以免占用寶貴的寄存器區(qū)和位尋址區(qū)。SP的內(nèi)容一經(jīng)確定,堆棧的位置也就跟著確定下來(lái),

33、由于SP可初始化為不同值,因此堆棧位置是浮動(dòng)的。,4.堆棧類型堆??捎袃煞N類型:向上生長(zhǎng)型和向下生長(zhǎng)型,如圖2.5所示。向上生長(zhǎng)型堆棧,棧底在低地址單元。隨著數(shù)據(jù)進(jìn)棧,地址遞增,SP的內(nèi)容越來(lái)越大,指針上移;反之,隨著數(shù)據(jù)的出棧,地址遞減,SP的內(nèi)容越來(lái)越小,指針下移。MCS-51屬向上生長(zhǎng)型堆棧,這種堆棧操作規(guī)則如下:進(jìn)棧操作:先SP加1,后寫(xiě)入數(shù)據(jù)出棧操作:先讀出數(shù)據(jù),后SP減1向下生長(zhǎng)型堆棧,棧底設(shè)在高地址單元。隨著數(shù)

34、據(jù)進(jìn)棧。地址遞減,SP內(nèi)容越來(lái)越小,指針下移;反之,隨著數(shù)據(jù)的出棧,地址遞增,SP內(nèi)容越來(lái)越大,指針上移。其堆棧操作規(guī)則與向上生長(zhǎng)型正好相反。,2.2.4 程序存儲(chǔ)器 在MCS-51系列中,程序存儲(chǔ)器被用來(lái)存放程序、常數(shù)或表格等。在8051中,其片內(nèi)有4K字節(jié)的ROM存儲(chǔ)單元,地址為0000H~0FFFH。8751有4K字節(jié)的EPROM,而8052和8752則有8K字節(jié)的片內(nèi)存儲(chǔ)器。8031和8032無(wú)片內(nèi)程序存儲(chǔ)器,所以片內(nèi)

35、程序存儲(chǔ)器的有無(wú)是區(qū)分芯片的主要標(biāo)志。 在程序存儲(chǔ)器中,以下6個(gè)單元具有特殊含義:,5.堆棧使用方法堆棧抽使用有兩種方法。一種是自動(dòng)方式,即在調(diào)用子程序或中斷時(shí),返回地址(斷點(diǎn))自動(dòng)進(jìn)棧。程序返回時(shí),斷點(diǎn)再自動(dòng)彈回PC。這種堆棧操作無(wú)需用戶干預(yù),因此稱為自動(dòng)方式。另一種是指令方式,即使用專用的堆棧操作指令,進(jìn)行進(jìn)出棧操作。其進(jìn)棧指令為PUSH,出棧指令為POP,例如現(xiàn)場(chǎng)保護(hù)就是指令方式的進(jìn)棧操作;而現(xiàn)場(chǎng)恢復(fù)則是指令方式的

36、出棧操作。,0000H:?jiǎn)纹瑱C(jī)復(fù)位后,PC=0000H,程序從0000H開(kāi)始執(zhí)行指令。 0003H:外部中斷0入口地址。 000BH:定時(shí)器0中斷入口地址。 0013H:外部中斷1入口地址。 001BH:定時(shí)器1中斷入口地址。 0023H:串行口中斷入口地址。 在系統(tǒng)中斷相應(yīng)之后,將自動(dòng)轉(zhuǎn)各中斷入口地址處執(zhí)行程序,而中斷服務(wù)程序一般無(wú)法存放于幾個(gè)單元之內(nèi),因此在中斷入口地址處

37、往往存放一條無(wú)條件轉(zhuǎn)移指令進(jìn)行跳轉(zhuǎn),以便執(zhí)行中斷服務(wù)程序。,,2.3MCS-51單片機(jī)輸入/輸出(I/O)口2.3.1 P0口 圖2.6給出了P0口的邏輯結(jié)構(gòu),它由一個(gè)鎖存器、兩個(gè)三態(tài)輸入緩沖器、一個(gè)多路復(fù)用開(kāi)關(guān)以及控制電路和驅(qū)動(dòng)電路等組成。,,,圖2.6 P0口的邏輯結(jié)構(gòu),P0口可以作為輸入輸出口,在實(shí)際應(yīng)用中它通常作為地址/數(shù)據(jù)復(fù)用總線。在訪問(wèn)外部存儲(chǔ)器時(shí),P0口為真正的雙向口。 2.3.2 P1口

38、 P1口是一個(gè)準(zhǔn)雙向口,通常作為I/O口使用,其位結(jié)構(gòu)圖如圖2.7。由于在其輸出端接有上拉電阻,故可以直接輸出而無(wú)需外接上拉電阻。,圖2.7 位結(jié)構(gòu)圖,,2.3.3 P2口 P2口位結(jié)構(gòu)圖如圖2.8。P2通用為一個(gè)準(zhǔn)雙向口,其位結(jié)構(gòu)與P0口相似。對(duì)于8031單片機(jī)來(lái)說(shuō),P2口通常用作地址信號(hào)輸出。,,圖2.8 P2口位結(jié)構(gòu)圖,P2.x,2.3.4 P3口 P3口的位結(jié)構(gòu)

39、圖如圖2.9。P3口為雙功能口,當(dāng)P3口作為通用I/O口使用時(shí),它為準(zhǔn)雙向口,且每位都可定義為輸入或輸出口,其工作原理同P1口類似。,,圖2.9 P3口的位結(jié)構(gòu)圖,P3.x,,P3口還具有第二功能,其引腳描述如表2-5。表2-5 P3口特殊功能,,,,,,,2.4 單片機(jī)的工作方式2.4.1 復(fù)位及復(fù)位電路 在MCS-51中,最常見(jiàn)的復(fù)位電路為圖2.10所示的上電復(fù)位電路,它能有效的實(shí)現(xiàn)上電復(fù)位和手動(dòng)

40、復(fù)位。RST引腳是復(fù)位信號(hào)輸入端,復(fù)位信號(hào)為高電平有效,其有效時(shí)間應(yīng)持續(xù)24個(gè)振蕩周期以上才能完成復(fù)位操作,若使用6MHz晶振,則需持續(xù)4μS以上才能完成復(fù)位操作。圖2.10中,在通電瞬間,由于RC的充電過(guò)程,在 RST端出現(xiàn)一定寬度的正脈沖,只要該正脈沖保持10ms以上,就能使單片機(jī)自動(dòng)復(fù)位,在6MHz時(shí)鐘時(shí),通常CR取22μF,R1取200Ω,R2取1KΩ,這時(shí)能可靠的上電復(fù)位和手動(dòng)復(fù)位。,,,,CPU在第二個(gè)機(jī)器周期內(nèi)執(zhí)行內(nèi)部復(fù)位

41、操作,以后每個(gè)機(jī)器周期重復(fù)一次,直至RST端電平變低。在單片機(jī)復(fù)位期間,AlE和 信號(hào)都不產(chǎn)生。復(fù)位操作將對(duì)部分專用寄存器產(chǎn)生影響 。,圖2.10 上電復(fù)位電路,,2.4.2 時(shí)鐘電路和時(shí)序1. 時(shí)鐘電路 根據(jù)硬件電路的不同,單片機(jī)的時(shí)鐘連接方式可分為內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式,如圖2.11所示。,,(a)內(nèi)部方式時(shí)鐘電路 (b)外接時(shí)鐘電路

42、 圖2.11 時(shí)鐘電路,2. 指令時(shí)序(1)振蕩周期 振蕩周期指為單片機(jī)提供定時(shí)信號(hào)的振蕩源的周期或外部輸入時(shí)鐘的周期。(2)時(shí)鐘周期 時(shí)鐘周期又稱作狀態(tài)周期或狀態(tài)時(shí)間S,它是振蕩周期的兩倍,它分為P1節(jié)拍和P2節(jié)拍,通常在P1節(jié)拍完成算術(shù)邏輯操作,在P2節(jié)拍完成內(nèi)部寄存器之間的傳送操作。(3)機(jī)器周期 一個(gè)機(jī)器周期由6個(gè)狀態(tài)組成,如果把一條指令的

43、執(zhí)行過(guò)程分作幾個(gè)基本操作,則將完成一個(gè)基本操作所需的時(shí)間稱作機(jī)器周期。單片機(jī)的單周期指令執(zhí)行時(shí)間就為一個(gè)機(jī)器周期。,,(4)指令周期 指令周期即執(zhí)行一條指令所占用的全部時(shí)間,通常為1~4個(gè)機(jī)器周期。在圖2.12中給出了MCS-51單片機(jī)的典型取指、執(zhí)行時(shí)序。,,圖2.12 MCS-51單片機(jī)取指、執(zhí)行時(shí)序,2.4.3 單片機(jī)的低功耗方式 對(duì)于MCS-51系列機(jī)型來(lái)說(shuō),它們有待機(jī)方式和掉電保護(hù)方式兩種

44、低功耗方式。通過(guò)設(shè)置電源控制寄存器PCON的相關(guān)位可以確定當(dāng)前的低功耗方式。PCON寄存器格式如下:,其中SMOD:波特率倍增位 GF0,GF1:通用標(biāo)志位 PD:掉電方式位,PD=1為掉電方式 IDL:待機(jī)方式位,IDL=1為待機(jī)方式,,1.       待機(jī)方式 將PCON寄

溫馨提示

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

評(píng)論

0/150

提交評(píng)論