單片機教材完整答案_第1頁
單片機教材完整答案_第2頁
單片機教材完整答案_第3頁
單片機教材完整答案_第4頁
單片機教材完整答案_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、第一章 單片機概述1.2 除了單片機這一名稱之外,單片機還可稱為(微控制器)和(嵌入式控制器)。1.3 單片機與普通計算機的不同之處在于其將(微處理器)、(存儲器)和(各種輸入輸出接口)三部分集成于一塊芯片上。4、單片機的發(fā)展大致分為哪幾個階段?答:單片機的發(fā)展歷史可分為四個階段:第一階段(1974年-1976年):單片機初級階段。第二階段(1976年-1978年):低性能單片機階段。第三階段(1978年-現(xiàn)在):高性能單片機階段。第四階段(1982年-現(xiàn)在):8位單片機鞏固發(fā)展及16位單片機、32位單片機推出階段1.5 單片機根據(jù)其基本操作處理的位數(shù)可分為哪幾種類型?答:單片機根據(jù)其基本操作

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

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

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

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

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

7、振,1個機器周期為(2微秒)。2.5程序存儲器的空間里,有5個單元是特殊的,這5個單元對應MCS-51單片機5個中斷源的中斷入口地址,請寫出這些單元的地址以及對應的中斷源。答: 中斷源 入口地址 外部中斷0 0003H定時器0(T0) 000BH外部中斷1 0013H定時器1(T1) 001BH串行口 0023H2.6 內(nèi)部RAM中,位地址為30H的位,該位所在字節(jié)的字節(jié)地址為(26H)。2.7 若A中的內(nèi)容為63H,那么,P標志位的值為(0)。2.8 判斷下列說法是否正確:(A)8031的CPU是由RAM和EPROM所組成。 (錯)(B)區(qū)分片外程序存儲器和片外數(shù)據(jù)存儲器的最可靠的方法是看其

8、位于地址范圍的低端還是高端。 (錯)(C)在MCS-51中,為使準雙向的I/O口工作在輸入方式,必須保證它被事先預置為1。 (對)(D)PC可以看成是程序存儲器的地址指針。 (對)2.9 8031單片機復位后,R4所對應的存儲單元的地址為(04H),因上電時PSW=(00H)。這時當前的工作寄存器區(qū)是(0)組工作寄存器區(qū)。2.10 什么是機器周期?1個機器周期的時序是如何來劃分的?如果采用12MHZ晶振,1個機器周期為多長時間?答:CPU完成一個基本操作所需要的時間稱為機器周期。時序劃分:一個機器周期包括12個時鐘周期,分為6個狀態(tài);S1-S6。每個狀態(tài)又分為2拍;P1和P2。因此,1個機器周

9、期中的12個時鐘周期表示為:S1P1、S1P2、S2P1、S2P2、S6P2。如果采用12MHZ晶振,1個機器周期為1s。2.11判斷以下有關PC和DPTR的結論是否正確?(A)DPTR是可以訪問的,而PC不能訪問。 (錯)(B)它們都是16位的寄存器。 (對)(C)它們都具有加1的功能。 (對)(D)DPTR可以分為2個8位寄存器使用,但PC不能。 (對) 12、內(nèi)部RAM中,哪些單元可作為工作寄存器區(qū),哪些單元可以進行位尋址?寫出它們的字節(jié)地址。答:地址為00H-1FH的32個單元是4組通用工作寄存器區(qū),每個區(qū)包括8個8位工作寄存器,編號為R0-R7。字節(jié)地址為20H-2FH的16個單元可

10、進行128位的位尋址,這些單元構成了1位處理機的存儲器空間。位地址范圍是00H-7FH。2.13使用8031單片機時,需將EA引腳接(低)電平,因為其片內(nèi)無(程序)存儲器。2.14片內(nèi)RAM低128個單元劃分為哪3個主要部分?各部分的主要功能是什么?答:字節(jié)地址為00H-1FH的32個單元是4組通用工作寄存器區(qū),每個區(qū)包括8個8位工作寄存器,編號為R0-R7??梢酝ㄟ^改變PSW中的RS1、RS0來切換當前的工作寄存器區(qū),這種功能給軟件設計帶來極大的方便,特別是在中斷嵌套時,為實現(xiàn)工作寄存器現(xiàn)場內(nèi)容保護提供了方便;字節(jié)地址為20H-2FH的16個單元可進行工128位的位尋址,這些單元構成了1位處

11、理機的存儲器空間;字節(jié)地址為30H-7FH的單元為用戶RAM區(qū),只能進行字節(jié)尋址。用于作為數(shù)據(jù)緩沖區(qū)以及堆棧區(qū)。2.15 判斷下列說法是否正確(A)程序計數(shù)器PC不能為用戶編程時直接使用,因為它沒有地址。 (對)(B)內(nèi)部RAM的位尋址區(qū),只能供位尋址使用,而不能供字節(jié)尋址使用。 (錯)(C)8031共有21個特殊功能寄存器,它們的位都是可用軟件設置的,因此,是可以進行位尋址的。 (錯)2.16 PC的值是:(C)(A)當前正在執(zhí)行指令的前一條指令的地址(B)當前正在執(zhí)行指令的地址(C)當前正在執(zhí)行指令的下一條指令的地址(D)控制器中指令寄存器的地址2.17 通過堆棧操作實現(xiàn)子程序調(diào)用,首先就

12、要把(PC)的內(nèi)容入棧,以進行斷點保護。調(diào)用返回時,再進行出棧保護,把保護的斷點送回到(PC)。2.18 寫出P3口各引腳的第二功能。答: 口引腳 第二功能定義 P3.0 串行輸入口 P3.1 串行輸出口 P3.2 外部中斷0 P3.3 外部中斷1 P3.4 定時器0外部計數(shù)輸入 P3.5 定時器1外部計數(shù)輸入 P3.6 外部數(shù)據(jù)存儲器寫選通 P3.7 外部數(shù)據(jù)存儲器讀選通2.19 MCS-51單片機程序存儲器的尋址范圍是由程序計數(shù)器PC的位數(shù)所決定的,因為MCS-51的PC是16位的,因此其尋址的范圍為(64)KB。2.20 當MCS-51單片機運行出錯或程序陷入死循環(huán)時,如何來擺脫困境?答

13、:可通過復位來解決。2.21 判斷下列說法是否正確?(A)PC是1個不可尋址的特殊功能寄存器 (對)(B)單片機的主頻越高,其運算速度越快 (對)(C)在MCS-51單片機中,1個機器周期等于1微秒 (錯)(D)特殊功能寄存器SP內(nèi)裝的是棧頂首地址單元的內(nèi)容 (錯)2.22 如果手中僅有一臺示波器,可通過觀察哪個引腳的狀態(tài),來大致判斷MCS-51單片機正在工作? 答: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

14、) PUSH DPTR (8) MOV F0,C (9)MOV F0,Acc.3 (10)MOVX A,R1 (11) MOV C,30H (12)RLC R0答:(3)、(8)、(10)、(11)對,其余錯。3.2 判斷下列說法是否正確。(A)立即尋址方式是被操作的數(shù)據(jù)本身在指令中,而不是它的地址在指令中。()(B)指令周期是執(zhí)行一條指令的時間。 ()(C)指令中直接給出的操作數(shù)稱為直接尋址。 (×) 3.3在基址加變址尋址方式中,以(A)作變址寄存器,以(DPTR)或(PC)作基址寄存器3.4 MCS-51共有哪幾種尋址方式?各有什么特點?答: 共有7種尋址方式。 (1)寄存器尋

15、址方式 操作數(shù)在寄存器中,因此指定了寄存器就能得到操作數(shù)。 (2)直接尋址方式 指令中操作數(shù)直接以單元地址的形式給出,該單元地址中的內(nèi)容就是操作數(shù)。 (3)寄存器間接尋址方式 寄存器中存放的是操作數(shù)的地址,即先從寄存器中找到操作數(shù)的地址,再按該地址找到操作數(shù)。 (4)立即尋址方式 操作數(shù)在指令中直接給出,但需在操作數(shù)前面加前綴標志“#”。 (5)基址寄存器加變址寄存器間接尋址方式 以DPTR或PC作基址寄存器,以累加器A作為變址寄存器,并以兩者內(nèi)容相加形成的16位地址作為操作數(shù)的地址,以達到訪問數(shù)據(jù)表格的目的。 (6)位尋址方式 位尋址指令中可以直接使用位地址。 (7)相對尋址方式 在相對尋址

16、的轉(zhuǎn)移指令中,給出了地址偏移量,以“rel”表示,即把PC的當前值加上偏移量就構成了程序轉(zhuǎn)移的目的地址。3.5 MCS-51指令按功能可以分為哪幾類?答:MCS-51指令系統(tǒng)按功能分為:數(shù)據(jù)傳送類(28條);算術操作類(24條);邏輯運算類(25條);控制轉(zhuǎn)移類(17條);位操作類(17條)。3.6 訪問SFR,可使用哪些尋址方式?答:一般采用直接尋址,對于SFR中字節(jié)地址能被8整除的SFR可以使用位尋址,對于SFR中的A、B、DPTR寄存器可以采用寄存器尋址。3.7 指令格式是由(操作碼)和(操作數(shù))所組成,也可能僅由(操作碼)組成。3.8 假定累加器A中的內(nèi)容為30H,執(zhí)行指令:1000H

17、:MOVC A,A+PC后,把程序存儲器(1031H)單元的內(nèi)容送入累加器中3.9 在MCS-51中,PC和DPTR都用于提供地址,但PC是為訪問(程序)存儲器提供地址,而DPTR是為訪問(數(shù)據(jù))存儲器提供地址。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í)行后: POP DPH POP DPL MOV DPTR,#4000H RL A M

18、OV B,A MOVC A,A+DPTR PUSH A MOV A,B INC A MOVC A,A+DPTR PUSH A RET ORG 4000H DB 10H,80H,30H,50H,30H,50HA=50H SP=50H (51H)=30H (52H)=50H PC=5030H3.13 寫出完成如下要求的指令,但是不能改變未涉及位的內(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,(17

19、H)=34H,執(zhí)行以下指令:ANL A,#17HORL 17H,AXRL A,R0CPL A后,A的內(nèi)容為(0CBH)3.15 假設A=55H,R3=0AAH,在執(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)容為(30

20、H),62H單元的內(nèi)容為(70H)。3.18借助本書中的指令表:表3-3表3-7對如下的指令代碼(16進制)進行手工反匯編。FF C0 E0 E5 F0 F0解:查表可知FF MOV R7,AC0 E0 PUSH 0E0HE5 F0 MOV A,0F0HF0 MOVX DPTR, A 第四章 MCS-51匯編語言程序設計4.1 用于程序設計的語言分為哪幾種?它們各有什么特點?答:用于程序設計的語言基本上分為三種:機器語言、匯編語言和高級語言。(1)機器語言:在單片機中,用二進制代碼表示的指令、數(shù)字和符號簡稱為機器語言,直接用機器語言編寫的程序稱為機器語言程序。用機器語言編寫的程序,不易看懂,不

21、便于記憶,且容易出錯。(2)匯編語言具有如下特點:A、匯編語言是面向機器的語言,程序設計人員必須對MCS-51單片機的硬件有相當深入的了解。B、助記符指令和機器指令一一對應,所以用匯編語言編寫的程序效率高,占用的存儲空間小,運行速度快,因此用匯編語言能編寫出最優(yōu)化的程序。C、匯編語言程序能直接管理和控制硬件設備(功能部件),它能處理中斷,也能直接訪問存儲器及I/O接口電路。(3)高級語言:高級語言不受具體機器的限制,都是參照一些數(shù)學語言而設計的,使用了許多數(shù)學公式和數(shù)學計算上的習慣用語,非常擅長于科學計算。計算機不能直接識別和執(zhí)行高級語言,需要將其“翻譯”成機器語言才能識別和執(zhí)行。4.3 解釋

22、下列術語:“手工匯編”、“機器匯編”、“交叉匯編”以及“反匯編”。答、手工匯編:通常把人工查表翻譯指令的方法稱為“手工匯編”。機器匯編:機器匯編實際上是通過執(zhí)行匯編程序來對源程序進行匯編的。交叉匯編:由于使用微型計算機完成了匯編,而匯編后得到的機器代碼卻是在另一臺計算機(這里是單片機)上運行,稱這種機器匯編為“交叉匯編”。反匯編:有時,在分析現(xiàn)成產(chǎn)品的ROM/EPROM中的程序時,要將二進制數(shù)的機器代碼語言程序翻譯成匯編語言源程序,該過程稱為反匯編。4.4 下列程序段經(jīng)匯編后,從1000H開始的各有關存儲單元的內(nèi)容將是什么? ORG 1000H TAB1 EQU 1234H TAB2 EQU

23、3000H DB “MAIN” DW TAB1,TAB2,70H答:(1000H)=M(1001H)=A(1002H)=I(1003H)=N(1004H)=34H (1005H)=12H (1006H)=00H (1007H)=30H (1008H)=70H (1009H)=00H4.5 設計子程序時注意哪些問題?答:在編寫子程序時應注意以下問題:(1)子程序的第一條指令的地址稱為子程序的入口地址。該指令前必須有標號。(2)主程序調(diào)用子程序,是通過主程序或調(diào)用程序中的調(diào)用指令來實現(xiàn)的。(3)注意設置堆棧指針和現(xiàn)場保護,因調(diào)用子程序時,要把斷點壓入堆棧,子程序返回執(zhí)行RET指令時再把斷點彈出堆棧

24、送入PC指針,因此子程序結構中必須用堆棧。(4)子程序返回主程序時,最后一條指令必須是RET指令,它的功能是在執(zhí)行調(diào)用指令時,把自動壓入堆棧中的斷點地址彈出送入PC指針中,從而實現(xiàn)子程序返回主程序斷點處繼續(xù)執(zhí)行主程序。(5)子程序可以嵌套,即主程序可以調(diào)用子程序,子程序又可以調(diào)用另外的子程序,通常情況下可允許嵌套8層。(6)在子程序調(diào)用時,還要注意參數(shù)傳遞的問題。4.6 試編寫1個程序,將內(nèi)部RAM中45H單元的高4位清0,低4位置1。解: MOV A,45H ANL A,#0FHORL A,#0FH4.7 已知程序執(zhí)行前有A=02H,SP=42H,(41H)=FFH,(42H)=FFH。下述

25、程序執(zhí)行后, POP DPH POP DPL MOV DPTR,#3000H RL A MOV B,A MOVC A,A+DPTR PUSH A MOV A,B INC A MOVC A,A+DPTR PUSH A ORG 3000H DB 10H,80H,30H,80H,50H,80HA=80H SP=40H (41H)=50H (42H)=80H PC=8050H。4.8 計算下面子程序中指令的偏移量和程序執(zhí)行的時間(晶振頻率為12MHZ)。7B0F MOV R3,#15 ;1個機器周期7CFF DL1: MOV R4,#255 ;1個機器周期8B90 DL2: MOV P1,R3 ;2個

26、機器周期DC DJNZ R4,DL2 ;2個機器周期DB DJNZ R3,DL ;2個機器周期22 RET ;2個機器周期解:程序執(zhí)行的時間為15.346s。4.9 假定A=83H,(R0)=17H,(17H)=34H,執(zhí)行以下指令:ANL A,#17HORL 17H,AXRL A,R0CPL A后,A的內(nèi)容為(0CBH)4.10 試編寫程序,查找在內(nèi)部RAM的30H50H單元中是否有0AAH這一數(shù)據(jù)。若有,則將51H單元置為“01H”;若未找到,則將51H單元置為“00H”。 ORG 0000H MOV R0,#30H MOV R2,#21HLOOP: MOV A,R0 CJNE A,#0A

27、AH,NOT MOV 51H,#01H SJMP DENDNOT: INC R0 DJNZ R2,LOOP MOV 51H,#00HDEND: SJMP DEND 4.11 試編寫程序,查找在內(nèi)部RAM的20H40H單元中出現(xiàn)“00H”這一數(shù)據(jù)的次數(shù)。并將查找到的結果存入41H單元。 ORG 0000H MOV R0,#20H MOV R2,#21H MOV 41H,#00HLOOP: MOV A,R0 CJNE A,#00H,NOTE INC 41HNOTE: INC R0 DJNZ R2,LOOP END 4.12 若SP=60H,標號LABEL所在的地址為3456H。LCALL指令的地址

28、為2000H,執(zhí)行如下指令: 2000H LCALL LABEL后,堆棧指針SP和堆棧內(nèi)容發(fā)生了什么變化?PC的值等于什么?如果將指令LCALL直接換成ACLAA是否可以?如果換成ACALL指令,可調(diào)用的地址范圍是什么?答:堆棧指針SP的內(nèi)容為62H,堆棧內(nèi)容(61H)=03H,(62H)=20H;PC值為3456H,不能將LCALL換為ACALL,因為LCALL可調(diào)用64KB范圍內(nèi)的子程序,而ACALL所調(diào)用的子程序地址必須與ACALL指令下一條指令的第一個字節(jié)在同一個2KB區(qū)內(nèi)(即16位地址中的高5位地址相同。如果換為ACALL,可調(diào)用的地址范圍為2002H-27FFH。 第五章 MCS-

29、51的中斷系統(tǒng)5.1 什么是中斷系統(tǒng)?答:能夠?qū)崿F(xiàn)中斷處理功能的部件稱為中斷系統(tǒng)。5.3 什么是中斷源?MCS-51有哪些中斷源?各有什么特點?答:產(chǎn)生中斷的請求源稱為中斷源。MCS-51中斷系統(tǒng)共有5個中斷請求源:(1)外部中斷請求0,中斷請求標志為IE0。(2)外部中斷請求1,中斷請求標志為IE1。(3)定時器/計數(shù)器T0溢出中斷請求,中斷請求標志為TF0。(4)定時器/計數(shù)器T1溢出中斷請求,中斷請求標志為TF1。(5)串行口中斷請求,中斷請求標志為TI或RI。特點:2個外部中斷源,3個內(nèi)部中斷源。5.4外部中斷1所對應的中斷入口地址為(0013H)。5.5下列說法錯誤的是:(A,B,C

30、)(A)各中斷源發(fā)出的中斷請求信號,都會標記在MCS-51系統(tǒng)的IE寄存器中。(B)各中斷源發(fā)出的中斷請求信號,都會標記在MCS-51系統(tǒng)的TMOD寄存器中。(C)各中斷源發(fā)出的中斷請求信號,都會標記在MCS-51系統(tǒng)的IP寄存器中。(D)各中斷源發(fā)出的中斷請求信號,都會標記在MCS-51系統(tǒng)的TCON和SCON寄存器中。5.6 MCS-51單片機響應外部中斷的典型時間是多少?在哪些情況下,CPU將推遲對外部中斷請求的響應?答:典型時間是3-8個機器周期。在下列三種情況下,CPU將推遲對外部中斷請求的響應:(1)CPU正在處理同級的或更高級優(yōu)先級的中斷(2)所查詢的機器周期不是當前所正在執(zhí)行指

31、令的最后一個機器周期(3)正在執(zhí)行的指令是RETI或是訪問IE或IP的指令。5.7 中斷查詢確認后,在下列各種8031單片機運行情況中,能立即進行響應的是(D)(A)當前正在進行高優(yōu)先級中斷處理(B)當前正在執(zhí)行RETI指令(C)當前指令是DIV指令,且正處于取指令的機器周期(D)當前指令是MOV A,R35.8 8031單片機響應中斷后,產(chǎn)生長調(diào)用指令LCALL,執(zhí)行指令的過程包括:首先把(PC)的內(nèi)容壓入堆棧,以進行斷點保護,然后把長調(diào)用指令的16位地址送(PC),使程序執(zhí)行轉(zhuǎn)向(響應中斷請求的中斷入口的地址)中的中斷地址區(qū)。5.9 編寫出外部中斷1為跳沿觸發(fā)的中斷初始化程序。 ORG 0

32、000H AJMP MAIN ORG 0013H AJMP PINT1 ORG 0100HMAIN: SETB IT1 SETB EX1 SETB EAHERE: AJMP HEREPINT1: RETI END 5.10 在MCS-51中,需要外加電路實現(xiàn)中斷撤除的是(D)(A)定時中斷(B)脈沖方式的外部中斷(C)外部串行中斷(D)電平方式的外部中斷5.11 MCS-51有哪幾種擴展外部中斷源的方法?答:擴展外部中斷源的方法有:定時器/計數(shù)器作為外部中斷源的使用方法;中斷和查詢結合的方法。5.12 下列說法正確的是(C D)(A)同一級別的中斷請求按時間的先后順序順序響應。(B)同一時間同

33、一級別的多中斷請求,將形成阻塞,系統(tǒng)無法響應。(C)低優(yōu)先級中斷請求不能中斷高優(yōu)先級中斷請求,但是高優(yōu)先級中斷請求能中斷低優(yōu)先級中斷請求(D)同級中斷不能嵌套。5.13 中斷服務子程序返回指令RETI和普通子程序返回指令RET有什么區(qū)別?答:兩者的區(qū)別在于,RETI清除了中斷響應時,被置1的MCS-51內(nèi)部中斷優(yōu)先級寄存器的優(yōu)先級狀態(tài)。5.14 某系統(tǒng)有3個外部中斷源1、2、3,當某一中斷源變?yōu)榈碗娖綍r,便要求CPU進行處理,它們的優(yōu)先處理次序由高到低依次為3、2、1,中斷處理程序的入口地址分別為1000H,1100H,1200H。試編寫主程序及中斷服務程序(轉(zhuǎn)至相應的中斷處理程序的入口即可)

34、。 ORG 0000H AJMP MAIN ORG 0003H LJMP PINT0 ORG 0100HMAIN: SETB IT0 SETB EX0 SETB EAHERE: SJMP HEREPINT0: PUSH PSW PUSH A JNB P1.3,IR3 JNB P1.2,IR2 JNB P1.1,IR1PINTIR: POP A POP PSW RETIIR3: LJMP IR3INTIR2: LJMP IR2INTIR1: LJMP IR1INT ORG 1000HIR3INT: LJMP PINTIR ORG 1100HIR2INT: LJMP PINTIR ORG 1200

35、HIR1INT: LJMP PINTIR END第六章 MCS-51的定時器/計數(shù)器6.1 如果采用的晶振的頻率為3MHZ,定時器/計數(shù)器工作在方式0、1、2下,其最大的定時時間各為多少?答:方式0213*4us=32.768方式1216*4us=262.144方式228*4us=1.0246.2 定時器/計數(shù)器用作定時器時,其計數(shù)脈沖由誰提供?定時時間與哪些因素有關?答:定時器/計數(shù)器被選定為定時器工作模式時,計數(shù)輸入信號是內(nèi)部時鐘脈沖,每個機器周期產(chǎn)生1個脈沖使計數(shù)器增1,因此,定時器/計數(shù)器的輸入脈沖的周期與機器周期一樣,為時鐘振蕩頻率的1/2。6.3 定時器/計數(shù)器作計數(shù)器使用時,對外

36、界計數(shù)頻率有何限制?答:定時器/計數(shù)器用作計數(shù)器時,計數(shù)脈沖來自相應的外部輸入引腳T0或T1。對外界計數(shù)頻率要求為其最高頻率為系統(tǒng)振蕩頻率的1/24。6.4 采用定時器/計數(shù)器T0對外部脈沖進行計數(shù),每計數(shù)100個脈沖后,T0轉(zhuǎn)為定時工作方式。定時1ms后,又轉(zhuǎn)為計數(shù)方式,如此循環(huán)不止。假定MCS-51單片機的晶體震蕩器的頻率為6MHZ,請使用方式1實現(xiàn),要求編寫出程序。 ORG 0000H AJMP MAIN ORG 000BH LJMP PT0J ORG 0100HMAIN: MOV TMOD,#05H;00000001 MOV TH0,#0FFH;X=65436 MOV TL0,#9CH

37、 CLR F0 SETB TR0 SETB ET0 SETB EAHERE: AJMP HEREPT0J: JB F0,PT0D MOV TMOD,#01H;00000001 MOV TH0,#0FEH;X=65036 MOV TL0,#0CH SETB F0 RETIPT0D: CLR F0 MOV TMOD,#05H MOV TH0,#0FFH MOV TL0,#9CH RETI END6.5 定時器/計數(shù)器的工作方式2有什么特點?適用于哪些應用場合?答:工作方式2為自動恢復初值的(初值自動裝入)8位定時器/計數(shù)器,TLX作為常數(shù)緩沖器,當TLX計數(shù)溢出時,在置1溢出標志TFX的同時,還自

38、動的將THX中的初值送至TLX,使TLX從初值開始重新計數(shù)(X=0,1)。6.6 編寫程序,要求使用T0,采用方式2定時,在P1。0輸出周期為400微秒,占空比為1:10的矩形脈沖。 ORG 0000H AJMP MAIN ORG 000BH AJMP PT0 ORG 0100HMAIN: MOV R2,#00H MOV TMOD,#02H MOV TH0,#0ECH;X=236 MOV TL0,#0ECH SETB P1.0 SETB TR0 SETB ET0 SETB EAHERE: SJMP HEREPT0: CJNE R2,#09H,PT01 SETB P1.0 MOV R2,#00H

39、 RETIPT01: CLR P1.0 INC R2 RETI END 6.7 一個定時器的定時時間有限,如何實現(xiàn)兩個定時器的串行定時,來實現(xiàn)較長時間的定時?答:第一個定時溢出啟動第二個定時計數(shù),實行串行定時6.8 當定時器T0用于方式3時,應該如何控制定時器T1的啟動和關閉?答:控制信號C/T和M1 M0。6.9 定時器/計數(shù)器測量某正脈沖的寬度,采用何種方式可得到最大量程?若時鐘頻率為6MHZ,求允許測量的最大脈沖寬度是多少?答:上升沿從0開始計數(shù),計滿回到下降沿。最大脈沖寬度Tw=131.072us6.10編寫一段程序,功能要求為:當P1.0引腳的電平正跳變時,對P1.1的輸入脈沖進行計

40、數(shù);當P1.2引腳的電平負跳變時,停止計數(shù),并將計數(shù)值寫入R0、R1(高位存R1,低位存R0)。 ORG 0000H LJMP MAINMAIN: ORG 0100H MOV R0,#00H MOV R1,#00H MOV TL0,#00H MOV TH0,#00HLOOP1: JB P1.0,LOOP1LOOP2: JNB P1.0,LOOP2 SETB TR0LOOP3: JNB P1.2,LOOP3LOOP4: JB P1.2,LOOP4 CLR TR0 MOV R1,TH0 MOV R0,TL0 END6.11 THX與TLX(X=0,1)是普通寄存器還是計數(shù)器?其內(nèi)容可以隨時用指令更

41、改嗎?更改后的新值是立即刷新還是等當前計數(shù)器計滿之后才能更新?答:THX與TLX(X=0,1)是計數(shù)器,能用指令更改;能立即刷新。6.12 判斷下列說法是否正確?(1)特殊功能寄存器SCON,與定時器/計數(shù)器的控制無關。 ()(2)特殊功能寄存器TCON,與定時器/計數(shù)器的控制無關 (×)(3)特殊功能寄存器IE,與定時器/計數(shù)器的控制無關 (×)(4)特殊功能寄存器TMOD,與定時器/計數(shù)器的控制無關 (×)第七章 MCS-51的串行口7.3 幀格式為1個起始位,8個數(shù)據(jù)位和1個停止位的異步串行通信方式是方式(1)。 7.4 串行口有幾種工作方式?有幾種幀格式?

42、各種工作方式的波特率如何確定?答:串行口有四種工作方式:方式0、方式1、方式2、方式3有三種幀格式:方式0幀格式D1D2D3D4D5D6D7D0方式0波特率=Fosc/12方式1幀格式D1D2D3D4D5D6D7D0停止位起始位方式1波特率=2SMOD定時器T1的溢出率/32方式2和方式3幀格式D1D2D3D4D5D6D7D0停止位起始位D8方式2的波特率=2MOD*Fosc/64方式3的波特率=2MOD *定時器T1的溢出率/327.5 假定串行口發(fā)送的字符格式為1個起始位,8個數(shù)據(jù)位,1個奇校驗位,1個停止位,請畫出傳送字符“A”的幀格式?000001010117.6 判斷下列說法是否正確

43、(A)串行口通行的第9數(shù)據(jù)位的功能可由用戶定義。(T)(B)發(fā)送數(shù)據(jù)的第9數(shù)據(jù)位的內(nèi)容在SCON寄存器的TB8位中預先準備好的。(T)(C)串行通訊幀發(fā)送時,指令把TB8位的狀態(tài)送入發(fā)送SBUF中。(F)(D)串行通訊接收到的第9位數(shù)據(jù)送SCON寄存器的RB8中保存。(T)(E)串行口方式1的波特率是口變的,通過定時器/計數(shù)器T1的溢出率設定。(T)7.7通過串行口發(fā)送或接收數(shù)據(jù)時,在程序中應使用: (C)(A)MOVC指令 (B)MOVX指令(C)MOV指令 (D)XCHD指令7.8 為什么定時器/計數(shù)器T1用作串行口波特率發(fā)生器時,常采用方式2?若已知時鐘頻率,通訊波特率,如何計算器初值?

44、答:定時器T1工作方式2是一種自動重裝方式,無需在中斷服務程序中送數(shù),沒有由于中斷引起的誤差。定時器工作在方式2是一種既省事又精確的產(chǎn)生串行口波特率的方法。設定時器T1方式2的初值為X,則有:定時器T1的溢出率=計數(shù)速率/(256-X)=Fosc/(256-X)*12則方式2的波特率=2MOD *Fosc/(256-X)*12*32故計數(shù)器初值為X=2MOD *Fosc/12*32*波特率7.9 串行口工作方式1的波特率是:C(A)固定的,為Fosc/32。(B)固定的,為Fosc/16。(C)可變得,通過定時器/計數(shù)器T1的溢出率設定。(D)固定的,為Fosc/64。7.10 在串行通訊中,

45、收發(fā)雙方對波特率的設定應該是相同的。7.11 若晶體振蕩器為11.0592MHZ,串行口工作于方式1,波特率為4800b/s,寫出用T1作為波特率發(fā)生器的方式控制字和計數(shù)初值。答:方式字 為01000000。Fosc=11.0592MHz SMOD=1SCON=40HX=65536-11.0592*2/(384*4800) =65524=0FFF4HORG 0000HMOV SCON,#40HMOV PCON,#80HMOV TMOD,#10HMOV TL1,#0F4HMOV TH1,#0FFHEND7.14使用8031的串行口按工作方式3進行串行口數(shù)據(jù)通訊,假定波特率為1200b/s,第9數(shù)據(jù)位作奇偶校驗位,以中斷方式傳送數(shù)據(jù) ,請編寫通訊程序。方法一:中斷方式發(fā)送程序ORG 0000H LJMP MAIN ORG 0023H LJMP SSEND ORG 0100HMAIN: MOV SP,#60H MOV TMOD,#20H MOV TH1,#0F3H MOV TL1,#0F3H MOV R2,#0FFH MOV 87H,#80H MOV SCON,#0C0H MOV DPTR,#

溫馨提示

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

評論

0/150

提交評論