單片機,第三章答案_第1頁
單片機,第三章答案_第2頁
單片機,第三章答案_第3頁
單片機,第三章答案_第4頁
單片機,第三章答案_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、思考題:【3-1】匯編語言與 C 語言哪種語言的可讀性和可移植性強?在對速度和時序敏感的場合應該使用 什么語言?對于復雜的單片機系統(tǒng)一般采用C與匯編混合編程的形式這句話對嗎?【3-2】二進制機器語言與C和匯編語言兩者之間是什么關系?用C或匯編編制的程序在ROM中是 以編譯后的二進制代碼的形式存放這句話對嗎?【3-3】80C51系列單片機指令的格式包含哪幾個部分?各部分之間的間隔符是什么?四個部分中哪個部分是必須存在的,哪幾個部分是可有可無的?標號的格式和代表的意義是?【3-4】 80C51 系列單片機有哪幾種尋址方式?【3-5】 80C51單片機中立即數(shù)是存放在ROM中還是RAM中?【3-6】

2、判斷下列說法是否正確。 TOC o 1-5 h z (1) 立即數(shù)尋址方式是被操作的數(shù)據(jù)本身就在指令中,而不是它的地址在指令中。()(2) 指令周期是執(zhí)行一條指令的時間。()(3) 指令中直接給出的操作數(shù)稱為直接尋址。()(4)內部寄存器Rn (n=07)可作為間接尋址寄存器。()【3-7】 80C51 單片機可以進行直接尋址的區(qū)域是?【3-8】 80C51 單片機可以進行寄存器尋址的范圍是?【3-9】 80C51 單片機可以進行寄存器間接尋址的寄存器是?尋址的范圍是?【3-10】在寄存器間接尋址方式中,其“間接”體現(xiàn)在指令中寄存器的內容不是操作數(shù),而是操作 數(shù)的( )?!?-11】 80C5

3、1 單片機變址尋址方式中可以作基址的寄存器是?可以作變址的寄存器是? A+PC, A+DPTR所找到的操作數(shù)是在ROM中對嗎?3-12J80C51單片機相對尋址改變的是PC的當前值,即改變的CPU執(zhí)行指令的順序這句話對否? 【3-13】若訪問特殊功能寄存器,只可以采用那種尋址方式?【3-14】若訪問外部RAM單元,只可以使用哪種尋址方式?【3-15】若訪問內部RAM單元,可使用哪些尋址方式?【3-16】若訪問內外程序存儲器,可使用哪些尋址方式?【3-17】80C51 單片機可以進行位尋址的字節(jié)單元范圍除11 個可位尋址的特殊功能寄存器外還包括 哪個區(qū)域?分別找出位地址是00H、08H、22H、

4、7FH、D0H、E0H對應的字節(jié)地址?【3-18】已知(30H)=40H,(40H)=10H,(10H) =32H,(P1)=0EFH,試寫出執(zhí)行以下程序段后有 關單元的內容。MOV R0, #30HMOV A, R0MOV R1 , AMOV B, RiMOV R1 , P1MOV P2, P1MOV 10H, #20HMOV 30H, 10H【3-19】為什么對基本型的51子系列單片機(片內RAM為128B),其寄存器間接尋址方式(例如MOV A,R0)中,規(guī)定R0或R1的內容不能超過7FH?【3-20】外部RAM數(shù)據(jù)傳送指令有幾條?試比較下面每一組中兩條指令的區(qū)別?1)MOVX1)MOV

5、XA, R12)MOVXA, DPTR3)MOVR0, AMOVXA, DPTRMOVXDPTR, AMOVXR0, A(4)MOVCA,A+DPTRMOVX A,DPTR【3-21】假定累加器A中的內容為30H,執(zhí)行指令1000H: MOVC A, A+PC后,把程序存儲器() 單元的內容送入累加器A中?!?3-22】在 AT89S51 中, PC 和 DPTR 都用于提供地址,但 PC 是為訪問( )提供地址,而 DPTR 是為訪問( )和( )提供地址?!?-23】試寫出完成以下數(shù)據(jù)傳送的指令序列。(1 ) R1 的內容傳送 R0;(2)片外RAM 60H單元的內容送入R0;(3)片外R

6、AM 60H單元的內容送入片內RAM 40H單元;(4)片外RAM 1000H單元的內容送入片外RAM 40H單元?!?-24】試編程,將外部RAM 1000H單元中的數(shù)據(jù)與內部RAM 60H單元中的數(shù)據(jù)相互交換。 【 3-25 】對程序存儲器的讀操作。只能使用( )。A)MOV指令B) PUSH指令 C)MOVX指令 D) MOVC指令【3-26 】(DPTR) =507BH,(SP) =32H,(30H)=50H,(31H) =5FH,(32H)=3CH,則執(zhí)行下列指令 后,(DPH)二(),(DPL)二(),(SP)二()。POPDPHPOPDPLPOPSP【3-27】假定,(SP) =

7、60H,(A) =30H,(B) =70H,執(zhí)行下列指令后,SP的內容為(),61H單 元的內容為(),62H單元的內容為()。PUSH AccPUSH B3-28】已知程序執(zhí)行前有(A) =02H,SP)=52H,(51H)二FFH,(52H)二FFH。下述程序執(zhí)行后,A) =(),(SP) =(),(51H) =(),(52H) =(),(PC) =()。POPDPHPOPDPLMOVDPTR, #4000HRLAMOVB, AMOVCA, A+DPTRPUSHAccMOVA, BINCAMOVCA, A+DPTRPUSHAccRETORG4000HDB10H, 80H, 30H, 50H

8、, 30H,50H3-29】已知( A) =5BH ,( R1 ) =40H ,(40H ) =C3H ,(PSW ) =81H,試寫出各條指令的執(zhí)行結果,并說明程序狀態(tài)字的狀態(tài)。( 1 ) XCH A, R1( 2) XCH A, 40HXCH A, R1XCHD A, Rl( 5) SWAP A(6)ADD A,R1(7)ADD A,40H(8)ADD A,#40H(9)ADDC A,40H(10)SUBB A,40H(11)SUBB A,#40H3-30】試分析下面兩組指令的執(zhí)行結果有何不同?(1)MOV A,#0FFH(2)MOV A,#0FFHINC A ADD A, #O1H【3-

9、31】 DA A指令有什么作用?怎樣使用?【3-32】已知(A) =87H,(R0) =42H,(42H) =24H,請寫出執(zhí)行下列程序段后A的內容。ANL A, #23HORL 42H, AXRL A, R0CPL A3-33】寫出完成如下要求的指令但是不能改變未涉及位的內容。(1 )把 Acc.3, Acc.4, Acc.5 和 Acc.6 清 0 。(2)把累加器A的中間4位清0。(3)把 Acc.2 和 Acc.3 置 1?!?-34】假定(A) =83H,(R0)=17H,(17H) =34H,執(zhí)行以下指令后,(A)二()。ANLA, #17HORL17H, AXRLA, R0CPL

10、 A【3-35】假設(A)=55H,(R3)=0AAH,在執(zhí)行指令ANLA,R3” 后,(A)二(),(R3)二()?!?-36】已知組合邏輯關系式為F二AB+C,請編寫模擬其功能的程序。設A、B、C、F均代表位地址。 3-37】編程完成下述操作。(1)將外部RAM 1000H單元的所有位取反;(2)將外部RAM 60H單元的高2位清零,低兩位變反,其余位保持不變?!?-38】試用位操作指令實現(xiàn)邏輯操作:P1.0二(10H V P1.0),PSW.仁(18H V CY )。3-39】仔細辨析下列指令的意義,找出錯誤的指令,并簡要說明原因。1)CLRA2)CLREOH3)CLRACC4)CLRA

11、CC05)CPLA6)CPLEOH7)CPLACC8)CPLACC0【3-4 0】指令LJMP addrl6和AJMP addrll的區(qū)別是什么?3-41】試分析以下兩段程序中各條指令的作用,程序執(zhí)行完將轉向何處? ( 1 )MOV p1 , #0CAHMOV A, #56HJB P1.22, L1JNB ACC3, L2L1 :L2:MOV A, #43HJB ACC2,L1JBC ACC6,L2L1: :L2: :3-42】判斷以下指令的正誤。1)MOV28H, R2;2)DECDPTR;3)INCDPTR;4)CLRR0;5)CPLR56)MOVR0, R1 ;7)PUSHDPTR;8)

12、MOVF0, C;9)MOVF0, Acc.310MOVX A, R1 ;11MOVC, 30H;12)RLCR0【3-43】借助指令表(附錄B),對如下指令代碼(十六進制)進行手工反匯編。FF C0 E0 E5 F03-44】以下指令中,屬于單純讀引腳的指令是( )。A) MOV P1, AORL P1, #0FHMOV C, Pl.5ANL P1, #OFH【3-45】用AT89S51單片機的P1 口做輸出,經(jīng)驅動電路接8個發(fā)光二極管,見圖3-11所示。 當輸出位為“0”時,發(fā)光二極管點亮;輸出為“”時,發(fā)光二極管為暗。試編制程序將8個發(fā) 光二極管全部點亮;將8個發(fā)光二極管全部熄滅;將8個

13、發(fā)光二極管隔一個點亮一個;每次亮一個,循環(huán)左移,一個一個地亮,循環(huán)不止。H.0CT2)(ADOPO.aM.1(T2EX)亮一個,循環(huán)左移,一個一個地亮,循環(huán)不止。H.0CT2)(ADOPO.aM.1(T2EX)(AD1JPOJP3 2M2W.2P3.3(AD3)P0JP】4(AEMJFO-1PI.5(AD5)P0JPl 6P! 7AD7JP07舟訐宦遼P3.2(INTUi価渾 A 102.2P3.5(TD(AMJP2.3P3.4(T0At2)P2J(A13JF2.5首VPP(AMJP2.fi(AI5JP2.7XTALJXTAL2vcc GXDRST(RXD)P3.fl(TXDJP3.LP3.6

14、(Rj圖3-11單片機P1 口驅動發(fā)光二極管【3-46】如圖3-12所示,這是由AT89C51構建的最小系統(tǒng),外部連接了 4個按鍵S1S4及4個發(fā)光 二極管LED1-LED4,P1 口的高4位用于接收按鍵的輸入狀態(tài),而低4位用于驅動發(fā)光二極管。請結合 圖示,編寫程序,完成以下要求。若SI閉合,則發(fā)光二極管LED丨點亮;若S2閉合,則發(fā)光二極管.LED2點亮。以此類推, 即發(fā)光二極管實時反映按鍵狀態(tài)。(2)用4個發(fā)光二極管實現(xiàn)對按鍵鍵值的BCD編碼顯示。即若SI閉合,鍵值為1,編碼為0001 , LEDI點亮;若S2閉合,鍵值為2,編碼為0010, LED2點亮;若S3閉合,鍵值為3,編碼為00

15、11, LEDI、 LED2同時點亮;若S4閉合,鍵值為4,編碼為0100,LED3點亮。AT89C51(AD0)P0.0 (ADl)PO.l (AD2)P0.2 (AD3)P0.3 (AD4)P0.4 (AD5)P0.5 (AD6)P0.6 (AD7)P0.7AT89C51(AD0)P0.0 (ADl)PO.l (AD2)P0.2 (AD3)P0.3 (AD4)P0.4 (AD5)P0.5 (AD6)P0.6 (AD7)P0.7(A8)P2.O (A9)P2.1 (A10)P22 (A11)P2.3 (A12)P2.4 (A13)P2.5 (A14)P2.6 (A15)P2.7vcc GND

16、 (RXD)P3.0 (TXD)Pj.1 ALEPROGPSENP1.1(T2EX)Pl .2Pl .3Pl .4Pl.5Pl.6Pl.7P3.3(tT)P3.2(INT0)P3.5CT1)P3.4(T0)EAATP XTAL1XTAL2RSTP3.7(RD)P3.6(WR)第三章思考題答案:【3-1 】解答:C語言那種語言的可讀性和可移植性強,例如對于用C語言編制的51單片機程序,只需要稍 作修改就可以移植到PIC類型的單片機上。匯編語言適用于對速度和時序敏感的場合。正確。3-2】解答:C語言與匯編語言經(jīng)過編譯后將是二進制的機器語言。正確?!?-3】解答:一條完整的匯編語言指令包括標號、操作

17、碼、操作數(shù)和注釋四部分。其中標號與操作碼用冒號分隔,操作碼和操作數(shù)之間用空格,多個操作數(shù)之間用逗號分隔, 注釋用冒號開頭。四個部分中操作碼是必須存在的,其他三部分在有的指令中可以不出現(xiàn)。標號是一種符號地址。標號以字母開頭,由1-8個字母或數(shù)字組成?!?-4】解答:80C51系列單片機提供了七種尋址方式:立即尋址、直接尋址、寄存器尋址、寄存器 間接尋址、變址尋址(基址寄存器+變址寄存器間接尋址)、相對尋址、位尋址?!?-5】解答:立即尋址尋址方式中的立即數(shù)是存放在ROM中?!?-6】解答:(1)正確 (2)正確 (3)錯誤 (4)錯誤【3-7】解答:直接尋址方式可訪問以下存儲空間:內部RAM低1

18、28個字節(jié)單元,指令中直接地 址以單元地址的形式給出。特殊功能寄存器?!?-8】解答:寄存器尋址中規(guī)定的寄存器有:工作寄存器R0R7。累加器A。雙字節(jié)AB。數(shù)據(jù)指針 DPTR?!?3-9】解答:能用于間接尋址的寄存器有R0, R1, DPTR,SP。其中R0、R1必須是工作寄存器組中的寄存器。采用R0、R1作為間址寄存器,可尋址內部RAM的低128個單元和外部RAM低256個單元單元; 采用16位的DPTR作為間址寄存器,可尋址外部RAM的整個64KB地址空間?!?3-10】解答:地址?!?-11】解答:80C51單片機變址尋址方式中是以DPTR或PC作基址寄存器,以累加器A作變址寄存器。是的

19、。A+PC, A+DPTR尋址所找到的操作數(shù)是在ROM中?!?-12】解答:正確o 80C51單片機凡是指令中帶有rel相對偏移量的指令,其PC的改變都是相對 的?!?-13】解答:若訪問特殊功能寄存器,只可以采用直接尋址?!?-14】解答:若訪問外部RAM單元,只可以使用寄存器間接尋址方式?!?-15】解答:若訪問內部RAM單元,可使用直接尋址、寄存器尋址、寄存器間接尋址和位尋址。 【3-16】解答:若訪問內外程序存儲器,可使用變址尋址方式。【 3-17】解答:還包含內部RAM的20H-2FH,共16個字節(jié),16*8=128個位,每一位都有一個位地址,對應位 地址 00H-7FH。位地址是0

20、0H、08H、22H、7FH、D0H、E0H 對應的字節(jié)地址分別是20H、21H、24H、2FH、D0H、 E0H?!?-18】解答:R0J30H,(R0) =30HA(R0),(A) =40HR1(A),(R1) =40HB(R1),(B) =10H(R1)(P1),(R1)二(40H) =EFH P2J(P1),(P2) =EFH10HJ20H,(10H) =20H 30H(10H),(30H) =20H結果:(R0) =30H, (A) =40H, (R1) =40H, (B) =10H, (40H) =EFH, (P2) =EFH, (10H) =20H, (30H) =20H【3-1

21、9】解答:因為寄存器間接尋址方式中R0或R1的內容是操作數(shù)的RAM地址,內部RAM的尋址 范圍是 00H7FH?!?-20】解答:外部數(shù)據(jù)傳送指令有4條: MOVX A, DPTR;MOVX DPTR, A;MOVXA, Ri;MOVX R, A。都是訪問片外RAM,但二者尋址范圍不同。前1條指令是對片外RAM低256個單元的“讀”操 作;后1條指令是對片外RAM 64KB空間的“讀”操作。訪問空間相同,但數(shù)據(jù)傳送方向不同。前1條指令是對片外RAM64KB空間的“讀”操作;后1 條指令是對片外RAM64KB空間的“寫”操作。訪問空間不同。前1條指令是對片內RAM低128個單元的“寫”操作;后1

22、條指令是對片外 RAM 低 256 個單元的“寫”操作。二者訪問的空間不同,尋址方式不同。前1條指令是變址尋址方式,對ROM操作;后1條指 令是寄存器間接尋址方式,對片外RAM操作?!?3-21 】解答: 1031H?!?-22】解答: ROM; ROM 和外部 RAM?!?3-23】解答:由于在工作寄存器與工作寄存器之間不能直接傳送數(shù)據(jù),所以需要借助累加器AoMOV A, R1MOV R0, A片外RAM向片內RAM傳送數(shù)據(jù),不能直接進行,需要借助累加器Ao由于片外RAM是60H單元, 地址小于FFH,所以間址寄存器使用Ri即可。MOV R1 , #60HMOVXA,R1MOVR0,AMOV

23、R1,#60HMOVXA,R1MOV40H,A片外數(shù)據(jù)不能直接送入片外單元,需要先將片外數(shù)據(jù)讀入累加器,然后再送到片外。MOVDPTR, #1000HMOVXA, DPTRMOVR1 , #40HMOVXR1 , A【3-24】解答:片外RAM與片內RAM之間的數(shù)據(jù)傳送不能直接進行,需要借助累加器A。數(shù)據(jù)交換 需要使用數(shù)據(jù)交換指令 XCH。MOVDPTR, #1000HMOVXA, DPTRXCHA, 60HMOVXDPTR, A3-25 】解答: D。3-26 】解答: 3CH;5FH;50H。3-27 】解答: 30H;70H。3-28 】解答: 50H;52H;30H;50H;5030H

24、。3-29 】解答: 結果:(A) - (R1),(A) =40H,(R1) =5BH,(PSW) =81H 結果:(A) - (40H),(A) =C3H,(40H) =5BH,(PSW) =80H 結果:(A) - (R1),(A)二C3H,(R1)二(40H) =5BH,(PSW) =80H 結果:(A) 03 - (R1) 03,(A) =53H,(R1) = (40H) =CBH,(PSW) =80H 結果:(A) 03 - (A) 47,(A) =B5H,(PSW) =81H結果:AJ(A) + (R1),(A) =9BH,(PSW) =05H結果:AJ(A) + (40H),(A

25、) =1EH,(PSW) =80H結果:AJ(A) +40H,(A) =9BH,(PSW) =05H結果:AJ(A) + (40H) +CY,(A) =1FH,(PSW) =81H結果:AJ(A) - (40H) -CY,(A) =97H,(PSW) =85H結果:AJ(A) - 40H - CY,(A) =1AH,(PSW) =01H3-30】解答:該組指令執(zhí)行后(A) =00H,不影響CY位。該組指令執(zhí)行后(A) =00H,影響CY位。說明:單獨執(zhí)行INC指令,只影響奇偶標志位P,不影響半進位標志位AC和進位位CY位。執(zhí)行ADD 指令后,將影響CY、AC和P位?!?-31】解答:DA A指

26、令的作用是對A中剛進行的兩個BCD碼的加法結果進行修正,即繼續(xù)使BCD 碼加法運算的結果保持為BCD碼。使用時,DA A指令只能使用在加法指令后,即ADD指令和ADDC指令?!?-32】解答:A(A)A23H,(A) =03H42H(42H)V(A),(42H) =37HAJ(A)(R0),(A) =34HAJ( A ) ,(A) =CBH結果:(A) =CBH3-33】解答:(1)ANL A,#87H(2)ANL A,#0C3H(3)ORL A,#0CH【3-34】解答:OCBH?!?3-35】解答: 00H;0AAH?!?3-36】解答: ANLA,BORL A,C MOV F,C【 3-

27、37】解答:(1)MOV DPTR,#1OOOHMOVX A , DPTRCPL AMOVX DPTR, A(2)MOV RO,#6OHMOVX A , ROANL A,#3FHXRL A,#O3HMOVX RO,A【 3-38 】解答:(1)MOV C,1OHANL C,P1.O(2)ORL C,18HMOV PSW.1,C【 3-39】解答:(1)正確。(2)錯誤。原因:清零指令只能用于累加器ACC和位操作,而本題中EOH只能是字節(jié)地址(位地 址的范圍是00H7FH),所以該條指令錯誤。(3)錯誤。原因:ACC是直接字節(jié)地址,不能用于清零指令。(4)正確。ACC.0是一個位,可以應用到清零

28、指令中。(5)正確。(6)錯誤。原因:取反指令只能用于累加器ACC和位操作,而本題中EOH只能是字節(jié)地址(位地 址的范圍是00H7FH),所以該條指令錯誤。(7)錯誤。原因:ACC是直接字節(jié)地址,不能用于取反指令。(8)正確。ACC.0是一個位,可以應用到取反指令中?!?-40】解答:指令LJMPaddr16是長轉移指令,指令中提供了 16位目的地址,尋址范圍是64KB。 指令AJMP addrll是絕對轉移指令,指令中11位目的地址,其中a7a0在第二字節(jié),a10a8則占 據(jù)第一字節(jié)的高3位,尋址范圍是與PC當前值(本指令所在地址+本條指令所占用的字節(jié)數(shù)2)在 同一個 2K 的區(qū)域內。3-41 】解答:1)MOVP1 , #0CAH;P1JCAH, P1=CAH=11001010BMOVA, #56H;AJ56H, A=56H=01010110BJBP1.2, L1;若P

溫馨提示

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

評論

0/150

提交評論