單片機(jī)原理及應(yīng)用課后習(xí)題答案
《單片機(jī)原理及應(yīng)用課后習(xí)題答案》由會員分享,可在線閱讀,更多相關(guān)《單片機(jī)原理及應(yīng)用課后習(xí)題答案(36頁珍藏版)》請在裝配圖網(wǎng)上搜索。
課后思考題級習(xí)題答案 思考題與習(xí)題1 一、填空 1.單片機(jī)按照用途通常分為 通用型 和 專用型 。 2.單片機(jī)也稱為 微控制器 和 單片微型計算機(jī) 。 二、簡答 1.什么是單片機(jī)? 答:單片機(jī)也稱微控制器,它是將中央處理器、程序處理器、數(shù)據(jù)處理器、輸入/輸出接口、定時/計數(shù)器串行口、系統(tǒng)總線等集成在一個半導(dǎo)體芯片上的微計算機(jī),因此又稱為單片微型計算機(jī),簡稱為單片機(jī)。 2. 簡述單片機(jī)的特點和應(yīng)用領(lǐng)域。 答:(1)單片機(jī)體積小,應(yīng)用系統(tǒng)結(jié)構(gòu)簡單,能滿足很多應(yīng)用領(lǐng)域?qū)τ布δ艿囊蟆? (2)單片機(jī)的可靠性高。 (3)單片機(jī)的指令系統(tǒng)簡單,易學(xué)易用。 (4)單片機(jī)的發(fā)展迅速,特別是最近幾年,單片機(jī)的內(nèi)部結(jié)構(gòu)越來越完善。 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個。 思考題與習(xí)題2 一、填空題 1.如果(PSW)=10H, 則內(nèi)部RAM工作寄存器區(qū)的當(dāng)前寄存器是第二 組寄存器,8個寄存器的單元地址為 10H ~ 17H 。 2.為尋址程序狀態(tài)字F0位,可使用的地址和符號有 PSW.5 、 0D0H.5 、 F0 和 0D5H 。 3.單片機(jī)復(fù)位后,(SP)= 07H ,P0~P3= FFH ,PC= 0000H ,PSW= 00H A= 00H 。 4.AT89S51單片機(jī)的程序存儲器的尋址范圍是由 PC 決定的,由于AT89S51單片機(jī)的PC是 16 位的,所以最大尋址范圍為 64KB 。 5.寫出位地址為20H所在的位,字節(jié)地址 24H.0 。 6.寫出字節(jié)地址為20H的單元最高位的位地址為 07H ,最低位的位地址為 00H 。 7.如果晶振頻率,則一個時鐘周期為1.66667E-7,一個機(jī)器周期為2us。 8. AT89S51單片機(jī)共有26個特殊功能寄存器。 9. AT89S51單片機(jī)片外數(shù)據(jù)存儲器最多可以擴(kuò)展64KB。 10.如果CPU從片外ROM的0000H單元開始執(zhí)行程序,那么引腳應(yīng)接 低電平。 二、選擇題 1.PC的值是( C )。 A.當(dāng)前指令前一條指令的地址 B.當(dāng)前正在執(zhí)行指令的地址 C.下一條指令的地址 D.控制器中指令寄存器的地址 2.對程序計數(shù)器PC的操作是( A )。 A.自動進(jìn)行的 B.通過傳送進(jìn)行 C.通過加“1”指令進(jìn)行的 D.通過減“1”指令進(jìn)行 3.在AT89S51單片機(jī)中P0口作為( D )。 A.數(shù)據(jù)總線 B.地址總線 C.控制總線 D.數(shù)據(jù)總線和地址總線 4. 在AT89S51單片機(jī)中( C )。 A.具有獨立的專用的地址總線 B.P0口和P1口作為地址總線 C.P0口和P2口作為地址總線 D.P2口和P1口作為地址總線 三、簡答題 1.AT89S51單片機(jī)的引腳有何功能?如果使用片內(nèi)ROM,該引腳該如何處理? 答: 為該引腳的第一功能,為訪問程序存儲器控制信號。 如果使用片內(nèi)ROM,則信號為高電平。 2.什么是指令周期,機(jī)器周期和時鐘周期? 答:指令周期是CPU每取出并執(zhí)行一條指令所需的全部時間;機(jī)器周期是CPU完成一個基本操作所需要的時間。時鐘周期是指計算機(jī)主時鐘的周期時間。 3.堆棧的作用是什么?在程序設(shè)計時,為什么要對堆棧指針SP重新賦值?答:堆棧是一個特殊的存儲區(qū),主要功能是暫時存放數(shù)據(jù)和地址,通常用來保護(hù)斷點和現(xiàn)場;堆棧指針SP復(fù)位后指向07H單元,00H-1FH為工作寄存器區(qū),20H-2FH為位尋址區(qū),這些單元有其他功能,因此在程序設(shè)計時,需要對SP重新賦值。 4.單片機(jī)復(fù)位有幾種方法? 答:1、上電復(fù)位 2、按鍵復(fù)位 3、看門狗復(fù)位 4、軟件復(fù)位 5. AT89S51單片機(jī)運行出錯或程序陷入死循環(huán)時,如何擺脫困境? 可以采用復(fù)位鍵進(jìn)行復(fù)位,使單片機(jī)初始化,也可以在軟件中使用看門狗。 6. AT89S51單片機(jī)P0~P3口的驅(qū)動能力如何?如果想獲得較大的驅(qū)動能力,采用低電平輸出還是高電平輸出? 答:P0口每位可驅(qū)動8個LSTTL輸入,而P1.P2.P3口的每一位的驅(qū)動能力,只有P0口的一半。當(dāng)P0口的某位為高電平時,可提供400μA的電流;當(dāng)P0口的某位為低電平(0.45V)時,可提供3.2mA的灌電流,如低電平允許提高,灌電流可相應(yīng)加大。所以,任何一個口要想獲得較大的驅(qū)動能力,只能用低電平輸出。 7. AT89S51單片機(jī)內(nèi)部RAM低128單元劃分為幾個部分?每部分有什么特點? 答:工作寄存器區(qū)、位尋址區(qū)、用戶RAM區(qū)。 每部分特點如下:00H-1FH為工作寄存器區(qū),共32個單元,被分為4組,每組有八個寄存器(R0-R7)。任意時刻,CPU只能使用一組寄存器,當(dāng)前正在使用的寄存器組被稱為當(dāng)前寄存器。在程序運行過程中如果不使用的寄存器也可以作為RAM使用。 20H-2FH為位尋址區(qū),共16個單元。這16個單元可以作為字節(jié)單元使用,同時這16個單元的每一位也可以單獨使用,即位尋址。 30H-7FH為用戶RAM區(qū),用于存放各種數(shù)據(jù)、中間結(jié)果,起到數(shù)據(jù)緩沖的作用。在實際使用中,常需要把堆棧設(shè)在用戶RAM中。 8. AT89S51單片機(jī)的片內(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個特殊單元,分別對應(yīng)AT89S51單片機(jī)5個中斷源的入口地址,寫出這些單元的地址及對應(yīng)的中斷源。 中斷源 中斷入口地址 外部中斷0 0003H 定時/計數(shù)器0溢出中斷 000BH 外部中斷1 0013H 定時/計數(shù)器1溢出中斷 001BH 串行中斷 0023H 10. AT89S51單片機(jī)有幾個存儲器空間?畫出它的存儲器結(jié)構(gòu)圖。 AT89S51單片機(jī)的有3個存儲器空間,即片內(nèi)片外統(tǒng)一編制的程序存儲器,片內(nèi)數(shù)據(jù)存儲器和片外數(shù)據(jù)存儲器。 11.什么是空閑方式?怎樣進(jìn)入和退出空閑方式? 答:空閑方式:CPU處于休眠的狀態(tài),而片內(nèi)所有其他外圍設(shè)備保持工作狀態(tài),即振蕩器保持工作,時鐘脈沖繼續(xù)輸出到中斷、串行口、定時器等功能部件,使它們繼續(xù)工作,但時鐘脈沖不再送到CPU,因而CPU停止工作。 進(jìn)入:每當(dāng)CPU執(zhí)行一條將IDL位置1 的指令,就使它進(jìn)入空閑方式,CPU即停止工作,進(jìn)入空閑方式。 退出:兩種:一是被允許的中斷源請求中斷時,由內(nèi)部的硬件電路清0 IDL位,終止空閑方式;另一種方式是硬件復(fù)位。RST引腳上的復(fù)位信號直接將IDL為清0,從而使單片機(jī)退出空閑方式。 12.什么是掉電方式?怎樣進(jìn)入和退出掉電方式? 答:掉電:振蕩器停止工作,單片機(jī)內(nèi)部所有的功能部件全部停止工作。 進(jìn)入:CPU執(zhí)行一條將PD位置1的指令,就使單片機(jī)進(jìn)入掉電方式。 退出:唯一的方法是硬件復(fù)位,復(fù)位后單片機(jī)內(nèi)部特殊功能寄存器的內(nèi)容被初始化,PCON=0,從而退出掉電方式。 13.AT89S51單片機(jī)的控制信號引腳有哪些?說出其功能。 答: RST(9腳):復(fù)位信號輸入端,高電平有效。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機(jī)器周期以上高電平將使單片機(jī)復(fù)位。 ALE (30腳):地址鎖存控制信號。當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE輸出脈沖用于鎖存低8位地址。 (29腳):程序儲存允許輸出端,是外部程序存儲器的讀選通信號,低電平有效。當(dāng)AT89S51 從外部程序存儲器取指令時,每個機(jī)器周期兩次有效,即輸出兩個脈沖。當(dāng)訪問外部數(shù)據(jù)存儲器,不會出現(xiàn)兩次有效的信號。 (31腳): 為該引腳的第一功能,為訪問程序存儲器控制信號。當(dāng)信號為低電平時,對ROM的讀操作限定在外部程序存儲器;而當(dāng)信號為高電平時,則對ROM的讀操作是從內(nèi)部程序存儲器開始,并可延續(xù)至外部程序存儲器。 4、 設(shè)計一個電路,使單片機(jī)的P0口能驅(qū)動8只發(fā)光二極管。 思考題與習(xí)題3 思考題與習(xí)題3 一、 填空 1.假定外部數(shù)據(jù)存儲器3000H單元的內(nèi)容為50H,執(zhí)行下列指令后,累加器A 中的內(nèi)容為 50H 。 MOV DPTR,#3000H MOVX A,@DPTR 2.假定累加器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單片機(jī)片內(nèi)RAM中,(A)=33H,(R0)=28H,(28H)=0BCH,寫出執(zhí)行如下程序后,(A) = 63H 。 ANL A,#60H ORL 28H,A XRL A,@R0 CPL A 5.對程序存儲器的讀操作使用的指令 MOVC指令 。 6.對外部數(shù)據(jù)存儲器的讀操作使用的指令 MOVX指令 。 7.執(zhí)行如下三條指令后,20H單元的內(nèi)容是 0FH MOVR0,#20H MOV40H,#0FH MOV﹫R0,40H 二、判斷 判斷以下指令的正誤。 (1) MOV R1,R2 (2)MOV 20H,@R3 (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)相對尋址 SJMP rel (7)位尋址 MOV C, 0D5H; 2.MCS-51指令按功能可以分為哪幾類?每類指令的作用是什么? ①數(shù)據(jù)傳送類指令(28條);數(shù)據(jù)傳送是指將源地址單元中的數(shù)據(jù)傳送到目的地址單元中,且源地址單元中的數(shù)據(jù)保持不變,或者源地址單元中的數(shù)據(jù)與目的地址單元中的數(shù)據(jù)互換。 ②算術(shù)運算類指令(24條);這類指令中,大多數(shù)都要用累加器A來存放源操作數(shù),另一個操作數(shù)是工作寄存器Rn、片內(nèi)RAM單元或立即數(shù)。執(zhí)行指令時,CPU總是將源操作數(shù)與累加器A中的操作數(shù)進(jìn)行相應(yīng)操作,然后將結(jié)果保留在累加器A中,同時會影響程序狀態(tài)字PSW中的溢出標(biāo)志OV、進(jìn)位標(biāo)志CY、輔助進(jìn)位標(biāo)志AC和奇偶標(biāo)志位P。 ③邏輯運算及移位類指令(25條);在這類指令中,僅當(dāng)目的操作數(shù)為累加器A時對奇偶標(biāo)志位P有影響,其余指令均不影響PSW的狀態(tài)。 ④控制轉(zhuǎn)移類指令(17條); ⑤位操作類指令(17條)。MCS-51系列單片機(jī)的硬件結(jié)構(gòu)中有一個位處理器,對位地址空間具有豐富的位操作指令。由于位操作數(shù)是“位”,取值只能是0或1,故又稱為布爾操作指令。 3.訪問SFR,可使用哪些尋址方式? 寄存器尋址,直接尋址,位尋址 4.執(zhí)行指令:MOV A,R0 ; 在程序狀態(tài)字PSW中 ⑴ RS1=0,RS0=0; ⑵ RS1=1,RS0=0的兩種情況下,上述指令執(zhí)行結(jié)果有何不同? RS1=0,RS0=0時,是將內(nèi)部RAM 00H單元中的內(nèi)容傳送給累加器A, RS1=1,RS0=0時,是將內(nèi)部RAM 10H單元中的內(nèi)容傳送給累加器A 4. SJMP(短轉(zhuǎn)移)指令和LJMP(長對轉(zhuǎn)移)指令的目的地址的范圍各是多少? SJMP指令的目的地址范圍是-128B~+127B; LJMP指令的目的地址范圍是64KB。 5. JB指令和JBC指令的區(qū)別是什么? 6. 答:這類指令是判斷直接尋址位是否為“1”或為“0”,當(dāng)條件滿足時轉(zhuǎn)移,否則繼續(xù)順序執(zhí)行。而JBC指令當(dāng)條件滿足時,指令執(zhí)行后同時將該位清“0”。 7.指出下列每條指令的尋址方式。 (1)MOV A,40H ;直接尋址 (2)MOV 30H,#00H ;立即尋址 (3)SJMP LOOP ;相對尋址 (4)MOVC A,@A+DPTR ;變址尋址 (5)MOVX A,@R0 ;寄存器尋址 (6)MOV C,20H ;位尋址 (7)MOV 20H,R3 ;寄存器尋址 (8)MOV 31H,20H ;直接尋址 8. 已知程序執(zhí)行前,在AT89S51單片機(jī)片內(nèi)RAM (10H)=20H,(20H)=33H,(33H)=45H,(45H)=56H,(P1)=30H。分析下列程序按順序執(zhí)行每條指令后的結(jié)果。 MOV A,33H ;(A)=45H MOV R1,A ;(R1)=45H MOV @R1,#0FFH ;(45H)0FFH MOV 45H,33H ;(45H)=45H MOV R0,#10H ;(R0)=10H MOV A,@R0 ;(A)=20H MOV P1,#0FFH ;(P1)=0FFH MOV A ,P1; ;(P1)=30H MOV 20H,A ;(20H)=30H 9.已知程序執(zhí)行前,在AT89S51單片機(jī)片內(nèi)RAM中,(A)=85H,(R0)=20H,(20H)=0AFH,(Cy)=1,(21H)=0FFH。寫出下列指令獨立執(zhí)行后寄存器和存儲單元的內(nèi)容,若該指令影響標(biāo)志位,寫出CY、AC、OV和P的值。 ADD A,@R0 ;CY=1,AC=1,OV=1,P=1 ,(A)=34H ADDC A, 21H ; CY=1,AC=1, P=1,OV=0 ,(A)=85H SWAP A ; (A)=58H ,P=1 SUBB A,#50H ; CY=0,AC=0, P=1,OV=1 ,(A)=34H DEC R0 ;R0=1FH XCHD A,@R0 ;(A)=8FH,(20H)=0A5H,P=1 10. 寫出完成如下要求的指令,但是不能改變未涉及位的內(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單元中的數(shù)據(jù)高4位取反。 XRL 40H,#11110000B (6)將內(nèi)部數(shù)據(jù)存儲器10H單元中的數(shù)據(jù)低3位置“1”。 ORL 10H,#00000111B 11.分析執(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∧P1.1) 思考題與習(xí)題4 一、簡答題 1.什么是匯編語言源程序、匯編、匯編程序? (1) 使用匯編語言編寫的程序稱為匯編語言源程序。 (2) 匯編語言程序不能直接在計算機(jī)上運行,需要將它翻譯成機(jī)器語言程序,也就是目標(biāo)代碼程序,這個翻譯過程稱為匯編。 (3) 完成匯編任務(wù)的程序成為匯編程序。 2.什么叫偽指令,有什么作用? 所謂偽指令是 告訴匯編程序應(yīng)該如何完成匯編工作,只有在匯編前的源程序中才有偽指令,而在匯編后沒有機(jī)器代碼產(chǎn)生。 偽指令具有控制匯編程序的輸入輸出、定義數(shù)據(jù)和符號、條件匯編、分配存儲空間等功能。 二、編程題 1. 在外部RAM3000H單元中有一個8位二進(jìn)制數(shù),試編程將該數(shù)的低四位屏蔽掉,并送給外部RAM3001H單元中。 MOV DPTR,#3000H MOVX A,@DPTR ANL A,#0F0H INC DPTR MOVX @DPTR,A 2. 已知,試編寫延時20ms和1s的程序 DELAY20MS: MOV R6,#100 ;延時20ms D1: MOV R7,#98 nop D2: DJNZ R7,D2 DJNZ R6,D1 RET END DELAY1S: MOV R7,#250 DEL1: MOV R6,#200 DEL2: MOV R5,#98 DEL3: DJNZ R5,DEL3 NOP DJNZ R6,DEL2 DJNZ R7,DEL1 RET END 3. 用查表的方法求0~6之間的整數(shù)的立方。已知整數(shù)存在內(nèi)部RAM30H單元中,查表結(jié)果回存30H單元。 MOV DPTR,#tab MOV A,30H MOVC A,@A+DPTR MOV 30H,A Ret ORG 1000H TAB: DB 00H,01H,08H,1BH,40H,7DH,0D8H 4. 若有3個無符號數(shù)x、y、z分別在內(nèi)部存儲器40H、41H、42H單元中,試編寫一個程序,實現(xiàn)x≥ y時,x+z的結(jié)果存放在43H、44H單元中;當(dāng)x<y時,y+z的結(jié)果存放入43H、44H單元中。 MOV A,40H CLR C SUBB A,41H ;相減比較大小 JC L1 MOV A,40H ;x>=y SJMP L2 L1:MOV A,41H ;x- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
15 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 單片機(jī) 原理 應(yīng)用 課后 習(xí)題 答案
鏈接地址:http://ioszen.com/p-10410622.html