單片機(jī)原理及應(yīng)用張毅剛習(xí)題與解答_第1頁
單片機(jī)原理及應(yīng)用張毅剛習(xí)題與解答_第2頁
單片機(jī)原理及應(yīng)用張毅剛習(xí)題與解答_第3頁
單片機(jī)原理及應(yīng)用張毅剛習(xí)題與解答_第4頁
單片機(jī)原理及應(yīng)用張毅剛習(xí)題與解答_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、13:單片機(jī)與普通計算機(jī)的不同之處在于其將(CPU )(存儲器)和(I/O口)三部分集成于一塊芯片上。18:8051與8751的區(qū)別是:(內(nèi)部程序存儲器的類型不同)24:在MCS51單片機(jī)中,如果采用6MHz晶振,1個機(jī)器周期為(2us )。析:機(jī)器周期為振蕩周期的1/6。26:內(nèi)部RAM中,位地址為30H的位,該位所在字節(jié)的字節(jié)地址為(26H )。27:若A中的內(nèi)容為63H,那么,P標(biāo)志位的值為(0 )。析:P為偶校驗(yàn)位,因?yàn)锳中1的個數(shù)為偶數(shù),所以P=0。28:判斷下列說法是否正確:A、8031的CPU是由RAM和EPROM所組成。(N)B、區(qū)分片外程序存儲器和片外數(shù)據(jù)存儲器的最可靠的方法

2、是看其位于地址范圍的低端還是高端。(N)C、在MCS-51中,為使準(zhǔn)雙向的I/O口工作在輸入方式,必須保證它被事先預(yù)置為1。(Y)D、PC可以看成使程序存儲器的地址指針。(Y)29:8031單片機(jī)復(fù)位后,R4所對應(yīng)的存儲單元的地址為(04H ),因上電時PSW=(00H )。這時當(dāng)前的工作寄存器區(qū)是(0 )組工作寄存器區(qū)。211:判斷以下有關(guān)PC和DPTR的結(jié)論是否正確?A、DPTR是可以訪問的,而PC不能訪問。(Y)B、它們都是16位的存儲器(Y)C、它們都有加1的功能。(Y)D、DPTR可以分為兩個8位的寄存器使用,但PC不能。(Y)213:使用8031芯片時,需將/EA引腳接(低 )電平

3、,因?yàn)槠淦瑑?nèi)無(程序 )存儲器。214:片內(nèi)RAM低128個單元劃分為哪3個主要部分?各部分的主要功能是什么?答:工作寄存器區(qū)、位尋址區(qū)、數(shù)據(jù)緩沖區(qū)215:判斷下列說法是否正確A、 程序計數(shù)器PC不能為用戶編程時直接使用,因?yàn)樗鼪]有地址。(Y)B、 內(nèi)部RAM的位尋址區(qū),只能供位尋址使用,而不能供字節(jié)尋址使用。(N)C、 8031共有21個特殊功能寄存器,它們的位都是可以用軟件設(shè)置的,因此是可以進(jìn)行位尋址的(N)216:PC的值是(當(dāng)前正在執(zhí)行指令的下一條指令的地址)217:通過堆棧操作實(shí)現(xiàn)子程序調(diào)用,首先就要把(PC )的內(nèi)容入棧,以進(jìn)行斷點(diǎn)保護(hù)。調(diào)用返回時,再進(jìn)行出棧保護(hù),把保護(hù)的斷點(diǎn)送回

4、到( PC)。219:MCS51單片機(jī)程序存儲器的尋址范圍是由程序計數(shù)器PC的位數(shù)所決定的,因?yàn)镸CS51的PC是16位的,因此其尋址的范圍為(64 )KB。220:當(dāng)MCS51單片機(jī)運(yùn)行出錯或程序陷入死循環(huán)時,如何來擺脫困境?答:軟件陷阱、復(fù)位221:判斷下列說法是否正確?A、 PC是1個不可尋址的特殊功能寄存器。(N)B、 單片機(jī)的主頻越高,其運(yùn)算速度越快。(Y)C、 在MCS51單片機(jī)中,1個機(jī)器周期等于1us。(N)D、 特殊功能寄存器SP內(nèi)裝的是棧頂首地址單元的內(nèi)容。(N)222:如果手中僅有一臺示波器,可通過觀察哪個引腳的狀態(tài),來大致判斷MCS51單片機(jī)正在工作?答:ALE析:因?yàn)?/p>

5、單片機(jī)正常工作時,ALE腳輸出時鐘頻率為振蕩周期的1/6。31:判斷下列指令的正誤:1)MOV 28H,R2 2)DEC DPTR 3)INC DPTR 4)CLR R05)CPL R5 6)MOV R0,R1 7)PUSH DPTR 8)MOV F0,C9)MOV F0,ACC.3 10)MOVX A,R1 11)MOV C,30H 12)RLC R0答:錯、錯、對、錯 錯、錯、錯、對 錯、對、對、錯32:判斷下列說法是否正確。A、 立即尋址方式是被操作的數(shù)據(jù)本身在指令中,而不是它的地址在指令中。(Y)B、 指令周期是執(zhí)行一條指令的時間。(Y)C、 指令中直接給出的操作數(shù)稱為直接尋址。(N)

6、33:在基址加變址尋址方式中,以(累加器A )作變址寄存器,以(DPTR )或(PC )作基址寄存器。37:指令格式是由(操作碼 )和(操作數(shù) )所組成,也可能僅由(操作碼 )組成。38:假定累加器A中的內(nèi)容為30H,執(zhí)行指令1000H:MOVC A,A+PC后,把程序存儲器(1031H )單元的內(nèi)容送入累加器A中。39:在MCS51中,PC和DPTR都用于提供地址,但PC是為訪問(程序 )存儲器提供地址,而DPTR是為訪問(數(shù)據(jù) )存儲器提供地址。310:在寄存器間接尋址方式中,其“間接”體現(xiàn)在指令中寄存器的內(nèi)容不是操作數(shù)而是操作數(shù)的(地址)。311:下列程序段的功能是什么?PUSHAPUS

7、HBPOPAPOPB答:交換A、B的內(nèi)容312:已知程序執(zhí)行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。下述程序執(zhí)行后:POPDPHPOPDPLMOVDPTR,#4000HRLAMOVB,AMOVCA,A+DPTRPUSHAMOVA,BINCAMOVCA,A+DPTRPUSHARETORG4000HDB10H,80H,30H,50H,30H,50H請問:A=(50H ),SP=(50H ),(51H)=(30H ),(52H)=(50H ),PC=(5030H )。314:假定A=83H,(R0)=17H,(17H)=34H,執(zhí)行以下指令:ANLA,#17H, ORL

8、17H,A, XRLA,R0 ,CPL A后,A的內(nèi)容為(0CBH )。315:假定A=55H,R3=0AAH,在執(zhí)行指令A(yù)NLA,R3后,A=(0 ),R3=(0AAH )。316:如果DPTR=507BH,SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,則執(zhí)行下列指令后:POPDPH ,POPDPL ,POPSP則:DPH=(3CH),DPL=(5FH ),SP=(4FH )317:假定,SP=60H,A=30H,B=70H,執(zhí)行下列指令:PUSHA ,PUSHB后,SP的內(nèi)容為(62H ),61H單元的內(nèi)容為(30H ),62H單元的內(nèi)容為(70H )。54:外

9、部中斷1所對應(yīng)的中斷入口地址為(0013 )H。55:下列說法錯誤的是:(ABC)A、 各中斷發(fā)出的中斷請求信號,都會標(biāo)記在MCS51系統(tǒng)的IE寄存器中。B、 各中斷發(fā)出的中斷請求信號,都會標(biāo)記在MCS51系統(tǒng)的TMOD寄存器中。C、 各中斷發(fā)出的中斷請求信號,都會標(biāo)記在MCS51系統(tǒng)的IP寄存器中。D、 各中斷發(fā)出的中斷請求信號,都會標(biāo)記在MCS51系統(tǒng)的TCON與SCON寄存器中。E、 57:中斷查詢確認(rèn)后在下列各種8031單片機(jī)運(yùn)行情況中能立即進(jìn)行響應(yīng)的是:(當(dāng)前指令是MOV A,R3)58:8031單片機(jī)響應(yīng)中斷后,產(chǎn)生長調(diào)用指令LCALL,執(zhí)行該指令的過程包括:首先把(PC )的內(nèi)容

10、壓入堆棧,以進(jìn)行斷點(diǎn)保護(hù),然后把長調(diào)用指令的16位地址送(PC ),使程序執(zhí)行轉(zhuǎn)向(程序存儲器 ) 中的中斷地址區(qū)。59:編寫出外部中斷1為跳沿觸發(fā)的中斷初始化程序。答:SETBIT1SETBEX1SETBEA510:在MCS51中需要外加電路實(shí)現(xiàn)中斷撤除的是(電平方式的外部中斷)512:下列說法正確的是:(ACD)A、 同一級別的中斷請求按時間的先后順序響應(yīng)。B、 同一時間同一級別的多中斷請求,將形成阻塞,系統(tǒng)無法響應(yīng)。C、 低優(yōu)先級中斷請求不能中斷高優(yōu)先級中斷請求但是高優(yōu)先級中斷請求能中斷低優(yōu)先級中斷請求。D、 同級中斷不能嵌套。513:中斷服務(wù)子程序返回指令RETI和普通子程序返回指令R

11、ET有什么區(qū)別?答:RETI指令在返回的同時清除相應(yīng)的優(yōu)先級觸發(fā)器,以允許下次中斷514:某系統(tǒng)有3個外部中斷源1、2、3,當(dāng)某一中斷源變?yōu)榈碗娖綍r,便要求CPU進(jìn)行處理,它們的優(yōu)先處理次序由高到低依次為3、2、1,中斷處理程序的入口地址分別為1000H,1100H,1200H。試編寫主程序及中斷服務(wù)程序(轉(zhuǎn)至相應(yīng)的中斷處理程序的入口即可)。答:若僅在/INT0引腳接3個外部中斷源,電路如圖510(P115)ORG0000HLJMPMAINORG0003HLJMPINT_EX0ORG0030HMAIN:CLRIT0; 采用低電平有效中斷SETBEX0;允許外部中斷0SETBEA; 插入用戶程序

12、WAIT:MOVPCON,#01H;單片機(jī)進(jìn)入休眠方式等待中斷NOPLJMPWAIT;以下為外部中斷0服務(wù)子程序INT_EX0:JNBP1.0,NEXT1;判斷是不是1號中斷LJMPINT_IR1;跳轉(zhuǎn)到1號中斷處理程序NEXT1:JNBP1.1,NEXT2;判斷是不是2號中斷LJMPINT_IR2;跳轉(zhuǎn)到2號中斷處理程序NEXT2:LJMPINT_IR3;跳轉(zhuǎn)到3號中斷處理程序ORG1000HINT_IR1:;插入相應(yīng)中斷處理程序RETI;中斷返回ORG1100HINT_IR2:;插入相應(yīng)中斷處理程序RETI;中斷返回ORG1200HINT_IR3:;插入相應(yīng)中斷處理程序RETI;中斷返回1

13、 如果采用晶振的頻率為3MHz,定時器/計數(shù)器工作方式0、1、2下,其最大的定時時間為多少?解答:因?yàn)闄C(jī)器周期,所以定時器/計數(shù)器工作方式0下,其最大定時時間為;同樣可以求得方式1下的最大定時時間為262.144ms;方式2下的最大定時時間為1024ms。2 定時/計數(shù)器用作定時器時,其計數(shù)脈沖由誰提供?定時時間與哪些因素有關(guān)?答:定時/計數(shù)器作定時時,其計數(shù)脈沖由系統(tǒng)振蕩器產(chǎn)生的內(nèi)部時鐘信號12分頻后提供。定時時間與時鐘頻率和定時初值有關(guān)。3 定時/計數(shù)器用作定時器時,對外界計數(shù)頻率有何限制?答:由于確認(rèn)1次負(fù)跳變要花2個機(jī)器周期,即24個振蕩周期,因此外部輸入的計數(shù)脈沖的最高頻率為系統(tǒng)振蕩

14、器頻率的1/24。4采用定時器/計數(shù)器T0對外部脈沖進(jìn)行計數(shù),每計數(shù)100個脈沖后,T0轉(zhuǎn)為定時工作方式。定時1ms后,又轉(zhuǎn)為計數(shù)方式,如此循環(huán)不止。假定MCS-51單片機(jī)的晶體振蕩器的頻率為6MHz,請使用方式1實(shí)現(xiàn),要求編寫出程序。解答:定時器/計數(shù)器T0在計數(shù)和定時工作完成后,均采用中斷方式工作。除了第一次計數(shù)工作方式設(shè)置在主程序完成外,后面的定時或計數(shù)工作方式分別在中斷程序完成,用一標(biāo)志位識別下一輪定時器/計數(shù)器T0的工作方式。編寫程序如下:ORG0000HLJMPMAINORG000BHLJMPIT0PMAIN:MOVTMOD,#06H;定時器/計數(shù)器T0為計數(shù)方式2MOVTL0,#

15、156;計數(shù)100個脈沖的初值賦值MOVTH0,#156SETBGATE;打開計數(shù)門SETBTR0;啟動T0,開始計數(shù)SETBET0;允許T0中斷SETBEA;CPU開中斷CLRF0;設(shè)置下一輪為定時方式的標(biāo)志位WAIT:AJMPWAITIT0P:CLREA;關(guān)中斷JBF0,COUNT;F0=1,轉(zhuǎn)計數(shù)方式設(shè)置MOVTMOD,#00H;定時器/計數(shù)器T0為定時方式0MOVTH0,#0FEH;定時1ms初值賦值MOVTL0,#0CHSETBEARETICOUNT:MOVTMOD,#06HMOVTL0,#156SETBEARETI5. 定時器/計數(shù)器的工作方式2有什么特點(diǎn)?適用于哪些應(yīng)用場合?答:

16、定時器/計數(shù)器的工作方式2具有自動恢復(fù)初值的特點(diǎn),適用于精確定時,比如波特率的產(chǎn)生。6. 編寫程序,要求使用T0,采用方式2定時,在P1.0輸出周期為400s,占空比為10:1的矩形脈沖。解答:根據(jù)題意,從P1.0輸出的矩形脈沖的高低電平的時間為10:1,則高低電平的時間分別為363.63s和36.37s。如果系統(tǒng)采用6MHz晶振的話,因此高低電平輸出取整,則約為364s和36s。編寫程序如下:ORG0000HLJMPMAINORG000BHLJMPIT0PMAIN:MOVTMOD,#02H;定時器/計數(shù)器T0為定時方式2MOVTL0,#4AH;定時364s初值賦值SETBTR0;啟動T0,開

17、始計數(shù)SETBET0;允許T0中斷SETBEA;CPU開中斷SETBP1.0WAIT:AJMPWAITIT0P:CLREACLRP1.0;關(guān)中斷MOVR0,#9DLY:DJNZR0,DLY;延時26sMOVTL0,#4AH;定時364s初值賦值SETBP1.0SETBEARETI7. 一個定時器的定時時間有限,如何實(shí)現(xiàn)兩個定時器的串行定時,來實(shí)現(xiàn)較長時間的定時?答:方式一,在第一個定時器的中斷程序里關(guān)閉本定時器的中斷程序,設(shè)置和打開另一個定時器;在另一個定時器的中斷程序中關(guān)閉本定時中斷,設(shè)置和打開另一個定時器。這種方式的定時時間為兩個定時器定時時間的和。方式二,一個作為定時器,在定時中斷后產(chǎn)生

18、一個外部計數(shù)脈沖(比如由P1.0接INT0產(chǎn)生),另一個定時器工作在計數(shù)方式。這樣兩個定時器的定時時間為一個定時器的定時時間乘以另一個定時器的計數(shù)值。8. 當(dāng)定時器T0用于方式3時,應(yīng)該如何控制定時器T1的啟動和關(guān)閉?答:由T1(P3.5)口控制定時器T1的啟動和關(guān)閉。9. 定時器/計數(shù)器測量某正單脈沖的寬度,采用何種方式可得到最大量程?若時鐘頻率為6MHz,求允許測量的最大脈沖寬度是多少?答:采用方式1定時工作方式。最大脈沖寬度為131.072ms。10. 編寫一段程序,功能要求為:當(dāng)P1.0引腳的電平正跳變時,對P1.1的輸入脈沖進(jìn)行計數(shù);當(dāng)P1.2引腳的電平負(fù)跳變時,停止計數(shù),并將計數(shù)值

19、寫入R0、R1(高位存R1,低位存R0)。解答:將P1.1的輸入脈沖接入INT0,即使用T0計數(shù)器完成對P1.1口的脈沖計數(shù)。編寫程序如下:ORG0000HLJMPMAINORG000BHLJMPIT0PMAIN:JNBP1.0,MAINMOVTMOD,#05H;定時器/計數(shù)器T0為計數(shù)方式1SETBTR0;啟動T0,開始計數(shù)SETBET0;允許T0中斷SETBEA;CPU開中斷WAIT:JBP1.2,WAITCLREACLRTR0MOVR1,TH0MOVR0,TL0AJMP$IT0P:INCR2RETI11. THX與TLX(X=0,1)是普通寄存器還是計數(shù)器?其內(nèi)容可以隨時用指令更改嗎?更

20、改后的新值是立即刷新還是等當(dāng)前計數(shù)器計滿后才能刷新?答:THX與TLX(X=0,1)是由特殊功能寄存器構(gòu)成的計數(shù)器,其內(nèi)容可以隨時用指令更改,更改后的新值是立即刷新。但在讀THX、TLX的值時,應(yīng)該先讀THX值,后讀TLX,再讀THX。若兩次讀得THX相同,則可確定讀得的內(nèi)容正確。若前后兩次讀得的THX有變化,再重復(fù)上述過程。12. 判斷下列的說法是否正確?12. 判斷下列的說法是否正確?(1) 特殊功能寄存器SCON,與定時器/計數(shù)器的控制無關(guān)。(對)(2) 特殊功能寄存器TCON,與定時器/計數(shù)器的控制無關(guān)。(錯)(3) 特殊功能寄存器IE,與定時器/計數(shù)器的控制無關(guān)。 (錯)(4) 特殊

21、功能寄存器TMOD,與定時器/計數(shù)器的控制無關(guān)。(錯)1.單片機(jī)存儲器的主要功能是存儲(程序)和(數(shù)據(jù))。2.試編寫一個程序(例如將05H和06H拼為56H),設(shè)原始數(shù)據(jù)放在片外數(shù)據(jù)區(qū)2001H單元和2002H單元中,按順序拼裝后的單字節(jié)數(shù)放入2002H。解:本題主要考察了對外部存儲器的讀、寫操作,同學(xué)們只要記住正確使用MOVX指令就可以了。編程思路:首先讀取2001H的值,保存在寄存器A中,將寄存器A的高四位和低四位互換,再屏蔽掉低四位然后將寄存器A的值保存到30H中,然后再讀取2002H的值,保存在寄存器A中,屏蔽掉高四位,然后將寄存器A的值與30H進(jìn)行或運(yùn)算,將運(yùn)算后的結(jié)果保存在2002

22、H中。ORG0000HMAIN:MOVDPTR,#2001H;設(shè)置數(shù)據(jù)指針的初值MOVXA,DPTR;讀取2001H的值SWAPAANLA,#0F0H;屏蔽掉低四位MOV30H,A;保存AINCDPTR;指針指向下一個MOVXA,DPTR;讀取2002H的值A(chǔ)NLA,#0FH;屏蔽掉高四位ORLA,30H;進(jìn)行拼裝MOVXDPTR,A;保存到2002HEND3.假設(shè)外部數(shù)據(jù)存儲器2000H單元的內(nèi)容為80H,執(zhí)行下列指令后:MOVP2,#20HMOVR0,#00HMOVXA,R0累加器A中的內(nèi)容為(80H)。4.編寫程序,將外部數(shù)據(jù)存儲器中的4000H40FFH單元全部清零。解:本題主要考察了

23、對外部數(shù)據(jù)塊的寫操作;編程時只要注意循環(huán)次數(shù)和MOVX指令的使用就可以了。ORG0000HMAIN:MOVA,#0;送預(yù)置數(shù)給AMOVR0,#0FFH;設(shè)置循環(huán)次數(shù)MOVDPTR,#4000H;設(shè)置數(shù)據(jù)指針的初值LOOP:MOVXDPTR,A;當(dāng)前單元清零INCDPTR;指向下一個單元DJNZR0,LOOP;是否結(jié)束END5.在MCS-51單片機(jī)系統(tǒng)中,外接程序存儲器和數(shù)據(jù)存儲器共16位地址線和8位數(shù)據(jù)線,為何不會發(fā)生沖突?解:因?yàn)榭刂菩盘柧€的不同:外擴(kuò)的RAM芯片既能讀出又能寫入,所以通常都有讀寫控制引腳,記為OE和WE。外擴(kuò)RAM的讀、寫控制引腳分別與MCS-51的RD和WR引腳相連。外擴(kuò)

24、的EPROM在正常使用中只能讀出,不能寫入,故EPROM芯片沒有寫入控制引腳,只有讀出引腳,記為OE,該引腳與MCS-51單片機(jī)的PSEN相連。6.區(qū)分MCS-51單片機(jī)片外程序存儲器和片外數(shù)據(jù)存儲器的最可靠的方法是:(1)看其位于地址范圍的低端還是高段(2)看其離MCS-51芯片的遠(yuǎn)近(3)看其芯片的型號是ROM還是RAM(4)看其是與RD信號連接還是與PSEN信號連接解:本題的答案是3,4。7.在存儲器擴(kuò)展中,無論是線選法還是譯碼法,最終都是為了擴(kuò)展芯片的(片選)端提供信號。8.請寫出圖8-18中4片程序存儲器27128各自所占的地址空間。解:圖中采用了譯碼法。4片地址分別為0000H-3FFFH、4000H-7FFFH、8000H-BFFFH、C000H-FFFFH。9起止范圍為0000H-3FFFH的存儲器的容量是(16)KB。解:本題屬于常識題,在第十一題時將有解答。10.在MCS-51中,PC和DPTR都用于提供地址,但PC是為了訪問(程序)存儲器提供地址,而DPTR是為訪問(數(shù)據(jù))存儲器提供地址。11.11根地址

溫馨提示

  • 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

提交評論