MCS51單片機復習題20141217_第1頁
MCS51單片機復習題20141217_第2頁
MCS51單片機復習題20141217_第3頁
MCS51單片機復習題20141217_第4頁
MCS51單片機復習題20141217_第5頁
已閱讀5頁,還剩18頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、單片機原理及應用習題參考答案1. 為什么計算機要采用二進制數?學習十六進制數的目的是什么?    在計算機中,由于所采用的電子邏輯器件僅能存儲和識別兩種狀態的特點,計算機內部一切信息存儲、處理和傳送均采用二進制數的形式??梢哉f,二進制數是計算機硬件能直接識別并進行處理的惟一形式。十六進制數可以簡化表示二進制數。2什么是總線?總線主要有哪幾部分組成?各部分的作用是什么?總線是連接計算機各部件之間的一組公共的信號線。一般情況下,可分為系統總線和外總線。系統總線應包括:地址總線(AB)控制總線(CB)數據總線(DB)地址總線(AB):CPU根據指令的功能需要訪問某一存儲

2、器單元或外部設備時,其地址信息由地址總線輸出,然后經地址譯碼單元處理。地址總線為16位時,可尋址范圍為216=64K,地址總線的位數決定了所尋址存儲器容量或外設數量的范圍。在任一時刻,地址總線上的地址信息是惟一對應某一存儲單元或外部設備??刂瓶偩€(CB):由CPU產生的控制信號是通過控制總線向存儲器或外部設備發出控制命令的,以使在傳送信息時協調一致的工作。CPU還可以接收由外部設備發來的中斷請求信號和狀態信號,所以控制總線可以是輸入、輸出或雙向的。數據總線(DB):CPU是通過數據總線與存儲單元或外部設備交換數據信息的,故數據總線應為雙向總線。在CPU進行讀操作時,存儲單元或外設的數據信息通過

3、數據總線傳送給CPU;在CPU進行寫操作時,CPU把數據通過數據總線傳送給存儲單元或外設3什么是接口電路? CPU與接口電路連接一般應具有哪些信號線?外部設備與接口電路連接一般應具有哪些信號線?CPU通過接口電路與外部輸入、輸出設備交換信息,一般情況下,外部設備種類、數量較多,而且各種參量(如運行速度、數據格式及物理量)也不盡相同。CPU為了實現選取目標外部設備并與其交換信息,必須借助接口電路。一般情況下,接口電路通過地址總線、控制總線和數據總線與CPU連接;通過數據線(D)、控制線(C)和狀態線(S)與外部設備連接。4. 存儲器的作用是什么?只讀存儲器和隨機存儲器有什么不同?存儲器具有記憶功

4、能,用來存放數據和程序。計算機中的存儲器主要有隨機存儲器(RAM)和只讀存儲器(ROM)兩種。隨機存儲器一般用來存放程序運行過程中的中間數據,計算機掉電時數據不再保存。只讀存儲器一般用來存放程序,計算機掉電時信息不會丟失。5某存儲器的存儲容量為64KB,它表示多少個存儲單元?64×10246. 簡述微型計算機硬件系統組成。一臺計算機的基本結構由運算器、控制器、存儲器、輸入設備和輸出設備五部分組成。7. 什么是單片機?單片機與微機相比有何特點?單片機(Single-Chip-Microcomputer)又稱單片微控制器,其基本結構是將微型計算機的基本功能部件:中央處理機(CPU)、存儲

5、器、輸入接口、輸出接口、定時器/計數器、中斷系統等全部集成在一個半導體芯片上,因此,單片機其體積小、功耗低、價格低廉,且具有邏輯判斷、定時計數、程序控制等多種功能。單片機結構上的設計,在硬件、指令系統及I/O能力等方面都有獨到之處,具有較強而有效的控制功能。雖然單片機只是一個芯片,但無論從組成還是從其邏輯功能上來看,都具有微機系統的含義。另一方面,單片機畢竟是一個芯片,只有外加所需的輸入、輸出設備,才可以構成實用的單片機應用系統。8. 單片機主要應用于哪些領域?(1) 智能儀器。智能儀器是含有微處理器的測量儀器。單片機廣泛應用于各種儀器儀表,使儀器儀表智能化取得了令人矚目的進展。(2) 工業控

6、制。單片機廣泛應用于各種工業控制系統中,如數控機床、溫度控制、可編程順序控制等。(3) 家用電器。目前各種家用電器普遍采用單片機取代傳統的控制電路,如洗衣機、電冰箱、空調、彩電、微波爐、電風扇及高級電子玩具等。由于配上了單片機,使其功能增強而身價倍增,深受用戶的歡迎。(4) 機電一體化。機電一體化是機械工業發展的方向,機電一體化產品是指集機械技術、微電子技術、計算機技術于一體,具有智能化特征的機電產品。單片機除以上各方面應用之外,還廣泛應用于辦公自動化領域(如復印機)、汽車電路、通信系統(如手機)、計算機外圍設備等,成為計算機發展和應用的一個重要方向。9. 什么是嵌入式系統?嵌入式系

7、統有哪些重要特征?所謂嵌入式系統,是“以應用為中心、以計算機技術為基礎、軟件硬件可裁減、功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統”。即以嵌入式應用為目的計算機系統。嵌入式系統的重要特征:、系統內核小、專用性強。、系統精簡嵌入式系統一般沒有系統軟件和應用軟件的明顯區分,其功能設計及實現上不要求過于復雜,這樣一方面利于控制系統成本,同時也利于實現系統安全。、高實時性第二章1. 舉例說明MCS-51有哪些典型產品,它們有何區別? MCS-51系列單片機可分為兩大系列:51子系列和52子系列。51子系列單片機的典型產品有8051、8751、8031、80C51、80C31等。它

8、們的結構基本相同,其主要差別反映在片內存儲器的配置上有所不同2. 8051單片機內部包含哪些主要功能部件?各功能部件的主要作用是什么? 8051單片機內部由CPU、4KB的ROM、128B的RAM、4個8位的I/O并行端口、一個串行口、兩個16位定時/計數器及中斷系統等組成。3. 程序狀態字寄存器PSW各位的定義是什么?PSW是一個8位寄存器,用于寄存當前指令執行后的某些狀態,即反映指令執行結果的一些特征信息。Cy(PSW.7):即PSW的D7位,進位/借位標志。AC(PSW.6):即PSW的D6位,輔助進位標志。F0(PSW.5)及F1(PSE.1):即PSW的D5位、D1位,用戶

9、標志位。RS1及RS0(PSW.4及PSW.3):即PSW的D4位、D3位,寄存器組選擇控制位。OV(PSW.2):即PSW的D2位,溢出標志。4. MCS-51存儲器結構的主要特點是什么?程序存儲器和數據存儲器各有何不同?MCS-51單片機的存儲器結構與一般微機存儲器的配置方法不同,一般微機把程序和數據共存同一存儲空間,各存儲單元對應惟一的地址。而MCS-51的存儲器把程序和數據的存儲空間嚴格區分開。數據存儲器用于存放程序運算的中間結果、狀態標志位等。程序存儲器用于存放已編制好的程序及程序中用到的常數。5. MCS-51單片機內部RAM可分為幾個區?各區的主要作用是什么?內部數據存儲器分為高

10、、低128B兩大部分。低128B為RAM區,地址空間為00H7FH,可分為:寄存器區、位尋址區、堆棧及數據存儲區。存放程序運算的中間結果、狀態標志位等。高128B為特殊功能寄存器(SFR)區,地址空間為80HFFH,其中僅有21個字節單元是有定義的。6. MCS-51單片機的P0P3四個I/O端口在結構上有何異同?使用時應注意哪些事項?P0口是一個8位漏極開路型雙向I/O端口。P1口是一個內部帶上拉電阻的8位準雙向I/O端口。P2口也是一個內部帶上拉電阻的8位準雙向I/O端口P3口是一個內部帶上拉電阻的8位多功能雙向I/O端口。在使用時應注意以下方面: P0P3都是準雙向I/O口,即CPU在讀

11、取數據時,必須先向相應端口的鎖存器寫入“1”。各端口名稱與鎖存器名稱在編程時相同,均可用P0P3表示。當系統復位時,P0P3端口鎖存器全為“1”,故可直接對其進行讀取數據。 P0口每一輸出位可驅動8個LS型TTL負載,P0口可作通用輸入、輸出端口使用,此時,若要驅動NMOS或其他拉電流負載時,需外接上拉電阻,才能使該位高電平輸出有效。在單片機進行外部存儲器擴展時,P0口必須作為地址/數據復用線使用,此時,不必外接上拉電阻,P0也不能作通用I/O口使用。 P1、P2、P3口輸出均接有內部上拉電阻,輸入端無需外接上拉電阻,每一位輸出可以驅動4個LS型TTL電路。 P0、P2口除可以作通用I/O端口

12、、以實現與外部進行數據交換外,更主要的是,當CPU訪問外部存儲器時,CPU將自動地把外部存儲器的地址線信號(16位)送P0、P2口,作為地址總線(P0口輸出低8位地址,P2口輸出高8位地址),向外部存儲器輸出16位存儲單元地址。在控制信號作用下,該地址低8位被鎖存后,P0口自動切換為數據總線,這時經P0口可向外部存儲器進行讀、寫數據操作。此時,P2口不再作通用I/O端口,P0口為地址/數據復用口。7. 在什么情況下,P3口作為第二功能使用?P3口的第二功能是作為控制端口使用的。由于單片機沒有專設的控制信號引腳,單片機在進行外部存儲器和I/O端口擴展時所需要的控制信號必須由P3口提供,P3口第二

13、功能相當于PC機中CPU的控制線引腳。8. 為什么說單片機具有較強的位處理能力?對于許多控制系統,開關量控制是控制系統的主要對象之一。作為傳統的CPU,對于簡單的個別開關量進行控制卻顯得不那么方便,而讓MCS-51值得驕傲的正是它有效地解決了單一位的控制。MCS-51片內CPU還是一個性能優異的位處理器,也就是說MCS-51實際上又是一個完整而獨立的1位單片機(也稱布爾處理機)。該布爾處理機除了有自己的CPU、位寄存器、位累加器(即進位標志Cy)、I/O口和位尋址空間外,還有專供位操作的指令系統,可以直接尋址對位存儲單元和SFR的某一位進行操作。MCS-51單片機對于位操作(布爾處理)有置位、

14、復位、取反、測試轉移、傳送、邏輯與和邏輯或運算等功能。所以,單片機具有較強的位處理能力。9. 指出8051可進行位尋址的存儲空間。  007FH(即20H.02FH.7)及SFR地址能被8整除的寄存器中的各位。10. 位地址90H和字節地址90H及P1.0有何異同?如何區別?位地址90H表示P1.0位字節地址90H表示P1口11. 在訪問外部ROM或RAM時,P0和P2口各用來傳送什么信號?P0口為什么要采用片外地址鎖存器? P0口傳送地址低八位后可復用數據線,所以,P0口要采用片外地址鎖存器。P2口傳送地址高八位。12. 什么是時鐘周期?什么是機器周期?什么是指令周期?當

15、振蕩頻率為12MHz時,一個機器周期為多少微秒?時鐘周期:也稱振蕩周期,即振蕩器的振蕩頻率fosc的倒數,是時序中最小的時間單位。機器周期:執行一條指令的過程可分為若干個階段,每一階段完成一規定的操作,完成一個規定操作所需要的時間稱為一個機器周期,一個機器周期包含12個時鐘周期。當振蕩頻率為12MHz時,一個機器周期為12/(12×1000000)秒=1微秒指令周期:定義為執行一條指令所用的時間。13. MCS-51單片機有幾種復位方法?復位后,CPU從程序存儲器的哪一個單元開始執行程序?MCS-51的復位電路包括上電復位電路和按鍵(外部)復位電路0000H14. 8051系統掉電時

16、如何保存內部RAM中的數據?單片機在運行過程中,如果發生掉電,片內RAM和SFR中的信息將會丟失。為防止信息丟失,可以把一組備用電源加到RST/VPD端,當VCC上的電壓低于VPD上的電壓時,備用電源通過VPD端,以低功耗保持內部RAM和SFR中的數據。15. 8051單片機引腳ALE的作用是什么?當8051不外接RAM和ROM時,ALE上輸出的脈沖頻率是多少?其作用是什么?地址鎖存使能輸出ALE:當單片機訪問外部存儲器時,外部存儲器的16位地址信號由P0口輸出低8位,P2口輸出高8位,ALE可用作低8位地址鎖存控制信號;當不用作外部存儲器地址鎖存控制信號時,該引腳仍以時鐘振蕩頻率的1/6固定

17、地輸出正脈沖,可以驅動8個LS型TTL負載。第三章1MCS-51有哪幾種尋址方式?舉例說明它們是怎樣尋址的?MCS-51指令系統的尋址方式有以下7種:立即尋址方式:操作數直接出現在指令中。直接尋址方式中:操作數的單元地址直接出現在指令中。寄存器尋址方式中:寄存器中的內容就是操作數。寄存器間接尋址方式中,指定寄存器中的內容是操作數的地址,該地址對應存儲單元的內容才是操作數。變址尋址方式是以程序指針PC或數據指針DPTR為基址寄存器,以累加器A作為變址寄存器,兩者內容相加(即基地址+偏移量)形成16位的操作數地址,相對尋址是以程序計數器PC的當前值作為基地址,與指令中的第二字節給出的相對偏移量re

18、l進行相加,所得和為程序的轉移地址。位地址:內部RAM地址空間的可進行位尋址的128位和SFR地址空間的可位尋址的11個8位寄存器的88位。位尋址給出的是直接地址。2位尋址和字節尋址如何區分?在使用時有何不同?由尋址方式可以看出,不同的尋址方式所尋址的存儲空間是不同的。正確地使用尋址方式不僅取決于尋址方式的形式,而且取決于尋址方式所對應的存儲空間。字節尋址必須是對8位存儲單元,位尋址的存儲空間只能是片內RAM的20H2FH字節地址中的所有位(位地址為00H7FH)和部分SFR的位,決不能是該范圍之外的任何單元的任何位。3要訪問專用寄存器和片外數據寄存器,應采用什么尋址方式?舉例說明。 

19、; 訪問專用寄存器:可采用直接尋址或寄存器尋址。訪問片外數據寄存器:寄存器間接尋址4什么是堆棧?其主要作用是什么? 堆棧是后進先出的數據存儲區一般用于中斷處理過程中,若需要保護現場數據(如內部RAM單元的內容),可使用入棧指令,將數據壓入堆棧,中斷處理過程執行完后,再使用出棧指令恢復現場數據。5編程將內部RAM的20H單元的內容傳送給外部RAM的2000H單元。      MOV A,20HMOV DPTR,#2000HMOVX DPTR,A6編程將內部數據存儲器20H30H單元內容清零。    

20、;     MOV R0,#20HMOV A,#0MOV R3,#17LOP :MOV R0,AINC R0DJNZ R3,LOP7編程查找內部RAM的32H41H單元中是否有0AAH這個數據,若有這一數據,則將50H單元置為0FFH,否則清50H單元為0。MOV R3, #10H                       &

21、#160;                                                 &

22、#160;                     MOV A,#0AAH      MOV R0,#31HLOP :INC R0    SUBB A,R0     JZ  LOP1     

23、0;   DJNZ  R3,LOP         MOV 50H,#0H         AJMP  LOP3    LOP1:MOV 50H,#0FFH    LOP3: AJMP 1OP3   8查找20H4FH單元中出現00H的次數,并將查找結果存入50H單元。   &#

24、160;     MOV R3,#30H         MOV R0,#20H         MOV A,#0LOP:  MOV A,R0      JZ  LOP1LOP3: INC R0      DJNZ R3,LOP    &#

25、160; AJMP LOP2LOP1: INC 50H      AJMP LOP3 LOP2:AJMP LOP29已知A=83H,R0=17H,(17H)=34H,寫出下列程序段執行完后的A中的內容。ANL        A,  #17HORL        17H, AXRL        A,  R0C

26、PL           A    (A)=11001011B=0CBH10已知單片機的fosc=12MHz,分別設計延時0.1s、1s、1min的子程序。    設晶振頻率為12MHz,一個機器周期為1?s,延時1ms的子程序:                 

27、60;             執行時間(機器周期)DELAY:    MOV   R7, #0FFH                           &#

28、160;     1 LOOP:     NOP                                      

29、60;                   1                  NOP             

30、60;                                            1      &

31、#160;           DJNZ   R7, LOOP                                  2 

32、60;                RET                                  

33、;                         2該程序段的總的執行時間為:(1+4×255+2)ms=1023?s1ms延時時間為100ms的子程序:DELAY:   MOV   R5,#64H         &

34、#160;      對延時1ms的子程序循環100次。LOP1:      MOV   R7, #0FFH                               

35、   LOOP:     NOP                                         

36、60;                                  NOP                

37、;                                                  

38、;         DJNZ   R7, LOOPDJNZ   R5,LOP1                                 

39、60;                   RET                               

40、;                            延時時間為1s的子程序:DELAY1: MOV    R3, #0AH             對延時100ms

41、的子程序循環10次DELAY:   MOV   R5,#64H                。LOP1:      MOV   R7, #0FFH                

42、                  LOOP:     NOP                          

43、60;                                                 NOP 

44、;                                                  

45、;                        DJNZ   R7, LOOPDJNZ   R5,LOP1                  

46、60;                                  DJNZ  R3, DELAYRET 延時時間為60s的子程序:         &#

47、160; 對延時1s的子程序循環60次11MCS-51匯編語言中有哪些常用的偽指令?各起什么作用?    BIT(地址符號命令)END(結束匯編)EQU(等值)    DB(定義字節)DW(定義字)DS(定義存儲單元)ORG(匯編起始地址)12比較下列各題中的兩條指令有什么異同? MOV  A,  R1;    MOV  0E0H,  R1    指令功能相同,尋址方式表示不同    MOV  A

48、,  P0;    MOV  A,   80H      指令功能相同,尋址方式表示不同    LOOP:SJMP  LOOP;  SJMP  $              指令功能相同13下列程序段匯編后,從3000H開始各有關存儲單元的內容是什么?   &

49、#160;                       ORG         3000H         TAB1:        EQU 

50、;       1234H         TAB2:        EQU        5678H                  &

51、#160;        DB             65,13,"abcABC"                         

52、60; DW            TAB1,TAB2,9ABCH     3000H: 65     3001H: 13     3002H: a     3003H: b     3004H: c     3005H: A  

53、   3006H:B     3007H: C     3008H: 34H     3009H: 12H     300AH: 78H     300BH: 56H     300CH: 0BCH     300DH: 9AH14為了提高匯編語言程序的效率,在編寫時應注意哪些問題?(1) 把要解決

54、的問題化成一個個具有一定獨立性的功能模塊,各模塊盡量采用子程序完成其功能。(2) 力求少用無條件轉移指令,盡量采用循環結構。(3) 對主要的程序段要下功夫精心設計,這樣會收到事半功倍的效果。(4) 能用8位數據解決問題的就不要使用16位數據。(5) 累加器是信息傳遞的樞紐,在調用子程序時應通過累加器傳送子程序的參數,通過累加器向主程序傳送返回參數。所以,在子程序中一般不把累加器推入堆棧。若需保護累加器的內容時,應先把累加器的內容存入其他寄存器單元,然后再調用子程序。(6)為了保證程序運行的安全可靠,應考慮使用軟件抗干擾技術,如數字濾波技術、指令冗余技術、軟件陷井技術,用匯編語言程序實現這些技術

55、,不需要增加硬件成本,可靠性高,穩定性好,方便靈活。15試編寫8字節外部數據存儲器到內部數據存儲器的數據塊傳送程序,外部數據存儲器地址范圍為40H47H,內部數據存儲器地址范圍為30H37H。MOV R3,#8     MOV R0,#40H     MOV R1,#30HLOP1:MOVX A,R0      MOV R1,A      INC R0      IN

56、C R1      DJNZ R3,LOP116試編寫8字節外部程序存儲器到內部數據RAM的傳送程序,外部程序存儲器地址為2040H2047H,內部RAM地址為30H37H。參看15題答案(提示:外部程序存儲器地址為16位地址:2040H2047H,間接尋址采用DPTR)17試編程使內部RAM的20H4FH單元的數據塊按降序排列。   參看23題答案(提示:本題對20H4FH單元(48個)數據降序排列)。18內部RAM的20H單元開始有一個數據塊,以0DH為結束標志,試統計該數據塊長度,將該數據塊傳送到外部數據存儲

57、器7E01H開始的單元,并將長度存入7E00H單元。      MOV  R0, #20H      MOV  DPTR, #7E01HLOP:  MOV  A, R0      MOV  60H,ASUBB  A, #0DH      JZ     LOP1   &#

58、160;  MOV  A,60H      MOVX  DPTR, AINC    R3      INC    R0      INC    DPTR      AJMP   LOPLOP1: MOV   DPTR, #7E00H

59、0;     MOV   A,R3      MOVX  DPTR, A      END19試編寫一個用查表法查09字形7段碼(假設表的首地址為TABLE)的子程序,調用子程序前,待查表的數據存放在累加器A中,子程序返回后,查表的結果也存放在累加器A中。SQR1: MOV   DPTR,#TABLE      MOVC  A, A+DPTR

60、60;     RETTABLE: DB 0C0H,0F9H,0A4H,0B0H,99H  ; 09的字形顯示段碼(LED共陽極。DB 92H,82H,F8H,80H,90H 20內部RAM的DATA開始的區域中存放著10個單字節十進制數,求其累加和,并將結果存入SUM和SUM+1單元。       MOV  R0,#DATA       MOV  R3,#0AH   

61、;    MOV  A,#0LOP:  ADD  A,R0       MOV  R4,A       ADDC  A, #0       MOV  R5,A       INC    R0    &

62、#160;  DJNZ  R3, LOP       MOV  SUM,R4       MOV  SUM+1,R5        END21內部RAM的DATA1和DATA2單元開始存放著兩個等長的數據塊,數據塊的長度在LEN單元中。請編程檢查這兩個數據塊是否相等,若相等,將0FFH寫入RESULT單元,否則將0寫入RESULT單元。  

63、0;      MOV  R0,#DATA1         MOV  R3, LEN    LOP:  MOV A, R0         CJNZ A,DATA2, LOP1         INC R0   

64、60;     INC DATA2         DJNZ R3,LOP         MOV A,#0FFH         MOV RESULT,A         AJMP LOP2    LOP1:

65、MOV A,#0         MOV RESULT, A    LOP2: AJMP LOP2         END22有一輸入設備,其端口地址為20H,要求在1秒鐘時間內連續采樣10次讀取該端口數據,求其算術平均值,結果存放在內部RAM區20H單元。         MOV R0,#20H  

66、0;     MOV R2,#0        MOV A,#0        MOV R4,#0LOP : MOV R3,#0AH    IN :  ACALL  DELAY     MOVX  A, R0     MOV  R2 , A  

67、60;  MOV A, R4     ADD A,  R2     MOV  R4, A     DJNZ  R3,  IN     MOV  B,#0AH     DIV   AB     MOV 20H,A     AJMP LOP&#

68、160;       DELAY:  MOV   R5,#64H                延時時間為0.1s的子程序:LOP1:    MOV   R7, #0FFH          

69、0;                         LOOP:         NOP               &

70、#160;                                                 &

71、#160;          NOP                                       

72、60;                                   DJNZ   R7, LOOPDJNZ   R5,LOP1       &

73、#160;                                             RET    

74、60;    END                                              

75、;            23編寫子程序,將內部RAM區以30H為起始地址的連續10個存儲單元中的數據,按照從小到大的順序排序,排序結果仍存放在原數據區。采用冒泡法排序:冒泡排序法的基本算法是:N個數排序,從數據存放單元的一端(如起始單元)開始,將相鄰二個數依次進行比較,如果相鄰兩個數的大小次序和排序要求一致,則不改變它們的存放次序,否則相互交換兩數位置,使其符合排序要求,這樣逐次比較,直至將最?。ń敌颍┗蜃畲螅ㄉ颍┑臄狄浦磷詈蟆H缓?,再將n-1個數繼續比較,重復上面操作,

76、直至比較完畢。可采用雙重循環實現冒泡法排序,外循環控制進行比較的次數,內循環實現依次比較交換數據。程序如下:ORG                   0000HBLOCK     EQU   30H             &#

77、160;     ;設BLOCK為30H單元                                           

78、     MOV         R7,  #9H          ;設置外循環計數器NEXT:      MOV  A,   R7MOV  80H,  A          &

79、#160;                MOV  R6,   A               ;設置外循環計數器              

80、;    MOV  R0,  #30H             ;設置數據指針COMP:      MOV  A,  R0              MOV  R2,  A   &

81、#160;          INC    R0              CLR C              SUBB  A,  R0     &

82、#160;        JC    LESS              MOV        A,  R2              XCH 

83、60;       A,  R0DEC        R0              MOV        R0,  A           

84、;   INC         R0LESS:        DJNZ         R6,COMP           ;(R6)-1不等于0,轉COMP繼續內循環MOV      &#

85、160;  R0,#30H                  DEC         80HMOV    R6,  80h              DJNZ 

86、       R7,   COMP              RET              END第四章1MCS-51系列單片機能提供幾個中斷源、幾個中斷優先級?各個中斷源的優先級怎樣確定?在同一優先級中,各個中斷源的優先順序怎樣確定?答:MCS-51系列

87、單片機能提供5個中斷源,2個中斷優先級。各個中斷源的優先級是由特殊功能寄存器IP來確定,IP中和各個中斷源對應位為1時,此中斷源為高優先級,否則為低優先級。在同一優先級中,各個中斷源的優先順序是由自然優先級來確定的。2簡述MCS-51系列單片機的中斷響應過程。答:MCS-51系列單片機的中斷響應過程是按照以下順序執行的:開中斷-中斷請求-中斷判斷-中斷響應-中斷返回。3MCS-51系列單片機的外部中斷有哪兩種觸發方式?如何設置?對外部中斷源的中斷請求信號有何要求?答:MCS-51系列單片機的外部中斷有電平觸發和邊沿觸發兩種方式。是由特殊功能寄存器TCON中IT0,IT1的狀態確定的,如:IT0

88、為1時外部中斷0為邊沿觸發方式,當INT0外部引腳出現下降沿時向CPU提出中斷請求, 否則為電平觸發方式,當INT0外部引腳出現低電平時向CPU提出中斷請求。4MCS-51單片機中斷響應時間是否固定?為什么?答:MCS-51單片機中斷響應時間不固定,因為當中斷源向CPU提出中斷請求時,CPU正在執行的指令的指令周期是不一樣的。5MCS-51單片機如果擴展6個中斷源,可采用哪些方法?如何確定它們的優先級?答:一般可采取中斷加查詢方式,軟件先查詢到的為高優先級,最后查詢到的為低優先級。6當正在執行某一中斷源的中斷服務程序時,如果有新的中斷請求出現,問在什么情況下可響應新的中斷請求?在什么情況下不能

89、響應新的中斷請求?答:當正在執行某一中斷源的中斷服務程序時,如果有新的中斷請求出現,當新中斷源中斷級別比正在執行中斷源的中斷級別高時可響應新的中斷請求,否則不能響應新的中斷請求。78051單片機有5個中斷源,但只能設置兩個中斷優先級,因此,在中斷優先級安排上受到一定的限制。問以下幾種中斷優先級順序的安排(級別由高到低)是否可能?如可能,則應如何設置中斷源的中斷級別?否則,請敘述不可能的理由。(1)定時器0,定時器1,外中斷0,外中斷1,串行口中斷。可能。其中:定時器0,定時器1為高優先級。(2)串行口中斷,外中斷0,定時器0,外中斷1,定時器1??赡?。其中:串行口中斷為高優先級。(3)外中斷0

90、,定時器1,外中斷1,定時器0,串行口中斷。不可能。(4)外中斷0,外中斷1,串行口中斷,定時器0,定時器1??赡堋F渲校和庵袛?,外中斷1,串行口中斷為高優先級。(5)串行口中斷,定時器0,外中斷0,外中斷1,定時器1。不可能。(6)外中斷0,外中斷1,定時器0,串行口中斷,定時器1。不可能。(7)外中斷0,定時器1,定時器0,外中斷1,串行口中斷??赡?。其中:外中斷0,定時器1為高優先級。第5章習題答案18051定時器/計數器有哪幾種工作模式?各有什么特點?答:8051定時器/計數器有0,1,2,3四種工作模式。模式0為13位1定時器/計數器,模式1為16位1定時器/計數器,模式2為自動賦

91、初值的8位定時器/計數器,模式3可以增加一個8位定時器(T1沒有模式3)。28051定時器作定時和計數時,其計數脈沖分別由誰提供?答:8051定時器作定時器時,輸入的記數脈沖是由晶體振蕩器的輸出經12分頻后得到的,所以定時器可看作是對單片機機器周期的計數器。8051定時器作計數器時,則對外部事件進行計數。38051定時器的門控信號GATE為1時,定時器如何啟動?答:8051定時器的門控信號GATE為1時,只有 (或 )引腳為高電平且TR0(或TR1)置1時,相應的T0或T1才能選通工作。4定時器/計數器0已預置為156,且選定用于模式2的計數方式,現在T0引腳上輸入周期為1ms的脈沖,問:(1

92、) 此時定時器/計數器0的實際用途是什么?(2) 在什么情況下,定時器/計數器0溢出?答:(1)此時定時器/計數器0的實際用途是0。1S脈沖信號發生器。   (2)當T0每記數100次后定時器/計數器0溢出。5設fosc=12MHz,定時器0的初始化程序和中斷服務程序如下:MAIN:      MOV        TH0, #9DHMOV        TL0, #0D0HMOV

93、60;       TMOD, #01HSETB        TR0                           中斷服務程序:MOV     

94、60;  TH0, #9DHMOV        TL0, #0D0HRETI問:(1) 該定時器工作于什么方式?    (2) 相應的定時時間或計數值是多少?答:(1)該定時器以模式1工作于定時方式。   (2)相應的定時時間為25。136ms.68051單片機的fosc=6MHz,如果要求定時時間分別位0.1ms和5ms,當T0工作在模式0、模式1和模式2時,分別求出定時器的初值。答:(1)定時時間分別位0.1ms時:模式0初值為8142、模式1初值為65486

95、,模式2初值206。   (2)定時時間分別位5ms時:模式0初值為5692、模式1初值為63036,模式2此時定時時間不夠。7以定時器1進行外部事件計數,每計數1000個脈沖后,定時器1轉為定時工作方式。定時10ms后,又轉為計數方式,如此循環不止。設fosc=6MHz,試用模式1編程。解:先確定T1作為計數器時初值為:64536(0FC68H)          T1作為定時器時初值為:60536(0EC78H)    程序:SETB  TR

96、1  LOOP: MOV  TMOD,#50H           MOV  TH1,#0FCH           MOV  TL1,#68H  AA :  JBC   TF1,AA          MOV  TMO

97、D,#10H          MOV  TH1,#0E0H          MOV  TL1,#78H  BB:   JBC   TF1,BB          SJMP  LOOP     &#

98、160;    END         8已知8051單片機的fosc=6MHz,試利用T0和P1.0輸出矩形波。矩形波高電平寬100s,低電平寬300s。解:先確定 T0作為定時器工作于模式2時初值為:高電平為50,低電平為150。采用中斷方式編程。      ORG   0000H      AJMP  MAIN  

99、0;   ORG   001BH      AJMP  TIM0          ORG   0030H MAIN:  MOV  SP,#30H           ; 設置棧底      

100、0;   MOV  TMOD,#02H          MOV  TL0,#50          MOV  IE,#82H          SETB   P1.0       

101、0;  SETB   TR0          SJMP   $                  ORG   0100H TIM0:    JNB  P1.0, AA    &#

102、160;     CLR  P1.0          MOV  TL0,#150          RETI AA:      SETB  P1.0          MOV  TL0,#

103、50          RETI          END9設fosc=12MHz,試編寫一段程序,功能為:對定時器T0初始化,使之工作在模式2,產生200s定時,并用查詢T0溢出標志的方法,控制P1.1輸出周期為2ms的方波。解:先確定 T0作為定時器時初值為:56   程序:  MOV  TMOD,#02H     

104、0;     MOV  TL0,#56           MOV  TH0,#56           MOV  R7,#5        ; 設置循環次數        

105、60;  SETB  TR0AA:    JBC  TF0,AA            DJNZ  R7,AA            CPL  P1.1            MOV

106、0; R7,#5            SJMP  AA            END10已知8051單片機系統時鐘頻率為6MHz,利用其定時器測量某正脈沖寬度時,采用哪種工作模式可以獲得最大的量程?能夠測量的最大脈寬是多少?答:首先設置TMOD中GATE為1,以定時方式工作在模式1,外部正脈沖從外部中斷引腳引入,可獲得最大的量程。   

107、 能夠測量的最大脈寬為:131ms.第6章習題答案1異步通信和同步通信的主要區別是什么?MCS-51串行口有沒有同步通信功能?答案:異步通信因為每幀數據都有起始位和停止位,所以傳送數據的速率受到限制。但異步通信不需要傳送同步脈沖,字符幀的長度不受限制,對硬件要求較低,因而在數據傳送量不很大。同步通信一次可以連續傳送幾個數據,每個數據不需起始位和停止位,數據之間不留間隙,因而數據傳輸速率高于異步通信。但同步通信要求用準確的時鐘來實現發送端與接收端之間的嚴格同步。MCS-51串行口有同步通信功能。2解釋下列概念:(1) 并行通信、串行通信。(2) 波特率。(3) 單工、半雙工、全雙工。(4) 奇偶

108、校驗。答案:(1)并行通信:數據的各位同時進行傳送。其特點是傳送速度快、效率高,數據有多少位,就需要有多少根傳輸線。當數據位數較多和傳送距離較遠時,就會導致通信線路成本提高, 因此它適合于短距離傳輸。串行通信:數據一位一位地按順序進行傳送。其特點是只需一對傳輸線就可實現通信,當傳輸的數據較多、距離較遠時,它可以顯著減少傳輸線,降低通信成本,但是串行傳送的速度慢。(2)波特率:每秒鐘傳送的二進制數碼的位數稱為波特率(也稱比特數),單位是bps(bit per second),即位/秒。(3)單工:只允許數據向一個方向傳送,即一方只能發送,另一方只能接收。半雙工:允許數據雙向傳送,但由于只有一根傳

109、輸線,在同一時刻只能一方發送,另一方接收。全雙工:允許數據同時雙向傳送,由于有兩根傳輸線,在A站將數據發送到B站的同時,也允許B站將數據發送到A站。(4)奇偶校驗:為保證通信質量,需要對傳送的數據進行校驗。對于異步通信,常用的校驗方法是奇偶校驗法。采用奇偶校驗法,發送時在每個字符(或字節)之后附加一位校驗位,這個校驗位可以是“0”或“1”,以便使校驗位和所發送的字符(或字節)中“1”的個數為奇數稱為奇校驗,或為偶數稱為偶校驗。接收時,檢查所接收的字符(或字節)連同奇偶校驗位中“1”的個數是否符合規定。若不符合,就證明傳送數據受到干擾發生了變化,CPU可進行相應處理。3MCS-51串行口控制寄存

110、器SCON中SM2、TB8、RB8有何作用?主要在哪幾種方式下使用?答案:SM2:多機通信控制位,主要在方式1、2、3下使用;TB8:存放發送數據的第9位,主要在方式2、3下使用;RB8:存放接收數據的第9位或停止位,主要在方式1、2、3下使用。4試分析比較MCS-51串行口在四種工作方式下發送和接收數據的基本條件和波特率的產生方法。答案:發送數據的基本條件:方式0、1、2、3:CPU執行一條將數據寫入發送緩沖器SBUF的指令;接收數據的基本條件:方式0:用軟件使REN=1(同時RI=0);方式1:用軟件使REN=1,一幀數據接收完畢后,必須同時滿足以下兩個條件:RI=0;SM2=0或接收到的

111、停止位為1,這次接收才真正有效,將8位數據送入SBUF,停止位送RB8,置位RI。否則,這次接收到的數據將因不能裝入SBUF而丟失。方式2、3:軟件使REN=1,同時滿足以下兩個條件: RI=0; SM2=0或接收到的第9位數據為1(SM2=1),則這次接收有效,8位數據裝入SBUF,第9位數據裝入RB8,并由硬件置位RI。否則,接收的這一幀數據將丟失。波特率的產生方法:在方式0下,串行口的波特率是固定的,即波特率=fosc /12;在方式1、3下,串行口波特率由定時器T1的溢出率和SMOD值同時決定。相應公式為:波特率=2SMOD×T1溢出率/32;在方式2下,串行口的波特率可由P

112、CON中的SMOD位控制:若使SMOD=0,則所選波特率為fosc/64;若使SMOD=1,則波特率為fosc/32。即2SMOD64×fosc波特率=5為何T1用作串行口波特率發生器時常用模式2?若fosc=6MHz,試求出T1在模式2下可能產生的波特率的變化范圍。答案:定時器T1作為波特率發生器可工作于模式0、模式1和模式2。其中模式2在T1溢出后可自動裝入時間常數,避免了重裝參數,因而在實際應用中除非波特率很低,一般都采用模式2。若fosc=6MHz,T1在模式2下可能產生的波特率的變化范圍為:61.04 bps 15625 bps。6簡述多機通信原理。答案:當主機選中與其通信的從機后,只有該從機能夠與主機通信,其他從機不能與主機進行數據交換, 而只能準備接收主機發來的地址幀。上述要求是通過SCON寄存器中的SM2和TB8來實現的。當主機發送地址幀時使TB8=1,發送數據幀時使TB8=0,TB8是發送的一幀數據的第9位,從機接收后將第9位數據作為RB8,這樣就知道主機發來的這一幀數據是地址還是數據。另外,當一臺從機的SM2=0時,可以接收地址幀或數據幀,而當SM2=1時只能接收地址幀,這就能實現主機與所選從機之間的單獨通信。7試用8051串行口擴展I/O口,控制16個發光二極管自右向左以一

溫馨提示

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

評論

0/150

提交評論