單片機(jī)每章習(xí)題及答案_第1頁
單片機(jī)每章習(xí)題及答案_第2頁
單片機(jī)每章習(xí)題及答案_第3頁
單片機(jī)每章習(xí)題及答案_第4頁
單片機(jī)每章習(xí)題及答案_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第三節(jié) 增選習(xí)題及解答一、填空題 1. 堆棧寄存器的符號(hào)是( ),復(fù)位后它的內(nèi)容為( ) 。 2. 累加器A的內(nèi)容有偶數(shù)個(gè)1時(shí),特殊功能寄存器( )的( )位內(nèi)容為( )。3. 內(nèi)RAM的03H字節(jié)單元的地址符號(hào)另記為( )。4. 堆棧操作遵循的原則是( )。 5. 8051單片機(jī)有4個(gè)I/O口,它們分別是( ),復(fù)位后對(duì)應(yīng)它們的寄存器的內(nèi)容為( )。 6. 為了正確地讀取8051 的P1口引腳的狀態(tài)值,應(yīng)該先向它( )。 7. 8051的( )引腳應(yīng)該至少保持( )個(gè)機(jī)器周期的( )電平,才能使8051復(fù)位。8. 8051的封裝形式為( )。 9. 利用8051組成的工作系統(tǒng),程序放在內(nèi)部R

2、OM,它的引腳應(yīng)該接( )電平。EA10. 8051單片機(jī)的ALE引腳在CPU對(duì)外存非操作期間,它輸出頻率為晶體振蕩器頻率( )的脈沖信號(hào)。11. 8051內(nèi)部程序存儲(chǔ)器的容量為( )字節(jié),8031的內(nèi)部程序存儲(chǔ)器的容量為( )字節(jié)。12. 8031最大可以擴(kuò)展( )程序存儲(chǔ)器,最大擴(kuò)展的數(shù)據(jù)存儲(chǔ)器的容量是( )。 13. 位尋址區(qū)在內(nèi)RAM低128字節(jié)單元的( )字節(jié)中,高128字節(jié)單元中有( )個(gè)特殊功能寄存器的位可以進(jìn)行位操作。14. 當(dāng)前工作寄存器的選擇由特殊功能寄存器( )的( )位的內(nèi)容決定。15. 用于位處理的布爾處理器是借用的特殊功能寄存器( )的( )位完成的。16. 一個(gè)機(jī)

3、器周期包括( )個(gè)振蕩周期,具體分為( )個(gè)狀態(tài)周期。17. 按執(zhí)行時(shí)間,8051的指令分為( )周期、( )周期和( )周期指令共三種。18. 單片機(jī)由CPU、存儲(chǔ)器和( )三部分組成。19. CPU由( )和( ) 兩部分組成。20. 若不使用MCS-51片內(nèi)程序存儲(chǔ)器,引腳必須( )。 EA21. 當(dāng)MCS-51引腳ALE信號(hào)有效時(shí),表示從P0口穩(wěn)定地送出了( )地址。22. 當(dāng)MCS-51的P0口作為輸出端口時(shí),每位能驅(qū)動(dòng)( )個(gè)TTL負(fù)載。23. MCS-51有( )個(gè)并行I/O口,由于是準(zhǔn)雙向口,所以在輸入時(shí)必須先( )。 24. MCS-51中凡字節(jié)地址能被( )整除的特殊功能寄

4、存器均能位尋址。25. MCS-51系統(tǒng)中,當(dāng)信號(hào)有效時(shí),表示CPU要從( )讀取信息。PSEN26. MCS-51有( )工作寄存器,它們的地址范圍是( )。 27. MCS-51單片機(jī)內(nèi)部RAM中的位尋址區(qū)位于低128B中的( )地址單元內(nèi)。28. 經(jīng)過擴(kuò)展外部程序存儲(chǔ)器的8031,若PC從程序存儲(chǔ)器0000H開始執(zhí)行,則引腳必須接( )電平。 EA29. 當(dāng)(RS1,RS0)=(0,1)時(shí),工作寄存器R7對(duì)應(yīng)內(nèi)部RAM中的( )字節(jié)單元。30. 設(shè)計(jì)8031系統(tǒng)時(shí),( )口不能用作一般I/O口。31. 單片機(jī)復(fù)位后ACC為( ),PSW為( ),SP為( ),P0P3為( ),PC為(

5、)。 32. 8051內(nèi)部含( )ROM,8751是EPROM型,內(nèi)含4KB EPROM??偟膩碇v,MCS-51系列單片機(jī)的存儲(chǔ)器配置在物理上分為( )個(gè)獨(dú)立的存儲(chǔ)器空間,在邏輯上,分為( )個(gè)存儲(chǔ)器空間。33. 單片機(jī)系統(tǒng)復(fù)位后,(PSW)=( ),因此片內(nèi)RAM寄存區(qū)的當(dāng)前寄存器是第( )組,8個(gè)寄存器的單元地址為( )。34. 在MCS-51中PC和DPTR都用于傳送地址,但PC是為訪問( )存儲(chǔ)器傳送地址,而DPTR是為訪問( )存儲(chǔ)器傳送地址。35. 在位操作中,與字節(jié)操作中的累加器ACC作用相同的是( )。 36. 若MCS-51單片機(jī)使用頻率為6MHz的晶振,則一個(gè)機(jī)器周期為(

6、),指令周期為( )。 37. 8051復(fù)位后,CPU從( )單元開始執(zhí)行程序。SP的內(nèi)容為( ),如果不對(duì)SP重新賦值,壓入堆棧的第一個(gè)數(shù)據(jù)將位于片內(nèi)RAM的( )單元。38. MCS-51系列單片機(jī)最大的尋址范圍為( )。 39. 某時(shí)鐘頻率為8MHZ,若某條指令為雙機(jī)器周期指令,這條指令的執(zhí)行時(shí)間為( )。 40. MCS-51單片機(jī)的擴(kuò)展系統(tǒng)中,使用鎖存器的目的是:( )。填空題參考答案: 1SP ,07H 2PSW,0,0 3R3 4先進(jìn)后出或后進(jìn)先出5. P0P3,F(xiàn)FH 6.寫“1”7. RST,兩個(gè),高8. 雙列直插式9. 高10. 六分頻 11. 4KB,00B 12. 64

7、KB,64KB 13. 20H2FH,11 14. PSW,RS1和RS0 15. PSW,CY 16. 12,6 17單、雙、四18. 接口19. 運(yùn)算器和控制器 20. 接地 21. 低8位22 8 23. 四,寫“1” 24. 8 25. 程序存儲(chǔ)器 26. 4組, 00H-1FH 27. 20H2FH 28. 低29. 0FH 30. P0、P2 31. 00H,00H,07H,F(xiàn)FH,0000H 32. 4KB掩膜,四,三 33. 00H, 0, 00H07H 34. 程序, 數(shù)據(jù)35. CY 36. 2s, 2s或4s或8s 37. 0000H, 07H, 08H 38. 64KB

8、 39. 3s 40. 鎖存P0口送出的低8位地址二、選擇題 1. 當(dāng)使用8751且=1,程序存儲(chǔ)器地址小于1000H時(shí),訪問的是( )。 EA(A)片內(nèi)ROM (B)片外ROM (C)片內(nèi)/外ROM (D)不定2. 堆棧操作遵循的原則是( )。(A)先進(jìn)后出(B)先進(jìn)先出(C)后進(jìn)后出(D)隨機(jī)3. 欲訪問8051單片機(jī)的內(nèi)部程序存儲(chǔ)器,則引腳必須為( )。EA(A)高電平(B)低電平(C)高低電平 (D)與PC值有關(guān)4. MCS-51中, 一個(gè)機(jī)器周期有( )個(gè)時(shí)鐘周期組成。(A)4 (B) 8 (C) 6 (D) 12 5. 若用數(shù)據(jù)指針DPTR作為間址寄存器訪問外部數(shù)據(jù)存儲(chǔ)器,它可訪問

9、的整個(gè)外部數(shù)據(jù)存儲(chǔ)器的空間為( ) (A)4KB (B) 8KB (C)16KB (D)64KB 6 . MCS-51系列單片機(jī)復(fù)位后其P1口的輸出狀態(tài)為( )。 (A) 00H (B) 0FFH (C) 0F0H (D)不定7. 當(dāng)MCS-51復(fù)位時(shí),下面說法正確的是( ) (A)PC=0000H (B) SP=00H (C)SBUF=00H (D)P0=00H 8. 使用8751,且=1時(shí),則可以外擴(kuò)ROM( ) EA(A)64KB (B) 60KB (C) 58KB (D) 56KB 9. 下面部件不屬于CPU結(jié)構(gòu)中控制器部分的是( ) (A)PC (B) IR (C) PSW (D)

10、ID 10. P1口的每一位能驅(qū)動(dòng)( ) (A)2個(gè)TTL負(fù)載(B)4個(gè)TTL負(fù)載(C)8個(gè)TTL負(fù)載(D)6個(gè)TTL負(fù)載11. PC中存放的是( )(A)下一條要執(zhí)行的指令的地址(B)當(dāng)前正在執(zhí)行的指令(C)當(dāng)前正在執(zhí)行指令的地址 (D)下一條要執(zhí)行的指令12. 8031是( ) (A)CPU (B)微處理器(C)單片微型計(jì)算機(jī)(D)控制器13. 由PC內(nèi)容指定ROM地址單元中取出的指令,放于( )。 (A)運(yùn)算器與控制器 (B)運(yùn)算器與存儲(chǔ)器(C)指令寄存器和指令譯碼器(D)控制器與存儲(chǔ)器14. 所謂CPU是指( ) (A) 運(yùn)算器與控制器(B)運(yùn)算器與存儲(chǔ)器(C) 輸入輸出設(shè)備 (D)控

11、制器與存儲(chǔ)器15. 關(guān)于MCS-51的堆棧操作,正確的說法是( ) (A)先入棧,再修改棧指針(B)先修改棧指針,再出棧(C)先修改棧指針,再入棧(D)以上都不對(duì)16. 指令寄存器的功能是( ) (A)存放指令地址(B)存放當(dāng)前正在執(zhí)行的指令(C)存放PC的內(nèi)容(D)存放指令地址及操作數(shù)17. MCS-51外擴(kuò)存儲(chǔ)器時(shí),系統(tǒng)的數(shù)據(jù)總線是由( )構(gòu)成。(A)P0 (B)P1 (C) P2 (D) P3 18. MCS-51有兩種讀取并行I/O口信息的方法:一種是讀引腳,還有一種是( )(A)讀鎖存器(B)讀緩沖器(C)讀累加器A (D)讀存儲(chǔ)器19. MCS-51的并行I/O口讀-改-寫操作,是

12、針對(duì)該口的( ) (A)引腳(B)緩沖器 (C)地址線(D)內(nèi)部鎖存器20. 假定設(shè)置堆棧指針SP的值為36H,在執(zhí)行指令PUSH 20H后SP的值為( ) (A)36H (B)37H (C)38H (D)21H 選擇題參考答案: 1A 2A 3A 4C 5D 6. B 7. A 8. B 9. C 10. B 11. A 12. C 13. C 14. A 15. C 16. B 17. A 18. A 19. D 20. B 三、簡答題 1 什么是微處理器? 答:微處理器是微型計(jì)算機(jī)的核心部件,又稱為中央處理單元CPU。它包括兩個(gè)主要部分:運(yùn)算器、控制器。2 8051單片機(jī)在片內(nèi)有哪些主要

13、邏輯功能部件?各個(gè)邏輯部件的主要功能是什么? 答:8051單片機(jī)在片內(nèi)集成了以下主要邏輯功能部件,主要功能如下。(1) CPU(中央處理器):8位功能:中央處理器CPU由控制器與運(yùn)算器構(gòu)成,是單片機(jī)的控制和指揮中心。(2) 片內(nèi)RAM:256B 功能:地址為00H7FH的低RAM區(qū),用于數(shù)據(jù)暫存和數(shù)據(jù)緩沖等;地址為80HFFH的高RAM區(qū),只有離散的分布21個(gè)特殊功能寄存器SP、DPTR、PCON、IE、IP、P0、P1、P2、P3,用以存放相應(yīng)功能部件的控制命令、狀態(tài)或數(shù)據(jù)。(3)程序存儲(chǔ)器:4KB 功能:程序存儲(chǔ)器用于存放經(jīng)調(diào)試正確的應(yīng)用程序和表格之類的固定常數(shù)。(4)并行I/O口:8位,

14、4個(gè)功能:8051單片機(jī)的并行I/O口,是單片機(jī)數(shù)據(jù)信息或控制信號(hào)進(jìn)、出的通道,不僅可作為一般輸入或輸出口使用,而且在擴(kuò)展外部存儲(chǔ)器和I/O接口時(shí),還可作為系統(tǒng)地址、數(shù)據(jù)總線或是控制信號(hào)線等。(5)串行接口:全雙工,1個(gè)功能:全雙工串行I/O口,使單片機(jī)具有了串行通信的能力。(6)定時(shí)器/計(jì)數(shù)器:16位,2個(gè)功能:在單片機(jī)的實(shí)際應(yīng)用中,定時(shí)器/計(jì)數(shù)器提供精確的定時(shí),或者對(duì)外部事件進(jìn)行計(jì)數(shù)。(7)片內(nèi)振蕩器和時(shí)鐘電路:1個(gè)功能:8051的這部分電路只要外接振蕩元件,如晶體振蕩器或外部時(shí)鐘源,就能產(chǎn)生計(jì)算機(jī)工作所需要的時(shí)鐘信號(hào)。3 程序計(jì)數(shù)器PC、數(shù)據(jù)指針DPTR、堆棧指針SP分別有那些特點(diǎn)? 答

15、:(1)程序計(jì)數(shù)器PC的特點(diǎn):其中存放著下一條將要從程序存儲(chǔ)器中取出的指令的地址。程序計(jì)數(shù)器PC的數(shù)據(jù)長度決定了程序存儲(chǔ)器可以直接尋址的范圍。程序計(jì)數(shù)器PC不可尋址,即不能對(duì)其賦值,其內(nèi)容變化方式有: 自動(dòng)加1,此為最基本的變化方式。執(zhí)行條件或無條件轉(zhuǎn)移指令時(shí),其內(nèi)容由轉(zhuǎn)移指令直接修改,改變原程序執(zhí)行方向。執(zhí)行調(diào)用指令或響應(yīng)中斷時(shí),PC的內(nèi)容變化過程如下: PC的當(dāng)前值,即下一條將要執(zhí)行的指令的地址送入堆棧,加以保護(hù);將子程序的入口地址或者中斷矢量地址送入PC,改變原程序執(zhí)行方向,執(zhí)行子程序或中斷服務(wù)程序;子程序或中斷服務(wù)程序執(zhí)行完畢,遇到返回指令RET或RETI時(shí),將棧頂?shù)膬?nèi)容送到PC中,程

16、序又返回到原來的地方,繼續(xù)執(zhí)行主程序。(2)數(shù)據(jù)指針DPTR的特點(diǎn)數(shù)據(jù)指針DPTR是作為片外數(shù)據(jù)存儲(chǔ)器尋址用的地址寄存器。(3)棧頂指針SP的特點(diǎn)SP始終存放堆棧頂部字節(jié)單元的地址。其內(nèi)容變化是自動(dòng)管理,進(jìn)行堆棧操作有兩種方式,即壓棧(PUSH)和出棧(POP)。壓棧時(shí), SP首先自動(dòng)加1,然后數(shù)據(jù)壓入SP內(nèi)容指示的字節(jié)單元中;而出棧時(shí),SP內(nèi)容指示的字節(jié)單元中的數(shù)據(jù)彈出,然后SP自動(dòng)減1,這樣SP始終指向堆棧頂部字節(jié)單元的地址。(4)程序計(jì)數(shù)器PC和數(shù)據(jù)指針DPTR、棧頂指針SP的異同 相同點(diǎn): 三者都是與地址有關(guān)的地址寄存器,其中PC與程序存儲(chǔ)器的地址有關(guān),而DPTR與數(shù)據(jù)存儲(chǔ)器的地址有關(guān)

17、,在對(duì)程序存儲(chǔ)器進(jìn)行變址間接尋址時(shí),DPTR作為基址寄存器使用,SP則與棧區(qū)的地址有關(guān)。PC和DPTR都是16位的地址寄存器,其內(nèi)容都是通過P0和P2口輸出的,PC的輸出與ALE及有關(guān),DPTR與ALE、和有關(guān)。PSENRDWR 不同點(diǎn): PC只能作為一個(gè)16位的寄存器,自動(dòng)加1;SP是一個(gè)8位的寄存器; DPTR可以作為一個(gè)16位的寄存器,也可作為兩個(gè)8位的寄存器使用。例如: MOV DPTR, #2050H ;可以下兩條指令來代替,即:MOV DPH, #20H; MOV DPL,#50H 。PC是不可以訪問的,即用戶不能對(duì)其賦值。而DPTR和SP均可以訪問。4 復(fù)位的作用是什么?畫出80

18、31單片機(jī)手動(dòng)及自動(dòng)復(fù)位電路圖,并說明原理。答: (1)復(fù)位是單片機(jī)的初始化操作,單片機(jī)在啟動(dòng)運(yùn)行時(shí),都需要先復(fù)位。它的作用是使CPU和系統(tǒng)中其他部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。(2)復(fù)位方法有兩種,即上電自動(dòng)復(fù)位和手動(dòng)按鍵復(fù)位。電路圖及原理參考原教材第二章/第二節(jié)MCS-51單片機(jī)引腳及其功能。5 8051單片機(jī)的存儲(chǔ)器在結(jié)構(gòu)上有何特點(diǎn)?在物理上和邏輯上各有哪幾種地址空間?訪問不同空間的指令格式有何區(qū)別? 答:(1)8051單片機(jī)存儲(chǔ)器在結(jié)構(gòu)上是采用哈佛型結(jié)構(gòu),即將程序和數(shù)據(jù)分別放在程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器內(nèi)。(2)其存儲(chǔ)空間在物理結(jié)構(gòu)上可劃分為如下四個(gè)空間:片內(nèi)程序存儲(chǔ)器

19、、片外程序存儲(chǔ)器、片內(nèi)數(shù)據(jù)存儲(chǔ)器、片外數(shù)據(jù)存儲(chǔ)器。從用戶使用的角度,即從邏輯上,又可劃分為如下三個(gè)空間: 片內(nèi)、外統(tǒng)一編址的64KB程序存儲(chǔ)器(地址范圍為0000HFFFFH,用16位地址表示),訪問時(shí)采用MOVC指令。片內(nèi)256B數(shù)據(jù)存儲(chǔ)器(地址范圍為00FFH,用8位地址表示) 。訪問這部分空間采用MOV指令。片外64KB數(shù)據(jù)存儲(chǔ)器(地址范圍為0000HFFFFH,用16位地址表示)。訪問時(shí)則利用MOVX指令。68051通用工作寄存器組有什么特點(diǎn)?如何實(shí)現(xiàn)工作寄存器現(xiàn)場保護(hù)? 答:(1)通用工作寄存器組的特點(diǎn)用寄存器直接尋址,指令的數(shù)量最多,均為單周期指令,執(zhí)行速度快。(2)工作寄存器的現(xiàn)

20、場保護(hù)對(duì)于工作寄存器的現(xiàn)場保護(hù),一般在主程序中使用一組工作寄存器;而在進(jìn)入子程序或中斷服務(wù)程序時(shí),切換到另一組工作寄存器;在返回主程序前,再重新切換回原來的工作寄存器。7 8051程序存儲(chǔ)器中存放什么數(shù)據(jù)?有哪些操作方式? 答:程序存儲(chǔ)器存放系統(tǒng)應(yīng)用程序和表格常數(shù)。程序存儲(chǔ)器的操作方式有: 程序指令的自主操作。程序由程序計(jì)數(shù)器PC指引進(jìn)行順序操作或轉(zhuǎn)移操作。表格常數(shù)的查表操作。8051指令系統(tǒng)中具有查表指令為MOVC,通過PC或DPTR的基址+變址尋址方式實(shí)現(xiàn)查表操作。8為什么說8051具有很強(qiáng)的布爾(位)處理功能?可以位尋址的單元有哪些?采用布爾處理有哪些優(yōu)點(diǎn)? 答:8051具有很強(qiáng)的布爾(

21、位)處理功能。累加器CY:進(jìn)位/借位標(biāo)志位。在布爾運(yùn)算中,CY用于存放運(yùn)算結(jié)果或數(shù)據(jù)源,是位處理時(shí)數(shù)據(jù)傳送中的中心。位尋址區(qū):內(nèi)部數(shù)據(jù)RAM區(qū)的20H2FH的16個(gè)字節(jié)單元,共包含128位(00H7FH),是可位尋址的RAM區(qū)。11個(gè)可位尋址的特殊功能寄存器的相應(yīng)位。位操作指令系統(tǒng):位操作指令可實(shí)現(xiàn)對(duì)位的置位、清0、取反、判位轉(zhuǎn)移、傳送、位邏輯運(yùn)算等操作。(2)采用布爾處理方法的優(yōu)點(diǎn)利用位邏輯操作功能進(jìn)行隨機(jī)邏輯設(shè)計(jì),可把邏輯表達(dá)式直接變換成軟件執(zhí)行,方法簡便,免去了過多的數(shù)據(jù)往返傳送、字節(jié)屏蔽和測試分支,大大簡化了編程,節(jié)省存儲(chǔ)空間,加快了處理速度;還可以實(shí)現(xiàn)復(fù)雜的組合邏輯處理功能。所有這些

22、,特別適用于某些數(shù)據(jù)采集,實(shí)時(shí)測控等應(yīng)用系統(tǒng)。9MCS-51系列單片機(jī)的程序存儲(chǔ)器中有幾個(gè)具有特殊功能的單元?各自功能是什么? 答:MCS-51系列單片機(jī)的程序存儲(chǔ)器中有7個(gè)保留特殊功能單元,其中0000H為復(fù)位入口地址、0003H為外部中斷0服務(wù)程序入口地址、000BH為T0溢出中斷入口、0013H為外部中斷1服務(wù)程序入口地址、001BH為T1溢出中斷入口、0023H為串行接口中斷入口,002BH為8052中斷服務(wù)程序入口地址。10堆棧的作用是什么?在編程時(shí),為什么有時(shí)要對(duì)堆棧指針SP重新賦值?如果CPU在操作中要使用第0、1兩組工作寄存器, SP的初值應(yīng)為多大? 答:堆棧的主要作用是暫時(shí)存

23、放數(shù)據(jù)和地址,通常用來保護(hù)斷點(diǎn)和現(xiàn)場。 堆棧由8位特殊功能寄存器SP自動(dòng)管理,它始終存放堆棧頂部字節(jié)單元的地址(棧頂指針)。進(jìn)行堆棧操作有兩種方式,一種叫數(shù)據(jù)壓入(PUSH)堆棧,另一種叫數(shù)據(jù)彈出(POP)堆棧。數(shù)據(jù)壓棧時(shí), SP首先自動(dòng)加1,然后數(shù)據(jù)壓入SP內(nèi)容指示的字節(jié)單元中;而數(shù)據(jù)出棧時(shí),SP內(nèi)容指示的字節(jié)單元中的數(shù)據(jù)彈出,然后SP自動(dòng)減1,這樣SP始終指向堆棧頂部字節(jié)單元。系統(tǒng)復(fù)位后,SP初始化為07H,使得堆棧事實(shí)上由08H開始。因?yàn)?8H1FH單元為工作寄存器區(qū),20H2FH為位尋址區(qū)。在程序設(shè)計(jì)中很可能要用到這些區(qū),所以用戶在編程時(shí)要對(duì)堆棧指針SP重新賦值,最好把SP初值設(shè)為2F

24、H或更大值,當(dāng)然同時(shí)還要顧及其允許的深度。在使用堆棧時(shí)要注意,由于堆棧的占用,會(huì)減少內(nèi)部RAM的可利用單元,如設(shè)置不當(dāng),可能引起內(nèi)部RAM單元沖突。如果CPU在操作中要使用第0、1兩組工作寄存器,SP的初值應(yīng)不小于0FH。11MCS-51系列單片機(jī)運(yùn)行出錯(cuò)或程序進(jìn)入死循環(huán),如何擺脫困境? 答:當(dāng)由于程序運(yùn)行或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),需按復(fù)位鍵以重新啟動(dòng)。128051的四個(gè)I/O端口的作用是什么?80C51的片外三總線是如何分配的? 答:8051單片機(jī)有4個(gè)I/O端口,每個(gè)端口都是8位雙向口,共占32根引腳。在無片外擴(kuò)展存儲(chǔ)器的系統(tǒng)中,這4個(gè)端口的每一位都可以作為雙向通用I/O端口使用。需

25、要注意的是,P0P3口都是準(zhǔn)雙向I/O口,作輸入時(shí),必須先對(duì)相應(yīng)端口鎖存器寫“1”,使驅(qū)動(dòng)管FET截止。在具有片外擴(kuò)展存儲(chǔ)器的系統(tǒng)中,P2口作為高8位的地址線,P0口分時(shí)作為低8位地址線和雙向數(shù)據(jù)總線,P3口的某些第二功能作為控制線。138051的I/O口有什么特點(diǎn)?讀I/O口有幾種方法? 答: 8051的I/O口的特點(diǎn)8051的每一條I/O線都能獨(dú)立地用作輸入或輸出線。每個(gè)端口都包括一個(gè)鎖存器(即特殊功能寄存器P0P3),一個(gè)輸出驅(qū)動(dòng)器和輸入緩沖器。輸出時(shí)數(shù)據(jù)可以鎖存,輸入時(shí)數(shù)據(jù)可以緩沖。同時(shí),I/O口又是外部的輸入/輸出通道,必須有相應(yīng)的引腳,故形成了I/O口的鎖存器加引腳的典型結(jié)構(gòu)。讀I

26、/O口有兩種方法,一是讀鎖存器,二是讀引腳。讀鎖存器操作讀鎖存器是讀入一個(gè)口鎖存器的值,進(jìn)行處理后,重新寫回到鎖存器中,這些指令稱為讀-修改-寫指令,這些指令是一些邏輯運(yùn)算指令、置位/清除指令、條件轉(zhuǎn)移指令以及將I/O口作為目的地址的操作指令。讀引腳的操作如果在指令中,某個(gè)I/O口被指定為源操作數(shù),則該指令為讀引腳的操作指令。例如:執(zhí)行“MOV A,P1”時(shí),P1口的引腳狀態(tài)傳送到累加器中;而相對(duì)應(yīng)的“MOV P1, A”指令,則是將累加器的內(nèi)容傳送到P1口鎖存器中。14什么是準(zhǔn)雙向口?使用準(zhǔn)雙向口時(shí),要注意什么? 答:準(zhǔn)雙向口的含義P0、P1、P2、P3口作普通I/O口使用時(shí),都是準(zhǔn)雙向口結(jié)

27、構(gòu)。準(zhǔn)雙向口的輸入操作和輸出操作本質(zhì)不同,輸入操作是讀引腳狀態(tài);輸出操作是對(duì)口鎖存器的寫入操作。由口鎖存器和引腳電路可知:當(dāng)由內(nèi)部總線給口鎖存器置0或1時(shí),鎖存器中的“0”、“1”狀態(tài)立即反映到引腳上。但是在輸入操作(讀引腳)時(shí),如果口鎖存器狀態(tài)“0”,引腳鉗位在“0”狀態(tài),導(dǎo)致無法讀出引腳的高電平輸入,因而,在進(jìn)行輸入操作時(shí),必須先對(duì)相應(yīng)端口鎖存器寫“1”,使驅(qū)動(dòng)管FET截止。準(zhǔn)雙向口的使用準(zhǔn)雙向口作輸入口時(shí),應(yīng)先使鎖存器置1,使驅(qū)動(dòng)管FET截止,然后再讀引腳。例如,要將P1口狀態(tài)讀入到累加器A中,應(yīng)執(zhí)行以下兩條指令: MOV P1,0FFH ;將P1口設(shè)置為輸入方式MOV A,P1 ;讀P

28、1口引腳狀態(tài)到ACC中第三節(jié) 增選習(xí)題及解答一、指令概念填空 1、MCS-51特殊功能寄存器只能采用 尋址方式。2、片內(nèi)20H2FH范圍內(nèi)的數(shù)據(jù)存儲(chǔ)器,既可以字節(jié)尋址又可以 尋址。3、訪問MCS-51程序存儲(chǔ)器傳送指令的操作碼助記符應(yīng)為 。4、訪問MCS-51片內(nèi)RAM應(yīng)該使用的傳送指令的助記符是 。5、當(dāng)MCS-51使用間接尋址方式訪問RAM高128B,會(huì)產(chǎn)生 。6、指令是通知計(jì)算機(jī)完成某種操作的 。7、匯編語言中可以使用偽指令,它們不是真正的指令,只是用來 。8、累加器(A)=80H,執(zhí)行完指令A(yù)DD A,#83H后,進(jìn)位位C= 。9、執(zhí)行ANL A,#0FH指令后,累加器A的高4位= 。

29、10、JZ rel的操作碼的地址為1000H,rel=20H,它的轉(zhuǎn)移目的地址為 。11、JBC 00H,e操作碼的地址為2000H,e=70H,它的轉(zhuǎn)移目的地址為 。12、累加器(A)=7EH,(20H)=#04H,MCS-51執(zhí)行完ADD A,20H指令后,PSW.0為 。13、MOV PSW,#10H是將MCS-51的工作寄存器置為第 組。14、指令DJNZ R7,e的指令操作碼所在地址為3000H,e=EFH,則它的轉(zhuǎn)移目的地址為 。15、ORL A,#0F0H是將A的高4位置1,而低4位 。16、SJMP e的指令操作碼地址為0050H,e=65H,那么它的轉(zhuǎn)移目的地址為。 17、設(shè)

30、DPTR=2000H,(A)=80H,則MOVC A,A+DPTR的操作數(shù)的實(shí)際地址為 。18、執(zhí)行當(dāng)前指令后,PC內(nèi)容為 。19、MOV C,20H源尋址方式為 尋址。20、INC指令 影響CY位。21、指令LCALL 37B0H,首地址在2000H,所完成的操作是 入棧,37B0H PC。 23、ORG 1000H LCALL 4000H ORG 4000H ADD A, R2 ;執(zhí)行完LCALL后(PC)= 。24、通過堆棧操作實(shí)現(xiàn)子程序調(diào)用,首先要把 的內(nèi)容入棧,以進(jìn)行斷點(diǎn)保護(hù)。調(diào)用返回時(shí)再進(jìn)行出棧操作,把保護(hù)的斷點(diǎn)彈回 。25、一臺(tái)計(jì)算機(jī)的指令系統(tǒng)就是它所能執(zhí)行的 集合。26、以助記

31、符形式表示的計(jì)算機(jī)指令就是它的 語言。27、在直接尋址方式中,只能使用 位二進(jìn)制數(shù)作為直接地址,因此其尋址對(duì)象只限于 。28、在寄存器間接尋址方式中,其“間接”體現(xiàn)在指令中寄存器的內(nèi)容不是操作數(shù),而是操作數(shù)的 。29、在變址尋址方式中,以作變址寄存器,以或 作基址寄存器。30、假定累加器A的內(nèi)容為30H,執(zhí)行指令:1000H:MOVC A,A+PC后,把程序存儲(chǔ)器 單元的內(nèi)容送累加器A中。31、假定DPTR的內(nèi)容為8100H,累加器A的內(nèi)容為4DH,執(zhí)行下列指令:MOVC A,A+DPTR后,送入A 的是程序存儲(chǔ)器 單元的內(nèi)容。32、設(shè)(SP)=60H,(ACC)=30H,(B)=70H,執(zhí)行

32、指令:PUSH ACC;PUSH B后,SP的內(nèi)容為 ,61H單元的內(nèi)容為 。62H單元的內(nèi)容為 。33、假定(SP)=62H,(61H)=30H,(62H)=70H。執(zhí)行下列指令:POP DPH;POP DPL后,DPTR的內(nèi)容為,SP的內(nèi)容為 。34、假定(A)=85H,(R0)=20H,(20H)=0AFH。執(zhí)行指令:ADD A,R0后,累加器A的內(nèi)容為,CY的內(nèi)容為,AC的內(nèi)容為 ,OV的內(nèi)容為 。35、假定(A)=85H,(R0)=20H,(20H)=0AFH。執(zhí)行指令:ADD A,20H后,累加器A的內(nèi)容為 ,CY的內(nèi)容為 ,AC的內(nèi)容為,OV的內(nèi)容為 。36、假定(A)=0FFH

33、,(R3)=0FH,(30H)=0F0H,(R0)=40H,(40H)=00H。執(zhí)行指令:INC A;INC R3;INC 30H;INC R0后,A 的內(nèi)容為,R3的內(nèi)容為,30H的內(nèi)容為 ,40H的內(nèi)容為 。37、在MCS-51中PC和DPTR都用于提供地址,但PC是為訪問 存儲(chǔ)器提供地址,而DPTR是為訪問 存儲(chǔ)器提供地址。38、在位操作中,能起到與字節(jié)操作中累加器作用的是 。39、累加器A中存放其一個(gè)其值小于或等于127的8位無符號(hào)數(shù),CY清“0”后執(zhí)行RLC A指令,則A中數(shù)變?yōu)樵瓉淼?倍。40、假定(A)=56,(R5)=67。執(zhí)行指令:ADDA,R5;DA A后,累加器A的內(nèi)容為

34、 ,CY的內(nèi)容為 。41、假定(A)=0FH,(R7)=19H,(30H)=00H,(R1)=40H,(40H)=0FFH。執(zhí)行指令: DEC A DEC R7 DEC 30H DEC R1 后, A內(nèi)容為,R7內(nèi)容為,30H內(nèi)容為 ,40H內(nèi)容為 。42、假定(A)=50H,(B)=0A0H。執(zhí)行指令:MUL AB后,寄存器B的內(nèi)容為,A 內(nèi)容為,CY內(nèi)容為,OV內(nèi)容為 。43、假定(A)=0FBH,(B)=12H。執(zhí)行指令;DIV AB后,累加器A 的內(nèi)容為 ,寄存器B的內(nèi)容為 ,CY的內(nèi)容為 ,OV的內(nèi)容為 。44、假定(A)=0C5H。執(zhí)行指令:SWAP A后,累加器A的內(nèi)容為 。45

35、、執(zhí)行如下指令序列: MOV C,P1.0 ANL C,P1.1 ANL C,/P1.2 MOV P3.0,C 后,所實(shí)現(xiàn)的邏輯運(yùn)算式為 。46、 假定addrll=00100000000B,標(biāo)號(hào)qaz的地址為1030H。執(zhí)行指令:qaz:AJMP addrll后,程序轉(zhuǎn)移地址 去執(zhí)行。47、假定標(biāo)號(hào)qaz的地址為0100H,標(biāo)號(hào)qwe值為0123H(即跳轉(zhuǎn)的目標(biāo)地址為0123H)。應(yīng)執(zhí)行指令:qaz:SJMP qwe該指令的相對(duì)偏移量(即指令的第二字節(jié))為 。48、DPTR是MCS-51中惟一一個(gè)16位寄存器,在程序中常用來作為MOVC指令的訪問程序存儲(chǔ)器的 使用。49、在R7初值為00H的

36、情況下,DJNZ R7,rel指令將循環(huán)執(zhí)行 次。50、欲使P1口的低4位輸出0而高4位不變,應(yīng)執(zhí)行一條 指令。欲使P1口的高4位輸出1而低4位不變,應(yīng)執(zhí)行一條指令。 51、MCS-51的兩條查表指令是 和 。填空題參考答案: 1、直接2、位3、MOVC 4、MOV 5、錯(cuò)誤6、命令7、對(duì)匯編過程進(jìn)行某種控制8、1 9、0000 10、1022H 11、2073H 12、0 13、2 14、2FF1H 15、不變16、00B7H 17、2080H 18、下一條將要讀取的指令碼首地址 19、位20、不21、2003H 22、寄存器間接尋址23、4000H 24、PC, PC 25、指令26、匯編

37、27、8 片內(nèi)RAM 28、地址 29、A, PC, DPTR 30、1031H 31、814DH 32、62H,30H,70H 33、7030H 60H 34、34H,1,1 ,1 35、34H, 1,1, 0 36、00H, 10H, 0F1H, 01H 37、程序,數(shù)據(jù)38、CY 39、2 40、00100011,1 41、0EH,18H,0FFH,0FEH 42、32H, 00H, 0, 1 43、0DH, 11H, 0, 0 44、5CH 45、P3.0=(P1.0)(P1.1) 46、1100H 47、0123-0102=21H 2.1P 48、基址寄存器49、256 50、ANL

38、 P1, #F0H; ORL P1, #F0H 51、MOVC A, A+DPTR, MOVC A, A+PC 二、選擇題 1、在中斷服務(wù)程序中,至少應(yīng)有一條( )。 (A)傳送指令(B)轉(zhuǎn)移指令(C)加法指令(D)中斷返回指令2、要用傳送指令訪問MCS-51片外RAM,它的指令操作碼助記符應(yīng)是()。(A)MOV (B)MOVX (C)MOVC (D)以上都行3、ORG 2000H LCALL 3000H ORG 3000H RET 上面程序執(zhí)行完RET指令后,(PC)=( )。(A)2000H (B)3000H (C)2003H (D)3003H 4、JNZ e指令的尋址方式是( )。(A)

39、立即尋址(B)寄存器尋址(C)相對(duì)尋址(D)位尋址5、執(zhí)行LCALL 4000H 指令時(shí),MCS-51所完成的操作是( )。 (A)保護(hù)PC (B)4000HPC (C)保護(hù)現(xiàn)場(D)PC+3入棧,4000HPC 6、MOVX A,DPTR指令中源操作數(shù)的尋址方式是( )。 (A)寄存器尋址(B)寄存器間接尋址(C)直接尋址(D)立即尋址7、ORG 0003H LJMP 2000H ORG 000BH LJMP 3000H 當(dāng)CPU響應(yīng)外部中斷0后,PC的值是( )。(A)0003H (B)2000H (C)000BH (D)3000H 8、PUSH ACC指令,MCS-51完成的操作是( )

40、。(A)SP+1SP(ACC)(SP) (B)(ACC)(SP)SP-1SP (C)SP-1SP(ACC)(SP) (D)(ACC)(SP)SP+1SP 9、把P0口高4位變0,低4位不變,應(yīng)使用指令( )。(A)ORL P0,#0FH (B)ORL P0,#0F0H (C)ANL P0,#0F0H (D)ANL P0,#0FH 10、LCALL存于2000H開始的地址單元中,執(zhí)行完相應(yīng)子程序中的返回指令后,PC=( ) (A)2000H (B)2001H (D)2002H (D)2003H 11、MCS-51執(zhí)行完MOV A,#08H后,PSW的哪一位被置位( ) (A)C (B)F0 (C

41、)OV (D)P 12、89C51執(zhí)行ADD A,20H指令時(shí),首先在P0口上出現(xiàn)的信息是( ) (A)操作碼地址(B)操作碼(C)操作數(shù)(D)操作數(shù)地址13、要訪問MCS-51的特殊功能寄存器應(yīng)使用的尋址方式是( ) (A)寄存器間接尋址(B)變址尋址(C)直接尋址(D)相對(duì)尋址14、下面哪條指令將MCS-51的工作寄存器置成3區(qū)( ) (A)MOV PSW,#13H (B)MOV PSW,#18H (C)SETB PSW.4 CLR PSW .3 (D SETB PSW. 3 CLR PSW . 4 15、MCS-51的相對(duì)轉(zhuǎn)移指令的最大負(fù)跳距離為( )。(A)2KB (B)128B (C

42、)127B (D)256B 16、MOV C,#00H的尋址方式是( )。(A)位尋址(B)直接尋址(C)立即尋址(D)寄存器尋址17、ORG 0000H ALMP 0040H ORG 040H MOV SP,#00H 當(dāng)執(zhí)行完左邊的程序后,PC的值是( )。 (A)0040H (B)0041H (C)0042H (D)0043H 18、程序設(shè)計(jì)的方法一般有( )。(A)1種(B)2種(C)3種(D)4種19、MCS-51的并行I/O口信息有兩種讀取方法,一種是讀引腳,還有一種是()。(A)讀鎖存器(B)讀數(shù)據(jù)(C)讀A累加器(D)讀CPU 20、MCS-51的并行I/O口讀-改-寫操作,是針

43、對(duì)該口的( )。 (A)引腳(B)片選信號(hào)(C)地址線(D)內(nèi)部鎖存器21、以下指令中,屬于單純讀引腳的指令是( )。(A)MOV P1,A (B)ORL P1,#0FH (C)MOV C,P1.5 (D)DJNZ P1,short-lable 22、指令A(yù)JMP的跳轉(zhuǎn)范圍是( )。(A)256B (B)1KB (C)2KB (D)64KB 23、以下運(yùn)算中對(duì)溢出標(biāo)志OV沒有影響或不受OV影響的運(yùn)算是( )。 (A)邏輯運(yùn)算(B)符號(hào)數(shù)加減法運(yùn)算(C)下一條指令的地址(D)除法運(yùn)算24、在算術(shù)運(yùn)算中,與輔助進(jìn)位位AC有關(guān)的是( )。(A)二進(jìn)制數(shù)(B)八進(jìn)制數(shù)(C)十進(jìn)制數(shù)(D)十六進(jìn)制數(shù)25

44、、在相對(duì)尋址方式中,“相對(duì)”兩字是指跳轉(zhuǎn)( )。(A)地址偏移量rel (B)當(dāng)前指令的首地址(C)當(dāng)前指令的末地址(D)DPTR值26、在寄存器間接尋址方式中,指定寄存器中存放的是( )。 (A)操作數(shù)(B)操作數(shù)地址(C)轉(zhuǎn)移地址(D)地址偏移量27、對(duì)程序存儲(chǔ)器的讀操作,只能使用( )。 (A)MOV指令(B)PUSH指令(C)MOVX指令(D)MOVC指令28、必須進(jìn)行十進(jìn)制調(diào)整的十進(jìn)制運(yùn)算( )。 (A)有加法和減法(B)有乘法和除法(C)只有加法(D)只有減法29、執(zhí)行返回指令時(shí),返回的斷點(diǎn)是( )。(A)調(diào)用指令的首地址(B)調(diào)用指令的末地址(C)調(diào)用指令下一條指令的首地址(D)

45、返回指令的末地址30、可以為訪問程序存儲(chǔ)器提供或構(gòu)成地址的有( )。(A) 只有程序計(jì)數(shù)器PC (B)只有PC和累加器A (C)只有PC、A和數(shù)據(jù)指針DPTR (D)PC、A、DPTR和堆棧指針SP 選擇題參考答案: 1、D 2、B 3、C 4、C 5、D 6、B 7、B 8、A 9、D 10、D 11、D 12、A 13、C 14、B 15、B 16、A 17、C 18、D 19、A 20、D 21、C 22、C 23、A 24、C 25、A 26、B 27、D 28、C 29、C 30、C 三、簡答題 1、位地址7CH與字節(jié)地址7CH如何區(qū)別?位地址7CH具體在片內(nèi)RAM中什么位置? 答:

46、字節(jié)地址是片內(nèi)RAM的單元地址,而位地址是片內(nèi)RAM單元中的某一位。7CH字節(jié)地址為RAMR的7CH單元,而7CH位地址是RAM2FH單元中D4位。2、程序存儲(chǔ)器的0543H和0544H兩單元中存有一條AJMP指令。若其代碼為E165H,則目的地址等于什么? 答: AJMP指令之目的地址的高5位來自程序計(jì)數(shù)器PC 的高5位。在把這條指令的兩個(gè)字節(jié)從程序存儲(chǔ)器取出并送入指令寄存器IR中去之后,PC內(nèi)容加2,由原來的0543H變成了0545H。其高5位為00000B,目的地址的低11位為操作碼高3位與指令第二個(gè)字節(jié)的程序組合。指令代碼第一個(gè)字節(jié)是E1H,其最高3位等于111B;第二個(gè)字節(jié)為65H。

47、因此這條AJMP指令的目的地址等于0765H。3、讀下面一段程序,并以簡單方法對(duì)它進(jìn)行改寫,限用5條指令。MOV R0,#21H MOV A,20H ANL A,#0FH MOV R0,A INC R0 MOV A,20H SWAP AANL A,#0FH MOV R0,A 答: 這段程序的任務(wù)是把片內(nèi)RAM20H單元的內(nèi)容分解成高4位和低4位,低4位存入21H單元,高4位存入22H單元??梢哉J(rèn)為這是把20H單元內(nèi)的數(shù)據(jù)分成兩個(gè)十六進(jìn)制位或兩個(gè)BCD位。這可用除法進(jìn)行: MOV A,20H ;取數(shù) MOV B,#10H ;除數(shù)為16 DIV AB ;分離十六進(jìn)制位MOV 21H,B ;存低位

48、MOV 22H,A ;存高位原理:abH=;其中設(shè)a為高4位,b為低4位。1b16a16b16a01×+×=×+×4、用一條什么指令可以取代下列4條指令? MOV DPTR,#1234H PUSH DPL PUSH DPH RET 答: 這4條指令的任務(wù)是要轉(zhuǎn)移到目的地址1234H去所以可用一條LJMP 1234H指令來取代它們。5、為什么SJMP指令的rel=0FEH時(shí),將實(shí)現(xiàn)單指令的無限循環(huán)? 答:HERE:SJMP HERE;上述指令的機(jī)器碼為80FE,即rel=0FEH,此時(shí)程序?qū)⒃谠剡M(jìn)行無限循環(huán)。在等待中斷或程序結(jié)束時(shí)常用此種辦法。6、片內(nèi)R

49、AM20H2FH中的128個(gè)位地址與直接地址00H7FH形式完全相同,如何在指令中區(qū)分出位尋址操作和直接尋址操作? 答:雖然,片內(nèi)RAM20H2FH中的128個(gè)位地址與直接地址00H7FH形式完全相同,但是在位尋址操作和直接尋址操作中,這兩者的區(qū)別是很明顯的。位尋址的操作只適用于位指令,而直接地址操作對(duì)這些指令是無效的。四、程序運(yùn)行分析 1、位地址為M、N、Y,程序如下,求程序功能表達(dá)式。MOV C,M ANL C,N MOV Y,C MOV C,MANL C,N ORL C,Y MOV Y,C 答:程序功能表達(dá)式:(Y)=(M)·()+(M)·(N) N2、程序存儲(chǔ)器空間

50、表格如下: 地址 2000H 2001H 2002H 2003H 內(nèi)容 3FH 06H 5BH 4FH NEXT1: MOV A, #0AAH NEXT2: SJMP CEXT2 則:累加器(A)=( )? (2) MOV A, #0FBH MOV PSW, #10H ADD A, #7FH 若PSW=00,當(dāng)執(zhí)行完上述程序段后,將PSW各位值為多少? 答(1) MOV R1,#48H ;48HR1 MOV 48H,#51H ;51H(48H) CJNE R1,#51H,00H ;(R1)值等于51H,順序執(zhí)行JNC NEXT1 ;沒借位轉(zhuǎn),NEXT1 MOV A,#0FFH ;有借位,F(xiàn)FH

51、(A) SJMP NEXT2 NEXT1: MOV A,#0AAH ;0AAH(A) NEXT2: SJMP NEXT2 累加器 A=(0AAH) (2) MOV A,#0FBH MOV PSW,#10H ;0001000PSW ADD A,#7FH 由程序知道,累加器完成加法運(yùn)算,即: 11111011 + 01111111 1 01111010 所以,有進(jìn)位CY=1;C6C7=11=0,OV=0;A中有奇數(shù)個(gè)1,P=1;有輔助進(jìn)位位AC=1 當(dāng)執(zhí)行完上述程序段后,將PSW各位狀態(tài)為: CY AC F0 RS1 RS0 OV F1 P 1 1 0 1 0 0 0 1 答:下面列出程序中各指令

52、相應(yīng)的機(jī)器碼、執(zhí)行最后一條指令對(duì)PSW的影響及A的終值。機(jī)器碼 源程序執(zhí)行每條指令后的結(jié)果74 20 MOV A, #20H ;把立即數(shù)20H送入A F5 F0 MOV B, A ;把20H送入B 25 F0 ADD A, B ;A與B中值相加等于40H,送入A 94 10 SUBB A, #10H ;A中值40H減10H等于30H,送入A 84 DIV AB ;A中值與B相除,商01H送A,余數(shù)10H送入B 執(zhí)行此指令后PSW中P=1,OV=0,CY=0。6、用80C51單片機(jī)的P1端口作輸出,經(jīng)驅(qū)動(dòng)電路接8只發(fā)光二極管,如圖3-2所示。當(dāng)輸出位是“1”時(shí),發(fā)光二極管點(diǎn)亮;輸出位是“0”時(shí)為

53、暗。試分析下述程序執(zhí)行過程及發(fā)光二極管點(diǎn)亮的工作規(guī)律。圖3-2 P1驅(qū)動(dòng)發(fā)光二極管電路LP: MOV P1, #81H LCALL DELAY MOV P1, #42H LCALL DELAY MOV P1, #24H LCALL DELAY MOV P1,#18H LCALL DELAY MOV P1,#24H LCALL DELAY MOV P1,#42H LCALL DELAY SJMP LP DELAY: MOV R2,#0FAH L1: MOV R3,#0FAH L2: DJNZ R3,L2 DJNZ R2,L1 RET 答:上述程序執(zhí)行過程及發(fā)光二極管點(diǎn)亮的工作規(guī)律為:首先是第1和

54、第8個(gè)燈亮;延時(shí)一段時(shí)間后,第2和第7個(gè)燈亮;延時(shí)一段時(shí)間后,第3和第6個(gè)燈亮;延時(shí)一段時(shí)間后,第4和第5個(gè)燈亮,延時(shí)一段時(shí)間后,重復(fù)上述過程。7、在第7題中,若系統(tǒng)的晶振頻率為6MHz,求子程序DE-LAY的延時(shí)時(shí)間。若想加長或縮短延時(shí)時(shí)間,應(yīng)怎樣修改? 答:設(shè)系統(tǒng)的晶振頻率為6MHz,子程序DELAY的延時(shí)時(shí)間計(jì)算如下: 指令周期數(shù) 執(zhí)行時(shí)間DELAY:MOV R2,#0FAH 1 2s L1:MOV R3,#0FAH 1 2s L2:DJNZ R3,L2 2 4s DJNZ R2,L1 2 4s RET 2 4s 因?yàn)?FAH=250,所以總時(shí)間T計(jì)算如下: s252.008s4250s

55、)4s4s4250(s4T=+×+×+= 若想加長延時(shí)時(shí)間,可以增加循環(huán)次數(shù)。若想縮短延時(shí)時(shí)間,可以減少循環(huán)次數(shù)。8、根據(jù)題7所示的線路,試編制燈亮移位程序,即8個(gè)發(fā)光二極管每次亮一個(gè),循環(huán)左移,一個(gè)一個(gè)地亮,循環(huán)不止。答:根據(jù)題圖7所示的線路,編制燈亮移位程序如下: MOV A,#1 L1: MOV P1,A RL A LCALL DELAY ;DELAY同第8題中的延時(shí)程序SJMP L1 五、程序設(shè)計(jì) 1、R1中存有一位BCD碼,請編程將它轉(zhuǎn)換成ASCII碼,存入片外RAM1000H單元中去。解:程序如下: RIB-AI: MOV A,R1 ORL A,#30H ;(ADD A,#30H也可以) MOV DPTR,#1000H MOVX DPTR,A RET 2、片內(nèi)RAM40H開始的單元中有10個(gè)二進(jìn)制數(shù),編程找出其中最大值并存于50H單元中。解:程序如下: START: MOV R0,#40H ;數(shù)據(jù)塊首地址送R0 MOV R7,#09H ;比較次數(shù)送R7 MOV A,R0 ;取數(shù)送A LOOP: INC R0 CJNE A,R0,NEXT ;(A)與(30H)相比NEXT: JNC BIE1 ;(A)(30 H)轉(zhuǎn)BIE1 MOV A,R0 ;(A)(30H),大數(shù)相送A BIE1: DJNZ R7,LO

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論