單片機(jī)原理及其接口技術(shù)王敏課后作業(yè)答案_第1頁(yè)
單片機(jī)原理及其接口技術(shù)王敏課后作業(yè)答案_第2頁(yè)
單片機(jī)原理及其接口技術(shù)王敏課后作業(yè)答案_第3頁(yè)
單片機(jī)原理及其接口技術(shù)王敏課后作業(yè)答案_第4頁(yè)
單片機(jī)原理及其接口技術(shù)王敏課后作業(yè)答案_第5頁(yè)
已閱讀5頁(yè),還剩8頁(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)介

實(shí)用文檔標(biāo)準(zhǔn)化管理部編碼-[99968T-6889628-J68568-1689N]標(biāo)準(zhǔn)化管理部編碼-[99968T-6889628-J68568-1689N]單片機(jī)原理及其接口技術(shù)王敏課后作業(yè)答案第二章作業(yè)(P40)2-4MCS-51單片機(jī)中執(zhí)行程序的地址放在哪由幾個(gè)位組成最大尋址范圍是多少答:放在程序計(jì)數(shù)器PC中,16位,64KB。2-5在程序存儲(chǔ)器中,0000H、0003H、000BH、0013H、001BH、0023H這6個(gè)單元有什么特定的含義答:0000H復(fù)位后,PC=0000H,開始執(zhí)行程序的地址0003H外部中斷0(INT0)入口地址000BH定時(shí)器0中斷(TF0)入口地址0013H外部中斷1(INT1)入口地址001BH定時(shí)器1中斷(TF1)入口地址0023H串行口中斷TI/RI入口地址2-10開機(jī)復(fù)位以后,CPU使用哪一組工作寄存器它們的地址是什么如何改變當(dāng)前工作寄存器答:使用第0組工作寄存器,00H-07H,通過(guò)修改PSW中的RS1和RS0兩位來(lái)改變當(dāng)前的工作寄存器。第三章作業(yè)(P75)3-7指出指令中的50H或66H個(gè)代表什么解:①M(fèi)OVA,#50H立即數(shù)MOVA,50H直接地址MOV50H,#20H直接地址MOVC,50H位地址MOV50H,20H直接地址②MOV@R0,#66H立即數(shù)MOVR6,#66H立即數(shù)MOV66H,#45H直接地址MOV66H,C位地址MOV66H,R1直接地址3-9寫出能完成下列數(shù)據(jù)傳送的指令:解:①R1中內(nèi)容傳送到R0;MOVA,R1MOVR0,A②內(nèi)部RAM20H單元中的內(nèi)容送到30H單元;MOV30H,20H③外部RAM20H單元中的內(nèi)容送到內(nèi)部RAM20H單元;MOVR0,#20HMOVXA,@R0MOV20H,A④外部RAM2000H單元中的內(nèi)容送到內(nèi)部RAM20H單元;MOVDPTR,#2000HMOVXA,@DPTRMOV20H,A⑤外部ROM2000H單元中的內(nèi)容送到內(nèi)部RAM20H單元;MOVDPTR,#2000HMOVA,#00HMOVCA,@A+DPTRMOV20H,A⑥外部2000H單元中的內(nèi)容送到外部RAM3000H單元;MOVDPTR,#2000HMOVXA,@DPTRMOVDPTR,#3000HMOVX@DPTR,A3-11已知:(20H)=X;(21H)=Y;(22H)=Z,請(qǐng)用圖示說(shuō)明下列程序執(zhí)行后堆棧的內(nèi)容是多少①M(fèi)OVSP,#70H②MOVSP,#60HPUSH20HPUSH22HPUSH21HPUSH21HPUSH22HPUSH20H解:(73H)=Z;(72H)=Y;(71H)=X;(63H)=X;(62H)=Y;(61H)=Z;3-20試編出能完成如下操作的程序:解:①使20H單元中數(shù)的高兩位變“0”,其余位不變;ANL20H,#3FH②使20H單元中數(shù)的高兩位變“1”,其余位不變;0RL20H,#0C0H③使20H單元中數(shù)的高兩位變反,其余位不變;XRL20H,#0C0H④使20H單元中數(shù)的高四位變“1”,低四位變“0”;MOV20H,#0F0H⑤使20H單元中數(shù)的所有位變反。XRL20H,#0FFH3-27已知:外部RAM2000H為始址的存儲(chǔ)區(qū)有20個(gè)帶符號(hào)補(bǔ)碼數(shù),請(qǐng)編一程序把正數(shù)和正零取出來(lái)放到內(nèi)部RAM20H為始址的存儲(chǔ)區(qū)(負(fù)數(shù)和負(fù)零不作處理)。解:ORG0000HAJMPMAINORG0100HMAIN:MOVR0,#14HMOVR1,#20HMOVDPTR,#2000HROT:MOVXA,@DPTRJB,NEXTMOV@R1,AINCR1NEXT:INCDPTRDJNZR0,ROTSJMP$END第四章作業(yè)(P104)4-7已知RAM的BLOCK單元,請(qǐng)編寫其中可以統(tǒng)計(jì)正負(fù)數(shù)個(gè)數(shù)分別存入NUM和NUM+1單元的程序。解:ORG0100HLENDATA20HNUMDATA21HBLOCKDATA23HMAIN:MOVNUM,#00HMOVNUM+1,#00HMOVR0,#BLOCKLOOP:MOVA,@R0JNB,POSIINCNUM+1SJMPNEXTPOSI:INCNUMNEXT:INCR0DJNZLEN,LOOPSJMP$END4-9外部RAM從2000H-2100H單元有一數(shù)據(jù)塊,請(qǐng)編出將它們傳送到外部RAM3000H-3100H區(qū)域的程序。解:采用當(dāng)型循環(huán),判斷程序結(jié)束條件ORG1000HMOVDPTR,#2000HNEXT:MOVXA,@DPTRORLDPH,#10H;將DPH中的20H變成30HMOVX@DPTR,AANLDPH,#0EFH;將DPH中的30H變成20HINCDPTRMOVA,DPHCJNEA,#21H,NEXTMOVXA,@DPTR;將2100H單元的數(shù)據(jù)送AMOVDPH,#31HMOVX@DPTR,A;將A的數(shù)據(jù)送3100H單元SJMP$

END

4-11將內(nèi)部RAM的AAA單元中8位無(wú)符號(hào)數(shù)轉(zhuǎn)換成BCD碼表示的十進(jìn)制數(shù)。(要求用連續(xù)除10的方法實(shí)現(xiàn))解:ORG0100HAAADATA20HBAIDATA21HSHIDATA22HGEDATA23HMOVA,AAAMOVB,#0AHDIVABMOVGE,BMOVB,#0AHDIVABMOVSHI,BMOVBAI,ASJMP$END4-15請(qǐng)編寫能從內(nèi)部RAM的BLOCK為起始地址的20個(gè)無(wú)符號(hào)數(shù)找出最小值,并把它送到MIN單元的程序。解:ORG0100HMINDATA20HBLOCKDATA21HMAIN:MOVR0,#BLOCKMOVR2,#13H

MOVA,@R0

LOOP:INCR0

MOVB,@R0

CJNEA,B,NEXT

NEXT:JCNEXT1

MOVA,@R0

NEXT1:DJNZR2,LOOP

MOVMIN,A

SJMP$

END第五章作業(yè)(P155)6-4編程,利用定時(shí)器T0(工作在方式1)產(chǎn)生一個(gè)50Hz的方波,由輸出,晶振頻率為12MHz。解:按照題意,定時(shí)器T0需要工作在方式1定時(shí)10ms,則TMOD控制字為01H;已知fosc=12MHz,則機(jī)器周期為1μs。定時(shí)初值=216–10ms/1μs=55536=D8F0H,即TH0=0D8H,TL0=0F0H。則相應(yīng)的程序如下:ORG0000HAJMPSTARTORG2000HSTART:MOVTMOD,#01H;寫入工作方式字MOVTH0,#0D8H;寫入計(jì)數(shù)初值MOVTL0,#0F0HSETBTR0;啟動(dòng)T0LOOP:JBCTF0,PE;TF0=1溢出轉(zhuǎn)移PE,并清除TF0AJMPLOOP;TF0為0轉(zhuǎn)LOOP等待PE:MOVTH0,#0D8H;重裝初值MOVTL0,#0F0HCPL;取反AJMPLOOP;轉(zhuǎn)LOOP等定時(shí)時(shí)間到END6-5在8051單片機(jī)中,已知晶振頻率為12MHz,試編程使和分別輸出周期為2ms和500ms的方波。設(shè)晶振頻率為6MHz,試用T0作為外部計(jì)數(shù)器,編程實(shí)現(xiàn)每當(dāng)計(jì)到1000個(gè)脈沖,使T1開始2ms定時(shí),定時(shí)時(shí)間到后,T0又開始計(jì)數(shù),這樣反復(fù)循環(huán)下去。解:1)按照題意,定時(shí)器T0需要工作在方式1定時(shí)1ms,則TMOD控制字為01H;已知fosc=12MHz,則機(jī)器周期為1μs。定時(shí)初值=216–1ms/1μs=64536=FC18H,即TH0=0FCH,TL0=18H。則相應(yīng)的程序如下:主程序:ORG1000HSTART:MOVTMOD,#01HMOVTH0,#0FCHMOVTL0,#18HMOVIE,#82H;開T0中斷SETBTR0;啟動(dòng)T0MOVR0,#0FAH;軟件計(jì)數(shù)器賦初值LOOP:SJMP$;等待中斷中斷程序:ORG000BHAJMPBRT0ORG0080HBRT0:CPLDJNZR0,NEXT;250ms未到,轉(zhuǎn)NEXTCPL;250ms到,改變電平MOVR0,#0FAHNEXT:MOVTH0,#0FCHMOVTL0,#18HRETIEND2)按照題意,定時(shí)器T0需要工作在方式1計(jì)數(shù)方式,定時(shí)器T1需要工作在方式1定時(shí)方式,則TMOD控制字為15H;T0計(jì)數(shù)初值為216–1000=64536=FC18H,即TH0=0FCH,TL0=18H;已知fosc=6MHz,則機(jī)器周期為2μs。T1定時(shí)初值=216–2ms/2μs=64536=FC18H,即TH1=0FCH,TL1=18H。則相應(yīng)的程序如下:ORG2000HSTART:MOVTMOD,#15H;寫入工作方式字MOVTH0,#0FCH;寫入計(jì)數(shù)初值MOVTL0,#18HMOVTH1,#0FCHMOVTL1,#18HSETBTR0;啟動(dòng)T0LOOP:JBCTF0,PE;TF0=1溢出轉(zhuǎn)移PE,并清除TF0AJMPLOOP;TF0為0轉(zhuǎn)LOOP等待PE:SETBTR1;啟動(dòng)T1定時(shí),關(guān)T0計(jì)數(shù)CLRTR0LOOP1:JBCTF1,PE1;TF1=1溢出轉(zhuǎn)移PE1,并清除TF1AJMPLOOP1;TF1為0轉(zhuǎn)LOOP1等待PE1:MOVTH0,#0FCH;重裝初值MOVTL0,#18HMOVTH1,#0FCHMOVTL1,#18HSETBTR0;啟動(dòng)T0計(jì)數(shù),關(guān)T1定時(shí)CLRTR1AJMPLOOPEND6-6已知單片機(jī)系統(tǒng)時(shí)鐘頻率為6MHz,若要求定時(shí)值分別為、1ms和10ms,定時(shí)器T0工作在方式0、方式1和方式2時(shí),定時(shí)器對(duì)應(yīng)的初值各為多少解:已知fosc=6MHz,則機(jī)器周期為2μs。方式0的初值分別為:8142(1FCEH),即TH0=0FEH,TL0=0EH;7692(1E0CH),即TH0=0F0H,TL0=0CH;3192(0C78H),即TH0=63H,TL0=18H。方式1的初值分別為:65486(FFCEH);65036(FE0CH);60536(EC78H)。方式2定時(shí)的初值為206(CEH),不能直接定時(shí)1ms和10ms。第六章作業(yè)(P210)8-2什么是半雙工、全雙工方式MCS-51單片機(jī)屬于哪種傳送方式解:1)半雙工方式——通信雙方只有一條雙向傳輸線,允許數(shù)據(jù)雙向傳送,但每個(gè)時(shí)刻上只能有一方發(fā)送,另一方接收,這是一種能夠切換傳送方向的單工方式;2)全雙工方式——通信雙方有兩條傳輸線,允許數(shù)據(jù)同時(shí)雙向傳送,其通信設(shè)備應(yīng)具有完全獨(dú)立的收發(fā)功能。單片機(jī)屬于全雙工傳送方式。8-6設(shè)串行口通信波特率為2400bps,異步幀信號(hào)由8位數(shù)據(jù),無(wú)校驗(yàn)位和一個(gè)停止位組成,請(qǐng)問(wèn)傳輸1024個(gè)字節(jié)數(shù)據(jù),需要多少時(shí)間解:每一個(gè)字符規(guī)定包含10個(gè)位(一個(gè)起始位、8個(gè)數(shù)據(jù)位和1個(gè)停止位),則每秒鐘可以傳送240個(gè)字節(jié)數(shù)據(jù),傳輸1024個(gè)字節(jié)數(shù)據(jù)共需要秒8-7請(qǐng)用中斷法編出串行口方式1下的發(fā)送程序,設(shè)單片機(jī)主頻為6MHz,波特率為1200bps,發(fā)送數(shù)據(jù)緩沖區(qū)在外部RAM,始址為Tblock,數(shù)據(jù)塊長(zhǎng)度為30,采用偶校驗(yàn),放在發(fā)送數(shù)據(jù)第8位(數(shù)據(jù)塊長(zhǎng)度不發(fā)送)。解:串行口工作在方式1,定時(shí)器T1工作在方式2,作為波特率發(fā)生器。定時(shí)常數(shù):X=256―(fosc*2SMOD)/(384*波特率)取SMOD=1,則X==230=E6H。(若取SMOD=0,則X=F3H)采用中斷方式編程,單片機(jī)發(fā)送程序如下:主程序:ORG2000HTblockDATA2000HMOVTMOD,#20H;定時(shí)器(波特率)初始化

MOVTL1,#0E6H

MOVTH1,#0E6H

CLRET1;關(guān)定時(shí)器T1中斷

SETBTR1;啟動(dòng)T1MOVSCON,#40H;串行口初始化(方式1)

MOVPCON,#80H;SMOD=1

MOVDPTR,#TblockMOVR7,#1EHTRS:MOVXA,@DPTRMOVC,MOV,CMOVSBUF,A;啟動(dòng)發(fā)送DECR7INCDPTRSETBEA;允許串行口中斷WAIT:SETBESSJMPWAIT;等待串行口中斷中斷服務(wù)程序:ORG0023HLJMPSBVORG0100HSBV:CLRESCLRTIMOVXA,@DPTRMOVC,MOV,CMOVSBUF,A;啟動(dòng)發(fā)送DJNZR7,NEXTSJMP$NEXT:INCDPTRRETI;中斷返回END第七章作業(yè)(補(bǔ)充題)7-1如下圖所示8051的~接有4個(gè)發(fā)光二極管,~接有4個(gè)開關(guān),最下方按鍵用于產(chǎn)生中斷請(qǐng)求信號(hào)。每中斷一次,采集一次~的開關(guān)狀態(tài)反映到~的發(fā)光二極管上。解:程序清單如下:ORG0000H;主程序SJMPMAINORG0003HAJMPINT0 ;轉(zhuǎn)入服務(wù)程序ORG0030HMAIN:SETBIT0 ;設(shè)INT0為邊沿觸發(fā)SETBEX0 ;允許INT0中斷SETBEA ;開放總允許SJMP$INT0:ORLP1,#0FH;中斷服務(wù)程序:MOVA,P1;從P1口輸入開關(guān)狀態(tài)SWAPA ;交換高、低4位XRLA,#0F0H;低4位不變,高4位取反MOVP1,A;輸出RETIEND7-2單片機(jī)P1端口并行連接兩只共陰極數(shù)碼管顯示器,利用掃描方式循環(huán)顯示兩位數(shù)00、01、02、……98、99。1)寫出共陰極接法下數(shù)碼管顯示0~9的字型碼;2)編寫程序?qū)崿F(xiàn)上述功能。解:1)3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH2)程序清單如下:ORG0000HAJMPMAINORG000BHAJMPTIMERORG0030HTABDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHMAIN:MOVR0,#00HMOVDPTR,#30HMOVTMOD,#01HMOVTH0,#0D8HMOVTL0,#0F0HSETBET0SETBEASETBTR0START:INCR0CJNER0,#100,NEXTMOVR0,#00HNEXT:MOVA,R0MOVB,10DIVABMOVR1,A ;十位緩存MOVR2,B ;個(gè)位緩存MOVR4,#200DELAY:MOVR5,#200DJNZR5,$DJNZR4,DELAYAJMPSTARTTIMER: CLRTR0MOVA,R1MOVCA,@A+DPTRMOVP1,A SETB MOVR6,#200DJNZR6,$ CLR MOVA,R2 MOVCA,@A+DPTRMOVP1,A SETB MOVR6,#200DJNZR6,$ CLR MOVTH0,#0D8HMOVTL0,#0F0H SETBTR0RETIEND第八章作業(yè)(補(bǔ)充題)8-1根據(jù)圖9-3電路,請(qǐng)編寫如下圖所示梯形波,要求梯形波的下底由8031內(nèi)部定時(shí)器實(shí)現(xiàn)。(設(shè)fosc=12MHz)解:ORG0000HAJMPSTARTORG0100HSTART:MOVTMOD,#10H ;寫入工作方式控制字MOV TH1,#3CH ;寫入計(jì)數(shù)初值MOV TL1,#B0H MOVR0,#0FEH CLRADOWN:MOVX@R0,A;線性下降段 INCA JNZDOWNSETB TR1 ;啟動(dòng)T1工作WAIT:JBCTF1,NEXT;等待50ms時(shí)間到SJMPWAITNEXT:CLRTR1;關(guān)閉T1MOV TH1,#3CH ;重裝計(jì)數(shù)初值MOV TL1,#B0H MOVA,#0FEHUP:MOVX@R0,A;線性上升段 DECA JNZUP SJMPDOWN END8-2用查詢和中斷方式實(shí)現(xiàn)AD轉(zhuǎn)換編程,要求對(duì)通道5連續(xù)采集3次取中值作為本次采樣值,并存于內(nèi)部RAM30H單元。INT/.INT/.8031EAALEPP~WR地址鎖存器譯碼器EOCADDAALEOESTARTCLOCKD0ADC08091RDADDCADDBD7PPPF0H..IN0IN1IN7IN6IN5IN4IN3IN2++~CKDQQ中斷方法:;主程序……ORG0100HSTART:MOVR0,#0F0HMOVR1,#30H MOVR2,#05H;IN5通道號(hào)MOVR3,#03H;循環(huán)次數(shù)SETBEA SETBEX1;開外中斷0SETBIT1;中斷請(qǐng)求信號(hào)為下降沿觸發(fā)MOVA,R2;選通道IN5MOVX@R0,A;啟動(dòng)A/D轉(zhuǎn)換LOOP:SJMPLOOP;等待中斷;中斷服務(wù)程序……ORG1000HADINT0:MOVXA,@R0;讀取A/D轉(zhuǎn)換數(shù)據(jù)MOV@R1,A;存儲(chǔ)數(shù)據(jù)INCR1;數(shù)據(jù)指針加1DJNZR3,ROTACALLADSHUJU;調(diào)用數(shù)據(jù)處理子程序CLREX0JMPEXITROT:MOVA,R2MOVX@DPTR,A;啟動(dòng)A/D轉(zhuǎn)換EXIT:RETI;數(shù)據(jù)處理子程序ADSHUJU:MOVA,30HCJNEA,31H,NEXT1NEXT1:JCNEXT2XCHA,31H;≥交換NEXT2:CJNEA,32H,NEXT3NEXT3:JCNEXT4XCHA,32H;≥交換NEXT4:MOV30H,A;(30H)=MinMOVA,31HCJNEA,32H,NEX

溫馨提示

  • 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)論