MCS-51單片機(jī)應(yīng)用設(shè)計(jì)課后答案_第1頁(yè)
MCS-51單片機(jī)應(yīng)用設(shè)計(jì)課后答案_第2頁(yè)
MCS-51單片機(jī)應(yīng)用設(shè)計(jì)課后答案_第3頁(yè)
MCS-51單片機(jī)應(yīng)用設(shè)計(jì)課后答案_第4頁(yè)
MCS-51單片機(jī)應(yīng)用設(shè)計(jì)課后答案_第5頁(yè)
已閱讀5頁(yè),還剩6頁(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、第一章 單片機(jī)概述1.2除了單片機(jī)這一名稱之外,單片機(jī)還可稱為(微控制器)和(嵌入式控制器)。1.3單片機(jī)與普通計(jì)算機(jī)的不同之處在于其將(微處理器)、(存儲(chǔ)器)和(各種輸入輸出接口)三部分集成于一塊芯片上。4、單片機(jī)的發(fā)展大致分為哪幾個(gè)階段?答:?jiǎn)纹瑱C(jī)的發(fā)展歷史可分為四個(gè)階段:第一階段(1974年-1976年):?jiǎn)纹瑱C(jī)初級(jí)階段。第二階段(1976年-1978年):低性能單片機(jī)階段。第三階段(1978年-現(xiàn)在):高性能單片機(jī)階段。第四階段(1982年-現(xiàn)在):8位單片機(jī)鞏固發(fā)展及16位單片機(jī)、32位單片機(jī)推出階段1.5單片機(jī)根據(jù)其基本操作處理的位數(shù)可分為哪幾種類型?答:?jiǎn)纹瑱C(jī)根據(jù)其基本操作處理的

2、位數(shù)可分為:1位單片機(jī)、4位單片機(jī)、8位單片機(jī)、16位單片機(jī)和32位單片機(jī)。1.6 MCS-51系列單片機(jī)的基本芯片分別為哪幾種?它們的差別是什么?答:基本芯片為8031、8051、8751。8031內(nèi)部包括1個(gè)8位cpu、128BRAM,21個(gè)特殊功能寄存器(SFR)、4個(gè)8位并行I/O口、1個(gè)全雙工串行口,2個(gè)16位定時(shí)器/計(jì)數(shù)器,但片內(nèi)無(wú)程序存儲(chǔ)器,需外擴(kuò)EPROM芯片。8051是在8031的基礎(chǔ)上,片內(nèi)又集成有4KBROM,作為程序存儲(chǔ)器,是1個(gè)程序不超過(guò)4KB的小系統(tǒng)。8751是在8031的基礎(chǔ)上,增加了4KB的EPROM,它構(gòu)成了1個(gè)程序小于4KB的小系統(tǒng)。用戶可以將程序固化在EP

3、ROM中,可以反復(fù)修改程序。1.7 MCS-51系列單片機(jī)與80C51系列單片機(jī)的異同點(diǎn)是什么?答:共同點(diǎn)為它們的指令系統(tǒng)相互兼容。不同點(diǎn)在于MCS-51是基本型,而80C51采用CMOS工藝,功耗很低,有兩種掉電工作方式,一種是CPU停止工作,其它部分仍繼續(xù)工作;另一種是,除片內(nèi)RAM繼續(xù)保持?jǐn)?shù)據(jù)外,其它部分都停止工作。1.8 8051與8751的區(qū)別是(C)(A)內(nèi)部數(shù)據(jù)存儲(chǔ)單元數(shù)目的不同 (B)內(nèi)部數(shù)據(jù)存儲(chǔ)器的類型不同(C)內(nèi)部程序存儲(chǔ)器的類型不同 (D)內(nèi)部的寄存器的數(shù)目不同1.9在家用電器中使用單片機(jī)應(yīng)屬于微型計(jì)算機(jī)的(B)(A)輔助設(shè)計(jì)應(yīng)用(B)測(cè)量、控制應(yīng)用(C)數(shù)值計(jì)算應(yīng)用(D

4、)數(shù)據(jù)處理應(yīng)用1.10說(shuō)明單片機(jī)主要應(yīng)用在哪些領(lǐng)域?答:?jiǎn)纹瑱C(jī)主要運(yùn)用領(lǐng)域?yàn)椋汗I(yè)自動(dòng)化;智能儀器儀表;消費(fèi)類電子產(chǎn)品;通信方面;武器裝備;終端及外部設(shè)備控制;多機(jī)分布式系統(tǒng)。第二章MCS-51單片機(jī)的硬件結(jié)構(gòu)2.1 MCS-51單片機(jī)的片內(nèi)都集成了哪些功能部件?各個(gè)功能部件的最主要的功能是什么?答:功能部件如下:微處理器(CPU); 數(shù)據(jù)存儲(chǔ)器(RAM); 程序存儲(chǔ)器(ROM/EPROM,8031沒(méi)有此部件),4個(gè)8位并行I/O口(P0口、P1口、P2口、P3口);1個(gè)全雙工的串行口;2個(gè)16位定時(shí)器/計(jì)數(shù)器;中斷系統(tǒng);21個(gè)特殊功能寄存器(SFR)。各部件功能:CPU(微處理器)包括了運(yùn)算

5、器和控制器兩大部分,還增加了面向控制的處理功能,不僅可處理字節(jié)數(shù)據(jù),還可以進(jìn)行位變量的處理;數(shù)據(jù)存儲(chǔ)器(RAM)片內(nèi)為128B(52系列的為256B),片外最多可外擴(kuò)64KB。數(shù)據(jù)存儲(chǔ)器來(lái)存儲(chǔ)單片機(jī)運(yùn)行期間的工作變量、運(yùn)算的中間結(jié)果、數(shù)據(jù)暫存和緩沖、標(biāo)志位等;程序存儲(chǔ)器(ROM/EPROM)用來(lái)存儲(chǔ)程序;中斷系統(tǒng)具有5個(gè)中斷源,2級(jí)中斷優(yōu)先權(quán);定時(shí)器/計(jì)數(shù)器用作精確的定時(shí),或?qū)ν獠渴录M(jìn)行計(jì)數(shù);串行口可用來(lái)進(jìn)行串行通信,擴(kuò)展并行I/O口,還可以與多個(gè)單片機(jī)相連構(gòu)成多機(jī)系統(tǒng),從而使單片機(jī)的功能更強(qiáng)且應(yīng)用更廣;特殊功能寄存器用于CPU對(duì)片內(nèi)各功能部件進(jìn)行管理、控制、監(jiān)視。2.2說(shuō)明MCS-51單片

6、機(jī)的引腳EA的作用,該引腳接高電平和接低電平時(shí)各有何種功能?答:當(dāng)該引腳為高電平時(shí),單片機(jī)訪問(wèn)片內(nèi)程序存儲(chǔ)器,但在PC(程序計(jì)數(shù)器)值超過(guò)0FFFH(對(duì)于8051、8751)時(shí),即超出片內(nèi)程序存儲(chǔ)器的4KB位置范圍時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行外部程序存儲(chǔ)器內(nèi)的程序。當(dāng)該引腳為低電平時(shí),單片機(jī)則只訪問(wèn)外部程序存儲(chǔ)器,不論是否有內(nèi)部程序存儲(chǔ)器。對(duì)于8031來(lái)說(shuō),因其無(wú)內(nèi)部程序存儲(chǔ)器,所以該引腳必須接地,這樣只能選擇外部程序存儲(chǔ)器。2.3 MCS-51的時(shí)鐘振蕩周期和機(jī)器周期之間有何關(guān)系?答:每12個(gè)時(shí)鐘周期為1個(gè)機(jī)器周期。2.4在MCS-51單片機(jī)中,如果采用6 MHZ晶振,1個(gè)機(jī)器周期為(2微秒)。2.5

7、程序存儲(chǔ)器的空間里,有5個(gè)單元是特殊的,這5個(gè)單元對(duì)應(yīng)MCS-51單片機(jī)5個(gè)中斷源的中斷入口位置,請(qǐng)寫(xiě)出這些單元的位置以及對(duì)應(yīng)的中斷源。答: 中斷源 入口位置外部中斷0 0003H定時(shí)器0(T0)000BH外部中斷1 0013H定時(shí)器1(T1)001BH串行口0023H2.6內(nèi)部RAM中,位位置為30H的位,該位所在字節(jié)的字節(jié)位置為(26H)。2.7若A中的內(nèi)容為63H,那么,P標(biāo)志位的值為(0)。2.8判斷下列說(shuō)法是否正確:(A)8031的CPU是由RAM和EPROM所組成。 (錯(cuò))(B)區(qū)分片外程序存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器的最可靠的方法是看其位于位置范圍的低端還是高端。(錯(cuò))(C)在MCS-

8、51中,為使準(zhǔn)雙向的I/O口工作在輸入方式,必須保證它被事先預(yù)置為1。 (對(duì))(D)PC可以看成是程序存儲(chǔ)器的位置指針。 (對(duì))2.9 8031單片機(jī)復(fù)位后,R4所對(duì)應(yīng)的存儲(chǔ)單元的位置為(04H),因上電時(shí)PSW=(00H)。這時(shí)當(dāng)前的工作寄存器區(qū)是(0)組工作寄存器區(qū)。2.10什么是機(jī)器周期?1個(gè)機(jī)器周期的時(shí)序是如何來(lái)劃分的?如果采用12MHZ晶振,1個(gè)機(jī)器周期為多長(zhǎng)時(shí)間?答:CPU完成一個(gè)基本操作所需要的時(shí)間稱為機(jī)器周期。時(shí)序劃分:一個(gè)機(jī)器周期包括12個(gè)時(shí)鐘周期,分為6個(gè)狀態(tài);S1-S6。每個(gè)狀態(tài)又分為2拍;P1和P2。因此,1個(gè)機(jī)器周期中的12個(gè)時(shí)鐘周期表示為:S1P1、S1P2、S2P

9、1、S2P2、S6P2。如果采用12MHZ晶振,1個(gè)機(jī)器周期為1s。2.11判斷以下有關(guān)PC和DPTR的結(jié)論是否正確?(A)DPTR是可以訪問(wèn)的,而PC不能訪問(wèn)。 (錯(cuò))(B)它們都是16位的寄存器。 (對(duì))(C)它們都具有加1的功能。 (對(duì))(D)DPTR可以分為2個(gè)8位寄存器使用,但PC不能。 (對(duì))12、內(nèi)部RAM中,哪些單元可作為工作寄存器區(qū),哪些單元可以進(jìn)行位尋址?寫(xiě)出它們的字節(jié)位置。答:位置為00H-1FH的32個(gè)單元是4組通用工作寄存器區(qū),每個(gè)區(qū)包括8個(gè)8位工作寄存器,編號(hào)為R0-R7。字節(jié)位置為20H-2FH的16個(gè)單元可進(jìn)行128位的位尋址,這些單元構(gòu)成了1位處理機(jī)的存儲(chǔ)器空

10、間。位位置范圍是00H-7FH。2.13使用8031單片機(jī)時(shí),需將EA引腳接(低)電平,因?yàn)槠淦瑑?nèi)無(wú)(程序)存儲(chǔ)器。2.14片內(nèi)RAM低128個(gè)單元?jiǎng)澐譃槟?個(gè)主要部分?各部分的主要功能是什么?答:字節(jié)位置為00H-1FH的32個(gè)單元是4組通用工作寄存器區(qū),每個(gè)區(qū)包括8個(gè)8位工作寄存器,編號(hào)為R0-R7??梢酝ㄟ^(guò)改變PSW中的RS1、RS0來(lái)切換當(dāng)前的工作寄存器區(qū),這種功能給軟件設(shè)計(jì)帶來(lái)極大的方便,特別是在中斷嵌套時(shí),為實(shí)現(xiàn)工作寄存器現(xiàn)場(chǎng)內(nèi)容保護(hù)提供了方便;字節(jié)位置為20H-2FH的16個(gè)單元可進(jìn)行工128位的位尋址,這些單元構(gòu)成了1位處理機(jī)的存儲(chǔ)器空間;字節(jié)位置為30H-7FH的單元為用戶R

11、AM區(qū),只能進(jìn)行字節(jié)尋址。用于作為數(shù)據(jù)緩沖區(qū)以及堆棧區(qū)。2.15判斷下列說(shuō)法是否正確(A)程序計(jì)數(shù)器PC不能為用戶編程時(shí)直接使用,因?yàn)樗鼪](méi)有位置。 (對(duì))(B)內(nèi)部RAM的位尋址區(qū),只能供位尋址使用,而不能供字節(jié)尋址使用。 (錯(cuò))(C)8031共有21個(gè)特殊功能寄存器,它們的位都是可用軟件設(shè)置的,因此,是可以進(jìn)行位尋址的。(錯(cuò))2.16 PC的值是:(C)(A)當(dāng)前正在執(zhí)行指令的前一條指令的位置(B)當(dāng)前正在執(zhí)行指令的位置(C)當(dāng)前正在執(zhí)行指令的下一條指令的位置(D)控制器中指令寄存器的位置2.17通過(guò)堆棧操作實(shí)現(xiàn)子程序調(diào)用,首先就要把(PC)的內(nèi)容入棧,以進(jìn)行斷點(diǎn)保護(hù)。調(diào)用返回時(shí),再進(jìn)行出棧

12、保護(hù),把保護(hù)的斷點(diǎn)送回到(PC)。2.18寫(xiě)出P3口各引腳的第二功能。答: 口引腳 第二功能定義P3.0串行輸入口P3.1串行輸出口P3.2外部中斷0P3.3外部中斷1P3.4定時(shí)器0外部計(jì)數(shù)輸入P3.5定時(shí)器1外部計(jì)數(shù)輸入P3.6外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通P3.7外部數(shù)據(jù)存儲(chǔ)器讀選通2.19 MCS-51單片機(jī)程序存儲(chǔ)器的尋址范圍是由程序計(jì)數(shù)器PC的位數(shù)所決定的,因?yàn)镸CS-51的PC是16位的,因此其尋址的范圍為(64)KB。2.20當(dāng)MCS-51單片機(jī)運(yùn)行出錯(cuò)或程序陷入死循環(huán)時(shí),如何來(lái)擺脫困境?答:可通過(guò)復(fù)位來(lái)解決。2.21判斷下列說(shuō)法是否正確?(A)PC是1個(gè)不可尋址的特殊功能寄存器 (對(duì))

13、(B)單片機(jī)的主頻越高,其運(yùn)算速度越快(對(duì))(C)在MCS-51單片機(jī)中,1個(gè)機(jī)器周期等于1微秒 (錯(cuò))(D)特殊功能寄存器SP內(nèi)裝的是棧頂首位置單元的內(nèi)容(錯(cuò))2.22如果手中僅有一臺(tái)示波器,可通過(guò)觀察哪個(gè)引腳的狀態(tài),來(lái)大致判斷MCS-51單片機(jī)正在工作?答:ALE引腳。第三章MCS-51的指令系統(tǒng)3.1判斷以下指令的正誤:(1)MOV 28H,R2 (2) DEC DPTR (3) INC DPTR (4) CLR R0(5) CPL R5 (6) MOV R0,R1 (7) PUSH DPTR (8) MOV F0,C (9)MOV F0,Acc.3 (10)MOVX A,R1 (11)

14、 MOV C,30H (12)RLC R0答:(3)、(8)、(10)、(11)對(duì),其余錯(cuò)。3.2判斷下列說(shuō)法是否正確。(A)立即尋址方式是被操作的數(shù)據(jù)本身在指令中,而不是它的位置在指令中。()(B)指令周期是執(zhí)行一條指令的時(shí)間。()(C)指令中直接給出的操作數(shù)稱為直接尋址。(×)3.3在基址加變址尋址方式中,以(A)作變址寄存器,以(DPTR)或(PC)作基址寄存器3.4 MCS-51共有哪幾種尋址方式?各有什么特點(diǎn)?答: 共有7種尋址方式。(1)寄存器尋址方式 操作數(shù)在寄存器中,因此指定了寄存器就能得到操作數(shù)。(2)直接尋址方式 指令中操作數(shù)直接以單元位置的形式給出,該單元位置中

15、的內(nèi)容就是操作數(shù)。(3)寄存器間接尋址方式寄存器中存放的是操作數(shù)的位置,即先從寄存器中找到操作數(shù)的位置,再按該位置找到操作數(shù)。(4)立即尋址方式 操作數(shù)在指令中直接給出,但需在操作數(shù)前面加前綴標(biāo)志“#”。(5)_基址寄存器加變址寄存器間接尋址方式 以DPTR或PC作基址寄存器,以累加器A作為變址寄存器,并以兩者內(nèi)容相加形成的16位位置作為操作數(shù)的位置,以達(dá)到訪問(wèn)數(shù)據(jù)表格的目的。(6)位尋址方式 位尋址指令中可以直接使用位位置。(7)相對(duì)尋址方式在相對(duì)尋址的轉(zhuǎn)移指令中,給出了位置偏移量,以“rel”表示,即把PC的當(dāng)前值加上偏移量就構(gòu)成了程序轉(zhuǎn)移的目的位置。3.5 MCS-51指令按功能可以分為

16、哪幾類?答:MCS-51指令系統(tǒng)按功能分為:數(shù)據(jù)傳送類(28條);算術(shù)操作類(24條);邏輯運(yùn)算類(25條);控制轉(zhuǎn)移類(17條);位操作類(17條)。3.6訪問(wèn)SFR,可使用哪些尋址方式?答:一般采用直接尋址,對(duì)于SFR中字節(jié)位置能被8整除的SFR可以使用位尋址,對(duì)于SFR中的A、B、DPTR寄存器可以采用寄存器尋址。3.7指令格式是由(操作碼)和(操作數(shù))所組成,也可能僅由(操作碼)組成。3.8假定累加器A中的內(nèi)容為30H,執(zhí)行指令:1000H:MOVC A,A+PC后,把程序存儲(chǔ)器(1031H)單元的內(nèi)容送入累加器中3.9在MCS-51中,PC和DPTR都用于提供位置,但PC是為訪問(wèn)(程

17、序)存儲(chǔ)器提供位置,而DPTR是為訪問(wèn)(數(shù)據(jù))存儲(chǔ)器提供位置。3.10在寄存器間接尋址方式中,其“間接”體現(xiàn)在指令中寄存器的內(nèi)容不是操作數(shù),而是操作數(shù)的(位置)。3.11該程序段的功能是什么?PUSH APUSH BPOP APOP B答:功能是A、B內(nèi)容互換3.12已知程序執(zhí)行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。下列程序執(zhí)行后:11 / 11POP DPH POP DPL MOV DPTR,#4000H RL A MOV B,A MOVC A,A+DPTR PUSH A MOV A,B INC A MOVC A,A+DPTR PUSH A RET ORG 4

18、000H DB 10H,80H,30H,50H,30H,50HA=50H SP=50H(51H)=30H(52H)=50H PC=5030H3.13寫(xiě)出完成如下要求的指令,但是不能改變未涉及位的內(nèi)容。(A)把Acc.3,Acc.4,Acc.5和Acc.6清0。解:ANL A,#87H(B)把累加器A的中間4位清0。解:ANL A,#C3H(C)使Acc.2和Acc.3置1。解:ORL A,#0CH3.14假定A=83H,(R0)=17H,(17H)=34H,執(zhí)行以下指令:ANL A,#17HORL 17H,AXRL A,R0CPL A后,A的內(nèi)容為(0CBH)3.15假設(shè)A=55H,R3=0A

19、AH,在執(zhí)行指令后ANL A,R3后,A=(00H),R3=(0AAH)3.16如果DPTR=507BH,SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,則執(zhí)行下列指令后:POP DPHPOP DPLPOP SP則:DPH=(3CH)DPL=(5FH)SP=(4FH)3.17假定SP=60H,A=30H,B=70H,執(zhí)行下列指令:PUSH APUSH B后,SP的內(nèi)容為(62H),61H單元的內(nèi)容為(30H),62H單元的內(nèi)容為(70H)。3.18借助本書(shū)中的指令表:表3-3表3-7對(duì)如下的指令代碼(16進(jìn)制)進(jìn)行手工反匯編。FF C0 E0 E5 F0 F0解:查表

20、可知FF MOV R7,AC0 E0 PUSH 0E0HE5 F0 MOV A,0F0HF0 MOVX DPTR, A第四章MCS-51匯編語(yǔ)言程序設(shè)計(jì)4.1用于程序設(shè)計(jì)的語(yǔ)言分為哪幾種?它們各有什么特點(diǎn)?答:用于程序設(shè)計(jì)的語(yǔ)言基本上分為三種:機(jī)器語(yǔ)言、匯編語(yǔ)言和高級(jí)語(yǔ)言。(1)機(jī)器語(yǔ)言:在單片機(jī)中,用二進(jìn)制代碼表示的指令、數(shù)字和符號(hào)簡(jiǎn)稱為機(jī)器語(yǔ)言,直接用機(jī)器語(yǔ)言編寫(xiě)的程序稱為機(jī)器語(yǔ)言程序。用機(jī)器語(yǔ)言編寫(xiě)的程序,不易看懂,不便于記憶,且容易出錯(cuò)。(2)匯編語(yǔ)言具有如下特點(diǎn):A、匯編語(yǔ)言是面向機(jī)器的語(yǔ)言,程序設(shè)計(jì)人員必須對(duì)MCS-51單片機(jī)的硬件有相當(dāng)深入的了解。B、助記符指令和機(jī)器指令一一對(duì)應(yīng)

21、,所以用匯編語(yǔ)言編寫(xiě)的程序效率高,占用的存儲(chǔ)空間小,運(yùn)行速度快,因此用匯編語(yǔ)言能編寫(xiě)出最優(yōu)化的程序。C、匯編語(yǔ)言程序能直接管理和控制硬件設(shè)備(功能部件),它能處理中斷,也能直接訪問(wèn)存儲(chǔ)器及I/O接口電路。(3)高級(jí)語(yǔ)言:高級(jí)語(yǔ)言不受具體機(jī)器的限制,都是參照一些數(shù)學(xué)語(yǔ)言而設(shè)計(jì)的,使用了許多數(shù)學(xué)公式和數(shù)學(xué)計(jì)算上的習(xí)慣用語(yǔ),非常擅長(zhǎng)于科學(xué)計(jì)算。計(jì)算機(jī)不能直接識(shí)別和執(zhí)行高級(jí)語(yǔ)言,需要將其“翻譯”成機(jī)器語(yǔ)言才能識(shí)別和執(zhí)行。4.3解釋下列術(shù)語(yǔ):“手工匯編”、“機(jī)器匯編”、“交叉匯編”以及“反匯編”。答、手工匯編:通常把人工查表翻譯指令的方法稱為“手工匯編”。機(jī)器匯編:機(jī)器匯編實(shí)際上是通過(guò)執(zhí)行匯編程序來(lái)對(duì)源

22、程序進(jìn)行匯編的。交叉匯編:由于使用微型計(jì)算機(jī)完成了匯編,而匯編后得到的機(jī)器代碼卻是在另一臺(tái)計(jì)算機(jī)(這里是單片機(jī))上運(yùn)行,稱這種機(jī)器匯編為“交叉匯編”。反匯編:有時(shí),在分析現(xiàn)成產(chǎn)品的ROM/EPROM中的程序時(shí),要將二進(jìn)制數(shù)的機(jī)器代碼語(yǔ)言程序翻譯成匯編語(yǔ)言源程序,該過(guò)程稱為反匯編。4.4下列程序段經(jīng)匯編后,從1000H開(kāi)始的各有關(guān)存儲(chǔ)單元的內(nèi)容將是什么?ORG 1000HTAB1 EQU 1234HTAB2 EQU 3000HDB“MAIN”DW TAB1,TAB2,70H答:(1000H)=M(1001H)=A(1002H)=I(1003H)=N(1004H)=34H(1005H)=12H(1

23、006H)=00H(1007H)=30H(1008H)=70H(1009H)=00H4.5設(shè)計(jì)子程序時(shí)注意哪些問(wèn)題?答:在編寫(xiě)子程序時(shí)應(yīng)注意以下問(wèn)題:(1)子程序的第一條指令的位置稱為子程序的入口位置。該指令前必須有標(biāo)號(hào)。(2)主程序調(diào)用子程序,是通過(guò)主程序或調(diào)用程序中的調(diào)用指令來(lái)實(shí)現(xiàn)的。(3)注意設(shè)置堆棧指針和現(xiàn)場(chǎng)保護(hù),因調(diào)用子程序時(shí),要把斷點(diǎn)壓入堆棧,子程序返回執(zhí)行RET指令時(shí)再把斷點(diǎn)彈出堆棧送入PC指針,因此子程序結(jié)構(gòu)中必須用堆棧。(4)子程序返回主程序時(shí),最后一條指令必須是RET指令,它的功能是在執(zhí)行調(diào)用指令時(shí),把自動(dòng)壓入堆棧中的斷點(diǎn)位置彈出送入PC指針中,從而實(shí)現(xiàn)子程序返回主程序斷點(diǎn)

24、處繼續(xù)執(zhí)行主程序。(5)子程序可以嵌套,即主程序可以調(diào)用子程序,子程序又可以調(diào)用另外的子程序,通常情況下可允許嵌套8層。(6)在子程序調(diào)用時(shí),還要注意參數(shù)傳遞的問(wèn)題。4.6試編寫(xiě)1個(gè)程序,將內(nèi)部RAM中45H單元的高4位清0,低4位置1。解:MOV A,45HANL A,#0FHORL A,#0FH4.7已知程序執(zhí)行前有A=02H,SP=42H,(41H)=FFH,(42H)=FFH。下述程序執(zhí)行后,POP DPH POP DPL MOV DPTR,#3000H RL A MOV B,A MOVC A,A+DPTRPUSH A MOV A,B INC A MOVC A,A+DPTR PUSH

25、A ORG 3000H DB 10H,80H,30H,80H,50H,80HA=80H SP=40H(41H)=50H(42H)=80H PC=8050H。4.8計(jì)算下面子程序中指令的偏移量和程序執(zhí)行的時(shí)間(晶振頻率為12MHZ)。7B0F MOV R3,#15;1個(gè)機(jī)器周期7CFF DL1: MOV R4,#255;1個(gè)機(jī)器周期8B90 DL2: MOV P1,R3;2個(gè)機(jī)器周期DC DJNZ R4,DL2;2個(gè)機(jī)器周期DB DJNZ R3,DL;2個(gè)機(jī)器周期22 RET;2個(gè)機(jī)器周期解:程序執(zhí)行的時(shí)間為15.346s。4.9假定A=83H,(R0)=17H,(17H)=34H,執(zhí)行以下指令

26、:ANL A,#17HORL 17H,AXRL A,R0CPL A后,A的內(nèi)容為(0CBH)4.10試編寫(xiě)程序,查找在內(nèi)部RAM的30H50H單元中是否有0AAH這一數(shù)據(jù)。若有,則將51H單元置為“01H”;若未找到,則將51H單元置為“00H”。ORG 0000H MOV R0,#30H MOV R2,#21H LOOP: MOV A,R0 CJNE A,#0AAH,NOT MOV 51H,#01H SJMP DEND NOT: INC R0 DJNZ R2,LOOP MOV 51H,#00H DEND: SJMP DEND4.11試編寫(xiě)程序,查找在內(nèi)部RAM的20H40H單元中出現(xiàn)“00H

27、”這一數(shù)據(jù)的次數(shù)。并將查找到的結(jié)果存入41H單元。ORG 0000H MOV R0,#20H MOV R2,#21HMOV 41H,#00H LOOP: MOV A,R0 CJNE A,#00H,NOTE INC 41H NOTE: INC R0 DJNZ R2,LOOP END4.12若SP=60H,標(biāo)號(hào)LABEL所在的位置為3456H。LCALL指令的位置為2000H,執(zhí)行如下指令:2000H LCALL LABEL后,堆棧指針SP和堆棧內(nèi)容發(fā)生了什么變化?PC的值等于什么?如果將指令LCALL直接換成ACLAA是否可以?如果換成ACALL指令,可調(diào)用的位置范圍是什么?答:堆棧指針SP的內(nèi)

28、容為62H,堆棧內(nèi)容(61H)=03H,(62H)=20H;PC值為3456H,不能將LCALL換為ACALL,因?yàn)長(zhǎng)CALL可調(diào)用64KB范圍內(nèi)的子程序,而ACALL所調(diào)用的子程序位置必須與ACALL指令下一條指令的第一個(gè)字節(jié)在同一個(gè)2KB區(qū)內(nèi)(即16位位置中的高5位位置相同。如果換為ACALL,可調(diào)用的位置范圍為2002H-27FFH。第五章MCS-51的中斷系統(tǒng)5.1什么是中斷系統(tǒng)?答:能夠?qū)崿F(xiàn)中斷處理功能的部件稱為中斷系統(tǒng)。5.3什么是中斷源?MCS-51有哪些中斷源?各有什么特點(diǎn)?答:產(chǎn)生中斷的請(qǐng)求源稱為中斷源。MCS-51中斷系統(tǒng)共有5個(gè)中斷請(qǐng)求源:(1)外部中斷請(qǐng)求0,中斷請(qǐng)求標(biāo)

29、志為IE0。(2)外部中斷請(qǐng)求1,中斷請(qǐng)求標(biāo)志為IE1。(3)定時(shí)器/計(jì)數(shù)器T0溢出中斷請(qǐng)求,中斷請(qǐng)求標(biāo)志為TF0。(4)定時(shí)器/計(jì)數(shù)器T1溢出中斷請(qǐng)求,中斷請(qǐng)求標(biāo)志為TF1。(5)串行口中斷請(qǐng)求,中斷請(qǐng)求標(biāo)志為TI或RI。特點(diǎn):2個(gè)外部中斷源,3個(gè)內(nèi)部中斷源。5.4外部中斷1所對(duì)應(yīng)的中斷入口位置為(0013H)。5.5下列說(shuō)法錯(cuò)誤的是:(A,B,C)(A)各中斷源發(fā)出的中斷請(qǐng)求信號(hào),都會(huì)標(biāo)記在MCS-51系統(tǒng)的IE寄存器中。(B)各中斷源發(fā)出的中斷請(qǐng)求信號(hào),都會(huì)標(biāo)記在MCS-51系統(tǒng)的TMOD寄存器中。(C)各中斷源發(fā)出的中斷請(qǐng)求信號(hào),都會(huì)標(biāo)記在MCS-51系統(tǒng)的IP寄存器中。(D)各中斷源

30、發(fā)出的中斷請(qǐng)求信號(hào),都會(huì)標(biāo)記在MCS-51系統(tǒng)的TCON和SCON寄存器中。5.6 MCS-51單片機(jī)響應(yīng)外部中斷的典型時(shí)間是多少?在哪些情況下,CPU將推遲對(duì)外部中斷請(qǐng)求的響應(yīng)?答:典型時(shí)間是3-8個(gè)機(jī)器周期。在下列三種情況下,CPU將推遲對(duì)外部中斷請(qǐng)求的響應(yīng):(1)CPU正在處理同級(jí)的或更高級(jí)優(yōu)先級(jí)的中斷(2)所查詢的機(jī)器周期不是當(dāng)前所正在執(zhí)行指令的最后一個(gè)機(jī)器周期(3)正在執(zhí)行的指令是RETI或是訪問(wèn)IE或IP的指令。5.7中斷查詢確認(rèn)后,在下列各種8031單片機(jī)運(yùn)行情況中,能立即進(jìn)行響應(yīng)的是(D)(A)當(dāng)前正在進(jìn)行高優(yōu)先級(jí)中斷處理(B)當(dāng)前正在執(zhí)行RETI指令(C)當(dāng)前指令是DIV指令

31、,且正處于取指令的機(jī)器周期(D)當(dāng)前指令是MOV A,R35.8 8031單片機(jī)響應(yīng)中斷后,產(chǎn)生長(zhǎng)調(diào)用指令LCALL,執(zhí)行指令的過(guò)程包括:首先把(PC)的內(nèi)容壓入堆棧,以進(jìn)行斷點(diǎn)保護(hù),然后把長(zhǎng)調(diào)用指令的16位位置送(PC),使程序執(zhí)行轉(zhuǎn)向(響應(yīng)中斷請(qǐng)求的中斷入口的位置)中的中斷位置區(qū)。5.9編寫(xiě)出外部中斷1為跳沿觸發(fā)的中斷初始化程序。ORG 0000H AJMP MAIN ORG 0013H AJMP PINT1 ORG 0100H MAIN: SETB IT1 SETB EX1 SETB EA HERE: AJMP HERE PINT1: RETI END5.10在MCS-51中,需要外加電

32、路實(shí)現(xiàn)中斷撤除的是(D)(A)定時(shí)中斷(B)脈沖方式的外部中斷(C)外部串行中斷(D)電平方式的外部中斷5.11 MCS-51有哪幾種擴(kuò)展外部中斷源的方法?答:擴(kuò)展外部中斷源的方法有:定時(shí)器/計(jì)數(shù)器作為外部中斷源的使用方法;中斷和查詢結(jié)合的方法。5.12下列說(shuō)法正確的是(C D)(A)同一級(jí)別的中斷請(qǐng)求按時(shí)間的先后順序順序響應(yīng)。(B)同一時(shí)間同一級(jí)別的多中斷請(qǐng)求,將形成阻塞,系統(tǒng)無(wú)法響應(yīng)。(C)低優(yōu)先級(jí)中斷請(qǐng)求不能中斷高優(yōu)先級(jí)中斷請(qǐng)求,但是高優(yōu)先級(jí)中斷請(qǐng)求能中斷低優(yōu)先級(jí)中斷請(qǐng)求(D)同級(jí)中斷不能嵌套。5.13中斷服務(wù)子程序返回指令RETI和普通子程序返回指令RET有什么區(qū)別?答:兩者的區(qū)別在于

33、,RETI清除了中斷響應(yīng)時(shí),被置1的MCS-51內(nèi)部中斷優(yōu)先級(jí)寄存器的優(yōu)先級(jí)狀態(tài)。5.14某系統(tǒng)有3個(gè)外部中斷源1、2、3,當(dāng)某一中斷源變?yōu)榈碗娖綍r(shí),便要求CPU進(jìn)行處理,它們的優(yōu)先處理次序由高到低依次為3、2、1,中斷處理程序的入口位置分別為1000H,1100H,1200H。試編寫(xiě)主程序及中斷服務(wù)程序(轉(zhuǎn)至相應(yīng)的中斷處理程序的入口即可)。ORG 0000H AJMP MAIN ORG 0003H LJMP PINT0 ORG 0100HMAIN: SETB IT0SETB EX0 SETB EA HERE: SJMP HERE PINT0: PUSH PSWPUSH A JNB P1.3,

34、IR3 JNB P1.2,IR2 JNB P1.1,IR1PINTIR: POP A POP PSWRETIIR3: LJMP IR3INT IR2: LJMP IR2INT IR1: LJMP IR1INTORG 1000HIR3INT: LJMP PINTIRORG 1100HIR2INT: LJMP PINTIR ORG 1200HIR1INT: LJMP PINTIR END第六章MCS-51的定時(shí)器/計(jì)數(shù)器6.1如果采用的晶振的頻率為3MHZ,定時(shí)器/計(jì)數(shù)器工作在方式0、1、2下,其最大的定時(shí)時(shí)間各為多少?答:方式0 213*4us=32.768方式1 216*4us=262.144

35、方式2 28*4us=1.0246.2定時(shí)器/計(jì)數(shù)器用作定時(shí)器時(shí),其計(jì)數(shù)脈沖由誰(shuí)提供?定時(shí)時(shí)間與哪些因素有關(guān)?答:定時(shí)器/計(jì)數(shù)器被選定為定時(shí)器工作模式時(shí),計(jì)數(shù)輸入信號(hào)是內(nèi)部時(shí)鐘脈沖,每個(gè)機(jī)器周期產(chǎn)生1個(gè)脈沖使計(jì)數(shù)器增1,因此,定時(shí)器/計(jì)數(shù)器的輸入脈沖的周期與機(jī)器周期一樣,為時(shí)鐘振蕩頻率的1/2。6.3定時(shí)器/計(jì)數(shù)器作計(jì)數(shù)器使用時(shí),對(duì)外界計(jì)數(shù)頻率有何限制?答:定時(shí)器/計(jì)數(shù)器用作計(jì)數(shù)器時(shí),計(jì)數(shù)脈沖來(lái)自相應(yīng)的外部輸入引腳T0或T1。對(duì)外界計(jì)數(shù)頻率要求為其最高頻率為系統(tǒng)振蕩頻率的1/24。6.4采用定時(shí)器/計(jì)數(shù)器T0對(duì)外部脈沖進(jìn)行計(jì)數(shù),每計(jì)數(shù)100個(gè)脈沖后,T0轉(zhuǎn)為定時(shí)工作方式。定時(shí)1ms后,又轉(zhuǎn)為計(jì)

36、數(shù)方式,如此循環(huán)不止。假定MCS-51單片機(jī)的晶體震蕩器的頻率為6MHZ,請(qǐng)使用方式1實(shí)現(xiàn),要求編寫(xiě)出程序。ORG 0000H AJMP MAIN ORG 000BH LJMP PT0J ORG 0100H MAIN: MOV TMOD,#05H;00000001 MOV TH0,#0FFH;X=65436 MOV TL0,#9CH CLR F0 SETB TR0 SETB ET0 SETB EA HERE: AJMP HERE PT0J: JB F0,PT0D MOV TMOD,#01H;00000001 MOV TH0,#0FEH;X=65036 MOV TL0,#0CH SETB F0RETI PT0D: CLR F0 MOV TMOD,#05H MOV TH0,#0FFH MOV TL0,#9CH RETI END6.5定時(shí)器/計(jì)數(shù)器的工作方式2有什么特點(diǎn)?適用于哪些應(yīng)用場(chǎng)合?答:工作方式2為自動(dòng)恢復(fù)初值的(初值自

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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)論