單片機作業(yè)習題答案_第1頁
單片機作業(yè)習題答案_第2頁
單片機作業(yè)習題答案_第3頁
單片機作業(yè)習題答案_第4頁
單片機作業(yè)習題答案_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、作業(yè)習題答案單片機應用技術部分習題與參考答案第1章 單片機概述1-1什么是嵌入式系統(tǒng)?嵌入式系統(tǒng)的硬件和軟件各包括哪些內(nèi)容? 答: 以應用為中心,以計算機技術為基礎,軟/硬件可剪裁,針對具體應用系統(tǒng),對功能、可靠性,成本、體積、功耗嚴格要求的專用計算機系統(tǒng)稱為嵌入式計算機系統(tǒng)。簡稱為嵌入式系統(tǒng)。 嵌入式系統(tǒng)的硬件包括:嵌入式處理器、存儲器和外部設備器件、輸入輸出接口、圖形控制器等。軟件包括操作系統(tǒng)和應用程序。 嵌入式系統(tǒng)是專用的計算機系統(tǒng),嵌入式系統(tǒng)的核心是嵌入式處理器,單片機是嵌入式處理器的典型代表。 1-2  什么叫單片機?一個完整的單片機芯片至少有哪些部件?答:將微處理器(CP

2、U)、存儲器、定時/計數(shù)器及輸入輸出接口電路等部件集成在一塊集成電路上,稱為單片微型計算機,簡稱單片機。一個完整的單片機芯片至少有中央處理器(CPU)、隨機存儲器(RAM)、只讀存儲器(ROM)、定時/計數(shù)器及I/O接口等部件。1-3嵌入式處理器有何特點?嵌入式處理器分為哪幾類?答:嵌入式處理器對實時和多任務系統(tǒng)有和強的支持能力、對存儲區(qū)保護功能強、具有可擴展的處理器結構及低功耗等特點。 嵌入式處理器分為:嵌入式微處理器、微控制器、嵌入式DSP處理器和片上系統(tǒng)等。1-4 單片機系統(tǒng)的開發(fā)過程分為那幾步進行?答:1.硬件的設計與調(diào)試。2 應用程序的設計和調(diào)試。3系統(tǒng)聯(lián)調(diào)。4程序的固化。5.脫機運

3、行。1-5 Intel 公司的主要單片機產(chǎn)品分為哪幾大系列?各系列的區(qū)別何在?答:Intel公司的MCS-48系列、MCS-51系列、MCS-96系列產(chǎn)品;48系列的單片機在片內(nèi)集成4位CPU,片內(nèi)含有多種I/O接口,有的根據(jù)不同用途還配有許多專用接口,價格便宜,控制功能強。51系列的單片機在片內(nèi)集成8位CPU、片內(nèi)RAM為128字節(jié),ROM為4K字節(jié),4個并行I/O口、2個16位定時/計數(shù)器、串行接口、5個中斷源。96系列單片機CPU為16位,片內(nèi)RAM為232字節(jié),ROM為8K字節(jié),片內(nèi)帶有高速輸入輸出部件,多通道10位A/D轉(zhuǎn)換部件,中斷處理為8級。1-6  敘述51子系列與5

4、2子系列的區(qū)別?答:51子系列包含8031/8051/8751三種型號,它們的基本組成、基本性能都相同,都具有一個8位CPU、片內(nèi)數(shù)據(jù)存儲器RAM128B、2個16位定時計數(shù)器、有5個中斷源,一個全雙工串行接口,它們之間的區(qū)別在于片內(nèi)程序存儲器配置:8031片內(nèi)沒有ROM,使用時需在片外接EPROM。8051片內(nèi)含有4KB的掩模ROM,其中的程序是生產(chǎn)廠家制作芯片時燒制的。8751片內(nèi)含有4KB的EPROM,用戶可以先用紫外線擦除器擦除,然后再利用開發(fā)機或編程器寫入新的程序。52子系列包含8032/8052/8752三種型號,52子系列與51子系列的區(qū)別在于:片內(nèi)ROM和RAM的容量比8051

5、子系列各增加一倍,另外,增加了一個定時/計數(shù)器和一個中斷源。 第2章 MCS-51系列單片機的基本結構2-1  畫出微型計算機基本結構框圖,簡述各部分的基本功能。 答:見教材圖2-2。2-2  MCS-51單片機的引腳有何功能?在使用8031時如何接法?使用8751時如何接法?答:引腳是片內(nèi)外程序存儲器的選擇信號。當端保持高電平時,訪問內(nèi)部程序存儲器,但在PC(程序計數(shù)器)值超過0FFFH(對于8051/8751/80C51)或1FFFH(對于8052)時,將自動轉(zhuǎn)向訪問外部程序存儲器。當端保持低電平時,不管是否有內(nèi)部程序存儲器,則只訪問外部程序存儲器。由于803

6、1片內(nèi)沒有程序存儲器,所以在使用8031時,引腳必須接低電平。2-3 微型計算機的存儲器普林斯頓結構和哈弗結構有什么不同?答:按微型計算機的存儲器地址空間的不同分配形式分為普林斯頓結構和哈弗結構。普林斯頓結構的特點是計算機只有一個地址空間。CPU訪問ROM和RAM采用相同的指令。哈弗結構將ROM和RAM安排在相互獨立的兩個地址空間,ROM和RAM可以有相同的地址,但采用不同的指令訪問。51系列單片機采用哈弗結構。2-4 微型計算機存儲器的地址線與存儲的容量有什么關系?如果存儲器的地址線有13條,則存儲的容量為多大?答:存儲的容量=2n ,(n: 存儲器的地址線的條數(shù))。213=8KB.2-5

7、89C51單片機的存儲器從物理結構上分別可劃分為幾個空間?89C51單片機采用何種方式區(qū)分內(nèi)外程序存儲器和內(nèi)外數(shù)據(jù)存儲器?答:89C51單片機的存儲器從物理結構上分別內(nèi)外程序存儲器和內(nèi)外數(shù)據(jù)存儲器。內(nèi)外程序存儲器采用引腳/EA、/PSEN接到不同的電平區(qū)分,內(nèi)外數(shù)據(jù)存儲器采用引腳/RD、/WR連接和不同的指令加以區(qū)分。2-6  MCS-51單片機的內(nèi)部存儲空間是怎樣分配的?答:MCS-51單片機的內(nèi)部存儲空間分為數(shù)據(jù)存儲器和程序存儲器。內(nèi)部數(shù)據(jù)存儲器:共256字節(jié)單元,包括低128個單元和高128個單元。低128字節(jié)又分成3個區(qū)域:工作寄存器區(qū)(00H1FH),位尋址區(qū)(20H2FH

8、)和用戶RAM區(qū)(30H7FH)。高128字節(jié)是供給特殊功能寄存器使用的,因此稱之為特殊功能寄存器區(qū)。內(nèi)部程序存儲器:在8031片內(nèi)無程序存儲器,8051片內(nèi)具有4KB掩模ROM,8751片內(nèi)具有4KBEPROM。2-7  如何從MCS-51單片機的4個工作寄存器組中選擇當前工作寄存器組?答:MCS-51單片機提供了4組工作寄存器,對于當前工作寄存器組的選擇,是通過PSW中的RS1和RS0來進行選擇。具體關系如下表: RS1RS0當前寄存器組00第0組工作寄存器01第1組工作寄存器10第2組工作寄存器11第3組工作寄存器 2-8 內(nèi)部RAM低128個單元是如何劃分

9、的?答:內(nèi)部RAM低128個單元按用途分成3個區(qū)域:工作寄存器區(qū)(00H1FH),位尋址區(qū)(20H2FH)和用戶RAM區(qū)(30H7FH)。2-9  DPTR是什么寄存器?它的作用是什么?它由哪幾個寄存器組成?答:DPTR是數(shù)據(jù)指針寄存器,是一個16位寄存器,用來存放16位存儲器的地址,以便對外部數(shù)據(jù)存儲器RAM中的數(shù)據(jù)進行操作。DPTR由高位字節(jié)DPH和低位字節(jié)DPL組成。2-10 什么是堆棧?堆棧有何作用?為什么在程序初始化時要對SP重新賦值?答:所謂堆棧,顧名思義就是一種以“堆”的方式工作的“?!?。堆棧是在內(nèi)存中專門開辟出來的按照“先進后出,后進先出”的原則進行存取的RAM區(qū)域。

10、堆棧的用途是保護現(xiàn)場和斷點地址。在8051單片機復位后,堆棧指針SP總是初始化到內(nèi)部RAM地址07H。從08H開始就是8051的堆棧區(qū),這個位置與工作寄存器組1的位置相同。因此,在實際應用中,通常要根據(jù)需要在程序初始化時對SP重新賦值,以改變堆棧的位置。2-11  試述程序狀態(tài)字寄存器PSW各位的含義。答:程序狀態(tài)字寄存器PSW是8位寄存器,用于存放程序運行的狀態(tài)信息。CY(PSW.7):進位標志位。AC(PSW.6):輔助進位標志位。F0(PSW.5)、F1(PSW.1):用戶標志位。RS1(PSW.4)、RS0(PSW.3):工作寄存器組選擇位。OV(PSW.2):溢出標志位。P

11、(PSW.0):奇偶標志位。2-12  P0、P1、P2、P3口的結構有何不同?使用時要注意什么?各口都有什么用途?答:P0口由一個所存器、兩個三態(tài)輸入緩沖器、場效應管、控制與門、反相器和轉(zhuǎn)換開關組成;作為輸出口時,必須外接上拉電阻才能有高電平輸出,作為輸入口時,必須先向鎖存器寫“1”;作為普通I/O口使用或低8位地址/數(shù)據(jù)總線使用。P1口內(nèi)沒有轉(zhuǎn)換開關,但有上拉電阻;只用作普通I/O口使用。P2口比P1口多了一個轉(zhuǎn)換控制開關;作為普通I/O口使用或高8位地址線使用。P3口比P1口增加了與非門和緩沖器;具有準雙向I/O功能和第二功能。上述4個端口在作為輸入口使用時,應注意必須先向端口

12、寫“1”。2-13  請說出指令周期、機器周期、狀態(tài)和拍的概念。當晶振頻率為12MHz、8MHz時,一個機器周期為多少微秒?答:指令周期:執(zhí)行一條指令所需要的時間。機器周期:CPU完成一個基本操作所需要的時間。狀態(tài):振蕩脈沖經(jīng)過二分頻后,得到的單片機的時鐘信號。拍:振蕩脈沖的周期。當晶振頻率為12MHz時,一個機器周期為1s;當晶振頻率為8MHz時,一個機器周期為1.5s。2-14  什么是單片機復位?復位后單片機的狀態(tài)如何?答:在時鐘電路工作后,只要在單片機的RESET引腳上出現(xiàn)24個時鐘震蕩脈沖(兩個機器周期)以上的高電平,單片機就能實現(xiàn)復位。復位后,CPU和系統(tǒng)都處于

13、一個確定的初始狀態(tài),在這種狀態(tài)下,所有的專用寄存器都被賦予默認值,除SP=07H,P0P3口為FFH外,其余寄存器均為0。程序指針Pc=0000H。 第3章 MCS-51系列單片機的指令系統(tǒng)3-1  MCS-51系列單片機指令格式是怎樣的? 各有何含義?答:單片機指令格式由操作碼和操作數(shù)組成。操作碼說明指令操作性質(zhì),操作數(shù)說明操作對象。3-2 MCS-51系列單片機有哪幾種尋址方式?各種尋址方式所對應的寄存器或存儲器尋址空間如何?答:MCS-51系列單片機提供了7種尋址方式:(1)立即尋址:操作數(shù)在指令中直接給出,立即數(shù)前面有“#”。(2)直接尋址:在指令中直接給出操作數(shù)地址。對應片

14、內(nèi)低128個字節(jié)單元和特殊功能寄存器。(3)寄存器尋址:以寄存器的內(nèi)容作為操作數(shù)。對應的寄存器有:R0R7、A、AB寄存器和數(shù)據(jù)指針DPTR。(4)寄存器間接尋址:以寄存器的內(nèi)容作為RAM地址,該地址中的內(nèi)容才是操作數(shù)。對應片內(nèi)RAM的低128個單元采用R0、R1作為間址寄存器,片外RAM低256個單元可用R0、R1作為間址寄存器,整個64KB空間可用DPTR作為間址寄存器。(5)變址尋址:以DPTR或PC作為基址寄存器,以累加器A作為變址寄存器,并以兩者內(nèi)容相加形成的16位地址作為操作數(shù)地址。對應片內(nèi)、片外的ROM空間。(6)相對尋址:只在相對轉(zhuǎn)移指令中使用。對應片內(nèi)、片外的ROM空間。(7

15、)位尋址:對可尋址的位單獨進行操作。對應位尋址區(qū)20H2FH單元的128位和字節(jié)地址能被8整除的特殊功能寄存器的相應位。3-4 若訪問特殊功能寄存器,可使用那些尋址方式?答:直接尋址方式。3-5 若訪問外部RAM單元,可使用那些尋址方式? 答:寄存器間接尋址方式。3-6 若訪問內(nèi)部RAM單元,可使用那些尋址方式?答:立即尋址方式,直接尋址方式,寄存器尋址方式,寄存器間接尋址方式,位尋址方式。3-7 若訪問內(nèi)外程序存儲器,可使用那些尋址方式?答:變址尋址方式3-8 外部數(shù)據(jù)傳送指令有幾條?試比較下面每一組中兩條指令的區(qū)別。(1) MOVX A,R1 , MOVX A,DPTR(2) MOVX A

16、,DPTR , MOVX DPTR,A(3) MOV R0 ,A , MOVX R0,A(4) MOVC A,A+DPTR , MOVX A,DPTR 答:外部數(shù)據(jù)傳送指令有6條:MOVX A,DPTR MOVX DPTR,AMOVX A,Ri           MOVX   Ri,AMOVC   A,A+DPTR      MOVC   A,A+PC(1)MOVX 

17、; A,R1          MOVX   A,DPTR都是訪問片外RAM,但二者尋址范圍不同。前1條指令是對片外RAM低256個單元的“讀”操作。后1條指令是對片外RAM64KB空間的“讀”操作。(2)MOVX  A,DPTR      MOVX   DPTR,A訪問空間相同,但數(shù)據(jù)傳送方向不同。前1條指令是對片外RAM64KB空間的“讀”操作。后1條指令是對片外RAM64KB空間的“寫”操作。(3)M

18、OV   R0,A        MOVX   R0,A二者訪問的空間不同。前1條指令是對片內(nèi)RAM低128個單元的“寫”操作。后1條指令是對片外RAM低256個單元的“寫”操作。(4)MOVC A,A+DPTR MOVX A,DPTR二者訪問的空間不同,尋址方式不同。前1條指令是變址尋址方式,對ROM操作。后1條指令是寄存器間接尋址方式,對片外RAM操作。3-9 已知(30H)=40H,(40H)=10H,(10H)=32H,(P1)=EFH,試寫出執(zhí)行以下程序段后有關單元的內(nèi)容。M

19、OV  R0, #30HMOV  A, R0MOV  R1, A MOV  B, R1MOV  R1,  P1MOV  P2, P1MOV  10H,#20HMOV  30H, 10H答: R030H,(R0)=30HA(R0),(A)=40HR1(A),(R1)=40HB(R1),(B)=10H(R1)(P1),(R1)=(40H)=EFHP2(P1),(P2)=EFH10H20H,(10H)=20H30H(10H),(30H)=20H結果:(R0)=30H,(A)=40H,(R1)=40H,(B)=1

20、0H,(40H)=EFH,(P2)=EFH,(10H)=20H,(30H)=20H3-10  試寫出完成以下數(shù)據(jù)傳送的的指令序列。(1)R1的內(nèi)容傳送R0;(2)片外RAM 60H單元的內(nèi)容送入R0;(3)片外RAM 60H單元的內(nèi)容送入片內(nèi)RAM 40H單元;(4)片外RAM 1000H單元的內(nèi)容送入片外RAM 40H單元;(5)ROM 2000H單元的內(nèi)容送入R2;(6)ROM 2000H單元的內(nèi)容送入片內(nèi)RAM 40H單元;(7)ROM 2000H單元的內(nèi)容送入片外RAM 0200H單元。答:(1)由于在工作寄存器與工作寄存器之間不能直接傳送數(shù)據(jù),所以需要借助累加器A。MOV

21、A,R1MOV R0,A(2)片外RAM向片內(nèi)RAM傳送數(shù)據(jù),不能直接進行,需要借助累加器A。由于片外RAM是60H單元,地址小于FFH,所以間址寄存器使用Ri即可。MOV R1,#60HMOVX A,R1MOV R0,A(3) MOV R1,#60HMOVX   A,R1MOV    40H,A(4)片外數(shù)據(jù)不能直接送入片外單元,需要先將片外數(shù)據(jù)讀入累加器,然后再送到片外。MOV DPTR,#1000HMOVX   A,DPTRMOV    R1,#40HMOVX   R1

22、,A(5)ROM中的數(shù)據(jù)需要使用查表指令才能讀出來,所以此題不能使用一般的傳送指令從ROM中讀數(shù)據(jù)。MOV    DPTR,#2000HMOV    A,#00HMOVC   A,A+DPTRMOV    R2,A(6)   MOV    DPTR,#2000H         MOV    A,#00H  

23、       MOVC   A,A+DPTR         MOV    40H,A(7)   MOV    DPTR,#2000H         MOV    A,#00H      

24、   MOVC   A,A+DPTR         MOV    DPTR,#0200H         MOVX   DPTR,A3-11  試編程,將外部RAM 1000H單元中的數(shù)據(jù)與內(nèi)部RAM 60H單元中的數(shù)據(jù)相互交換。答:片外RAM與片內(nèi)RAM之間的數(shù)據(jù)傳送不能直接進行,需要借助累加器A。數(shù)據(jù)交換需要使用數(shù)據(jù)交換指令XCH。

25、         MOV    DPTR,#1000H         MOVX   A,DPTR         XCH    A,60H         MOVX   DPTR

26、,A3-12 已知(A)=5BH,(R1)=40H,(40H)=C3H,(PSW)=81H,試寫出各條指令的執(zhí)行結果,并說明程序狀態(tài)字的狀態(tài)。(1) XCH  A, R1                 (2) XCH  A,  40H(3) XCH  A,R1           

27、60;    (4) XCHD  A, R1(5) SWAP  A                     (6) ADD  A,   R1(7) ADD   A,  40H         

28、0;   (8) ADD  A,  #40H(9) ADDC  A,  40H            (10) SUBB  A, 40H (11)SUBB  A,  #40H 答:(1)結果:(A)(R1),(A)=40H,(R1)=5BH,(PSW)=81H(2)結果:(A)(40H),(A)=C3H,(40H)=5BH,(PSW)=80H(3)結果:(A)(R1),(A)=C3H,(R1)=(

29、40H)=5BH,(PSW)=80H(4)結果:(A)03(R1)03,(A)=53H,(R1)=(40H)=CBH,(PSW)=80H(5)結果:(A)03(A)47,(A)=B5H,(PSW)=81H(6)結果:A(A)+(R1),(A)=9BH,(PSW)=05H(7)結果:A(A)+(40H),(A)=1EH,(PSW)=80H(8)結果:A(A)+40H,(A)=9BH,(PSW)=05H(9)結果:A(A)+(40H)+CY,(A)=1FH,(PSW)=81H(10)結果:A(A)-(40H)-CY,(A)=97H,(PSW)=85H(11)結果:A(A)- 40H - CY,(A

30、)=1AH,(PSW)=01H3_13 已知(A)=5BH,(R1)=40H,(40H)=C3H,(PSW)=81H,試寫出各條指令的執(zhí)行結果,并說明程序狀態(tài)字的狀態(tài)。(1) XCH  A, R1                 (2) XCH  A,  40H(3) XCH  A,R1         &#

31、160;      (4) XCHD  A, R1(5) SWAP  A                     (6) ADD  A,   R1(7) ADD   A,  40H       

32、60;     (8) ADD  A,  #40H(9) ADDC  A,  40H            (10) SUBB  A, 40H (11)SUBB  A,  #40H 答:指令LJMP     addr16是長轉(zhuǎn)移指令,指令中提供了16位目的地址,尋址范圍是64KB。指令AJMP    

33、; addr11是絕對轉(zhuǎn)移指令,指令中11位目的地址,其中a7a0在第二字節(jié),a10a8則占據(jù)第一字節(jié)的高3位,尋址范圍是與PC當前值(本指令所在地址+本條指令所占用的字節(jié)數(shù)2)在同一個2K的區(qū)域內(nèi)。3-14  試分析以下兩段程序中各條指令的作用。程序執(zhí)行完將轉(zhuǎn)向何處?    (1) MOV   P1,#0CAH          MOV   A,#56H      

34、                JB    P1.2 ,L1                        JNB  ACC.3,L2      &#

35、160;                        L1:      L2:             (2) MOV   A,#43H      

36、               JB   ACC.2 ,L1                 JBC  ACC.6,L2                

37、             L1:           L2:             答:(1)     MOV     P1,#0CAH     &

38、#160;   ;P1CAH,P1=CAH=11001010B         MOV     A,#56H       ;A56H,A=56H=01010110B         JB     P1.2,L1      

39、0;   ;若P1.2=1,則轉(zhuǎn)移至L1         JNB    ACC.3,L2         ;若ACC.3=0,則轉(zhuǎn)移至L2         L1:     L2:     執(zhí)行完本段程序后將轉(zhuǎn)移至L2,因為P1.2

40、=0,ACC.3=0,所以轉(zhuǎn)至L2。(2)     MOV     A,#43H       ;A43H,A=43H=01000011B         JB     ACC.2,L1         ;若ACC.2=1,則轉(zhuǎn)移至L1   

41、      JBC    ACC.6,L2         ;若ACC.6=1,則轉(zhuǎn)移至L2,同時將ACC.6清零         L1:     L2:     執(zhí)行完本段程序后將轉(zhuǎn)移至L2,因為ACC.2=0,ACC.6=1,所以轉(zhuǎn)至L2,并且將ACC.6清零。 第

42、4章 匯編語言程序設計4-1  什么是偽指令?偽指令和指令有何區(qū)別?它們的用途是什么4-2 基本程序結構有哪幾種?各有何特點?4-3  存放在內(nèi)部RAM的DATA單元中的變量X是一個無符號整數(shù),試編程計算下面函數(shù)的函數(shù)值并存放到內(nèi)部RAM的FUNC單元中。                          答: 

43、60;         ORG    0300H          MOV    A,DATA         CJNE   A,#20,LOP1LOP1:   JC     LOP3    

44、;     CJNE   A,#50,LOP2LOP2:   JC     LOP4         MOV    B,#1         LJMP   LOP5LOP3:   MOV    B,#2 

45、60;       LJMP   LOP5LOP4:   MOV    B,#5LOP5:   MUL    AB         MOV    FUNC,A         RET4-5  某單片機應用系統(tǒng)有4

46、5;4鍵盤,經(jīng)鍵盤掃描程序得到被按鍵的鍵值(00H0FH)存放在R2中,16個鍵的鍵處理程序入口地址分別為KEY0、KEY1、KEY2、KEY15。試編程實現(xiàn),根據(jù)被按鍵的鍵值,轉(zhuǎn)對應的鍵處理程序。答:   ORG    0500H         MOV    DPTR,#JPTAB         MOV    A,R2&#

47、160;        RL     A         JMP    A+DPTR JPTAB:  AJMP   KEY0         AJMP   KEY1      &#

48、160;  AJMP   KEY2                  AJMP   KEY15KEY0:   KEY1:   KEY2:     KEY15:  4-6  試編程將片內(nèi) 40H60H單元中內(nèi)容傳送到外部RAM以2000H為首地址的存儲區(qū)中。答:   ORG

49、0;   0600H         MOV    R0,#40H         MOV    DPTR,#2000H         MOV    R7,#21HLOOP:   MOV    A,

50、R0         MOVX   DPTR,A         INC    R0         INC    DPTR         DJNZ   R7,LOOP 

51、;        RET4-7  試編程將片內(nèi) 40H60H單元中內(nèi)容傳送到外部RAM以2000H為首地址的存儲區(qū)中。答:   ORG    0700H         MOV    DPTR,#DATA         MOV    R7,#10L

52、OOP:   MOVX   A,DPTR         ORL    A,#80H         MOVX   DPTR,A         INC    DPTR      

53、   DJNZ   R7,LOOP         RET4-8  編寫程序?qū)⑼獠縍AM 3000H開始的13個單元中的數(shù)據(jù)隔一個傳送到內(nèi)部RAM 30H開始的區(qū)域。答:   ORG    0800H         MOV    DPTR,#3000H    

54、0;    MOV    R0,#30H         MOV    R7,#7LOOP:   MOVX   A,DPTR         MOV    R0,A         INC 

55、   DPTR         INC    DPTR         INC    R0         DJNZ   R7,LOOP         RET4-9 

56、編程將片外RAM地址為1000H1030H的數(shù)據(jù)塊,全部搬遷到片內(nèi)RAM 30H60H中,并將原數(shù)據(jù)區(qū)全部清0。答:   ORG    0900H         MOV    DPTR,#1000H         MOV    R1,#30H       

57、  MOV    R7,#31HLOOP:   MOVX   A,DPTR         MOV    R1,A         CLR    A         MOVX   DPTR,A

58、0;        INC    DPTR         INC    R1         DJNZ   R7,LOOP         RET4-10  試編程把長度為10H的字符串從內(nèi)部RAM

59、首地址為DAT1的存儲器中向外部RAM首地址為DAT2的存儲器進行傳送,一直進行到遇見字符CR或整個字符串傳送完畢結束。答:   ORG    0A00H         MOV    R1,#DAT1         MOV    DPTR,#DAT2      &#

60、160;  MOV    R6,#10HLOOP1:  MOV    A,R1         CJNE   A,#0DH,LOOP2         LJMP   LOOP3LOOP2:  MOVX   DPTR,A      

61、   INC    R1         INC    DPTR         DJNZ   R6,LOOP1LOOP3:  RET4-11  設在外部RAM 2000H2004H單元中,存放有5個壓縮BCD碼,試編程將它們轉(zhuǎn)換成ASC碼,存放到以2005H單元為首地址的存儲區(qū)中。答:   ORG

62、    1200H         MOV    DPTR,#2000H         MOV    R0,#30H         MOV    R7,#5LOP1:   MOVX   A,DPT

63、R         ANL    A,#0FH         ADD    A,#30H         MOV    R0,A         INC   

64、 R0         MOVX   A,DPTR         ANL    A,#0F0H         SWAP   A         ADD    A,#30H

65、60;        MOV    R0,A         INC    R0         INC    DPTR         DJNZ   R7,LOP1 &

66、#160;       MOV    DPTR,#2005H         MOV    R0,#30H         MOV    R7,#10LOP2:   MOV    A,R0    &#

67、160;    MOVX   DPTR,A         INC    R0         INC    DPTR         DJNZ   R7,LOP2     

68、60;   RET     4-12  已知內(nèi)部RAM 30H和40H單元分別存放著一個數(shù)a、b,試編寫程序計算a2 b2,并將結果送入30H單元。設a、b均是小于10的數(shù)。答:   ORG    1400H         MOV    A,40H         MOV &#

69、160;  B,A         MUL    AB         MOV    31H,A         MOV    A,30H         MOV 

70、60;  B,A         MUL    AB         CLR    C         SUBB   A,31H         MOV   

71、30H,A         RET4-13  P1口連接8個LED發(fā)光二極管,設計燈亮移位程序,要求8個發(fā)光二極管每次亮一個,點亮時間為40ms。順次一個一個地循環(huán)右移點亮,循環(huán)不止。答:   ORG    1500H         MOV    A,#80HLOOP:   MOV    P1,A

72、         LCALL  DEL         RR     A         SJMP   LOOPDEL:    MOV    R7,#100DEL1:   MOV  

73、0; R6,#198         DJNZ   R6,$         DJNZ   R7,DEL1         RET         RET 第5章 定時/計數(shù)器5-1  51系列單片機的內(nèi)部設有幾個定時/

74、計數(shù)器?有哪幾種工作方式?由哪位選擇?不同方式下,脈沖來源是否一樣?答:51系列單片機的內(nèi)部設有兩個定時/計數(shù)器。分別有兩種工作方式:定時器方式和計數(shù)器方式。由TMOD(定時器模式控制寄存器)中的控制位進行選擇。定時器方式的脈沖來自于內(nèi)部時鐘脈沖,每個機器周期是計數(shù)器的值增1;計數(shù)器方式的脈沖來自于外部輸入引腳T0(P3.4)或T1(P3.5)。5-2  51系列單片機的定時/計數(shù)器有哪幾種工作模式?各有什么區(qū)別?答:51系列單片機的定時/計數(shù)器有四種工作模式。分別由TMOD中的M1和M0進行選擇。特點如下: M1  M0特   &#

75、160;    點 0    0模式0。TLX中低5位與THX中的8位構成13位計數(shù)器。計滿溢出時,13位計數(shù)器回零。 0    1模式1。TLX與THX構成16位計數(shù)器。計滿溢出時,16位計數(shù)器回零。 1    0模式2。8位自動重裝載的定時/計數(shù)器,每當計數(shù)器TLX溢出時,THX中的內(nèi)容重新裝載到TLX中。 1    1模式3。對定時器0,分成2個8位計數(shù)器,對于定時器1,停止計數(shù)。 5-3&

76、#160; 51系列單片機的T0和T1在模式0中,都使用了計數(shù)器的哪些位?答:51系列單片機的T0和T1在模式0中,使用了TLX中低5位與THX中的8位構成13位計數(shù)器,TLX中的高3位棄之未用。5-4  51系列單片機的T0和T1在模式3時有何不同?答:對于T1,設置為模式3,將使它停止計數(shù)并保持原有的計數(shù)值,其作用如同使TR1=0,因此,沒有什么實質(zhì)意義。對于T0,設置為模式3時,16位計數(shù)器被分成兩個互相獨立的8位計數(shù)器TL0和TH0,其中TL0利用了定時/計數(shù)器0本身的一些控制位:、GATE、TR0、和TF0。它既可以按照計數(shù)方式工作,也可以按照定時方式工作。而TH0被規(guī)定只

77、可用作定時器方式,借用了T1的控制位TR1和TF1。5-5  試問當(TMOD)=27H時,是怎樣定義T0和T1的?答:(TMOD)=27H=00100111B此時,T1工作于模式2,定時方式(即波特率發(fā)生器方式)。T1工作于模式3,TL0和TH0同為計數(shù)方式。5-6  系統(tǒng)復位后執(zhí)行下述指令,試問T0的定時時間為多長?MOV      TH0,#06H               &#

78、160;     MOV      TL0,#00H                     SETB     TR0              &#

79、160;      答:單片機系統(tǒng)復位后(TMOD)=00H,即T0工作在模式0,使用的是TL0的低5位和TH0構成13位定時/計數(shù)器,由于(TH0)=06H,(TL0)=00H,所以定時的初值為:X=0000011000000B=192假設系統(tǒng)晶振頻率為6MHz,機器周期T=2s,則定時時間為:定時值=(M-X)T=(213-192)×2s=16000s=16ms5-7  已知51系列單片機的系統(tǒng)晶振頻率為6 MHZ,請利用定時器T和P1.2輸出矩形脈沖。答:   ORG  

80、0; 0000H         LJMP   START         ORG    0200HSTART:  MOV    TMOD,#20H         MOV    TL1,#231   

81、0;     SETB   TR1LOOP:   SETB   P1.2         MOV    TH1,#81LOP1:   JBC    TF1,LOP2         SJMP   LOP1LOP2:  

82、CLR    P1.2         MOV    TH1,#231LOP3:   JBC    TF1,LOOP         SJMP   LOP3         END  第6章  串行接

83、口61  并行通信和串行通信各有什么特點?它們分別適用于什么場合?答: 計算機與外界信息交換的基本方式可分為并行通信與串行通信:并行通信是數(shù)據(jù)的各位同時傳送,并行通信的特點是傳送速度快,但不適用長距離傳輸;串行通信是數(shù)據(jù)的各位依次逐位傳送,串行通信的特點是傳送速度較慢,但傳輸距離較長。并行通信適合近距離的CPU之間或設備之間快速進行數(shù)據(jù)交換;串行通信適合長距離的CPU之間或設備之間進行數(shù)據(jù)交換,或近距離的慢速數(shù)據(jù)交換。62  什么是串行異步通信?它有哪些特點?串行異步通信的數(shù)據(jù)幀格式是怎樣的?答:異步通信依靠起始位、停止位、保持通信同步。特點是數(shù)據(jù)在線路上的傳送不連續(xù),傳送

84、時,字符間隔不固定,各個字符可以是連續(xù)傳送,也可以間斷傳送,這完全取決于通信協(xié)議或約定。 串行異步通信的數(shù)據(jù)幀格式如圖6-1:一位起始位“0”電平;其后是5位、6位、7位或8位數(shù)據(jù)位,低位在前,高位在后;后面是一位奇偶校驗位;最后是停止位“1”電平。 起始位D0D1D2D3D4D5D6D7奇偶校驗位停止位                       

85、0;             圖6-1 異步通信的數(shù)據(jù)幀格式63  串行通行有哪幾種數(shù)據(jù)傳送形式,試舉例說明。答:串行通信有3種數(shù)據(jù)傳送形式單工方式:數(shù)據(jù)傳送是單向的。半雙工方式:數(shù)據(jù)傳送是雙向的,在同一時間只能做一個方向的傳送。全雙工方式:數(shù)據(jù)傳送是雙向的,即可同時發(fā)送,又可同時接收。圖6-2串行通信數(shù)據(jù)傳送3種形式64  何謂波特率?某異步通信,串行口每秒傳送250個字符,每個字符由11位組成,其波特率應為多少?答:波特率表示每秒傳輸?shù)亩M制數(shù)據(jù)位數(shù)。

86、Fb11×2502750   其波特率應為2750bps。65  MCS-51單片機串行口有幾種工作模式?如何選擇?簡述其特點,并說明這幾種工作模式各用于什么場合?答:MCS-51單片機串行口有4種工作模式,由串行控制寄存器SCON 中的SM0、SM1 兩位組合來確定。模式0是同步位移寄存器方式,用于I/O口的串、并轉(zhuǎn)換。模式1是8位異步通信方式,楨格式10位,波特率可變,用于雙機通信。模式2是9位異步通信方式,楨格式11位,波特率固定,用于多機通信。模式3是9位異步通信方式,楨格式11位,波特率可變,用于多機遠距離通信。模式1、2、3的區(qū)別主要表現(xiàn)在楨

87、格式和波特率兩個方面。66  MCS-51單片機4種工作模式的波特率如何確定?答:模式0的波特率固定:fosc/12模式2的波特率固定:fosc/n(n=64或32)模式1、3的波特率可變:T1溢出率/n(n=32或16)610   設計一個MCS-51單片機的雙機通信系統(tǒng),并編寫程序?qū)⒓讬C片外RAM 2200H2250H的數(shù)據(jù)塊通過串行口傳送到乙機的片外RAM1400H1450H單元中。要求串行口工作在模式2,系統(tǒng)晶振為6 MHz,傳送時進行奇校驗;若出錯,置F0標志為1。答:串行口工作在模式2,確定SMOD1。未規(guī)定波特率,定時器初值任取,但兩機要保持一致。甲

88、機發(fā)送子程序:TXDA:MOV       TMOD,     #20H           ;置T1定時器工作方式2      MOV        TL1,     #0FDH      

89、0;   ;置初值      MOV        TH1,     #0FDH         ;置初值     SETB       TR1        

90、              ;啟動T1MOV        SCON,     #90H           ;置串口方式2,允許接收,且SM2=0MOV        PCON, 

91、;    #80H           ;置SMOD=1(SMOD不能位操作)CLR        ES                        ;禁止串行中斷MO

92、V        DPTR,     #2200H         ;指發(fā)送數(shù)據(jù)區(qū)首地址MOV        R2,       #51H            ;指發(fā)送

93、數(shù)據(jù)長度TRSA:MOVX      A,        DPTR          ;讀一個數(shù)據(jù)     MOV        C,P      MOV       

94、TB8,C                   ;置校驗位MOV        SBUF,      A             ;發(fā)送JNB   &

95、#160;     TI,       $             ;等待一楨數(shù)據(jù)發(fā)送完畢CLR         TI               &

96、#160;       ;清發(fā)送中斷標志INC        DPTR                      ;指向下一字節(jié)單元DJNZ        R2,  &#

97、160;   TRSA           ;判數(shù)據(jù)發(fā)完否?未完繼續(xù)RET                                  ;乙機接

98、收子程序:RXDB:MOV       TMOD,     #20H           ;置T1定時器工作方式2      MOV        TL1,     #0FDH     &#

99、160;   ;置初值      MOV        TH1,     #0FDH         ;置初值     SETB       TR1       

100、0;              ;啟動T1MOV        SCON,     #90H           ;置串行方式2,允許接收,且SM2=0MOV        PCON,

101、60;    #80H           ;置SMOD=1(SMOD不能位操作)CLR        ES                        ;禁止串行中斷

102、MOV        DPTR,    #1400H          ;置接收數(shù)據(jù)區(qū)首地址MOV        R2,       #51H           ;置接收數(shù)據(jù)長度

103、SETB       REN                       ;啟動接收SETB      F0             

104、60;                          ;先置出錯標志F0為1。RDSB:JNB       RI,        $       

105、      ;等待一楨數(shù)據(jù)接收完畢CLR        RI                        ;清接收中斷標志MOV        A,  

106、60;     SBUF           ;讀接收數(shù)據(jù)MOVX        DPTR,     A            ;存接收數(shù)據(jù)MOV        C,RB

107、8ANL        C,PJC         RDSB2                       ;都是1,則正確MOV        C,RB8OR

108、L        C,PJNC         RDSB2                      ;都是0,則正確LJMP        RXDBD 

109、60;                    ;出錯RDSB2:INC        DPTR                    

110、60; ;指向下一數(shù)據(jù)存儲單元DJNZ       R2,       RDSB           ;判數(shù)據(jù)接收完否?未完繼續(xù)CLR        F0                                  

溫馨提示

  • 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

提交評論