單片機(jī)原理李全利第二課后題標(biāo)準(zhǔn)_第1頁
單片機(jī)原理李全利第二課后題標(biāo)準(zhǔn)_第2頁
單片機(jī)原理李全利第二課后題標(biāo)準(zhǔn)_第3頁
單片機(jī)原理李全利第二課后題標(biāo)準(zhǔn)_第4頁
單片機(jī)原理李全利第二課后題標(biāo)準(zhǔn)_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第二章2.80C51單片機(jī)的儲藏器的組織采用何種結(jié)構(gòu)儲藏器地址空間怎樣劃分各地址空間的地址范圍和容量怎樣在使用上有何特點(diǎn)答:采用哈佛結(jié)構(gòu),在物理上設(shè)計成程序儲藏器和數(shù)據(jù)儲藏器兩個獨(dú)立的空間80C51;基本型單片機(jī)片內(nèi)程序儲藏器為4KB,地址范圍是0000H-0FFFH,用于存放程序或常數(shù);片內(nèi)數(shù)據(jù)儲藏器為128字節(jié)RAM,地址范圍是00H-7FH,用于存放運(yùn)算的中間結(jié)果、暫存數(shù)據(jù)和數(shù)據(jù)緩沖;別的在80H-FFH還配有21個SFR。第三章7.為什么說布爾辦理功能是80C51單片機(jī)的重要特點(diǎn)答:單片機(jī)指令系統(tǒng)中的布爾指令集、儲藏器中的位地址空間與CPU中的位操作構(gòu)成了片內(nèi)的布爾功能系統(tǒng),它可對位(bit)變量進(jìn)行布爾辦理,如置位、清零、求補(bǔ)、測試轉(zhuǎn)移及邏輯“與”、“或”等操作。在實(shí)現(xiàn)位操作時,借用了程序狀態(tài)標(biāo)志器PSW()中的進(jìn)位標(biāo)志Cy作為位操作的“累加器”。8.對于80C52單片機(jī)內(nèi)部RAM還存在高128字節(jié),應(yīng)采用何種方式接見答:存放器間接尋址方式。15.試編寫程序,將內(nèi)部RAM的20H、21H、22H三個連續(xù)單元的內(nèi)容依次存入2FH、2EH和2DH單元。答:MOV2FH,20HMOV2EH,21HMOV2DH,22H16.試編寫程序,完成兩個16位數(shù)的減法:7F4DH-2B4EH,結(jié)果存入內(nèi)部RAM的30H31H單元,30H單元存差的高8位,31H單元存差的低8位。答:CLRCYMOV30H,#7FHMOV31H,#4DHMOVR0,#31HMOVA,@R0SUBBA,#4EMOV@R0,A;保存低字節(jié)相減結(jié)果DECR0MOVA,@R0SUBBA,#2BHMOV@R0,A;保存高字節(jié)相減結(jié)果17.試編寫程序,將R1中的低4位數(shù)與R2中的高4位數(shù)合并成一個8位數(shù),并將其存放在R1中。答:MOVA,R2ANLA,#0F0HORLR1,A18.試編寫程序,將內(nèi)部RAM的20H、21H單元的兩個無符號數(shù)相乘,結(jié)果存放在R2、R3中,R2中存放高8位,R3中存放低8位。答:MOVA,20HMOVB,21HMULABMOVR3,AMOVR2,B19.若(CY)=1,(P1)=B,(P3)=01101100B。試指出執(zhí)行以下程序段后,CY、P1口及P3口內(nèi)容的變化情況。MOV,CMOV,CMOVC,MOV,CMOVC,MOV,C答:(CY)=1,(P1)=B,(P3)=00111100B第四章3.常用的程序結(jié)構(gòu)有哪幾種特點(diǎn)怎樣答:次序程序:無分支、無循環(huán)結(jié)構(gòu)的程序,其執(zhí)行流程是依指令在儲藏器中的存放次序進(jìn)行的;分支程序:能夠改變程序的執(zhí)行次序;循環(huán)程序:按某種控制規(guī)律重復(fù)執(zhí)行的程序,控制一部分指令重復(fù)執(zhí)行若干次,以便用簡短的程序完成大量的辦理任務(wù)。4.子程序調(diào)用時,參數(shù)的傳達(dá)方法有哪幾種答:利用累加器或存放器;利用儲藏器;利用貨倉。6.設(shè)被加數(shù)存放在內(nèi)部RAM的20H、21H單元,加數(shù)存放在22H、23H單元,若要求和存放在24H、25H中,試編寫出16位無符號數(shù)相加的程序(采用大端模式儲藏。)答:程序以下:ORG0000HMOVR0,#21HMOVR1,#23HMOVA,@R0ADDA,@R1MOV25H,ADECR0DECR1MOVA,@R0ADDCA,@R1MOV24H,ASJMP$END7.編寫程序,把外面RAM中1000H~101FH的內(nèi)容傳達(dá)到內(nèi)部RAM的30H~4FH中。答:ORG0000HMOVDPTR,#1000HMOVR0,#30HMOVR7,#32LOOP:MOVXA,@DPTRMOV@R0,AINCR0INCDPTRDJNZR7,LOOPRET8.編寫程序,實(shí)現(xiàn)雙字節(jié)無符號數(shù)加法運(yùn)算,要求(R0R1)+(R6R7)→(60H61H)。答:ORG0000HMOVA,R1ADDA,R7MOV61H,AMOVA,R0ADDCA,R6MOV60H,ASJMP$END9.若80C51的晶振頻率為6MHz,試計算延時子程序的延時時間。DELAY:MOVR7,#0F6HLP:MOVR6,#0FAHDJNZR6,$DJNZR7,LPRET答:延時時間:2μs*{[1+((1+2*250+2)*246)+2]+2}=秒(含調(diào)用指令2個機(jī)器周期)10.在內(nèi)部RAM的30H~37H單元存有一組單字節(jié)無符號數(shù)。要求找出最大數(shù)存入BIG單元。試編寫程序?qū)崿F(xiàn)。答:ORG0000HBIGDATA2FHONEDATA2AHTWODATA2BHSTART:MOVR7,#7;比較次數(shù)MOVR0,#30HLOOP:MOVA,@R0MOVONE,AINCR0MOVTWO,@R0CLRCSUBBA,@R0JCNEXT;ONE小,TWO大連續(xù)比下一對數(shù)MOV@R0,ONE;ONE大放后邊(交換)DECR0MOV@R0,TWO;TWO小放前面INCR0;NEXT:DJNZR7,LOOPMOVBIG,37HSJMP$END11.編寫程序,把累加器A中的二進(jìn)制數(shù)變換成3位BCD碼,并將百、十、個位數(shù)分別存放在內(nèi)部RAM的50H、51H、52H中。答:單字節(jié)二進(jìn)制數(shù)變換為壓縮的BCD碼僅需要2個字節(jié);在將壓縮的BCD碼拆分存于3個單元。org0MOV52H,#0MOV51H,#0MOV50H,#0MOVA,#0FDhLCALLDCDTHSJMP$DCDTH:MOVR7,#8MOVR0,A;暫存于R0LOOP:CLRCMOVA,R0RLCAMOVR0,AMOVR1,#51H;MOVA,@R1;ADDCA,@R1;DAA;MOV@R1,A;DECR1MOVA,@R1ADDCA,@R1DAAMOV@R1,ADJNZR7,LOOPINCR1;50H已經(jīng)是結(jié)果,R1指向51H,51H單元需拆分MOVA,#00HXCHDA,@R1MOV52H,AMOVA,@R1SWAPAMOV@R1,ARETEND12.編寫子程序,將R1中的2個十六進(jìn)制數(shù)變換為ASCII碼后存放在R3和R4中。答:ORG0MOVR1,#5BHMOVA,R1ANLA,#0F0HSWAPAACALLASCIIMOVR3,AMOVA,R1ANLA,#0FHACALLASCIIMOVR4,ASJMP$ASCII:PUSHACCCLRCSUBBA,#0AHPOPACCJCLOOPADDA,#07HLOOP:ADDA,#30HRETEND13.編寫程序,求內(nèi)部RAM中50H~59H十個單元內(nèi)容的平均值,并存放在5AH單元。答:ORG0000HMOVR7,#10MOVR0,#50HMOVB,#10CLRCCLRALOOP:ADDCA,@R0INCR0DJNZR7,LOOPDIVABMOV5AH,ASJMP$END14.以下列圖,編制程序?qū)崿F(xiàn):上電后顯示“P”,有鍵按下時顯示相應(yīng)的鍵號“0”~“7”。答:實(shí)現(xiàn)程序以下:TEMPEQU30HORG0000HJMPSTARTORG0100HSTART:MOVSP,#5FHMOVP0,#8CH;正序顯示"P"MOVP3,#0FFH;輸入方式CLRCYNOKEY:MOVA,P3CPLAJZNOKEY;無鍵按下MOVTEMP,P3;有鍵按下CALLD10msMOVA,P3CJNEA,TEMP,NOKEY;去抖動MOVR2,#0;鍵號計數(shù)器復(fù)位MOVA,TEMPLP:RRCAJNCDONEINCR2SJMPLPDONE:MOVA,R2MOVDPTR,#CODE_P0MOVCA,@A+DPTRMOVP0,AJMPNOKEYD10ms:MOVR5,#10;10MSD1ms:MOVR4,#249DL:NOPNOPDJNZR4,DLDJNZR5,D1msRETCODE_P0:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB80H,90H,88H,83H,0C6H,0A1H,86H,8EHEND第五章某系統(tǒng)有三個外面中斷源1、2、3,當(dāng)某一中斷源變低電平時便要求CPU辦理,它們的優(yōu)先辦理次序由高到低為3、2、1,辦理程序的入口地址分別為2000H、2100H、2200H。試編寫主程序及中斷服務(wù)程序(轉(zhuǎn)至相應(yīng)的入口即可。)答:將3此中斷信號經(jīng)電阻線或,接INT1。ORG0000HLJMPMAINORG00013HLJMPZDFZORG0040HMAIN:SETBEASETBEX1SJMP$0RG0200HZDFZ:PUSHPSWPUSHACCJB,DV0JB,DV1JB,DV2INRET:POPACCPOPPSWRETIORG2000HDV0:------------JMPINRETORG2100HDV1:------------JMPINRETORG2200HDV2:------------JMPINRET外面中斷源有電平觸發(fā)和邊沿觸發(fā)兩種觸發(fā)方式,這兩種觸發(fā)方式所產(chǎn)生的中斷過程有何不相同怎樣設(shè)定答:IT0=0時,INT0為電平觸發(fā)方式。電平觸發(fā)方式時,CPU在每個機(jī)器周期的S5P2采樣INT0引腳電平,當(dāng)采樣到低電平時,置IE0=1向CPU央求中斷;采樣到高電平時,IE0清0。在電平觸發(fā)方式下,CPU響應(yīng)中斷時,不能夠自動除去IE0標(biāo)志。電平觸發(fā)方式時,外面中斷源的有效低電平必定保持到央求獲得響應(yīng)時為止不,然就會遺漏;在中斷服務(wù)結(jié)束從前,中斷源的有效的低電平必定撤掉,否則中斷返回此后將再次產(chǎn)生中斷。該方式適合于外面中斷輸入為低電平,且在中斷服務(wù)程序中能除去外面中斷央求源的情況。IT0=1時,INT0為邊沿觸發(fā)方式。邊沿觸發(fā)方式時,CPU在每個機(jī)器周期的S5P2采樣INT0引腳電平,若是在連續(xù)的兩個機(jī)器周期檢測到INT0引腳由高電平變?yōu)榈碗娖?,即第一個周期采樣到INT0=1,第二個周期采樣到INT0=0,則置IE0=1,產(chǎn)生中斷央求。在邊沿觸發(fā)方式下,CPU響應(yīng)中斷時,能由硬件自動除去IE0標(biāo)志。邊沿觸發(fā)方式時,在接踵兩次采樣中,先采樣到外面中斷輸入為高電平,下一個周期采樣到為低電平,則在IE0或IE1中將鎖存一個邏輯1。若CPU暫時不能夠響應(yīng),中斷申請標(biāo)志也不會扔掉,直到CPU響應(yīng)此中斷時才清0。別的,為了保證下降沿能夠被可靠地采樣到,INT0和INT1引腳上的負(fù)脈沖寬度最少要保持一個機(jī)器周期(若晶振頻率為12MHz,為1微秒)。邊沿觸發(fā)方式適合于以負(fù)脈沖形式輸入的外面中斷央求。準(zhǔn)時/計數(shù)器工作于準(zhǔn)時和計數(shù)方式時有何異同點(diǎn)答:準(zhǔn)時/計數(shù)器實(shí)質(zhì)是加1計數(shù)器。不相同點(diǎn):設(shè)置為準(zhǔn)時器模式時,加1計數(shù)器是對內(nèi)部機(jī)器周期計數(shù)(1個機(jī)器周期等于12個振蕩周期,即計數(shù)頻率為晶振頻率的1/12)。計數(shù)值乘以機(jī)器周期就是準(zhǔn)時時間。設(shè)置為計數(shù)器模式時,外面事件計數(shù)脈沖由T0或T1引腳輸入到計數(shù)器。在每個機(jī)器周期的S5P2時期采樣T0、T1引腳電平。當(dāng)某周期采樣到一高電平輸入,而下一周期又采樣到一低電平時,則計數(shù)器加1,更新的計數(shù)值在下一個機(jī)器周期的S3P1時期裝入計數(shù)器。相同點(diǎn):它們的工作原理相同,它們都有4種工作方式,由TMOD中的M1M0設(shè)定,即方式0:13位計數(shù)器;方式1:16位計數(shù)器;方式2:擁有自動重裝初值功能的8位計數(shù)器;方式3:T0分為兩個獨(dú)立的8位計數(shù)器,T1停止工作。利用準(zhǔn)時/計數(shù)器T0從輸出周期為1s,脈寬為20ms的正脈沖信號,晶振頻率為12MHz。試設(shè)計程序。答:采用準(zhǔn)時20ms,爾后再計數(shù)1、49次的方法實(shí)現(xiàn)。a、T0工作在準(zhǔn)時方式1時,控制字TMOD配置:M1M0=01,GATE=0,C/T=0,可取方式控制字為01H;b、計算計數(shù)初值X:晶振為12MHz,所以機(jī)器周期Tcy為1μs。、實(shí)現(xiàn)程序以下:ORG0000HAJMPMAIN;跳轉(zhuǎn)到主程序ORG0030HMAIN:MOVTMOD,#01HMOVTH0,#4EH;

;設(shè)T1工作于方式2裝入循環(huán)計數(shù)初值MOVTL0,#20H;首次計數(shù)值LP0:SETBACALLNT0CLRMOVR7,#49;計數(shù)49次LP1:ACALLNT0DJNZR7,LP1AJMPLP0NT0:MOVTH0,#4EHMOVTL0,#20HSETBTR0JNBTF0,$CLRTR0CLRTF0RETEND要求從引腳輸出1000Hz方波,晶振頻率為12MHz。試設(shè)計程序。答:采用T0實(shí)現(xiàn)a、T0工作在準(zhǔn)時方式1時,控制字TMOD配置:M1M0=01,GATE=0,C/T=0,可取方式控制字為01H;b、計算計數(shù)初值X:晶振為12MHz,所以機(jī)器周期Tcy為1μs。1/1000=1×10-3N=t/Tcy=×10-3/1×10-6=500X=216-N=65536-500=65036=FE0CH即應(yīng)將FEH送入TH0中,0CH送入TL0中。c、實(shí)現(xiàn)程序以下:ORG0000HAJMPMAIN;跳轉(zhuǎn)到主程序ORG000BH;T0的中斷入口地址LJMPDVT0ORG0030HMAIN:MOVTMOD,#01H設(shè);T0工作于方式2MOVTH0,#0FEH;裝入循環(huán)計數(shù)初值MOVTL0,#0CH;首次計數(shù)值SETBET0;T0開中斷SETBEA;CPU開中斷SETBTR0;啟動T0SJMP$;等待中斷DVT0:CPLMOVTH0,#0FEHMOVTL0,#0CHSETBTR0RETIEND10.試用準(zhǔn)時/計數(shù)器T1對外面事件計數(shù)。要求每計數(shù)100,就將T1改成準(zhǔn)時方式,控制輸出一個脈寬為10ms的正脈沖,爾后又轉(zhuǎn)為計數(shù)方式,這樣屢次循環(huán)。設(shè)晶振頻率12MHz。答:a、T1工作在計數(shù)方式2時,控制字TMOD配置:M1M0=10,GATE=0,C/T=1,可取方式控制字為60H;T1工作在準(zhǔn)時方式1時,控制字TMOD配置:M1M0=01,GATE=0,C/T=0,可取方式控制字為10H;b、計算初值X:準(zhǔn)時10ms時:晶振為12MHz,所以機(jī)器周期Tcy為1μs。-3-6N=t/Tcy=10×10/1×10=1000016X=2-N=65536-10000=55536=D8F0H即應(yīng)將D8H送入TH1中,F(xiàn)0H送入TL1中。計數(shù)100時:N=100X=28-N=256-100=156=9CH、實(shí)現(xiàn)程序以下:ORG0000HAJMPMAIN;跳轉(zhuǎn)到主程序ORG001BH;T1的中斷入口地址LJMPDVT1ORG0030HMAIN:MOVTMOD,#60H;T1工作于計數(shù)方式2MOVTH1,#9CH;裝入計數(shù)初值MOVTL1,#9CH;CLRSETBET1;T1開中斷SETBEA;CPU開中斷SETBTR1;啟動T1SJMP$;等待中斷DVT1:SETBCLRET1CLRTR1MOVTMOD,#10H;T1工作于準(zhǔn)時方式1MOVTH1,#0D8H;裝初值MOVTL1,#0F0HSETBTR1JNBTF1,$;盤問等待10msCLRTF1CLRTR1CLRMOVTMOD,#60H;T1工作于計數(shù)方式2MOV

TH1,#9CH

;

裝初值MOV

TL1,#9CH

;SETBET1SETBTR1

;T1;

開中斷啟動T1RETIEND11.利用準(zhǔn)時/計數(shù)器T0產(chǎn)生準(zhǔn)時時鐘,由P1口控制8個指示燈。編一個程序,使8個指示燈依次閃耀,閃耀頻率為1次/秒(即,亮1秒后熄滅并點(diǎn)亮下一個,-----)。答:采用準(zhǔn)時20ms,計數(shù)50次實(shí)現(xiàn)1秒準(zhǔn)時。編制1秒延時子程序,由主程序調(diào)用。a、T0工作在準(zhǔn)時方式1時,控制字TMOD配置:M1M0=01,GATE=0,C/T=0,可取方式控制字為01H;b、計算計數(shù)初值X:晶振為12MHz,所以機(jī)器周期Tcy為1μs。N=t/Tcy=20×10-3/1×10-6=20000X=216-N=65536-20000=45536=4E20H即應(yīng)將4EH送入TH1中,20H送入TL1中。、實(shí)現(xiàn)程序以下:ORG0000HAJMPMAIN;跳轉(zhuǎn)到主程序ORG0030HMAIN:CLRCYMOVA,#01HLP0:MOVP1,ACALLD1SECRLAAJMPLP0D1SEC:MOVR7,#50

;

計數(shù)50次MOVTMOD,#01HDL:MOVTH0,#4EHMOVTL0,#20HSETBTR0JNBTF0,$CLRTR0CLRTF0DJNZR7,DLRETEND第六章1.80C51單片機(jī)串行口有幾種工作方式怎樣選擇簡述其特點(diǎn)答:四種工作方式,由SCON中的SM0、SM1進(jìn)行定義:方式0:同步移位存放器的輸入輸出方式,主要用于擴(kuò)展并行輸入或輸出口,波特率固定。方式1:10位數(shù)據(jù)的異步通信口,波特率可變。方式2:11位數(shù)據(jù)的異步通信口,波特率固定。方式3:11位數(shù)據(jù)的異步通信口,波特率可變。5.利用單片機(jī)串行口擴(kuò)展并行輸入接口電路以下列圖。試編寫程序完成SW1~SW8將的狀態(tài)反應(yīng)在P0口所接的LED上(如SW1閉合時L7應(yīng)點(diǎn)亮)。答:電路圖以下:+5V10K×8L0VCCHS/LG5F6E1SDLL71K×84C7BQRXDACLKTXD158ON89S5112345678SW1~SW820ORG0000HMOVSCON,#10HLOOP:CLRNOPNOPNOPSETBCLRRIJNBRI,$MOVA,SUBFSJMPLOOPEND6.利用單片機(jī)串行口擴(kuò)展并行輸出接口電路以下列圖。試編寫程序完成SW1~SW8將的狀態(tài)反應(yīng)在移位存放器74LS164所接的LED上(如SW1閉合時L0應(yīng)點(diǎn)亮)。答:電路圖以下:+5VVCCL71K×810K×8CLRQACLKQBQCRXD4QD6TXD1QESONLQFA489S517QG1234567BQH8L020SW1~SW8ORG0000HMOVS

溫馨提示

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

評論

0/150

提交評論