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

下載本文檔

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

文檔簡介

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

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

3、P,CA+DPT所找至ij的操彳乍數(shù)是在ROMfr對嗎?【3-12】80C51單片機相對尋址改變的是PC的當前值,即改變的CPU執(zhí)行指令的順序這句話對否?【3-13】若訪問特殊功能寄存器,只可以采用那種尋址方式?【3-14】若訪問外部RAM單元,只可以使用哪種尋址方式?【3-15】若訪問內(nèi)部RAM單元,可使用哪些尋址方式?【3-16】若訪問內(nèi)外程序存儲器,可使用哪些尋址方式?【3-17】80C51單片機可以進行位尋址的字節(jié)單元范圍除11個可位尋址的特殊功能寄存器外還包括哪個區(qū)域?分別找出位地址是00H08H22H、7FTD0HE0H對應的字節(jié)地址?【3-18】已知(30H)=40H,(40H)

4、=10H,(10H)=32H,(P1)=0EFH試寫出執(zhí)行以下程序段后有關(guān)單元的內(nèi)容。MOVR0,#30HMOVA,R0MOVR1,AMOVB,RiMOVR1,P1MOVP2,P1MOV10H,#20HMOV30H,10H【3-19】為什么對基本型的51子系列單片機(片內(nèi)RAM為128B),其寄存器間接尋址方式(例如MOVA,R0中,規(guī)定R0或R1的內(nèi)容不能超過7FH?【3-20】外部RAM據(jù)傳送指令有幾條?1式比較下面每一組中兩條指令的區(qū)別?(1)MOVXA,R1MOVXA,DPTR(2)MOVXA,DPTRMOVXDPTR,A(3)MOVR0,AMOVXR0,A(4)MOVCA,A+DPT

5、RMOVXA,DPTR【3-21】假定累加器A中的內(nèi)容為30H,執(zhí)行指令1000H:MOVCAA+PC,把程序存儲器()單元的內(nèi)容送入累加器A中?!?-22在AT89S51中,PC和DPTR都用于提供地址,但PC是為訪問()提供地址,而DPTR是為訪問()和()提供地址?!?-23】試寫出完成以下數(shù)據(jù)傳送的指令序列。(1)R1的內(nèi)容傳送R0;(2)片外RAM60Hli元的內(nèi)容送入R0;(3)片外RAM60Hli元的內(nèi)容送入片內(nèi)RAM40Hli元;(4)片外RAM1000H單元的內(nèi)容送入片外RAM40H單元。【3-24試編程,將外部RAM1000H單元中的數(shù)據(jù)與內(nèi)部RAM60H單元中的數(shù)據(jù)相互交

6、換。【3-25】對程序存儲器的讀操作。只能使用()。A)MOV旨令B)PUSH旨令C)MOV痔令D)MOVC旨令【3-26(DPTR=507BH(SP)=32H,(30H)=50H,(31H)=5FH(32H)=3CH則執(zhí)行下列指令后,(DPH)=(),(DPL)=(),(SP)=()。POPDPHPOPDPLPOPSP【3-27假定,(SP)=60H,(A)=30H,(B)=70H,執(zhí)行下列指令后,SP的內(nèi)容為(),61H單元的內(nèi)容為(),62H單元的內(nèi)容為()。PUSHAccPUSHB【3-28已知程序執(zhí)行前有(A)=02H,(SP)=52H,(51H)=FFH(52H)=FFH下述程序執(zhí)

7、行后,(A)=(),(SP)=(),(51H)=(),(52H)=(),(PC)=()。POPDPHPOPDPLMOVDPTR,#4000HRLAMOVB,AMOVCA,A+DPTRPUSHAccMOVA,BINCAMOVCA,A+DPTRPUSHAccRETORG4000HDB10H,80H,30H,50H,30H,50H【3-29】已知(A)=5BH,(R1)=40H,(40H)=C3H,(PSW)=81H,試寫出各條指令的執(zhí)行結(jié)果,并說明程序狀態(tài)字的狀態(tài)。( 1) XCHA,R1( 2) XCHA,40H( 3) XCHA,R1( 4) XCHDA,Rl( 5) SWAPA( 6) AD

8、DA,R1( 7) ADDA,40H( 8) ADDA,#40H( 9) ADDCA,40H( 10) SUBBA,40H( 11) SUBBA,#40H3-30】試分析下面兩組指令的執(zhí)行結(jié)果有何不同?( 1) MOVA,#0FFH(2)MOVA,#0FFHINCAADDA,#O1H【3-31】DAA旨令有什么作用?怎樣使用?【3-32已知(A=87H,(R0)=42H,(42H)=24H,請寫出執(zhí)行下列程序段后A的內(nèi)容。ANLA,#23HORL42H,AXRLA,R0CPLA3-33】寫出完成如下要求的指令但是不能改變未涉及位的內(nèi)容。(1)把Acc.3,Acc.4,Acc.5和Acc.6清0

9、。(2)把累加器A的中間4位清0。(3)把Acc.2和Acc.3置1?!?-34】假定(A)=83H,(R0)=17H,(17H)=34H,執(zhí)行以下指令后,(A)=()。ANLA,#17HORL17H,AXRLA,R0CPLA【3-35假設(A)=55H,(R3)=0AAH在執(zhí)行指令“ANLA,R3”后,(A)=(),(R3)=()?!?-36】已知組合邏輯關(guān)系式為F=AB+C請編寫模擬其功能的程序。設A、B、CF均代表位地址。3-37】編程完成下述操作。(1)將外部RAM1000Hl元的所有位取反;(2)將外部RAM60Hl元白高2位清零,低兩位變反,其余位保持不變。【3-38試用位操作指令

10、實現(xiàn)邏輯操作:P1.0=(10HVP1.0),PSW.1=(18HVCY)。3-39】仔細辨析下列指令的意義,找出錯誤的指令,并簡要說明原因。(1) CLRA( 2) CLREOH( 3) CLRACC( 4) CLRACC0( 5) CPLA( 6) CPLEOH( 7) CPLACC( 8) CPLACC0【3-40】指令LJMPaddrl6和AJMPaddrll的區(qū)別是什么?3-41】試分析以下兩段程序中各條指令的作用,程序執(zhí)行完將轉(zhuǎn)向何處?(1)MOVp1,#0CAHMOVA,#56HJBP1.22,L1JNBACC3,L2L1:L2:(2) MOVA,#43HJBACC.2,L1JB

11、CACC.6,L2L1L2【3-42】判斷以下指令的正誤。(1) MOV28H,R2(2) DECDPTR(3) INCDPTR;(4) CLRR0;(5) CPLR5(6) MOVR0,R1;PUSHDPTR(8) MOVF0,C;(9) MOVF0,Acc.3;(10) MOVXAR1(11) MOVC,30H;(12) RLCR0【3-43】借助指令表(附錄B),對如下指令代碼(十六進制)進行手工反匯編。FFC0E0E5F0【3-44】以下指令中,屬于單純讀引腳的指令是()。A)MOVP1,AB)ORLP1,#0FHCMOVC,Pl.5DANLP1,#0FH【3-45用AT89S51單片

12、機的P1口做輸出,經(jīng)驅(qū)動電路接8個發(fā)光二極管,見圖3-11所示。當輸出位為“0”時,發(fā)光二極管點亮;輸出為“1”時,發(fā)光二極管為暗。試編制程序?qū)?個發(fā)光二極管全部點亮;將8個發(fā)光二極管全部熄滅;將8個發(fā)光二極管隔一個點亮一個;每次亮一個,循環(huán)左移,一個一個地亮,循環(huán)不止。也2中切憶中等5OJ>1 C(T3.出M3外i;皿 1Mditil:FI 3PI <必Fl 3PI C心 Jpce11 froTW 7P” 口-3 1翼1靠上»b<TCr4加相Uimugl,那 J wrR5TGWWEOT口 1 ale!圖3-11單片機P1口驅(qū)動發(fā)光二極管【3-46如圖3-12所示,

13、這是由AT89C51構(gòu)建的最小系統(tǒng),外部連接了4個按鍵S1S4及4個發(fā)光二極管LED1-LED4,P1口的高4位用于接收按鍵的輸入狀態(tài),而低4位用于驅(qū)動發(fā)光二極管。請結(jié)合圖示,編寫程序,完成以下要求。(1)若Sl閉合,則發(fā)光二極管LEDl點亮;若S2閉合,則發(fā)光二極管.LED2點亮。以此類推,即發(fā)光二極管實時反映按鍵狀態(tài)。(2)用4個發(fā)光二極管實現(xiàn)又捎$鍵鍵值的BC編碼顯示。即若Sl閉合,鍵值為1,編碼為0001,LEDl點亮;若S2閉合,鍵值為2,編碼為0010,LED2火亮;若S3閉合,鍵值為3,編碼為0011,LEDI、LED洞時點亮;若S4閉合,鍵值為4,編碼為0100,LED3點亮。

14、a xd圖 3-12小而|P3J(TI)IXw裕加31HTFL而PJ生碗.iJXKC JJ3: F: L :JkB3R3 -JJ35 P: 5|RXD!P;I|J第三章思考題答案:3-1解答:(1)C語言那種語言的可讀性和可移植性強,例如對于用C語言編制的51單片機程序,只需要稍作修改就可以移植到PIC類型的單片機上。(2)匯編語言適用于對速度和時序敏感的場合。(3)正確。3-2解答:(1)C語言與匯編語言經(jīng)過編譯后將是二進制的機器語言。(2)正確。3-3解答:(1)一條完整的匯編語言指令包括標號、操作碼、操作數(shù)和注釋四部分。(2)其中標號與操作碼用冒號分隔,操作碼和操作數(shù)之間用空格,多個操作

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

16、中規(guī)定的寄存器有:工作寄存器R0R7。累加器Ao雙字節(jié)AB數(shù)據(jù)指針DPTR3-9解答:(1)能用于間接尋址的寄存器有RQR1,DPTRSP。其中RQR1必須是工作寄存器組中的寄存器。(2)采用R0、R1作為間址寄存器,可尋址內(nèi)部RAM勺低128個單元和外部RAM氐256個單元單元;采用16位的DPTR乍為間址寄存器,可尋址外部RAM勺整個64KB地址空間?!?-10】解答:地址?!?-11】解答:(1)80C51單片機變址尋址方式中是以DPTRPC作基址寄存器,以累加器A作變址寄存器。(2)是的。A+PCA+DPTR址所找到的操作數(shù)是在ROMK【3-12解答:正確。80C51單片機凡是指令中帶

17、有rel相對偏移量的指令,其PC的改變都是相對的。【3-13】解答:若訪問特殊功能寄存器,只可以采用直接尋址?!?-14解答:若訪問外部RAMWi元,只可以使用寄存器間接尋址方式?!?-15解答:若訪問內(nèi)部RAMWi元,可使用直接尋址、寄存器尋址、寄存器間接尋址和位尋址?!?-16】解答:若訪問內(nèi)外程序存儲器,可使用變址尋址方式?!?-17】解答:(1)還包含內(nèi)部RAM勺20H-2FH,共16個字節(jié),16*8=128個位,每一位都有一個位地址,對應位地址00H-7FH。(2)位地址是00H、08H、22T7FHD0HE0H對應的字節(jié)地址分別是20H、21H24H2FTD0HE0H?!?-18解

18、答:Rk30H,(R0)=30HA(R0),(A)=40HR1(A),(R1)=40HB(R1),(B)=10H(R1)(P1),(R1)=(40H)=EFHP2(P1),(P2)=EFH10H20H,(10H)=20H30H(10H),(30H)=20H結(jié)果:(R0)=30H,(A)=40H,(R1)=40H,(B)=10H,(40H)=EFH,(P2)=EFH,(10H)=20H,(30H)=20H【3-19】解答:因為寄存器間接尋址方式中R0或R1的內(nèi)容是操作數(shù)的RAMfe址,內(nèi)部RAM勺尋址范圍是00H7FH。【3-20】解答:外部數(shù)據(jù)傳送指令有4條:MOVXA,DPT;RMOVXDP

19、T,RA;MOVXA,Ri;MOVXR,A。(1)都是訪問片外RAM但二者尋址范圍不同。前1條指令是對片外RAM氐256個單元的“讀”操作;后1條指令是對片外RAM64K彘間的“讀”操作。(2)訪問空間相同,但數(shù)據(jù)傳送方向不同。前1條指令是對片外RAM64K院間的“讀”操作;后1條指令是對片外RAM64K院間的“寫”操作。(3)訪問空間不同。前1條指令是對片內(nèi)RAM氐128個單元的“寫”操作;后1條指令是對片外RAM氐256個單元的“寫”操作。(4)二者訪問的空間不同,尋址方式不同。前1條指令是變址尋址方式,對ROM作;后1條指令是寄存器間接尋址方式,對片外RAMt作?!?-21】解答:103

20、1H?!?-22解答:ROMROMF口外部RAM【3-23】解答:(1)由于在工作寄存器與工作寄存器之間不能直接傳送數(shù)據(jù),所以需要借助累加器A。MOVA,R1MOVR0,A(2)片外RAM向片內(nèi)RAM專送數(shù)據(jù),不能直接進行,需要借助累加器A由于片外RA娓60H單元,地址小于FFH,所以間址寄存器使用Ri即可。MOVR1,#60HMOVXMOVA,R1R0,A(3)MOVR1,#60HMOVXA,R1MOV40H,A(4)片外數(shù)據(jù)不能直接送入片外單兀,需要先將片外數(shù)據(jù)讀入累加器,MOVDPTR#1000HMOVXA,DPTRMOVR1,#40HMOVXR1A【3-24】解答片外RAMW片內(nèi)RAM

21、fc間的數(shù)據(jù)傳送不能直接進行需要使用數(shù)據(jù)交換指令XCHMOVDPTR#1000HMOVXA,DPTRXCHA,60HMOVXDPTRA【3-25】解答D=【3-26】解答3CH5FH;50H?!?-27】解答30H;70H?!?-28】解答50H;52H;30H;50H;5030H?!?-29】解答(1)結(jié)果:(A)一(R1),(A)=40H,(R1)=5BH,(PS然后再送到片外。,需要借助累加器A。數(shù)據(jù)交換(2)(3)(4)(6)(8)(9)結(jié)果結(jié)果結(jié)果結(jié)果結(jié)果結(jié)果結(jié)果結(jié)果(10)結(jié)果:(11)結(jié)果:A)A)W=81H<->(40H),(A)=C3H(40H)=5BH(PSW=

22、80H一(R1),A)03<A)03<A-(A)A-(A)A-(A)A-(A)(R1)(A)47,+(RD,(A)(A)=C3H,(R1)=(40H)=5BH,(PSW=80H03,(A)=53H,(R1)=(40H)=CBH(PSW=80H(A)=B5H(PSW=81H=9BH,(PSVV=05H+(40H),(A)=1EH,(PSW=80H+40H,(A)=9BH,(PSW=05H+(40H)+CY(A)=1FH,(PSW=81HA(A)-(40H)-CY,(A)=97H,(PSW=85HA-(A)-40H-CY,(A)=1AH,(PSW=01H【3-30解答:(1)該組指令執(zhí)

23、行后(2)該組指令執(zhí)行后(A)A)=00H,=00H,不影響CY位。影響CY位。說明:單獨執(zhí)行INC指令,指令后,將影響CYAC和只影響奇偶標志位P,不影響半進位標志位AC和進位位CY位。執(zhí)行ADDP位。【3-31解答:DAA指令的作用是對A中剛進行的兩個BCD碼的加法結(jié)果進行修正,即繼續(xù)使BCD碼加法運算的結(jié)果保持為BC加。使用時,DAA指令只能使用在加法指令后,即ADDf令和ADDC指令。【3-32解答:A(A)A23H,(A)=03H42H(42H)V(A),(42H)=37HA-(A)(R0),(A)=34HA-(A),(A)=CBH結(jié)果:(A)=CBH【3-33解答:1 )ANLA,

24、#87H2 )ANLA,#0C3H3 )ORLA,#0CH3-34】解答:0CBH。3-35】解答:00H;0AAH。3-36】解答:ANLA,BORLA,CMOVF,C3-37】解答:1)MOVDPT,R#1000HMOVXA,DPTRCPLAMOVXDPT,RA2)MOVR0,#60HMOVXA,R0ANLA,#3FHXRLA,#03HMOVXR,0A3-38】解答:1 )MOVC,10HANLC,P1.02 )ORLC,18HMOVPSW.1,C3-39】解答:(1)正確。(2)錯誤。原因:清零指令只能用于累加器ACC和位操作,而本題中E0H只能是字節(jié)地址(位地址的范圍是00H7FH,所

25、以該條指令錯誤。(3)錯誤。原因:AC比直接字節(jié)地址,不能用于清零指令。(4)正確。ACC.0是一個位,可以應用到清零指令中。(5)正確。(6)錯誤。原因:取反指令只能用于累加器ACC和位操作,而本題中E0H只能是字節(jié)地址(位地址的范圍是00H7FH,所以該條指令錯誤。(7)錯誤。原因:AC比直接字節(jié)地址,不能用于取反指令。(8)正確。ACC.0是一個位,可以應用到取反指令中。3-40 】解答:指令LJMPaddr16 是長轉(zhuǎn)移指令,指令中提供了16 位目的地址,尋址范圍是64KB。指令 AJMP addr11 是絕對轉(zhuǎn)移指令,指令中11 位目的地址,其中 a7a0 在第二字節(jié), a10a8 則占據(jù)第一字節(jié)的高3 位,尋址范圍是與PC當前值(本指令所在地址 +本條指令所占用的字節(jié)數(shù) 2)在同一個2K的區(qū)域內(nèi)。3-41 】解答:1 ) MOV P1 , #0CAHMOV A , #56HJB P1.2 , L1JNB ACC.3 , L2;P1-CAH P1=CAH=11001010B;A 56H, A=56H=01010110BP1.2=1 ,則轉(zhuǎn)移至L1;若ACC.3=0,則轉(zhuǎn)移至 L2L1:L2:執(zhí)行完本段程序后將轉(zhuǎn)

溫馨提示

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

評論

0/150

提交評論