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

下載本文檔

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

文檔簡介

第1章單片機基礎本章內容:本章主要介紹單片機的概念、單片機的發(fā)展、基本的結構和特點、單片機的應用模式和領域以及MCS-51單片機等。(自動化,Vol.1.0)*第1章單片機基礎

本章內容: 本章主要介紹單片機的概念、單片機的發(fā)展、基本的結構和特點、單片機的應用模式和領域以及MCS-51單片機等。單片機原理及應用(Vol.1.0)*CPUROMRAM定時器/計數器中斷控制器並行介面晶片串行介面晶片A/D轉換晶片D/A轉換晶片ABCBDB單板微型電腦單板機1.1單片機的概念微型電腦結構單片機原理及應用(Vol.1.0)*CPUROMRAM定時器/計數器中斷控制器並行介面晶片串行介面晶片A/D轉換晶片D/A轉換晶片匯流排單板微型電腦單片機集成MCUMicrocontroller1.1單片機的概念單片機原理及應用(Vol.1.0)*1.1單片機的概念

單片機即單片機微型電腦,就是將CPU、RAM、ROM、定時/計數器和多種介面都集成到一塊積體電路晶片上的微型電腦。

主要應用於工業(yè)檢測與控制、電腦外設、智能儀器儀錶、通訊設備、家用電器等。特別適合於嵌入式微型機應用系統(tǒng)。單片機也成為微控制器,MCU(Microcontrollerunit)

嵌入式控制器,EMCU(EmbeddedMicrocontrollerunit)單片機原理及應用(Vol.1.0)*1.1單片機的概念

單片機分類:(1)通用型:把可開發(fā)的內部資源全部提供給用戶。內部資源豐富、性能全面、適應性強。(2)專用型:針對某些產品的特定用途而製作的單片機。是MCU發(fā)展的一個趨勢。單片機原理及應用(Vol.1.0)*

第一階段(1976~1978):低性能單片機。Intel公司的MCS-48,含有8位CPU、定時/計數器、並行I/O口、RAM和ROM等。主要用於工業(yè)領域。第二階段(1978~1982):高性能單片機,帶有串行I/O口,8位數據線、16位地址線,可尋址64K。MCS-51、Motorola6801

第三階段(1982~1990):16位單片機。16位CPU,片內RAM和ROM容量進一步增大。Intel公司MCS-96,片內RAM:232位元組,ROM:8K位元組,中斷處理能力為8級,帶有10位A/D轉換器和高速輸入/輸出部件等。第四階段(1990~):RISC(精簡指令集)的微控制器,向高速、強運算能力、尋址範圍大以及小型廉價方面發(fā)展。ATMELAVR、ARM系列,以及其他公司的PIC、DSP晶片。1.2單片機發(fā)展的歷史單片機原理及應用(Vol.1.0)*

IntelMCS-518031/8051/8751

ATMELMCS-51相容系列89C51/89C52、

89C2051/89C2052;

ATMELAtmega系列ATmega16/ATmega32/ATmega8515/ATmega161/162等;

ZilogZ8

FairchildF8

Motorola6801CYGNALC8051Fxxxx

1.3單片機的機型(8位)單片機原理及應用(Vol.1.0)*1改進CPU

雙CPU、數據匯流排寬度增加、串行匯流排

2記憶體容量增加、工藝更新、程式加密

3I/O改進驅動能力、位邏輯控制功能、串行匯流排功能

4週邊電路集成

A/D、D/A等功能集成到MCU5低功耗

1.4單片機的發(fā)展趨勢單片機原理及應用(Vol.1.0)*

單片機技術的應用遍佈國民經濟與人民生活的各個領域:

測控系統(tǒng)、智能儀錶、智能介面、辦公自動化、光機電一體化設備、通訊設備、網路設備、汽車電子、消費類電子產品、智能樓宇設備1.5單片機應用單片機原理及應用(Vol.1.0)*1.5 電腦運算基礎一.

十進位ND有十個數碼0~9、逢十進一。十進位用於電腦輸入輸出,人機交互。二.

二進位NB兩個數碼:0、1,逢二進一。二進位為機器中的數據形式。三.

十六進制NH十六個數碼:0~9,A~F,逢十六進一。十六進制用於表示二進位數。不同進位制數以下標或尾碼區(qū)別,十進位數可不帶下標。如:101、101D、101B、101H、101H介紹電腦中數的表示方法和基本運算方法。1.5.1

進位計數制單片機原理及應用(Vol.1.0)*1.5 電腦運算基礎一.十進位ND有十個數碼:0~9,逢十進一。 例1234.5=1×103+2×102+3×101+4×100+5×10-1加權展開式以10稱為基數,各位係數為0~9。 一般運算式:ND=dn-1×10n-1+dn-2×10n-2+…+d0×100+d-1×10-1+…1.5.1

進位計數制單片機原理及應用(Vol.1.0)*1.5 電腦運算基礎二.二進位NB兩個數碼:0、1,逢二進一。 例1101.101=1×23+1×22+0×21+1×20+1×2-1+1×2-3

加權展開式以2為基數,各位係數為0、1。 一般運算式:

NB=bn-1×2n-1+bn-2×2n-2+…+b0×20+b-1×2-1+…1.5.1

進位計數制單片機原理及應用(Vol.1.0)*1.5 電腦運算基礎三.十六進制NH十六個數碼0~9、A~F,逢十六進一。 例:DFC.8=13×162+15×161+12×160+8×16-1

展開式以十六為基數,各位係數為0~9,A~F。 一般運算式:

NH=hn-1×16n-1+hn-2×16n-2+…+h0×160+h-1×16-1+…1.5.1

進位計數制單片機原理及應用(Vol.1.0)*1.5.2不同進位計數制之間的轉換

先展開,然後按照十進位運算法則求和。舉例:1011.1010B=1×23+1×21+1×20+1×2-1+1×2-3=11.625DFC.8H=13×162+15×161+12×160+8×16-1=3580.5(一)二、十六進制數轉換成十進位數

進位計數制的一般運算式:

Nr=an-1rn-1+an-2rn-2+…+a1r1+a0r0+a-1r-1…+a-mr-m

一個進制的數轉換成另一個進制數的方法:

按權展開,求和計算。單片機原理及應用(Vol.1.0)*1.5.2不同進位計數制之間的轉換

(二)二進位與十六進制數之間的轉換

24=16,四位二進位數對應一位十六進制數。舉例:3AF.2H=0011

1010

1111.0010=1110101111.001B

3AF21111101.11B=0111

1101.1100=7D.CH

7DC單片機原理及應用(Vol.1.0)*(三)十進位數轉換成二、十六進制數整數、小數分別轉換

1.整數轉換法“除基取餘”:十進位整數不斷除以轉換進制基數,直至商為0。每除一次取一個餘數,從低位排向高位。舉例:1.

39轉換成二進位數

39=100111B 2 391(b0) 2 191(b1) 2 91(b2) 2 40(b3) 2 20(b4) 2 11(b5) 02.

208轉換成十六進制數

208=D0H16208餘01613餘13=DH 0單片機原理及應用(Vol.1.0)*(三)十進位數轉換成二、十六進制數2. 小數轉換法“乘基取整”:用轉換進制的基數乘以小數部分,直至小數為0或達到轉換精度要求的位數。每乘一次取一次整數,從最高位排到最低位。2.

0.625轉換成十六進制數0.625×16=10.0 0.625=0.AH3.208.625轉換成十六進制數208.625=D0.AH1.0.625轉換成二進位數

0.625 ×2 1.2501(b-1) × 2 0.500(b-2) × 2 1.0 1(b-3)0.625=0.101B單片機原理及應用(Vol.1.0)*1.5.3帶符號數的表示方法機器數:機器中數的表示形式,其位數通常為8的倍數真值:機器數所代表的實際數值。舉例:一個8位機器數與它的真值對應關係如下:

真值: X1=+84=+1010100BX2=-84=

-1010100B

機器數:[X1]機=01010100[X2]機=11010100

機器中,數的符號用“0”、“1”表示。

最高位作符號位,“0”表示“+”,“1”表示“-”。(一)機器數與真值單片機原理及應用(Vol.1.0)*1.5.3帶符號數的表示方法最高位為符號位,0表示“+”,1表示“-”。 數值位與真值數值位相同。

例8位原碼機器數:

真值:

x1=+1010100B

x2=-

1010100B

機器數:

[x1]原=01010100

[x2]原=11010100原碼表示簡單直觀,但0的表示不唯一,加減運算複雜。有符號數通常使用三種表示方法:(二)原碼(TrueForm)單片機原理及應用(Vol.1.0)*1.5.3帶符號數的表示方法最高位為符號位,0表示“+”,1表示“-”。 數值位與真值數值位相同。

例8位原碼機器數:

真值:

x1=+1010100B

x2=-

1010100B

機器數:

[x1]原=01010100

[x2]原=11010100原碼表示簡單直觀,但0的表示不唯一,加減運算複雜。有符號數通常使用三種表示方法:(二)原碼(TrueForm)單片機原理及應用(Vol.1.0)*1.5.3帶符號數的表示方法正數的反碼與原碼表示相同。 負數反碼符號位為1,數值位為原碼數值各位取反。 例8位反碼機器數:

x=+4[x]原=00000100 [x]反=00000100

x=-4[x]原=10000100[x]反=11111011(三)反碼(One’sComplement)單片機原理及應用(Vol.1.0)*(四)補數(Two’sComplement)正數的補數表示與原碼相同。 負數補數的符號位為1,數值位等於反碼加1。

例:求

8位補數

x=+4 [x]原=[x]反=[x]補=

00000100 x=-4 [x]原=10000100 [x]反=11111011 [x]補=11111100補數表示的優(yōu)點:0的表示唯一。1.5.3帶符號數的表示方法單片機原理及應用(Vol.1.0)*8位機器數表示的真值1.5.3帶符號數的表示方法單片機原理及應用(Vol.1.0)*1.5.3帶符號數的表示方法

1)X1=+127,X2=-127,求[X]原、[X]補

[X1]原=[X1]補=01111111=7FH [X2]原=11111111=FFH [X2]補=10000001=81H

2)X1=+255,X2=-255,求[X]原、[X]補

[X1]原=[X1]補=0000000011111111=00FFH [X2]原=1000000011111111=80FFH [X2]補=1111111100000001=FF01H

(五)真值與機器數之間的轉換單片機原理及應用(Vol.1.0)*

3) [X1]原=59H, [X2]原=D9H,求真值?

[X1]原= 01011001 [X2]原=110110014) [X1]補=59H,[X2]補=D9H,求真值

1.5.3帶符號數的表示方法X1=

+1011001B=+89X2=-1011001B=-89X1=+1011001B

=+89 X2=-0100111B=-39

單片機原理及應用(Vol.1.0)*1.5.4

定點與浮點表示

1)定點整數:小數點固定在數值位之後。

2)定點小數:小數點固定在數值位之前符號位之後。舉例:求定點機器數5AH表示的真值。用定點整數表示的真值:+1011010

用定點小數表示的真值:+0.101101

一.定點數

小數點位置固定的機器數。運算簡便,表示範圍小。單片機原理及應用(Vol.1.0)*1.5.4

定點與浮點表示二進位數浮點表示: B=±S×2±J

S-尾數,為小數或整數。J-階碼,為整數二.浮點數

小數點位置不固定。表示範圍大,運算複雜。

舉例:求雙位元組浮點機器數表示的真值 00000101(階碼)00001101(尾數)

當S為純整數:B=+110100000B=+416

當S為純小數:B=+11.01B=+3.25

規(guī)格化浮點表示:使數值最高位為有效數值位。例規(guī)格化浮點數:00000010 01101000單片機原理及應用(Vol.1.0)*1.2.6二—十進位編碼BCD碼例:求十進位數876的BCD碼

[876]BCD=100001110110 876=36CH=1101101100BBCD碼(BinaryCodedDecimal)

二進制代碼表示的十進制數。一.8421BCD碼

單片機原理及應用(Vol.1.0)*1-2-7字元編碼

美國標準資訊交換碼ASCII碼,用於電腦與電腦、電腦與外設之間傳遞資訊。單片機原理及應用(Vol.1.0)*第2章MCS-51單片機的硬體結構本章重點:(1)MCS-51系列的8051的基本結構;(2)記憶體結構及其配置;(3)P0、P1、P2、P3四個I/O口的基本工作原理和操作特點;(4)單片機的時序(5)複位單片機原理及應用(自動化,Vol.1.0)*第2章MCS-51單片機的硬體結構2.1單片機的結構2.2單片機的引腳2.3單片機的CPU單片機原理及應用(Vol.1.0)* MCS-51單片機(以8051為例,Intel產品)1個8位CPU;1個片內振盪器及時鐘電路;128位元組RAM(數據記憶體);4K位元組ROM(程式記憶體);2個16位定時器/計數器;32條可編程的I/O線(四個8位並行I/O端口);1個全雙工串行口;5個中斷源;2.1單片機的結構(1)單片機原理及應用(Vol.1.0)*8051CPU128位元組數據記憶體2個16位定時器/計數器振盪器及定時電路4K位元組程式記憶體可編程串行口可編程I/O64K位元組總線擴展控制內部中斷源RXD控制信號外部中斷源並行I/O口TXDXTAL1XTAL2T0T12.1單片機的結構(2)單片機原理及應用(Vol.1.0)*P0P2P1P2鎖存器

鎖存器

ACC

TMP2

TMP1

ALU

PSW鎖存器

鎖存器

SP

專用寄存器RAM

RAM地址寄存器

B寄存器

ROM/EPROM

ROM地址寄存器

PCDPTRPC加1寄存器緩衝器定時控制電路指令寄存器振盪器驅動

驅動

驅動

驅動

CPU

控制信號

電源

單片機原理及應用(Vol.1.0)*

MCS-51單片機過時了?

MCS-51,1980年左右的8位MCU 8031晶片上沒有ROM———8032(衍生)

8051晶片上有4K的ROM———8752(衍生)

8751晶片上有4K的EPROM———8752(衍生)在半導體工藝上不斷更新,CHMOS工藝——80C51ATMEL公司對ROM工藝改進——T89C51/AT89C52,

AT89C1051/AT89C1052,ROM為64K(MAX),

AT89CXX是當前應用主流產品。

Dallas(Maxim)也有類似的晶片推出;Cygnal公司2000年左右推出的C8051FXX已將A/D、D/A、通用串行匯流排等功能集成到單片機中。2.1單片機的結構(2)單片機原理及應用(Vol.1.0)*2.2單片機的引腳(1)引腳分配邏輯符號單片機原理及應用(Vol.1.0)*(1)電源線+5V供電

VCC(40)——+5VGND(20)——地(2)晶體振盪器信號輸入輸出

XTAL1(18)——晶體振盪器信號輸入

XTAL1(19)——晶體振盪器信號輸出(3)輸入/輸出線

P0.0~P0.7P0口

P1.0~P1.7P1口

P2.0~P2.7P2口

P3.0~P3.7P3口2.2單片機的引腳(2)單片機原理及應用(Vol.1.0)*(4)控制信號線

ALE(30)——地址鎖存控制信號(AddressLatchEnable),ALE用於將地址匯流排的低八位鎖存。該信號頻率為晶振頻率的1/6,可作為外部定時或時鐘使用。 (29)——外部程式記憶體讀選通信號(ProgramStoreEnable) 該信號為低電平時,CPU從外部程式記憶體單元讀取指令。2.2單片機的引腳(3)單片機原理及應用(Vol.1.0)*

(31)——內外程式記憶體選擇控制

ExternalAccessEnable

=0,CPU對程式記憶體的操作僅限於單片機外部程式記憶體。=1,CPU對程式記憶體的操作從單片機內部程式記憶體開始,並可延伸到單片機的外部程式記憶體。

RESET(9)——複位信號。RESET持續(xù)2個機器週期以上的高電平,單片機複位2.2單片機的引腳(4)(4)控制信號線(續(xù))單片機原理及應用(Vol.1.0)*(5)部分引腳的第二功能(複用,同一個引腳被雙重定義)2.2單片機的引腳(5)第二功能RXD

串行輸入T1

定時器1外部,輸入T0

定時器0外部,輸入INT1

外部中斷1,輸入TXD

串行輸出INT0

外部中斷0,輸入WR

外部數據記憶體寫選通信號,輸入端口引腳P3.0P3.2P3.1P3.3P3.4P3.5P3.6P3.7RD

外部數據記憶體讀選通信號,輸入單片機原理及應用(Vol.1.0)*(5)部分引腳的第二功能程式記憶體固化所需的信號編程脈衝ALE/PROG

編程電壓/VPP

備用電源引入

RESET/VPD:當電源電壓下降到某個給定下限時,備用電源由該引腳向單片機晶片內部RAM供電,以保護內部RAM的內容不丟失。2.2單片機的引腳(6)單片機原理及應用(Vol.1.0)*

CPU是單片機的核心部件.它由運算器和控制器等組成.

2.3單片機的CPU(1)

2.3.1

運算器組成:算術邏輯運算器ALU,算術累加器ACC,寄存器B,暫存器TMP1,暫存器TMP2,布爾累加器Cy等功能:進行移位、算術運算和邏輯運算;MCS-51運算器還包含有一個布爾(位)處理器,用來處理位操作。單片機原理及應用(Vol.1.0)*

(1)累加器A(8位)

功能:暫存運算元及保存運算結果;

A是MCS-51單片機中最繁忙的寄存器;(2)寄存器B(8位)

功能:用於乘法、除法運算,對於其他指令可作為一個寄存器使用; (3)

程式狀態(tài)字寄存器PSW(8位)

功能:存放累加器A在運算過程標誌位(P,OV,AC,Cy)的狀態(tài);指出CPU所使用的當前工作寄存器組。(RS0,RS1)2.3單片機的CPU(2)單片機原理及應用(Vol.1.0)*CYACF0RS0OVPRS1PSW.7PSW.0CY(PSW.7)進位/借位標誌位。若ACC在運算過程中發(fā)生了進位或借位,則CY=1;否則=0。它也是布爾處理器的位累加器,可用於布爾操作。

AC(PSW.6)半進位/借位標誌位。若ACC在運算過程中,D3位向D4位發(fā)生了進位或借位,則CY=1,否則=0。機器在執(zhí)行“DAA”指令時自動要判斷這一位,我們可以暫時不關心它。F0(PSW.5)——用戶標誌位。PSW.6PSW.52.3單片機的CPU(3)PSW單片機原理及應用(Vol.1.0)*2.3單片機的CPU(4)PSW.7PSW.0RS1(PSW.4)、RS0(PSW.3)工作寄存器組選擇位。RS1,RS0=01則選擇了工作寄存器組1區(qū)R0~R7分別代表08H~0FH單元。RS1,RS0=10則選擇了工作寄存器組2區(qū)R0~R7分別代表10H~17H單元。RS1,RS0=11則選擇了工作寄存器組3區(qū)R0~R7分別代表18H~1FH單元。CYACF0RS0OVPRS1PSW.4PSW.3RS1,RS0=00則選擇了工作寄存器組0區(qū)R0~R7分別代表08H~0FH單元。PSW單片機原理及應用(Vol.1.0)*CYACF0RS0OVPRS1PSW.7PSW.0 OV(PSW.2)溢出標誌位。

OV=1時特指累加器在進行帶符號數(-128—+127)運算時出錯(超出範圍);OV=0時未出錯。 PSW.1未定義。 P(PSW.0)奇偶標誌位。

P=1表示累加器中“1”的個數為奇數

P=0表示累加器中“1”的個數為偶數

CPU隨時監(jiān)視著ACC中的“1”的個數,並反映在PSW中PSW.2PSW.12.3單片機的CPU(5)PSW單片機原理及應用(Vol.1.0)*(4)布爾處理器Cy

實現(xiàn)各種位邏輯運算和傳送;MCS-51具有一個位尋址空間。(5)TMP1和TMP2為8位暫存寄存器存放參與預算的運算元。2.3單片機的CPU(6)?。?!MCS-51僅能實現(xiàn)兩個8位二進位數的算術邏輯運算

單片機原理及應用(Vol.1.0)*2.3.2控制器組成:定時與控制部件,複位電路,程式計數器(PC),指令寄存器、指令解碼器,數據指針(DPTR),堆疊指針(SP)等作用:產生電腦所需的時序,控制程式自動執(zhí)行。CPU程式記憶體指令寄存器外RAM,EPROM,外I/O指令解碼器控制單片機各部分的運行,產生ALE,PSEN,RD/WR2.3單片機的CPU(7)單片機原理及應用(Vol.1.0)*程式計數器PC(16位) 程式計數器PC用來存放即要執(zhí)行的指令地址,共16位,低8位經P0口輸出,高8位經P2口輸出。

CPU每取一次機器碼,PC內容自動加一,CPU執(zhí)行一條指令,PC內容自動增加該指令的長度。CPU複位後,PC內容為0000H,它標誌著程式從頭開始執(zhí)行。

PC的內容變化決定程式的流向。指令寄存器(8位) 指令寄存器中存放將要執(zhí)行的指令代碼,通過指令解碼器,將指令代碼轉化為電信號——控制信號ALE等。

2.3單片機的CPU(8)單片機原理及應用(Vol.1.0)*2.3單片機的CPU(9)數據指針DPTR(16位) 用於訪問外部RAM或外部I/O口,提供十六位地址。用於程式記憶體的查表和程式散轉指令,作為基地址寄存器,提供十六位基地址。堆疊指針寄存器SP(8位)用於管理對棧,指出棧頂位置。

MCS-51單片機複位後,(SP)=07H

單片機原理及應用(Vol.1.0)*2.3.3時鐘電路與時序

1時鐘電路產生CPU工作所需的時鐘控制信號。時鐘的頻率直接影響單片機的速度,時鐘電路的品質直接影響單片機系統(tǒng)的穩(wěn)定性。時鐘電路的設計形式:內部方式和外部方式2.3單片機的CPU(10)內部方式XTAL2XTAL18051C1C2OSC30pF30pF內部方式:原理:借助於單片機內部電路(反相放大器)外接晶體振盪器和微調電容構成自激振盪器,提供時鐘信號。

OSC:1.2M~12MHz單片機原理及應用(Vol.1.0)*2.3單片機的CPU(11)XTAL1XTAL2外部振盪源外部方式8051VCCR外部方式直接使用外部振盪脈衝信號。(常用於多CPU系統(tǒng),以保持各個CPU同步工作)外部振盪脈衝信號為滿足一定的幅寬的方波,頻率不大於12MHz。單片機原理及應用(Vol.1.0)*

2時序在電腦中,一條指令可分解為若干個基本的微操作,這些微操作所對應的脈衝信號在時間上有嚴格的先後次序,即為電腦的時序。與時序有關的週期:時鐘週期、機器週期、指令週期時鐘週期(T

)為晶體振盪器(晶振)的振盪週期2.3單片機的CPU(12)單片機原理及應用(Vol.1.0)*2.3單片機的CPU(13)機器週期(TM):CPU完成一個基本操作所用的時間

MCS-51:1TM=12T

即:MCS-51的1個機器週期包含12個時鐘週期,由六個狀態(tài)組成。當fosc=12MHz時,

TM=1

S單片機原理及應用(Vol.1.0)*2.3單片機的CPU(14)指令週期(TI):執(zhí)行一條指令所用的時間;

MCS-51:1TI=1~4TM指令時序04XXXXXXXXXXXXXX程式記憶體2000H2002H2003H2004H2005H2006H2007H2001HINCA

的機器碼P1相P2相讀機器碼讀下一個機器碼,丟棄CPU執(zhí)行指令INCA(PC)加1(PC)不加1單字節(jié)單週期指令單片機原理及應用(Vol.1.0)*MCS-51的指令執(zhí)行時序——雙位元組單週期指令2.3單片機的CPU(15)2450XXXXXXXXXXXX程式記憶體2000H2002H2003H2004H2005H2006H2007H2001H讀機器碼24讀下一個機器碼50CPU執(zhí)行指令ADDA,#50H(PC)加1(PC)加1(PC)加1單片機原理及應用(Vol.1.0)*MCS-51的指令執(zhí)行時序——單字節(jié)雙週期指令2.3單片機的CPU(16)A3XXXXXXXXXXXXXX程式記憶體2000H2002H2003H2004H2005H2006H2007H2001H讀操作碼A3讀下一個操作碼,丟棄讀下一個操作碼,丟棄讀下一個操作碼,丟棄INCDPTR(PC)加1(PC)不加1(PC)不加1(PC)不加1單片機原理及應用(Vol.1.0)*特點: 程式記憶體和數據記憶體分開設置,地址空間相互獨立。記憶體配置程式記憶體:用來存儲程式代碼。最大空間64K。片內數據記憶體:128個單元[8051/8031/8751]

特殊功能寄存器(專用寄存器)(SpecialFunctionRegisters,SFR),共21個,實現(xiàn)單片機功能部件的控制、狀態(tài)寄存。位尋址空間外部數據寄存器 2.4單片機的記憶體(1)單片機原理及應用(Vol.1.0)*2.4.1單片機的程式記憶體作用:用來存放固定程式和常數,最大尋址空間64KB。MCS-51系列產品的分類(按程式記憶體配置類型)

8051晶片駐留4KB的EPROM 8751晶片駐留4KB的EPROM 8031中無程式記憶體,需要擴展程式記憶體。在工程應用中,用戶既可使用晶片內部的程式記憶體,也可以使用晶片內部的程式記憶體,但最大空間為64K。2.4單片機的記憶體(2)單片機原理及應用(Vol.1.0)*單片機程式記憶體(簡稱ROM)的配置8051、8751的程式記憶體地址空間與引腳的接法有關。(1)=1(接高電平)時,8751/8051的程式記憶體空間由片內和片外兩部分組成 內部4K(地址0000~0FFFH)外部60K(地址1000~FFFFH)(2)=0(接低電平)時,8751/8051的片內程式記憶體被忽略(失效),8751/8051的程式記憶體空間由片外ROM組成外部64K(地址0000~FFFFH)2.4單片機的記憶體(3)單片機原理及應用(Vol.1.0)*2.4單片機的記憶體(4)8031的程式記憶體

8031內部無程式記憶體,引腳必須接地。它的64K程式記憶體全部為外部ROM(地址0000~FFFFH)。注意只要接地,不論什麼晶片,其功能降格為8031,晶片內部的ROM失效。由PC管理程式記憶體(ROM),216=64K。單片機複位後,PC的內容為0000H。ROM中有5個特殊的單元地址作為中斷入口地址。單片機原理及應用(Vol.1.0)*2.4單片機的記憶體(5)1000FFFF內部0000外部0FFF晶片外部最大60K8051/8751外部0000FFFF8051/8751/8031單片機的程式記憶體配置示意圖單片機原理及應用(Vol.1.0)*2.4.2單片機的片內數據記憶體(片內RAM)作用:MCS-51單片機片內RAM由128單元構成,用來存儲中間結果、或作為數據緩衝區(qū)和堆疊區(qū)使用。地址範圍為:00H-7FH片內RAM的分區(qū)

00-1FH32個單元為工作寄存器區(qū)

20-2FH16個單元為位尋址區(qū)

30-3FH80個單元為數據緩衝區(qū)2.4單片機的記憶體(6)單片機原理及應用(Vol.1.0)*2.4單片機的記憶體(7)數據緩衝區(qū)(80)位尋址區(qū)(16)工作寄存器區(qū)(32)2F307F201F00片內RAM分區(qū)示意圖單片機原理及應用(Vol.1.0)*1工作寄存器區(qū)(00-1FH)(也稱為通用寄存器區(qū))工作寄存器區(qū)包含4個工作寄存器組;每個工作寄存器組包含8個工作寄存器:

R0、R1、R2、R3、R4、R5、R6、R7,由PSW的第三位(PSW.3,RS0)和第四位(PSW.4,RS1)指出CPU當前使用的工作寄存器組。2.4單片機的記憶體(8)單片機原理及應用(Vol.1.0)*2.4單片機的記憶體(9)工作寄存器組3(BANK3)工作寄存器組2(BANK2)工作寄存器組1(BANK1)工作寄存器組0(BANK0)0007080F1017181FR0R1R2R3R4R5R6R7R0R1R2R3R4R5R6R7R0R1R2R3R4R5R6R7R0R1R2R3R4R5R6R7RS1當前工作寄存器組RS00工作寄存器組000工作寄存器組111工作寄存器組201工作寄存器組31當前工作寄存器組的選擇當前工作寄存組的選擇及工作寄存器組地址映射單片機原理及應用(Vol.1.0)*2.4單片機的記憶體(10)工作寄存器組的工作寄存器R0-R7與內RAM單元的對應關係:工作寄存器組0工作寄存器組1工作寄存器組2工作寄存器組3R000R101R202R707R404R303R505R606R008R109R20AR70FR40CR30BR50DR60ER010R111R212R717R414R313R515R616R018R119R21AR71FR41CR31BR51DR61E寄存器地址寄存器地址寄存器地址寄存器地址單片機原理及應用(Vol.1.0)*工作寄存器(R0~R7)的使用:

按寄存器(實際上是一個單元)訪問,在操作指令中,可作為目的運算元,源運算元使用,其中R0、R1還可以作為地址寄存器;

MOVR1,A MOV@R0,ACPU在任一時刻只能使用一個工作寄存器組,則其他工作寄存器組所對應的單元可作為RAM單元使用;複位後,由於PSW被清零,CPU使用工作寄存器組0中的R0~R7,即00~07H單元。2.4單片機的記憶體(11)單片機原理及應用(Vol.1.0)*2

位尋址區(qū)(20~2FH)

片內RAM中,20~2FH單元被開闢的位尋址區(qū);每一位具有一個自己的位地址,共16

8=128位。位尋址區(qū)位地址範圍為00~7FH,CPU可以對每一位直接操作。2.4單片機的記憶體(12)單片機原理及應用(Vol.1.0)*2.4單片機的記憶體(13)單元地址

D7D6D5D4D3D2D1D02C67666564636261602B5F5E5D5C5B5A59582A5756555453525150294F4E4D4C4B4A4948284746454443424140273F3E3D3C3B3A3938263736353433323130252F2E2D2C2B2A2928242726252423222120231F1E1D1C1B1A1918221716151413121110210F0E0D0C0B0A09082D6F6E6D6C6B6A69682007060504030201002E77767574737271702F7F7E7D7C7B7A7978內部RAM中20~2FH的位地址映射單片機原理及應用(Vol.1.0)*位地址區(qū)的使用: (I)在片內RAM中只有20~2FH單元的位能夠進行位操作,我們經常表示為20H.0,它與位地址00H是等價的。 (II)位尋址區(qū)16個單元也可以按單元訪問,所以,當位尋址區(qū)16個單元的128位未完全使用時,其剩餘單元也可作為RAM單元使用。2.4單片機的記憶體(14)單片機原理及應用(Vol.1.0)*3數據緩衝區(qū)(30~7FH)作為數據緩衝、數據暫存、作為堆疊區(qū)使用;這些單元只能按單元訪問。堆疊

堆疊:為了保護CPU執(zhí)行程式的現(xiàn)場,在記憶體中開闢了一個“先進後出”(後進先出)的區(qū)域;

堆疊的操作:入棧,出棧;

操作規(guī)則:先進後出; 堆疊由堆疊指針SP管理,它始終指向棧頂位置,一般情況下,將堆疊設在30H單元之後。程式設計時,最好設在片內RAM的末端,如MOVSP,#60H,以避免堆疊向上生成時覆蓋所存儲的數據。2.4單片機的記憶體(14)單片機原理及應用(Vol.1.0)*2.4.3單片機的專用寄存器(SFR)MCS-51晶片內部有21個可尋址的SFR(具有地址),它們離散的分佈在片內RAM80H~FFH範圍內,並與內RAM統(tǒng)一編址。MCS-51晶片內部還有1個不可尋址的SFR——PC。對SFR只能採用直接尋址方式,即按單元地址訪問的模式;部分SFR(單元地址能夠被8整除)具有位尋址功能。2.4單片機的記憶體(15)單片機原理及應用(Vol.1.0)*單片機的專用寄存器(SFR)及其單元地址SFR符號SFR名稱SFR對應單元ACC累加器E0HBB寄存器F0HPSW程式狀態(tài)字寄存器D0HDPTR數據指針83H/82HSP堆疊指針81HP0P0口80HP1P1口90HP2P2口A0HP3P3口B0HIP中斷優(yōu)先順序B8HIE中斷允許控制A8HSFR符號SFR名稱SFR對應單元TMODTimer工作方式89HTCONTimer控制88HTH0T0計數寄存器(H)8CHTL0T0計數寄存器(L)8AHTH1T1計數寄存器(H)8DHTL1T0計數寄存器(L)8BHSCON串行口控制98HSBUF串行口緩衝器99HPCON電源控制87H

2.4單片機的記憶體(15)單片機原理及應用(Vol.1.0)*單片機的專用寄存器(SFR)及其單元地址

凡是SFR的地址能被8整除的SFR都具有位尋址功能,因此,共有11個SFR具有位尋址功能,這些寄存器(單元)的每一位都有一個位地址。且SFR對應的單元地址為該SFR最低位的位地址。SFR的位尋址區(qū)地址是不連續(xù)的。2.4單片機的記憶體(15)單片機原理及應用(Vol.1.0)*SFR位尋址區(qū)地址映射SFR

D7D6D5D4D3D2D1D0ACCE7E6E5E4E3E2E1E0BF7F6F5F4F3F2F1F0單元地址PSWD7D6D5D4D3D2D1D0IPBFBEBDBCBBBAB9B8B8P3B7B6B5B4B3B2B1B0B0IEAFAEADACABAAA9A8A8P2A7A6A5A4A3A2A1A0A0SCON9F9E9D9C9B9A999898P19796959493929190TCON8F8E8D8C8B8A8988P08786858483828180908880D0E0F0CyACF0RS1RS0OV—P———PSPT1PX1PT0PX0P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0EA——ESET1EX1ET0EX0P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0SM0SM1SM2RENTB8RB8TIRITF1TR1TF0TR0IE1IT1IT0IE02.4單片機的記憶體(15)單片機原理及應用(Vol.1.0)*SFR的使用對於SFR以單元形式訪問時,只能採用直接尋址方式。如:

MOVSBUF,AMOV99H,A

二者是等價的。對於80~FFH區(qū)間未定義的單元,用戶不得使用。同樣,對於未定義位地址所對應的位操作也是無效的。在編程時,最好不要採用SFR作為中間寄存器暫存中間結果。2.4單片機的記憶體(15)單片機原理及應用(Vol.1.0)*

2.4.4單片機的位尋址空間

MCS-51位尋址空間由兩部分組成,位地址範圍為00~FFH。MCS-51位尋址空間片內RAM中20-2FH單元的128位,佔用位地址範圍:00~7FH;地址能被8整除的SFR具有位尋址功能,佔用位地址範圍:80~FFH2.4單片機的記憶體(15)單片機原理及應用(Vol.1.0)*

2.4.5單片機外部RAM及外部I/O口

單片機的又一個獨立的存儲空間,處於單片機的晶片之外,需要用硬體擴展的方法實現(xiàn),被稱為外部RAM,它與外部I/O口統(tǒng)一編址,共同佔用64K的地址空間。地址範圍:0000~FFFFH

對於單片機CPU來說,對外部RAM和外部I/O口的操作是相同的,我們單單從程式根本無法知道是對外部RAM的一個單元操作,還是對一個外部I/O口操作,在應用系統(tǒng)分析時,只有軟硬體結合,才能確定操作對象。2.4單片機的記憶體(15)單片機原理及應用(Vol.1.0)*

單片機晶片上的輸入輸出口有4個,P0,P1,P2和P3。它們的作用與單片機是否擴展有較大關系:(1)8051/8751不進行記憶體和I/O口擴展時

P0,P1,P2和P3可以全部作為I/O口使用,其中P3口具有第二功能,當P3口某些引腳作為第二功能使用時,不可再作為I/O口線使用。如P3.0和P3.1作為RXD和TXD時,不可再作為I/O口線使用。 (2)8031及8051/8751進行記憶體和I/O口擴展時

P0:低八位地址匯流排/數據匯流排

P2:高八位地址匯流排

P1:I/O口

P3:I/O口及第二功能2.5單片機的輸入輸出(I/O)口單片機原理及應用(Vol.1.0)*P0.0—P0.7:雙向I/O(內置場效應管上拉)尋址外部程式記憶體時分時作為雙向8位數據口和輸出低8位地址複用口;不接外部程式記憶體時可作為8位準雙向I/O口使用。引腳P0.X21DQCK/Q讀引腳讀鎖存器寫鎖存器內部匯流排地址/數據控制34Vcc2.5單片機的輸入輸出(I/O)口單片機原理及應用(Vol.1.0)*2.5單片機的輸入輸出(I/O)口21DQCK/Q讀引腳=1讀鎖存器寫鎖存器內部匯流排地址/數據控制引腳P0.X34控制=0時,此腳作輸入口(事先必須對它寫“1”)00100截止截止=0VccP0.0—P0.7:雙向I/O(內置場效應管上拉)

尋址外部程式記憶體時分時作為雙向8位數據口和輸出低8位地址複用口;不接外部程式記憶體時可作為8位準雙向I/O口使用。單片機原理及應用(Vol.1.0)*21DQCK/Q讀引腳=0讀鎖存器寫鎖存器內部匯流排地址/數據控制=1引腳P0.X34控制=1時,此腳作地址/數據複用口:(1)輸出地址/數據=0

時1011=0導通截止=0VccP0.0—P0.7:雙向I/O(內置場效應管上拉)

尋址外部程式記憶體時分時作為雙向8位數據口和輸出低8位地址複用口;不接外部程式記憶體時可作為8位準雙向I/O口使用。2.5單片機的輸入輸出(I/O)口單片機原理及應用(Vol.1.0)*21DQCK/Q讀引腳=0讀鎖存器寫鎖存器內部匯流排地址/數據控制=1引腳P0.X34控制=1時,此腳作地址/數據複用口:(1)輸出地址/數據=0

時1011=0導通截止=0VccP0.0—P0.7:雙向I/O(內置場效應管上拉)

尋址外部程式記憶體時分時作為雙向8位數據口和輸出低8位地址複用口;不接外部程式記憶體時可作為8位準雙向I/O口使用。2.5單片機的輸入輸出(I/O)口單片機原理及應用(自動化,Vol.1.0)*21DQCK/Q讀引腳=0讀鎖存器寫鎖存器內部匯流排地址/數據控制=1引腳P0.X34控制=1時,此腳作地址/數據複用口:(2)輸出地址/數據=1

時1100=1截止導通=1VccP0.0—P0.7:雙向I/O(內置場效應管上拉)

尋址外部程式記憶體時分時作為雙向8位數據口和輸出低8位地址複用口;不接外部程式記憶體時可作為8位準雙向I/O口使用。2.5單片機的輸入輸出(I/O)口單片機原理及應用(自動化,Vol.1.0)*21DQCK/Q讀引腳=1讀鎖存器寫鎖存器內部匯流排地址/數據控制=1引腳P0.X34控制=1時,此腳作地址/數據複用口:(3)輸入數據時,輸入指令將使引腳與內部匯流排直通VccP0.0—P0.7:雙向I/O(內置場效應管上拉)

尋址外部程式記憶體時分時作為雙向8位數據口和輸出低8位地址複用口;不接外部程式記憶體時可作為8位準雙向I/O口使用。2.5單片機的輸入輸出(I/O)口單片機原理及應用(自動化,Vol.1.0)*P2.0—P2.7:雙向I/O(內置了上拉電阻)

尋址外部程式記憶體時輸出高8位地址;不接外部程式記憶體時可作為8位準雙向I/O口使用。21DQCK/Q讀引腳讀鎖存器寫鎖存器內部匯流排地址高8位控制引腳P2.X3內部上拉電阻Vcc2.5單片機的輸入輸出(I/O)口單片機原理及應用(自動化,Vol.1.0)*21DQCK/Q讀引腳=0讀鎖存器寫鎖存器內部匯流排地址高8位控制

引腳P2.X控制=0時,此腳作通用輸出口:輸出=1時110截止3內部上拉電阻11Vcc=1=0P2.0—P2.7:雙向I/O(內置了上拉電阻)

尋址外部程式記憶體時輸出高8位地址;不接外部程式記憶體時可作為8位準雙向I/O口使用。2.5單片機的輸入輸出(I/O)口單片機原理及應用(自動化,Vol.1.0)*21DQCK/Q讀引腳=0讀鎖存器寫鎖存器內部匯流排地址高8位控制

引腳P2.X控制=0時,此腳作通用輸出口:輸出=0時001導通3內部上拉電阻00Vcc=0=0P2.0—P2.7:雙向I/O(內置了上拉電阻)

尋址外部程式記憶體時輸出高8位地址;不接外部程式記憶體時可作為8位準雙向I/O口使用。2.5單片機的輸入輸出(I/O)口單片機原理及應用(自動化,Vol.1.0)*21DQCK/Q讀引腳=0讀鎖存器寫鎖存器內部匯流排地址高8位控制=1

引腳P2.X控制=1時,此腳作高8位地址A8—A15輸出口:當輸出=1時10截止3內部上拉電阻1=1Vcc=1P2.0—P2.7:雙向I/O(內置了上拉電阻)

尋址外部程式記憶體時輸出高8位地址;不接外部程式記憶體時可作為8位準雙向I/O口使用。2.5單片機的輸入輸出(I/O)口單片機原理及應用(自動化,Vol.1.0)*21DQCK/Q讀引腳=0讀鎖存器寫鎖存器內部匯流排地址高8位控制=1

引腳P2.X01導通3內部上拉電阻0=0Vcc=0控制=1時,此腳作高8位地址A8—A15輸出口:當輸出=0時P2.0—P2.7:雙向I/O(內置了上拉電阻)

尋址外部程式記憶體時輸出高8位地址;不接外部程式記憶體時可作為8位準雙向I/O口使用。2.5單片機的輸入輸出(I/O)口單片機原理及應用(自動化,Vol.1.0)*P3.0—P3.7:雙功能口(內置了上拉電阻)

它具有特定的第二功能。在不使用它的第二功能時它就是普通的通用準雙向I/O口。21DQCK/Q讀引腳讀鎖存器寫鎖存器內部匯流排第二功能輸出引腳P3.X3內部上拉電阻Vcc第二功能輸入42.5單片機的輸入輸出(I/O)口單片機原理及應用(自動化,Vol.1.0)*21DQCK/Q讀引腳讀鎖存器寫鎖存器內部匯流排第二功能輸出(WR,RD,TxD)引腳P3.X3內部上拉電阻Vcc4第二功能輸出時,內部自動D=1111反相器P3.0—P3.7:雙功能口(內置了上拉電阻)

它具有特定的第二功能。在不使用它的第二功能時它就是普通的通用準雙向I/O口。2.5單片機的輸入輸出(I/O)口單片機原理及應用(自動化,Vol.1.0)*21DQCK/Q讀引腳讀鎖存器寫鎖存器內部匯流排此端自動=1引腳P3.X3內部上拉電阻Vcc

第二功能輸入(RxD,T0,T1,INT0,INT1)4第二功能輸入時,信號經緩衝器4直接進入內匯流排1110截止P3.0—P3.7:雙功能口(內置了上拉電阻)

它具有特定的第二功能。在不使用它的第二功能時它就是普通的通用準雙向I/O口。2.5單片機的輸入輸出(I/O)口單片機原理及應用(自動化,Vol.1.0)*P1.0—P1.7:準雙向I/O口(內置了上拉電阻)

輸出時一切照常,僅在作輸入口用時要先對其寫“1”。21DQCK/Q讀引腳讀鎖存器寫鎖存器內部匯流排Vcc引腳P1.X內部上拉電阻2.5單片機的輸入輸出(I/O)口單片機原理及應用(自動化,Vol.1.0)*21DQCK/Q讀引腳讀鎖存器寫鎖存器內部匯流排Vcc引腳P1.X內部上拉電阻輸出數據=1時110截止=1P1.0—P1.7:準雙向I/O口(內置了上拉電阻)

輸出時一切照常,僅在作輸入口用時要先對其寫“1”。2.5單片機的輸入輸出(I/O)口單片機原理及應用(自動化,Vol.1.0)*21DQCK/Q讀引腳讀鎖存器寫鎖存器內部匯流排Vcc引腳P1.X內部上拉電阻輸出數據=0時001=0導通P1.0—P1.7:準雙向I/O口(內置了上拉電阻)

輸出時一切照常,僅在作輸入口用時要先對其寫“1”。2.5單片機的輸入輸出(I/O)口單片機原理及應用(自動化,Vol.1.0)*21DQCK/Q讀引腳=1讀鎖存器寫鎖存器內部匯流排Vcc引腳P1.X內部上拉電阻輸入數據時,要先對其寫“1”110截止P1.0—P1.7:準雙向I/O口(內置了上拉電阻)

輸出時一切照常,僅在作輸入口用時要先對其寫“1”。2.5單片機的輸入輸出(I/O)口單片機原理及應用(自動化,Vol.1.0)*引腳第二功能P3.0RxD:串行口接收數據輸入端P3.1TxD:串行口發(fā)送數據輸出端P3.2INT0:外部中斷申請輸入端0P3.3INT1:外部中斷申請輸入端1P3.4T0:外部計數脈衝輸入端0P3.5T1:外部計數脈衝輸入端1P3.6WR:寫外設控制信號輸出端P3.7RD:讀外設控制信號輸出端2.5單片機的輸入輸出(I/O)口P3口第二功能單片機原理及應用(Vol.1.0)*P0、P1、P2和P3的使用(1)驅動能力:

P0:雙向,8個TTLP1、P2和P3:準雙向,4個TTL

(2)作為輸入口使用,必須先寫1,再讀引腳狀態(tài)。2.5單片機的輸入輸出口單片機原理及應

溫馨提示

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

評論

0/150

提交評論