微機控制技術第三章、第四章練習題答案_第1頁
微機控制技術第三章、第四章練習題答案_第2頁
微機控制技術第三章、第四章練習題答案_第3頁
微機控制技術第三章、第四章練習題答案_第4頁
微機控制技術第三章、第四章練習題答案_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微機控制技術第三章、第四章練習題答案第三章3-1選擇題1、MOVX A,DPTR指令中源操作數(shù)的尋址方式是(B)(A) 寄存器尋址 (B)寄存器間接尋址 (C)直接尋址 (D)立即尋址2 ORG 0003HLJMP 2000HORG 000BHLJMP 3000H 當CPU響應外部中斷0后,PC的值是(B)(A) 0003H (B)2000H (C)000BH (D)3000H3 執(zhí)行PUSH ACC指令,MCS-51完成的操作是(A)(A) SP+1 SP (ACC) (SP) (B)(ACC) (SP)SP-1 SP(B) (C)SP-1 SP (ACC) (SP) (D)(ACC) (S

2、P)SP+1 SP4、 LCALL指令操作碼地址是2000H,執(zhí)行完相子程序返回指令后,PC=(D)(C) 2000H (B)2001H (C)2002H (D)2003H5、51執(zhí)行完MOV A,#08H后,PSW的一位被置位(D)(A)(A)C (B)F0 (C)OV (D)P6、下面條指令將MCS-51的工作寄存器置成3區(qū)(B)(A)MOV PSW,#13H (B)MOV PSW,#18H(B) SETB PSW.4 CLR PSW.3 (d) SETB PSW.3 CLR PSW.4 7、執(zhí)行MOVX A,DPTR指令時,MCS-51產(chǎn)生的控制信號是(C)(D) /PSEN (B)AL

3、E (C)/RD (D)/WR 8、MOV C,#00H的尋址方式是(A)(A) 位尋址 (B)直接尋址 (C)立即尋址 (D)寄存器尋址9、ORG 0000H AJMP 0040H ORG 0040H MOV SP,#00H當執(zhí)行完左邊的程序后,PC的值是(C)(A) 0040H (B)0041H (C)0042H (D)0043H 10、對程序存儲器的讀操作,只能使用(D)(A) MOV指令 (B)PUSH指令 (C)MOVX指令(D)MOVC指令3-2判斷題。4 MCS-51的相對轉(zhuǎn)移指令最大負跳距是127B。(錯)128B5 當MCS-51上電復位時,堆棧指針SP=00H。(SP=07

4、H)( 錯 )6 調(diào)用子程序指令(如:CALL)及返回指令(如:RET)與堆棧有關但與PC無關。(錯)子序的轉(zhuǎn)返與PC也有關(PC入棧與出棧)7 MOV R1,#80H (錯)5、INC DPTR (對)6、CLR R0 (錯)指令系統(tǒng)中沒有。7、MOV R1,#80H (對)8、ANL R1,#0FH (錯)9、ADDC A,C (錯)10、XOR P1,#31H (對)3-3簡答題1 簡述MCS-51匯編語言指令格式。答:MCS-51匯編語言格式如下:標號:操作碼助記符操作數(shù)1 操作數(shù)2 操作數(shù)3注釋標號是用戶定義的符號,其值代表這條指令的地址。操作碼助記符是指令系統(tǒng)規(guī)定的代表特定指令功能

5、的英文縮寫符。每條指令都有操作碼記符。指令的操作數(shù)最多有3個,也有無操作數(shù)的指令。注釋字段是用戶對程序的說明,便于對程序的閱讀和理解。簡答2 MCS-51指令系統(tǒng)主要有哪幾種尋址方式?試舉例說明。答:MCS-51指令操作數(shù)主要有以下7種尋址方式:尋址方式 舉例立即尋址 MOV A,#16直接尋址 MOV 20H,P1寄存器尋址 MOV A,R0寄存器間接尋址 MOVX A, DPTR變址尋址 MOVC A, A+DPRT相對尋址 SJMP LOOP位尋址 ANL C,70H3對訪問內(nèi)部RAM和外部RAM,各應采用哪些尋址方式?答:對內(nèi)部RAM的尋址方式有直接尋址、寄存器間接尋址和可對位尋址的位

6、尋址。對外部RAM的尋址方式只能用寄存器R0/R1(8位地址)或DPTR(16位地址)間接尋址。4設內(nèi)部RAM(30H)=5AH,(5AH)=40H,(40H)=00H,端口P1=7FH,問執(zhí)行下列指令后,各有關存儲單元(即R0,R1,A,B,P1,30H,40H及5AH單元)的內(nèi)容如何? MOV R0,#30H ;R0=30H MOV A,R0 ;A=5AH MOV R1,A ;R1=5AH MOV B,R1 ;B=5AH MOV R1,P1 ;(5AH)=7FH MOV A,P1 ;A=7FH MOV 40H,#20H ;(40H)=20H MOV 30H,40H ;(30H)=20H解:

7、每一條指令執(zhí)行后的結(jié)果如注釋字段所標。最后結(jié)果為:R0=30H,R1=5AH,A=7FH,B=5AH,P1=7FH,(30H)=20H,(40H)=20H,(5AH)=7FH。5 SJMP(短轉(zhuǎn)移)指令和AJMP(絕對轉(zhuǎn)移)指令的主要區(qū)別。前者提供了以SJMP的下一條指令的起始地址為中心的256字節(jié)范圍的轉(zhuǎn)移(-128+127),后者的轉(zhuǎn)移目標地址必須在與AJMP的下一條指令的第一字節(jié)相同的2KB區(qū)的程序儲存器中。短轉(zhuǎn)移方便了可重定位編碼。SJMP方便了PC可重定位編碼,但轉(zhuǎn)移范圍小。而ASJMP轉(zhuǎn)移范圍大,但存在跳區(qū)的限制,AJMP指令只能位于2KB區(qū)的最后2個字節(jié)處時,才可跳到下一個區(qū)去。

8、因此用AJMP指令來代替SJMP指令是有條件的,也就是目標地址必須與它下面的指令存放地址在同一個2KB區(qū)域內(nèi)。3-4編程題1 編程將片內(nèi)RAM30H單元開始的B的數(shù)據(jù)傳送到片外RAM3000H開始的單元中去。解:STRAT:MOV R0,#30H MOV R7,#0FH MOV DPTR,#3000H LOOP: MOV A,R0 MOVX DPTR,A INC R0 INC DPTR DJNZ R7,LOOP RET2 片內(nèi)RAM30H開始的單元中有10B的二進制數(shù),請編程求它們之和(和256 )解ADDIO:MOV R0,30H MOV R7,#9 MOV A,R0 LOOP: INC R

9、0 ADD A,R0 DJNZ R7,LOOP MOV 30H,A RET3 編一個程序,將累加器中的一個字符從串行接口發(fā)送出去解 SOUT:MOV SCON,#40H ;設置串行接口為工作方式 MOV TMOD,#20H ;定時器T1工作于模式 MOV TL1,#0E8H; ;設置波特率為1200b/s MOV TH1,#0E8H SETB TR1 MOV SBUF,A JNB T1,$ CLB T1 RET4 用查表法編一子程序,將R3中的BCD碼轉(zhuǎn)換成ASCII碼. 解MAIN: MOV A,R3 ;待轉(zhuǎn)換的數(shù)送A MOV DPTR,#TAR ;表首地址送DPTR MOVC A,A+DP

10、TR ;查ASCII碼表 MOV R3,A ;查表結(jié)果送R3 RET TAR DB 30H,31H,32H,33H,34H DB 35H,36H,37H,38H,39H5 片內(nèi)RAM40H開始的單元內(nèi)有10B二進制數(shù),編程找出其中最大值并存于50H單元中 解 START: MOV R0,#40H ;數(shù)據(jù)塊首地址送R0 MOV R7,#09H ;比較次數(shù)送 MOV A,R0 ;取數(shù)送 LOOP: INC R0 MOV 30H,R0 ;取數(shù)送H CJNE A,30H,NEHT ;(A)與(30H)相比 NEXT: JNC BIE1 (A)(30H)轉(zhuǎn)BIR1 MOV A,30H ;(A)(30H)

11、,大數(shù)送ABIE1: DJNZ R7,LOOP ;比較次數(shù)減1,不為0,繼續(xù)比較 MOV 50H,A ;比較結(jié)束,大數(shù)送50H RET 6 編一子程序,從串行接口接受一個字符解: START: MOV TMOD,#20H ;定時器T1工作于模式2 MOV TH1,#0E8H ;設置波特率為1 200b/s MOV TL1,#0E8H SETB TR1 ;啟動T1 MOV SCON,#50H ;串行接口工作于方式1,充許接收 L1: JNB RI,L1 ;等待接收數(shù)據(jù),末接收到數(shù)據(jù),繼續(xù)等待 CLR RI ;接收到數(shù)據(jù),清RI MOV A,SBUF ;接收到數(shù)據(jù)送A RET7 利用調(diào)子程序的方法

12、,進行兩個無符號數(shù)相加。請編主程序及子程序。解 用R0和R1作數(shù)據(jù)指針,R0指向第一個加數(shù),并兼作“和”的指針,指向另一個加數(shù),字節(jié)存放到中作計數(shù)初值。主程序:JAFA: MOV R0,#20H ;指向加數(shù)最低字節(jié)MOV R1,#29H ;指向另一加數(shù)最低字節(jié)MOV R2,#04H ;字節(jié)數(shù)作計數(shù)值ACALL JASUB ;調(diào)用加法子程序AJMP $ RTE 多字節(jié)加法子程序:JASUB: CLR CJASUB1: MOV A,R0 ;取出加數(shù)的一個字節(jié)(無符號數(shù)加數(shù))ADDC A,R1 ;加上另一數(shù)的一個字節(jié)MOV R0,A ;保存和數(shù)INC R0 ;指向加數(shù)的高位INC R1 ;指向另一加

13、數(shù)的高位DJNZ R2,JASUB1 ;全部加完了嗎?RET8 若圖數(shù)據(jù)塊是有符號數(shù),求正數(shù)個數(shù),編程并注釋。解 ORG 0030H START: MOV 20H,#00H ;計正數(shù)個數(shù)計數(shù)器 MOV DPTR,#0000H ; MOVX A,DPTR ;數(shù)據(jù)塊長度10H MOV 10H,A INC DPTR ;DPTR指向第一個數(shù)的地址 TWO: MOVX A,DPTR ;取數(shù)A JB ACC.7,ONE ;是負數(shù)轉(zhuǎn)ONE,準備取下一個數(shù) INC 20H ;是正數(shù),正數(shù)計數(shù)器加ONE: INC DPTR ;地址指針加 DJNZ 10H,TW ;數(shù)據(jù)塊長度減不等于,繼續(xù)尋找 RET9 編制一個

14、循環(huán)閃爍燈的程序。有8個發(fā)光二極管,每次其中某個燈閃爍點亮10次后,轉(zhuǎn)到下一個閃爍10次,循環(huán)不止。畫出電路圖。解 P1.0 8013 P1.7 D0 Q074LS240D7 Q7 5V 本程序的硬件連接如圖所示。當P1.0輸出高電平時,LED燈亮,否則不亮。 其程序如下: MOV A,#01H ;燈亮初值 SHIFT: LCAIL FLASH ;調(diào)閃亮10次子程序 RR A ;右移一位 SJMP SHIFT ;循環(huán) FLASH: MOV R2,#0AH 閃爍10次計數(shù) FLASH1; MOV P1,A ;點亮 LCALL DELAY ;延時 MOV P1,#00H ;熄滅 LCALL DEL

15、AY ;延時 DJNZ R2,FLASH1 ;循環(huán)RET 第四章4-1填空1.MCS-51的Po口作為輸出端口時,每位能驅(qū)動 8 個SL型TTL負載.2.MCS-51有 4個并行IO口,其中P0P3是準雙向口,所以由輸出轉(zhuǎn)輸入時必須先寫入"1" 3.設計8031系統(tǒng)時,_P0、P2 口不能用作一般IO口.4.MCS-51串行接口有4種工作方式,這可在初始化程序中用軟件填寫特殊功能寄存器_SCON _加以選擇.5.當使用慢速外設時,最佳的傳輸方式是 中 斷 .6.當定時器To工作在方式3 時,要占定時器T1的TR1和TF1_兩個控制位.7.MCS-51有 5 個中斷源,有2

16、個中斷優(yōu)先級,優(yōu)先級由軟件填寫特殊功能寄存器 IP 加以選擇.8.用串口擴并口時,串行接口工作方式應選為方式 0 .9.在串行通信中,有數(shù)據(jù)傳送方向單工、半雙工、全雙工三種方式.10.外部中斷 入口地址為_ 0013H 4-2判斷1.MCS-51的5個中斷源優(yōu)先級相同。 ( × ) 2.要進行多機通信,MCS-51串行接口的工作方式應為方式1。 ( × )3.MCS-51上電復位時,SBUF=00H。 ( × )。 4.MCS-51有3個中斷源,優(yōu)先級由軟件填寫特殊功能寄存器IP加以選擇. ( × )5.用串口擴并口時,串行接口工作方式應選為方式1. (

17、 × )6.外部中斷INTO 入口地址為_0013H( × )7.MCS-51外部中斷0的入口地址是0003H。 ( ).8.TMOD中的GATE=1時,表示由兩個信號控制定時器的啟停。 ( )。9.使用8751且 =1時,仍可外擴64KB的程序存儲器。( × )10PC存放的是當前執(zhí)行的指令。( × )11MCS-51的特殊功能寄存器分布在60H80H地址范圍內(nèi)。(× )12.MCS-51有4個并行IO口,其中P0P3是準雙向口,所以由輸出轉(zhuǎn)輸入時必須先寫入"0"( × )4-3選擇1.在中斷服務程序中,至少應有

18、一條( D )()傳送指令()轉(zhuǎn)移指令()加法指法()中斷返回指令2.要使MCS-51能夠響應定時器中斷、串行接口中斷,它的中斷允許寄存器的內(nèi)容應是( B ) ()98H ()84H ()42 ()22H 3.D MCS-51在響應中斷時,下列哪種操作不會發(fā)生( D ).(A)保護現(xiàn)場 (B)保護PC (C)找到中斷入口若懸河 (D)保護PC轉(zhuǎn)入中斷入口4.用MCS-51串行接口擴展并行IO口時,串行接口工作方式應選擇( C )(A)方式0 (B)方式1 (C)方式2 (D)方式35.MCS51有中斷源(A)(A)5個(B)2個(C)3個(D)6個6.MCS-51響應中斷時,下面哪一個條件不是

19、必須的( )(A)當前指令執(zhí)行完畢 (B)中斷是開放的確 (C)沒有同級或高級中斷服務須 (D)必須有RET1指令7使用定時器T1時,有幾種工作模式(D)()種()種()種()種8.計算機在使用中斷方式與外界交換信息時,保護現(xiàn)場的工作方式應該是 ( B )(A)由CPU自動完成 (B)在中斷響應中完成功之路 (C)應由中斷服務程序完成 (D)在主程序中完成 9.下面哪一種傳送方式適用于處理外部事件( C )(A)DMA (B)無條件傳遞進 (C)中斷 (D)條件傳遞1、2、4章的編程1. 8225A控制字地址為300FH,請按:A口方式0輸入,B口方式1輸出,C口高位輸出,C口低位輸入,確定8

20、225A控制字并編初始化程序.解:控制字為 10010101=95H初始化程序:MOV DPTR ,#300FH MOV A,#95H MOVX DPTR ,A2. 編定一個軟件延時1S和1mi的子程序設osc=6Hz,則一個機器周期1。解:(1)1S=2US*5*1000005*100000=250*200*10(2) ORG 1000H TIME:MOV R7,#10 T3: MOV R6,#200 T2: MOV R6,#250 T1: DJNZ R5,T1DJNZ R6,T2DJNZ R7,T3RET (2)1min=60,調(diào)用上面1s子程序60次 ORG 0030H MOV R0,#

21、60LOOP:LCALL TIME DJNZ R0,LOOP RET3. 請編制串行通信的數(shù)據(jù)發(fā)送程序,發(fā)送片內(nèi)RAM50H5FH的16B數(shù)據(jù),串行接口設定為方式2,采用偶校驗方式。設晶振頻率為6MHz。解:查詢方式發(fā)送程序如下 MOV SCON,#8OH M OV PCON,#80H MOV R0,#50H MOV R7,#16HLOOP: MOV A,R0 MOV C,P MOV TB8,C MOV SBUF,A JNB T1,$ CLR T1 INC R0 DJNZ R7,LOOP RET4.應用單片機內(nèi)部定時器T0工作在方式1下,從P1.0輸出周期為2ms的方波脈沖信號,已知單片機的晶

22、振頻率為6MHZ。請(1)計算時間常數(shù)X,應用公式X=2t(f)(2)寫出程序清單解:X=216-t(F/12)=216-1*10-3*6*106/12=OFEOCHORG 3000HSTART:MOV TMOD,#01HMOV TL0,#OCHMOV THO,#OFEHSETB TR0LOOP: JBC TFO,DONESJMP LOOPDONE: MOV TL0,#OCHMOV THO,#OFEHCPL P1.0SJMP LOOP5.應用單片機內(nèi)部定時器T0工作在方式1下,從P1.0輸出周期為1ms的方波脈沖信號,已知單片機的晶振頻率為6MHZ。請(1)計算時間常數(shù),應用公式X=2t(f)

23、(2)寫出程序清單解:解:X=216-t(F/12)=216-0.5*10-3*6*106/12=FF06HORG 3000HSTART:MOV TMOD,#01HMOV TL0,#06HMOV THO,#FFHSETB TR0LOOP: JBC TFO,DONESJMP LOOPDONE: MOV TL0,#06HMOV THO,#FFHCPL P1.0SJMP LOOP6、 用89C51的P1口,監(jiān)測某一按鍵開關,使每按鍵一次,輸出一個正脈沖(脈寬隨意)。編出匯編語言程序。解: ORG 0100H ABC:SETB P1.0SETB P1.7JB PI.7,$JNB P1.7,$CLR P

24、1.0MOV R2,#0 DAY: NOPNOPDJNZ R2,DAYSJMP ABC7、設計一個4位數(shù)碼顯示電路,并用匯編語言編程使"8"從右到左顯示一遍。解: ORG 0100HMOV A,#08HMOV R2,#01HMOV DPTR,#TABMOVC A,A+DPTRMOV P1,ANEXT:MOV A,R2MOV P3,AACALL DAYJB ACC.4,LPDRL AMOV R2,AAJMP NEXTLPD: RETTAB: DB END7 編制一個循環(huán)閃爍的程序。有8個發(fā)光二極管,每次其中某個燈閃爍點亮10次后,轉(zhuǎn)到下一個閃爍10次,循環(huán)不止。畫出電路圖。解: MOV A,#01H SHIFT: LCALL FLASHRRSJMP SHIFT

溫馨提示

  • 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

提交評論