單片機(jī)習(xí)題答案_第1頁(yè)
單片機(jī)習(xí)題答案_第2頁(yè)
單片機(jī)習(xí)題答案_第3頁(yè)
單片機(jī)習(xí)題答案_第4頁(yè)
單片機(jī)習(xí)題答案_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第四章 指令系統(tǒng)習(xí)題,4-36 (1)將R6的高4位和R7的高4位交換,R6、R7的低4位內(nèi)容保持不變。 MOV A,R6 ;(A)=A1A2 ANL A,#0F0H ;(A)=A10 MOV R3,A ;(R3)=A10 MOV A,R7 ;(A)=B1B2 ANL A,#0FH ;(A)=0B2 ORL A,R3 ;(A)=A1B2 MOV R4,A ;(R4)=A1B2 MOV A,R7 ;(A)=B1B2,第四章 指令系統(tǒng)習(xí)題,ANL A,#0F0H ;(A)=B10 MOV R5,A ;(R5)=B10 MOV A,R6 ;(A)=A1A2 ANL A,#0FH ;(A)=0A2 O

2、RL A,R5 ;(A)=B1A2 MOV R6,A ;(R6)=B1A2 MOV A,R4 ;(A)=A1B2 MOV R7,A ;(R7)=A1B2,第四章 指令系統(tǒng)習(xí)題,(2) 兩個(gè)無(wú)符號(hào)數(shù)分別存放在30H、31H,試求出它們的和并將結(jié)果存放在32H中。 MOV A,30H ADD A,31H MOV 32H,A HLT (3) 將30H單元的內(nèi)容循環(huán)左移兩位,送外部RAM 3000H中。 MOV A,30H RL A RL A MOV DPTR,#3000H MOVX DPTR,A,第四章 指令系統(tǒng)習(xí)題,(4) 將程序存儲(chǔ)器1000H的內(nèi)容取出送外部RAM 3000H單元。 CLR A

3、 MOV DPTR,#1000H MOVC A,A+DPTR MOV DPTR,#3000H MOVX DPTR,A,第四章 指令系統(tǒng)習(xí)題,4-37 (SP)=20H,(A)=67H,(1FH)=25H,(20H)=34H PUSH ACC PUSH 1FH ;(23H)=34H PUSH 20H ;(22H)=25H SWAP A;(21H)=67H MOV 1FH,A;(20H)=34H RL A;(1FH)=25H MOV 20H,A;SP=21H POP DPL ;(A)=ECH POP DPH ;DPTR=2534H CLR 01H,第五章 MCS-51匯編語(yǔ)言程序設(shè)計(jì),5-4 設(shè)常

4、數(shù)和數(shù)據(jù)標(biāo)號(hào)的定義為 ORG 2000H DAT1:DB 1,2,3,4,5 DAT2:ABCD NEQU $-DAT2 DAT3:DW 1200H,-2 TAB:DW DAT1,DAT3 (1)畫(huà)出上述數(shù)據(jù)或地址的存儲(chǔ)形式 (2)寫(xiě)出各標(biāo)號(hào)的地址 N=2009H-2005H=04H,第五章 MCS-51匯編語(yǔ)言程序設(shè)計(jì),第五章 MCS-51匯編語(yǔ)言程序設(shè)計(jì),5-5雙字節(jié)加法。被加數(shù)放在片內(nèi)RAM 30H(高字節(jié))和31H(低字節(jié))單元中,加數(shù)放在片內(nèi)RAM 32H(高字節(jié))和33H(低字節(jié))單元中,運(yùn)算結(jié)果存放在30H和31H單元中,進(jìn)位存放在位尋址區(qū)的00H位。 START:PUSH A

5、;將A內(nèi)容進(jìn)棧保護(hù) MOV R0,#31H;地址指針 MOV R1,#33H CLR 00H;00H位清零 MOV A,R0;低位字節(jié)數(shù)相加 ADD A,R1,第五章 MCS-51匯編語(yǔ)言程序設(shè)計(jì),MOV R0,A DEC R0 DEC R1 MOV A,R0;高位字節(jié)數(shù)相加 ADDC A,R1 MOV R0,A MOV 00H,C POP A,第五章 MCS-51匯編語(yǔ)言程序設(shè)計(jì),5-6 編寫(xiě)程序,找出片內(nèi)RAM30H5FH單元中無(wú)符號(hào)數(shù)的最大值,并存放在60H單元中。 MOV R0,#30H MOV B,R0 ;B中存放最大值 L0: INC R0 MOV A,R0 CLR C SUBB

6、A,B ;Xi+1- Xi JC L1 ;Xi+1 Xi,則交換 L1:CJNE R0,#5FH,L0 MOV 60H,B SJMP,第五章 MCS-51匯編語(yǔ)言程序設(shè)計(jì),5-7 從片內(nèi)RAM 30H開(kāi)始存放20個(gè)數(shù),找出其中的最小數(shù)。 MOV R0,#30H ;首地址 MOV R2,#20 ;20個(gè)數(shù) MOV B,R0 ;B中存放最小值 L0: INC R0 MOV A,R0 CLR C SUBB A,B ;Xi+1- Xi JNC L1 ;Xi+1 Xi MOV B,R0 ;Xi+1 Xi,則交換 L1:DJNZ R2,L0 SJMP $,第五章 MCS-51匯編語(yǔ)言程序設(shè)計(jì),5-8 編寫(xiě)

7、程序,查找片內(nèi)RAM 31H50H單元中是否有常數(shù)41H,若有則將51H單元置-1;若沒(méi)有,則將51H單元清0。 MOV R0,#30H ;首地址 L0:INC R0 CJNE R0,#41H,NEQ EQ:MOV 51H,#0FFH ;51H單元置-1SJMP ED1 NEQ:CJNE R0,#51H,L0 MOV 51H,#00H ED1:HLT,第五章 MCS-51匯編語(yǔ)言程序設(shè)計(jì),5-9 編寫(xiě)程序,將片內(nèi)RAM 40H6FH單元中的無(wú)符號(hào)數(shù)按照從小到大的次序排列,結(jié)果仍放在原存儲(chǔ)空間。 MOV R2,#2FH ;個(gè)數(shù) LP1:MOV A,R2 MOV R3,A MOV R0,#40H

8、;地址指針指向首地址 CLR 00H ;位地址 位操作 LP2:MOV A,R0 MOV B,A INC R0 CLR C MOV A,R0,第五章 MCS-51匯編語(yǔ)言程序設(shè)計(jì),SUBB A,B ;Xi+1- Xi JNC LESS ;CY=0則轉(zhuǎn)移到LESS MOV A,B ;CY=1 Xi+1 Xi JNB 00H,STOP ;(00H)=0則轉(zhuǎn)移 DJNZ R2,LP1 STOP:RET,第五章 MCS-51匯編語(yǔ)言程序設(shè)計(jì),5-10 編寫(xiě)程序,統(tǒng)計(jì)片內(nèi)RAM20H5FH中出現(xiàn)55H的次數(shù),并將統(tǒng)計(jì)結(jié)果送入60H單元。 MOV R0,#20H ;地址指針指向首地址 MOV 60H,00

9、H ;清零 L0:MOV A,R0 ;取數(shù) CJNE A,#55H,L1 ;(A)55H,則轉(zhuǎn)到L1 INC 60H ;(A)=55H, L1:INC R0 ;取下一個(gè)數(shù) CJNE R0,#60H,L0 ;是否到末地址? HLT,第五章 MCS-51匯編語(yǔ)言程序設(shè)計(jì),5-11 編程將片內(nèi)RAM30H7FH單元清零。 方法1:控制循環(huán)體的執(zhí)行次數(shù) BE1:MOV R0,#30H MOV R7,#50H LP1:MOV R0,#00H INC R0 DJNZ R7,LP1 RET 方法2:判斷循環(huán)體的結(jié)束條件 BE2:MOV R0,#2FH LP2:INC R0 MOV R0,#00H CJNE

10、R0,#7FH,LP2 RET,第五章 MCS-51匯編語(yǔ)言程序設(shè)計(jì),5-12編程序,將片外RAM3000H30FFH單元全部清零。 MOV DPTR,#3000H MOV R0,#00H L1: MOV A,#00H MOVX DPTR,A INC DPTR DJNZ R0,L1 SJMP $,第五章 MCS-51匯編語(yǔ)言程序設(shè)計(jì),5-13 從片內(nèi)RAM DATA1起,存放20H個(gè)數(shù)據(jù),編寫(xiě)程序,將這20H個(gè)數(shù)據(jù)逐一移到片外RAM DATA2單元開(kāi)始的存儲(chǔ)空間。 MOV R0,#DATA1 ;地址指針指向首地址 MOV R7,#20H ;循環(huán)次數(shù) MOV DPTR,#DATA2 L1: MO

11、V A,R0 MOVX DPTR,A INC DPTR INC R0 DJNZ R7,L1 SJMP $,第五章 MCS-51匯編語(yǔ)言程序設(shè)計(jì),5-14 將片外RAM 8000H開(kāi)始的20個(gè)字節(jié)數(shù)據(jù)傳送到片外RAM 8100H開(kāi)始的地址單元中。 MOV R0,#00H MOV R1,#00H MOV R2,#20H L1: MOV P2,#80H ;地址指針指向8000H MOVX A,R0 ;輸入數(shù)據(jù) MOV P2,#81H ;地址指針指向8100H MOVX R1,A ;輸出數(shù)據(jù) INC R0 INC R1 DJNZ R2,L1 HLT,第五章 MCS-51匯編語(yǔ)言程序設(shè)計(jì),5-15 編程

12、統(tǒng)計(jì)累加器A中“1”的個(gè)數(shù)。 MOV R2,#07H ;循環(huán)次數(shù) MOV R3,#00H ;存放“1”的個(gè)數(shù) LP1:RLC A JNC LP2 ;C=0 INC R3;C=1 LP2:DJNZ R2,LP1 HLT,第五章 MCS-51匯編語(yǔ)言程序設(shè)計(jì),5-16 從片內(nèi)30H開(kāi)始,存放50個(gè)數(shù)據(jù)。編寫(xiě)程序,將其中正數(shù)、負(fù)數(shù)分別送入片外 RAM 5000H和5500H開(kāi)始的單元,分別記下正數(shù)和負(fù)數(shù)的個(gè)數(shù)并送入片內(nèi)RAM70H和71H單元。 MOV R0,#30H ;片內(nèi)RAM首地址 MOV R1,#00H ;清零 MOV R2,#50 ;數(shù)據(jù)的個(gè)數(shù) MOV R3,#00H ;R3存放正數(shù)個(gè)數(shù)清

13、零 MOV R4,#00H ;R4存放負(fù)數(shù)個(gè)數(shù)清零 T1:MOV A,R0 ;取數(shù) INC R0 ;指針指向下一個(gè)單元 CLR C SUBB A,#00H JC T2 ;有借位,Xi0,第五章 MCS-51匯編語(yǔ)言程序設(shè)計(jì),MOV P2,#50H ;片外正數(shù)首地址 MOV R1,R3 ;5000H DEC R1 MOVX R1,A ;輸出數(shù)據(jù) JMP T0 ;比較一個(gè)數(shù)結(jié)束 T2:INC R4 ;Xi0 MOV R1,R4 DEC R1 ;片外負(fù)數(shù)首地址 MOV P2,#55H ;5500H MOVX R1,A ;輸出數(shù)據(jù) T0:DJNZ R2,T1 MOV 70H,R3 ;正數(shù)的個(gè)數(shù) MOV

14、 71H,R4 ;負(fù)數(shù)的個(gè)數(shù) HLT,第五章 MCS-51匯編語(yǔ)言程序設(shè)計(jì),5-19 編寫(xiě)程序,將30H34H單元中壓縮的BCD碼轉(zhuǎn)換為ASCII碼,并將結(jié)果存放在片內(nèi)RAM60H69H單元中。 MOV R0,#30H MOV R1,#60H T1:MOV A,R0 MOV B,A INC R0 T2:ANL A,#0FH ADD A,#30H MOV R1,A INC R1 MOV A,B,第五章 MCS-51匯編語(yǔ)言程序設(shè)計(jì),SWAP A ANL A,#0FH ADD A,#30H MOV R1,A INC R1 CJNE R0,#35H,T1 HLT,第五章 MCS-51匯編語(yǔ)言程序設(shè)計(jì)

15、,5-20 將片內(nèi)RAM 30H單元的內(nèi)容轉(zhuǎn)換成三位BCD碼,并將結(jié)果存入片外RAM 1000H開(kāi)始的單元。 解:將BCD碼先放入31H(百位)、32H(十位)、 33H(個(gè)位)單元中。 方法一:先得到百位 BD1:MOV A,30H MOV B,#100 DIV AB MOV 31H,A MOV A,B,第五章 MCS-51匯編語(yǔ)言程序設(shè)計(jì),MOV B,#10 DIV AB MOV 32H,A MOV 33H,B 方法二:先得到個(gè)位 BD2:MOV A,30H MOV B,#10 DIV AB MOV 33H,B MOV B,#10 DIV AB,第五章 MCS-51匯編語(yǔ)言程序設(shè)計(jì),MOV

16、 32H,B MOV 31H,A 將結(jié)果存入片外RAM 1000H開(kāi)始的單元 MOV R0,#30H MOV DPTR,#1000H LP:INC R0 MOV A,R0 MOVX DPTR,A INC DPTR CJNE R0,#33H,LP RET,第七章 定時(shí)器/計(jì)數(shù)器,7-14 設(shè)MCS-51單片機(jī)晶振頻率為12MHz,使用定時(shí)器1的工作方式1,在P1.0端輸出周期為100ms的方波,使用中斷方式設(shè)計(jì)程序,寫(xiě)出相應(yīng)的是初始化程序和中斷服務(wù)程序。 分析:晶振頻率fosc=12MHz,計(jì)數(shù)周期=1s 周期100ms的方波,中斷周期T1=100ms/2=50ms 初值N=65536-T112

17、MHz/12=15536=3CB0H ORG 0000H AJMP MAIN ORG 001BH ;T1的中斷入口地址 AJMP T1_INT ;T1的中斷服務(wù)程序,第七章 定時(shí)器/計(jì)數(shù)器,ORG 0100H MAIN:MOV SP,#60H ;設(shè)置堆棧 MOV TMOD,#10H ;送模式字 MOV TH1,#3CH ;初值的高8位 MOV TL1,#0B0H ;初值的低8位 SETB ET1 ;ET1=1允許T1中斷 SETB EA ;開(kāi)中斷,中斷總允許 SETB TR1 ;TR1=1 啟動(dòng)T1工作 HERE:SJMP HERE ;等待 T1_INT: MOV TH1;#3CH ;中斷服務(wù)

18、程序 MOV TL1,#0B0H CPL P1.0 ;P1.0取反形成方波 RETI END,第七章 定時(shí)器/計(jì)數(shù)器,7-15 對(duì)上題,在P1.0端輸出周期為100ms方波的同時(shí),還要在P1.1端輸出周期為10s方波,寫(xiě)出相應(yīng)的初始化程序和中斷服務(wù)程序。 分析:晶振頻率fosc=12MHz,計(jì)數(shù)周期=1s 周期100ms方波,中斷周期T1=100ms/2=50ms 采用軟件延時(shí)方法,在P1.1端輸出周期為10s的方波,延時(shí)次數(shù):5s/50ms = 100 ORG 0000H AJMP MAIN ORG 001BH ;T1的中斷入口地址 AJMP T1_INT ;T1的中斷服務(wù)程序,第七章 定時(shí)器/計(jì)數(shù)器,ORG 0100H MAIN:MOV SP,#60H ;設(shè)置堆棧 MOV TMOD,#10H ;送模式字 MOV TH1,#3CH ;送初值的高8位 MOV TL1,#0B0H ;送初值的低8位 MOV R2,#100 SETB ET1 ;ET1=1允許T1中斷 SETB EA ;開(kāi)中斷,中斷總允許 SETB TR1 ;TR1=1 啟動(dòng)T1工作 HERE:SJMP HERE ;等待COUNT T1_INT:MO

溫馨提示

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

評(píng)論

0/150

提交評(píng)論