單片機習題(指和編程及答案)_第1頁
單片機習題(指和編程及答案)_第2頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機練習二一單項選擇題1. ORG0003HLJMP2000HORG000BHLJMP3000H當CPU響應外部中斷0后,PC的值是(B)。A.0003HB.2000HC.000BHD.3000H3. MCS-51的相對轉移指令的最大負跳距離為(B)A.2KBB.128BC.127BD.256B4. 以下運算中對溢出標志0V沒有影響或不受影響的運算是(A)。A.邏輯運算B.符號數(shù)加減運算C.比較數(shù)據(jù)大小運算D.除法運算5. 產生PSEN信號的指令是(c)A.MOVXA,DPTRB.MOVXDPTR,AC.MOVCA,A+PCD.MOVXA,A+DPTR6. MOVXA,DPTR指令中的源操作

2、數(shù)的尋址方式是(B)。7. 將MCS-51的工作寄存器置成3區(qū)的指令是(B)。A.MOVPSW,#13HB.MOVPSW,#18H8. 指令AJMP的跳轉范圍是(C)。9. 6264芯片是(B)。2PR0MB.RAMC.FlashROMD.EPROM10. 下面那條指令產生WR信號(d)A.MOVXA,DPTRB.MOVCA,A+DPTRC.MOVCA,A+PCD.MOVXDPTR,A11. 執(zhí)行LCALL4000H指令時,MCS-51所完成的操作是(D)。A.保護PCB.保護現(xiàn)場C.4000HtPCD.PC+3入棧,4000HtPC12. 下列指令中可能改變Cy的有(C)A.INCAB.CP

3、LAC.RLCAD.MOVA,#data13. 假定設置堆棧指針SP的值為36H,在執(zhí)行指令PUSH20H后,SP的值為(B)14. PUSHACC指令,MCS-51完成的操作是(A)。A.(SP)+1TSP(ACC)弓(SP)B.(ACC)弓(SP)(SP)-1TSPC.(SP)-1TSP(ACC)弓(SP)D.(ACC)9(SP)(SP)+1TSP15. MOVC,00H指令的第二操作數(shù)尋址方式是(A)。A.位尋址B.直接尋址C.立即尋址D.寄存器尋址16. 在算術運算中,與輔助進位AC有關的是(C)。A.二進制B.八進制C.十進制D.十六進制17. 把P0口高四位變0,低四位不變,應使用

4、指令(D)。A.ORLP0,#0FHB.ORLP0,#0F0HCANLP0,#0F0HD.ANLP0,#0FH18ORG0000HAJMP0040HORG0040HMOVSP,#00H當執(zhí)行完上面的程序后,PC的值是(D)A.0040HB.0041HC.0042HD.0043H19. 在相對尋址方式中,“相對”兩字是指跳轉(A)。A.地址偏移量relB.當前指令的首地址C.當前指令的末地址D.DPTR值20. 使用8051,且EA=1,則可以外擴ROM(B)。A.64KBB.60KBC.58KBD.56KB21. 已知(31H)=21H,(32H)=04H,執(zhí)行下列指令后,31H的內容為(B)

5、。PUSH31HPUSH32HPOP31HPOP32HA.21HB.04HC.32HD.31H22. 已知(A)=00H,執(zhí)行DECA指令后,A的內容為(B)A00HB.FFHC.01HD.0FH23. 要用傳送指令訪問MCS-51片外RAM,它的指令操作碼助記符應是(BA.MOVB.MOVXC.MOVCD.以上都行24. LCALL存于2000H開始的地址單元中,執(zhí)行完相應子程序中的返回指令,PC=(A2000HB.2001HC.2002HD.2003H25. 程序設計的方法一般有(D)A1種B.2種C.3種D.4種26. 在寄存器間接尋址方式中,指定寄存器中存放的是(B)A.操作數(shù)B.操作

6、數(shù)地址C.轉移指令D.地址偏移量27. 當8031外擴程序存儲器8KB時,常使用EPROM2716(C)A.2片B.3片C.4片D.5片28. 中斷服務程序的最后一條指令必須是(C)A.ENDB.RETC.RETID.AJMP29. ADC0809啟動A/D轉換的方式是(C)A.高電平B.低電平C.正脈沖D.負脈沖30. MOVC,30H源操作數(shù)尋址方式為(D)A.立即尋址B.寄存器尋址C.寄存器間接尋址D.位尋址31. POPA指令,MCS-51完成的操作是(A)A.A-(SP)SP(SP)-1B.SP(SP)-1A-(SP)C.A-(SP)SP-(SP)+1D.SP-(SP)+1A-(SP

7、)32. 當(RS1,RS0)=(1,1)時,工作寄存器R0對應內部RAM的(D)字節(jié)單元。A.00HB.08HC.10HD.18H33. 在R3初值為00H的情況下,DJNZR3,rel指令將循環(huán)執(zhí)行(B)A.0次B.256次C.128次D.10次34. 執(zhí)行AJMPaddr11指令時,MCS-51完成的操作是(DA.保護PCB.PCaddr11C.保護現(xiàn)場D.PC+2入棧PC00-addr1135. ORG2000HLCALL3000HORG3000HRET上面程序執(zhí)行完RET指令后,(PC)=(C)。A.2000HB.3000HC.2003HD.3003H36. MCS-51執(zhí)行完MOV

8、A,#08H后,PSW的(D位被置位。A.CB.F0C.0VD.P37. MCS-51的并行I/O口信息有兩種讀取方法,一種是讀引腳,還有一種是(AA.讀鎖存器B.讀數(shù)據(jù)C.讀A累加器D.讀CPU38.對程序存儲器的讀操作,只能使用(D)。A.MOV指令B.PUSH指令39ORG8000HDS08HDB30H,8AH則8008H單元內容為(BA.08HB.30HC.MOVX指令D.MOVC指令)。C.8AHD.不確定40.MOVR0,A指令目標操作數(shù)的尋址方式是(A)。A.寄存器間接尋址B.寄存器尋址C.直接尋址D.相對尋址41.已知(60H)=23H,(61H)=61H,運行下列程序62H內

9、容為(A)CLRCMOVA,#9AHSUBBA,60HADDA,61HDAAMOV62H,AA.38HB.D8HC.DBHD.3EH42.設系統(tǒng)的晶振頻率為6MHZ,下列子程序DELAY的延時時間約為(B)。DELAY:MOVR2,#0FAHL2:DJNZR2,L2RETA.900ySB.1006卩43. MCS-51的LJMP指令跳轉空間為(C)。A.2KB.128127C.64KD.32K44. 關于MCS-51的堆棧操作,正確的說法是(C)。A.先入棧,再修改棧指針B.先修改棧指針,再出棧C.先修改棧指針,再入棧D.以上都不對45. JNZrel指令的尋址方式是(C)。A.立即尋址B.寄

10、存器尋址C.相對尋址D.位尋址46.8051執(zhí)行ADDA,20H指令時,首先在P0口上出現(xiàn)的信息是(A)。A.操作碼地址B.操作碼C.操作數(shù)D.操作數(shù)地址47. 必須進行十進制調整的十進制運算(C)。A.有加法與減法B.有乘法與除法C.只有加法D.只有減法48. 執(zhí)行MOVXDPTR,A指令時,MCS-51產生(B)控制信號。A.PSENB.WRC.ALED.RD49. 已知單片機系統(tǒng)的fosc=6MHZ,執(zhí)行下列延時程序的時間為(C)。DY2:MOVR6,#2DLP1:MOVR7,#250DLP2:DJNZR7,DLP2DJNZR6,DLP1RETA1msB.1.5msC.2msD.4ms二

11、填空題(每小題1分,共15分1. 執(zhí)行ANLA,#0FH指令后,累加器A的高四位=清零。2008H。程序轉移地址1100H2. 設DPTR=(2000)H,(A)=08H,則MOVCA,A+DPTR的操作數(shù)的實際地址為_3. 假定addrll=00100000000B,標號JAZ的地址為1030H,執(zhí)行指令JAZ:AJMPaddrll后,去執(zhí)行。4. JZrel的操作碼的地址為1000H,rel=20H,他的轉移目標地址為。28.執(zhí)行當前指令后,PC內容為。5. 在寄存器間接尋址方式中,其“間接”體現(xiàn)在指令寄存器的內容不是操作數(shù),而是操作數(shù)的地址。6. 假定(A)=OFFH,執(zhí)行指令INCA后

12、,A的內容為。7. MCS-51系統(tǒng)中,當PSEN信號有意義時,表示CPU要從外部程序存儲器讀取信息。8. 訪問MCS-51程序存儲器傳送指令的操作碼助記符應為MOVC。9. 累加器(A)=7EH,(20H)=#04H,MCS-51執(zhí)行完ADDA,20H指令后,PSW.0為。10. INC指令CY位。11. 假定累加器A的內容為30H,執(zhí)行指令1000H:MOVCA,A+PC后,把程序存儲器一1031H一單元的內容送累加器A中。12. 在R7初值為00H的情況下,DJNZR7,rel指令將循環(huán)執(zhí)行256-次。13. MOVPSW,#10H是將MCS-51的工作寄存器置為第2組。14. 指令LC

13、ALL37B0H,首地址在2000H,完成此操作后(PC)=37B0H。15. 假定DPTR的內容為8100H,累加器A的內容為4DH,執(zhí)行指令MOVCA,A+DPTR后,送入A的是程序存儲器814DH單元的內容。16. 累加器A中存放一個其值小于或等于127的8位無符號數(shù),CY清“0”后執(zhí)行RLCA指令,則A中數(shù)變?yōu)樵瓉淼?倍。17. MCS-51的兩條杳表指令是MOVCA,A+PC,MOVCA,A+DPTR。18. 指令DJNZR7,rel的指令操作碼所在的地址為3000H,rel=EFH,則它的轉移目的地址為2FF1H。19. 通過堆棧操作實現(xiàn)子程序調用,首先要把_PC的內容入棧,以進行

14、斷點保護。20. 調用返回時再進行出棧操作,把保護的斷點彈回PC。21. 設(SP)=60H,(ACC)=30H,(B)=70H,執(zhí)行指令PUSHACC,PUSHB后,SP的內容為62H。22. 設(SP)=60H,(ACC)=40H,(B)=60H,執(zhí)行PUSHACC,PUSHB后61H單元的內容為40H。23. 設(SP)=60H,(ACC)=40H,(B)=80H,執(zhí)行PUSHACC,PUSHB,62H單元的內容為80H。24. PC中存放的是。25. ORLA,#0F0H是將A的高4位置1,而低4位。26. 一臺計算機的指令系統(tǒng)就是它所執(zhí)行的指令集合。27. 累加器(A)=80H,執(zhí)行

15、完指令ADDA,#83H后,進位位C=1。28. 以助記符表示的計算機指令就是它的匯編語言。29. SJMPrel的指令操作碼地址為0050H,rel=65H,那么它的轉移目的地址為00B7H。30. 執(zhí)行如下指令序列后,所實現(xiàn)的邏輯運算式為一P3.0=一。MOVP3.0,C31.當MCS-51引腳ALE信號有效時,表示從P0口穩(wěn)定地送出了低8位地址地址。三、讀程序回答1.試求下列程序依次運行后有關單元的內容。已知(R0)=24H,(Cy)=1,(1FH)=59H,(20H)=24H,(24H)=B6H。(6分)MOVA,1FHADDCA,20HCLRAORLA,R0CPLA(A)=20H的尋

16、址方式(A)=R0的尋址方式是(A)=(A)=答案:59H、直接尋址、00H、寄存器間接尋址、B6H、49HSECH:MOVDPTR,#2000HMOVR2,#0FHMOVXA,DPTRMOVB,ASLOP:INCDPTRMOVXA,DPTRCJNEA,B,SLP1SLP1:JNCSLP2MOVB,ASLP2:DJNZR2,SLOPMOVR2,BRET單元中。問:(1)此程序完成的是將從H單元開始的H個數(shù)中的最值找出,放在(2) B寄存器里暫存最值。(3) 若要比較100個數(shù),則哪句程序需要修改?(10分)答案:(1)2000H、10H、小、R2(2)小(3)將第二句MOVR2,#0FH改為M

17、OVR2,#992. ORG6000H;TAB:DB45H,10,88H,'5'DW12H,56H,7800H;ORG8000HMOVDPTR,#6001HCLRAMOVCA,A+DPTRMOVDPTR,#6005HMOVXDPTR,A問:(1)根據(jù)行指令內容,畫出存儲器從6000H6009H中數(shù)據(jù)分布圖。(2) 執(zhí)行上面的程序,完成了什么功能?(3) 最后A的內容為多少?(10分)6000H6001H6009H(2)將從ROM單元地址為6001H的內容傳送到片外數(shù)據(jù)RAM6005H單元中。3)(A)=0AH3.已知某二進制數(shù)(10H)存在內部RAM50H單元中,閱讀下列程序,

18、說明其功能。(6分)MOVR0,#50H;(R0)=MOVA,R0H;(A)=,尋址方式是。CLRCRLCA;(A)=ADDA,R1;尋址方式是INCR0MOVR0,A;R0的地址是答案:50H,10H,寄存器間接尋址,20H,寄存器尋址,51H4. START:MOVR0,#30HMOVR7,#0FHMOVDPTR,#3000HLOOP:MOVA,R0MOVXDPTR,AINCR0INCDPTRDJNZR7,LOOPRET(1)程序完成的什么功能?(2)R7的作用是什么?(3)RET指令完成什么功能?(10分)答案:(1)程序將片內RAM中30H3FH單元的內容傳送到片外RAM地址為3000

19、H300FH中(2) R7是計數(shù)器,初值表示傳送數(shù)據(jù)個數(shù),傳送1個減1,當(R7)=0時,表示傳送完。(3) 返回到主程序的斷點處。5. ORG2000HTAB1:DB10H,22,A'TAB2:DW10H,2100HORG3000HMOVDPTR,#TAB2MOVA,#2MOVCA,A+DPTR問:(1)ROM2000H單元中的內容。(2) 字符'A'所在單元的地址為。(3) 2005H單元中的內容為。(4) 執(zhí)行程序后,DPTR的內容為。(5) A的內容為。(10分)答案:(1)10H(2)2002H(3)21H(4)2003H(5)21H6.若(A)=FFH,(R

20、0)=00H,(00H)=FFH,(CY)=0,位地址(00H)=1,將結果填入橫線。(6分)DECA;(A)=INCR0;此句將地址為_H的單元加1SETB00H;此句完成功能ANLC,00H;(C)=ADDA,R0;尋址方式=_,(A)=答案:FEH,00H,位地址為00H的單元置1。0,寄存器尋址,F(xiàn)EH7. START:MOVA,40HMOVDPTR,#TABMOVCA,A+DPTRMOV40H,ARETTABDB30H,31H,32H,33H,34HDB35H,36H,37H,38H,39H假設40H單元中的數(shù)的范圍從09,問:(1)這段程序完成什么功能?(2)當執(zhí)行程序前40H中的

21、內容為6,問執(zhí)行完這段程序后40H中的內容為。(3)MOVCA,A+DPTR中的尋址方式是。(10分)答案:(1)這段程序完成了通過查表得到40H單元的數(shù)的ASCII碼,并將結果返回40H單元。(2)36H(3)基址+變址的尋址方式8. ADD3:MOVA,R5ADDA,R2MOVR0,AINCR0MOVA,R6ADDCA,R3MOVR0,AINCR0MOVA,R7ADDCA,R4MOVR0,ARET(1)程序完成什么功能?(2)假設執(zhí)行程序前R0=30H,程序執(zhí)行結束后30H,31H,32H中的內容為,其中H中存放高字節(jié)(3)執(zhí)行結束后,CY的內容為。(10分)答案:程序完成了兩個3字節(jié)數(shù)的

22、求與。加數(shù)(1)在R7R6R5中,加數(shù)(2)在R4R3R2 三個字節(jié)中與,32H。 三字節(jié)與最高位的進位位。9.設(A)=5AH,(R1)=30H,SWAPAADDA,#30HADDCA,30HRLCAANLA,30H答案:A5H(30H)=E0H,(CY)=1,根據(jù)程序填空。(6分);(A)=;尋址方式;(A)=,尋址方式;(A)=;(A)=立即數(shù)尋址B5H,直接尋址6BH60H10.ADDIO:MOVR0,30HMOVR7,#9MOVA,R0LOOP:INCR0ADDA,R0DJNZR7,LOOPMOV30H,ARET(1)程序完成的是什么功能?(2)若把MOVR7,#9改成MOVR7,#

23、4,程序功能有何變化?(10分)答案:(1)將片內RAM從30H39H十個單元中的內容相加,與存在30H中。(2)不是10個數(shù)相加,是3034H五個數(shù)相加。11.LOOK:MOV51H,#0MOVR0,#30HMOVR1,#20HLOP:MOVA,R0CPLAJNZLP1INC51HLP1:INCR0DJNZR1,LOPRET(1)R0的作用是什么?(2)程序結束后51H單元中存放的內容是什么?(3)若將JNZLP1這句變成JZLP1,程序完成什么功能?(10分)答案:(1)數(shù)據(jù)單元指針。(2)片內RAM30H50H單元中內容為FFH單元的個數(shù)。(3)將片內RAM30H50H單元中內容為非FF

24、H單元的總個數(shù)送給51H。12. 設內RAM(20H)=11001011B,(24H)=01010111B,求依次執(zhí)行下列指令后的結果。(6分)LOOP:JB00H,LP1;JB26H,LP2;程序跳轉到LP1還是LP2?答Lp1:MOVA,20H;(A)=,尋址方式是CPLA(A)=ADDA,24H(A)=JZLP3;執(zhí)行完此句后,程序跳到LP3還是LP2處?LP2:INC20HLP3:答案:Lp111001011B,直接尋址00110100B10001011BLp213. ORG2000HTAB:DB01,02DW03,04DS03HORG2200HMOVDPTR,#TABMOVA,#02

25、HMOVCA,A+DPTR問:(1)請?zhí)钊氪鎯ζ?000H2008H單元的內容。(2)執(zhí)行完程序后A中的內容為。(3)DPTR是一個字節(jié)的寄存器。(10分)答案:01H02H2000HOOH03HOOH04HOOHOOHOOH16.2) (A)=OOH3) 214.START:MOVDPTR,#2010HMOVR7,#1OHMOVRO,#3OHLOOP:MOVXA,DPTRMOVRO,ADECDPTRINCRODJNZR7,LOOPRET(1)程序完成什么功能?(2) MOVXA,DPTR這句指令是什么尋址方式?(3) DJNZR7,LOOP這句指令的含義?(1O分)答案:(1) 程序完成將片

26、外RAM2O1OH單元一2OO1H單元的內容,依次傳送到片內RAM3OH3FH單元中去。(2) 寄存器間接尋址。(3) 判斷(R7)-1是否為O,若為O,結束循環(huán),不為O繼續(xù)到LOOP那兒循環(huán)。15.若(A)=78H,(RO)=34H,(34H)=DCH,(56H)=ABH,(cy)=1,求分別執(zhí)行下列指令后填空。(6分)ADDCA,RO_;(A)=,尋址方式是ORLA,#23H;(A)=,;尋址方式是MOVA,34H;(A)=SWAPA;(A)=答案:55H,寄存器間接尋址77H,立即尋址DCH,CDH.MOVA,ROCPLAJZLABEL1INCAJZLABEL2LABEL1:INCASJ

27、MPLOOPLABEL2:DECALOOP:RET問:(1)分析上面一段程序,何時轉向LABEL1?何時轉向LABEL2?(2)若(R0)=FFH,執(zhí)行完程序后(A)=Ho(10分)答案:(1)當R0的值為FFH,轉向LABEL1,當R0為00時,轉向LABLE2(2)01H17.START:MOVR0,#40HMOVR7,#09HMOVA,R0LOOP:INCR0MOV30H,R0CJNEA,30H,NEXTNEXT:JNCBIEIMOVA,30HBIEI:DJNZR7,LOOPMOV50H,ARET問:(1)A中暫放o(2)R7寄存器中保存的數(shù)是o最后50H中存放的是o(10分)(1)最大

28、(2) 比較的次數(shù),共有9個數(shù)與A中的數(shù)做比較(3) 片內RAM40H49H中最大的值18.已知外RAM(2040H)=50H,ROM(2090H)=96H,內RAM(20H)=85H,試求下列程序依次運行后有關單元的內容。(6分)MOVDPTR,#2040H;(DPTR)=MOVXA,DPTR;尋址方式是,(A)=MOVA,20H;(A)=ANLA,#38H;(A)=,尋址方式是答案:2040H寄存器間址,50H85H00H立即尋址19. CLRCLOOP1:MOVA,R0ADDCA,R1DAAMOVR0,AINCR0INCR1DJNZR7,LOOP1CLRAMOVACC.0,CMOVR0,

29、ARET問:(1)DAA指令有何用途?(2)若執(zhí)行程序前(R0)=20H,(R1)=30H,(R7)=03H,則程序完成什么功能?程序最后的結果放在哪些單元?10分)答案:(1)DAA是對A中的數(shù)進行十進制數(shù)的調整。(2)將存放在(22H)(21H)(20H)中的BCD碼與(32)(31H)(30H)單元中的BCD碼相加,結果調整為BCD碼后放回(23H)(22H)(21H)(20H)單元中,其中高地址存放高位字節(jié)。20. MOVR0,#20HSLOP:MOVA,R0JZLP1JBACC.7,LP2INC30HLP0:INCR0DJNZ1FH,SLOPENDLP1:INC31HSJMPLP0L

30、P2:INC32HSJMPLP0問:(1)若執(zhí)行前(20H)單元中的內容為F1H,則程序能不能走到LP1處?(2)執(zhí)行前1FH單元中存放的是什么?(3)執(zhí)行后30H,31H,32H單元中各存放的什么數(shù)據(jù)?(10分)(1)不能(2)參加統(tǒng)計的數(shù)的個數(shù)(3)30H中放正數(shù)的個數(shù)31H中放“0”的個數(shù)32H中放負數(shù)的個數(shù)21.已知(30H)=58H,讀程序填空。(6分)CLRCMOVA,30H;尋址方式是_,(A)=RLCARLCA;(C)=ADDA,#36H;尋址方式是_,(A)=JZLOOP2;程序轉至LOOP1還是LOOP2?答Loop1:MOVA,00H直接尋址,58H1立即尋址,96HLO

31、OP122.(30H)=15H,問執(zhí)行完程序后,A,B,SP,32H,33H,34H的內容是多少?(10分)MOVSP,#30HXCHA,30HMOVB,AANLA,#0FHMOV33H,AMOVA,BPUSHASWAPAANLA,#15HMOV34H,APUSHA答案:A)=11H(B)=15H(SP)=32H(32H)=11H(33H)=05H(34H)=11H23.內部RAM30H,31H單元中存放兩個無符號數(shù),讀程序回答問題。(10分)ORG1000HSTART:CLRCMOVA,30HSUBBA,31HJCNEXTMOVA,30HXCHA,31HMOV30H,ANEXT:NOPSJM

32、P$END(1) 程序完成什么功能?(2) 若(30H)=89H,(31H)=F5H,執(zhí)行程序后(30H)=,(31H)=,(Cy)=。答案:(1)比較30H與31H中無符號數(shù)的大小,小數(shù)存于30H,大數(shù)存于31H(2)(30H)=89H,(31H)=F5H,(Cy)=1四、編程題1. 編寫程序,將外部RAM2000H-201FH數(shù)據(jù)塊數(shù)據(jù),傳送到片內RAM40H-5FH的對應單元中,并統(tǒng)計其中數(shù)據(jù)'0'的個數(shù),將結果放入片內60H單元中。答案:START:MOVDPTR,#2000HMOVR0,#40HMOVR1,#1FHMOVR2,#00HLOOP:MOVXA,DPTRMO

33、VR0,AINCDPTRINCR0CJNEA,#00H,LOOP1INCR2LOOP1:DJNZR1,LOOPMOV60H,R2RET2. 已知8位要顯示數(shù)字已存放在首地址為30H的片內RAM中,試將其轉換為共陰顯示字段碼,存入首址為40H的內RAM中,已知TABD為0-9共陰字段碼表首址。ORG1000HTABD:DB3FH,06H,5BH,4FH,66HDB6DH,7DH,07H,7FH,6FH答案:MOVDPTR,#TABDMOVR2,#8MOVR0,#30HMOVR1,#40HLOOP:MOVA,R0MOVCA,A+DPTRMOVR1,AINCDPTRINCR0INCR1DJNZR7,

34、LOOPEND3.試完成程序,求Y值,設m,n存在30H與31H中,Y存在32H中,且m*n積小于256,m/n的商為整數(shù)。Y=m*nVm/n答案:(m<n)(m=n)(m>n)MOVA,30HMOVB,31HCJNEA,B,LOOP1MOV32H,#00HLJMPBBLOOP1:JCLOOP2DIVABMOV32H,ALJMPBBLOOP2:MULABMOV32H,ABB:END4. 求出片外RAM3000H300FH,這16個單元數(shù)據(jù)的平均數(shù),并將平均值放入片外RAM3010H單元中,余數(shù)放入3011H單元中(設16個數(shù)的與小于256)。答案:MOVDPTR,#3000HMOV

35、R0,10HMOVB,#00HLOOP:MOVXA,DPTRADDA,BMOVB,AINCDPTRDJNZR0,LOOPMOVA,BMOVB,#16DIVABMOVDPTR,#3010HMOVXDPTR,AINCDPTRMOVA,BMOVXDPTR,AEND5. 設X由P1口輸入,Y存在外部RAM2000H單元,試按下列要求編制程序(設X2<256)X2;當X<10時Y=2X;當10<X<100時YX/2;當X>100時答案:MOVA,P1CJNEA,#10,LOOP1LOOP1:JNCLOOP2MOVB,AMULABLJMPLOOP5LOOP2:CJNEA,#1

36、01,LOOP3LOOP3:JNCLOOP4MOVB,AADDA,BLJMPLOOP5LOOP4:MOVB,#2DIVA,BLOOP5:MOVDPTR,#2000HMOVDPTR,AEND6.片內RAM區(qū)中,有20個補碼表示的數(shù)存放在首地址為30H的單元中,請編程把其中的正數(shù)送到20H為首址的片外RAM中,負數(shù)不傳送(0不是正數(shù))。答案:MOVR0,#30HMOVR1,#20HMOVR7,#20LOOP:MOVA,R0JZNEXTJBACC.7,NEXTMOVXR1,AINCR1NEXT:INCR0DJNZR7,LOOPEND7. 將61H與60H兩個單元中的ASCII碼轉換為16進制數(shù),并合

37、并為一個字節(jié)存在70H單元中(60H中放的是低位)。答案:MOVA,60HANLA,#0FHMOVB,AMOVA,61HANLA,#0FHSWAPAADDA,BMOV70H,AEND8. 設在內部數(shù)據(jù)存儲器中存放有20個字節(jié)數(shù)據(jù),其起始地址為30H,其中可能有一個字節(jié)的內容為OAH,編寫程序找出數(shù)0AH的存放地址,并送入2FH單元,若0AH不存在,則將29H單元置0。MOVMOVR0,#30R1,#20LOOP:MOVA,R0CJNZA,#0AH,LOOP1AJMPJIESHULOOP1:INCR0DJNZR1,LOOPMOV29H,#00HAJMPLOOP4JIESHU:MOV2FHR0LO

38、OP4:END單片機習題和試題庫讀程序(1)MOVA,#2OHMOVRO,#2OHANLA,#OFHORLA,#8OHXRLA,ROA=_(2).MOVMOVRO,A(20H)=;RO=MOVRO,DPHMOV14H,#22HMOVR1,DPLMOV23H,#56HMOVA,ROXCHA,DPH執(zhí)行以上扌令后A=(3)MOVA,#5OHMOVB,#77HPUSHACCPUSHBPOPACCPOPBDPTR,#2314HDPTR=執(zhí)行完本段扌旨令后(A)=(B)=2設內部RAM中59H單元的內容為50H,寫出當執(zhí)行下列程序段后寄存器A,R0和內部RAM中50H,51H單元的內容為何值?MOVA,

39、59HMOVR0,AMOVA,#00HMOVR0,AMOVA,#25HMOV51H,AMOV52H,#70H3已知(A)=83H,(R0)=17H,(17H)=34H。請寫出執(zhí)行完下列程序段后A的內容。ANLA,#17HORL17H,AXRLA,R0CPLA4試分析下列程序段,當程序執(zhí)行后,位地址OOH,01H中的內容為何值?P1口的8條I/O線為何狀態(tài)?CLRCMOVA,#66HJCLOOP1CPLCSETB01HLOOP1:ORLJBACC.2,LOOP2CLR00HLOOP2:MOVP1,A5.若A=11H,R0=33H,B=55H,(11H)=22H,(22H)=66H,(33H)=4

40、4H,在注釋區(qū)寫出分別執(zhí)行下列指令后果的結果。(1)MOVR1,A;(2)MOVR3,#11H;(3)MOVR0,#22H;(4)MOVA,R0;(5)MOVB,33H;(6)MOV40H,R0;6.若A=78H,R0=34H,(34H)=DCH,(56H)=ABH,Cy=1,求分別執(zhí)行下列指令后(34H)和(56H)中的數(shù)據(jù)。(1)ADDCA,R0;(2)SUBBA,56H;(3)DECR0;(4)INC56H;7.若A=B7H,R0=5EH,(23H)=A1H,Cy=O,將分別執(zhí)行下列指令的結果寫在注釋區(qū)。(1)ANLA,R0;(2)ORLA,#23H;(3)XRL23H,A;(4)RLC

41、A;10.試求下列程序依次運行后有關單元中的內容。MOV20H,#A7H;MOVC,07H;ORLC,/H;CPL00H;SETB03H;MOVA,20H;RLCA;MOV20H,A;11.已知:(60H)=23H,(61H)=61H,以下程序段執(zhí)行后(62H)=CLRCMOVA,9AHSUBBA,60HADDA,61HDAAMOV62H,A12.已知:(A)=02H,(SP)=40H,(41H)=FFH,(42H)=FFH,以下程序段執(zhí)行后(A)=.(SP)=.(41H)=.(42H)=.(PC)=。POPDPHPOPDPLMOVDPTR,3000HRRAMOVB,AMOVCA,ADPTRP

42、USHACCMOVA,BINCAMOVCA,ADPTRPUSHACCRETORG3000HDB10H,80H,30H,50H,30H,50H13. 以下程序段執(zhí)行后(A)=,(30H)=。MOV30H,0A4HMOVA,0D0HMOVR0,30HMOVR2,5EHANLA,R2ORLA,R0SWAPACPLAXRLA,0FEHORL30H,A14. 已知(59H)=50H,以下程序段執(zhí)行后(A)=,(50H)=,(51H)=,(R0)=。MOVA,59HMOVR0,AMOVA,00MOVR0,AMOVA,25HMOV51H,AMOV52H,70H16. 若(R1)=30H,(A)=40H,(30H)=60H,(40H)=08H。試分析執(zhí)行下列程序段后上述各單元內容的變化。MOVA,R1MOVR1,40HMOV40H,AMOVR1,#7FH17. 若(A)=E8H,(R0)=40H,(R1)=20H,(R4)=3AH,(40H)=2CH,(20)=OFH,試寫出下列各指令獨立執(zhí)行后有關寄存器和存儲單元的內容?若該指令影響標志位,試指出CY.AC和OV的值。(1)MOVA,R02) ANL40H,#0FH3) ADDA,R44

溫馨提示

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

評論

0/150

提交評論