《單片機(jī)原理與應(yīng)用》02-1_第1頁
《單片機(jī)原理與應(yīng)用》02-1_第2頁
《單片機(jī)原理與應(yīng)用》02-1_第3頁
《單片機(jī)原理與應(yīng)用》02-1_第4頁
《單片機(jī)原理與應(yīng)用》02-1_第5頁
已閱讀5頁,還剩107頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

單片機(jī)原理與應(yīng)用第2章單片機(jī)結(jié)構(gòu)及原理本章內(nèi)容:2.1單片機(jī)結(jié)構(gòu)

2.1.1單片機(jī)組成及結(jié)構(gòu)

2.1.2引腳定義及功能2.2單片機(jī)的工作原理

2.2.1指令與程序概述

2.2.2CPU的工作原理

2.2.3單片機(jī)執(zhí)行程序過程2.3存儲器2.4特殊功能寄存器SFR2.5CPU時序及時鐘電路2.6復(fù)位和復(fù)位電路2.7輸入/輸出端口結(jié)構(gòu)2.880C51系列單片機(jī)的低功耗方式回顧:

單片機(jī)是單片微型計算機(jī)的簡稱。單片機(jī)主要應(yīng)用于控制領(lǐng)域,它的結(jié)構(gòu)與指令功能都是按照工業(yè)控制要求設(shè)計的,故又稱為微控制器(MicroControllerUnit)。在國際上,“微控制器”的叫法更通用些,在我國比較習(xí)慣“單片機(jī)”這一名稱。

由于單片機(jī)在應(yīng)用時通常是被控系統(tǒng)的核心并融入其中,即以嵌入的方式工作,為了強調(diào)其“嵌入”的特點,也常常將單片機(jī)稱為嵌入式微控制器。

教學(xué)目的:了解80C51系列單片機(jī)的內(nèi)部結(jié)構(gòu)、工作原理、存儲器結(jié)構(gòu)、時序及復(fù)位電路等硬件內(nèi)容。教學(xué)重點1.內(nèi)部主要組成及工作原理; 2.存儲器結(jié)構(gòu)特點; 3.I/O的復(fù)用結(jié)構(gòu),及應(yīng)用特點; 4.時序及復(fù)位電路的作用。教學(xué)難點1.特殊功能寄存器的作用; 2.堆棧及堆棧指針的作用。80C51單片機(jī)的結(jié)構(gòu)1.典型單片機(jī)產(chǎn)品簡介——MCS-51單片機(jī)系列

MCS-51可分為兩個子系列和4種類型,如表1-1所示。按資源的配置數(shù)量,MCS-51系列分為51和52兩個子系列,其中51子系列是基本型,而52子系列屬于增強型。表1-1MCS-51系列單片機(jī)分類

資源配置子系列片內(nèi)ROM的形式片內(nèi)ROM容量片內(nèi)RAM容量定時器與計數(shù)器中斷源無ROMEPROME2PROM8×51系列80318051875189514KB128B2×1658×C51系列80C3180C5187C5189C514KB128B2×1658×52系列80328052875289528KB256B3×1668×C252系列80C23280C25287C25289C2528KB256B3×167

MCS-51子系列包含4個產(chǎn)品,這4個產(chǎn)品具有不同的應(yīng)用特性。8051:單片機(jī)8051內(nèi)部包含了4KB的ROM、128B的RAM、21個特殊功能寄存器、4個8位并行口、一個全雙工串行口、兩個16位定時器/計數(shù)器以及一個處理功能很強的中央處理器,是一臺完整的微型計算機(jī)8751:是以4KB的EPROM代替4KBROM的8051。8951:是以4KB的E2PROM(或FlashROM)代替4KBROM的8051??捎秒姷姆椒▽懭牒颓宄齼?nèi)容。(P26)8031:是內(nèi)部無ROM的8051。單片機(jī)8031不構(gòu)成完整計算機(jī),必須外接EPROM作為程序存儲器。52子系列也包含4個產(chǎn)品,分別是51子系列的增強型。由于資源數(shù)量的增加,芯片的功能有所增強。片內(nèi)ROM容量從4KB增加到8KB;RAM容量從128B增加到256B;定時器數(shù)目從2個增加到3個;中斷源從5個增加到6個等。單片機(jī)的制造工藝

制造單片機(jī)的工藝只有兩種:HMOS工藝和CHMOS工藝。早期的MCS-51系列芯片都采用HMOS工藝,即高密度、短溝道MOS工藝。8051、8751、8031、8951等產(chǎn)品均屬于HMOS工藝制造的產(chǎn)品。CHMOS工藝是CMOS和HMOS的結(jié)合,除保持了HMOS工藝的高密度、高速度之外,還具有CMOS工藝低功耗的特點。例如HMOS工藝制造的8051芯片的功耗為630mW,而用CHMOS工藝制造的80C51芯片的功耗為120mW,這么低的功耗用一粒鈕扣電池就可以工作。單片機(jī)型號中包含有“C”的產(chǎn)品就是指它的制造工藝是CHMOS工藝。例如80C51就是指用CHMOS工藝制造的8051。80C51單片機(jī)系列

80C51單片機(jī)系列是在MCS-51系列的基礎(chǔ)上發(fā)展起來的。最早推出80C51系列芯片的是Intel公司,并且作為MCS-51系列的一部分,按原MCS-51系列芯片的規(guī)則命名,例如80C51、80C31、87C51等(至于89C51,我們把它歸入89系列單片機(jī),將在下一節(jié)介紹)。后來越來越多的公司生產(chǎn)80C51芯片,而且型號的命名已面目全非,功能上也做了不同程度的改進(jìn),如增加了A/D轉(zhuǎn)換、高速I/O口等。有些還在總線結(jié)構(gòu)上做了重大改進(jìn),出現(xiàn)了廉價的非總線型單片機(jī)芯片。但是萬變不離其宗。CHMOS工藝芯片80C51/80C31/87C51/89C51的基本特征是低功耗、允許的電源電壓波動范圍較大(為5V±20%),并有三種功耗控制方式(增加了待機(jī)和掉電保護(hù)兩種方式)。習(xí)慣上,我們?nèi)匀话?0C51系列作為MCS-51的子系列。AT89系列單片機(jī)

AT89系列單片機(jī)是ATMEL公司的8位Flash單片機(jī)系列。這個系列單片機(jī)的最大特點是在片內(nèi)含有Flash存儲器,而其他方面和MCS-51沒有太大的區(qū)別。該系列有著十分廣泛的用途,特別是在便攜式、省電和特殊信息保存的儀器和系統(tǒng)中顯得更為有用。AT89系列單片機(jī)的特點(1)內(nèi)含有Flash存儲器由于片內(nèi)含有Flash存儲器,因此在系統(tǒng)開發(fā)過程中可以十分容易地進(jìn)行程序的修改。同時,在系統(tǒng)工作過程中,能有效地保存數(shù)據(jù)信息,即使外界電源損壞也不影響信息的保存。(2)和80C51插座兼容AT89系列單片機(jī)的引腳和MCS-51系列單片機(jī)的引腳是一樣的。只要用相同引腳的AT89系列單片機(jī)就可以取代MCS-51系列單片機(jī)。(3)靜態(tài)時鐘方式AT89系列單片機(jī)采用靜態(tài)時鐘方式,節(jié)省電能,這對于降低便攜式產(chǎn)品的功耗十分有用。

AT89S51/S52的基本組成功能框圖80C51單片機(jī)的組成及結(jié)構(gòu)一、基本組成中央處理器CPU:8位,運算和控制功能。CPU由運算器和控制器兩部分電路組成。內(nèi)部RAM:共256個RAM單元,用戶使用前128個單元,用于存放可讀寫數(shù)據(jù),后128個單元被專用寄存器占用。內(nèi)部ROM:AT89S51/C51

4KB閃存,用于存放程序、原始數(shù)據(jù)和表格。定時/計數(shù)器:兩三個16位的定時/計數(shù)器,即定時器0和定時器1。它們可以用于定時控制、延時以及對外部事件的計數(shù)和檢測等。并行I/O口:4個8位的I/O口P0、P1、P2、P3。每一

條I/O口都能獨立地用作輸入或輸出。有些I/O口還具有其它功能。每個口都由一個鎖存器和一個驅(qū)動器組成。串行口:AT89S51/S52單片機(jī)具有一個UART通用異步工作方式的全雙工串行通信接口,可以同時發(fā)送和接收數(shù)據(jù)。串行口:AT89S51/S52單片機(jī)具有一個ISP串行通信接口,用于實現(xiàn)串行在線下載程序。時鐘電路:可產(chǎn)生單片機(jī)所需的時鐘脈沖序列,允許晶振頻率6MHZ和12MHZ中斷控制系統(tǒng):5個中斷源(外中斷2個,定時/計數(shù)中斷2個,串行中斷1個)看門狗在由單片機(jī)構(gòu)成的微型計算機(jī)系統(tǒng)中,由于單片機(jī)的工作常常會受到來自外界電磁場的干擾,造成程序的跑飛,而陷入死循環(huán),程序的正常運行被打斷,由單片機(jī)控制的系統(tǒng)無法繼續(xù)工作,會造成整個系統(tǒng)陷入停滯狀態(tài),發(fā)生不可預(yù)料的后果,所以出于對單片機(jī)運行狀態(tài)進(jìn)行實時監(jiān)測的考慮,便產(chǎn)生了一種專門用于監(jiān)測單片機(jī)程序運行狀態(tài)的芯片,俗稱"看門狗"(watchdog)80C51單片機(jī)信號引腳簡介

P3口線的第二功能為多功能引腳,其8個引腳均具有專門的第二功能。(P57表3.8)VCCVSSXTAL2

XTAL1RSTP0.0

P0.1

P0.2P0.3P0.4P0.5P0.6P0.7P1.0

P1.1

P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0ALEP3.0

P3.1

P3.2P3.3P3.4P3.5P3.6P3.7(2)、時鐘電路:XTAL1、XTAL2(3)、復(fù)位引腳:RST(4)、并行口:P0、P1、P2、P3(7)、ALE:地址鎖存控制信號(1)、電源引腳:VCC(+5V)、VSS(地)EAPSEN(5)、EA:訪問程序存儲控制信號(6)、PSEN:外部ROM讀選通信號RXD/

TXD/

INT0/INT1/

T0/

T1/

WR/

RD/1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

3130292827262524242221803180C51875189C511、管腳圖MCS-51單片機(jī)的引腳定義及功能XTAL1:接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,若使用外部TTL時鐘時,該引腳為外部時鐘的輸入端。XTAL2:接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出,若使用外部TTL時鐘時,該引腳必須懸空。振蕩電路的頻率為晶體固有頻率C30PFC30PF6MHZ89C51X1X2VCC外時鐘信號5.1K89c51X1X2計算機(jī)的整個工作是在時鐘信號的驅(qū)動下,按照嚴(yán)格的時序有規(guī)律地一個節(jié)拍一個節(jié)拍地執(zhí)行各種操作。各種計算機(jī)均有自己的固定時序和定時電路。同樣單片機(jī)內(nèi)部也設(shè)有定時電路,只需外接振蕩元件即可工作。外接振蕩元件一般選用晶體振蕩器,也可用外部時鐘源作為振蕩元件。近年來,有的單片機(jī)將振蕩元件也集成在芯片內(nèi)部,這樣大大縮小了單片機(jī)的體積,同時也方便了使用。當(dāng)外接晶體時,接晶體和微調(diào)電容的一端。2.時鐘電路引腳(XTAL1,XTAL2)

XTAL1(I,19):振蕩器反向放大器輸入端。當(dāng)采用外部時鐘時,此腳作為驅(qū)動端,接外部時鐘。XTAL2(I,18):振蕩器反向放大器輸出端。當(dāng)外接晶體時,接晶體和微調(diào)電容的一端。當(dāng)采用外部時鐘時,此腳懸空。振蕩電路的頻率就是晶體固有頻率。單片機(jī)正常工作時,該引腳應(yīng)有脈沖信號輸出。80C51單片機(jī)信號引腳簡介

P3口線的第二功能VCCVSSXTAL2

XTAL1RSTP0.0

P0.1

P0.2P0.3P0.4P0.5P0.6P0.7P1.0

P1.1

P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0ALEP3.0

P3.1

P3.2P3.3P3.4P3.5P3.6P3.7(2)、振蕩電路:XTAL1、XTAL2(3)、復(fù)位引腳:RST(4)、并行口:P0、P1、P2、P3(7)、ALE:地址鎖存控制信號(1)、電源線:VCC(+5V)、VSS(地)EAPSEN(5)、EA:訪問程序存儲控制信號(6)、PSEN:外部ROM讀選通信號RXD/

TXD/

INT0/INT1/

T0/

T1/

WR/

RD/1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

3130292827262524242221803180C51875189C511、管腳圖3.1.2MCS-51單片機(jī)的引腳定義及功能RST---RST是復(fù)位信號輸人端。當(dāng)此輸人端保持兩個機(jī)器周期(24個振蕩周期)的高電平時,就可以完成復(fù)位操作。單片機(jī)的復(fù)位操作使單片機(jī)進(jìn)入初始化狀態(tài),其中包括使程序計數(shù)器PC=0000H,這表明程序從0000H地址單元開始執(zhí)行。21個特殊功能寄存器復(fù)位后的狀態(tài)為確定值。80C51單片機(jī)信號引腳簡介

P3口線的第二功能MCS-51單片機(jī)有4個雙向并行的8位I/O口P0~P3,P0口為三態(tài)雙向口,可驅(qū)動8個TTL電路,P1、P2、P3口為準(zhǔn)雙向口(作為輸入時,口線被拉成高電平,故稱為準(zhǔn)雙向口),其負(fù)載能力為4個TTL電路。VCCVSSXTAL2

XTAL1RSTP0.0

P0.1

P0.2P0.3P0.4P0.5P0.6P0.7P1.0

P1.1

P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0ALEP3.0

P3.1

P3.2P3.3P3.4P3.5P3.6P3.7(2)、振蕩電路:XTAL1、XTAL2(3)、復(fù)位引腳:RST(4)、并行口:P0、P1、P2、P3(7)、ALE:地址鎖存控制信號(1)、電源線:VCC(+5V)、VSS(地)EAPSEN(5)、EA:訪問程序存儲控制信號(6)、PSEN:外部ROM讀選通信號RXD/

TXD/

INT0/INT1/

T0/

T1/

WR/

RD/1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

3130292827262524242221803180C51875189C511、管腳圖3.1.2MCS-51單片機(jī)的引腳定義及功能ALE地址鎖存允許輸出/編程脈沖輸入端1、當(dāng)8051由P0口送出低8位地址碼時,8051由ALE送出一高電平信號,作為外部鎖存器的觸發(fā)信號。在單片機(jī)(CPU)與外界交換信息的過程中,地址信息必須維持不變,而P0口不能維持低8位地址的不變,所以應(yīng)該外接鎖存器,將低8位地址鎖住。當(dāng)8051送出低8位地址的時候,鎖存器應(yīng)該處于送數(shù)狀態(tài);在低8位地址消失之前,鎖存器應(yīng)該處于鎖存狀態(tài)。2、當(dāng)片外存儲器存取數(shù)據(jù)時,ALE為低8位地址輸出鎖存信號;當(dāng)片外存儲器不存取數(shù)據(jù)時,ALE輸出固定頻率的脈沖信號,頻率為1/6的時鐘振蕩頻率固定輸出正脈沖。3.燒錄程序時,用于輸入編程脈沖.80C51單片機(jī)信號引腳簡介

P3口線的第二功能VCCVSSXTAL2

XTAL1RSTP0.0

P0.1

P0.2P0.3P0.4P0.5P0.6P0.7P1.0

P1.1

P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0ALEP3.0

P3.1

P3.2P3.3P3.4P3.5P3.6P3.7(2)、振蕩電路:XTAL1、XTAL2(3)、復(fù)位引腳:RST(4)、并行口:P0、P1、P2、P3(7)、ALE:地址鎖存控制信號(1)、電源線:VCC(+5V)、VSS(地)EAPSEN(5)、EA:訪問程序存儲控制信號(6)、PSEN:外部ROM讀選通信號RXD/

TXD/

INT0/INT1/

T0/

T1/

WR/

RD/1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

3130292827262524242221803180C51875189C511、管腳圖3.1.2MCS-51單片機(jī)的引腳定義及功能它是外部程序存儲器ROM的讀選通信號。在執(zhí)行訪問外部ROM指令時,會自動產(chǎn)生PSEN信號;而在訪問外部數(shù)據(jù)存儲器RAM或訪問內(nèi)部ROM時,不產(chǎn)生PSEN信號。80C51單片機(jī)信號引腳簡介

P3口線的第二功能VCCVSSXTAL2

XTAL1RSTP0.0

P0.1

P0.2P0.3P0.4P0.5P0.6P0.7P1.0

P1.1

P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0ALEP3.0

P3.1

P3.2P3.3P3.4P3.5P3.6P3.7(2)、振蕩電路:XTAL1、XTAL2(3)、復(fù)位引腳:RST(4)、并行口:P0、P1、P2、P3(7)、ALE:地址鎖存控制信號(1)、電源引腳:VCC(+5V)、VSS(地)EAPSEN(5)、EA:訪問程序存儲控制信號(6)、PSEN:外部ROM讀選通信號RXD/

TXD/

INT0/INT1/

T0/

T1/

WR/

RD/1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

3130292827262524242221803180C51875189C511、管腳圖3.1.2MCS-51單片機(jī)的引腳定義及功能內(nèi)外程序存儲器選擇。EA訪問外ROM控制信號,當(dāng)EA為高電平時,加電后80C51從片內(nèi)ROM的0000H單元開始取指令,即從片內(nèi)ROM的0000H開始執(zhí)行程序;若EA為的低電平,則加電后80C51從片外ROM的0000H單元開始取指令,故此時片外ROM的編制應(yīng)該從0000H開始;80C51單片機(jī)信號引腳簡介

P3口線為多功能引腳,可自動切換用作數(shù)據(jù)總線、地址總線、控制總線和或I/O接口外部引腳。VCCVSSXTAL2

XTAL1RSTP0.0

P0.1

P0.2P0.3P0.4P0.5P0.6P0.7P1.0

P1.1

P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0ALEP3.0

P3.1

P3.2P3.3P3.4P3.5P3.6P3.7(2)、振蕩電路:XTAL1、XTAL2(3)、復(fù)位引腳:RST(4)、并行口:P0、P1、P2、P3(7)、ALE:地址鎖存控制信號(1)、電源線:VCC(+5V)、VSS(地)EAPSEN(5)、EA:訪問程序存儲控制信號(6)、PSEN:外部ROM讀選通信號RXD/

TXD/

INT0/INT1/

T0/

T1/

WR/

RD/1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

3130292827262524242221803180C51875189C511、管腳圖3.1.2MCS-51單片機(jī)的引腳定義及功能I/O引腳P0口:P0.0~P0.7,39~32腳,外接存儲器時作地址/數(shù)據(jù)分時使用口線;不接外部存儲器時,可用作為8位準(zhǔn)雙向I/O口。P1口:P1.0~P1.7,1~8腳,8位準(zhǔn)雙向I/O口。P2口:P2.0~P2.7,21~28腳,8位準(zhǔn)雙向I/O口。外接存儲器時作為高8位地址總線。P3口:P3.0~P3.7,10~17腳,8位準(zhǔn)雙向I/O口,出于芯片引腳數(shù)的限制,P3口具有第二輸出、輸入功能。2.2單片機(jī)的工作原理

單片機(jī)是通過執(zhí)行程序來工作的,執(zhí)行不同的程序就能完成不同的任務(wù)。因此單片機(jī)執(zhí)行程序的過程實際上也體現(xiàn)了單片機(jī)的工作原理。

2.2單片機(jī)的工作原理2.2.1指令與程序概述(P21)指令:規(guī)定計算機(jī)執(zhí)行某種操作的命令。CPU就是根據(jù)指令來指揮和控制計算機(jī)個部分協(xié)調(diào)的動作,以完成規(guī)定的操作。指令由二進(jìn)制代碼表示,通常分為操作碼和操作數(shù)兩部分。計算機(jī)全部指令的集合稱為指令系統(tǒng)。程序是根據(jù)任務(wù)要求有序地編排指令的集合,而程序的編制稱為“程序設(shè)計”。

2.2單片機(jī)的工作原理

2.2.2CPU的工作原理( P22)

CPU即中央處理器的簡稱,是單片機(jī)的核心部件,它完成各種運算和控制操作,CPU由運算器和控制器兩部分電路組成??刂破鞲鶕?jù)指令碼產(chǎn)生控制信號,使運算器、存儲器、輸入、輸出接口之間能自動協(xié)調(diào)的工作。運算器用于算術(shù)運算、邏輯運算以及位操作能力。1.控制器(P22)是CPU的大腦中樞,主要由控制部件、程序計數(shù)器PC、指令寄存器IR、指令譯碼器ID、時鐘發(fā)生器、數(shù)據(jù)指針DPTR、堆棧指針SP等組成。功能:從存儲器中逐條取指令,對指令進(jìn)行譯碼,并通過定時和控制電路在規(guī)定的時刻發(fā)出各種操作所需的內(nèi)部和外部控制信號,協(xié)調(diào)各部分的工作,從而使指令得以執(zhí)行。通道0驅(qū)動器通道2驅(qū)動器RAM地址鎖存器RAM通道0鎖存器通道2鎖存器ROM/EPROMB寄存器程序地址寄存器緩沖器PC遞增器程序計數(shù)器PC0驅(qū)動器DPTR指針VCCGNDP1.0~P1.7堆棧指針SPACCTMP2PSW通道3鎖存器通道1鎖存器通道1驅(qū)動器通道3驅(qū)動器TMP1SCONTMODPCONTCONTL0TH1TH0TL1IESBUF(TX/RX)IP中斷、串行口和定時器邏輯振蕩器P3.0~P3.7RSTEAALEPSENXTAL2XTAL1ALU(+5V)指令寄存器定時和控制邏輯指令譯碼器圖2.2MCS-51片內(nèi)總體結(jié)構(gòu)框圖通道0驅(qū)動器通道2驅(qū)動器RAM地址鎖存器RAM通道0鎖存器通道2鎖存器ROM/EPROMB寄存器程序地址寄存器緩沖器PC遞增器程序計數(shù)器PC0驅(qū)動器DPTR指針VCCGNDP1.0~P1.7堆棧指針SPACCTMP2PSW通道3鎖存器通道1鎖存器通道1驅(qū)動器通道3驅(qū)動器TMP1SCONTMODPCONTCONTL0TH1TH0TL1IESBUF(TX/RX)IP中斷、串行口和定時器邏輯振蕩器P3.0~P3.7RSTEAALEPSENXTAL2XTAL1ALU(+5V)指令寄存器定時和控制邏輯指令譯碼器圖2-2MCS-51片內(nèi)總體結(jié)構(gòu)框圖1、16位寄存器2、存放下一條將要執(zhí)行的指令地址.程序中的指令是按照順序存放在存儲器中的某個連續(xù)區(qū)域.每條指令都有自己的地址,CPU根據(jù)PC中的指令地址從存儲器中取出將要執(zhí)行的指令.3、具有自動加1功能,從而指向下一條將要執(zhí)行的指令地址.4、PC的值可以修改,一般程序是按順序執(zhí)行指令的.若改變了PC的值,則程序?qū)⒉辉侔错樞驁?zhí)行。

通道0驅(qū)動器通道2驅(qū)動器RAM地址鎖存器RAM通道0鎖存器通道2鎖存器ROM/EPROMB寄存器程序地址寄存器緩沖器PC遞增器程序計數(shù)器PC0驅(qū)動器DPTR指針VCCGNDP1.0~P1.7堆棧指針SPACCTMP2PSW通道3鎖存器通道1鎖存器通道1驅(qū)動器通道3驅(qū)動器TMP1SCONTMODPCONTCONTL0TH1TH0TL1IESBUF(TX/RX)IP中斷、串行口和定時器邏輯振蕩器P3.0~P3.7RSTEAALEPSENXTAL2XTAL1ALU(+5V)指令寄存器定時和控制邏輯指令譯碼器圖2-2MCS-51片內(nèi)總體結(jié)構(gòu)框圖IR:用來存放當(dāng)前正在執(zhí)行的指令代碼。ID:用來對指令代碼進(jìn)行分析、譯碼,根據(jù)指令譯碼的結(jié)果,輸出相應(yīng)的控制信號。P0驅(qū)動器P2驅(qū)動器RAM地址鎖存器RAMP0鎖存器P2鎖存器ROM/EPROMB寄存器程序地址寄存器緩沖器PC增1程序計數(shù)器PCDPTR指針VCCGNDP1.0~P1.7堆棧指針SPACCTMP2PSWP3鎖存器P1鎖存器P1驅(qū)動器P3驅(qū)動器TMP1SCONTMODPCONTCONTL0TH1TH0TL1IESBUF(TX/RX)IP中斷、串行口和定時器邏輯振蕩器P3.0~P3.7RSTEAALEPSENXTAL2XTAL1ALU(+5V)指令寄存器定時和控制邏輯指令譯碼器圖2-2MCS-51片內(nèi)總體結(jié)構(gòu)框圖1、SP稱為堆棧指針,8位寄存器2、SP用來存放堆棧棧頂?shù)牡刂贰Mǖ?驅(qū)動器通道2驅(qū)動器RAM地址鎖存器RAM通道0鎖存器通道2鎖存器ROM/EPROMB寄存器程序地址寄存器緩沖器PC遞增器程序計數(shù)器PC0驅(qū)動器DPTR指針VCCGNDP1.0~P1.7堆棧指針SPACCTMP2PSW通道3鎖存器通道1鎖存器通道1驅(qū)動器通道3驅(qū)動器TMP1SCONTMODPCONTCONTL0TH1TH0TL1IESBUF(TX/RX)IP中斷、串行口和定時器邏輯振蕩器P3.0~P3.7RSTEAALEPSENXTAL2XTAL1ALU(+5V)指令寄存器定時和控制邏輯指令譯碼器圖2-2MCS-51片內(nèi)總體結(jié)構(gòu)框圖1、數(shù)據(jù)指針DPTR是一個16位的專用寄存器,其高位字節(jié)寄存器用DPH表示,低位字節(jié)寄存器用DPL表示。2、既可作為一個16位寄存器DPTR來處理,也可作為兩個獨立的8位寄存器DPH和DPL來處理。3、DPTR主要用來存放16位地址,當(dāng)對64KB外部數(shù)據(jù)存儲器空間尋址時,作為間址寄存器用。在訪問程序存儲器時,用作基址寄存器。2.運算器運算器由8位算術(shù)邏輯運算單元ALU(ArithmeticLogicUnit)、8位累加器ACC(Accumulator)、8位寄存器B、程序狀態(tài)字寄存器PSW(ProgramStatusWord)、8位暫存寄存器TMP1和TMP2等組成。主要進(jìn)行數(shù)據(jù)的處理和加工。運算器通道0驅(qū)動器通道2驅(qū)動器RAM地址鎖存器RAM通道0鎖存器通道2鎖存器ROM/EPROMB寄存器程序地址寄存器緩沖器PC遞增器程序計數(shù)器PC0驅(qū)動器DPTR指針VCCGNDP1.0~P1.7堆棧指針SPACCTMP2PSW通道3鎖存器通道1鎖存器通道1驅(qū)動器通道3驅(qū)動器TMP1SCONTMODPCONTCONTL0TH1TH0TL1IESBUF(TX/RX)IP中斷、串行口和定時器邏輯振蕩器P3.0~P3.7RSTEAALEPSENXTAL2XTAL1ALU(+5V)指令寄存器定時和控制邏輯指令譯碼器圖2-2MCS-51片內(nèi)總體結(jié)構(gòu)框圖內(nèi)部總線運算器由8位算術(shù)邏輯運算單元ALU(ArithmeticLogicUnit)、8位累加器ACC(Accumulator)、8位寄存器B、程序狀態(tài)字寄存器PSW(ProgramStatusWord)、8位暫存寄存器TMP1和TMP2等組成。主要進(jìn)行數(shù)據(jù)的處理和加工。運算器通道0驅(qū)動器通道2驅(qū)動器RAM地址鎖存器RAM通道0鎖存器通道2鎖存器ROM/EPROMB寄存器程序地址寄存器緩沖器PC遞增器程序計數(shù)器PC0驅(qū)動器DPTR指針VCCGNDP1.0~P1.7堆棧指針SPACCTMP2PSW通道3鎖存器通道1鎖存器通道1驅(qū)動器通道3驅(qū)動器TMP1SCONTMODPCONTCONTL0TH1TH0TL1IESBUF(TX/RX)IP中斷、串行口和定時器邏輯振蕩器P3.0~P3.7RSTEAALEPSENXTAL2XTAL1ALU(+5V)指令寄存器定時和控制邏輯指令譯碼器圖2-2MCS-51片內(nèi)總體結(jié)構(gòu)框圖內(nèi)部總線算術(shù)邏輯運算部件主要用來完成數(shù)據(jù)的算術(shù)和邏輯運算。ALU有2個輸入端和2個輸出端,其中一端接至累加器,接收由累加器送來的一個操作數(shù);另一端接收TMP中的第二個操作數(shù)。參加運算的操作數(shù)在ALU中進(jìn)行規(guī)定的操作運算,運算結(jié)束后,一方面將結(jié)果送至累加器,同時將操作結(jié)果的特征狀態(tài)送標(biāo)志寄存器。

運算器通道0驅(qū)動器通道2驅(qū)動器RAM地址鎖存器RAM通道0鎖存器通道2鎖存器ROM/EPROMB寄存器程序地址寄存器緩沖器PC遞增器程序計數(shù)器PC0驅(qū)動器DPTR指針VCCGNDP1.0~P1.7堆棧指針SPACCTMP2PSW通道3鎖存器通道1鎖存器通道1驅(qū)動器通道3驅(qū)動器TMP1SCONTMODPCONTCONTL0TH1TH0TL1IESBUF(TX/RX)IP中斷、串行口和定時器邏輯振蕩器P3.0~P3.7RSTEAALEPSENXTAL2XTAL1ALU(+5V)指令寄存器定時和控制邏輯指令譯碼器圖2-2MCS-51片內(nèi)總體結(jié)構(gòu)框圖內(nèi)部總線1、ACC:8位專用寄存器2、累加器是一個特殊的寄存器,它的字長和微處理器的字長相同,累加器具有輸入/輸出和移位功能,微處理器采用累加器結(jié)構(gòu)可以簡化某些邏輯運算。作ALU的一個輸入端,同時ALU的輸出運算結(jié)果也送到ACC。3、由于所有運算的數(shù)據(jù)都要通過累加器,故累加器在微處理器中占有很重要的位置,最忙。運算器通道0驅(qū)動器通道2驅(qū)動器RAM地址鎖存器RAM通道0鎖存器通道2鎖存器ROM/EPROMB寄存器程序地址寄存器緩沖器PC遞增器程序計數(shù)器PC0驅(qū)動器DPTR指針VCCGNDP1.0~P1.7堆棧指針SPACCTMP2PSW通道3鎖存器通道1鎖存器通道1驅(qū)動器通道3驅(qū)動器TMP1SCONTMODPCONTCONTL0TH1TH0TL1IESBUF(TX/RX)IP中斷、串行口和定時器邏輯振蕩器P3.0~P3.7RSTEAALEPSENXTAL2XTAL1ALU(+5V)指令寄存器定時和控制邏輯指令譯碼器圖2-2MCS-51片內(nèi)總體結(jié)構(gòu)框圖內(nèi)部總線1、8位寄存器2、在進(jìn)行乘除法運算時,存放參與運算的一個操作數(shù)3、除此之外,作為一般REG使用運算器通道0驅(qū)動器通道2驅(qū)動器RAM地址鎖存器RAM通道0鎖存器通道2鎖存器ROM/EPROMB寄存器程序地址寄存器緩沖器PC遞增器程序計數(shù)器PC0驅(qū)動器DPTR指針VCCGNDP1.0~P1.7堆棧指針SPACCTMP2PSW通道3鎖存器通道1鎖存器通道1驅(qū)動器通道3驅(qū)動器TMP1SCONTMODPCONTCONTL0TH1TH0TL1IESBUF(TX/RX)IP中斷、串行口和定時器邏輯振蕩器P3.0~P3.7RSTEAALEPSENXTAL2XTAL1ALU(+5V)指令寄存器定時和控制邏輯指令譯碼器圖2-2MCS-51片內(nèi)總體結(jié)構(gòu)框圖內(nèi)部總線

1、PSW稱為程序狀態(tài)字寄存器,是一個8位寄存器。2、D7D6D5D4D3D2D1D0

Cy

AcF1RS1RS0

OV-P2.2.3程序執(zhí)行過程(p23)

計算機(jī)工作時,首先要把程序和數(shù)據(jù)輸入到存儲器中,然后逐條取出執(zhí)行。其執(zhí)行過程常分為兩個階段。第一階段,取指令,譯碼;第二階段,取操作數(shù),執(zhí)行。下面說明指令的執(zhí)行過程。即:取指令、分析指令、執(zhí)行指令

①程序第一條指令地址送入程序計數(shù)器PC,PC將指令地址送到地址寄存器。(PC)+1→PC,指示下一條指令地址;對于多字節(jié)指令,則加2或者加3。②地址寄存器的內(nèi)容通過內(nèi)部地址總線送到存儲器,經(jīng)存儲器中的地址譯碼電路選中該地址。被選中的地址單元的內(nèi)容即操作碼送到指令寄存器。③根據(jù)指令譯碼器對操作碼的譯碼結(jié)果,在時序電路的配合下由微操作控制電路發(fā)相應(yīng)的控制信號,控制有關(guān)部件進(jìn)行相應(yīng)的動作,執(zhí)行指令。⑤對于算術(shù)邏輯運算指令,則把讀出的數(shù)據(jù)送入暫存寄存器,然后與累加器中的另一數(shù)據(jù)一起送入加法器,按照操作碼的要求進(jìn)行運算,其結(jié)果再送回到累加器中;運算結(jié)果的狀態(tài)信息送入狀態(tài)標(biāo)志寄存器中。⑥一條指令執(zhí)行完后,再把PC中的內(nèi)容送入地址寄存器,取下一條指令,直到程序執(zhí)行完畢為止。

④對于訪問存儲器的指令,讀地址碼所指示單元中的數(shù)據(jù),送入累加器或指定的寄存器中;如果是存儲器寫入指令,則把累加器或指定寄存器中的數(shù)據(jù)寫入到地址碼所指示的單元中去。

圖2-4單片機(jī)指令執(zhí)行過程示意圖2.3存儲器

2.3.12.3.2(略)2.3.3存儲器的結(jié)構(gòu)和地址空間(P27)

Intel的80C51系列單片微機(jī)采用哈佛結(jié)構(gòu)。

在物理上設(shè)有4個存儲器空間·程序存儲器:片內(nèi)程序存儲器;片外程序存儲器?!?shù)據(jù)存儲器:片內(nèi)數(shù)據(jù)存儲器;

片外數(shù)據(jù)存儲器。

在邏輯上設(shè)有3個存儲器地址空間

·片內(nèi)、片外統(tǒng)一的64KB程序存儲器地址空間;·片內(nèi)256B數(shù)據(jù)存儲器地址空間;·片外64KB的數(shù)據(jù)存儲器地址空間。在訪問這3個不同的邏輯空間時,應(yīng)選用不同形式的指令。

馮.諾伊曼結(jié)構(gòu):一般通用計算機(jī)通常只有一個邏輯空間,即其程序存儲器和數(shù)據(jù)存儲器是統(tǒng)一編址的,訪問存儲器時,同一地址對應(yīng)唯一的存儲空間,可以是ROM,也可以是RAM,并用同類訪問指令,這種存儲器結(jié)構(gòu)成為馮.諾伊曼結(jié)構(gòu):哈佛結(jié)構(gòu)是一種將程序指令存儲和數(shù)據(jù)存儲分開的存儲器結(jié)構(gòu)。中央處理器首先到程序指令存儲器中讀取程序指令內(nèi)容,解碼后得到數(shù)據(jù)地址,再到相應(yīng)的數(shù)據(jù)存儲器中讀取數(shù)據(jù),并進(jìn)行下一步的操作(通常是執(zhí)行)。程序指令存儲和數(shù)據(jù)存儲分開,可以使指令和數(shù)據(jù)有不同的數(shù)據(jù)寬度。

3.380C51的存儲器

3.3.1存儲器結(jié)構(gòu)和地址空間

圖2-5AT89S51存儲空間分布圖在邏輯上設(shè)有3個存儲器地址空間

·片內(nèi)、片外統(tǒng)一編址的64KB程序存儲器地址空間;(16位地址)·片內(nèi)256B數(shù)據(jù)存儲器地址空間;(00H~FFH)·片外64KB的數(shù)據(jù)存儲器地址空間。80C51單片機(jī)信號引腳簡介

P3口線的第二功能VCCVSSXTAL2

XTAL1RSTP0.0

P0.1

P0.2P0.3P0.4P0.5P0.6P0.7P1.0

P1.1

P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0ALEP3.0

P3.1

P3.2P3.3P3.4P3.5P3.6P3.7(2)、振蕩電路:XTAL1、XTAL2(3)、復(fù)位引腳:RST(4)、并行口:P0、P1、P2、P3(7)、ALE:地址鎖存控制信號(1)、電源引腳:VCC(+5V)、VSS(地)EAPSEN(5)、EA:訪問程序存儲控制信號(6)、PSEN:外部ROM讀選通信號RXD/

TXD/

INT0/INT1/

T0/

T1/

WR/

RD/1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

3130292827262524242221803180C51875189C511、管腳圖MCS-51單片機(jī)的引腳定義及功能圖

80C51單片微機(jī)存儲器映象圖

80C51的程序存儲器(programmemory)用于存放經(jīng)調(diào)試正確的應(yīng)用程序和表格之類的固定常數(shù)。由于采用16位的程序計數(shù)器PC和16位的地址總線,因而其可擴(kuò)展的地址空間為64KB。⒈整個程序存儲器可以分為片內(nèi)和片外兩部分。EA引腳接高電平時,程序從片內(nèi)程序存儲器0000H開始執(zhí)行,即訪問片內(nèi)存儲器;當(dāng)PC值超出片內(nèi)ROM容量時,會自動轉(zhuǎn)向片外程序存儲器空間執(zhí)行。EA引腳接低電平時,迫使系統(tǒng)全部執(zhí)行片外程序存儲器0000H開始存放的程序。

2.3.4程序存儲器

⒉程序存儲器的某些單元被保留用于特定的程序入口地址。

由于系統(tǒng)復(fù)位后的PC地址為0000H,故系統(tǒng)從0000H單元開始取指,執(zhí)行程序。一般在該單元設(shè)置一條無條件轉(zhuǎn)移指令,使之轉(zhuǎn)向用戶主程序處執(zhí)行。因此,0000H~0002H單元被保留用于初始化。從0003H~002BH單元被保留用于6個中斷源的中斷服務(wù)程序的入口地址。以下7個特定地址被保留:復(fù)位 0000H外部中斷00003H計時器T0溢出000BH外部中斷10013H計時器T1溢出001BH串行口中斷0023H計時器T2/T2EX002BH在程序設(shè)計時,通常在這些中斷入口處設(shè)置絕對跳轉(zhuǎn)指令,使之轉(zhuǎn)向?qū)?yīng)的中斷服務(wù)程序段處執(zhí)行。程序存儲器0000H0001H0002H(PC)0000H是程序執(zhí)行的起始單元,

在這三個單元存放一條

無條件轉(zhuǎn)移指令

中斷5中斷4中斷3中斷2中斷10003H000BH0013H001BH0023H002BH外部中斷0定時器0中斷外部中斷1定時器1中斷串行口中斷8位...0FFFH0FFEH程序存儲器資源分布中斷入口地址如果在程序運行中碰到有中斷申請時,程序?qū)⒆詣愚D(zhuǎn)到中斷處去執(zhí)行,根據(jù)申請中斷標(biāo)志來判斷轉(zhuǎn)到那個中斷處執(zhí)行程序計算機(jī)在運行過程中,有時因為操作的需要或因程序較復(fù)雜,程序指令往往不能按順序逐條運行,需要改變程序運行方向,即將程序跳轉(zhuǎn)到某個指定的地址處再執(zhí)行。某些指令具有修改PC的功能,因為PC的內(nèi)容總是指向?qū)⒁獔?zhí)行的下一條指令地址,所以計算機(jī)執(zhí)行這一類指令就能控制程序轉(zhuǎn)移到新的PC地址去執(zhí)行。

數(shù)據(jù)存儲器(datamemory)由隨機(jī)存取存儲器RAM構(gòu)成,用來存放隨機(jī)數(shù)據(jù)。在80C51中,數(shù)據(jù)存儲器又分片內(nèi)數(shù)據(jù)存儲器(internaldatamemory)和片外數(shù)據(jù)存儲器(externaldatamemory)兩部分。片內(nèi)數(shù)據(jù)存儲器(IRAM)地址只有8位,因而最大尋址范圍為256個字節(jié)。在80C51中,設(shè)置有一個專門的數(shù)據(jù)存儲器的地址指示器—數(shù)據(jù)指針DPTR,用于訪問片外數(shù)據(jù)存儲器(ERAM)。數(shù)據(jù)指針DPTR也是16位的寄存器,這樣,就使80C51具有64KB的數(shù)據(jù)存儲器擴(kuò)展能力。2.3.5數(shù)據(jù)存儲器

⒈片內(nèi)數(shù)據(jù)RAM區(qū)⑴工作寄存器區(qū):用寄存器直接尋址的區(qū)域,指令的數(shù)量最多,均為單周期指令,執(zhí)行的速度最快。⑵位尋址區(qū):這16個字節(jié)單元,既可進(jìn)行字節(jié)尋址,又可位尋址。⑶

字節(jié)尋址區(qū):從片內(nèi)數(shù)據(jù)RAM區(qū)的48~127(30H~7FH),共80個字節(jié)單元,可以采用直接字節(jié)尋址的方法訪問。

真正RAM區(qū)MCS-51單片機(jī)片內(nèi)RAM的配置圖

SFR區(qū)

89C51內(nèi)有256B的RAM單元,其地址范圍為00H—FFH,分為兩大部分:低128字節(jié)(00H~7FH)為真正的RAM區(qū);片內(nèi)數(shù)據(jù)RAM區(qū)高128字節(jié)(80H~FFH)為特殊功能寄存器區(qū)SFR。

7FH80H00HFFH7FH

真正RAM區(qū)00HMCS-51單片機(jī)片內(nèi)RAM的配置圖FFH

SFR區(qū)80H返回7FH

普通RAM區(qū)30H2FH

位尋址區(qū)20H1FH

工作寄存器區(qū)00H7FH

真正RAM區(qū)00HMCS-51單片機(jī)片內(nèi)RAM的配置圖FFH

SFR區(qū)80H89C51內(nèi)有256B的RAM單元,其地址范圍為00H—FFH,分為兩大部分:低128字節(jié)(00H~7FH)為真正的RAM區(qū);高128字節(jié)(80H~FFH)為特殊功能寄存器區(qū)SFR。

7FH

普通RAM區(qū)30H2FH

位尋址區(qū)20H1FH

工作寄存器區(qū)00H返回07H0組00H0FH1組08H17H2組10H1FH3組18H1、工作寄存器區(qū)是指00H~1FH區(qū),共分4個組,每組有8個單元,共32個內(nèi)部RAM單元。2、每次只能有1組作為工作寄存器使用。3、作為工作寄存器使用的8個單元,又稱為R0—R74、程序狀態(tài)字PSW中的PSW.3(RS0)和PSW.4(RS1)兩位來選擇哪一組作為工作寄存器使用。CPU通過軟件修改PSW中RS0和RS1兩位的狀態(tài),就可任選一個工作寄存器工作。RS1、RS0與片內(nèi)工作寄存器組的對應(yīng)關(guān)系RS1RS0寄存器組片內(nèi)PAM地址通用寄存器名稱000組00H~07HR0~R7011組08H~0FHR0~R7102組10H~17HR0~R7013組18H~1FHR0~R7工作寄存器和RAM地址對照表

返回7FH真正RAM區(qū)00HMCS-51單片機(jī)片內(nèi)RAM的配置下圖所示:FFHSFR區(qū)80H7FH

普通RAM區(qū)30H2FH位尋址區(qū)20H1FH工作寄存器區(qū)00H20H21H22H23H24H25H26H27H2FH1、位尋址區(qū)是指20H~2FH單元,共16個單元。2、位尋址區(qū)的每1位都可當(dāng)作軟件觸發(fā)器,由程序直接進(jìn)行位處理。3、位尋址區(qū)的16個單元(共計128位)的每1位都有一個8位表示的位地址,位地址范圍為00H~7FH。4、同樣,位尋址的RAM單元也可以按字節(jié)操作作為一般的數(shù)據(jù)緩沖區(qū)。返回

表2-5RAM位尋址區(qū)位地址表(P30)

返回

字節(jié)尋址區(qū)(用戶RAM區(qū)----堆棧、數(shù)據(jù)緩沖)從片內(nèi)數(shù)據(jù)RAM區(qū)的48~127(30H~7FH),共80個字節(jié)單元,可以采用直接字節(jié)尋址的方法訪問。堆棧是在片內(nèi)數(shù)據(jù)RAM區(qū)中,數(shù)據(jù)先進(jìn)后出或后進(jìn)先出的區(qū)域。3、片外數(shù)據(jù)存儲器的結(jié)構(gòu)及操作(P31)片外數(shù)據(jù)存儲器最多可以擴(kuò)充到64KB。片內(nèi)和片外RAM的低地址部分的地址碼相同區(qū)分這兩部分地址空間的方法是采用不同的指令。2.4特殊功能寄存器SFR區(qū)(P31)

特殊功能寄存器SFR(SpecialFunctionRegister)是80C51中各功能部件所對應(yīng)的寄存器,用以存放相應(yīng)功能部件的控制命令、狀態(tài)或數(shù)據(jù)的區(qū)域。這是80C51系列單片機(jī)中最有特色的部分。現(xiàn)在所有80C51系列功能的增加和擴(kuò)展幾乎都是通過增加特殊功能寄存器來達(dá)到的。80C51設(shè)有128B片內(nèi)數(shù)據(jù)RAM結(jié)構(gòu)的特殊功能寄存器空間區(qū)。除程序計數(shù)器PC和4個通用工作寄存器組外,其余所有的寄存器都在這個地址空間之內(nèi)。

程序計數(shù)器PC(ProgramCounter)是一個獨立的計數(shù)器,不屬于內(nèi)部的特殊功能寄存器。PC中存放的是下一條將要從程序存儲器中取出的指令的地址。

80C51系列的SFR在數(shù)量與功能上大同小異。AT89S51有23個,(AT89S52有29個)他們離散的分布在片內(nèi)數(shù)據(jù)存儲器的高128字節(jié)地址中(80H~FFH),但是他們不能作為數(shù)據(jù)存儲器使用,所以對這些SFR是不能隨意寫入數(shù)字的,特別是功能部件中的控制寄存器,不同的數(shù)字使他們具有不同的工作方式。各特殊功能寄存器的符號及地址見表2-6。CPU:ACC、B、PSW、SP、DPTR(由兩個8位寄存器DPL、DPH組成)并行口:P0、P1、P2、P3中斷系統(tǒng):IE、IP定時/計數(shù)器:TMOD、TCON、TH1、TL1、TH0、TL0串行口:SCON,SBUF,PCON高128個單元☆

12/14個可以進(jìn)行位尋址☆特別提示:對SFR只能使用直接尋址方式,書寫時可使用寄存器符號,也可用寄存器單元地址。1.程序狀態(tài)字寄存器PSWPSW(ProgramStatusWord)是一個逐位定義的8位寄存器,其內(nèi)容的主要部分是算術(shù)邏輯運算單元(ALU)的輸出。其中有些位是根據(jù)指令執(zhí)行結(jié)果,由硬件自動生成,而有些位狀態(tài)可用軟件方法設(shè)定。CYACF0RS1RS0OVF1P

一些條件轉(zhuǎn)移指令就是根據(jù)PSW中的相關(guān)標(biāo)志位的狀態(tài),來實現(xiàn)程序的條件轉(zhuǎn)移。其中,除PSW.1(保留位)、RS1和RS0(工作寄存器組選擇控制位)及用戶標(biāo)志F0之外,其他四位:奇偶校驗位P、溢出標(biāo)志位OV、輔助進(jìn)位標(biāo)志位AC及進(jìn)位標(biāo)志位CY都是ALU運算結(jié)果的直接輸出。

P(PSW.0)-奇偶標(biāo)志位。用以表示累加器A中值為1的個數(shù)的奇偶性:若累加器值為1的位數(shù)是奇數(shù),P置位(奇校驗);否則P清除(偶校驗)。在串行通信中,常以傳送奇偶校驗位來檢驗傳輸數(shù)據(jù)的可靠性。通常將P置入串行幀中的奇偶校驗位。P(PSW.0)——奇偶標(biāo)志位。當(dāng)A中1的個數(shù)為奇數(shù)時,P=1;當(dāng)A中1的個數(shù)為偶數(shù)時,P=0。1.程序狀態(tài)字寄存器PSW

OV(PSW.2)-溢出標(biāo)志位。當(dāng)執(zhí)行運算指令時,由硬件置位或清除,以指示運算是否產(chǎn)生溢出,OV置位表示運算結(jié)果超出了目的寄存器A所能表示的帶符號數(shù)的范圍(一128~+127)。對于MUL乘法,當(dāng)A、B兩個乘數(shù)的積超過255時OV置1位;否則,OV=0。因此,若OV=0時,乘積就在A中,只需從A寄存器中取積;若OV=1時,則積的高8位在B中,低8位在A中。需從B、A寄存器對中取積。對于DIV除法,若除數(shù)為0時,OV=1;否則,OV=0。

OV(PSW.2)——溢出標(biāo)志位。當(dāng)運算結(jié)果產(chǎn)生溢出時,OV=1;當(dāng)運算結(jié)果沒有產(chǎn)生溢出時,OV=0。

RS1、RS0(PSW.4、PSW.3)-工作寄存器組選擇位 用于設(shè)定當(dāng)前工作寄存器的組號。工作寄存器共有四組,其對應(yīng)關(guān)系見課本P49表3.6

AC(PSW.6)-輔助進(jìn)位標(biāo)志位。 當(dāng)進(jìn)行加法或減法運算時,若低4位向高4位數(shù)發(fā)生進(jìn)位或借位時AC將被硬件置位;否則,被清除。 在十進(jìn)制調(diào)整指令DA中要用到AC標(biāo)志位狀態(tài)。AC(PSW.6)——輔助進(jìn)位(或稱半進(jìn)位)標(biāo)志。當(dāng)運算結(jié)果的D3向D4產(chǎn)生進(jìn)位時,AC=1;當(dāng)運算結(jié)果的D3向D4沒有產(chǎn)生進(jìn)位時,AC=0。

CY(PSW.7)-進(jìn)位標(biāo)志位。在進(jìn)行算術(shù)運算時,可以被硬件置位或清除,以表示運算結(jié)果中高位是否有進(jìn)位或借位。

F0(PSW.5)-用戶標(biāo)志位。 開機(jī)時該位為“0”。用戶可根據(jù)需要,通過位操作指令置“l(fā)”或者清“0”。

Cy(PSW.7)——進(jìn)位標(biāo)志位。當(dāng)運算結(jié)果產(chǎn)生進(jìn)位時,Cy=1;當(dāng)運算結(jié)果沒有產(chǎn)生進(jìn)位時,Cy=0。ATMPPSWBSPDPTRRAMPCROMP1P2P3P0定時中斷串口IRPLAID振蕩X1X2PSENRSTALEEAP0P1P2P3ALU返回

ALU有兩個輸出:⑴數(shù)據(jù)經(jīng)過運算后,其結(jié)果又通過內(nèi)部總線送回到累加器中;⑵數(shù)據(jù)運算后產(chǎn)生的標(biāo)志位輸出至程序狀態(tài)字PSW。2.

累加器A累加器A是CPU中使用最頻繁的一個八位專用寄存器,簡稱ACC或A寄存器。主要功能:累加器A存放操作數(shù),是ALU單元的輸入之一,也是ALU運算結(jié)果的暫存單元。在80C51中只有一個累加器A,而單片微機(jī)中大部分?jǐn)?shù)據(jù)操作都要通過累加器A進(jìn)行,容易產(chǎn)生“瓶頸”現(xiàn)象。

3.數(shù)據(jù)指針DPTR

DPTR是一個16位的特殊功能寄存器,主要功能是作為片外數(shù)據(jù)存儲器或I/O尋址用的地址寄存器(間接尋址),故稱為數(shù)據(jù)存儲器地址指針。見P50訪問片外數(shù)據(jù)存儲器或I/O的指令為:MOVXA,@DPTR讀MOVX@DPTR,A寫DPTR寄存器也可以作為訪問程序存儲器時的基址寄存器。這時尋址程序存儲器中的表格、常數(shù)等單元,而不是尋址指令。MOVC A,@A+DPTRJMP @A+DPTRDPTR寄存器既可以作為一個16位寄存器處理,也可以作為兩個8位寄存器處理,其高8位用DPH表示,低8位用DPL表示。⑶執(zhí)行調(diào)用子程序或發(fā)生中斷時,CPU會自動將當(dāng)前PC值壓入堆棧,將子程序入口地址或中斷入口地址裝入PC;子程序返回或中斷返回時,恢復(fù)原有被壓入堆棧的PC值,繼續(xù)執(zhí)行原順序程序指令。程序計數(shù)器PC※

PC不屬于特殊功能寄存器,不可訪問,在物理結(jié)構(gòu)上是獨立的?!鵓C是一個16位的地址寄存器,用于存放將要從ROM中讀出的下一字節(jié)指令碼的地址,因此也稱為地址指針?!鵓C的基本工作方式有:⑴自動加1。CPU從ROM中每讀一個字節(jié),自動執(zhí)行PC+1→PC;⑵執(zhí)行轉(zhuǎn)移指令時,PC會根據(jù)該指令要求修改下一次讀ROM新的地址;4.B寄存器B寄存器在乘法和除法指令中作為ALU的輸入之一。乘法中,ALU的兩個輸入分別為A、B,運算結(jié)果存放在AB寄存器對中A中放積的低8位,B中放積的高8位。除法中,被除數(shù)取自A,除數(shù)取自B,商數(shù)存放于A,余數(shù)存放于B。在其它情況下,B寄存器可以作為內(nèi)部RAM中的一個單元來使用。

堆棧區(qū)及堆棧指示器SP:

堆棧是在片內(nèi)數(shù)據(jù)RAM區(qū)中,數(shù)據(jù)先進(jìn)后出或后進(jìn)先出的區(qū)域。堆棧指示器SP(stackpointer)在80C51中存放當(dāng)前的堆棧棧頂所指存儲單元地址的一個8位寄存器。

80C51的堆棧區(qū)域可用軟件設(shè)置堆棧指示器(SP)的值,在片內(nèi)數(shù)據(jù)RAM區(qū)中予以定義。

系統(tǒng)復(fù)位后SP內(nèi)容為07H。如不重新定義,則以07H為棧底,壓棧的內(nèi)容從08H單元開始存放。通過軟件對SP的內(nèi)容重新定義,使堆棧區(qū)設(shè)定在片內(nèi)數(shù)據(jù)RAM區(qū)中的某一區(qū)域內(nèi),堆棧深度不能超過片內(nèi)RAM空間。

堆棧區(qū)由特殊功能寄存器堆棧指針SP管理堆棧區(qū)可以安排在RAM區(qū)任意位置,一般不安排在工作寄存器區(qū)和可按位尋址的RAM區(qū),通常放在RAM區(qū)的靠后的位置。

堆棧:

在片內(nèi)RAM中,常常要指定一個專門的區(qū)域來存放某些特別的數(shù)據(jù),它遵循順序存取和后進(jìn)先出(LIFO/FILO)的原則,這個RAM區(qū)叫堆棧。功用:1)子程序調(diào)用和中斷服務(wù)時CPU自動將當(dāng)前PC值壓棧保存,返回時自動將PC值彈棧。2)保護(hù)現(xiàn)場/恢復(fù)現(xiàn)場3)數(shù)據(jù)傳輸返回堆棧是為子程序調(diào)用和中斷操作而設(shè)立的。其具體功能有兩個:保護(hù)斷點和保護(hù)現(xiàn)場。在80C51單片微機(jī)中,堆棧在子程序調(diào)用和中斷時會把斷點地址自動進(jìn)棧和出棧,還有對堆棧的進(jìn)棧和出棧的指令(PUSH、POP)操作,用于保護(hù)現(xiàn)場和恢復(fù)現(xiàn)場。由于子程序調(diào)用和中斷都允許嵌套,并可以多級嵌套,而現(xiàn)場的保護(hù)也往往使用堆棧,所以一定要注意給堆棧以一定的深度,以免造成堆棧內(nèi)容的破壞而引起程序執(zhí)行的“跑飛”。返回見教材P51

片外數(shù)據(jù)存儲器是在外部存放數(shù)據(jù)的區(qū)域,這一區(qū)域只能用寄存器間接尋址的方法訪問,所用的寄存器為DPTR、R1或R0。指令助記符為MOVX。當(dāng)用R0、R1尋址時,由于R0、R1為8位寄存器,因此最大尋址范圍為256B;當(dāng)用DPTR尋址時,由于DPTR為16位寄存器,因此最大尋址范圍為64KB。

3.3.4片外數(shù)據(jù)存儲區(qū)MCS-51系列單片機(jī)的輸入輸出端口設(shè)計十分巧妙,熟悉了這種端口的電路設(shè)計,我們不但可以熟練的使用它,而且還可以作為其它電路的輸入輸出部分的設(shè)計參考。MCS-51各個端口的設(shè)計有相同之處,但又因為各個端口功能不同又有所差別,各端口的設(shè)計各具特點。80C51共有四個8位的并行雙向口,計有32根輸入/輸出(I/O)口線。各口的每一位均由鎖存器、輸出驅(qū)動器和輸入緩沖器所組成。因此,CPU數(shù)據(jù)從并行I/O接口輸出時可以得到鎖存,輸入時可以得到緩沖。由于它們在結(jié)構(gòu)上的一些差異,故各口的性質(zhì)和功能也就有了差異。3.4并行輸入/輸出端口輸入/輸出端口結(jié)構(gòu)P0.0

P0.1

P0.2P0.3P0.4P0.5P0.6P0.7P1.0

P1.1

P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P3.0

P3.1

P3.2P3.3P3.4P3.5P3.6P3.74個8位并行I/O口:P0,P1,P2,P3;均可作為雙向I/O端口使用。輸入時可以緩沖,輸出時可以鎖存。(1)特點:P0:訪問片外擴(kuò)展存儲器時,

復(fù)用為低8位地址線和數(shù)據(jù)線

P2:高8位地址線。P1:雙向I/O端口

P3:第二功能1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

313029282726252424222180318051875189C51片外擴(kuò)展存儲器時P0、P2口自動作為總線使用(2)I/O口的字節(jié)地址和位地址(3)下面分別介紹4個I/O口的結(jié)構(gòu)1)P0口的位結(jié)構(gòu)鎖存器三態(tài)緩沖器場效應(yīng)管P0口既可用作I/O口,也可用作地址/數(shù)據(jù)總線,但二者不能兼用,用作I/O口時,必須在管腳上接上拉電阻。用作地址/數(shù)據(jù)總線時,地址和數(shù)據(jù)采取分時復(fù)用方式。用作輸入時,必須對輸出鎖存器置“1”—“讀引腳”操作

圖2-11 P0口位結(jié)構(gòu)原理圖⑴P0口是漏極開路的準(zhǔn)雙向口、低8位地址/數(shù)據(jù)總線口。P0口中一個多路開關(guān):多路開關(guān)的輸入有兩個:輸出鎖存器的輸出、地址/數(shù)據(jù)輸出。多路開關(guān)的輸出用于控制輸出FET的導(dǎo)通和截止。多路開關(guān)的切換由內(nèi)部控制信號控制。

(2)當(dāng)內(nèi)部信號置0時,多路開關(guān)接通輸出鎖存器的/Q端這時明顯地可以看出兩點:·由于內(nèi)部控制信號為0,與門關(guān)閉,上拉FET截止,形成P0口的輸出電路為漏極開路輸出。

·輸出鎖存器的Q端引至下拉FET柵極,因此P0口的輸出狀態(tài)由下拉電路決定。在P0口作輸出口用時,若P0.i輸出1,輸出鎖存器的Q端為0,下拉FET截止,這時P0.i為漏極開路輸出;若P0.i輸出0,輸出鎖存器的Q端為1,下拉FET導(dǎo)通,P0.i輸出低電平。在P0口作輸入口用時,為了使P0.i能正確讀入數(shù)據(jù),必須先使D置1,Q端為0

。這樣,下拉FET也截止,P0.i處于懸浮狀態(tài)。A點的電平由外設(shè)的電平而定,通過輸入緩沖器讀入CPU。這時P0口相當(dāng)于一個高阻抗的輸入口。

(3)當(dāng)內(nèi)部信號置1時,多路開關(guān)接通地址/數(shù)據(jù)輸出端。當(dāng)?shù)刂罚瘮?shù)據(jù)輸出線置1時,控制上拉電路的“與”門輸出為1,上拉FET導(dǎo)通,同時地址/數(shù)據(jù)輸出通過反相器輸出0,控制下拉FET截止,這樣A點電位上拉,地址/數(shù)據(jù)輸出線為1。當(dāng)?shù)刂罚瘮?shù)據(jù)輸出線置0時,“與”門輸出為0,上拉FET截止,同時地址/數(shù)據(jù)輸出通過反相器輸出1,控制下拉FET導(dǎo)通,這樣A點電位下拉,地址/數(shù)據(jù)輸出線為0。通過上述分析可以看出,此時的輸出狀態(tài)隨地址/數(shù)據(jù)線而變。因此,P0口可以作為地址/數(shù)據(jù)復(fù)用總線使用。這時上下兩個FET處于反相,構(gòu)成了推拉式的輸出電路,其負(fù)載能力大大增加。此時的P0口相當(dāng)一個雙向口。

⒉P0口的功能 ⑴作I/O口使用相當(dāng)于一個真正的雙向口:輸出鎖存、輸入緩沖,但輸入時需先將口置1;每根口線可以獨立定義為輸入或輸出。它具有雙向口的一切特點。

與其它口的區(qū)別是,輸出時為漏極開路輸出,與NMOS的電路接口時必須要用電阻上拉,才能有高電平輸出;輸入時為懸浮狀態(tài),為一個高阻抗的輸入口。

⑵作地址/數(shù)據(jù)復(fù)用總線用

此時P0口為一個準(zhǔn)雙向口,T1、T2相當(dāng)于上拉電阻。作數(shù)據(jù)輸入口時,也不是懸浮狀態(tài)。作地址/數(shù)據(jù)復(fù)用總線用:作數(shù)據(jù)總線用時,輸入/輸出8位數(shù)據(jù)D0~D7;作地址總線用時,輸出低8位地址A0~A7。當(dāng)P0口作地址/數(shù)據(jù)復(fù)用總線用之后,就再也不能作I/O口使用了。B、P1口的位結(jié)構(gòu)P1口由于只能作為I/O口使用,因而輸出控制電路結(jié)構(gòu)同P0口不同。

P1口是一個8位口,可以字節(jié)訪問也可按位訪問,其字節(jié)訪問地址為90H,位訪問地址為90H~97H。

⒈位結(jié)構(gòu)和工作原理

包含輸出鎖存器、輸入緩沖器BUF1(讀引腳)、BUF2(讀鎖存器)以及由FET晶體管Q0與上拉電阻組成的輸出/輸入驅(qū)動器。

P1口

P1口的工作過程分析如下:

P1.i位作輸出口用時:CPU輸出0時,D=0,Q=0,Q=l,晶體管Q0導(dǎo)通,A點被下拉為低電平,即輸出0;CPU輸出1時,D=l,Q=1,Q=0,晶體管Q0截止,A點被上拉為高電平,即輸出l。

P1.i位作輸入口用時:先向P1.i位輸出高電平,使FET截止(使A點提升為高電平),此操作稱為設(shè)置P1.i為輸入線。引腳的狀態(tài)通過緩沖器B2進(jìn)入內(nèi)部總線。⒉、P1口的特點

輸出鎖存器,輸出時沒有條件;輸入緩沖,輸入時有條件,即需要先將該口設(shè)為輸入狀態(tài),先輸出1;

工作過程中無高阻懸浮狀態(tài),也就是該口不是輸入態(tài)就是輸出態(tài)。具有這種特性的口不屬于“真正”的雙向口,而被稱為“準(zhǔn)”雙向口。C、P2口位結(jié)構(gòu)P2口既可用作I/O口,也可用作高8位地址總線。

P2口是一個多功能的8位口,可以字節(jié)訪問也可位訪問,其字節(jié)訪問地址為A0H,位訪問地址為A0H~A7H。

⒈P2口位結(jié)構(gòu)和工作原理多路開關(guān)的輸入口有兩個:一個是輸出鎖存器的輸出端Q;一個是地址寄存器(PC或DPTR)的高位輸出端。多路開關(guān)的輸出經(jīng)反相器反相后去控制輸出FET的Q0。多路開關(guān)的切換由內(nèi)部控制信號控制。輸出鎖存器的輸出端是Q而不是Q,多路開關(guān)之后需接反相器。

P2口

P2口的工作狀態(tài)是I/O口狀態(tài)。

在內(nèi)部控制信號的作用下,多路開關(guān)的輸入投向輸出鎖存器的輸出Q(C點)側(cè),這樣多路開關(guān)將接通輸出鎖存器。若經(jīng)由內(nèi)部總線輸出0,輸出鎖存器的Q端為0,信號經(jīng)多路開關(guān)和反相器后輸出1,Q0導(dǎo)通,A點為0,輸出低電平;若經(jīng)由內(nèi)部總線輸出1,輸出鎖存器的Q端為1,反相器后輸出0,Q0截止,A點為1,輸出高電平。

P2口的工作狀態(tài)是輸出高8位地址。在內(nèi)部控制信號的作用下,多路開關(guān)的輸入投向地址輸出(B點)側(cè),這樣多路開關(guān)將接通地址寄存器輸出。A點的電平將隨地址輸出的0、1而0、1地變化。⒉

P2口的功能

從上述工作過程的分析中可以看出P2口是一個雙功能的口:⑴作I/O口使用時,P2口為一準(zhǔn)雙向口。⑵作地址輸出時,P2口可以輸出程序存儲器或片外數(shù)據(jù)存儲器的高8位地址,與P0輸出的低地址一起構(gòu)成16位地址線,從而可分別尋址64KB的程序存儲器或片外數(shù)據(jù)存儲器。地址線是8位一起自動輸出的。⒊P2口使用中注意的問題⑴由于P2口的輸出鎖存功能,在取指周期內(nèi)或外部數(shù)據(jù)存儲器讀、寫選通期間,輸出的高8位地址是鎖存的,故無需外加地址鎖存器。⑵在系統(tǒng)中如果外接有程序存儲器,由于訪問片外程序存儲器的連續(xù)不斷的取指操作,P2口需要不斷送出高位地址,這時P2口的全部口線均不宜再作I/O口使用。⑶在無外接程序存儲器而有片外數(shù)據(jù)存儲器的系統(tǒng)中,P2口使用可分為兩種情況:若片外數(shù)據(jù)存儲器的容量<256B:可使用“MOVXA,@Ri”及“MOVX@Ri,A”類指令訪問片外數(shù)據(jù)存儲器,這時P2口不輸出地址,P2口仍可作為I/O口使用;若片外數(shù)據(jù)存儲器的容量>256B:這時使用“MOVXA,@DPTR”及“MOVX@DPTR,A”類指令訪問片外數(shù)據(jù)存儲器,P2口需輸出高8位地址。在片外數(shù)據(jù)存儲器讀、寫選通期間,P2口引腳上鎖存高8位地址信息,但是在選通結(jié)束后,P2口內(nèi)原來鎖存的內(nèi)容又重新出現(xiàn)在引腳上。

使用“MOVXA,@Ri”及“MOVX@Ri,A”類訪問指令時,高位地址通過程序設(shè)定,只利用P1、P3甚至P2口中的某幾根口線送高位地址,從而保留P2口的全部或部分口線作I/O口用。

D、P3口位結(jié)構(gòu)P3口既可用I/O口,又分別具有第二功能,但二者不能混用,其第二功能如下表所示。輸出工作過程:

當(dāng)替代輸出功能B點置1時,“與非”門打開,輸出鎖存器的輸出可以順利通到引腳P3.i。其工作狀況與P1口相類似。這時P3口的工作狀態(tài)為I/O口,顯然此時該口具有準(zhǔn)雙向口的性質(zhì)。

當(dāng)輸出鎖存器的輸出置1時,“與非”門打開,替代輸出功能可以順利通到引腳P3.i。若替代輸出為0時,因與非門的C點已置l,現(xiàn)B點為0,故與非門的輸出為l,使Q0導(dǎo)通,從而使A點也為0。若替代輸出為1時,與非門的輸出為0,Q0截止,從而使A點也為高電平。這時P3口的工作狀態(tài)處于替代輸出功能狀態(tài)。⒉P3口的功能

P3口是一個多功能口。⑴可作I/O口使用,為準(zhǔn)雙向口。

溫馨提示

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

評論

0/150

提交評論