版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
MCS-51單片機的結構與時序單片機原理及接口技術單片機原理及接口技術目錄2.1
MCS-51單片機的結構2.2
MCS-51單片機引腳功能及片外總線結構2.3
MCS-51單片機的工作方式2.4MCS-51單片機的時序單片機原理及接口技術概述
MCS-51單片機是美國Intel公司生產的8位高性能系列單片機,在我國的應用比較廣泛。MCS-51系列單片機可分為兩大子系列:51子系列和52子系列。51子系列主要包括HMOS工藝制造的8031、8051、8751基本型產品和CHMOS工藝制造的80C31、80C51和87C51低功耗產品;52子系列主要包括HMOS工藝制造的8032、8052、8752改進型產品和CHMOS工藝制造的80C32、80C52和87C52低功耗產品。MCS-51單片機以8051作為代表機型,它們的引腳和指令系統(tǒng)完全兼容。本章以8051作為典型的例子,介紹MCS-51單片機的組成、內部結構、引腳功能、工作方式和時序,這對以后的學習是至關重要的。在本書的后續(xù)章節(jié),若無特別說明,MCS-51單片機指的是其51子系列單片機。單片機原理及接口技術
2.1
MCS-51單片機的結構2.1.1MCS-51單片機的組成
MCS-51單片機內部的硬件結構大致相同,圖2-1給出了8051單片機的組成框圖。從圖中可以看出單片機內部集成了CPU、RAM、ROM,定時/計數器和I/O接口電路等各個功能部件,這些功能部件由內部總線連接在一起,從而構成單片微型計算機。圖2-18051單片機組成框圖單片機原理及接口技術2.1.1
MCS-51單片機的組成MCS-51單片機的硬件結構特點如下:1)一個8位的中央處理器CPU;2)一個片內振蕩器和時序電路;3)4KB的程序存儲器(ROM或EPROM);4)128B的數據存儲器;5)兩個16位的定時/計數器;6)一個可編程全雙工串行口;7)四個8位的可編程并行I/O口;8)可以尋址64KB的程序存儲器和64KB的外部數據存儲器;9)五個中斷源,兩個中斷優(yōu)先級的中斷結構。單片機原理及接口技術2.1.1
MCS-51單片機的組成
為了進一步闡述各部分的功能及其關系,圖2-2給出了MCS-51單片機內部的更詳細的邏輯圖。圖2-2MCS-51單片機內部結構框圖單片機原理及接口技術2.1.2
MCS-51單片機的CPU結構CPU是單片機的核心部件,主要是由運算器(算術邏輯部件ALU)、控制器(定時控制部件等)和專用寄存器組三部分電路組成,完成運算和控制操作。1.算術邏輯部件ALU
從圖2-2中可以看出,8051的算術邏輯部件由一個加法器、兩個8位的暫存器TMP1和TMP2以及一個專門用來處理位操作的布爾處理器(圖中未畫出)組成。ALU的功能是實現數據的算術/邏輯運算、位變量處理和數據傳送等操作。ALU是一個性能極強的運算器,它內部的加法器可以對8位的數據進行加、減、乘、除四則運算,同時布爾處理器還可以對直接尋址的位變量進行位處理,如置位、清零、取反、測試轉移以及與、或、異或、非等邏輯運算。此外,ALU還具有數據傳輸、程序轉移等功能。單片機原理及接口技術2.1.2
MCS-51單片機的CPU結構2.定時控制部件
定時控制是分析和執(zhí)行指令的核心部件,主要包括定時控制邏輯、指令寄存器、指令譯碼器和振蕩器OSC。它的主要功能是接受來自程序存儲器的指令代碼,送到指令寄存器進行暫存,然后通過定時和控制電路對指令進行譯碼,并在時序信號的作用下,在規(guī)定的時刻發(fā)出指令操作所需的各種控制信息和外部所需的各種控制信號,以完成指令的執(zhí)行。
定時控制部件取指令、指令譯碼、執(zhí)行指令的具體過程如下:1)取指令。CPU根據程序計數器PC所指的地址,從程序存儲器的相應地址取出指令的機器碼,并送入指令寄存器IR中。值得注意的是此時程序計數器PC的內容會自動修改,指向下一條將要執(zhí)行指令的地址。單片機原理及接口技術2.1.2
MCS-51單片機的CPU結構2)指令譯碼。由控制電路對寄存器中的指令進行譯碼分析,指出指令要進行什么樣的操作,并按照一定的時序產生操作命令、控制信號以及從存儲器中進行操作數的讀取。3)執(zhí)行指令。對上一階段讀入的操作數進行相應的運算,并將運算的中間及最終結果存放到指定存儲單元,根據運算結果影響程序狀態(tài)字PSW的標志位。每當一條指令執(zhí)行結束,CPU會根據程序計數器PC的內容取出下一條指令繼續(xù)執(zhí)行,周而復始,直到遇到停機指令或外來干預為止。單片機原理及接口技術2.1.2
MCS-51單片機的CPU結構3.專用寄存器組
專用寄存器組主要用來存放將要執(zhí)行指令的地址、參與運算的操作數以及指示指令執(zhí)行后的狀態(tài)等。主要包括累加器A(Accumulator)、寄存器B(GeneralPurposeRegister)、程序狀態(tài)字PSW(ProgramStatusWord)、程序計數器PC(ProgramCounter)、堆棧指針SP(StackPointer)和數據指針DPTR(DataPointerRegister)等。(1)累加器A
累加器A又稱之為ACC,它是一個8位的寄存器。通常在算術邏輯部件工作時用于存放參與運算的一個操作數。操作數經暫存器TMP2進入ALU,與從暫存器TMP1進入的另一個操作數在ALU中進行計算,運算的結果往往通過內部的總線再送入累加器A中。例如在執(zhí)行如下的2+3的程序段中單片機原理及接口技術2.1.2
MCS-51單片機的CPU結構MOVA,#02H;A←2ADDA,#03H;A←A+03H
第一條指令是把被加數2先送入累加器A,為第二條加法指令的執(zhí)行作準備。第二條指令執(zhí)行的時候完成了2和3的相加,并把兩數之和5存放在累加器A中。(2)寄存器B
寄存器B是一個8位的寄存器,它一般用于乘、除法運算。在運算之前寄存器B存放乘數或除數,運算完成后寄存器B存放乘積的高8位或商的余數部分。若不作乘、除運算時,則可以作為通用寄存器使用,用來存放數據或地址。單片機原理及接口技術2.1.2
MCS-51單片機的CPU結構(3)程序狀態(tài)字PSW
程序狀態(tài)字PSW是一個8位的標志寄存器,它用來存放指令執(zhí)行后的有關狀態(tài),反映指令執(zhí)行結果的某些特征。PSW的各個狀態(tài)位通常是在指令的執(zhí)行過程中自動形成的,但也可以由用戶通過傳送指令加以改變。PSW寄存器的字節(jié)地址為D0H,它的各個標志位定義如圖2-3所示。單片機原理及接口技術2.1.2
MCS-51單片機的CPU結構1)進位標志位Cy:PSW7是PSW中最常用的標志位,用于表示在加減運算的過程中累加器A最高位(即A7)有無進位或借位。當進行加(減)法運算時,若累加器A的最高位有進位(或借位)時,Cy=1,否則Cy=0。此外,移位操作也會影響Cy的值,在布爾處理機中用Cy作為位累加器。2)輔助進位標志位AC:PSW6用于表示加減運算中累加器A低4位有無向高4位進位或借位。若在相加(減)的過程中,數據的低4位(即A3)向高4位(即A4)有進位(或借位),則AC=1,否則AC=0。在BCD碼運算的十進制調整中要用到該標志位。單片機原理及接口技術2.1.2
MCS-51單片機的CPU結構3)用戶標志位F0:PSW5這個標志位的狀態(tài)不是機器在執(zhí)行指令的過程中自動形成的,而是由用戶對其賦予一定的含義,通過軟件置位或者清零。該標志位的狀態(tài)一經設定,便由用戶程序直接檢測,以決定用戶程序的流向。4)工作寄存器組選擇位RS0和RS1:8051在內部數據存儲器的00H~1FH地址內設置了四組8位的工作寄存器R0~R7。它們在RAM中的實際物理地址可以根據需要選定。PSW3和PSW4可以由軟件置位或清零,用于選擇當前使用的四個工作寄存器組中的某一組,工作寄存器R0~R7的物理地址和RS1、RS0之間的關系如表2-1所示。單片機原理及接口技術2.1.2
MCS-51單片機的CPU結構
單片機原理及接口技術2.1.2
MCS-51單片機的CPU結構
此外,在執(zhí)行乘、除法運算時也會影響到溢出標志位OV。當執(zhí)行乘法指令時,如乘積超過了255,則OV=1,乘積在寄存器B和累加器A中;若OV=0,表示乘積不超過255,乘積只在累加器A中。在除法運算中,OV=1,表示除數為0,除法不能進行;否則OV=0。6)PSW1是保留位,未用。7)奇偶標志位P:PSW0用于指示指令執(zhí)行結束后累加器A中1的個數是奇數還是偶數。若A中1的個數是奇數,則P=1;否則P=0。此標志位對串行通信的數據傳輸具有重要意義,通過奇偶校驗可以檢驗數據傳輸的可靠性。單片機原理及接口技術2.1.2
MCS-51單片機的CPU結構(4)程序計數器PC
程序計數器PC是一個二進制16位的程序地址寄存器,專門用來存放下一條將要執(zhí)行指令的地址。在單片機上電或復位時,PC自動裝入0000H,使程序從零單元開始執(zhí)行。每當單片機完成一次取指令碼的操作,PC就自動進行加1,為CPU取下一條指令做好準備。因為程序計數器PC是由兩個8位的計數器PCH和PCL組成,共16位,所以MCS-51單片機可以直接尋址64KB的程序存儲區(qū)。PC沒有地址,是不可以直接尋址的,無法對它進行直接的讀寫操作,但可以通過轉移、調用和返回指令改變其內容,實現程序的轉移。單片機原理及接口技術2.1.2
MCS-51單片機的CPU結構(5)堆棧指針SP
在MCS-51單片機中,專門在片內RAM單元開辟出一個特定的存儲區(qū)(07H~7FH),用來暫時存放數據或返回地址,并按照“后進先出”的原則進行操作。設置堆棧的目的是為了方便處理中斷,調用子程序和保護現場,通過堆棧保存斷點和返回地址的操作速度很快。相應的堆棧示意圖如圖2-4所示。堆棧的一端是固定的,稱之為棧底;另一端是浮動的,稱之為棧頂,棧底位置是固定不變的,它決定了堆棧在RAM中的物理位置;棧頂地址始終在堆棧指針SP中,是可以改變的,它決定堆棧中是否存放有數據。因此,當堆棧中無數據的時候,棧頂地址和棧底地址是重合的。圖2-4堆棧示意圖單片機原理及接口技術2.1.2
MCS-51單片機的CPU結構
堆棧指針SP是一個8位的專用寄存器,它用來指示堆棧頂部在片內RAM中的位置。數據或地址要進棧時,SP自動加1,將數據或地址壓入SP所指定的地址單元;出棧時,將SP所指示的地址單元中的數據彈出,然后SP自動減1。在系統(tǒng)復位以后,堆棧指針SP自動初始化為07H,所以第一個壓入堆棧的數據存放到08H單元,但是由于08H~1FH單元為工作寄存器區(qū),在程序設計中一般不允許被占用,所以用戶在編程時最好將SP的值改為1FH或更大的值,以免堆棧區(qū)與要使用的工作寄存器區(qū)相互沖突。單片機原理及接口技術2.1.2
MCS-51單片機的CPU結構1)作為訪問片外數據存儲器RAM尋址用的地址寄存器。訪問片外RAM的指令為MOVXA,@DPTR;讀數據MOVX@DPTR,A;寫數據2)作為訪問片外程序存儲器ROM時的基址寄存器。MOVCA,@A+DPTRJMPA,@A+DPTR(6)數據指針DPTR
數據指針寄存器DPTR是一個16位的地址寄存器,其高位字節(jié)寄存器用DPH表示,低位字節(jié)寄存器用DPL表示。它既可以作為16位的間接寄存器來使用,專門用來存放16位的地址指針,也可作為兩個獨立的8位寄存器DPH和DPL來使用。它的主要功能如下:單片機原理及接口技術2.1.3
MCS-51單片機存儲器結構MCS-51單片機的存儲器采用的是哈佛(Harvard)結構,即程序存儲器和數據存儲器相互獨立,二者具有各自獨立的尋址方式、尋址空間和控制信號。程序存儲器用來存放程序和要保存的常數,數據存儲器通常用來存放程序運行過程中所需要的常數或變量。MCS-51單片機存儲器從物理結構上可以分為四個存儲空間:片內程序存儲器(8031無片內ROM)、片外程序存儲器、片內數據存儲器和片外數據存儲器;從用戶使用的角度上,即邏輯上可以分為3種存儲器地址空間:片內、片外統(tǒng)一編址的64KB程序存儲器地址空間、片內256B的數據存儲器地址空間和片外64KB的數據存儲器地址空間。MCS-51單片機存儲器結構如圖2-5所示。單片機原理及接口技術2.1.3
MCS-51單片機存儲器結構圖2-5MCS-51單片機存儲器結構圖單片機原理及接口技術2.1.3
MCS-51單片機存儲器結構
程序存儲器用于存放用戶程序、數據和表格等信息,它以16位的程序計數器PC作為地址指針,因此可直接尋址的地址空間為64KB。在MCS-51系列單片機中,不同的芯片其片內程序存儲器的容量是不同的。8031無內部程序存儲器,在使用的時候程序存儲器只能外擴,最大的擴展空間為64KB;8051和8751有4KB的片內ROM/EPROM,片外可擴展60KB的程序存儲器,但是片內和片外程序存儲器統(tǒng)一編址,共享64KB的地址空間。當單片機的/EA引腳接高電平時,如果程序計數器PC的值在0000H~0FFFH的范圍內,則單片機執(zhí)行片內ROM的程序,如果程序計數器PC的值在1000H~FFFFH的范圍內,則單片機自動讀取片外ROM的程序來執(zhí)行;單片機原理及接口技術2.1.3
MCS-51單片機存儲器結構
當單片機的/EA引腳接低電平時,單片機忽略片內的程序存儲器,直接從外部程序存儲器執(zhí)行程序,此時外部程序存儲器從0000H開始編址。因此,對于無片內ROM的8031而言,必須使其EA/引腳接地。
程序地址空間原則上在64KB范圍內可由用戶任意的安排,但是某些特定的單元被保留用于特定的程序入口地址。這些入口地址在MCS-51單片機中是固定的,用戶不能更改。相應的入口地址見表2-2。單片機原理及接口技術2.1.3
MCS-51單片機存儲器結構MCS-51單片機在系統(tǒng)復位以后程序計數器PC地址為0000H,所以系統(tǒng)從0000H開始取指令并執(zhí)行程序,因此0000H~0002H這3個單元被保留,用于作為初始化入口地址。這3個字節(jié)的單元一般存放一條無條件轉移指令,將程序引導到主程序的入口地址。從0003H~0002AH單元被均勻地分成5段,用于作為5個中斷服務程序的入口地址。單片機原理及接口技術2.1.3
MCS-51單片機存儲器結構
外部程序存儲器一般由EPROM或E2PROM組成。MCS-51單片機在訪問片外程序存儲器時需要兩類信號才能讀取指令。一類是片選及地址信號,用來確定CPU所訪問的存儲單元地址;另一類是控制信號,以實現對程序存儲器的讀出控制。由于MCS-51單片機的P0口分時輸出地址信息的低8位和數據信息,因此先利用ALE信號的下降沿將P0口輸出的低8位地址鎖存到外部地址鎖存器中,而地址的高8位是通過P2口輸出的,這16位地址選中外部程序存儲器特定的存儲單元,然后利用程序存儲器選通信號/PSEN(與存儲器的讀出控制端/OE相連)讀出所選單元的內容,將其通過數據總線送入單片機。單片機原理及接口技術2.1.3
MCS-51單片機存儲器結構2.數據存儲器
數據存儲器在單片機中用于存放程序執(zhí)行時所需的數據,主要由讀寫存儲器RAM芯片構成。MCS-51單片機的數據存儲器在邏輯上分為片內和片外數據存儲器,是兩個獨立的地址空間,在編址和訪問方式上各不相同。(1)外部數據存儲器RAMMCS-51單片機的外部數據存儲器尋址空間為64KB,地址范圍為0000H~FFFFH,CPU采用MOVX指令對外部數據存儲器進行訪問,可用寄存器R0、R1和DPTR來間接尋址。MCS-51單片機對片內數據存儲器可以通過內部總線直接進行訪問,而在使用片外數據存儲器時必須外擴,單片機在擴展片外數據存儲器時同樣也需要提供兩類連接信號,片選及地址信號連接與外部程序存儲器相同,而控制信號由/RD和/WR提供。單片機原理及接口技術2.1.3
MCS-51單片機存儲器結構
當用R0和R1尋址時,由于R0和R1是8位的寄存器,其最大尋址范圍為256字節(jié);當用16位的DPTR作間址寄存器時,其最大尋址范圍為64K字節(jié)。相應的訪問指令有4條:MOVXA,@Ri;讀數據,i=0、1MOVXA,@DPTRMOVX@Ri,A;寫數據,i=0、1MOVX@DPTR,A單片機原理及接口技術2.1.3
MCS-51單片機存儲器結構(2)內部數據存儲器RAM
從廣義上講,MCS-51單片機內部數據存儲器包含數據RAM和特殊功能寄存器(SpecialFunctionRegister,SFR),最大可尋址256個字節(jié),地址范圍為00H~FFH。其地址分配如圖2-6所示。從圖2-6中可以看出,片內RAM是由工作寄存器區(qū)、位尋址區(qū)、數據緩沖區(qū)和特殊功能寄存器區(qū)組成。在不同的地址區(qū)域內,功能不完全相同,在學習時應特別加以注意。圖2-6內部RAM地址空間單片機原理及接口技術2.1.3
MCS-51單片機存儲器結構1)工作寄存器區(qū)
工作寄存器地址為00H~1FH,共有32個RAM單元,分成四組。每組占8個單元,分別用代號R0~R7表示。工作寄存器和RAM地址的對應關系如表2-3所示??梢酝ㄟ^對程序狀態(tài)字PSW中的RS1和RS0的設定來選中某一組工作寄存器。若程序中不需要四個工作寄存器組,剩下的工作寄存器所對應的RAM單元可以作為一般的數據緩沖區(qū)使用。單片機原理及接口技術2.1.3
MCS-51單片機存儲器結構2)位尋址區(qū)MCS-51單片機有一個功能很強的布爾處理器,在開關決策、邏輯電路仿真和實時控制方面非常有效。MCS-51單片機指令系統(tǒng)中有著豐富的位操作指令(在第3章中詳細介紹),這些指令構成了布爾處理器的指令集。在片內RAM區(qū)和特殊功能寄存器區(qū)中共有211個可尋址位,其中片內RAM位尋址區(qū)的地址范圍為20H~2FH,共16個字節(jié)單元128位,位地址范圍為00H~7FH,相應的字節(jié)地址與位地址之間的關系如表2-4所示。其余的83個可尋址位分布在特殊功能寄存器區(qū)中。
片內RAM位尋址區(qū)的16個字節(jié)單元具有雙重功能,它們既可以像普通的RAM單元一樣作為一般的數據緩沖區(qū)使用,也可以對每一位進行位操作。在進行程序設計時,通常把各種程序狀態(tài)標志,位控制變量設在位尋址區(qū)。單片機原理及接口技術2.1.3
MCS-51單片機存儲器結構3)數據緩沖區(qū)
片內RAM中數據緩沖區(qū)的地址范圍為30H~7FH,共有80個字節(jié)單元,用于存放用戶數據或作為堆棧區(qū)使用。由于工作寄存器區(qū)、位尋址區(qū)、數據緩沖區(qū)采用統(tǒng)一編址的方式,使用同樣的指令進行訪問,因此這3個區(qū)的單元既有自己獨特的功能,又可以統(tǒng)一調度使用。4)特殊功能寄存器區(qū)
特殊功能寄存器SFR是指具有特殊用途的寄存器集合,MCS-51單片機中的特殊功能寄存器是非常重要的,對于單片機應用者來說掌握了SFR,也就基本掌握了MCS-51單片機。SFR存在于單片機中,實質上是一些具有特殊功能的RAM單元,在地址范圍80H~FFH之間離散分布。MCS-51單片機共有21個特殊功能寄存器,用于控制、管理單片機內部算術邏輯部件、并行I/O口、串行I/O口、中斷系統(tǒng)、定時/計數器等功能模塊的工作。單片機原理及接口技術2.1.3
MCS-51單片機存儲器結構
用戶可以通過編程對它們進行設定,但不能移作它用。表2-5為特殊功能寄存器地址分配表,列出了這些特殊功能寄存器的名稱、符號和字節(jié)地址。其中字節(jié)地址能被8整除的特殊功能寄存器(共11個83位,其中5位未定義)可以進行位尋址??晌粚ぶ返募拇嫫髅恳晃欢加形坏刂?,有的還有位定義名,并可用“寄存器名.位”來表示,如ACC.0,B.6,PSW.7等。MCS-51單片機的特殊功能寄存器離散地分布在80H~FFH范圍內,不為SFR占用的RAM單元(為新型單片機預留的)是沒有定義的,若對其進行訪問,則將得到一個不確定的隨機數,因而是沒有意義的。這21個特殊功能寄存器中有6個寄存器是屬于CPU范圍的,其余的15個寄存器是屬于接口范圍的。各功能部件所包含的SFR可歸納如下:單片機原理及接口技術2.1.3
MCS-51單片機存儲器結構CPU:累加器ACC,寄存器B,程序狀態(tài)字PSW,堆棧指針SP,數據指針DPTR(包括DPH和DPL);
并行口:并行I/O端口P0~P3的鎖存器P0、P1、P2、P3;
串行口:串行數據緩沖器SBUF,串行口控制寄存器SCON,電源控制及波特率選擇控制寄存器PCON;
定時/計數器:定時器控制寄存器TCON,定時器方式寄存器TMOD,定時/計數器T0和T1(分別由兩個8位寄存器TL0和TH0,TL1和TH1組成);
中斷:中斷允許控制寄存器IE,中斷優(yōu)先級控制寄存器IP;
需要指出的是16位的程序計數器PC,它總是指向下一條將要執(zhí)行指令的地址。它在物理上是獨立的,因而無地址,并且不計入SFR總數中。單片機原理及接口技術2.1.4
MCS-51單片機并行I/O端口
MCS-51單片機有4個8位的雙向并行輸入/輸出接口,分別命名為P0、P1、P2、P3。這四個端口既可以并行輸入或輸出8位數據,也可以按位使用,即每一位均能獨立作輸入或輸出使用。它們在結構和特性上是基本相同的,各端口的每一位均由鎖存器、邏輯控制電路、輸出驅動器和輸入緩沖器組成。同時,這些端口又各具特點,其中P0口為三態(tài)雙向口,能帶8個TTL電路,P1、P2、P3口為準雙向口(通過固定的上拉電阻而將引腳拉為高電平的端口結構,稱為準雙向口),負載能力為4個TTL電路。下面分別介紹各個端口的結構、原理及功能。單片機原理及接口技術2.1.4
MCS-51單片機并行I/O端口1.P0口P0口是一個三態(tài)雙向口,既可以作為通用的I/O接口,也可以作為地址數據分時復用口。P0口的一位電路結構如圖2-7所示。它由一個輸出鎖存器、2個輸入三態(tài)緩沖器、一個輸出驅動器和控制電路組成。P0口就是由8個這樣的電路組成,鎖存器起到輸出鎖存作用,8個鎖存器構成了特殊功能寄存器P0;1號三態(tài)門用于讀鎖存器端口,2號輸入三態(tài)門是引腳輸入緩沖器;場效應管T1和T2組成了輸出驅動器;與門、反向器以及模擬開關構成了輸出控制電路。圖2-7P0口的位結構單片機原理及接口技術2.1.4
MCS-51單片機并行I/O端口(1)P0口作為I/O口使用
當CPU訪問片內存儲器進行數據輸入/輸出時,對應的控制信號為低電平,多路開關MUX將輸出鎖存器的Q/引腳和T2的柵極接通。對應的與門因控制信號輸入為低電平而使T1截止,輸出極漏極處于開路狀態(tài),此時P0口作為一般的I/O口使用。
當P0口作輸出口時,在CPU“寫鎖存器”脈沖的作用下,內部總線上的信號鎖存到輸出鎖存器,經鎖存器Q/引腳輸出后,通過多路開關MUX再經輸出極T2反向后送至P0端口。因為輸出驅動極是開漏電路,若要驅動NMOS管或其它拉電流負載時,則需要外接上拉電阻。
當P0口作輸入口時,有兩個三態(tài)輸入緩沖器用于讀操作,因而有兩種不同的讀操作,分別由“讀引腳”和“讀鎖存器”信號來控制。單片機原理及接口技術2.1.4
MCS-51單片機并行I/O端口“讀引腳”是指CPU執(zhí)行輸入操作指令將端口引腳上的數據信息經2號三態(tài)門讀至內部總線,一般都是以I/O端口為源操作數的指令,如MOVA,P0等。在進行輸入數據前,必須先向端口鎖存器寫入1,使輸出極的T1和T2均截止,引腳處于懸空狀態(tài),才可用作高阻抗輸入,否則會因T2導通使端口始終被鉗位在低電平,導致高電平無法正確讀入。從這個意義上來講,在進行數據輸入輸出時,P0口是一個準雙向口。
在CPU執(zhí)行“讀-修改-寫”這類指令時,不直接讀引腳上的數據而讀鎖存器Q引腳上的數據,這樣做是為了避免可能錯讀引腳上的電平信號。例如,用一條口線去驅動一個晶體管基極,當口線輸出為高電平時,三極管導通并把引腳上的電平拉低。如果這時仍直接讀引腳數據,就會把該數據錯讀為0(實際上應為1),若從鎖存器Q端讀入,則可得到正確的結果。單片機原理及接口技術2.1.4
MCS-51單片機并行I/O端口
讀鎖存器指令一般是以I/O為目的操作數,這些指令均為“讀-修改-寫”指令,如ANL,ORL,XRL等指令。由“讀鎖存器”信號打開1號三態(tài)門,將鎖存器的輸出Q端的信息讀入內部總線,進行處理后的數據再重新寫入鎖存器中。這樣即使引腳電平發(fā)生變化,也不會出現上述可能的錯誤。(2)P0口作為分時復用的地址/數據總線
當從P0口輸出地址/數據信息時,CPU輸出控制信號為高電平,與門輸出處于打開狀態(tài)。多路開關MUX接反向器的輸出端,將CPU內部地址/數據總線與T2的柵極接通。從圖2-7中可見,場效應管T1和T2處于反向互補狀態(tài),構成推拉式的輸出電路,使其驅動負載的能力大大增強。P0作為分時復用的地址/數據總線時,CPU會自動向P0端口的鎖存器寫入FFH,此時P0端口則是真正意義上的雙向口,可直接驅動MOS電路而不必外接上拉電阻。單片機原理及接口技術2.1.4
MCS-51單片機并行I/O端口P1口用作輸入時,工作情況類同P0口。為了保證正確的讀入數據。在執(zhí)行讀操作之前,先將端口鎖存器置1,使場效應管T截止,然后再讀端口的引腳信號。單片機原理及接口技術2.1.4
MCS-51單片機并行I/O端口圖2-8P1口的位結構單片機原理及接口技術2.1.4
MCS-51單片機并行I/O端口3.P2口P2口是一個準雙向口,可以作為通用的I/O接口來輸入/輸出數據,也可以作為地址總線輸出口,用來輸出高8位地址A15~A8。P2口的一位電路結構如圖2-9所示。它由一個輸出鎖存器、2個輸入三態(tài)緩沖器、一個輸出驅動器和控制電路組成。圖2-9P2口的位結構單片機原理及接口技術2.1.4
MCS-51單片機并行I/O端口
當CPU輸出控制信號,使多路開關MUX接通輸出鎖存器,將鎖存器的Q端和反向器輸入端相連,此時P2口作為通用I/O口,用于輸入/輸出數據,作用和P1口相同。當作為地址總線使用時,多路開關將地址線與輸出驅動器相連,用于輸出地址總線的高8位。
當訪問外部程序存儲器時,程序計數器的高8位通過P2口輸出A15~A8,因為CPU訪問外部程序存儲器是連續(xù)不斷的,P2口要連續(xù)輸出地址信息,因此這時P2口無法再作通用I/O口。在訪問外部數據存儲器時,如果擴展的外部數據存儲器RAM小于256字節(jié),使用R0和R1作為間址寄存器,只需P0口送出地址低8位,P2口仍可作為通用I/O口;如果外部RAM大于256字節(jié),使用DPTR作為間址寄存器,則高8位地址線需從P2口輸出,此時P2口對應的鎖存器仍保持原來端口的數據。在訪問外部RAM結束后,P2口鎖存器的內部數據又會重現在端口上。單片機原理及接口技術2.1.4
MCS-51單片機并行I/O端口4.P3口
P3口也是一個內部帶有上拉電阻的8位準雙向口,而且是一個雙功能口。它既可以作為通用的I/O接口,也可以用作第二功能。P3口的一位電路結構如圖2-10所示。它的口線結構和P1口類似,但比P1口多了一個緩沖器和一個與非門,用于第二功能的輸入和輸出。當P3口作為通用的I/O口時,第二功能線保持高電平,與非門處于開通狀態(tài),鎖存器的輸出可通過與非門送至驅動器輸出引腳;在進行數據輸入時,仍必須預先對P3口置1,使輸出場效應管T截止,引腳上的外部信號通過三態(tài)數據緩沖器送入內部總線。圖2-10P3口的位結構單片機原理及接口技術2.1.4
MCS-51單片機并行I/O端口
在P3口作為第二功能使用時,8個引腳可以按位獨立定義,各引腳功能詳見表2-6。此時鎖存器輸出必須為高電平,否則場效應管T將始終導通,使引腳電位被鉗位在低電平,無法輸入或輸出第二功能信號。當P3口用于第二功能輸出時,與非門處于開通狀態(tài),第二輸出功能通過與非門和驅動器送至引腳;輸入時,引腳上的第二功能信號經過緩沖器送至第二功能輸入端。單片機原理及接口技術2.1.5
MCS-51單片機定時/計時器MCS-51單片機內部設置了兩個16位的可編程定時/計數器T0和T1。它們既可以工作在定時模式,也可以工作在計數模式,并且在每一種工作模式之下都有4種工作方式。MCS-51單片機和T0及T1的關系如圖2-11所示,定時/計數器T0由TH0、TL0構成,T1由TH1、TL1構成。
特殊功能寄存器TMOD用于控制各定時/計數器的功能和工作模式;TCON用于控制定時/計數器的啟動和停止計數,同時包含定時/計數器的狀態(tài)。在定時器工作模式下,T0和T1的計數脈沖由單片機時鐘脈沖經12分頻后提供,定時時間和單片機時鐘頻率有關。在計數器工作模式下,T0和T1的計數脈沖分別從P3.4和P3.5引腳輸入。單片機原理及接口技術2.1.5
MCS-51單片機定時/計時器圖2-11MCS-51單片機定時/計數器單片機原理及接口技術2.1.6
MCS-51單片機中斷系統(tǒng)
計算機的中斷指的是CPU暫時停止現行程序的執(zhí)行,轉而執(zhí)行中斷服務子程序,并在服務完成后返回到斷點處,繼續(xù)執(zhí)行原來的程序的過程。實現這種中斷功能的硬件系統(tǒng)和軟件系統(tǒng)統(tǒng)稱為中斷系統(tǒng)。由于中斷工作方式可以大大提高CPU的工作效率,因此在單片機的硬件結構中都帶有中斷系統(tǒng)。MCS-51單片機的中斷系統(tǒng)有5個中斷請求源,具有2個中斷優(yōu)先級,可實現2級中斷服務子程序嵌套。用戶可以通過軟件允許和屏蔽所有中斷源,也可以單獨對每個中斷源用軟件進行允許和屏蔽設置;每個中斷源的中斷級別均可用軟件來設置。這五個中斷源有外部和內部之分:外部中斷源有2個,通常是外部設備產生的中斷請求信號,可以從P3.2(/INT0)和P3.3(/INT1)引腳輸入,有低電平和負邊沿兩種中斷觸發(fā)方式;內部中斷源有3個,2個定時/計數器T0和T1中斷源以及串行口中斷源。單片機原理及接口技術2.1.6
MCS-51單片機中斷系統(tǒng)MCS-51單片機的中斷系統(tǒng)還包括特殊功能寄存器中的中斷允許控制器IE和中斷優(yōu)先級控制器IP。IE用于控制5個中斷源中哪些中斷請求被允許,哪些中斷請求被禁止;IP用于提供兩級優(yōu)先權等級,控制5個中斷源中哪個中斷請求的優(yōu)先級為高,哪個中斷請求的優(yōu)先級為低,高優(yōu)先權的中斷請求可以被CPU優(yōu)先響應。用戶可以通過指令設定這兩個控制寄存器的狀態(tài),以實現對中斷系統(tǒng)的管理。
定時/計數器中斷是在對應的計數工作單元內容由全1變成全0溢出時自動向中斷系統(tǒng)提出的,串行口中斷是在串行口完成一次數據的發(fā)送或接收時自動向中斷系統(tǒng)提出的。單片機原理及接口技術2.1.7
MCS-51單片機串行接口MCS-51單片機有一個可編程的全雙工串行接口,具有UART的全部功能。該接口電路通過P3.0(RXD)和P3.1(TXD)可以同時進行數據的發(fā)送和接收,也可以作為一個同步移位寄存器使用。它除了用于數據通信以外,還可用于擴展單片機的并行I/O口,或用作串/并轉換,或用來驅動鍵盤和顯示器。MCS-51單片機的串行接口還包括特殊功能寄存器中的串行口控制寄存器SCON、電源控制寄存器PCON以及串行數據緩沖器SBUF。SCON用于設定串行口的工作方式和數據傳送控制;PCON用于確定數據的發(fā)送和接收的波特率;SBUF在物理上對應著兩個8位寄存器,一個用于存放要發(fā)送的數據,另一個用于存放接收到的數據,起著數據緩沖的作用,但是它們共同占用99H一個端口地址。單片機原理及接口技術
2.2
MCS-51引腳功能及片外總線結構2.2.1
MCS-51單片機引腳功能MCS-51單片機的外形封裝有兩種方式,雙列直插式封裝和方形封裝。8031、8051和8751的40條引腳均采用雙列直插式封裝。圖2-12給出了MCS-51單片機的引腳圖和邏輯符號。在單片機的40條引腳中,有2條專用于主電源控制的引腳,2條外接晶體振蕩器的引腳,4條控制和其它電源復用的引腳,32條輸入/輸出引腳,下面將對這些引腳進行詳細的介紹。圖2-12MCS-51單片機引腳及邏輯符號單片機原理及接口技術2.2.1
MCS-51單片機引腳功能1.電源引腳Vcc和Vss
(1)Vcc(40腳):電源端,接+5V電源。
(2)VSS(20腳):接地端。2.外接晶體引腳XTAL1和XTAL2
(1)XTAL1(19腳):晶體振蕩電路反相輸入端。用來連接外部晶體和微調電容的一端。在單片機內部,它是一個反相放大器的輸入端,這個放大器構成了片內振蕩器。當采用外部時鐘電路時,對于HMOS型單片機,此引腳接地;對于CHMOS型單片機,此引腳用于輸入振蕩器信號。
(2)XTAL2(18腳):晶體振蕩電路反相輸出端。用來連接外部晶體和微調電容的另一端。在單片機內部,它是一個反相放大器的輸出端,當采用外部時鐘電路時,對于HMOS型單片機,此引腳用于輸入振蕩器信號;對于CHMOS型單片機,此引腳懸空。單片機原理及接口技術2.2.1
MCS-51單片機引腳功能3.控制引腳ALE、/EA、/PSEN和RST
(1)ALE//PROG(30腳):地址鎖存允許/編程脈沖輸入端。
正常工作時為ALE功能。在訪問外部存儲器時,用于提供將P0口輸出的低8位地址信息鎖存到鎖存器的鎖存信號,下降沿有效;在不訪問外部存儲器時,ALE自動輸出頻率為fosc/6的周期性正脈沖,可用作外部時鐘源或作為脈沖時鐘源使用.對于片內含有EPROM的機型(如8751),該引腳還有第二功能。它可以在對內部EPROM編程/校驗時輸入編程負脈沖信號。
(2)/EA/VPP(31腳):允許訪問片外存儲器/編程電源端。
用于控制MCS-51單片機使用片內ROM還是片外ROM。若EA端保持高電平時,訪問片內程序存儲器,但在程序計數器PC的值超過片內程序存儲器容量時,將自動轉向執(zhí)行片外程序存儲器的程序;若/EA保持低電平時,則不管是否有內部程序存儲器,只訪問外部程序存儲器。單片機原理及接口技術2.2.1
MCS-51單片機引腳功能(4)RST/VPD(9腳):復位/備用電源輸入端。MCS-51單片機上電以后,當該引腳上出現持續(xù)兩個機器周期的高電平時,就可以實現復位操作。RST/VPD的第二功能是作為備用電源的輸入端。當主電源VCC發(fā)生故障而降低到低電平的規(guī)定值時,此引腳所接的備用電源可自動投入,向內部RAM提供備用電源,以保持片內RAM的數據不丟失。(3)/PSEN(29腳):外部程序存儲器讀選通信號端。
在執(zhí)行訪問片外ROM的指令MOVC或CPU到外部程序存儲器讀取指令碼時,MCS-51單片機自動在/PSEN上產生一個負脈沖,用于對片外ROM的選通。其它情況下,/PSEN均為高電平封鎖狀態(tài)。單片機原理及接口技術2.2.1
MCS-51單片機引腳功能4.輸入/輸出引腳P0、P1、P2、P3MCS-51單片機共有4個并行I/O端口,每個端口都是8位的,用于傳送數據/地址信息或其它控制信息?,F對它們簡要介紹如下:
(1)P0.0~P0.7(39~32腳):雙向8位三態(tài)I/O口。在不擴展外部存儲器時,作為通用的I/O口來輸入/輸出數據,輸入的數據可以得到緩沖,輸出的數據可以得到鎖存。在擴展外部存儲器時,用于作為分時提供低8位地址和8位數據的復用總線。對于片內含有EPROM的機型(如8751),P0口還可以對片內EPROM進行編程或讀出校驗,這時它用于傳送編程機器碼或讀出校驗碼。單片機原理及接口技術2.2.1
MCS-51單片機引腳功能
(2)P1.0~P1.7(1~8腳):8位準雙向I/O口。和P0口類似,一般作為通用的I/O口,用于傳送用戶的輸入/輸出數據。對于片內含有EPROM的機型(如8751),P1口在編程/校驗時,用來輸入片內EPROM的低8位地址。
(3)P2.0~P2.7(21~28腳):8位準雙向I/O口。一般作為通用的I/O口,用于傳送用戶的輸入/輸出數據。P2口的第二功能是當MCS-51單片機擴展片外存儲器時,與P0口配合,傳送片外存儲器的高8位地址,共同選中片外存儲器單元。對于片內含有EPROM的機型(如8751),P2口在編程/校驗時,用來輸入片內EPROM的高8位地址。
(4)P3.0~P3.7(10~17腳):8位準雙向I/O口。一般作為通用的I/O口,用于傳送用戶的輸入/輸出數據。P3口的第二功能作控制用,每個引腳的定義如表2-6所列。單片機原理及接口技術2.2.2
MCS-51單片機片外總線結構
從上面的描述可知,當MCS-51單片機不外擴存儲器(8031必須外擴程序存儲器)、I/O接口時,P0~P3口都可作為通用I/O口使用。如果系統(tǒng)擴展外部存儲器,P0口只能用于分時傳送低8位地址信息和8位數據信息,P2口只能用于傳送高8位地址信息,P3口可根據需要選擇某些位線作為第二功能使用。真正為用戶使用的I/O線只有P1口以及部分作為第一功能使用的P3口。圖2-13給出了MCS-51單片機按引腳功能分類的片外三總線結構圖。圖2-13MCS-51單片機片外總線結構圖單片機原理及接口技術2.2.2
MCS-51單片機片外總線結構
由圖2-13可以看到MCS-51單片機的片外三總線結構,便于實現系統(tǒng)的擴展。1)地址總線AB:地址總線的寬度位數為16位。由P0口經地址鎖存器提供低8位地址信息A0~A7,由P2口直接提供高8位地址信息A8~A15。所以MCS-51單片機對外直接尋址范圍可達64KB。2)數據總線DB:數據總線的寬度位數為8位,由P0口提供D0~D7。3)控制總線CB:由P3口的第二功能狀態(tài)線和四個獨立的控制線ALE、/EA、/PSEN、RST組成。單片機原理及接口技術
2.3MCS-51單片機的工作方式2.3.1復位工作方式
單片機的工作方式是進行系統(tǒng)設計的基礎,也是我們在單片機應用過程中必須熟悉的問題。MCS-51單片機共有復位、程序執(zhí)行、節(jié)電以及EPROM的編程和校驗等4種工作方式。本節(jié)主要介紹前3種工作方式。
單片機開機時都需要復位,復位是單片機的初始化操作。它可以使CPU及其他功能部件處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。1.復位狀態(tài)
MCS-51單片機的復位信號從RST引腳輸入,為了保證復位成功,RST引腳必須保持足夠時間的高電平,以使振蕩器起振并持續(xù)2個機器周期以上的時間。當復位信號有效時,單片機處于復位狀態(tài),復位以后MCS-51單片機內部的寄存器的初始狀態(tài)如表2-7所示。單片機原理及接口技術2.3.1
復位工作方式
在復位時,單片機的地址鎖存信號ALE和外部程序存儲器讀選通信號PSEN/端被自動設置為高電平,P0~P3口各引腳也均為高電平,處于輸入狀態(tài)。而內部RAM中的數據不受復位的影響,但在單片機接通電源時,RAM內容不定。單片機原理及接口技術2.3.1
復位工作方式
MCS-51單片機在開始工作時要求上電復位,程序運行出現故障時也需要進行復位操作,它通常采用上電自動復位和按鍵手動復位兩種方式。2.復位電路(a)上電復位電路
(b)按鍵復位電路圖2-14MCS-51單片機的復位電路單片機原理及接口技術2.3.1
復位工作方式
上電復位,是指單片機一上電就自動的進入復位狀態(tài)。這種方式是通過外部復位電路的電容充電來實現的,其電路如圖2-14a所示。在開始通電的瞬間,+5V的電源、電阻R和電容C之間形成一個充電回路,在RST端出現正脈沖,從而使單片機實現復位。上電復位電路保持RST為高電平的時間,取決于電容的充電速率。同時應當注意,上電時VCC的上升時間應小于幾十毫秒。振蕩器起振時間取決于振蕩器頻率,對于10MHz晶振,起振時間一般為1ms;對1MHz晶振,起振時間一般為10ms。在上電時,如果器件不能正常的復位,那么片內SFR,特別是程序計數器PC可能沒有進入初始化狀態(tài),使CPU從不定的地址開始運行程序,從而影響程序的正確執(zhí)行。
單片機原理及接口技術2.3.1
復位工作方式
單片機系統(tǒng)除上電復位外,有時還要設置按鍵復位功能。在程序運行時,可通過復位按鍵控制CPU進入復位狀態(tài)。按鍵手動復位的電路如圖2-14b所示,該電路是在上電復位電路的基礎上外加了一個電阻和一個按鍵。當按鍵彈起時,相當于一個上電復位電路;當按鍵壓下時,相當于RST端通過電阻與+5V的電源相連,提供足夠寬度的閾值電壓完成復位。
程序執(zhí)行方式是單片機的基本工作方式,通??煞譃閱尾綀?zhí)行和連續(xù)執(zhí)行兩種工作方式。1.單步執(zhí)行方式
單步執(zhí)行方式是指在特定的按鍵控制下一條一條的執(zhí)行用戶程序指令的方式,常常用于用戶程序的調試。每壓下一次按鍵就執(zhí)行一條指令,周而復始。單片機原理及接口技術2.3.2
程序執(zhí)行方式
根據中斷系統(tǒng)設置,當一個中斷請求服務正在進行時,另一個同級的中斷請求是不會得到響應的;而且在執(zhí)行RETI指令之后至少還要執(zhí)行一條其它指令,這個中斷請求才會得到響應。因此,一旦進入到某個中斷服務程序之后,在中斷返回并且再執(zhí)行一條被中斷程序的指令之前,該中斷服務程序是不能重入的。利用這一個特點,可以實現單步操作。
這種程序執(zhí)行方式是利用單片機的外部中斷功能來實現的。例如,可將單步執(zhí)行鍵和外部中斷0聯(lián)系起來,預先設定外部中斷0為電平觸發(fā)方式。并在其中斷服務程序的末尾寫上如下幾條指令……NEXT1:JNBP3.2,NEXT1;P3.2=0則不往下執(zhí)行NEXT2:JBP3.2,NEXT2;P3.2=1則不往下執(zhí)行RETI單片機原理及接口技術2.3.2
程序執(zhí)行方式2.連續(xù)執(zhí)行方式
連續(xù)執(zhí)行方式是所有的單片機都具有的一種工作方式,要執(zhí)行的程序可以存放在內部或外部程序存儲器中。由于MCS-51單片機復位以后程序計數器PC內容自動變?yōu)?000H,因此單片機系統(tǒng)在復位以后,總是從0000H處開始執(zhí)行程序,這就可以預先在該地址處存放一條轉移指令,以便跳到0000H~FFFFH中的任何地方執(zhí)行程序。
若/INT0通常保持低電平,就進入外部中斷0的服務程序,執(zhí)行上述指令時會停留在JNB處原地等待。當/INT0端通過按鍵輸入一個正脈沖(由低到高,再到低)時,程序就會往下執(zhí)行,執(zhí)行中斷返回指令RETI之后,將返回被中斷的任務程序,執(zhí)行一條指令,又立刻再次進入外部中斷0服務程序,以等待在/INT0端再一次通過按鍵輸入的下一個正脈沖。這樣每按下一次按鍵,任務程序就執(zhí)行一條指令,實現了單步執(zhí)行的目的。單片機原理及接口技術2.3.3
節(jié)電工作方式
節(jié)電方式是CHMOS型單片機特有的一種減少單片機功耗的工作方式,通常可以分為空閑(待機)方式和掉電(停機)方式。節(jié)電方式是由電源控制寄存器PCON中的IDL和PD兩個控制位實現控制的,PCON各個位的具體含義將在第5章作詳細的介紹。1.空閑方式MCS-51單片機進入空閑方式的方法非常簡單,只需使用指令將PCON寄存器中的IDL控制位置位即可,如執(zhí)行如下指令MOVPCON,#01H;IDL←1單片機原理及接口技術2.3.3
節(jié)電工作方式
單片機便進入空閑方式。此時,CPU停止工作,但振蕩器仍然運行,而且時鐘信號被送往除CPU以外的中斷邏輯、串行口和定時/計數器。CPU現場(即SP、PC、PSW和ACC等)、片內RAM和SFR中其它的寄存器內容均維持不變,ALE和PSEN引腳變?yōu)楦唠娖?。總之,在進入空閑狀態(tài)之后,CPU停止工作,但是各功能部件保持了進入空閑狀態(tài)之前的內容,而且功耗很少。退出空閑方式的方法有兩種:中斷和硬件復位。在空閑方式下,任何一個被允許的中斷源向CPU發(fā)出中斷請求,CPU響應中斷的同時,IDL被硬件自動清零,單片機進入到正常的工作狀態(tài);另外一種退出空閑方式的方法是硬件復位,即在單片機RST引腳上送一個有效的復位高電平,PCON中的IDL被硬件自動清零,CPU便可繼續(xù)執(zhí)行進入空閑方式之前的用戶程序。單片機原理及接口技術2.3.3
節(jié)電工作方式2.掉電方式MCS-51單片機進入掉電方式的方法類似于空閑方式的進入,只需使用指令將PCON寄存器中的PD控制位置位,即可通過執(zhí)行如下指令MOVPCON,#02H;PD←1使單片機進入掉電方式。此時,振蕩器停止振蕩,片內所有功能部件停止工作,但是片內RAM和SFR中內容均維持不變,I/O引腳狀態(tài)和相關特殊功能寄存器內容對應,ALE和/PSEN引腳輸出邏輯低電平。單片機原理及接口技術2.3.3
節(jié)電工作方式
在掉電方式期間,電源VCC可以降至2V,但應當注意,在進入掉電方式之前不能降低VCC。同樣,在結束掉電方式之前,必須使VCC恢復到正常操作電平。退出掉電方式的唯一方法是硬件復位,復位后特殊功能寄存器的內容重新被初始化,但是片內RAM的內容保持不變。在使用復位方式退出掉電方式時,片內振蕩器開始工作,復位操作在VCC恢復到正常操作電平時才能進行,且復位操作必須維持足夠長的時間,以保證振蕩器重新啟動并達到穩(wěn)定工作狀態(tài)(一般小于100ms)。單片機原理及接口技術2.3.4
編程和校驗方式
編程和校驗方式主要針對的是片內具有EPROM的單片機,如8751這樣片內帶有4K字節(jié)EPROM的芯片。編程是指利用特殊手段對單片機片內EPROM進行寫入的過程,校驗則是對剛剛寫入的程序代碼進行讀出驗證的過程。這部分內容不再作詳細的介紹,感興趣的讀者可以查閱相關資料。單片機原理及接口技術
2.4
MCS-51單片機的時序
單片機的時序就是CPU在執(zhí)行指令時所需控制信號的時間順序。CPU實質上就是一個復雜的同步時序電路,這個時序電路是在時鐘脈沖的推動下工作的。CPU在順序地讀取指令、分析指令、執(zhí)行指令的過程中,這一系列的操作順序都需要精確的定時,所以單片機要有自己的時鐘電路,以保證單片機按照一定節(jié)拍、時序工作。本節(jié)將介紹MCS-51單片機的時鐘電路和一些基本的時序。單片機原理及接口技術2.4.1
MCS-51單片機時鐘電路MCS-51單片機內部有一個用于構成振蕩器的反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個振蕩電路和單片機內部的時鐘電路一起構成了單片機的時鐘電路。根據硬件電路的不同,連接方式可以分為內部時鐘方式和外部時鐘方式。(a)內部方式時鐘電路
(b)外部方式時鐘電路圖2-15MCS-51單片機的時鐘電路單片機原理及接口技術2.4.1
MCS-51單片機時鐘電路
內部時鐘方式是在引腳XTAL1和XTAL2上跨接一個石英晶體和電容構成一個自激振蕩器,如圖2-15a所示。晶體可以在1.2MHz~12MHz之間選擇,典型值為6MHz和12MHz。電容C1和C2可以在5~60pF之間選擇,這兩個電容的大小對振蕩頻率有微小的影響,可起頻率微調的作用。MCS-51單片機也可采用外部時鐘方式,如圖2-15b所示。XTAL2引腳接外部振蕩器,由它產生的外部時鐘脈沖信號直接送至內部時鐘電路,XTAL1端接地。這種方式下一般要求外部時鐘信號為頻率低于12MHz的方波信號。單片機原理及接口技術2.4.2
CPU時序的有關概念
一條指令可以分解為若干個基本的微操作,這些微操作所對應的脈沖信號,在時間上有嚴格的先后次序,這些次序就是計算機的時序。1.時鐘周期
時鐘周期又稱為振蕩周期,是指為單片機提供定時信號的振蕩源的周期。它定義為晶振頻率的倒數,是CPU時序中最小的時間單位。2.狀態(tài)周期
一個狀態(tài)周期等于兩個時鐘周期,也就是說它是對振蕩頻率進行二分頻的振蕩信號。一個狀態(tài)周期被分為P1和P2兩個節(jié)拍。在每個狀態(tài)周期的前半周期,P1信號有效,這時通常完成算術邏輯操作;在后半周期內,P2信號有效,通常完成內部寄存器間的數據傳送操作。單片機原理及接口技術2.4.2
CPU時序的有關概念4.指令周期CPU執(zhí)行一條指令所需要的時間稱為指令周期,它是時序中最大的時間單位。不同指令操作的復雜程度是不同的,因此執(zhí)行時所需要的機器周期數也是不同的。通常,MCS-51單片機的指令周期需要1、2、4個機器周期。3.機器周期CPU執(zhí)行一條指令的過程可以劃分為若干個階段,每個階段完成某一項基本操作,如取指令、讀存儲器、寫存儲器等。通常把完成一個基本的操作所需的時間稱為機器周期。MCS-51單片機的一個機器周期是由6個狀態(tài)周期(即12個時鐘周期)組成。它可以分為6個狀態(tài)(S1~S6),每個狀態(tài)又可分為P1和P2兩個節(jié)拍。因此,一個機器周期中的12個時鐘周期可以表示為S1P1、S1P2、S2P1、S2P2…S6P1、S6P2。單片機原理及接口技術2.4.3
MCS-51單片機的取指令和執(zhí)行時序
每一條指令的執(zhí)行都包括取指令和執(zhí)行指令兩個階段。在取指令階段,CPU從片內或片外程序存儲器中讀取指令的操作碼和操作數,然后再執(zhí)行這條指令。為了直觀的地展現CPU的取指/執(zhí)行的時序,把執(zhí)行一條指令時相應信號線上有關信息的變化按照時間序列以特定的波形表示出來,這就是時序圖。圖2-16列舉了MCS-51單片機的幾種典型指令的取指和執(zhí)行時序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學一年級20以內加減法口算練習題
- 砍伐樹木申請書
- 《急救藥品的使用》課件
- 埋弧焊的工作原理及特點
- 《民生銀行商貸通》課件
- 環(huán)保節(jié)能行業(yè)助理工作總結
- 家居建材行業(yè)市場推廣總結
- 陜西省銅川市耀州區(qū)2023-2024學年九年級上學期期末調研化學試題
- 主管工作總結計劃方案
- 農林漁業(yè)客服工作感悟
- 四川省2021-2022學年物理高一下期末監(jiān)測試題含解析
- “婦科護理三基三嚴”考試試題及答案
- 系統(tǒng)遷移方案
- 《文獻檢索與論文寫作》教學大綱思政版
- 2024年廣東省學士學位英語歷年真題附答案
- 材料力學之彈塑性力學算法:等效塑性應變計算:塑性流動理論與塑性硬化.Tex.header
- (高清版)AQ∕T 8006-2018 安全生產檢測檢驗機構能力的通 用要求
- 電梯井道改造施工合同
- 插座安裝 服務合同范本
- 【基于自由現金流貼現法的企業(yè)估值的案例探析3300字(論文)】
- 承德市承德縣2022-2023學年七年級上學期期末歷史試題【帶答案】
評論
0/150
提交評論