《單片機原理及應用 》課件-第2章_第1頁
《單片機原理及應用 》課件-第2章_第2頁
《單片機原理及應用 》課件-第2章_第3頁
《單片機原理及應用 》課件-第2章_第4頁
《單片機原理及應用 》課件-第2章_第5頁
已閱讀5頁,還剩128頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章80C51的結構和原理2.180C51單片機的內部結構與引腳功能

2.280C51單片機的CPU2.380C51單片機的存儲器2.480C51單片機的并行口2.580C51單片機的最小系統(tǒng)第2章80C51的結構和原理任務2-1用Keil軟件將51單片機控制蜂鳴器程序編譯成hex文件任務2-2用Proteus軟件繪制51單片機控制蜂鳴器電路圖任務2-3用單片機控制一只發(fā)光二極管閃爍本章小結習題

2.180C51單片機的內部結構與引腳功能

2.1.1內部結構80C51單片機基本型內部結構示意圖如圖2-1所示。它主要由CPU、程序存儲器、數據存儲器、中斷系統(tǒng)、定時器/計數器、并行口、串行口、時鐘、總線等組成,整體上包含三大模塊:CPU模塊、存儲器模塊和I/O模塊。圖2-180C51單片機基本型內部結構示意圖

1)CPU模塊

?8位CPU,含布爾處理器;

?時鐘電路;

?總線控制。

2)存儲器模塊

?數據存儲器RAM;

?程序存儲器ROM。

3)I/O模塊

?并行I/O端口(均為8位);

?全雙工異步串行口(UART);

?定時器/計數器;

?中斷系統(tǒng)。

2.1.2典型產品的資源配置

80C51系列單片機內部組成基本相同,但不同型號的產品在某些方面仍會有一些差異。典型的單片機產品資源配置如表2-1所示。

1)增強型與基本型的差別

?片內ROM從4K字節(jié)增加到8K字節(jié);

?片內RAM從128字節(jié)增加到256字節(jié);

?定時器/計數器從2個增加到3個;

?中斷源從5個增加到6個。

2)片內ROM的配置形式的差別

?無ROM型,應用時要在片外擴展程序存儲器;

?掩膜ROM型,用戶程序由單片機芯片生產廠寫入;

?EPROM型,用戶程序—編程器寫入,利用紫外線擦除;

?FlashROM型,用戶程序可以電寫入和擦除(當前常用的方式)。

2.1.3典型產品的封裝和引腳功能

80C51典型產品的封裝如圖2-2所示。圖2-280C51典型產品的封裝

AT89C51的引腳排列如圖2-3所示。圖2-3AT89C51的引腳排列

3)并行I/O引腳(32個,分成4個8位端口)

?P0.0~P0.7:一般I/O端口引腳或數據/低位地址總線復用引腳;

?P1.0~P1.7:一般I/O端口引腳;

?P2.0~P2.7:一般I/O端口引腳或高位地址總線引腳;

?P3.0~P3.7:一般I/O端口引腳或第二功能引腳(見表22)。

2.280C51單片機的CPU

2.2.1CPU的功能單元80C51的CPU是一個8位的高性能處理器,它的作用是讀入并分析每一條指令,根據各個指令的功能控制各個功能部件執(zhí)行指定操作,具體如圖2-4所示。圖2-480C51CPU的功能

1.運算器

運算器由算術/邏輯運算單元(ALU)、累加器(ACC)、寄存器B、暫存(寄存)器、程序狀態(tài)字寄存器(PSW,ProgramStatusWord)組成,它的功能是實現算術和邏輯運算、位變量處理和數據傳送等操作。

1)ALU

ALU主要功能是實現8位數據的加、減、乘、除算術運算和與、或、異或、循環(huán)、求補等邏輯運算。同時還具有位處理能力。

2)ACC

ACC用于向ALU提供操作數和存放運算的結果。運算時一個操作數經暫存器送至ALU,與另一個來自ACC的操作數在ALU中進行運算,運算結果又送回ACC。

3)寄存器B

寄存器B在乘、除運算時用來存放一個操作數,也用來存放運算后的部分結果;在不進行乘、除運算時,可以作為普通寄存器。

4)PSW

PSW是狀態(tài)標志寄存器,用來保存ALU運算結果的特征和處理器狀態(tài)。這些特征和狀態(tài)可以作為控制程序轉移的條件。PSW位定義如表2-3所示。

(1)CY(PSW.7):進位標志位。存放算術運算的進位標志,在進行加或減運算時,如果操作結果最高位有進位或借位,則CY由硬件置“1”,否則被置“0”。

(2)AC(PSW.6):輔助進位標志位。在進行加或減運算中,若低4位向高4位進位或借位,則AC由硬件置“1”,否則被置“0”。

(3)F0(PSW.5):用戶標志位。供用戶定義的標志位,需要利用軟件方法置位或復位。

(4)RS1和RS0(PSW.4,PSW.3):工作寄存器組選擇位。用于CPU選擇當前使用的工作寄存器組。00、01、10、11分別對應0組、1組、2組、3組寄存器,共計4組。

(5)OV(PSW.2):溢出標志位。在帶符號數加減運算中,OV=1表示加減運算超出了累加器A所能表示的帶符號數的有效范圍(-128~+127),即產生了溢出,因此運算結果是錯誤的;OV=0表示運算正確,即無溢出產生。

(6)F1(PSW.1):保留未使用。

(7)P(PSW.0):奇偶標志位。P標志位表明累加器ACC中內容的奇偶性,如果ACC中有奇數個“1”,則P置“1”,否則置“0”。

5)暫存器

暫存器用來暫時存放數據總線或其他寄存器送來的操作數。它作為ALU的數據輸入源,向ALU提供操作數,是不可以用指令進行尋址的。

2.控制器

控制器由程序計數器(PC)、指令寄存器(IR)、指令譯碼及控制邏輯電路組成。

1)PC

PC是一個16位的計數器,它總是存放著下一個要取指令的存儲單元地址。CPU把PC的內容作為地址,從對應于該地址的程序存儲器單元中取出指令碼。每取完一個指令

后,PC內容自動加1,為取下一條指令做準備。在執(zhí)行轉移指令、子程序調用指令及中斷響應時,轉移指令、調用指令或中斷響應指令過程會自動給PC置入新的地址。

注意:單片機上電或復位時,PC裝入地址0000H,保證單片機上電或復位后,程序從0000H地址開始執(zhí)行。

2)IR

IR保存當前正在執(zhí)行的一條指令。執(zhí)行一條指令,先要把它從程序存儲器取到指令寄存器中。指令內容含操作碼和地址碼,操作碼送往指令譯碼器并形成相應指令的微操作信

號。地址碼送往操作數地址形成電路,用以構成實際操作數地址。

3)指令譯碼及控制邏輯電路

指令譯碼及控制邏輯電路是微處理器的核心部件,它的任務是完成讀指令、執(zhí)行指令、存取操作數或運算結果等操作,向其他部件發(fā)出各種微操作控制信號,協(xié)調各部件的工作。(整體工作的協(xié)調靠時鐘。)

3.其他寄存器

1)數據指針(DPTR)

DPTR是一個16位的寄存器,它由兩個8位的寄存器DPH和DPL組成,用來存放16位的地址。利用間接尋址可對片外RAM、ROM或I/O接口的數據進行訪問。

2)堆棧指針(SP)

SP是一個8位的寄存器,用于子程序調用及中斷調用時保護斷點及現場,它總是指向堆棧頂部。堆棧通常設在30H~7FH這一段片內RAM中。堆棧操作遵循“后進先出”原則,數據入棧時,SP先加1,然后數據再壓入SP指向的單元;數據出棧時,先將SP指向單元的數據彈出,然后SP再減1,這時SP指向的單元是新的棧頂。

3)工作寄存器

工作寄存器R0~R7共占用32個片內RAM單元,分成4組,每組8個單元,當前工作寄存器組由PSW的RS1和RS2位指定。

80C51寄存器及其在存儲器中的映射如圖2-5所示。圖2-580C51寄存器及其在存儲器中的映射

2.2.2總線控制

1.簡介

總線控制是用來傳送控制信息的信號線,連接在一起并完成和實現CPU、內存和輸入輸出設備之間的通信與數據傳送。

2.分類

總線控制就是各種信號線的集合,是各部件之間傳送數據、地址和控制信息的公共通道。

1)按相對于CPU與其芯片的位置來分

(1)片內總線:指在CPU內部各寄存器、算術邏輯部件(ALU)、控制部件以及內部高速緩沖存儲器之間傳輸數據所用的總線,即芯片內部總線。

(2)片外總線:通常所說的總線(BUS)指的是外總線,是CPU與內存RAM、ROM和輸入輸出設備接口之間進行通信的數據通道,CPU通過總線實現程序存取命令、內存/外設的數據交換。在CPU與外設一定的情況下,總線速度是限制計算機整體性能的最大因數。

2)按總線功能分

(1)地址總線(AB):用來傳遞地址信息。

(2)數據總線(DB):用來傳遞數據信息。

(3)控制總線(CB):用來傳送各種控制信號。

3)按總線的層次結構分

(1)CPU總線:包括CPU地址線(CAB)、CPU數據線(CDB)和CPU控制線(CCB),用來連接CPU和控制芯片。

(2)存儲器總線:包括存儲器地址線(MAB)、存儲器數據線(MDB)和存儲器控制線(MCD),用來連接內存控制器和內存。

(3)系統(tǒng)總線:也稱為I/O通道總線或I/O擴展總線,包括系統(tǒng)地址線(SAB)、系統(tǒng)數據線(SDB)和系統(tǒng)控制線(SCD),用來與I/O擴展槽上的各種擴展卡相連接。

(4)外部總線(外圍芯片總線):用來連接各種外設控制芯片,如主板上的I/O控制器(如硬盤接口控制器、軟盤驅動控制器、串行/并行接口控制器等)和鍵盤控制器,包括外部地址線(XAB)、外部數據線(XMB)和外部控制線(XCB)。

3.總線技術指標

1)總線的帶寬(總線數據傳輸速率)

總線的帶寬指的是單位時間內總線上傳送的數據量,即每秒鐘傳送多少兆字節(jié)的最大穩(wěn)態(tài)數據傳輸率。與總線密切相關的兩個因素是總線的位寬和總線的工作頻率,它們之間

的關系如下:

總線的帶寬=總線的工作頻率*總線的位寬/

2)總線的位寬

總線的位寬指的是總線能同時傳送的二進制數據的位數,或數據總線的位數,即32位、64位等總線寬度的概念。總線的位寬越寬,每秒鐘數據傳輸率越大,總線的帶寬越寬。

3)總線的工作頻率

總線的工作頻率以MHz為單位,工作頻率越高,總線工作速度越快,總線帶寬越寬。

2.380C51單片機的存儲器

存儲器是組成計算機的主要部件,其功能是存儲信息。存儲器可以分成兩個大類,一類是數據存儲器(RAM),另一類是程序存儲器(ROM)。對于RAM,CPU在運行時能隨時進行數據的寫入和讀出,但在關閉電源時,其所存儲的信息將丟失。所以,RAM用來存放暫時性的輸入輸出數據、運算的中間結果或用作堆棧。ROM是一種寫入和讀出信息存儲器。斷電后ROM中的信息不變,所以常用來存放程序或常數,如系統(tǒng)監(jiān)控程序、常數表等。

如圖2-6所示,存儲器主要有4個物理存儲空間:片內數據存儲器(IDATA區(qū))、片外數據存儲區(qū)(XDATA)、片內程序存儲器和片外程序存儲器(程序存儲器合稱為CODE)。圖2-6單片機的存儲器結構示意圖

2.3.1數據存儲器配置

80C51單片機的數據存儲器分為片外RAM和片內RAM兩大部分。

MCS-51系列單片機的內部RAM共有256個單元,通常把這256個單元按其功能劃分為兩部分:低128單元(單元地址00H~7FH)和高128單元(80H~FFH)。片內、片外

數據存儲器概況如圖2-7所示。圖2-7片內、片外數據存儲器概況

1)片內數據存儲器低128單元(DATA區(qū))

片內RAM的低128個單元用于存放程序執(zhí)行過程中的各種變量和臨時數據,稱為DATA區(qū)。這片內RAM低128個單元是單片機的真正RAM存儲器,按其用途劃分為工作寄存器區(qū)、位尋址區(qū)和用戶數據緩沖區(qū)3個區(qū)域。片內RAM低128單元的配置如表2-4所示。

(1)工作寄存器區(qū):每組包括8個(R0~R7)共計32個寄存器,用來存放操作數據及中間數據結果等。4組通用寄存器占據內部RAM的00H~1FH單元地址。

在任何時刻,CPU只能使用其中一組寄存器,并且把正在使用的那組寄存器稱為當前寄存器。當前工作寄存器到底是哪一組,由程序狀態(tài)寄存器(PSW)中的RS1和RS2位的狀態(tài)組合來決定。

注意:在單片機的C語言程序設計中,一般不會直接使用工作寄存器組R0~R7。但是,在C語言與匯編語言的混合編程中,工作寄存器組是匯編子程序和C語言函數之間重要的參數傳遞工具。

(2)位尋址區(qū)(BDATA):內部RAM的20H~2FH單元,既可以為一般RAM單元使用,進行字節(jié)操作,也可以對單元中每一位進行操作,因此把該區(qū)稱為位尋址區(qū)(BDATA區(qū))。

位尋址區(qū)共有16個RAM單元,共

(3)用戶數據緩沖區(qū)(通用RAM區(qū)):在內部RAM低128單元中,除了工作寄存器區(qū)(占32個單元)和位尋址區(qū)(占16個單元)外,還剩下80個單元,單元地址為30H~7FH,是供用戶使用的一般RAM區(qū)。對用戶數據緩沖區(qū)的使用沒有任何規(guī)定或限制,但是一般應用中常把堆棧開辟在此區(qū)域中。

在實際應用中,堆棧一般設在30H~70H的范圍內,棧頂的位置由堆棧指針SP指示。復位時SP的初值為07H,在系統(tǒng)初始化時,通常要進行重新設置,目的是留出低端的工作寄存器和位尋址空間以完成更重要的任務。

用戶數據緩沖區(qū)示意圖如圖2-8所示。圖2-8用戶數據緩沖區(qū)示意圖

2)片內數據存儲器高128單元(DATA區(qū))

內部RAM的高128單元是基本型單片機21個SFR(也稱為特殊功能寄存器),它離散地分布在80H~FFH空間。雖然,它們不連續(xù)地分布在片內RAM的高128單元中,其中還有許多空閑地址,但是用戶不能使用。另外還有一個不可尋址的特殊功能寄存器,即程序計數器(PC),它不占用RAM單元,在物理上是獨立的。表2-6所示為21個SFR的位地址及字節(jié)地址表。

2.3.2程序存儲器配置

80C51單片機的程序計數器(PC)是16位的計數器,所以能尋址64KB的程序寄存器地址范圍,允許用戶程序調試或轉向64KB的任何存儲單元。

1.片內與片外程序存儲器的選擇

EA引腳有效時(低電平)選擇運行片外ROM中的程序。

1)EA引腳接高電平時從片內程序存儲器開始取指令

當EA引腳接高電平時,對于基本型單片機,首先在片內程序存儲器中取指令,當PC的內容超過0FFFH時系統(tǒng)會自動轉到片外程序存儲器中取指令,外部程序存儲器的地址從1000H開始編址,如圖29所示。圖2-9EA接高電平時

2)EA引腳接低電平時從片外程序存儲器開始取指令

當EA引腳接低電平時,單片機自動轉到片外程序存儲器中取指令(無輪片內外是否有程序存儲器),外部程序存儲器的地址從0000H開始編址,如圖2-10所示。圖2-10EA接低電平時

2.程序存儲器低端的幾個特殊單元

程序寄存器低端的一些地址被固定地用做特定的入口地址,如表2-7所示。

地址0000H是復位入口,復位后單片機執(zhí)行該處的指令進入主程序。圖2-11所示為基本程序儲存結構。

主程序執(zhí)行時,如果開放了CPU,且某一中斷被允許(如圖為外部中斷0),當該中斷事件發(fā)生時,就會暫時停止主程序的執(zhí)行,轉而去執(zhí)行中斷服務程序。編程時,通常在該中斷入口地址中放一條轉移指令(如LJMP2000H),從而使該中斷服務發(fā)生時,系統(tǒng)能夠跳轉到該中斷在程序存儲器區(qū)高端的中斷服務程序。只有在中斷服務程序長度少于8個字節(jié)時,才可以將中斷服務程序直接放在相應的入口地址開始的幾個單元中。

注意:在單片機C語言程序設計中,用戶無需考慮程序的存放地址,編譯程序會在編譯過程中按照上述規(guī)定,自動安排程序的存放地址。例如:C語言是從main()函數開始執(zhí)行的,編譯程序會在程序存儲器的0000H處自動存放一條轉移指令,跳轉到main()函數存放的地址;中斷函數也會按照中斷類型號,自動由編譯程序安排存放在程序存儲器相應的地址中。因此,讀者只需要了解程序存儲器的結構就可以了。圖2-11基本程序儲存結構

2.480C51單片機的并行口

2.4.1P0口的結構、功能及使用1.結構P0口由一個輸出鎖存器、一個轉換開關MUX、兩個三態(tài)輸入緩沖器、輸出驅動電路和一個與門及一個反相器組成。P0口的內部邏輯電路如圖2-12所示。圖中的控制信號C的狀態(tài)決定MUX轉換開關的位置。當C=0時,MUX處于圖中所示位置(I/O);當C=1時,MUX撥向反相器輸出端位置(地址/數據總線)。圖2-12P0口的內部邏輯電路

2.功能

P0端口作一般I/O口時,先定義后使用;作低8位地址總線/數據總線復用口時,通常后邊接地址鎖存器。

1)P0口用做通用I/O口(C=0)

當單片機應用系統(tǒng)不進行片外總線擴展時,P0口用作通用I/O口。在這種情況下,單片機硬件自動使C=0,MUX開關接向鎖存器的反相輸出端。另外,與門輸出的“0”使輸出驅動器上的上拉場效應管T1處于截止狀態(tài)。因此,輸出驅動器工作在需外接上拉電阻的漏極開路方式。

?作輸出口時,CPU執(zhí)行口的輸出指令,內部數據總線上的數據在“寫鎖存器”信號的作用下由D端進入鎖存器,經鎖存器的反相端送至場效應管T2,再經T2反相,在P0.X引

腳出現的數據正好是內部總線的數據。P0口用做輸出口時的內部邏輯電路圖2-13所示。圖2-13P0用做輸出口時的內部邏輯電路

?作輸入口時,數據可以讀自接口的鎖存器,也可以讀自接口的引腳。這要根據輸入操作采用的是“讀鎖存器”指令還是“讀引腳”指令來決定。P0口用做輸入口時的內部邏輯電路圖2-14所示。圖2-14P0口用做輸入口時的內部邏輯電路

2)P0口用做地址/數據總線(C=1)

當應用系統(tǒng)進行片外總線擴展時(即擴展存儲器或接口芯片),P0口用做地址/數據總線。在這種情況下,單片機內硬件自動使C=1。P0口用做地址/數據總線時的內部邏輯電

路圖2-15所示。

3.使用

P0口字節(jié)單元地址為80H,引腳為32~39腳,可以位尋址;能驅動8個LSTTL電路。圖2-15P0口用做地址/數據總線時的內部邏輯電路

2.4.2P1口的結構、功能及使用

1.結構

P1口通常作為通用I/O使用,由一個輸出鎖存器、兩個三態(tài)輸入緩沖器和輸出驅動電路組成,如圖2-16所示。P1口在電路上與P0口有一些不同之處,首先它不再需要多路轉換開關MUX,其次是電路的內部有上拉電阻(30kΩ),與場效應管共同組成輸出驅動電路。圖2-16P1口的內部邏輯電路

2.功能

P1口是51單片機中唯一的一個單功能I/O端口。作一般I/O口用時,遵循先定義后使用的原則。

3.使用

P1口字節(jié)單元地址為90H,引腳為1~8腳,可以位尋址;能驅動4個LSTTL電路。

2.4.3P2口的結構、功能及使用

1.結構

P2口由一個輸出鎖存器、一個轉換開關MUX、兩個三態(tài)輸緩沖器、輸出驅動電路和一個反相器組成。P2口的內部邏輯電路如圖2-17所示。

圖中的控制信號C的狀態(tài)決定了MUX轉換開關的位置。當C=0時,MUX處于圖中所示位置(I/O);當C=1時,MUX撥向反相器輸出端位置(地址/數據總線)。圖2-17P2口的內部邏輯電路

2.功能

P2口作高8位地址總線或者是一般I/O端口。作為8位地址總線,從P2.0開始,確定方法遵循Q=2n原則,即n=8+?(?表示需要P2口提供高8位地址總線的根數,根據實際需要自己確定);作為一般I/O端口,遵循先定義后使用原則。

P2口用做通用I/O口(C=0)時:

?作輸出口:執(zhí)行輸出指令,內部數據總線的數據在“寫鎖存器”信號的作用下由D端進入鎖存器,經反相器反相后送至場效應管T,再經T反相,在P2.X引腳出現的數據正

好是內部數據總線的數據。應注意:P2口的輸出驅動電路內部有上拉電阻。

?作輸入口:數據可以讀自口的鎖存器,也可以讀自口的引腳。這要根據輸入操作采用的是“讀鎖存器”指令還是“讀引腳”指令來決定。

3.使用

P2口的字節(jié)單元地址為A0H,引腳為21~28腳,可以位尋址;能驅動4個LSTTL電路。

2.4.4P3口的結構、功能及使用

1.結構

P3口由一個輸出鎖存器、三個輸入緩沖器(其中兩個為三態(tài))、輸出驅動電路和一個與非門組成,如圖2-18所示。P3口與P1口的結構相似,區(qū)別僅在于P3口的各端口線有兩

種功能可選擇。當處于第一功能時,第二功能輸出線為“1”,與非門開通,以維持從鎖存器到輸出端的數據輸出通路的暢通。此時,內部總線信號經鎖存器與場效應管輸入\輸出,其

作用與P1口的作用相同,也是靜態(tài)準雙向I/O端口。

當處于第二功能時,鎖存器輸出為“1”,通過第二輸出功能線輸出特定的信號,在輸入方面,即可以通過緩沖器讀入引腳信號,還可以代替輸入功能讀入片內特定的第二功能信號。由于輸出信號鎖存并且有雙重功能,故P3口為靜態(tài)雙功能端口。

圖2-18P3口的內部邏輯電路

2.功能

P3口作為一般I/O端口,遵循先定義后使用的原則。P3口的第二功能如表2-8所示。

3.使用

P3口字節(jié)單元地址為B0H,引腳為10~17腳,可以位尋址;能驅動4個LSTTL電路。通常情況只要P3口使用,首先考慮是否是第二功能。

2.580C51單片機的最小系統(tǒng)

單片機的工作就是執(zhí)行用戶程序、指揮各部分硬件完成既定任務。如果一個單片機芯片沒有燒錄用戶程序,顯然它就不能工作。可是,一個燒錄用戶程序的單片機芯片,給它上電后就能工作嗎?也不能。原因是除了單片機外,單片機能夠工作的最小電路還包括時鐘和復位電路,通常稱為單片機最小系統(tǒng)。

時鐘電路為單片機工作提供基本時鐘,復位電路用于將單片機內部各電路的狀態(tài)復位到初始化值。圖2-19所示為典型的單片機最小系統(tǒng)。圖2-19典型的單片機最小系統(tǒng)

2.5.1MCS51單片機的時鐘

單片機的工作過程是:取一條指令、譯碼、進行微操作;再取一條指令、譯碼、進行微操作,這樣自動地、一步一步地由微操作依序完成相應指令規(guī)定的操作功能。這些一步一

步的工作全靠單片機時鐘來控制和協(xié)調完成。

1.時鐘產生的方式

MCS51單片機的時鐘信號通常由兩種方式產生:一是內部時鐘方式;二是外部時鐘方式,如圖2-20所示。

內部時鐘方式只要在單片機的XTAL1和XTAL2引腳外接晶振即可。圖2-20(a)中電容器C1和C2的作用是穩(wěn)定頻率和快速起振,電容值在5~30pF之間,典型值為30pF。

晶振CYS的振蕩頻率要小于12MHz,典型值為6MHz、12MHz或11.0592MHz。圖2-20時鐘方式

2.MCS-51單片機時鐘信號

MCS-51單片機時鐘信號如圖2-21所示。

振蕩周期(有時也稱為時鐘周期)為最小的時序單位。振蕩信號經分頻器后形成兩相錯開的信號P1和P2。P1和P2的周期也稱為S狀態(tài)周期,它是晶振周期的2倍,即一個S狀態(tài)周期包含兩個振蕩周期。圖2-21時鐘信號示意圖

3.時序概念

單片機內的各種操作都是在一系列脈沖控制下進行的,而各脈沖在時間上是有先后順序的,這種順序就稱為時序。

單片機的時序定時單位從小到大依次為:節(jié)拍、狀態(tài)周期、機器周期和指令周期。

節(jié)拍是指晶體振蕩器直接產生的振蕩信號的振蕩周期,用P表示:

如6MHz時T=1/6μs,12MHz時T=1/12μs。

狀態(tài)周期又稱為時鐘周期,用S表示。每一個狀態(tài)周期是振蕩周期的兩倍,即每個狀態(tài)周期分為P1和P2兩個節(jié)拍,P1節(jié)拍完成算術邏輯操作,P2節(jié)拍完成內部寄存器間數

據的傳遞。

機器周期是機器的基本操作周期,一個機器周期含6個狀態(tài)周期,分別用S1~S6表示,或用S1P1、S1P2……S1P6表示。

指令周期是執(zhí)行一條指令所占有的全部時間。一條指令通常由1~4個機器周期組成。單片機系統(tǒng)中,有單周期指令、雙周期指令和四周期指令。

2.5.2MCS-51單片機的復位

單片機的工作就是從復位開始的。復位可以使單片機中各部件處于確定的初始狀態(tài)。

1.復位電路

當MCS-51單片機的RST引腳加高電平復位信號(保持2個以上機器周期)時,單片機內部就執(zhí)行復位操作。復位信號變低電平時,單片機開始執(zhí)行程序。實際應用中,復位操作有兩種基本形式:一種是上電復位;另一種是上電與按鍵均有效的復位。

圖2-22(a)所示為上電復位,它利用電容充電來實現復位。在接電瞬間,RST端的電位與VCC相同,隨著充電電流的減少,RST的電位逐步下降。只要保證RST為高電平的

時間大于兩個機器周期,便能正常復位。

圖2-22(b)所示為按鍵復位電路。該電路除具有上電復位電路功能外,還可以按圖中的RESET鍵實現復位,此時電源VCC經過兩個電阻分壓,在RST端產生一個復位高電

平(兩個機器周期)。圖2-22復位電路

2.單片機復位后狀態(tài)

單片機復位初始化后,程序計數器PC=0000H,所以程序從0000H地址單元開始執(zhí)行。單片機啟動后,片內RAM為隨機值,運行中的復位操作不改變片內RAM的內容。

復位后,特殊功能寄存器狀態(tài)是確定的。P0~P3為FFH,SP為07H,SBUF不定,IP、IE和PCON的有效位為0,其余的特殊功能寄存器的狀態(tài)均為00H。相應的意義為:

?P0~P3=FFH,相當于各口鎖存器已寫入1,此時不但可用于輸出,也可以用于輸入;

?SP=07H,堆棧指針指向片內RAM的07H單元(第一個入棧內容將寫入08H單元);

?IP、IE和PCON的有效位為0,各中斷源處于低優(yōu)先級且均被關斷,串行通信的波特率不加倍;

?PSW=00H,當前工作寄存器為0組。

任務2-1用Keil軟件將51單片機控制

蜂鳴器程序編譯成hex文件

任務目的通過使用KeilμVision4軟件,對51單片機控制蜂鳴器程序進行輸入和編譯,達到掌握將C51單片機控制程序編譯成hex文件的方法。任務準備設備及軟件:計算機、KeilμVision4軟件。

任務實施

(1)在【Project】菜單下選擇【NewμVisionProject】命令,見圖2-23。

(2)輸入新建工程文件名“蜂鳴器”,如圖2-24所示。

(3)選擇廠商和單片機型號,見圖2-25。

(4)新建c文件,見圖2-26。

(5)輸入C語言程序并保存,見圖2-27。

(6)保存的文件后綴名為在英文狀態(tài)下的“.c”,見圖2-28

(7)將新建的文件添加到工程中,見圖2-29和圖2-30。

(8)單擊圖標,在【Output】下拉菜單中生成的hex文件上打對鉤,見圖2-31和圖2-32。

(9)編譯,底端顯示0錯誤0警告,表示程序語法正確,見圖2-33。

圖2-23新建工程圖2-24保存工程圖2-25選擇單片機圖2-26新建c文件圖2-27編程圖2-28保存c文件圖2-29添加c文件操作一圖2-30添加c文件操作二圖2-31勾選hex文件操作一圖2-32勾選hex文件操作二圖2-33編譯

任務2-2用Proteus軟件繪制51單片機

控制蜂鳴器電路圖

任務目的使用Proteus軟件繪制51單片機控制蜂鳴器電路圖,掌握Proteus軟件繪制電路圖的方法及注意事項。任務準備設備及軟件:萬用表、計算機、KeilμVision4軟件、Proteus軟件。電路圖:51單片機控制蜂鳴器電路圖一張(電路圖參見后面的繪制結果)。

任務實施

(1)單擊搜索元件的符號,見圖2-34;也可以按快捷鍵P進行搜索。

(2)在搜索欄輸入要用的元器件,見圖2-35。

(3)雙擊需要的元器件之后,元器件就會進入器件工具列表窗口,見圖2-36。

(4)用鼠標左鍵單擊連接元件端口,畫好電路圖之后,雙擊單片機就會進入元器件編輯界面,接著選擇對應的hex文件,見圖2-37。

(5)單擊左下角允許符號,沒有錯誤,表示運行成功,見圖2-38。

圖2-34搜索元件圖2-35選取元件圖2-36添加元器件到器件工具列表圖2-37連線畫圖圖2-38運行結果

任務2-3用單片機控制一只發(fā)光二極管閃爍

任務目的使用單片機控制一只發(fā)光二極管閃爍,綜合練習KeilμVision4軟件和Proteus軟件在進行單片機應用系統(tǒng)設計時的步驟和方法。任務準備設備及軟件:萬用表、計算機、KeilμVision4軟件、Proteus軟件。

任務實施

1.任務分析

任務電路Proteus原理圖如圖2-39所示,當P1.0輸出為0時,對應發(fā)光二極管D1點亮。當P1.0輸出為1時,對應發(fā)光二極管D1熄滅。圖2-39單片機控制一只發(fā)光二極管的Proteus電路圖

2.軟件仿真

(1)打開Keil軟件,在軟件中輸入任務程序,并對程序進行編譯,直至沒有錯誤,并生成相應的hex文件。

(2)打開Proteus軟件,繪制如圖2-39所示的電路原理圖,導入編譯后生成的hex文件,運行程序,觀察仿真效果。

任務結論

通過KeilμVision4軟件和Proteus軟件的具體使用和操作,實現了LED的閃爍。

本章小結

MCS-51是Intel的一個單片機系列名稱。其他廠家以8051為基核開發(fā)的CMOS工藝單片機產品統(tǒng)稱為80C51系列。80C51單片機在功能上分為基本型和增強型,在制造上采用CMOS工藝。在片內程序存儲器的配置上有掩模ROM、EPROM和Flash、無片內程序存儲器等形式。

80C51單片機由CPU、存儲器、I/O模塊構成。

80C51單片機的存儲器主要有4個物理存儲空間:片內數據存儲器(IDATA區(qū))、片外數據存儲區(qū)(XDATA)、片內程序存儲器、片外程序存儲器(程序存儲器合稱為CODE)。片內程序存儲器容量為4KB,片內數據存儲器容量為256KB。

片內RAM的低128個單元用于存放程序執(zhí)行過程中的各種變量和臨時數據,按其用途劃分為工作寄存器區(qū)(占32個單元)、位尋址區(qū)(占16個單元)、用戶數據緩沖區(qū)(地址為

30H~7FH)3個區(qū)域。

RAM的高128單元是基本型單片機21個SFR(也稱為特殊功能寄存器)。它離散地分布在80H~FFH空間。雖然,它們不連續(xù)地分布在片內RAM的高128單元中,其中還有許多空閑地址,但是用戶不能使用。

MCS51共有4個8位的并行I/O口,分別記作P0、P1、P2、P3。每個口都包含一個鎖存器、一個輸出驅動器和輸入緩沖器。這些端口在結構和特性上基本相同,但又各具特點。P1端口是唯一的單功能口,僅能用作通用數據輸入/輸出口。P3端口是雙功能口,除具有數據輸入/輸出功能外,每一條端口線還具有不同的第二功能。在需要外部程序存儲器和數據存儲器擴展時,P0端口為分時復用的低8位地址線/數據總線,P2端口為高8位地址總線。

80C51單片機的時鐘信號有內部時鐘方式和外部時鐘方式兩種。內部的各種微操作都以振蕩(晶振)周期為時序基準,晶振信號二分頻后形成兩相錯開的時鐘信號P1和P2。一

個機器周期包含12個晶振周期(或6個S狀態(tài)周期)。指令的執(zhí)行時間稱作指令周期。

單片機的復位操作使單片機進入初始化狀態(tài)。復位后,P0~P3=FFH,相當于各口鎖存器已寫入1,此時不但可用于輸出,也可以用于輸入;SP=07H,堆棧指針指向片內RAM的07H單元(第一個堆棧內容將寫入08H單元);IP、IE和PCON的有效位為0,各中斷源處于低優(yōu)先級且均被關斷,串行通信的波特率不加倍;PSW=00H,當前工作寄存器為0組。

習題

一、填空題1.單片機80C51內部整體結構有3個模塊,即()、()、()。2.單片機的存儲器主要有4個物理存儲空間,即()、()、()、()。3.單片機的應用程序一般存放在()中。4.片內RAM低128單元按其用途劃分為()、()和()3個區(qū)域。

5.當振蕩脈沖頻率為12MHz時,一個機器周期為()

;當振蕩脈沖頻率為()6MHz時,一個機器周期為。

6.單片機總線按照功能分為()、()、()3種。

7.單片機的復位電路有兩種,即()和()

溫馨提示

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

評論

0/150

提交評論