




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、PAGE PAGE 51微控制器原理及應用第1章 緒論1什么是微控制器?答:微控制器(單片機)就是在一塊半導體硅片上集成了微處理器(CPU)、存儲器(RAM、ROM)和各種功能單元(定時器/計數器、并行I/O口、串行口、ADC等)的集成電路芯片。280C51系列MCU的主要特點是什么?答:(1)種類多,型號全;(2)體積小,成本低,使用靈活,易于產品化;(3)面向控制;(4)性價比高;(5)可用C語言開發,效率高;()6具有很強的外部擴展能力。3微控制器(MCU)和微處理器(MPU)有何不同?為什么說MCU是典型的嵌入式系統?答:處理器通常指微處理器、微控制器和數字信號處理器這三種類型的芯片。
2、微處理器(MPU)通常代表一個功能強大的CPU,但不是為任何已有的特定計算目 的而設計的芯片。這種芯片往往是個人計算機和高端工作站的核心CPU。最常見的微處理器是Motorola的68K系列和Intel的X86系列。 早期的微控制器是將一個計算機集成到一個芯片中,實現嵌入式應用,故稱單片機(single chip microcomputer)。隨后,為了更好地滿足控制領域的嵌入式應用,單片機中不斷擴展一些滿足控制要求的電路單元。目前,單片機已廣泛稱作微控制 器(MCU)。 也有由微處理器發展的微控制器。比如,Intel的386EX就是很成功的80386微處理器的微控制器版本。它與嵌入式應用的微
3、處理器一樣,也稱為嵌入 式微處理器。嵌入式處理器的高端產品有:Advanced RISC Machines公司的ARM、Silicon Graphics公司的MIPS、IBM和Motorola的Power PC 、Intel的X86和i960芯片、AMD的Am386EM、Hitachi的SH RISC芯片。 數字信號處理器(DSPs)里的CPU是專門設計用來極快地進行離散時間信號處理計算的,比如那些需要進行音頻和視頻通信的場合。DSPs內含乘加器,能 比其它處理器更快地進行這類運算。最常見的是TI的TMS320CXX系列和Motorola的5600X系列。嵌入式系統(embedded syst
4、em)是計算機硬件和軟件的集合體。它包括一個處理器,涉及對硬件的直接控制,是為了嵌入到對象體系中完成某種特定的功能而設計的,是嵌入式計算 機系統的簡稱。如微波爐是很好的嵌入式系統的應用實例:用處理器和軟件幫助人們做飯。嵌入式系統和家里的微機(個人計算機)形成了鮮明的對比。同樣是計算 機硬件和軟件,個人計算機卻不是用來完成某個特定功能的,相反,它可以做各種不同的事情。因此,很多人用計算機的通用性來區分通用計算機(通用微機)和嵌入式系統這種專用計算機系統。嵌入式系統可以是微控制器 (單片機)或是以微處理器為主構成的計算機系統,也包括數字信號處理器(DSPs)構成的系統和片上系統SoC(System
5、 on Chip)。 單片機是專門用作嵌入式應用而設計的單芯片型計算機。為了不斷擴展的嵌入式應用要求,不斷在片內擴展滿足控制需要的各種單元電路,而形成目前廣泛使用的微 控制器。因此,單片機(微控制器)是一個典型的普及型的嵌入式系統,因為它們除了嵌入式應用之外沒有其他用途。4你認為在哪個領域中MCU的應用將得到較大發展?簡述該領域的現狀和技術發展趨勢。略。第2章80C51系列微控制器的片內基本結構180C51系列MCU的哪些芯片引腳具有第二功能?各功能是什么?答:引 腳第二功能功能說明P3.0RXD串行數據輸入口P3.1TXD串行數據輸出口P3.2外部中斷0輸入口P3.3外部中斷1輸入口P3.4
6、T0定時器0外部計數輸入口P3.5T1定時器1外部計數輸入口P3.6外部數據存儲器寫選通輸出口P3.7外部數據存儲器讀選通輸出口280C51系列MCU的存儲器在結構上有何特點?在物理上有哪幾種空間?在邏輯上有哪幾種空間?訪問片內RAM和片外RAM的指令有何區別?答:特點:80C51系列MCU采用哈佛結構,程序存儲器和數據存儲器截然分開,各有獨立的總線。在物理上有4個空間:片內程序存儲器,片外程序存儲器,片內數據存儲器,片外數據存儲器。在邏輯上有3個空間:片內外統一的64K程序存儲器,片內256B(或384B)數據存儲器,片外64K數據存儲器。訪問片內RAM和片外RAM的指令區別:訪問片內RAM
7、采用MOV格式指令,訪問片外RAM采用MOVX格式指令。380C51系列MCU的片內RAM低128字節劃分為哪幾個部分?各部分主要功能是什么?答:片內低128B單元的劃分及其主要功能:(1)工作寄存器組(00H1FH)。這是一個用寄存器直接尋址的區域,內部數據RAM區的00H1FH,共32個單元。它是4個通用工作寄存器組,每個組包含8個8位寄存器,編號為R0R7。 (2)位尋址區(20H2FH)。16個字節單元,共包含128位,這16個字節單元既可以進行字節尋址,又可以實現位尋址,主要用于位尋址。 (3)字節尋址區(30H7FH) 地址為30H7FH,共80個字節單元,主要用于設置堆棧、緩沖區
8、及存儲數據。480C51系列MCU設有幾個通用工作寄存器組?有什么特點?如何選用?答:80C51系列MCU設有4個通用工作寄存器組,其特點為:采用寄存器直接尋址,指令數量最多,均為單周期指令,執行速度快。選用方法:在任何時刻,只能選用一組寄存器使用。通過軟件對PSW中的RS0、RS1位的設置來實現。當RS1RS0=00時,選用工作寄存器組0;當RS1RS0=01時,選用工作寄存器組1,以此類推。5什么是現場保護?如何實現工作寄存器組的現場保護?答:現場保護是指在進入中斷服務程序或子程序之前,先將可能改變的寄存器中的值保存下來,等到退出中斷服務程序或子程序之后,再恢復他們的值,以防中斷和子程序執
9、行期間改變了原有寄存器的值,使得程序無法繼續正常運行。對于工作寄存器的現場保護,一般在主程序中使用一組工作寄存器,而進入子程序或中斷服務程序時,切換到另一組工作寄存器,在返回主程序前,再重新切換回原來的工作寄存器組。6堆棧的功能是什么?堆棧指針(SP)的作用是什么?在程序設計時,為什么要修改SP的值?答:堆棧的功能:保護斷點和保護現場。SP的作用:它是一個8位的寄存器,存放當前的堆棧棧頂所指存儲單元的地址。修改SP內的值的原因:系統復位后(SP)=07H,如不修改SP的值,則壓棧內容從08H單元開始存放,其使用的RAM區為工作寄存器區,影響工作寄存器的使用。7請寫出80C51系列MCU的中斷入
10、口地址。答:中斷源入口地址復位或非屏蔽中斷0000H外部中斷00003H定時器/計數器0中斷000BH外部中斷10013H定時器/計數器1中斷001BH串行中斷0023H定時器/計數器2中斷(僅89C52)002BH8請簡述80C51系列MCU的時鐘周期(振蕩周期)、狀態周期、機器周期、指令周期的概念及其關系。答:時鐘周期(振蕩周期):晶體振蕩器輸出的脈沖信號周期。狀態周期:振蕩信號經二分頻后形成的時鐘脈沖信號,用S表示。一個狀態周期的兩個振蕩周期作為兩個節拍分別稱為節拍P1和節拍P2。機器周期:通常將完成一個基本操作所需要的時間稱為機器周期。80C51系列MCU的一個機器周期包括6個狀態周期
11、。指令周期:CPU執行一條指令所需要的時間為一個指令周期。顯然,指令不同,對應的指令周期也不一樣。一個指令周期通常含有14個機器周期。980C51系列MCU的復位有哪幾種方法?復位后MCU的各寄存器及RAM的初始狀態如何?答:使單片機復位有以下3種方式:上電自動復位、按鍵電平復位(手動復位)、外部脈沖復位。復位后,各并行I/O口的初始值為0FFH、SP的初始值為07H,其余寄存器(有定義的位)為00H。RAM內的值為隨機數。第3章 80C51系列微控制器的指令系統及程序設計1簡述80C51系列MCU的尋址方式及所涉及的尋址空間。答:80C51系列MCU指令系統的尋址方式共有7種。(1)立即尋址
12、:在指令中直接給出操作數。尋址空間為程序存儲器區。(2)直接尋址:在指令中直接給出操作數單元的地址。尋址空間為內部RAM低128B,特殊功能寄存器。(3)寄存器尋址:在指令中指定寄存器的內容作為操作數。尋址空間為工作寄存器R0R7、寄存器對AB、數據指針DPTR、進位位CY。(4)寄存器間接尋址:在指令中要到寄存器的內容所指定的地址去取操作數。尋址空間為全部RAM。(5)相對尋址:在指令中給出的操作數為程序轉移的偏移量。尋址空間為程序存儲器區。(6)變址尋址:以DPTR及PC作為基址寄存器,累加器A作為變址寄存器,以兩者內容相加形成的16位程序存儲器地址作為操作數地址。尋址空間為程序存儲器區。
13、(7)位尋址:對數據位的操作。尋址空間為內部RAM中的位尋址區和可位尋址的SFR位。2變址尋址方式有什么優點?主要用于什么場合?答:優點:可以方便地訪問全部程序存儲器區。用途:查表和多分支轉移(散轉)。3訪問SFR和片外RAM應采用哪種尋址方式?答:訪問SFR應采用直接尋址、位尋址(部分寄存器,A、AB、DPTR可寄存器尋址);訪問片外RAM應采用寄存器間接尋址。4對80C51系列MCU片內數據區地址80H0FFH的空間尋址時應注意些什么?答:注意:只有80C52(例如89C52)中有這部分地址空間;在這部分空間,只能采用間接尋址。580C51系列MCU的指令系統具有哪些主要特點?答:80C5
14、1的指令系統由111條指令組成。如果按字節數分類,有49條單字節指令、46條雙字節指令和16條三字節指令,以單字節指令為主;如果按指令執行時間分類,有664條單周期指令、45條雙周期指令和2條(乘、除)四周期指令,以單周期指令為主。由此看來,80C51的指令系統具有存儲效率高、執行速度快的特點。除此而外,指令系統還有如下特點: 可以進行直接地址到直接地址的數據傳送,能把一個并行I/O口中的內容傳送到內部RAM單元中而不必經過累加器A或工作寄存器Rn。這樣可以大大提高傳送速度和緩解累加器A的瓶頸效應。 用變址尋址方式訪問程序存儲器中的表格,將程序存儲器單元中的固定常數或表格字節內容傳送到累加器A
15、中。這為編程翻譯算法提供了方便。在算術運算指令中設有乘法(MUL)和除法(DIV)指令。指令系統中,一些對I/O口進行操作的指令具有讀一修改一寫的功能。讀一修改一寫指令是指:在執行讀鎖存器的指令時,CPU首先完成將鎖存器的值通過緩沖器BUF2讀 人內部,進行修改、改變,然后重新寫到鎖存器中去。這一特點是由I/O口的準雙向特性所決定的。這種類型的指令包含所有的口的邏輯操作(ANL、ORL、XRL)和位操作(JBC、CPL、 MOV、SETB、CLR等)指令。80C51單片機內部有一個布爾(位)處理器,對位地址空間具有豐富的位操作指令。布 爾(位)操作類指令共有17條,其中包括布爾傳送指令、布爾狀
16、態控制指令、布爾(位)邏輯操作指令及布爾(位)條件轉移指令。680C51系列MCU有哪些邏輯運算功能?各有什么用處?答:(1)邏輯運算功能 單操作數邏輯運算指令,其操作對象都是累加器A,包括:清0、取反、循環左移、帶進位循環左移、循環右移、帶進位循環右移和半字節互換指令。 雙操作數邏輯運算指令,包括:邏輯與(ANL)、邏輯或(ORL)及邏輯異或(XOR)三類操作。 布爾(位)邏輯操作指令,包括:位邏輯與(ANL)及位邏輯或(ORL)兩類操作。 (2)邏輯運算的用處 若是對口的操作,即為讀一改一寫。 邏輯與運算指令用做清除。邏輯或運算指令用做置位。用RLC A指令將累加器A的內容作乘2運算。用R
17、RC A指令將累加器A的內容作除2運算。780C51系列MCU的轉移類指令有何獨特優點?無條件轉移指令有哪幾種?如何選用?答:1) 條件轉移指令 在條件轉移指令中兩類指令有獨特的優點。(1)比較轉移(CJNE)指令CJNE A,direct,rel A內容與直接尋址單元內容比較,并轉移。 CJNE A,#data,rel A內容與立即數比較,并轉移。CJNE Rn,#data,rel 寄存器內容與立即數比較,并轉移。CJNE Ri,#data,rel 間址單元內容與立即數比較,并轉移。這4條指令能對所有單元內容進行比較,當不相等時程序作相對轉移,并指出其大小,以備作第二次判斷。其功能可從程序轉
18、移和數值比較兩個方面說明。 程序轉移:若目的操作數=源操作數,則 程序順利執行 PC(PC)+3 進位位清0 CY0 若目的操作數源操作數,則 程序轉移 PC(PC)+3+rel 進位位清0 CY0 若目的操作數源操作數,則程序轉移 PC(PC)+3+rel 進位位清0 CYl 數值比較:在80C51的指令系統中沒有比較指令,兩個數值的比較可利用這4條指令來實現,即可按指令執行后,根據CY的狀態來判斷數值的大小。若(CY)=0,則目的操作數源操作數; 若(CY)=1,則目的操作數源操作數。 (2)循環轉移(DJNZ)指令 80C51設有功能極強的循環轉移指令: DJNZ Rn,rel 以工作寄
19、存器作控制計數器。DJNZ direct,rel 以直接尋址單元作控制計數器。 這2條基本指令可派生出很多條不同控制計數器的循環轉移指令,大大擴充了應用范圍 和多重循環層次。 2)無條件轉移指令無條件轉移指令的功能是程序無條件地轉移到各自指定的目標地址去執行,不同的指令 形成的目標地址不同。共有4條: (1)相對轉移(SJMP)指令SJMP rel 指令的目標地址是由PC(程序計數器)和指令的第二字節帶符號的相對地址相加而成的。 指令可轉向指令前128B或指令后127B。(2)短轉移(AJMP)指令 AJMP addr11 指令提供11位地址,目標地址由指令第一字節的高三位a10a8和指令第二
20、字節的a7a0所組成。因此,程序的目標地址必須包含AJMP指令后第一條指令的第一個字節在內的2KB范圍內。(3)長轉移(LJMP)指令LJMP addrl6 指令提供16位地址,目標地址由指令第二字節和第三字節組成。因此,程序轉向的目標地址可以包含程序存儲器的整個64KB空間。 (4)間接轉移(JMP)指令 JMP A+DPTR指令的目標地址是將累加器A中的8位無符號數與數據指針DPTR的內容相加而得。 相加運算不影響累加器A和數據指針DPTR的原內容。若相加的結果大于64KB,則從程序存儲器的零地址往下延續。880C51系列MCU的短調用和長調用指令本質上有何區別?如何選用?答:這兩條指令都
21、是在主程序中調用子程序,兩者的區別:對短調用指令,被調用子程序入口地址必須與調用指令的下一條指令的第一字節在相同的2KB存儲區之內。入口地址與指令在2K內可選用ACALL或LCALL,超出2K范圍只能選用LCALL。980C51系列MCU的片內RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H。分析下面各條指令,說明源操作數的尋址方式,給出按順序執行各條指令后的結果。答:指 令 源操作數的尋址方式 執行指令后的結果 MOV A,40H 直接尋址 (A)=48HMOV R0,A 寄存器尋址 (R0)=48HMOV P1,#0F0H 立即尋址 (Pl)=0
22、F0HMOV R0,30H 直接尋址 (48H)=38HMOV DPTR,#3848H 立即尋址 (DPTR)=3848HMOV 40H,38H 直接尋址 (40H)=40HMOV R0,30H 直接尋址 (R0)=38HMOV D0H,R0 寄存器尋址 (D0H)=38HMOV 18H,#30H 立即尋址 (18H)=30HMOV A,R0 寄存器間接尋址 (A)=40HMOV P2,P1 直接尋址 (P2)=0F0H10已知(A)=7AH,(R0)=30H,(30H)=0A5H,(PSW)=80H,請填寫下列各條指令的執行結果:(1)SUBB A,30H ;(A)=0D4H(2)SUBB
23、A,#30H;(A)=49H(3)ADD A,R0;(A)=0AAH(4)ADD A,30H;(A)=1FH(5)ADD A,#30H;(A)=0AAH(6)ADDC A,30H;(A)=20H(7)SWAP A;(A)=0A7H(8)XCHD A,R0;(A)=75H(9)XCH A,R0;(A)=30H(10)XCH A,30H;(A)=0A5H(11)XCH A,R0;(A)=0A5H(12)MOV A,R0;(A)=0A5H11試分析以下程序段的執行結果。 MOVSP,#3AH MOV A,#20H MOVB,#30H PUSH ACC PUSH B POP ACC POP B 執行結
24、果:A、B內容交換,即:(A)=30H,(B)=20H12已知(A)=81H,(R0)=17H,(17H)=35H,指出執行完下列程序段后A的內容。 ANL A,#17H ORL 17H,A XRL A,R0 CPL A執行結果:(A)=0CBH13設R0的內容為32H,A的內容為48H,內部RAM的32H單元內容為80H,40H單元內容為08H,指出在執行下列程序段后上述各單元內容的變化。 MOV A,R0;(A)=80H MOV R0,40H;(32H)=08H MOV 40H,A;(40H)=80H MOV R0,#35H;(R0)=23H14將片外RAM區100CH單元中的內容傳送到1
25、20CH單元中,請編程實現。答:參考程序:MOVDPTR,#100CHMOVXA,DPTRMOVDPTR,#120CHMOVXDPTR,A15將片外RAM區40H單元中內容和41H單元中內容相乘,并將結果存放在片外RAM區42H和43H單元中,高位存放在高地址中,請編程實現。答:參考程序: ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV SP,#60HMOV P2,#00H;仿真時需加入(如使用DPTR則不需要)MOV R0,#40H MOVX A,R0 MOV B,AINC R0MOVX A,R0MUL ABINC R0MOVX R0,AMOV A,BINC R
26、0MOVX R0,ASJMP $ END16將片外RAM區40H60H區域的數據塊,全部搬移到片內RAM區的相同地址區域,并將原數據區全部填00H,請編程實現。答:參考程序(1): ORG 0000H LJMP START ORG 0030HSTART: MOV SP,#70HMOV DPH,#0 MOV DPL,#40H MOV R0,#40HLOOP: MOVX A,DPTR MOV R0,A MOV A,#00H MOVX DPTR,A INC DPTR INC R0 CJNE R0,#61H, LOOPJMP$ END參考程序(2): ADDR_START EQU 40H ORG 00
27、00H LJMP MAIN ORG 0030HMAIN: MOV SP,#70HMOV R0,#ADDR_START MOV R1,#21HLOOP:MOV P2,#00H;仿真時需要MOVX A,R0MOV R0,AMOV A,#00HMOVX R0,AINC R0DJNZ R1,LOOPJMP$ END17計算片內RAM區50H57H區域的數據的算術平均值,結果存放在58H中,請編程實現。答:參考程序: ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV SP,#60HMOV R0,#50H MOV 58H,#0 ;低8位地址 MOV 59H,#0 ;高8位地址L
28、OOP: CLR C MOV A,R0 ADD A,58H MOV 58H,A MOV A,59H ADDC A,#0 MOV 59H,A INC R0 CJNE R0,#58H,LOOP MOV R2,#3 ACALL RR_LOOP JMP $RR_LOOP: CLR C MOV A,59H RRC A MOV 59H,A MOV A,58H RRC A MOV 58H,A DJNZ R2,RR_LOOP RETEND18已知16位二進制數放在片內RAM區20H和21H單元,高位存放在高地址中,請編寫將其右移一位的程序。答:參考程序:ORG0000HLJMPMAINORG0030HMAIN
29、:MOVSP,#60HCLRCMOVA,21HRRCAMOV21H,AMOVA,20HRRCAMOV20H,AEND答:參考程序:19請用位操作指令,求下列邏輯方程:(1) MOVC,B.0ORLC,P3.0ANLC,ACC.0ORLC,/P3.1MOVP1.5,C(2) MOV C,P1.0 ANL C,/ACC.2 MOV F0,C MOV C,B.5 ANL C,/P1.5 ORL C,F0 MOV PSW.5,C20已知16位二進制數放在R7R6中,請編寫對它們進行求補操作的程序,結果存放在R1R0中。答:參考程序:ORG0000HLJMPMAINORG0030HMAIN:MOV A,
30、R6CPL AINC A MOV R0,AJZ LOOP1MOV A,R7CPL AMOV R1,ASJMP LOOP2LOOP1:MOV A,R7 CPL AINC AMOV R1,ALOOP2: END21在起始地址為1200H,長度為64的數據表中找出ASCII碼“F”,將其送到1000H單元中,請編程實現。答:參考程序:ORG0000HLJMPMAINORG0030HMAIN:MOVSP,#50HMOV DPTR,#1200HMOV R0,#0SCH_PRO0:MOV DPL,R0MOVX A,DPTRINC R0 CJNE A,#46H,SCH_PRO1MOV DPTR,#1000H
31、MOVX DPTR, ARETSCH_PRO1:CJNE R0, #64, SCH_PRO0RETEND22試編寫一段程序,把0500H0506H單元中的壓縮BCD碼轉換成ASCII碼,存放在0500H為首地址的存儲單元中。答:參考程序:ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV SP,#60HMOV DPTR,#0500HMOV R2,#07H MOV R0,#40HLOOP: MOVX A,DPTR MOV R1,A ANL A,#0FH ADD A,#30H MOV R0,A INC R0 MOV A,R1 SWAP A ANL A,#0FH ADD A
32、,#30H MOV R0,A INC R0 INC DPTR DJNZ R2,LOOP MOV R0,#40H MOV DPTR,#0500HLOOP2: MOV A,R0 MOVX DPTR,A INC R0 INC DPTR CJNE R0,#5EH,LOOP2SJMP $ END23請編寫一個延時2ms的子程序。答:參考程序:假設晶振頻率12Mhz。DELAY:MOVR7,#4 ;Tm =1sDELAY1: MOV R6,#123 ; 2Tm=2s NOP ; DELAY2: DJNZR6,DELAY2 ;(2123+2)Tm=248s DJNZ R7,DELAY1 ;(248+2)4+
33、lTm=2.001ms RET24利用查表技術將累加器中的一位BCD碼轉換為相應的十進制數的七段碼,結果仍放在A中(設顯示數字09的七段碼分別是:40H,79H,24H,30H,19H,12H,02H,78H,00H,1BH)。答:參考程序:ORG0000HLJMPMAINORG0030HMAIN:MOVSP,#50HMOVR2,#4;送入R2的值即為BCD碼09LCALLBCD_SEG7SJMP$BCD_SEG7:MOV A,R2 ADD A,#SEG7-INDEXMOVCA,A+PC INDEX: RETSEG7:DB 40H,79H,24H,30H,19H,12H,02H,78H,00H
34、,1BH END25為什么SJMP指令的rel=0FEH時,將實現單指令的無限循環?答:指令SJMP 0FEH 的作用相當于HERE:SJMP HERE(機器碼80FE) 此時程序將在原地進行無限循環。(答案1)因為rel為帶符號的8位二進制補碼數,所以 目的地址=轉移指令所在地址+轉移指令字節數+rel =轉移指令所在地址+02H+0FEH =轉移指令所在地址(答案2)第4章 80C51系列微控制器的功能單元180C51系列MCU的4個I/O口在使用上有哪些分工和特點?何謂分時復用總線?P3口的第二功能有哪些?答:分工和特點:(1)P0口:可作通用I/O,也可作地址/數據線用。作通用I/O口
35、時,輸出級為漏極開路電路,在驅動外部電路時需接上拉電阻;在擴展外部存儲時,P0口作地址/數據線用,先輸出低8位地址到外部鎖存器,后輸出指令代碼或輸入/輸出數據。(2)P1口:是一個8位準雙向口,作通用I/O口用。(3)P2口:是一個8位準雙向口,作通用I/O口用。當擴展外部存儲時,可輸出高8位地址。(4)P3口:是一個多功能口。其基本功能與P1、P2口類似,作通用I/O口用。其第二功能則是串行口、外部中斷輸入線、T/C的輸入線和外部數據存儲器的讀寫選通信號。分時復用總線:在一組總線上,在不同的時間,有時輸出地址,有時輸入代碼或輸入/輸出數據。例如,P0口、P2口就組成了一組地址/數據復用總線。
36、P3口的第二功能:引 腳第二功能功能說明P3.0RXD串行數據輸入口P3.1TXD串行數據輸出口P3.2外部中斷0輸入口P3.3外部中斷1輸入口P3.4T0定時器0外部計數輸入口P3.5T1定時器1外部計數輸入口P3.6外部數據存儲器寫選通輸出口P3.7外部數據存儲器讀選通輸出口280C51系列MCU端口P0P3作通用I/O口時,在輸入引腳數據時應注意什么?答:P0P3口作通用I/O口,在輸入引腳數據時,需先通過軟向所用端口的輸出鎖存器寫1。3為什么當P2口作為擴展程序存儲器的高8位地址后就不能用作通用I/O口了?答:在系統中如果外接有程序存儲器,由于訪問片外程序存儲器的連續不斷地取指操作,P
37、2口需要不斷送出高位地址,此時P2口的全部口線就不適宜作通用I/O口了。4定時器/計數器作定時用時,定時時間與哪些因素有關?作計數用時,對外部計數頻率有何限制?答:定時時間與以下因素有關:晶體振蕩器的頻率、機器周期、計數器的長度、定時器/計數器的初值。對外部計數頻率限制:輸入信號的頻率最大為晶體振蕩器的頻率的。5定時器/計數器T0工作在方式3時,由于TR1位已被T0占用,如何控制定時器/計數器T1的開啟和關閉?答:在方式3下,T1已將TF1、TR1資源出借給T0使用了,因此,它自己只能作波特率發生器使用。T1作波特率發生器時,可以設置成方式0 方式2,用在任何不需要中斷控制的場合。作波特率發生
38、器時,常設置成方式2的自動重裝狀態。利用置T1為定時器方式可以啟動波特率發生器,而置T1為計數器方式,則可以關閉波特率發生器。此時,只需要MOV TMOD,#63H ;初始化 ;設T0為方式3 ;設T1為計數器,方式2 ;關閉T1波特率發生器MOV TL1,#38H ;置定時常數,即設波特率MOV TH1,#38HMOV TMOD,#23H ;設T1為定時器,方式2 ;啟動T1波特率發生器6在80C51系列MCU系統中,已知時鐘頻率為6MHz,選用定時器/計數器T0工作在方式3,請編程實現P1.0和P1.1口分別輸出周期為1ms和400s的方波。答:以定時器T0設置方式3:TL0和TH0作為兩
39、個8位定時器,產生500us和200us的定時中斷,即可使P1.0和P1.1口分別輸出周期為1ms和400us的方波。時間常數的計算:振蕩器的頻率 ,方式3計數器長度L=8,。 定時時間 s 定時常數 定時時間 s 定時常數 P1.0和P1.1口分別輸出周期為1ms和400us的方波的程序:ORG 000BHAJMP IT0P;ORG 001BHAJMP IT1P;ORG 100HSTART: MOV SP,#60H ;設棧指針 ACALL PTOM3 ;調定時器初始化程序HERE: SJMP HERE ;等待中斷;PTOM3: MOV TMOD,#03H ;定時器初始化,設T0為;方式3MO
40、V TL0,#6HMOV TH0,#9CHSETB TR0 ;定時開始SETB TR1SETB ET0 ;開中斷SETB ET1SETB EARET;IT0P: MOV TL0,#6H ;TL0定時器中斷程序CPL P1.0RETI;IT1P: MOV TH0,#9CH ;TH0定時器中斷程序CPL P1.1RETI7用80C51系列MCU的定時器測量某正單脈沖的寬度,采用何種方式可得到最大量程?若時鐘頻率為6MHz,求允許測量的最大脈沖寬度是多少?答:設置:將外部脈沖引至引腳上,設T0為定時器方式,并設T0為方式1,GATE程控為1,TR0為1.一旦(P3.2)引腳上出現高電平,定時器即開始
41、定時,也就是它開始對時鐘的機器周期進行計數,直至高電平出現。此時讀出T0值即可。TMOD的設定(即控制字):控制字為#09H。初值為TH0=#00H,TL0=#00H。編程:;脈沖寬度在R3(高字節)、R4(低字節)START: MOV TMOD,#09HMOV TL0,#00HMOV YH0,#00HWAIT1: JB P3.2,WAIT1SETB TR0WAIT2: JNB P3.2,WAIT2WAIT3: JM P3.2,WAIT3CLR TR0MOV A,TL0MOV R4,AMOV A,TH0MOV R3,ARET由于定時器方式1的長度為16位,其最大計數值為=65535,即正脈沖的
42、寬度最大值不能超過65535個機器周期。如果時鐘頻率為6MHz,允許測量的最大脈沖寬度是655352us=131.070ms。880C51系列MCU的串口有幾種工作方式?如何選擇和設定?答:在串行口控制寄存器SCON中的SM0和SM1位決定串行口的工作方式;SM2位決定串行口應用于多處理機通信方式。(1)方式0當SM0=0,SM1=0時,串行口選擇方式0。這種工作方式實質上是一種同步移位寄存器方式。 方式0時,數據傳輸波特率固定為1/12。數據由RXD(P3.0)引腳輸入或輸出,同步移位時鐘又TXD(P3.1)引腳輸出。接收/發送的是8位數據,傳輸時低位在前。幀格式如下:(2)方式1當SM0=
43、0,SM1=1時,串行口選擇方式1。方式1時,數據傳輸波特率有定時器/計數器T1和T2的溢出決定,可用程序設定。由TXD(P3.1)引腳發送數據,由RXD(P3.0)引腳接收數據。發送或接收一幀信息為10位:1位起始位(0)、8位數據位和1位停止位(1)。幀格式如下:(3)方式2和方式3當SM0=1,SM1=0時,串行口選擇方式2;當SM0=1,SM1=1時,串行口選擇方式3。方式2和方式3的區別在于它們的波特率產生方式不同。方式2的波特率是固定的,為振蕩器頻率的1/32或1/64;方式3的波特率則是由定時器/計數器T1和T2的溢出決定,可用程序設定的。由TXD(P3.1)引腳發送數據,有RX
44、D(P3.0)引腳接收數據。發送或接收一幀信息為11位:1位起始位(0)、9位數據位和1位停止位(1)。幀格式如下:(4)多處理機通信方式在串行口控制寄存器SCON中,設有多處理機通信位SM2(SCON.5)。當串行口以方式2或方式3接收時,若SM2=1,如果接收到的第9位數據(RB8)為1,才將數據送入接收緩沖器SBUF,并RI置1發中斷;否則,數據將丟失。若SM2=0,則無論第9位數據(RB8)是1還是0,都能將數據裝入SBUF,并且發中斷。利用這一特性,便可實現主機與多個從機之間的串行通信。9什么是波特率?什么是溢出率?如何計算和設置串行通信的波特率?答:波特率是指每秒鐘傳輸的數據位數,
45、波特率發生器用于控制串行口的數據傳輸速率。溢出率是指某定時器每秒鐘溢出的次數,亦即定時器定時時間的倒數。波特率的計算和設置(1)串行口方式0時的波特率由振蕩器的頻率()所確定:波特率=(2)串行口方式2時的波特率由振蕩器的頻率()和SMOD(PCON.7)所確定:波特率=當SMOD=1時,波特率=;當SMOD=0時,波特率=。(3)串行口方式1和3時的波特率由定時器T1和T2的溢出率和SMOD(PCON.7)所確定。定時器T1和T2是可編程的,可選擇的波特率范圍比較大,因此,傳胸口的方式1和3是最常用的工作方式。用定時器T1(C/T=0)產生波特率時:波特率=定時器T1的溢出率與它的工作方式有
46、關:定時器T1工作方式0:此時定時器T1相當于一個13位的計數器。溢出率=式中:13位定時器定時常數(初值); X中斷服務程序的及其周期數,在中斷服務程序中重新對定時器置數。定時器T1工作方式1:此時定時器T1相當于一個16位的計數器。溢出率=定時器T1工作方式2:此時定時器T1工作于一個8位可重裝的方式,用TL1技術,用TH1裝初值。溢出率=方式2是一種自動重裝方式,無需在中斷服務程序中送數,沒有由于中斷引起的誤差,也應禁止定時器T1中斷。這種方式用于波特率設定最為有用。 用定時器T2(80C52)產生波特率時:波特率=溢出率=式中:(RCAP2H,RCAP2L)為定時器T2中,16位寄存器
47、的初值(定時常數)。10為什么定時器/計數器T1用作串行口波特率發生器時,常采用方式2?若已知系統時鐘頻率和通信波特率,應如何計算其初始值?答:(1)定時器T1工作于方式2是一種自動重裝方式,無需在中斷服務程序中送數,沒有由于中斷引起的誤差,因此采用方式2是一種既省事又精確的產生串行口頻率的方法。(2)若已知系統時鐘頻率和通信波特率,計算其初始值方法:11某異步通信接口,其幀格式組成為:1個起始位0、7個數據位、1個奇偶校驗位和1個停止位1。當該接口每分鐘傳輸1800個字符時,計算其傳輸波特率。答: 幀格式由一個起始位0、七個數據位、一個奇偶校驗位和一位停止位1所組成,即每幀為10位。每分鐘傳
48、送1800個字符時,每字符發送的位數為10位,則每分鐘發送的總位數為18000。傳送波特率應為:1280C51系列MCU有幾個中斷源?各中斷標志是如何產生的?又如何復位的?CPU響應中斷時,其中斷入口地址各是多少?答:(1) 80C51的中斷源 80C51中有五個中斷源;80C52中增多了一個中斷源定時器/計數器T2,即有六個中斷源。80C51的五個中斷源是:(P3.2)外部中斷0.當IT0(TCON.0)=1時,低電平有效;當IT0(TCON.0)=0時,下降沿有效。(P3.3)外部中斷1.當IT1(TCON.2)=1時,低電平有效;當IT1(TCON.2)=0時,下降沿有效。TF0(P3.
49、4)定時器/計數器T0溢出中斷。TF1(P3.5)定時器/計數器T1溢出中斷。RX,TX串行中斷。中斷標注的產生和復零:T1溢出中斷標志:TF1(TCON.7)。T1計數溢出。硬件置位,響應中斷時,硬件復位。不使用中斷時用軟件清0。T0溢出中斷標志:TF0(TCON.5)。T0計數溢出。硬件置位,響應中斷時,硬件復位。不使用中斷時用軟件清0。外部中斷1中斷標志:IE1(TCON.3)。當CPU采樣到端出現有效中斷請求時,IE1位硬件置1;響應中斷后,轉向中斷服務時,硬件復位。外部中斷0中斷標志:IE0(TCON.1)。當CPU采樣到端出現有效中斷請求時,IE0位硬件置1;響應中斷后,轉向中斷服
50、務時,硬件復位。串行中斷發送中斷標志:TI(SCON.1)。發送完一幀,硬件置位;響應中斷后,必須軟件清0。串行中斷接收中斷標志:RI(SCON.0)。發送完一幀,硬件置位;響應中斷后,必須軟件清0。(2)中斷入口地址中斷源 中斷入口地址 0003H定時器/計數器0(T0) 000BH 0013H定時器/計數器1(T1) 001BH串行口(RI、TI) 0023H13外部中斷請求有哪兩種觸發方式?對下降沿觸發信號和電平觸發信號有什么要求?如何選擇和設置?答:(1)外部中斷請求的觸發方式 電平觸發方式,低電平有效。 跳變觸發方式,電平發生有高到低的跳變時觸發。(2)對跳變觸發和電平觸發信號的要求
51、由于CPU每個機器周期采樣引腳信號一次,為確保中斷請求被采樣到,外部中斷源送引腳的中斷請求信號應至少保持一個機器周期。如果跳變觸發方式,外部終端源引腳的中斷請求信號高、低電平應至少各保持一個機器周期,才能確保CPU采集到電平的跳變。如果是電平觸發方式,則外部中斷源送引腳請求中單的低電平有效信號,應一直保持到CPU響應中斷為止。(3)觸發方式的選擇和設置這兩種觸發方式可由設置TCON寄存器中的IT1(TCON.2)、IT0(TCON.0)中斷申請觸發方式控制位來選擇:設置IT1、IT0=0,選擇電平觸發方式。設置IT1、IT0=1,選擇跳變觸發方式,即當引腳檢測到前一個機器周期為高電平、后一個機
52、器周期為低電平時,則置位IE0、IE1,向CPU申請中斷。第5章 微控制器的外部串行擴展技術1I2C總線的優點?答:(1)硬件簡單,資源消耗少。只有時鐘和數據線。(2)HYPERLINK /s?q=%E6%97%B6%E9%92%9F%E5%90%8C%E6%AD%A5&ie=utf-8&src=wenda_link t _blank時鐘同步和仲裁的實現原理也很簡單,以開漏/HYPERLINK /s?q=%E9%9B%86%E7%94%B5%E6%9E%81%E5%BC%80%E8%B7%AF&ie=utf-8&src=wenda_link t _blank集電極開路門以線路邏輯簡單實現。 (
53、3)協議設計精巧、易用、靈活。數據、地址、指令都可以傳。(4)真正的多主機總線,如果兩個或更多主機同時初始化數據傳輸可以通過沖突檢測和仲裁防止數據被破壞。(5)使用廣泛,現在幾乎所有的I2C廠商都在芯片上集成了I2C。 2I2C總線起始信號和終止信號是如何定義的?答:根據I2C總線協議的規定,SCL線為高電平期間,SDA線由高電平向低電平的變化表示起始信號;SCL線為高電平期間,SDA線由低電平向高電平的變化表示終止信號。3I2C總線的數據傳送方向如何控制?答:在總線的一次數據傳送過程中,可以有以下幾種組合方式:(1)主機向從機發送數據,數據傳送方向在整個傳送過程中不變。(2)主機在發送完第一
54、個字節后,立即讀從機。(3)在傳送過程中,當需要改變傳送方向時,起始信號和從機地址都被重復產生一次,但兩次讀/寫(R/W*)正好相反。無論哪種方式,起始信號、終止信號和地址均由主機發送,數據字節的傳送方向則由尋址字節中位規定,每個字節的傳送都必須有應答。4常用的I2C總線接口器件有哪些?答:EEPROM:AT24CXX系列;時鐘芯片:PCF8591、DS3231;AD/DA芯片:PCF8591;步進電機驅動芯片:TMC222-SI;地磁傳感器:MAG3110。5I2C總線的尋址方式如何?答:第一個字節的頭7 位組成了從機地址,最低位(LSB)是第8 位,它決定了傳輸的HYPERLINK /t0
55、1911abb74a40784fb.jpgI2C總線方向。第一個字節的最低位是“0”,表示主機會寫信息到被選中的從機;“1”表示主機會向從機讀信息,當發送了一個地址后,系統中的每個器件都在起始條件后將頭7 位與它自己的地址比較,如果一樣,器件會判定它被主機尋址,至于是從機接收器還是從機發送器,都由R/W 位決定。6I2C總線的數據傳送時,應答是如何進行的?答:當主機需要讀取數據時,先要先向從機寫從機地址,(從機收到后會發送應答信號),主機現在要切換的接收狀態,是否收到從機的應答信號(低電平);如果收到應答信號,就可以開始讀寫數據了,如果是主機讀,主機讀到數據后,要向從機發送應答信號,可以繼續讀
56、。如果是主機寫,寫完后需要檢測是否接收到從機的應答信號,收到應答信號才能進行下一步。7有哪些MCU具備I2C總線接口?答:8位 AVR:ATtiny88;PIC16F8XX,PIC18FXXX;STM8S10X。8簡述STC15F2K60S2的SPI接口的特點。答:SPI的核心是一個8位移位寄存器和數據緩沖器,數據可以同時發送和接收。在SPI數據的傳輸過程中,發送和接收的數據都存儲在數據緩沖器中。對于主模式,若要發送一個字節數據,只需將這個數據寫到SPIDAT寄存器中。主模式下信號不是必須的。但是在從模式下,必須在信號變為有效并接收到合適的時鐘信號后,方可進行數據的傳輸。在從模式下,如果一個字
57、節傳輸完成后,信號變為高電平,這個字節立即被硬件邏輯標志為接收完成,SPI接口準備接收下一個數據。第6章 微控制器的典型外圍接口技術1MCU應用系統中有哪幾種鍵盤類型?答:鍵盤可以分為獨立連接式和行列(矩陣)式兩類,每一類又可根據對鍵盤的譯碼方法分為編碼鍵盤和非編碼鍵盤兩種類型。2請敘述矩陣鍵盤的工作原理。中斷方式與查詢方式的鍵盤其硬件和軟件有何不同?答:鍵按矩陣排列,各鍵處于矩陣行/列的結點處,CPU通過對連在行(列)的I/O線送已知電平的信號,然后讀取列(行)線的狀態信息,逐線掃描得出鍵碼。中斷方式與查詢方式的鍵盤在其硬件和軟件方面的不同:硬件方面:中斷方式鍵盤需要加一個與門,將各按鍵送到
58、與門輸入端,與門的輸出端接到單片機的外部中斷引腳INT0或INT1上。查詢方式的鍵盤按鍵不需要額外附加電路。軟件方面:中斷方式鍵盤初始化中要開CPU中斷和對應外中斷允許位,當有鍵按下時,中斷標志位置位,自動執行鍵盤掃描子程序判斷按鍵的具體位置。查詢方式的鍵盤需要不斷(或定時)調用鍵盤掃描子程序來判斷有無鍵按下,且鍵的優先級由指令順序決定。3編制非編碼鍵盤處理程序時,如何去按鍵抖動?如何判斷按鍵是否釋放?答:在非編碼鍵盤中,每個按鍵的作用只是使相應接點接通或斷開,每個按鍵的鍵碼并非由硬件電路產生,而是通過軟件來識別鍵碼。CPU在按鍵抖動期間掃描鍵盤必然會得到錯誤的行首鍵號和列值,最好的辦法是使C
59、PU在檢測到有按鍵按下時延時一段時間后再進行列掃描。當CPU檢測到按鍵釋放時,執行一個10ms左右的延時程序后,再確認該鍵電平是否仍保持閉合狀態電平,若仍保持斷開狀態電平,則可判斷該按鍵已釋放。4試用8051的P1口作8個按鍵的獨立式鍵盤接口,畫出其中斷方式的接口電路及編制出相應的鍵盤處理程序。答:程序略。5請敘述LED顯示器的靜態與動態顯示原理。什么是LED顯示器的字符碼?答:(1)靜態顯示方式靜態顯示方式是指當顯示器顯示某一字符時,發光二極管的位選始終被選中。在這種顯示方式下,每一個LED數碼管顯示器都需要一個8位的輸出口進行控制。由于單片機本身提供的I/O口有限,實際使用中,通常通過擴展
60、I/O口的形式解決輸出口數量不足的問題。靜態顯示主要的優點是顯示穩定,在發光二極管導通電流一定的情況下顯示器的亮度大,系統運行過程中,在需要更新顯示內容時,CPU才去執行顯示更新子程序,這樣既節約了CPU的時間,又提高了CPU的工作效率。其不足之處是占用硬件資源較多,每個LED數碼管需要獨占8條輸出線。隨著顯示器位數的增加,需要的I/O口線也將增加。 (2)動態顯示方式動態顯示方式是指一位一位地輪流點亮每位顯示器(稱為掃描),即每個數碼管的位選被輪流選中,多個數碼管公用一組段選,段選數據僅對位選選中的數碼管有效。對于每一位顯示器來說,每隔一段時間點亮一次。顯示器的亮度既與導通電流有關,也與點亮
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 腦出血穩定期的護理查房
- 手術室的麻醉護理
- 心理健康主題班會設計與實踐
- 危重患者術中護理
- 幼兒心理健康的標準
- 呼吸內科危重患者的搶救
- 大學生全國教育大會
- 護理不良事件上報與管理流程
- 企業IT數字化轉型大數據平臺架構設計建設方案
- 2025年金融數據加密機項目提案報告
- 2025年廣東省高考生物真題(解析版)
- 2024年哈爾濱市道里區執法輔助人員招聘考試真題
- 2025年7月自考13811績效管理試題及答案含解析
- 2025年中學教師資格考試《綜合素質》教育法律法規經典案例分析及強化試題集(含答案)
- CGF生長因子在口腔醫學中的應用
- 互聯網新聞信息服務安全評估報告模板(2025年7月修訂)
- 《等腰三角形的性質》課件
- 工業互聯網與船舶行業融合應用參考指南 2025
- 應征公民政治考核表(含示例)
- 南通國家級南通經濟技術開發區公開招聘招商人員筆試歷年參考題庫附帶答案詳解析
- 2025年廣東省深圳市中考道德與法治 總復習法治教育檢測卷(含答案)
評論
0/150
提交評論