第二課單片機硬件基礎ye_第1頁
第二課單片機硬件基礎ye_第2頁
第二課單片機硬件基礎ye_第3頁
第二課單片機硬件基礎ye_第4頁
第二課單片機硬件基礎ye_第5頁
已閱讀5頁,還剩72頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

計算機測控技術

第二課單片機硬件系統基礎葉衛東檢測與自動化工程系yujs@辦公室:新主樓E301電話:823173352014.3.6本節內容嵌入式系統基礎知識51單片機系統結構及組成知識什么是嵌入式系統?Embeddedsystem個人電腦≠嵌入式系統簡單的講,嵌入式系統是指操作系統和功能軟件集成于計算機硬件系統之中。廣義的講,可以認為凡是帶有微處理器的專用軟硬件系統都可以稱為嵌入式系統嵌入式計算機系統的定義以應用為中心、以計算機技術為基礎、軟件硬件可裁剪、適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統嵌入式系統的主特征和通用的計算機系統相比,嵌入式系統具有以下特征:1、用于特定的任務2、極其關注成本3、大多有功耗的要求4、有實時的要求6、軟件要求固態化存儲

7、軟件硬件可靠性要求更高8、相關產品具有較長的生命周期

……嵌入式系統基本組成要素嵌入式處理器及其硬件平臺嵌入式軟件系統嵌入式操作系統(可選)----實時操作系統RTOSI/O接口系統以嵌入式處理器為核心的硬件平臺嵌入式操作系統嵌入式應用軟件系統應用系統的I/O接口嵌入式系統基本組成硬件計算機組成體系結構——馮·諾依曼體系結構模型計算機組成結構——哈弗體系結構計算機系統指令集CISC:復雜指令集(ComplexInstructionSetComputer)具有大量的指令和尋址方式大多數程序只使用少量的指令就能夠運行RISC:精簡指令集(ReducedInstructionSetComputer)8/2原則:80%的程序只使用20%的指令在通道中只包含最有用的指令確保數據通道快速執行每一條指令使CPU硬件結構設計變得更為簡單嵌入式處理器分類MCS-51單片機的硬件結構片內結構如圖2-1所示:

圖2.2MCS-51單片機功能結構圖時鐘信號源外部事件信號BUS時鐘電路8KBFlashROM256BRAM128BSFR16位×3個定時/計數器64KB總線擴展控制器可編程并行口可編程全雙工串行口CPU中斷控制器外中斷8位×4個并行口串行通信總線控制BUS2.1.1MCS-51單片機的功能結構及特點

圖2.3MCS-51單片機原理結構圖XTAL2XTAL1P3.0~P3.7P1.0~P1.7RAM地址端口0驅動器端口2驅動器8KBFlashROM端口0鎖存器端口2鎖存器端口1驅動器端口3驅動器端口1鎖存器端口3鎖存器暫存器1SPPSWB寄存器暫存器2ACC256BRAM128BSFR緩沖器PC加1PC程序地址寄存器DPTR定時器、串行口中斷部件及特殊功能寄存器地址總線∕數據總線P2.0~P2.7VccGND指令寄存器指令譯碼器指令控制器P0.0~P0.7PSENALEEARSTALU介紹圖2-1中的各功能部件:1.CPU 51CPU是動態CPU2.數據存儲器(RAM)片內為128個字節(52子系列的為256個字節)3.程序存儲器(ROM/EPROM)

8031:無ROM;8051:4K字節ROM;8751:4K字節EPROM;

89C51/89C52/89C55:4K/8K/20K字節閃存。4.中斷系統5.定時器/計數器6.串行口1個全雙工的異步串行口,具有四種工作方式。7.P1口、P2口、P3口、P0口為4個并行8位I/O口。8.特殊功能寄存器(SFR)共有21個,是一個具有特殊功能的RAM區。2.2MCS-51的引腳

40只引腳雙列直插封裝(DIP)。

44只引腳方形封裝方式(4只無用)40只引腳按功能分為3類:(1)電源及時鐘引腳:Vcc、Vss;XTAL1、XTAL2。(2)控制引腳:PSEN*、EA*、ALE、RESET(即RST)。(3)I/O口引腳:P0、P1、P2、P3,為4個8位I/O口的外部引腳。2.2.1電源及時鐘引腳

1.電源引腳

(1)Vcc(40腳):+5V電源;(2)Vss(20腳):接地。2.時鐘引腳

(1)XTAL1(19腳):如果采用外接晶體振蕩器時,此引腳應接地。(2)XTAL2(18腳):接外部晶體的另一端。2.2.2控制引腳

提供控制信號,有的引腳還具有復用功能。

(1)RST/VPD(9腳):復位與備用電源。(2)ALE/PROG*(30腳):第一功能ALE為地址鎖存允許,可驅動8個LS型TTL負載。PROG*為本引腳的第二功能。為編程脈沖輸入端。

(3)PSEN*(29腳):外部程序存儲器的讀選通信號。可以驅動8個LS型TTL負載。

(4)EA*/VPP(EnableAddress/VoltagePulseofPrograming,31腳)

EA*為內外程序存儲器選擇控制端。

EA*=1,訪問片內程序存儲器,但在PC(程序計數器)值超過0FFFH(對于8051、8751)時,即超出片內程序存儲器的4K字節地址范圍時,將自動轉向執行外部程序存儲器內的程序。EA*=0,單片機則只訪問外部程序存儲器。

VPP為本引腳的第二功能。用于施加編程電壓(例如+21V或+12V)。對89C51,加在VPP腳的編程電壓為+12V或+5V。2.2.3I/O口引腳(1)P0口:開漏雙向8位I/O口,此口為地址總線(低8位)及數據總線分時復用口,可驅動8個LS型TTL負載。(2)P1口:8位準雙向I/O口,可驅動4個LS型TTL負載。(3)P2口:8位準雙向I/O口,與地址總線(高8位)復用,可驅動4個LS型TTL負載。(4)P3口:8位準雙向I/O口,雙功能復用口,可驅動4個LS型TTL負載。注意:準雙向口與開漏雙向三態口的差別。準雙向I/O口作輸入口使用時,要向該口先寫“1”。準雙向I/O口無高阻的“浮空”狀態。2.3MCS-51的CPU

由運算器和控制器所構成2.3.1運算器

對操作數進行算術、邏輯運算和位操作。1.算術邏輯運算單元ALU2.累加器A

使用最頻繁的寄存器,可寫為Acc。

A的作用:(1)是ALU的輸入之一,又是運算結果的存放單元。(2)數據傳送大多都通過累加器A。MCS-51增加了一部分可以不經過累加器的傳送指令,即可加快數據的傳送速度,又減少A的“瓶頸堵塞”現象。A的進位標志Cy同時又是位處理機的位累加器。3.程序狀態字寄存器PSW

(1)Cy(PSW.7)進位標志位(2)Ac(PSW.6)輔助進位標志位,用于BCD碼的十進制調整運算。(3)F0(PSW.5)用戶使用的狀態標志位。(4)RS1、RS0(PSW.4、PSW.3):4組工作寄存器區選擇控制位1和位0。

RS1RS0所選的4組寄存器

000區(內部RAM地址00H~07H)011區(內部RAM地址08H~0FH)102區(內部RAM地址10H~17H)113區(內部RAM地址18H~1FH)(5)OV(PSW.2)溢出標志位

指示運算是否產生溢出。各種算術運算指令對該位的影響情況較復雜。(6)PSW.1位:保留位,未用(7)P(PSW.0)奇偶標志位

P=1,A中“1”的個數為奇數

P=0,A中“1”的個數為偶數

1.程序計數器PC(ProgramCounter)存放下一條要執行的指令在程序存儲器中的地址。

基本工作方式有以下幾種:

(1)程序計數器自動加1

(2)執行有條件轉移或無條件轉移指令時,程序計數器將被置入新的數值,從而使程序的流向發生變化。(3)在執行調用子程序調用或中斷調用,完成下列操作: ①PC的現行值保護②將子程序入口地址或中斷向量的地址送入PC。

2.堆棧指針SP

指示堆棧頂部在內部RAM塊中的位置

復位后,SP中的內容為07H。

(1)保護斷點 (2)現場保護 堆棧向上生長

3.數據指針DPTR

高位字節寄存器用DPH表示,低位字節寄存器用DPL表示。

4.I/O端口P0~P3

P0~P3分別為I/O端口P0~P3的鎖存器。5.寄存器B為執行乘法和除法操作設置的。在不執行乘、除的情況下,可當作一個普通寄存器來使用。6.串行數據緩沖器SBUF

存放欲發送或已接收的數據,一個字節地址,物理上是由兩個獨立的寄存器組成,一個是發送緩沖器,另一個是接收緩沖器。7.定時器/計數器

兩個16位定時器/計數器T1和T0,各由兩個獨立的8位寄存器組成:TH1、TL1、TH0、TL0,只能字節尋址,但不能把T1或T0當作一個16位寄存器來尋址訪問。2.3MCS-51存儲器的結構(重要)

MCS-51單片機為哈佛結構:程序存儲器ROM和數據存儲器RAM分開編址

PC機為偌依曼結構:ROM和RAM統一編址

程序存儲器:固化程序、常數和數據表

數據存儲器:存放程序運行中產生的各種數據、用作堆棧等

1、單片機的存儲器空間及分類

MCS-51單片機有4個存儲空間: 1)片內程序存儲器;2)片內數據存儲器;3)片外程序存儲器;4)片外數據存儲器。

4個存儲空間可以分成三類: 1)片內數據存儲空間(256B的RAM和128B的特殊功能寄存器);2)片外數據存儲空間(64KB);3)片內和片外統一編址的程序存儲空間(64KB)

不同類型的存儲空間,有各自的尋址方式和訪問指令。

2.3.1單片機程序存儲器結構MCS-51單片機程序存儲空間的配置片外ROM片內ROMEA=1片外ROMEA=00000H0FFFH1000HFFFFH(a)片內有4KB的ROM(b)片內有8KB的ROM片外ROM片內ROMEA=1片外ROMEA=00000H1FFFH2000HFFFFH2.3.1程序存儲器結構

二、程序存儲器的專用區域 用作復位和中斷入口2.3.1程序存儲器結構

中斷向量:即中斷入口地址。如下表

如果用C語言編寫程序,不需要考慮以上這些問題,即不用考慮引導程序問題,中斷入口與跳轉問題,這些問題均由編譯系統安排好。2.3.2片內數據存儲器結構

片內數據存儲器按照尋址方式,可以分為三個部分:低128字節數據區,高128字節數據區,特殊功能寄存器區。如下圖所示。

低128BRAM

data區特殊功能寄存器80HFFH00H7FH(a)89C51片內RAM低128BRAM

data區高128BRAMidata區特殊功能寄存器00H7FH80HFFH80HFFH(b)增強型單片機片內RAM2.3.2片內數據存儲器結構 一、低128字節RAM地址范圍:00H~7FH,128字節應用特點:有多種用途且使用最頻繁功能作用:分為三個區域,即工作寄存器區、位尋找區、通用數據區。尋址方式:直接、間接、位尋址 低128字節RAM的配置如右圖所示。不同數據區的用途工作寄存器組由決定于程序狀態字PSW的RS1和RS0位確定;

C語言下選寄存器組:在定義函數時,通過使用關鍵字“using”來選擇(如usingm)位寄存器組

既可以做位操作,也可以字節操作。

C語言編程:用關鍵字“bit”定義的位變量在該區域;用關鍵字“bdata”將一般變量定義在該區域,并且定義的變量還可以進行位尋址。通用數據區

用于堆棧、存放數據、存放程序運行時的中間結果等。2.3.2片內數據存儲器結構二、高128字節RAM(增強型單片機)

地址范圍:80H~FFH,128字節

用途:與低128字節中的30H到7FH完全一樣,用于堆棧、存放程序運行時的數據和中間結果等。

尋址方式:間接訪問。

C語言編程:使用關鍵字“idata”定義變量三、特殊功能寄存器(SFR)

也稱為專用寄存器,是單片機中最重要的部分。

地址范圍:80H~FFH,128字節

功能作用:控制單片機各個部件的運行反映各部件的運行狀態存放數據或地址

尋址方式:直接訪問特殊功能寄存器在C語言中使用,必須先做定義,它們多數在“reg51.h”、“reg52.h”等頭文件做了定義。2.3.3片外數據存儲器結構(1)地址范圍:0000H~FFFFH(2)容量:共64KB(3)訪問指令:“MOVX”(片內用MOV) 使用“MOVX”指令對片外RAM進行讀/寫操作時,會自動產生讀/寫控制信號RD和WR,作用于片外RAM實現讀/寫操作。(4)用途:片外RAM做通用RAM使用,主要存放大量采集的或接收的數據、運算的中間數據、最后結果、用作堆棧等。

(5)C語言編程:使用關鍵字“xdata”或“pdata”將變量、數組、堆棧定義到片外RAM區。表2-2SFR的名稱及其分布表2-3內部RAM的可尋址位及位地址表2-4SFR中的位地址分布2.4并行I/O端口

4個雙向的8位并行I/O端口(Port),記作P0~P3屬于特殊功能寄存器,還可位尋址。

2.4.1P0端口

P0口某一位的電路包括:(1)一個數據輸出鎖存器,用于數據位的鎖存(2)兩個三態的數據輸入緩沖器。(3)一個多路轉接開關MUX,使:P0口可作通用I/O口,或地址/數據線口。(4)數據輸出的驅動和控制電路,由兩只場效應管(FET)組成,上面的場效應管構成上拉電路。P0口傳送地址或數據時,CPU發出控制信號為高電平,打開上面的與門,使多路轉接開關MUX打向上邊,使內部地址/數據線與下面的場效應管處于反相接通狀態。此時輸出驅動電路由于上下兩個FET處于反相,形成推挽式電路結構,大大提高負載能力。P0口作通用的I/O口使用。這時,CPU發來的“控制”信號為低電平,上拉場效應管截止,多路轉接開關MUX打向下邊,與D鎖存器的Q*端接通。(1)P0作輸出口使用來自CPU的“寫入”脈沖加在D鎖存器的CP端,內部總線上的數據寫入D鎖存器,并向端口引腳P0.x輸出。注意:由于輸出電路是漏極開路(因為這時上拉場效應管截止),必須外接上拉電阻才能有高電平輸出。(2)P0作輸入口使用區分“讀引腳”和“讀鎖存器”。“讀引腳”信號把下方緩沖器打開,引腳上的狀態經緩沖器讀入內部總線;“讀鎖存器”信號打開上面的緩沖器把鎖存器Q端的狀態讀入內部總線。8031單片機在對端口P0一P3的輸入操作上,有如下約定:凡屬于讀-修改-寫方式的指令,從鎖存器讀入信號,其它指令則從端口引腳線上讀入信號。讀-改-寫指令的特點從端口輸入(讀)信號,在單片機內加以運算(修改)后,再輸出(寫)到該端口上。下面是幾條讀--修改-寫指令的例子。ANLP0,#O8H;P0與立即數--〉P0ORLPO,A;P0或A--〉P0INCP1;P1+1--〉P1DECP3;P3-1—〉P3CPLP2;P2異或-〉P2這樣安排的原因在于讀-修改-寫指令需要得到端口原輸出的狀態,修改后再輸出,讀鎖存器而不是讀引腳,可以避免因外部電路的原因而使原端口的狀態被讀錯。2.4.2P1端口

字節地址90H,位地址90H~97H。P1口只作通用的I/O口使用,在電路結構上與P0口有兩點區別:(1)因為只傳送數據,不再需要多路轉接開關MUX。(2)由于P1口用來傳送數據,因此輸出電路中有上拉電阻,這樣電路的輸出不是三態的,所以P1口是準雙向口。因此:(1)P1口作為輸出口使用時,外電路無需再接上拉電阻。(2)P1口作為輸入口使用時,應先向其鎖存器先寫入“1”,使輸出驅動電路的FET截止。2.4.3P2端口

字節地址為A0H,位地址A0H~A7H。

在實際應用中,因為P2口用于提供高位地址,有一個多路轉接開關MUX。但MUX的一個輸入端不再是“地址/數據”,而是單一的“地址”,因為P2口只作為地址線使用。當P2口用作為高位地址線使用時,多路轉接開關應接向“地址”端。正因為只作為地址線使用,口的輸出用不著是三態的,所以,P2口也是一個準雙向口。P2口也可以作為通用I/O口使用,這時,多路轉接開關接向鎖存器Q端。2.4.4P3端口

P3口的字節地址為B0H,位地址為B0H~B7H。P3口的第二功能定義,應熟記。表2-2P3口的第二功能定義

口引腳第二功能

P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 INT0*(外部中斷0) P3.3 INT1*(外部中斷1) P3.4 T0(定時器0外部計數輸入) P3.5 T1(定時器1外部計數輸入) P3.6 WR*(外部數據存儲器寫選通) P3.7 RD*(外部數據存儲器讀選通)

第二功能信號有輸出和輸入兩類:(1)作通用的I/O輸出,“第二輸出功能”線應保持高電平,與非門開通,使鎖存器Q端輸出暢通。作第二功能信號輸出,鎖存器預先置“1”,使與非門對“第二輸出功能”信號的輸出是暢通的。(2)作第二功能信號輸入,在口線引腳的內部增加了一個緩沖器,輸入的信號就從這個緩沖器的輸出端取得。而作為通用I/O輸入,仍取自三態緩沖器的輸出端。P3口無論作哪種輸入,鎖存器輸出和“第二輸出功能”線都應保持高電平。2.4.5P0~P3端口功能總結使用中應注意的問題:(1)P0~P3口都是并行I/O口,但P0口和P2口,還可用來構建系統的外部數據總線和地址總線,所以在內部電路中有一個MUX,以進行轉換。而P1口和P3口無構建系統的數據總線和地址總線的功能,因此,無需轉接開關MUX。由于P0口可作為地址/數據復用線使用,需傳送系統的低8位地址和8位數據,因此MUX的一個輸入端為“地址/數據”信號,另一個為P0寄存器。而P2口僅作為高位地址線使用,不涉及數據,所以MUX的一個輸入信號為“地址”,另一個為P2寄存器。(2)在4個口中只有P0口是開漏雙向口,P1~P3口都是準雙向口。原因:P0口作數據總線使用時,為保證數據正確傳送,需解決芯片內外的隔離問題,即只有在數據傳送時芯片內外才接通;不進行數據傳送時,芯片內外應處于隔離狀態。在P0口中輸出電路是由兩只場效應管(FET)組成,上拉晶體管在數據輸出為1時提供一個瞬間的強上拉能力,下拉晶體管可以提供持續的下拉能力,所以稱其為開漏雙向端口。而P1~P3口,上拉電阻代替P0口中的場效應管,輸出緩沖器不是三態的-準雙向口。(3)P3口的口線具有第二功能,為系統提供一些控制信號。因此在P3口電路增加了第二功能控制邏輯。這是P3口與其它各口的不同之處。MCS-51單片機擴展存儲器的設計(重要)概述片內的資源如不滿足需要,需外擴存儲器和I/O功能部件:系統擴展問題,內容主要有:(1)外部存儲器的擴展(外部存儲器又分為外部程序存儲器和外部數據存儲器)(2)I/O接口部件的擴展。系統擴展結構如下圖:MCS-51單片機外部存儲器結構:哈佛結構。MCS-96單片機的存儲器結構:普林斯頓結構。MCS-51數據存儲器和程序存儲器的最大擴展空間各為64KB。系統擴展首先要構造系統總線。系統總線及總線構造系統總線按其功能通常把系統總線分為三組:1.地址總線(AdressBus,簡寫AB)

2.數據總線(DataBus,簡寫DB)3.控制總線(ControlBus,簡寫CB)

構造系統總線

系統擴展的首要問題:構造系統總線,然后再往系統總線上“掛”存儲器芯片或I/O接口芯片,“掛”存儲器芯片就是存儲器擴展,“掛”I/O接口芯片就是I/O擴展。MCS-51由于受引腳數目的限制,數據線和低8位地址線復用。為了將它們分離出來,需要外加地址鎖存器,從而構成與一般CPU相類似的片外三總線,見圖8-2。

地址鎖存器一般采用74LS373,采用74LS373的地址總線的擴展電路如下圖(圖8-3)。

1.以P0口作為低8位地址/數據總線。2.以P2口的口線作高位地址線。3.控制信號線。 *使用ALE信號作為低8位地址的鎖存控制信號。 *以PSEN*信號作為擴展程序存儲器的讀選通信號。 *以EA*信號作為內外程序存儲器的選擇控制信號。 *由RD*和WR*信號作為擴展數據存儲器和I/O口的讀選通、寫選通信號。盡管MCS-51有4個并行I/O口,共32條口線,但由于系統擴展需要,真正作為數據I/O使用的,就剩下P1口和P3口的部分口線。讀寫控制、地址空間分配和外部地址鎖存器存儲器擴展的讀寫控制RAM芯片:讀寫控制引腳,記為OE*和WE*,與MCS-51的RD*和WR*相連。EPROM芯片:只能讀出,故只有讀出引腳,記為OE*,該引腳與MCS-51的PSEN*相連。存儲器地址空間分配MCS-51發出的地址是用來選擇某個存儲器單元進行讀寫,要完成這種功能,必須進行兩種選擇:“片選”和“單元選擇”。存儲器空間分配除考慮地址線連接外,還討論各存儲器芯片在整個存儲空間中所占據的地址范圍,

常用的存儲器地址分配的方法有兩種:線性選擇法(簡稱線選法)和地址譯碼法(簡稱譯碼法)。1.線選法

直接利用系統的高位地址線作為存儲器芯片(或I/O接口芯片)的片選信號。優點:電路簡單,不需要地址譯碼器硬件,體積小,成本低。

缺點:可尋址的器件數目受到限制,地址空間不連續,地址不唯一。例某一系統,需要外擴8KB的EPROM(2片2732),4KB的RAM(2片6116),這

溫馨提示

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

評論

0/150

提交評論