單片機書上課后習(xí)題_第1頁
單片機書上課后習(xí)題_第2頁
單片機書上課后習(xí)題_第3頁
單片機書上課后習(xí)題_第4頁
單片機書上課后習(xí)題_第5頁
免費預(yù)覽已結(jié)束,剩余4頁可下載查看

下載本文檔

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

文檔簡介

1、單片機書上課后習(xí)題整理單片機書上課后習(xí)題整理單片機書上課后習(xí)題整理單片機原理及應(yīng)用(部分課后習(xí)題及答案)第二章MCS-51的標(biāo)記存放器有多少位,各位的含義是什么?答:MCS-51的標(biāo)記存放器PSW有8位;D7D6D5D4D3D2D1D0CACF0RS1RS0OV-P含義以下:C(PSW.7):進位或借位標(biāo)記位。AC(PSW.6):協(xié)助進位或借位可標(biāo)記位。F0(PSW.5):用戶標(biāo)記位。是系統(tǒng)預(yù)留給用戶自己定義的標(biāo)記位。RS1、RS0(PSW.4、PSW.3):存放器組選擇位??捎密浖梦换蚯辶?,用于從四組工作存放器中選定目前的工作存放器組。OV(PSW.2):溢出標(biāo)記位。在加法或減法運算時,如

2、運算的結(jié)果高出8位二進制數(shù)的范圍,則OV置1,標(biāo)記溢出,不然OV清零。P(PSW.0):奇偶標(biāo)記位。用于記錄指令履行后累加器A中1的個數(shù)的奇偶性。若累加器A中1的個數(shù)為奇數(shù),則P置位,若累加器A中1的個數(shù)為偶數(shù),則P清零。此中PSW.1不決義,可供用戶使用。在8051的儲蓄器構(gòu)造中,內(nèi)部數(shù)據(jù)儲蓄器可分為幾個地區(qū)?各有什么特色?答:片內(nèi)數(shù)據(jù)儲蓄器按功能可以分紅以下幾個部分:工作存放器組區(qū)、位尋址區(qū)、一般RAM區(qū)和特別功能存放器區(qū),此中還包含貨倉區(qū)。工作存放器組區(qū),00H1FH單元,可用R0R7等8個存放器接見;位尋址區(qū),20H2FH單元,可按位方式接見;一般RAM區(qū),30H7FH單元;貨倉區(qū),可

3、從08到7F單元;特別功能存放器區(qū)位于80HFFH單元。什么是機器周期?MCS-51單片機的一個機器周期包含多少個時鐘周期?答:機器周期:機器周期是單片機的基本操作周期,每個機器周期包含S1、S2、S66個狀態(tài),每個狀態(tài)包含兩拍P1和P2,每一拍為一個時鐘周期(振蕩周期)。所以,一個機器周期包含12個時鐘周期。7、假如時鐘周期的頻次為12MHz,那么ALE信號的頻次為多少?答:2MHZ第三章1在MCS-51單片機中,尋址方式有幾種?此中對片內(nèi)RAM可以用哪幾種尋址方式?對片外RAM可以用哪幾種尋址方式?答:尋址方式可分為數(shù)的尋址和指令尋址,數(shù)的尋址有:常數(shù)尋址(立刻尋址)、存放器數(shù)尋址(存放器

4、尋址)、儲蓄器數(shù)尋址(直接尋址方式、存放器間接尋址方式、變址尋址方式)和位尋址,指令的尋址有絕對尋址和相對尋址。片內(nèi)RAM尋址有:存放器尋址、直接尋址方式和存放器間接尋址方式。片外RAM尋址有:存放器間接尋址方式。3在位辦理中,位地點的表示方式有哪幾種?答:1直接位地點(00H0FFH)。比方:20H2字節(jié)地點帶位號。比方:20H.3表示20H單元的3位。3特別功能存放器名帶位號。比方:P0.1表示P0口的1位。4位符號地點。比方:TR0是準(zhǔn)時/計數(shù)器T0的啟動位5寫出達成以下操作的指令。1)R0的內(nèi)容送到R1中。MOVA,R0MOVR1,A(2)片內(nèi)RAM的20H單元內(nèi)容送到片內(nèi)RAM的40

5、H單元中。MOV40H,20H(3)片內(nèi)RAM的30H單元內(nèi)容送到片外RAM的50H單元中。MOVA,30HMOVR0,#50HMOVXR0,A(4)片內(nèi)RAM的50H單元內(nèi)容送到片外RAM的3000H單元中。MOVA,50HMOVDPTR,#3000HMOVXDPTR,A(5)片外RAM的2000H單元內(nèi)容送到片外RAM的20H單元中。MOVDPTR,#2000HMOVXA,DPTRMOV20H,A(6)片外RAM的1000H單元內(nèi)容送到片外RAM的4000H單元中。MOVDPTR,#1000HMOVXA,DPTRMOVDPTR,#4000HMOVDPTR,A(7)ROM的1000H單元內(nèi)容

6、送到片內(nèi)RAM的50H單元中。MOVA,#0MOVDPTR,#1000HMOVCA,A+DPTRMOV20H,A(8)ROM的1000H單元內(nèi)容送到片外RAM的1000H單元中。MOVA,#0MOVDPTR,#1000HMOVCA,A+DPTRMOVXDPTR,A5劃分以下指令有什么不同樣?1)MOVA,20H和MOVA,#20H答:前者源操作數(shù)是直接尋址,后者源操作數(shù)立刻尋址。2)MOVA,R1和MOVXA,R1答:前者源操作數(shù)是接見片內(nèi)數(shù)據(jù)儲蓄器,后者源操作數(shù)接見片外數(shù)據(jù)儲蓄器低256字節(jié)。3)MOVA,R1和MOVA,R1答:前者源操作數(shù)是存放器尋址,后者源操作數(shù)存放器間接尋址。4)MO

7、VXA,R1和MOVXA,DPTR答:前者源操作數(shù)是接見片外數(shù)據(jù)儲蓄器低256字節(jié),后者源操作數(shù)接見片外數(shù)據(jù)儲蓄器整個64K字節(jié)。5)MOVXA,DPTR和MOVCA,A+DPTR答:前者源操作數(shù)是接見片外數(shù)據(jù)儲蓄器,后者源操作數(shù)接見程序數(shù)據(jù)儲蓄器。6設(shè)片內(nèi)RAM的(20H)=40H,(40H)=10H,(10H)=50H,(P1)=0CAH。分析以下指令履行后片內(nèi)RAM的20H、40H、10H單元以及P1、P2中的內(nèi)容。MOVR0,#20HMOVA,R0;A=40HMOVR1,A;R1=40HMOVA,R1;A=10HMOVR0,P1;(40H)=0CAHMOVP2,P1P2=0CAHMOV

8、10H,A(10H)=10HMOV20H,10H(20H)=10H結(jié)果:(20H)=10H、(10H)=10H、(40H)=0CAH、P2=0CAH和P1=0CAH7已知(A)=02H,(R1)=7FH,(DPTR)=2FFCH,片內(nèi)RAM(7FH)=70H,片外RAM(2FFEH)=11H,ROM(2FFEH)=64H,試分別寫出以下各條指令履行后目標(biāo)單元的內(nèi)容。1)MOVA,R1結(jié)果:累加器A等于70H2)MOVXDPTR,A結(jié)果:片外RAM(2FFCH)單元等于02H(3)MOVCA,A+DPTR結(jié)果:累加器A等于64H4)XCHDA,R1結(jié)果:累加器A等于00H,片內(nèi)RAM(7FH)單

9、元等于72H8已知:(A)=78H,(R1)=78H,(B)=04H,CY=1,片內(nèi)RAM(78H)=0DDH,(80H)=6CH,試分別寫出以下指令履行后目標(biāo)單元的結(jié)果和相應(yīng)標(biāo)記位的值。1)ADDA,R1;累加器A等于55H,CY等于12)SUBBA,#77H;累加器A等于00H,CY等于0(3)MULAB;累加器A等于E0H,B存放器等于01H,CY等于1,OV等于0(4)DIVAB;累加器A等于1EH,B存放器等于00H,CY、OV等于05)ANL78H,#78H;片內(nèi)RAM(78H)單元等于58H(6)ORLA,#0FH;累加器A等于7FH7)XRL80H,A;片內(nèi)RAM(80H)等于

10、14H9設(shè)(A)=83H,(R0)=17H,(17H)=34H,分析當(dāng)履行完下邊指令段后累加器A、R0、17H單元的內(nèi)容。ANLA,#17H;A=03HORL17H,A;(17H)=37HXRLA,R0;A=34HCPLA;A=CBH結(jié)果:A=CBH,(R0)=17H,(17H)=37H寫出達成以下要求的指令。1)累加器A的低2位清零,其余位不變。ANLA,#11111100B2)累加器A的高2地點“1”,其余位不變。ORLA,#11000000B3)累加器的高4位取反,其余位不變。XRLA,#11110000B4)累加器第0位、2位、4位、6位取反,其余位不變。XRLA,#01010101B

11、13用位辦理指令實現(xiàn)P1.4=P1.0()/P1.3的邏輯功能。程序:MOVC,P1.1ORLC,P1.2ANLC,P1.0ORLC,/P1.3MOVP1.4,C15試編一段程序,將片內(nèi)RAM的20H、21H、22H單元的內(nèi)容挨次存入片外RAM的20H、21H、22H中。程序:MOVR0,#20HMOVR2,#03HLOOP:MOVA,R0MOVXR0,AINCR0DJNZR2,LOOPSJMP$16編程實現(xiàn)將片外RAM的2000H2030H單元的內(nèi)容,所有搬到片內(nèi)RAM的20H單元開始地點,并將源地點清零。程序:MOVR0,#20HMOVDPTR,#2000HMOVR2,#30HLOOP:M

12、OVXA,DPTRMOVR0,AMOVA,#00MOVXDPTR,AINCDPTRINCR0DJNZR2,LOOPSJMP$17編程將片外RAM的1000H單元開始的100個字節(jié)數(shù)據(jù)相加,結(jié)果放于R7R6中。程序:MOVDPTR,#1000HMOVR2,#100MOVR7,#00MOVR6,#00LOOP:MOVXA,DPTRADDA,R6MOVR6,AMOVA,R7ADDCA,#0MOVR7,AINCDPTRDJNZR2,LOOPSJMP$20用查表的方法實現(xiàn)一位十六進制數(shù)變換成ASCII。程序:(設(shè)一位十六進制數(shù)放在R2中,輪換的ASCII也放于R2中)C16STASC:MOVDPTR,#

13、TABMOVA,R2MOVCA,A+DPTRMOVR2,ARETTAB:DB30H,31H,32H,33H,34H,35H,36H,37HDB38H,391H,41H,42H,43H,44H,45H,46H第四章C51獨有的數(shù)據(jù)種類有哪些?答:C51獨有的數(shù)據(jù)種類有特別功能存放器型和位種類。C51中的儲蓄器種類有幾種,它們分別表示的儲蓄器地區(qū)是什么?答:C51中的儲蓄器種類有6種,分別以下:data:直接尋址的片內(nèi)RAM低128B,接見速度快bdata:片內(nèi)RAM的可位尋址區(qū)(20H2FH),贊成字節(jié)和位混淆接見idata:間接尋址接見的片內(nèi)RAM,贊成接見所有片內(nèi)RAMpdata:用Ri間接

14、接見的片外RAM低256Bxdata:用DPTR間接接見的片外RAM,贊成接見所有64KB片外RAMcode:程序儲蓄器ROM64KB空間在C51中,中止函數(shù)與一般函數(shù)有什么不同樣?答:中止函數(shù)在定義時后邊帶interruptm修飾符,m的取值為031,對應(yīng)的中止?fàn)顩r以下:0外面中止0,1準(zhǔn)時/計數(shù)器T0,2外面中止1,3準(zhǔn)時/計數(shù)器T1,4串行口中止,5準(zhǔn)時/計數(shù)器T2,其余值預(yù)留。編寫MCS-51中止函數(shù)需要注意以下幾點。中止函數(shù)不可以進行參數(shù)傳達,假如中止函數(shù)中包含任何參數(shù)申明都將致使編譯犯錯。中止函數(shù)沒有返回值。在任何狀況下都不可以直接調(diào)用中止函數(shù)假如在中止函數(shù)中調(diào)用了其余函數(shù),則被調(diào)

15、用函數(shù)所使用的存放器必然與中止函數(shù)同樣,不然會產(chǎn)生不正確的結(jié)果。C51編譯器對中止函數(shù)編譯時會自動在程序開始和結(jié)束處加上相應(yīng)的內(nèi)容。(6)C51編譯器從絕對地點8m+3處產(chǎn)生一此中止向量,此中m為中止號,也即interrupt后邊的數(shù)字。該向量包含一個到中止函數(shù)進口地點的絕對跳轉(zhuǎn)。(7)中止函數(shù)最好寫在文件的尾部,而且嚴(yán)禁使用extern儲蓄種類說明。防備其余程序調(diào)用。9.寫出以下關(guān)系表達式或邏輯表達式的結(jié)果,設(shè)a=3,b=4,c=5。(1)a+bc&b=c結(jié)果:假(2)a|b+c&b-c結(jié)果:真(3)!(ab)&!c|1結(jié)果:真(4)!(a+b)+c-1&b+c/2結(jié)果:假用分支構(gòu)造編程實現(xiàn)

16、:輸入“1”顯示“A”,輸入“2”顯示“B”,輸入“3”顯示“C”,輸入“4”顯示“D”,輸入“5”結(jié)束。參照程序:#include#includevoidmain(void)unsignedcharx;SCON=0 x52;/串口初始化TMOD=0 x20;TH1=0XF3;TR1=1;while(1)printf(inputx:n);/輸出提示信息scanf(%c,&x);switch(x)case1:printf(An);break;case2:printf(Bn);break;case3:printf(Cn);break;case4:printf(Dn);break;case5:pri

17、ntf(QUITn);break;default:printf(RETRYn);if(x=5)break;while(1);輸入3個無符號的字符數(shù)據(jù),要求按由大到小的次序輸出。參照程序:#include#includevoidmain(void)unsignedcharx,y,z,m;SCON=0 x52;/串口初始化TMOD=0 x20;TH1=0XF3;TR1=1;printf(inputx,y,z:);/輸出提示信息scanf(%c,%c,%c,&x,&y,&z);printf(n);if(xy)m=x;x=y;y=m;if(yz)m=y;y=z;z=m;if(xy)m=x;x=y;y=

18、m;printf(output%c,%c,%cn,x,y,z);while(1);/輸出用指針實現(xiàn),輸入3個無符號字符數(shù)據(jù),按由大到小的次序輸出。參照程序:#include/包含特別功能存放器庫#include/包含I/O函數(shù)庫main()unsignedcharx,y,z;unsignedchar*p,*p1,*p2,*p3;SCON=0 x52;/串口初始化TMOD=0 x20;TH1=0XF3;TR1=1;printf(inputx,yandz:n);scanf(%c,%c,%c,&x,&y,&z);printf(n);p1=&x;p2=&y;p3=&z;if(*p1*p2)p=p1;p

19、1=p2;p2=p;if(*p2*p3)p=p2;p2=p3;p3=p;if(*p1*p2)p=p1;p1=p2;p2=p;printf(maxtominis:%c,%c,%cn,*p1,*p2,*p3);while(1);第六章4.準(zhǔn)時/計數(shù)器的四種工作方式各自的計數(shù)范圍是多少?假如要計10個單位,不同樣的方式初值應(yīng)為多少?答:有四種方式。方式0計數(shù)范圍:18192;方式1計數(shù)范圍:165536;方式2計數(shù)范圍:1256;方式3計數(shù)范圍:1256。假如計10個單位,方式0初值為:8192-10=8182;方式1初值為:65536-10=65526;方式2初值為:256-10=246;方式2初

20、值為:256-10=246。設(shè)振蕩頻次為12MHz,假如用準(zhǔn)時/計數(shù)器T0產(chǎn)生周期為100ms的方波,可以選擇哪幾種方式,其初值分別設(shè)為多少?答:只好選擇方式1,初值為65536-50000=15536。設(shè)某異步通訊接口,每幀信息格式為10位,當(dāng)接口每秒傳達1000個字符時,其波特率為多少?答:10000波特8051系統(tǒng)中,已知振蕩頻次為12MHz,用準(zhǔn)時/計數(shù)器T0,實現(xiàn)從P1.0產(chǎn)生周期為2ms的方波。要求分別用匯編語言和C語言進行編程。解:分析:從P1.0輸出周期為2ms的方波,只須P1.0每1ms取反一次則可。當(dāng)系統(tǒng)時鐘為于方式1時,最大的準(zhǔn)不時間為65.536ms,知足1ms的準(zhǔn)時要

21、求,方式控制字應(yīng)設(shè)定為12MHZ,準(zhǔn)時/計數(shù)器T0工作00000001B(01H)。準(zhǔn)時1ms,計數(shù)值N為1000,初值X=65536-1000=64536,則TH0=FCH,TL0=18H。采納中止辦理方式:程序以下:ORG0000HLJMPMAINORG000BH;中止辦理程序MOVTH0,#0FCHMOVTL0,#18HCPLP1.0RETIORG0100H;主程序MAIN:MOVTMOD,#01HMOVTH0,#0FCHMOVTL0,#18HSETBEASETBET0SETBTR0SJMP$ENDC語言程序:#include/包含特別功能存放器庫sbitP1_0=P10;voidmai

22、n()TMOD=0 x01;TH0=0 xFC;TL0=0 x18;EA=1;ET0=1;TR0=1;while(1);voidtime0_int(void)interrupt1/中止服務(wù)程序TH0=0 xFC;TL0=0 x18;P1_0=!P1_0;8051系統(tǒng)中,已知振蕩頻次為12MHz,用準(zhǔn)時/計數(shù)器T1,實現(xiàn)從P1.1產(chǎn)生周期為2s的方波。要求分別用匯編語言和C語言進行編程。解:從P1.1產(chǎn)生2s的方波,應(yīng)產(chǎn)生500ms的周期性的準(zhǔn)時,準(zhǔn)時到對P1.1取反即可實現(xiàn)。因為準(zhǔn)不時間較長,一個準(zhǔn)時/計數(shù)器T1不可以直接實現(xiàn),采納準(zhǔn)時/計數(shù)器T1產(chǎn)生周期性為10ms的準(zhǔn)時,此后用一個存放器R

23、2對10ms計數(shù)100次來實現(xiàn)。系統(tǒng)時鐘為12MHZ,準(zhǔn)時/計數(shù)器T1準(zhǔn)時10ms,計數(shù)值N為10000,只好選方式1,方式控制字為00010000B(10H),初值X:則TH1=11011000B=D8H,TL1=11110000B=F0H。準(zhǔn)時/計數(shù)器T1采納中止辦理方式。匯編程序:ORG0000HLJMPMAINORG001BHLJMPINTT1ORG0100HMAIN:MOVTMOD,#10HMOVTH1,#0D8HMOVTL1,#0F0HMOVR2,#00HSETBEASETBET1SETBTR1SJMP$INTT1:MOVTH1,#0D8HMOVTL1,#0F0HINCR2CJNE

24、R2,#64H,NEXTCPLP1.1MOVR2,#00HNEXT:RETIEND語言程序:#include/包含特別功能存放器庫sbitcharvoidP1_1=P11;i;main()TMOD=0 x10;TH1=0 xD8;TL1=0 xf0;EA=1;ET1=1;i=0;TR1=1;while(1);voidtime0_int(void)interrupt3/中止服務(wù)程序TH1=0 xD8;TL1=0 xf0;i+;if(i=100)P1_1=!P1_1;i=0;2.簡述儲蓄器擴展的一般方法。答:儲蓄器芯片與單片機擴展連結(jié)擁有共同的規(guī)律。即無論何種儲蓄器芯片,總線對接。其余,電源線接電源線,地線接地線。其引腳都呈三總線構(gòu)造,與單片機連結(jié)都是三什么是部分譯碼法?什么是全譯碼法?它們各有什么特色?用于形成什么信號?答:部分譯碼就是儲蓄器芯片的地點線與單片機系統(tǒng)的地點線挨次相接后,節(jié)余的高位地點線僅用一部分參加譯碼。部分譯碼使儲蓄器芯片的地點空間有重疊,造成系統(tǒng)儲蓄器空間的浪費。全譯碼就是儲蓄器芯片的地點線與單片機系統(tǒng)的地點線挨次相接后,節(jié)余的高位地點線所有參加譯碼。這類譯碼方法中儲蓄器芯片的地點空間是獨一確立的,但譯碼電路要相對復(fù)雜。譯碼形成儲蓄器芯片的片選信號線CE。使用2764(8KB8)芯片經(jīng)過部分譯碼法擴展24

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論