單片機原理及應用課后習題答案_第1頁
單片機原理及應用課后習題答案_第2頁
單片機原理及應用課后習題答案_第3頁
單片機原理及應用課后習題答案_第4頁
單片機原理及應用課后習題答案_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課后思考題級習題答案思考題與習題1一、填空1.單片機按照用途通常分為 通用型 和 專用型 。2.單片機也稱為 微控制器 和 單片微型計算機 。二、簡答1.什么是單片機?答:單片機也稱微控制器,它是將中央處理器、程序處理器、數(shù)據(jù)處理器、輸入/輸出接口、定時/計數(shù)器串行口、系統(tǒng)總線等集成在一個半導體芯片上的微計算機,因此又稱為單片微型計算機,簡稱為單片機。2. 簡述單片機的特點和應用領域。 答:(1)單片機體積小,應用系統(tǒng)結構簡單,能滿足很多應用領域?qū)τ布δ艿囊蟆?(2)單片機的可靠性高。 (3)單片機的指令系統(tǒng)簡單,易學易用。 (4)單片機的發(fā)展迅速,特別是最近幾年,單片機的內(nèi)部結構越來越完

2、善。3. 寫出AT89S51與AT89S52芯片的主要區(qū)別。 內(nèi)部程序存儲區(qū)容量不同,52的程序存儲空間為8K,內(nèi)部數(shù)據(jù)存儲空間為256B,中斷源8個,定時器計數(shù)器有3個,而51的程序存儲空間為4K,內(nèi)部數(shù)據(jù)存儲空間為128B,中斷源5個,定時器計數(shù)器有2個。思考題與習題2一、填空題1.如果(PSW)=10H, 則內(nèi)部RAM工作寄存器區(qū)的當前寄存器是第二 組寄存器,8個寄存器的單元地址為 10H 17H 。2.為尋址程序狀態(tài)字F0位,可使用的地址和符號有 PSW.5 、 0D0H.5 、 F0 和 0D5H 。3.單片機復位后,(SP)= 07H ,P0P3= FFH ,PC= 0000H ,

3、PSW= 00H A= 00H 。4.AT89S51單片機的程序存儲器的尋址范圍是由 PC 決定的,由于AT89S51單片機的PC是 16 位的,所以最大尋址范圍為 64KB 。5.寫出位地址為20H所在的位,字節(jié)地址 24H.0 。6.寫出字節(jié)地址為20H的單元最高位的位地址為 07H ,最低位的位地址為 00H 。7.如果晶振頻率,則一個時鐘周期為1.66667E-7,一個機器周期為2us。8. AT89S51單片機共有26個特殊功能寄存器。9. AT89S51單片機片外數(shù)據(jù)存儲器最多可以擴展64KB。10.如果CPU從片外ROM的0000H單元開始執(zhí)行程序,那么引腳應接 低電平。二、選擇

4、題1.PC的值是( C )。A.當前指令前一條指令的地址 B.當前正在執(zhí)行指令的地址C.下一條指令的地址 D.控制器中指令寄存器的地址2.對程序計數(shù)器PC的操作是( A )。A.自動進行的 B.通過傳送進行C.通過加“1”指令進行的 D.通過減“1”指令進行3.在AT89S51單片機中P0口作為( D )。A.數(shù)據(jù)總線 B.地址總線C.控制總線 D.數(shù)據(jù)總線和地址總線4. 在AT89S51單片機中( C )。A.具有獨立的專用的地址總線 B.P0口和P1口作為地址總線C.P0口和P2口作為地址總線 D.P2口和P1口作為地址總線三、簡答題1.AT89S51單片機的引腳有何功能?如果使用片內(nèi)RO

5、M,該引腳該如何處理?答: 為該引腳的第一功能,為訪問程序存儲器控制信號。如果使用片內(nèi)ROM,則信號為高電平。2.什么是指令周期,機器周期和時鐘周期?答:指令周期是CPU每取出并執(zhí)行一條指令所需的全部時間;機器周期是CPU完成一個基本操作所需要的時間。時鐘周期是指計算機主時鐘的周期時間。3.堆棧的作用是什么?在程序設計時,為什么要對堆棧指針SP重新賦值?答:堆棧是一個特殊的存儲區(qū),主要功能是暫時存放數(shù)據(jù)和地址,通常用來保護斷點和現(xiàn)場;堆棧指針SP復位后指向07H單元,00H-1FH為工作寄存器區(qū),20H-2FH為位尋址區(qū),這些單元有其他功能,因此在程序設計時,需要對SP重新賦值。4.單片機復位

6、有幾種方法?答:1、上電復位 2、按鍵復位 3、看門狗復位 4、軟件復位5. AT89S51單片機運行出錯或程序陷入死循環(huán)時,如何擺脫困境? 可以采用復位鍵進行復位,使單片機初始化,也可以在軟件中使用看門狗。6. AT89S51單片機P0P3口的驅(qū)動能力如何?如果想獲得較大的驅(qū)動能力,采用低電平輸出還是高電平輸出?答:P0口每位可驅(qū)動8個LSTTL輸入,而P1.P2.P3口的每一位的驅(qū)動能力,只有P0口的一半。當P0口的某位為高電平時,可提供400A的電流;當P0口的某位為低電平(0.45V)時,可提供3.2mA的灌電流,如低電平允許提高,灌電流可相應加大。所以,任何一個口要想獲得較大的驅(qū)動能

7、力,只能用低電平輸出。7. AT89S51單片機內(nèi)部RAM低128單元劃分為幾個部分?每部分有什么特點? 答:工作寄存器區(qū)、位尋址區(qū)、用戶RAM區(qū)。每部分特點如下:00H-1FH為工作寄存器區(qū),共32個單元,被分為4組,每組有八個寄存器(R0-R7)。任意時刻,CPU只能使用一組寄存器,當前正在使用的寄存器組被稱為當前寄存器。在程序運行過程中如果不使用的寄存器也可以作為RAM使用。20H-2FH為位尋址區(qū),共16個單元。這16個單元可以作為字節(jié)單元使用,同時這16個單元的每一位也可以單獨使用,即位尋址。30H-7FH為用戶RAM區(qū),用于存放各種數(shù)據(jù)、中間結果,起到數(shù)據(jù)緩沖的作用。在實際使用中,

8、常需要把堆棧設在用戶RAM中。8. AT89S51單片機的片內(nèi)都包含了哪些功能部件?各個功能部件主要的功能是什么?答: 1個微處理器(CPU);128個數(shù)據(jù)存儲器(RAM)單元;4KB Flash程序存儲器;4個8位可編程并行I/O口;1個全雙工串行口;2個16位定時器/計數(shù)器;1個看門狗定時器;1個中斷系統(tǒng),5個中斷源,2個優(yōu)先級;26個特殊功能寄存器(SFR);1個看門狗定時器。9. 程序存儲器的空間中,有5個特殊單元,分別對應AT89S51單片機5個中斷源的入口地址,寫出這些單元的地址及對應的中斷源。 中斷源中斷入口地址外部中斷00003H定時/計數(shù)器0溢出中斷000BH外部中斷1001

9、3H定時/計數(shù)器1溢出中斷001BH串行中斷0023H10. AT89S51單片機有幾個存儲器空間?畫出它的存儲器結構圖。AT89S51單片機的有3個存儲器空間,即片內(nèi)片外統(tǒng)一編制的程序存儲器,片內(nèi)數(shù)據(jù)存儲器和片外數(shù)據(jù)存儲器。11.什么是空閑方式?怎樣進入和退出空閑方式?答:空閑方式:CPU處于休眠的狀態(tài),而片內(nèi)所有其他外圍設備保持工作狀態(tài),即振蕩器保持工作,時鐘脈沖繼續(xù)輸出到中斷、串行口、定時器等功能部件,使它們繼續(xù)工作,但時鐘脈沖不再送到CPU,因而CPU停止工作。進入:每當CPU執(zhí)行一條將IDL位置1 的指令,就使它進入空閑方式,CPU即停止工作,進入空閑方式。退出:兩種:一是被允許的中

10、斷源請求中斷時,由內(nèi)部的硬件電路清0 IDL位,終止空閑方式;另一種方式是硬件復位。RST引腳上的復位信號直接將IDL為清0,從而使單片機退出空閑方式。12.什么是掉電方式?怎樣進入和退出掉電方式? 答:掉電:振蕩器停止工作,單片機內(nèi)部所有的功能部件全部停止工作。 進入:CPU執(zhí)行一條將PD位置1的指令,就使單片機進入掉電方式。 退出:唯一的方法是硬件復位,復位后單片機內(nèi)部特殊功能寄存器的內(nèi)容被初始化,PCON=0,從而退出掉電方式。13.AT89S51單片機的控制信號引腳有哪些?說出其功能。答: RST(9腳):復位信號輸入端,高電平有效。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平

11、將使單片機復位。ALE (30腳):地址鎖存控制信號。當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE輸出脈沖用于鎖存低8位地址。(29腳):程序儲存允許輸出端,是外部程序存儲器的讀選通信號,低電平有效。當AT89S51 從外部程序存儲器取指令時,每個機器周期兩次有效,即輸出兩個脈沖。當訪問外部數(shù)據(jù)存儲器,不會出現(xiàn)兩次有效的信號。 (31腳): 為該引腳的第一功能,為訪問程序存儲器控制信號。當信號為低電平時,對ROM的讀操作限定在外部程序存儲器;而當信號為高電平時,則對ROM的讀操作是從內(nèi)部程序存儲器開始,并可延續(xù)至外部程序存儲器。4、 設計一個電路,使單片機的P0口能驅(qū)動8只發(fā)光二極管。 思考題與

12、習題3思考題與習題3一、 填空1.假定外部數(shù)據(jù)存儲器3000H單元的內(nèi)容為50H,執(zhí)行下列指令后,累加器A 中的內(nèi)容為 50H 。 MOVDPTR,#3000H MOVXA,DPTR2.假定累加器A中的內(nèi)容為30H,DPTR中的內(nèi)容為2000H,執(zhí)行指令: MOVC A,A+DPTR后,把程序存儲器 2030H 單元的內(nèi)容送入累加器A中。3.已知(30H)=21H,(31H)=04H,說明下列程序的功能,執(zhí)行后(30H)= 04H ,(31H)= 21H 。 PUSH 30H PUSH 31H POP 30H POP 31H 4.已知程序執(zhí)行前,在AT89S51單片機片內(nèi)RAM中,(A)=33

13、H,(R0)=28H,(28H)=0BCH,寫出執(zhí)行如下程序后,(A) = 63H 。ANL A,#60HORL 28H,AXRL A,R0CPL A5.對程序存儲器的讀操作使用的指令 MOVC指令 。6.對外部數(shù)據(jù)存儲器的讀操作使用的指令 MOVX指令 。7.執(zhí)行如下三條指令后,20H單元的內(nèi)容是 0FH           M O V           R 0,20H &

14、#160;   M O V          40H,0 F H    M O V         R 0,40H       二、判斷判斷以下指令的正誤。 (1) MOV R1,R2 ×(2)MOV 20H,R3 &#

15、215;(3)DEC DPTR ×(4)INC DPTR (5)MOVX A,R1 (6)MOVC A,DPTR ×(7)PUSH DPTR ×(8)CLR R1 ×(9)MOV 20H,30H (10)MOV F0,C (11) CPL R7 ×(12)RC A ×三、簡答1.MCS-51共有哪幾種尋址方式?試舉例說明。(1)寄存器尋址方式 MOV A,R2 (2)直接尋址方式 MOV A,30H(3)寄存器間接尋址方式MOV A,R0 (4)立即尋址MOV A,#20H (5)變址尋址 MOVC A,A+ DPTR(6)相對尋址

16、SJMP rel(7)位尋址 MOV C, 0D5H;2.MCS-51指令按功能可以分為哪幾類?每類指令的作用是什么?數(shù)據(jù)傳送類指令(28條);數(shù)據(jù)傳送是指將源地址單元中的數(shù)據(jù)傳送到目的地址單元中,且源地址單元中的數(shù)據(jù)保持不變,或者源地址單元中的數(shù)據(jù)與目的地址單元中的數(shù)據(jù)互換。算術運算類指令(24條);這類指令中,大多數(shù)都要用累加器A來存放源操作數(shù),另一個操作數(shù)是工作寄存器Rn、片內(nèi)RAM單元或立即數(shù)。執(zhí)行指令時,CPU總是將源操作數(shù)與累加器A中的操作數(shù)進行相應操作,然后將結果保留在累加器A中,同時會影響程序狀態(tài)字PSW中的溢出標志OV、進位標志CY、輔助進位標志AC和奇偶標志位P。邏輯運算及

17、移位類指令(25條);在這類指令中,僅當目的操作數(shù)為累加器A時對奇偶標志位P有影響,其余指令均不影響PSW的狀態(tài)。控制轉(zhuǎn)移類指令(17條);位操作類指令(17條)。MCS-51系列單片機的硬件結構中有一個位處理器,對位地址空間具有豐富的位操作指令。由于位操作數(shù)是“位”,取值只能是0或1,故又稱為布爾操作指令。3.訪問SFR,可使用哪些尋址方式?寄存器尋址,直接尋址,位尋址4.執(zhí)行指令:MOV A,R0 ;在程序狀態(tài)字PSW中 RS1=0,RS0=0; RS1=1,RS0=0的兩種情況下,上述指令執(zhí)行結果有何不同?RS1=0,RS0=0時,是將內(nèi)部RAM 00H單元中的內(nèi)容傳送給累加器A, RS

18、1=1,RS0=0時,是將內(nèi)部RAM 10H單元中的內(nèi)容傳送給累加器A4. SJMP(短轉(zhuǎn)移)指令和LJMP(長對轉(zhuǎn)移)指令的目的地址的范圍各是多少?SJMP指令的目的地址范圍是-128B+127B;LJMP指令的目的地址范圍是64KB。5. JB指令和JBC指令的區(qū)別是什么?6. 答:這類指令是判斷直接尋址位是否為“1”或為“0”,當條件滿足時轉(zhuǎn)移,否則繼續(xù)順序執(zhí)行。而JBC指令當條件滿足時,指令執(zhí)行后同時將該位清“0”。7.指出下列每條指令的尋址方式。(1)MOV A,40H ;直接尋址(2)MOV 30H,#00H ;立即尋址(3)SJMP LOOP ;相對尋址(4)MOVC A,A+D

19、PTR ;變址尋址(5)MOVX A,R0 ;寄存器尋址(6)MOV C,20H ;位尋址(7)MOV 20H,R3 ;寄存器尋址(8)MOV 31H,20H ;直接尋址8.已知程序執(zhí)行前,在AT89S51單片機片內(nèi)RAM (10H)=20H,(20H)=33H,(33H)=45H,(45H)=56H,(P1)=30H。分析下列程序按順序執(zhí)行每條指令后的結果。MOV A,33H ;(A)=45HMOV R1,A ;(R1)=45HMOV R1,#0FFH ;(45H)0FFHMOV 45H,33H ;(45H)=45HMOV R0,#10H ;(R0)=10HMOV A,R0 ;(A)=20H

20、MOV P1,#0FFH ;(P1)=0FFHMOV A ,P1; ;(P1)=30HMOV 20H,A ;(20H)=30H9.已知程序執(zhí)行前,在AT89S51單片機片內(nèi)RAM中,(A)=85H,(R0)=20H,(20H)=0AFH,(Cy)=1,(21H)=0FFH。寫出下列指令獨立執(zhí)行后寄存器和存儲單元的內(nèi)容,若該指令影響標志位,寫出CY、AC、OV和P的值。ADD A,R0 ;CY=1,AC=1,OV=1,P=1 ,(A)=34HADDC A, 21H ; CY=1,AC=1, P=1,OV=0 ,(A)=85HSWAP A ; (A)=58H ,P=1SUBB A,#50H ; C

21、Y=0,AC=0, P=1,OV=1 ,(A)=34HDEC R0 ;R0=1FHXCHD A,R0 ;(A)=8FH,(20H)=0A5H,P=110.寫出完成如下要求的指令,但是不能改變未涉及位的內(nèi)容。(1)把ACC.3, ACC.4,ACC.5和 ACC.6置“1”。ORL A,#01111000B(2)把累加器A的中間4位清“0”。ANL A,#11000011B(3)將內(nèi)部數(shù)據(jù)存儲器10H單元中的數(shù)據(jù)的高2位,低3位清“0”。ANL 10H,#00111000B(4)將內(nèi)部數(shù)據(jù)存儲器50H單元中的數(shù)據(jù)所有位取反。XRL 50H,#11111111B(5)將內(nèi)部數(shù)據(jù)存儲器40H單元中的

22、數(shù)據(jù)高4位取反。XRL 40H,#11110000B(6)將內(nèi)部數(shù)據(jù)存儲器10H單元中的數(shù)據(jù)低3位置“1”。ORL 10H,#00000111B11.分析執(zhí)行下列指令序列所實現(xiàn)的邏輯運算式   MOV  C,P1.0    ANL  C,/P1.1  MOV 20H, C MOV  C,/P1.0 ANL  C, P1.1    ORL C, 20H   MOV  P3.0,C   P3.0=(P1.0/P1.1)(/P1.0

23、P1.1) 思考題與習題4一、簡答題1.什么是匯編語言源程序、匯編、匯編程序?(1) 使用匯編語言編寫的程序稱為匯編語言源程序。(2) 匯編語言程序不能直接在計算機上運行,需要將它翻譯成機器語言程序,也就是目標代碼程序,這個翻譯過程稱為匯編。(3) 完成匯編任務的程序成為匯編程序。2.什么叫偽指令,有什么作用?所謂偽指令是 告訴匯編程序應該如何完成匯編工作,只有在匯編前的源程序中才有偽指令,而在匯編后沒有機器代碼產(chǎn)生。偽指令具有控制匯編程序的輸入輸出、定義數(shù)據(jù)和符號、條件匯編、分配存儲空間等功能。二、編程題1. 在外部RAM3000H單元中有一個8位二進制數(shù),試編程將該數(shù)的低四位屏蔽

24、掉,并送給外部RAM3001H單元中。MOVDPTR,#3000HMOVXA,DPTRANLA,#0F0HINC DPTRMOVXDPTR,A 2. 已知,試編寫延時20ms和1s的程序DELAY20MS: MOVR6,#100 ;延時20ms D1: MOVR7,#98 nopD2: DJNZR7,D2 DJNZR6,D1 RET ENDDELAY1S:MOVR7,#250 DEL1:MOVR6,#200 DEL2: MOV R5,#98 DEL3:DJNZR5,DEL3NOPDJNZR6,DEL2DJNZR7,DEL1RETEND3. 用查表的方法求06之間的整數(shù)的立方。已知整數(shù)存在內(nèi)部R

25、AM30H單元中,查表結果回存30H單元。MOVDPTR,#tabMOVA,30HMOVCA,A+DPTRMOV30H,ARetORG1000HTAB:DB00H,01H,08H,1BH,40H,7DH,0D8H4. 若有3個無符號數(shù)x、y、z分別在內(nèi)部存儲器40H、41H、42H單元中,試編寫一個程序,實現(xiàn)x y時,xz的結果存放在43H、44H單元中;當xy時,yz的結果存放入43H、44H單元中。MOV A,40HCLR CSUBB A,41H ;相減比較大小JC L1 MOV A,40H ;x>=ySJMP L2L1:MOV A,41H ;x<yL2:ADD A,42HMO

26、V 43H,AMOV A,#0 ;保存進位到44H單元ADDC A,#0MOV 44H,A 5. 在內(nèi)部RAM的BLOCK開始的單元中有一無符號數(shù)據(jù)塊,數(shù)據(jù)塊長度存人LEN單元。試編程求其中的最小的數(shù)并存入MINI單元。 MOVR2, #11H ;要比較的數(shù)據(jù)字節(jié)數(shù) MOVR1 , #BLOCK;置數(shù)據(jù)塊的首地址 DECLEN MOVA , R1 LOOP:MOVMINI,A INC R1 CLR C SUBBA,R1;兩個數(shù)比較 JC LOOP1;C=1,A中的數(shù)小,跳轉(zhuǎn)到LOOP1 MOVA,R1 ;C=1,則把小數(shù)送給A SJMPLOOP2LOOP1: MOVA,MINI LOOP2:

27、DJNZR2, LOOP;比較是否結束 MOV50H,A ;把大數(shù)存入50H單元 RET6. 在外部RAM3000H起始的單元中存放一組有符號數(shù),字節(jié)個數(shù)存在內(nèi)部RAM20H單元中。統(tǒng)計其中大于0、等于0和小于0的數(shù)的數(shù)目,并把統(tǒng)計結果存放在內(nèi)部RAM21H、22H和23H單元中。MOV DPTR,#3000H ;設置首地址MOV 22H,#0 ;清零MOV 23H,#0MOV 24H,#0L2:MOVX A,DPTR;取數(shù)據(jù)JNZ L1INC 22H ;為0SJMP NEXTL1:JB ACC.7,FUINC 21H ;正數(shù)SJMP NEXTFU:INC 23H ;負數(shù)NEXT:INC DP

28、TRDJNZ 20H,L2 RET7. 查找內(nèi)部RAM20H40H單元中是否有0FFH這一數(shù)據(jù),如果有,將PSW中的F0位置1,沒有則將其清零。MOV R0,#20HMOV R1,#21HCLR F0NEXT:MOV A,R0CJNE A,#0FFH,L1SETB F0SJMP L2L1:INC R0DJNZ R1,NEXTL2:RET8. 在片內(nèi)RAM的30H單元開始,相繼存放5個無符號數(shù),請使用冒泡法編寫程序,使這組數(shù)據(jù)按照從小到大順序排列。 MAIN: MOV R0,#30H ;數(shù)據(jù)存儲區(qū)首單元地址 MOV R7#04H ;各次冒泡比較次數(shù) CLR F0 ;互換標志清“0”LOOP: M

29、OV A,R0 ;取前數(shù) MOV R2,A ;存前數(shù) INC R0 MOV A,R0 ;取后數(shù) CLR C SUBB A,R2 ;比較大小 JNC LOOP1SETB F0 ;互換,置標志位MOV A,R2 ;互換數(shù)據(jù)XCH A,R0DEC R0XCH A,R0INC R0LOOP1: MOV A,R0DJNZ R7,LOOP ;進行下一次比較JB F0,MAIN ;進行下一輪冒泡SJMP $ ;排序結束思考題與習題5一、填空1. AT89S51單片機的五個中斷源的中斷入口地址分別是: 0013H : 001BH T0: 0000BH T1: 000BH ;串行口: 0023H 。2. AT8

30、9S51單片機中斷系統(tǒng)中共有 、 、T0 、T1、串行口 五個中斷源,其中優(yōu)先權最高的是 ,優(yōu)先級最低的是 串行口。3. 在CPU未執(zhí)行同級或更高優(yōu)先級中斷服務程序的條件下,中斷響應等待時間最少需要 3個機器周期 。4. AT89S51單片機的堆棧區(qū)只可設置在 內(nèi)部RAM 30H-7FH ,堆棧寄存器SP是 8 位寄存器。5. 若(IP)=00010100B,則中斷優(yōu)先級最高者為        ,最低者為       T1 。 6.對中

31、斷進行查詢時,查詢的中斷標志位共有   IE0  、  TF0 、  IE1  、  TF1 、  RI 和 TI 六個中斷標志位。 7. AT89S51單片機內(nèi)部有 16 位加1定時器/計數(shù)器,可通過編程決定它們的工作方式,其中可進行13位定時器/計數(shù)器的是方式是方式0 。8. 處理定時器/計數(shù)器的溢出請求有兩種方法,分別是中斷方式和查詢方式。使用中斷方式時,必須 _開中斷_;使用查詢方式時,必須 _關中斷_。 9. 假定定

32、時器1工作在方式 2,單片機的振蕩頻率為 6MHz ,則最大的定時時間為   512us     。 二、選擇題1CPU響應中斷后,能自動清除中斷請求“1”標志的有( C )。A/采用電平觸發(fā)方式 B/采用兩邊觸發(fā)方式C定時/計數(shù)器T0/T1中斷 D串行口中斷TI/RI2AT89S51五個中斷源中,屬外部中斷的有( A B )。A B CT0 DT1 ETI FRI3按下列中斷優(yōu)先順序排列,有可能實現(xiàn)的有( B )。AT1、T0、串行口 B、T1、T0、串行口C、串行口、T0、T1 D、串行口、T0、T14各中斷源發(fā)出的中斷

33、申請信號,都會標記在AT89S51系統(tǒng)中的(  B     )中。ATMOD       BTCON/SCON    CIE        DIP5外中斷初始化的內(nèi)容不包括: (A) A 設置中斷響應方式              

34、0;    B 設置外中斷允許 C 設置中斷總允許                       D 設置中斷觸發(fā)方式 6 在 AT89S51單片機中,需要軟件實現(xiàn)中斷撤銷的是:(D)    A 定時中斷          

35、; B 脈沖觸發(fā)的外部中斷    C 電平觸發(fā)的外部中斷     D 串行口中斷7在下列寄存器中,與定時器 /計數(shù)器控制無關的是:(B)    ATCON BSCON CIE  DTMOD 8與定時工作方式 0 和1相比較,定時工作方式 2具備的特點是:(A)    A計數(shù)溢出后能自動恢復計數(shù)初值   B增加計數(shù)器的位數(shù)    C提高了定時的精度    &#

36、160;  D適于循環(huán)定時和循環(huán)計數(shù) 9對定時器 0進行關中斷操作,需要復位中斷允許控制寄存器的: (A)    AEA 和 ET0  BEA 和 EX0 CEA 和 ET1   DEA 和 EX1 三、判斷題1中斷響應最快響應時間為3個機器周期。(對)2AT89S51每個中斷源相應地在芯片上都有其中斷請求輸入引腳。(錯)   3AT89S51單片機對最高優(yōu)先權的中斷響應是無條件的。(錯)   4中斷初始化時,對中斷控制器的狀態(tài)設置,只可使用位操作指令,而不能使用字

37、節(jié)操作指令。(錯)   5外部中斷入口地址為0013H。(錯) 四、簡答題1. 什么叫中斷?AT89S51單片機能提供幾個中斷源?幾個優(yōu)先級?各個中斷源的優(yōu)先級怎樣確定?在同一優(yōu)先級中各個中斷源的優(yōu)先級怎樣確定? 中斷是指計算機暫時停止原程序執(zhí)行轉(zhuǎn)而為外部設備服務(執(zhí)行中斷服務程序),并在服務完后自動返回原程序執(zhí)行的過程。AT89S51單片機能提供5個中斷源(、T0、T1、RXD/TXD)AT89S51單片機將5個中斷源,分為兩個優(yōu)先級:高優(yōu)先級和低優(yōu)先級。對于同一優(yōu)先級中所有中斷源,按優(yōu)先權先后排序。如表5-1所示。優(yōu)先權最高,串行口優(yōu)先權最低。若在同一時刻發(fā)出請求中斷的

38、兩個中斷源屬于同一優(yōu)先級,CPU先響應優(yōu)先權排在前面的中斷源中斷申請,后響應優(yōu)先權排在后面的中斷源中斷申請。優(yōu)先權由單片機決定,而非編程決定。2 寫出AT89S51單片機5個中斷源的入口地址、中斷請求標志位名稱、位地址及其所在的特殊功能寄存器。 表5-1 AT89S51中斷入口地址及內(nèi)部優(yōu)先權中 斷 源中斷請求標志位中斷入口地址優(yōu)先權IE00003H T0TF0000BHIE10013HT1TF1001BH串行口RI、TI0023H3開AT89S51單片機外中斷1,如何操作?寫出操作指令。 SETB IT1 SETB EA或者MOV IE,#84H4. AT89S51單片機有幾個定時器/計數(shù)器

39、?定時和計數(shù)有何異同?答:兩個;定時器是由外部晶振振蕩頻率產(chǎn)生決定,計數(shù)方式是由內(nèi)部定時器/計數(shù)器產(chǎn)生。作為定時器用時,加法計數(shù)器對內(nèi)部機器周期脈沖計數(shù)。由于機器周期是定值,如機器周期=1s,計數(shù)值100,相當于定時100s。脈沖來自T0(P3.4)或者T1(P3.5)引腳時,可實現(xiàn)外部事件的計數(shù)功能。加法計數(shù)器的初值可以由程序設定,設置的初值不同,計數(shù)值或定時時間就不同。在定時器/計數(shù)器的工作過程中,加法計數(shù)器的內(nèi)容可由程序讀回CPU。5. AT89S51單片機內(nèi)部的定時器/計數(shù)器控制寄存器有哪些?各有何作用? 答:有TMOD和TCON兩個。 TMOD是定時工作方式寄存器,用來控制T0、T1

40、的工作方式。TCON定時器控制寄存器,用來控制定時器的運行及溢出標志等。6. 定時器T0和T1各有幾種工作方式? 答:T0、T1的工作方式有四種,如下表M1 M0工作方式工 作 方 式容量0 0013位計數(shù)器,=13213=81920 1116位計數(shù)器,=16216=655361 02兩個8位/計數(shù)器,初值自動裝入,=828=2561 13兩個8位/計數(shù)器,僅適用于T0,=828=2567.設AT89S51單片機的晶振頻率為12MHz,問定時器處于不同的工作方式時,最大定時范圍分別是多少?機器周期為1us;最大定時范圍如下:方式0為8192us,方式1為65536us,方式2或方式3均為256

41、us。7. 設單片機的12MHz,要求用T0定時150ms,分別計算采用定時方式0、定時方式1和定時方式2的定時初值。方式0的初值1FCEH,方式1的初值FF6AH,方式2的初值6AH。五、編程題1.使用定時器從P1.0輸出周期為1秒的方波,設系統(tǒng)時鐘頻率為12MHz。查詢方式:ORG 0000HLJMPMAINORG0030HMAIN:MOVTMOD , #01H ;定時器0,方式1MOVTH0 , #3CH ;設置初值,定時100msMOVTL0 , #0B0HMOVR2 , #10 ;運行10次,定時1SCLRP1.0 CLR EASETBTR0LOOP:JNBTF0 , LOOPCLR

42、TF0 ;清除標志MOVTH0 , #3CH ;重置初值MOVTL0 , #0B0HDJNZR2 , LOOPMOVR2 , #10CPLP1.0AJMPLOOPEND2. 將定時器T1設置為外部事件計數(shù)器,要求每計500個脈沖,T1轉(zhuǎn)為定時方式,在P1.2輸出一個脈寬10ms的正脈沖。設系統(tǒng)時鐘頻率為12MHz。ORG0000HLJMPMAIN ORG0030HMAIN:MOVTMOD,#50H;T1方式1,計數(shù)MOVTH1,#01H ;設置初值MOVTL1,#0F4HSETBTR1 ;啟動計數(shù),使用查詢方式CLRP1.2 CLR EA ;查詢方式LOOP:JNBTF1 , LOOPCLRT

43、F1MOVTMOD,#10H;T1方式1,定時MOVTH1,#0D8H ;設置初值MOVTL1,#0F0H SETBP1.2 ;輸出正脈沖LOOP1:JNBTF1,LOOP1 CLRTF1LJMPMAIN ENDC語言方式:#include<reg51.h> sbit P1_0=P12; /已仿真調(diào)試成功int i;void main()while(1) TMOD=0x05;/T0計數(shù),方式一 TH0=(65536-500)/256;/計數(shù) TL0=(65536-500)%256;TR0=1;P1_0=0;while(!TF0);/等待計數(shù)溢出TF0=0;/溢出標志復位P1_0=1

44、; TMOD=0x01;/T0定時,方式一 TH0=(65536-10000)/256;/定時10ms TL0=(65536-10000)%256;TR0=1; /啟動T0while(!TF0);/等待定時時間溢出TF0=0; /溢出標志復位P1_0=0;3. 已知12MHz,采用查詢方式編寫24小時制的模擬電子鐘程序,秒、分鐘、小時分別存放于R2、R3、R4中。ORG0000HLJMPMAINORG0030HMAIN:MOVTMOD , #01HMOVTH0 , #3CHMOVTL0 , #0B0HMOVR1 , #20 SETBTR0MOVR2 , #00H ; 秒MOVR3 , #00H

45、 ; 分MOVR4 , #00H ; 時MOVA , #00HLOOP:MOVDPTR,#0300H;查7段碼ADDA , R4DAAMOV40H , AANLA , #0F0HMOVCA,A+DPTRMOVP0 , A ; 送P0顯示MOVP1 , #20H ; 位選LCALLDELAY20MSMOVA , 40HANLA , #0FHMOVCA,A+DPTRMOVP0 , A ; 送P0顯示MOVP1 , #10H ; 位選LCALLDELAY20MSADDA , R3DAAMOV30H , AANLA , #0F0HMOVCA,A+DPTRMOVP0 , A ; 送P0顯示MOVP1 ,

46、 #08H ; 位選LCALLDELAY20MSMOVA , 30HANLA , #0FHMOVCA,A+DPTRMOVP0 , A ; 送P0顯示MOVP1 , #04H ; 位選LCALLDELAY20MSADDA , R4DAAMOV20H , AANLA , #0F0HMOVCA,A+DPTRMOVP0 , A ; 送P0顯示MOVP1 , #02H ; 位選LCALLDELAY20MSMOVA , 20HANLA , #0FHMOVCA,A+DPTRMOVP0 , A ; 送P0顯示MOVP1 , #01H ; 位選LCALLDELAY20MSJNBTF0 , LOOP; 定時到MO

47、VTH0 , #3CHMOVTL0 , #0B0HCLRTF0DJNZR1 , LOOPMOVR1 , #20INCR2CJNER2 , #60 , LOOPMOVR2 , #00HINCR3CJNER3 , #60 , LOOPMOVR3 , #00HINCR4CJNER4 , #24 , LOOPMOVR4 , #00HLJMPLOOPDELAY20MS:MOV R7,#5D0: MOV R6,#200D1: NOP NOP NOP DJNZ R6,D1 DJNZ R7,D0 RETORG 0300HTAB2: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H; 共陰

48、DB 7FH,6FH,77H,7CH,39H,5EH,79H,71HEND 思考題與習題6一、填空1. LED數(shù)碼管的使用與發(fā)光二極管相同,根據(jù)其材料不同正向壓降一般為 5V,額定電流為 5 m A,最大電流為 20 m A。2.在單片機系統(tǒng)中,常用的顯示器有 LED發(fā)光管、LED數(shù)碼管和LED液晶屏 等顯示方式。3.鍵盤掃描控制方式可分為隨機方式 控制、中斷掃描控制和 定時掃描控制方式。4.LED顯示器的靜態(tài)驅(qū)動顯示的優(yōu)點是: 顯示穩(wěn)定,在LED導通、電流已定的情況下數(shù)碼管的亮度高??刂葡到y(tǒng)在運行過程中,僅僅在需要更新顯示內(nèi)容時,CPU才執(zhí)行一次顯示更新子程序,這樣大大節(jié)省了CPU的時間,提

49、高了CPU的工作效率 ;缺點是: 位數(shù)較多時,所需的I/O接口較多,硬件開銷太大 。動態(tài)驅(qū)動顯示的優(yōu)點是: 節(jié)省硬件資源,成本較低 ;缺點是: 在控制運行過程中,為了保證顯示器正常顯示,CPU必須每隔一段時間執(zhí)行一次顯示子程序 。5.矩陣鍵盤的識別有 掃描法 和 線反轉(zhuǎn)法 兩種方式。二、判斷題1.為了消除按鍵的抖動,常用的方法有硬件和軟件兩種方法。( 對 )2.LED顯示器有兩種顯示方式:靜態(tài)方式和動態(tài)方式。( 對 ) 3.LED數(shù)碼管顯示器有共陰極和共陽極兩種。( 對 )三、簡答題1.為什么要消除按鍵的機械抖動?消除按鍵抖動的方法有幾種?答:抖動現(xiàn)象會引起單片機對一次按鍵操作進行多次處理。

50、去抖動的方法有硬件和軟件兩種方法。2. 說明矩陣式鍵盤按鍵按下的識別原理。 答: 判別鍵盤上有無按鍵閉合。由AT89S51單片機向所有行線發(fā)出低電平信號,如果該行線所連接的鍵沒有按下,則連線所連接的輸出端口得到的是全1信號;如果有鍵按下,則得到的是非全1信號。 判別鍵號。方法是先掃描第0行,即輸出0111(第0行為0,其余3行為1),然后讀入列信號,判斷是否為全1。若是全1,則表明當前行沒有鍵按下,行輸出值右移,即輸出1011(第1行為0,其余3行為1),再次讀入列信號,判斷是否為全1。如此逐行掃描下去,直到讀入的列信號不為全1為止。根據(jù)此時的行號和列號即可計算出當前閉合的鍵號。 鍵碼計算 如

51、圖6-12所示,鍵號是按從左到右從上到下的順序編排的,各行的首號依次是00H、08H、10H、18H,如列號按07順序排列,則鍵碼的計算公式為:鍵值=為低電平行的首鍵號為低電平的列號3.鍵盤有哪三種工作方式,他們各自的工作原理及特點是什么?答:隨機方式、中斷掃描方式和定時掃描方式三種 (1)隨機方式 是利用CPU的空閑時間,調(diào)用鍵盤掃描子程序,響應鍵盤的輸入請求。 (2)中斷掃描方式 在圖6-10中,當按鍵按下時,列線中必有一個為低電平,經(jīng)與門輸出低電平,向單片機引腳發(fā)出中斷請求,CPU執(zhí)行中斷服務程序,判斷閉合的鍵號,并進行相應的處理,這種方式可大大提高CPU的效率。 (3)定時掃描方式 利用單片機內(nèi)部定時器,每隔一定時間CPU執(zhí)行一次鍵盤掃描程序,并在有鍵閉合時轉(zhuǎn)入該鍵的功能處理程序。定時掃描方式要求掃描間隔時間不能太長,

溫馨提示

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

最新文檔

評論

0/150

提交評論