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

下載本文檔

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

文檔簡介

1、第1章1-1 什么是單片機?它與一般微型計算機在結(jié)構(gòu)上何區(qū)別?答:單片微型計算機簡稱為單片機(Single Chip Computer),又稱為微控制器(MCU即Micro-Controller Unit)。它是在一塊芯片上集成了中央處理器(CPU)、存儲器(RAM、ROM)、定時器/計數(shù)器、中斷控制、各種輸入/輸出(I/O)接口(如并行I/O口、串行I/O口和A/D轉(zhuǎn)換器)等為一體的器件。 微型計算機的基本結(jié)構(gòu)由CPU(運算器、控制器)、存儲器、輸入設備和輸出設備五大部分組成,各部分通過外部總線連接而成為一體。單片機的結(jié)構(gòu)是在一塊芯片上集成了中央處理器(CPU)、存儲器、定時器/計數(shù)器、中斷

2、控制、各種輸入/輸出接口(如并行I/O口、串行I/O口和A/D轉(zhuǎn)換器)等,它們通過單片機內(nèi)部部總線連接而成為一體。1-2 MCS-51系列單片機內(nèi)部資源配置如何?試舉例說明8051與51兼容的單片機的異同。答:MCS-51系列單片機內(nèi)部資源配置AT89S5312KB Flash ROM256B3×163219/2SPI,WDT,2個數(shù)據(jù)指針W77E5832KB Flash ROM256B+1024B3×1636212/2擴展了4位I/O口,雙數(shù)據(jù)指針,WDT。資源。第2章2-1 MCS-51系列單片機內(nèi)部有哪些主要的邏輯部件?答: 一個8位CPU;一個片內(nèi)振蕩器及時鐘電路;

3、4K字節(jié)ROM程序存儲器;128字節(jié)RAM數(shù)據(jù)存儲器;兩個16位定時器/計數(shù)器;可尋址64K外部數(shù)據(jù)存儲器和64K外部程序存儲器空間的控制電路;32條可編程的I/O線(四個8位并行I/O端口);一個可編程全雙工串行口;具有五個中斷源、兩個優(yōu)先級嵌套中斷結(jié)構(gòu)2-2 MCS-51設有4個8位端口(32條I/O線),實際應用中8位數(shù)據(jù)信息由哪一個端口傳送?16位地址線怎樣形成?P3口有何功能?答:實際應用中8位數(shù)據(jù)信息由P1口傳送。16位地址線由P0口輸出低8位地址A7A0,P2口輸出高8位地址A15A8。P3口是一個多用途的端口,也是一個準雙向口,作為第一功能使用時,其功能同P1口;當作第二功能使

4、用時,P3.0RXD串行輸入(數(shù)據(jù)接收)口,P3.1TXD串行輸出(數(shù)據(jù)發(fā)送)口,P3.2外部中斷0輸入線,P3.3外部中斷1輸入線,P3.4T0定時器0外部輸入,P3.5T1定時器1外部輸入,P3.6外部數(shù)據(jù)存儲器寫選通信號輸出,P3.7外部數(shù)據(jù)存儲器讀選通信號輸入。2-3 MCS-51的存儲器結(jié)構(gòu)與一般的微型計算機有何不同?程序存儲器和數(shù)據(jù)存儲器各有何作用?答:MCS-51存儲器結(jié)構(gòu)與常見的微型計算機的配置方式不同,它把程序存儲器和數(shù)據(jù)存儲器分開,各有自已的尋址系統(tǒng)、控制信號和功能。 程序存儲器用來存放程序和始終要保留的常數(shù),如經(jīng)匯編后所編程序的機器碼。數(shù)據(jù)存儲器通常用來存放程序運行中所需

5、要的常數(shù)或變量,例如模/數(shù)轉(zhuǎn)換時實時采集的數(shù)據(jù)等。2-4 MCS-51內(nèi)部RAM區(qū)功能結(jié)構(gòu)如何分配?4組工作寄存器使用時如何選用?位尋址區(qū)域的字節(jié)地址范圍是多少?答:MCS-51系列單片機內(nèi)部數(shù)據(jù)存儲器:00H 7FH單元組成的低128字節(jié)地址空間的RAM區(qū),又分為為工作寄存器區(qū)(00H1FH)、位尋址區(qū)(20H2FH)和數(shù)據(jù)緩沖區(qū)(30H7FH)。 80H FFH(128 255)單元組成的高128字節(jié)地址空間的特殊功能寄存器(又稱SFR)區(qū)。對于8032、8052、8752的單片機還有80HFFH單元組成的高128字節(jié)地址空間的RAM區(qū)。 4組工作寄存區(qū)是由程序狀態(tài)字PSW(特殊功能寄存器

6、,字節(jié)地址為0D0H)中的D4、D3位(RS1和RS0)來決定的。位尋址區(qū)域的字節(jié)地址范圍是20H2FH(對應的位地址范圍是00H7FH)。2-5 特殊功能寄存器中哪些寄存器可以位尋址?它們的字節(jié)地址是什么?答:P0字節(jié)地址80H,TCON字節(jié)地址88H,P1字節(jié)地址90H,SCON字節(jié)地址98H,P2字節(jié)地址A0H,IE字節(jié)地址A8H,P3字節(jié)地址B0H,IP字節(jié)地址B8H,PSW字節(jié)地址D0H,ACC字節(jié)地址E0H,B字節(jié)地址F0H。2-6 簡述程序狀態(tài)字PSW中各位的含義。答:CY(PSW·7)進位標志,AC(PSW·6)輔助進位標志,F(xiàn)0(PSW·5)用戶

7、標志位RS1、RS0(PSW·4、PSW·3)寄存器區(qū)選擇控制位,OV(PSW·2)溢出標志,P(PSW0)奇偶標志,每個指令周期都由硬件來置位或清“0”,以表示累加器A 中1的位數(shù)的奇偶數(shù)2-7 一個時鐘頻率為6MHz的單片機應用系統(tǒng),它的時鐘周期、機器周期、指令周期分別是多少?答:時鐘周期=13us、機器周期=2us、指令周期=2us。2-8 單片機有幾種主要的工作方式?其特點各是什么?答:有復位、程序執(zhí)行、低功耗三種主要工作方式。復位操作是單片機的初始化操作,單片機在進入運行前和在運行過程中程序出錯或操作失誤使系統(tǒng)不能正常運行時,需要進行復位操作,復位操作后

8、,程序?qū)?000H開始重新執(zhí)行。單片機的程序的執(zhí)行過程分為取指令、譯碼、執(zhí)行三個過程。 待機方式,也稱為空閑工作。系統(tǒng)進入待機工作方式時,振蕩器繼續(xù)工作,中斷系統(tǒng)、串行口以及定時器模塊由時鐘驅(qū)動繼續(xù)工作,但時鐘不提供給CPU。單片機進入掉電工作方式,只有內(nèi)部RAM單元的內(nèi)容被保存,其它一切工作都停止。2-9 堆棧有何功能?堆棧指針的作用是什么?二者的關系?為什么在程序設計時,要對SP重新賦值?答:堆棧的主要功能:保護斷點和程序現(xiàn)場,保存用戶數(shù)據(jù)。堆棧指針的作用是:堆棧指針SP是一個8位特殊功能寄存器,指示出堆棧頂部在內(nèi)部RAM中的位置。兩者的關系:堆棧指針SP給定當前的棧頂,SP的初始值越小

9、,堆棧深度就越深。系統(tǒng)復位后,SP初始化為07H,使得堆棧事實上由08H 單元開始??紤]到08H1FH單元分屬于工作寄存器區(qū)13,若程序設計中要用到這些區(qū),則最好把SP值改置為1FH或更大的值如60H,SP的初始值越小,堆棧深度就越深,堆棧指針的值可以由軟件改變,因此堆棧在內(nèi)部RAM中的位置比較靈活。第3章3-1 設內(nèi)部RAM中59H單元的內(nèi)容為50H,寫出當執(zhí)行下列程序段后寄存器A,R0和內(nèi)部RAM中50H,51H單元的內(nèi)容為何值? MOV A,59H ;A=50H MOV R0,A ;R0=50H MOV A,#00H ;A=00H MOV R0,A ;50H=00H MOV A,#25H

10、 ;A=25H MOV 51H,A ;51H=25H MOV 52H,#70H ;52H=70HA=25H R0=50H 50H=00H 51H=25H 3-2 訪問外部數(shù)據(jù)存儲器和程序存儲器可以用哪些指令來實現(xiàn)?舉例說明。答:訪問外部數(shù)據(jù)存儲器指令有:MOVX DPTR,A MOV DPTR,#0100H MOV DPTR,A MOVX A,DPTR MOV DPTR,#0200H MOV A,DPTR MOVX A,Ri MOVX A,R0MOVX Ri,A MOVX R1,A 訪問程序存儲器指令有:MOVC A,A+PCMOVC A,A+DPTR3-3 設堆棧指針SP中的內(nèi)容為60H,內(nèi)

11、部RAM中30H和31H單元的內(nèi)容分別為24H和10H,執(zhí)行下列程序段后,61H,62H,30H,31H,DPTR及SP中的內(nèi)容將有何變化?PUSH 30H ;61H=24HPUSH 31H ;62H=10H SP=62HPOP DPL ;DPL=10HPOP DPH ;DPH=24H SP=60HMOV 30H,#00H ;30H=00HMOV 31H,#0FFH ;31H=0FFH3-4 設(A)=40H,(R1)=23H,(40H)=05H。執(zhí)行下列兩條指令后,累加器A和R1以及內(nèi)部RAM中40H單元的內(nèi)容各為何值? XCH A,R1 ;A=23H R1=40H XCHD A,R1 ;A

12、=25H 40H=03H3-5 兩個四位BCD碼數(shù)相加,被加數(shù)和加數(shù)分別存于50H,51H和52H,53H單元中(千位、百位在低地址中,十位、個位在高地址中),和存放在54H,55H和56H中(56H用來存放最高位的進位),試編寫加法程序。 ORG 0000H LJMP START ORG 0100H START: MOV A,53H ADD A,51H DA A MOV 55H,A MOV A,52H ADDC A,50H DA A MOV 56H,C SJMP $ END3-6 設(A)=01010101B,(R5)=10101010B,分別寫出執(zhí)行下列指令后結(jié)果。ANL A , R5 ;

13、 00000000BORL A , R5 ; 11111111BXRL A , R5 ; 11111111B3-7指令SJMP rel中,設rel=60H,并假設該指令存放在2114H和2115H單元中。當該條指令執(zhí)行后,程序?qū)⑻D(zhuǎn)到何地址?答: 2116H+60H=2176H3-8 簡述轉(zhuǎn)移指令AJMP addr11、SJMP rel、 LJMP addr16及JMP A+DPTR的應用場合。 答:AJMP addr11 為2K字節(jié)范圍內(nèi)的無條件轉(zhuǎn)跳指令,把程序的執(zhí)行轉(zhuǎn)移到指定的地址。SJMP rel是無條件轉(zhuǎn)跳指令,執(zhí)行時在PC加2后,把指令中補碼形式的偏移量值加到PC上,并計算出轉(zhuǎn)向目標

14、地址。轉(zhuǎn)向的目標地址可以在這條指令前128字節(jié)到后127字節(jié)之間。LJMP addr16執(zhí)行這條指令時把指令的第二和第三字節(jié)分別裝入PC的高位和低位字節(jié)中,無條件地轉(zhuǎn)向指定地址。轉(zhuǎn)移的目標地址可以在64K程序存儲器地址空間的任何地方,不影響任何標志。JMP A+DPTR 指令的功能是把累加器中8位無符號數(shù)與數(shù)據(jù)指針DPTR中的16位數(shù)相加,將結(jié)果作為下條指令地址送入PC,利用這條指令能實現(xiàn)程序的散轉(zhuǎn)。3-9 試分析下列程序段,當程序執(zhí)行后,位地址00H,01H中的內(nèi)容將為何值?P1口的8條I/O線為何狀態(tài)? CLR C ;CY=0 MOV A,#66H ;A=66H JC LOOP1 CPL

15、C ;CY=1 SETB 01H ;20H.1=1LOOP1: ORL C, ACC.0 ;CY=1 JB ACC.2,LOOP2 ; CLR 00H LOOP2: MOV P1,A ;P1=01100110B SJMP $ 20H.0=0 20H.1=1 P1=66H3-10 查指令表,寫出下列兩條指令的機器碼,并比較一下機器碼中操作數(shù)排列次序的特點。MOV 58H,80H 85(80)(58) 直接尋址字節(jié)送直接尋址字節(jié): 匯編時源操作數(shù)在目標操作數(shù)之前。MOV 58H,#80H75(58)(80) 立即數(shù)送直接尋址字節(jié): 匯編時目標操作數(shù)在原操作數(shù)之前。第4章4-1 什么是單片機的程序設

16、計語言。答:單片機的程序設計語言是指計算機能理解和執(zhí)行的語言,人與CPU、MCU交流的語言。MCS-51系列單片機的程序設計語言,按照語言的結(jié)構(gòu)及其功能可以分為三種:機器語言、匯編語言、高級語言。4-2 單片機的程序設計包括哪幾個步驟。答:程序設計步驟如下:(1) 分析問題。即仔細分析任務書中要實現(xiàn)的功能和性能指標。(2) 確定算法。即找到解決問題思路、方法。(3) 分配內(nèi)存單元。即確定數(shù)據(jù)結(jié)構(gòu)。這一步往往與算法同時考慮。(4) 根據(jù)算法和數(shù)據(jù)結(jié)構(gòu),畫出程序流程圖。(5) 根據(jù)流程圖編寫匯編語言源程序。編輯錄入,保存為*.ASM文件。(6) 匯編。排除語法錯誤。(7) 調(diào)試(DEBUG)。找出

17、錯誤并更正,再調(diào)試,直至通過。(8) 編寫相關說明文檔。4-3 畫出單片機的三種基本程序結(jié)構(gòu)。答:AB條件成立嗎?AB是否條件成立嗎?A是否 順序結(jié)構(gòu)流程圖 分支結(jié)構(gòu)流程圖 循環(huán)結(jié)構(gòu)流程圖4-4 單片機的分支結(jié)構(gòu)程序指令有哪幾條?答:分支結(jié)構(gòu)程序指令有JB、JNB、JC、JNC、JZ、JNZ、CJNE、JBC4-5 什么是單片機的程序嵌套?生活中有哪些現(xiàn)象與單片機的嵌套類似?答:一個程序中還會調(diào)用別的程序,這稱為程序嵌套。 生活例子:在學習,有電話了,去接電話,水開了,放下電話去關掉電水壺,接著打電話,打完電話,接著學習。4-6 能否從一個子程序內(nèi)部使用轉(zhuǎn)移指令直接跳轉(zhuǎn)到另一個子程序執(zhí)行?答:

18、可以,為了保證正確地從子程序2返回子程序1,再從1返回主程序,每次調(diào)用子程序時必須將下條指令地址保存起來,返回時按后進先出原則依次取出舊PC值。4-7 能否使用轉(zhuǎn)移指令從主程序跳到子程序?答:不可以,當主程序需要執(zhí)行某子程序的功能時,只需執(zhí)行一條調(diào)用指令。而并非使用轉(zhuǎn)移指令4-8 能否使用轉(zhuǎn)移指令從子程序跳到主程序?答:不可以,子程序的最后一條指令應該是返回指令RET或RETI,以確保子程序能夠正確返回主程序。執(zhí)行RET指令時單片機將原來存在堆棧中的斷點地址彈出給PC,保證子程序返回主程序中調(diào)用子程序的地方繼續(xù)執(zhí)行主程序。子程序從子程序的標號開始,到RET或RETI指令結(jié)束。RET指令是一般子

19、程序的返回指令。RETI指令是中斷服務子程序的返回指令。4-9 畫出主程序的一般流程圖。答:主程序流程圖 初始化模塊上電/復位人機接口(鍵盤顯示)模塊輸入模塊運算模塊輸出模塊4-10 畫出子程序的一般流程圖。答:子程序流程圖 4-11 子程序的規(guī)范化設計包括那幾個部分?答:子程序的規(guī)范化設計包括:(1) 子程序名稱。給子程序起名字,起名的原則是子程序名能夠反映子程序功能,該名字就是子程序的入口地址標識符。(2) 子程序功能,對子程序的功能給予簡要的描述。(3) 入口參數(shù),子程序所要運算或處理的數(shù)據(jù)(加工前的原料),在調(diào)用子程序之前,主程序要先準備好入口參數(shù)。(4)出口參數(shù),子程序運算或處理的結(jié)

20、果(加工完成的數(shù)據(jù)),子程序結(jié)束之前,最終結(jié)果(出口參數(shù))存放在約定的RAM單元,供主程序取用。(5) 資源占用情況,指出該子程序運行時所使用的片內(nèi)工作寄存器(R0R7)、SFR(特殊功能寄存器)、片內(nèi)RAM單元及片外RAM單元,以便在主程序調(diào)用該子程序之前,考慮將這些資源中的哪些字節(jié)保護入棧。4-12 在片內(nèi)RAM地址40H到4FH的存儲單元中存有16個無符號數(shù),找出其中的最大值,放入50H單元,請用“循環(huán)結(jié)構(gòu)”和“分支結(jié)構(gòu)”編程。答:流程圖:結(jié)束A 50H R2-15=0?NA 中放大值指針加1初始化: R2=15賦判斷次數(shù),R0指針指向40H單元B R0+1判斷A>B?開始 Y Y

21、源程序:ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV R2,#0FH MOV R0,#40H MOV A,R0 SUB: INC R0 MOV B,R0 CJNE A,B,NEXT NEXT: JC NEXT1 DJNZ R2,SUB JMP LAST NEXT1: MOV A,B DJNZ R2,SUB JMP LAST LAST: MOV 50H,A SJMP $ 4-13 將片內(nèi)若干個RAM單元的內(nèi)容復制到片外RAM單元,請用“主程序”調(diào)用“子程序”編程,要求子程序入口參數(shù)為:R0存放片內(nèi)RAM起始地址,DPTR存放片外RAM起始地址,R1存放字節(jié)數(shù)。請

22、分別編寫主程序和子程序。答:流程圖 主程序 子程序 開始 R0單元送DPTR 初始化常數(shù) R040H DPTR0200H R110H指針加1調(diào)用復制子程序N R1-1=0?結(jié)束返回Y源程序: ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV R1,#10H MOV R0,#40H MOV DPTR,#0000H LCALL COPY SJMP $ COPY: NEXT: MOV A,R0 MOVX DPTR,A INC R0 INC DPL DJNZ R1,NEXT RET 第5章5-1 簡述中斷、中斷源、中斷源的優(yōu)先級及中斷嵌套的含義。答: 當CPU正在處理某項

23、事件的時,如果外界或內(nèi)部發(fā)生了緊急情況,要求CPU暫停正在處理的工作轉(zhuǎn)而去處理這個緊急情況,待處理完以后再回到原來被中斷的地方,繼續(xù)執(zhí)行原來被中斷了的程序,這樣的過程稱為中斷。向CPU提出中斷請求的源稱為中斷源。當系統(tǒng)有多個中斷源時,就可能出現(xiàn)同時有幾個中斷源申請中斷,而CPU在一個時刻只能響應并處理中斷優(yōu)先高的請求。在實際應用系統(tǒng)中,當CPU正在處理某個中斷源,即正在執(zhí)行中斷服務程序時,會出現(xiàn)優(yōu)先級更高的中斷源申請中斷。為了使更緊急的級別高的中斷源及時得到服務,需要暫時中斷(掛起)當前正在執(zhí)行的級別較低的中斷服務程序,去處理級別更高的中斷源,待處理完以后,再返回到被中斷了的中斷服務程序繼續(xù)執(zhí)

24、行,但級別相同或級別低的中斷源不能中斷級別高的中斷服務,這就是所謂的中斷嵌套。5-2 MCS-51單片機能提供幾個中斷源?幾個中斷優(yōu)先級?各個中斷的源的優(yōu)先級怎樣確定?在同一優(yōu)先級中各個中斷源的優(yōu)先級怎樣確定?答: MCS-51單片機能提供五個中斷源,兩個中斷優(yōu)先級。中斷優(yōu)先級是由片內(nèi)的中斷優(yōu)先級寄存器IP(特殊功能寄存器)控制的。PS:串行口中斷優(yōu)先級控制位。PS=1,串行口定義為高優(yōu)先級中斷源;PS=0,串行口定義為低優(yōu)先級中斷源。 PT1:T1中斷優(yōu)先級控制位。PT1=1,定時器/計數(shù)器1定義為高優(yōu)先級中斷源;PT1=0,定時器/計數(shù)器1定義為低優(yōu)先級中斷源。 PX1:外部中斷1中斷優(yōu)先

25、級控制位。PX1=1,外中斷1定義為高優(yōu)先級中斷源;PX1=0,外中斷1定義為低優(yōu)先級中斷源。 PT0:定時器/計數(shù)器0(T0)中斷優(yōu)先級控制位,功能同PT1。PX0:外部中斷0中斷優(yōu)先級控制位,功能同PX1。在同一優(yōu)先級中,循環(huán)輪流排隊。不分級別高低,所有中斷源優(yōu)先級都一律平等,CPU輪流響應各個中斷源的中斷請求。5-3 簡述MCS-51單片機中斷響應過程。答:CPU在每個機器周期的S5P2時刻采樣中斷標志,而在下一個機器周期對采樣到的中斷進行查詢。如果在前一個機器周期的S5P2有中斷標志,則在查詢周期內(nèi)便會查詢到并按優(yōu)先級高低進行中斷處理,中斷系統(tǒng)將控制程序轉(zhuǎn)入相應的中斷服務程序。5-4

26、MCS-51單片機外部中斷有哪兩種觸發(fā)方式?如何選擇?對外部中斷源的觸發(fā)脈沖或電平有何要求?答:MCS-51單片機外部中斷有:負邊沿觸發(fā)方式和電平觸發(fā)方式。外部中斷1()觸發(fā)方式控制位。如果IT1為1,則外中斷1為負邊沿觸發(fā)方式(CPU在每個機器周期的S5P2采樣腳的輸入電平,如果在一個周期中采樣到高電平,在下個周期中采樣到低電平,則硬件使IE1置1,向CPU請求中斷);如果IT1為0,則外中斷1為電平觸發(fā)方式。采用電平觸發(fā)時,輸入到的外部中斷源必須保持低電平有效,直到該中斷被響應。同時在中斷返回前必須使電平變高,否則將會再次產(chǎn)生中斷。5-5 在MCS-51單片機的應用系統(tǒng)中,如果有多個外部中

27、斷源,怎樣進行處理?答:當系統(tǒng)有多個中斷源時,就可能出現(xiàn)同時有幾個中斷源申請中斷,而CPU在一個時刻只能響應并處理一個中斷請求,為此,要進行排隊。排隊的方式有:(1)按優(yōu)先級排隊。(2)循環(huán)輪流排隊。MCS-51單片機優(yōu)先級比較簡單,只有兩級,可以通過優(yōu)先級控制寄存器設置不同的優(yōu)先級。當優(yōu)先級相同時,約定有5個中斷源優(yōu)先級順序由高到低分別為:外部中斷0、定時器/計數(shù)器0溢出、外部中斷1、定時器/計數(shù)器1溢出、串行口中斷。5-6 MCS-51有哪幾種擴展外部中斷源的方法?各有什么特點?答:1) 利用定時器作為外部中斷使用 特點:把MCS-51的兩個定時器/計數(shù)器(T0和T1)選擇為計數(shù)器方式,每

28、當P3.4(T0)或P3.5(T1)引腳上發(fā)生負跳變時,T0和T1的計數(shù)器加1??梢园裀3.4和P3.5引腳作為外部中斷請求輸入線,而定時器的溢出中斷作為外部中斷請求標志。2)采用中斷和查詢相結(jié)合的方法擴充外部中斷源特點:這種方法是把系統(tǒng)中多個外部中斷源經(jīng)過與門連接到一個外部中斷輸入端(例如),并同時還接到一個I/O口,中斷請求由硬件電路產(chǎn)生,而中斷源的識別由程序查詢來處理,查詢順序決定了中斷源的優(yōu)先級。5-7 MCS-51單片機響應外部中斷的典型時間是多少?在哪些情況下,CPU將推遲對外部中斷請求的響應?答:響應外部中斷的典型時間是至少需要3個完整的機器周期。1、外部中斷和的電平在每個機器周

29、期的S5P2時被采樣并鎖存到IE0和IE1中,這個置入到IE0和IE1的狀態(tài)在下一個機器周期才被其內(nèi)部的查詢電路查詢,未產(chǎn)生了一個中斷請求。2、沒有滿足響應的條件,CPU沒有響應中斷。3、沒有由硬件生成一條長調(diào)用指令轉(zhuǎn)到相應的服務程序入口。第6章6-1 8051單片機內(nèi)設有幾個可編程的定時器/計數(shù)器?它們可以有4種工作方式,如何選擇和設定?各有什么特點?答:MCS-51單片機內(nèi)部有兩個16位可編程的定時器/計數(shù)器,即定時器T0和定時器T1 M1 M0:定時器/計數(shù)器四種工作方式選擇6-2 8051單片機內(nèi)的定時/計數(shù)器T0、T1工作在模式3時,有何不同?答:方式3對定時器T0和定時器T1是不相

30、同的。若T1設置為方式3,則停止工作。方式3只適用于T0。當T0設置為方式3時,將使TL0和TH0成為兩個相互獨立的8位計數(shù)器, TL0利用了T0本身的一些控制方式,它的操作與方式0和方式1類似。而TH0被規(guī)定為用作定時器功能,對機器周期計數(shù),并借用了T1的控制位TR1和TF1。在這種情況下TH0控制了T1的中斷。6-3 已知單片機時鐘振蕩頻率為6MHz,利用T0定時器,在P1.1引腳上輸出連續(xù)方波,波形如下:100µsP1.150µs計算定時常數(shù):100us 方式0 Tc=FE0E; 方式1 Tc=FFCE; 方式2 Tc=CE150us 方式0 Tc=FD15; 方式1

31、 Tc=FFB5; 方式2 Tc=B5 方法一:采用方式一,定時器中斷。 開始主程序流程圖:初始化T0,設置工作方式開T0中斷,設置標志位20H.0開定時器T0,P1.1=1 等待中斷中斷子程序流程圖:開始20H.0=1?T0賦初值150usT0賦初值100usP1.1=0P1.1=1取反20H.0取反20H.0中斷返回中斷返回YN源程序: LJMP TINT0 ORG 0100H START: MOV TMOD,#01H MOV TL0,#0CEH MOV TH0,#0FFH SETB TR0 SETB EA SETB ET0 SETB 20H.0 SETB P1.1 SJMP $ TINT

32、0: JNB 20H.0,NEXT MOV TL0,#0B5H MOV TH0,#0FFH CLR P1.1 CPL 20H.0 SJMP LAST NEXT: MOV TL0,#0CEH MOV TH0,#0FFH SETB P1.1 CPL 20H.0 LAST:RETI 方法二: 采用方式2 定時器中斷 加延時程序源程序: LJMP START ORG 000BH LJMP TINT0 ORG 0100H START: MOV TMOD,#02H MOV TL0,#0CEH MOV TH0,#0CEH SETB TR0 SETB EA SETB ET0 SETB 20H.0 SETB P

33、1.1 SJMP $ TIN CLR TR0 CLR P1.1 LCALL DELAY CPL 20H.0 SETB TR0 SJMP LAST NEXT: SETB P1.1 CPL 20H.0 LAST:RETI DELAY: MOV R7,#8 DELAY1:DJNZ R7,DELAY1 RET主程序流程圖初始化T0,設置工作方式開T0中斷,設置標志位20H.0開定時器T0,P1.1=1 等待中斷中斷子程序流程圖開始P1.1=0,關定時器P1.1=1調(diào)用50us延時取反20H.0,開定時器取反20H.0返回返回YN6-4 定時器/計數(shù)器的工作方式2有什么特點?適用于什么應用場合?答:方式

34、2把TL0配置成一個可以自動恢復初值的8位計數(shù)器,TH0作為常數(shù)緩沖器,TH0由軟件預置值。當TL0產(chǎn)生溢出時,一方面使溢出標志TF0置1,同時把TH0中的8位數(shù)據(jù)重新裝入TL0中。方式2常用于定時控制,作串行口波特率發(fā)生器。6-5 定時器/計數(shù)器測量某正單脈沖的寬度,采用何種方式可得到最大量程?若時鐘頻率為6MHz,求允許測量的最大脈沖寬度是多少?答:采用方式1可得到最大量程。最大脈寬=2us×655366-6 定時器/計數(shù)器作為外部中斷源使用時,需要如何初始化,以T0為例通過程序說明。答: 初始化 MOV TMOD,#06H MOV TL0,#0FFH MOV TH0,#0FEH

35、 SETB TR0 SETB EA SETB ET0第7章習7-1 波特率的含義是什么?答:所謂波特率是每秒鐘傳送信號的數(shù)量,單位為波特(Baud )。7-2 什么是串行異步通信?它有哪些特征?答:通信時接收器和發(fā)送器有各自的時鐘。特征:異步通信的優(yōu)點是不需要傳送同步脈沖,可靠性高,所需設備簡單,缺點是字符幀中因包含有起始位和停止位而降低了有效數(shù)據(jù)的傳輸速率7-3 單片機的串行接口由哪些功能部件組成?各有什么作用?答:MCS-51單片機串行口主要由兩個物理上獨立的串行數(shù)據(jù)緩沖寄存器SBUF、發(fā)送控制器、接收控制器、輸入移位寄存器和輸出控制門組成。 作用:SBUF為串行口的收發(fā)緩沖寄存器,它是可

36、尋址的專用寄存器,其中包含了發(fā)送寄存器SBUF (發(fā)送)和接收寄存器SBUF (接收),可以實現(xiàn)全雙工通信。7-4 簡述串行接口接收和發(fā)送數(shù)據(jù)的過程。答:發(fā)送:發(fā)送操作是在TI=0下進行的,此時發(fā)送緩沖寄存器“SBUF(發(fā)送)”相當于一個并入串出的移位寄存器。CPU 通過指令MOV SBUF,A ,將數(shù)據(jù)寫入“SBUF(發(fā)送)”,立即啟動發(fā)送,將8 位數(shù)據(jù)以設定波特率從RXD 輸出,低位在前,高位在后。發(fā)送完一幀數(shù)據(jù)后,發(fā)送中斷標志TI由硬件置位,并可向CPU 發(fā)出中斷請求。 接收:接收過程是在RI=0且REN=1條件下啟動的,此時接收緩沖寄存器“SBUF (接收)”相當于一個串入并出的移位寄

37、存器。接收時,先置位允許接收控制位REN,此時,RXD為串行數(shù)據(jù)輸入端。當RI=0 和REN=1 同時滿足時,開始接收。當接收到第8 位數(shù)據(jù)時,將數(shù)據(jù)移入接收緩沖寄存器“SBUF(接收)” ,并由硬件置位RI ,同時向CPU 發(fā)出中斷請求。CPU 查到RI=1 或響應中斷后,通過指令MOV A,SBUF,將“ SBUF (接收)”接收到的數(shù)據(jù)讀入累加器A 。7-5 8051 串行接口有幾種工作方式?有幾種幀格式?各工作方式的波特率如何確定?答:方式0、1、2、3. 8幀 10幀 11幀 三種格式。波特率: 方式0的波特率固定為系統(tǒng)晶振頻率的1/12 ,其值為fosc/12 。其中,fosc為系

38、統(tǒng)主機晶振頻率。 方式2的波特率由PCON中的選擇位SMOD來決定,可由下式表示:即:當SMOD =l 時,波特率為fosc/32;當腳SMOD=0時,波特率為fosc/64。 方式1 和方式3 的波特率由定時器Tl 的溢出率控制。因而波特率是可變的。定時器TI 作為波特率發(fā)生器,相應公式如下:波特率=定時器溢出率 溢出率=計數(shù)率/產(chǎn)生溢出所需的周期數(shù)=式中K:定時器T1的位數(shù),K的值等于8、13、16;TC:定時器T1的預置初值。第8章8-1 MCS-51單片機外部程序存儲器和數(shù)據(jù)存儲器地址范圍都是0000H FFFFH,在實際使用時如何區(qū)分? 答:訪問(讀)ROM時(程序存儲器),通過引腳

39、有效選中程序存儲器,PC指針指向程序存儲器的地址指針。訪問外部RAM(數(shù)據(jù)存儲器),通過、引腳有效選中數(shù)據(jù)存儲器(DPTR為外部RAM存儲器的地址指針)8-2 訪問8051片外數(shù)據(jù)存儲器MOVX指令采用的是 間接 尋址方式。訪問片外程序存儲器MOVC指令采用的是 基址加變址 尋址方式。8-3 MCS-51單片機可以外接64KB的程序存儲器和64KB數(shù)據(jù)存儲器。這兩種片外存儲器地址重疊而不發(fā)生總線沖突,主要依靠單片機引腳上的那些信號來區(qū)分?答:同8-1.8-4 給8031單片機擴展一片2716和6116,請畫出系統(tǒng)連接圖。 方法一: 地址自定:(其中一種解法如下) 設2716地址:0000H07

40、FFH 6116地址:0000H07FFH (不用譯碼器)61168051地址鎖存器373GA0A7D0D7P2.0P2.2PSENCEALEA8-A10A0-A7D0-D7CEOEWEWRRDG2AG2BOEA8A102716P0.0P0.7EA方法二:采用部分譯碼 如: 2716的地址0000H07FFH 6116的地址0800H08FFHA0A7D0D76116OEWE 8051地址鎖存器GALEA0A7D0D72716P0.0P0.7P2.5P2.4P2.3PSENOERD+5VCECBAY0Y174LS138WRCEP2.0P2.2A8-A10A8A10方法三:采用全譯碼 如: 27

41、16的地址0000H07FFH 6116的地址0800H08FFHA0A7D0D76116OEWE 8051地址鎖存器GALEA0A7D0D72716P0.0P0.7P2.5P2.4P2.3PSENOERDCECBAY0Y174LS138GG2AG2BA8-A10A8A10WRP2.0-P2.2CEP2.6P2.7+5V8-5試畫出MCS-51系列8051最小應用系統(tǒng)的原理結(jié)構(gòu)圖。答:8051最小應用系統(tǒng)如圖所示。這種最小應用系統(tǒng)只要將單片機的時鐘電路和復位電路接上,同時接高電平,系統(tǒng)就可以工作。此類應用系統(tǒng)只能用作一些小型的控制單元。其應用特點是: XTAL1XTAL2RESETP1P2P3

42、80518751+5VC3R1C1C2P0(1)全部I/O口線均可供用戶用。(2)內(nèi)部存儲器容量有限(只有4KB地址空間)。(3)應用系統(tǒng)開發(fā)具有特殊性。8-6 如何構(gòu)造MCS-51單片機擴展的系統(tǒng)總線?控制總線高八位地址線8051地址鎖存器GALE低八位地址線八位數(shù)據(jù)線P2P0WRPSENRD見課本P129-P130第9章習題參考答案9-1設計用P1、P2口擴展4×4矩陣鍵盤、4位共陰極LED硬件電路。10K×4LED0 1 2 3 4 5 6 71KP13P12P11P10P20P21P22P23P24P25P26P27P14P15P16P178051+5V7407&#

43、215;38 9 A BC D E Fabcdefgdp9-2已知一單片機應用系統(tǒng)如9-12圖所示。試回答問題并編寫顯示程序,以1秒為間隔,亮暗相間,顯示“88888888”。9-4 若8255芯片的片選端與8051的P2.7相連,A1A0端與地址總線A1A0相連,現(xiàn)要求8255工作在方式0,A口作為輸入,B口作為輸出,且將C口的第6位PC5置1,請編寫初始化工作程序。答:開始初始化8155初始化顯示緩存區(qū)調(diào)用顯示子程序有健按下計算鍵值送顯示緩存YN調(diào)用鍵盤子程序9-5 已知系統(tǒng)的連接如圖9-12所示,試編寫程序?qū)崿F(xiàn)下列功能:(1)編寫上電顯示程序,顯示“123456”。(2)編寫主程序,功能為:當有鍵按下(07號)時,都顯示鍵號; 無鍵按下,保持原有顯示狀態(tài)。答:主程序流程圖:10K×410K×4LEDabcdefgdp0 1 2 3 4 5 6 78 9 A B C D E F+5V+1K8051P0.0P0.1P0.2P0.3P0.4P0.5P0.6 P0.7ggAD0

溫馨提示

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

評論

0/150

提交評論