日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

8051系列單片機(jī)

 ly5019的圖書館 2016-02-12

MCS-51單片機(jī)在物理結(jié)構(gòu)上有四個(gè)存儲(chǔ)空間:
1、片內(nèi)程序存儲(chǔ)器
2、片外程序存儲(chǔ)器
3、片內(nèi)數(shù)據(jù)存儲(chǔ)器
4、片外數(shù)據(jù)存儲(chǔ)器
但在邏輯上,即從用戶的角度上,8051單片機(jī)有三個(gè)存儲(chǔ)空間:
1、片內(nèi)外統(tǒng)一編址的64K的程序存儲(chǔ)器地址空間(MOVC)
2、256B的片內(nèi)數(shù)據(jù)存儲(chǔ)器的地址空間(MOV)
3、以及64K片外數(shù)據(jù)存儲(chǔ)器的地址空間(MOVX)
在訪問(wèn)三個(gè)不同的邏輯空間時(shí),應(yīng)采用不同形式的指令(具體我們?cè)诤竺娴闹噶钕到y(tǒng)學(xué)習(xí)時(shí)將會(huì)講解),以產(chǎn)生不同的存儲(chǔ)器空間的選通信號(hào)。
程序存儲(chǔ)器
一個(gè)微處理器能夠聰明地執(zhí)行某種任務(wù),除了它們強(qiáng)大的硬件外,還需要它們運(yùn)行的軟件,其實(shí)微處理器并不聰明,它們只是完全按照人們預(yù)先編寫的程序而執(zhí)行之。那么設(shè)計(jì)人員編寫的程序就存放在微處理器的程序存儲(chǔ)器中,俗稱只讀程序存儲(chǔ)器(ROM)。程序相當(dāng)于給微處理器處理問(wèn)題的一系列命令。其實(shí)程序和數(shù)據(jù)一樣,都是由機(jī)器碼組成的代碼串。只是程序代碼則存放于程序存儲(chǔ)器中。
MCS-51具有64kB程序存儲(chǔ)器尋址空間,它是用于存放用戶程序、數(shù)據(jù)和表格等信息。對(duì)于內(nèi)部無(wú)ROM的8031單片機(jī),它的程序存儲(chǔ)器必須外接,空間地址為64kB,此時(shí)單片機(jī)的EA端必須接地。強(qiáng)制CPU從外部程序存儲(chǔ)器讀取程序。對(duì)于內(nèi)部有ROM的8051等單片機(jī),正常運(yùn)行時(shí),則需接高電平,使CPU先從內(nèi)部的程序存儲(chǔ)中讀取程序,當(dāng)PC值超過(guò)內(nèi)部ROM的容量時(shí),才會(huì)轉(zhuǎn)向外部的程序存儲(chǔ)器讀取程序。
當(dāng)EA=1時(shí),程序從片內(nèi)ROM開始執(zhí)行,當(dāng)PC值超過(guò)片內(nèi)ROM容量時(shí)會(huì)自動(dòng)轉(zhuǎn)向外部ROM空間。
當(dāng)EA=0時(shí),程序從外部存儲(chǔ)器開始執(zhí)行,例如前面提到的片內(nèi)無(wú)ROM的8031單片機(jī),在實(shí)際應(yīng)用中就要把8031的EA引腳接為低電平。
程序內(nèi)存ROM
尋址范圍:0000H ~ FFFFH 容量64KB
EA = 1,尋址內(nèi)部ROM;EA = 0,尋址外部ROM
地址長(zhǎng)度:16位
作用: 存放程序及程序運(yùn)行時(shí)所需的常數(shù)。
下圖是ROM的地址分配圖:


8051片內(nèi)有4kB的程序存儲(chǔ)單元,其地址為0000H—0FFFH,單片機(jī)啟動(dòng)復(fù)位后,程序計(jì)數(shù)器的內(nèi)容為0000H,所以系統(tǒng)將從0000H單元開始執(zhí)行程序。但在程序存儲(chǔ)中有些特殊的單元,這在使用中應(yīng)加以注意:
其中一組特殊是0000H—0002H單元,系統(tǒng)復(fù)位后,PC為0000H,單片機(jī)從0000H單元開始執(zhí)行程序,從上圖中大家可以看到,0000H-0002H,只有三個(gè)存儲(chǔ)單元,3個(gè)存儲(chǔ)單元在我們的程序存放時(shí)是存放不了實(shí)際意義的程序的,通常我們?cè)趯?shí)際編寫程序時(shí)是在這里安排一條ORG指令,通過(guò)ORG指令跳轉(zhuǎn)到從0033H開始的用戶ROM區(qū)域,再來(lái)安排我們的程序語(yǔ)言。從0033開始的用戶ROM區(qū)域用戶可以通過(guò)ORG指令任意安排,但在應(yīng)用中應(yīng)注意,不要超過(guò)了實(shí)際的存儲(chǔ)空間,不然程序就會(huì)找不到。
另一組特殊單元是0003H—002AH,這40個(gè)單元各有用途,它們被均勻地分為五段,它們的定義如下:
0003H—000AH 外部中斷0中斷地址區(qū)。
000BH—0012H 定時(shí)/計(jì)數(shù)器0中斷地址區(qū)。
0013H—001AH 外部中斷1中斷地址區(qū)。
001BH—0022H 定時(shí)/計(jì)數(shù)器1中斷地址區(qū)。
0023H—002AH 串行中斷地址區(qū)。
可見以上的40個(gè)單元是專門用于存放中斷處理程序的地址單元,中斷響應(yīng)后,按中斷的類型,自動(dòng)轉(zhuǎn)到各自的中斷區(qū)去執(zhí)行程序。從上面可以看出,每個(gè)中斷服務(wù)程序只有8個(gè)字節(jié)單元,用8個(gè)字節(jié)來(lái)存放一個(gè)中斷服務(wù)程序顯然是不可能的。因此以上地址單元不能用于存放程序的其他內(nèi)容,只能存放中斷服務(wù)程序。但是通常情況下,我們是在中斷響應(yīng)的地址區(qū)安放一條無(wú)條件轉(zhuǎn)移指令,指向程序存儲(chǔ)器的其它真正存放中斷服務(wù)程序的空間去執(zhí)行,這樣中斷響應(yīng)后,CPU讀到這條轉(zhuǎn)移指令,便轉(zhuǎn)向其他地方去繼續(xù)執(zhí)行中斷服務(wù)程序。
數(shù)據(jù)存儲(chǔ)器
數(shù)據(jù)存儲(chǔ)器也稱為隨機(jī)存取數(shù)據(jù)存儲(chǔ)器。數(shù)據(jù)存儲(chǔ)器分為內(nèi)部數(shù)據(jù)存儲(chǔ)和外部數(shù)據(jù)存儲(chǔ)。MCS-51內(nèi)部RAM有128或256個(gè)字節(jié)的用戶數(shù)據(jù)存儲(chǔ)(不同的型號(hào)有分別),片外最多可擴(kuò)展64KB的RAM,構(gòu)成兩個(gè)地址空間,訪問(wèn)片內(nèi)RAM用“MOV”指令,訪問(wèn)片外RAM用“MOVX”指令。它們是用于存放執(zhí)行的中間結(jié)果和過(guò)程數(shù)據(jù)的。MCS-51的數(shù)據(jù)存儲(chǔ)器均可讀寫,部分單元還可以位尋址。
MCS-51單片機(jī)的內(nèi)部數(shù)據(jù)存儲(chǔ)器在物理上和邏輯上都分為兩個(gè)地址空間,即:
數(shù)據(jù)存儲(chǔ)器空間(低128單元);
特殊功能寄存器空間(高128單元);
這兩個(gè)空間是相連的,從用戶角度而言,低128單元才是真正的數(shù)據(jù)存儲(chǔ)器。下面我們就來(lái)詳細(xì)的與大家講解一下:
內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM
物理上分為兩大區(qū):00H ~ 7FH即128B內(nèi)RAM 和 SFR區(qū)。
作用:作數(shù)據(jù)緩沖器用。


從上圖中我們可以看到,8051單片機(jī)片內(nèi)RAM共有256個(gè)單元(00H-FFH),這256個(gè)單元共分為兩部分。其一是地址從00H—7FH單元(共128個(gè)字節(jié))為用戶數(shù)據(jù)RAM。從80H—FFH地址單元(也是128個(gè)字節(jié))為特殊寄存器(SFR)單元。從圖1中可清楚地看出它們的結(jié)構(gòu)分布。
低128單元:
片內(nèi)數(shù)據(jù)存儲(chǔ)器為8位地址,所以最大可尋址的范圍為256個(gè)單元地址,對(duì)片外數(shù)據(jù)存儲(chǔ)器采用間接尋址方式,R0、R1和DPTR都可以做為間接尋址寄存器,R0、R1是8位的寄存器,即R0、R1的尋址范圍最大為256個(gè)單元,而DPTR是16位地址指針,尋址范圍就可達(dá)到64KB。也就是說(shuō)在尋址片外數(shù)據(jù)存儲(chǔ)器時(shí),尋址范圍超過(guò)了256B,就不能用R0、R1做為間接尋址寄存器,而必須用DPTR寄存器做為間接尋址寄存器。
1、通用寄存器區(qū)(00H-1FH)
在00H—1FH共32個(gè)單元中被均勻地分為四塊,每塊包含八個(gè)8位寄存器,均以R0—R7來(lái)命名,我們常稱這些寄存器為通用寄存器。這四塊中的寄存器都稱為R0—R7,那么在程序中怎么區(qū)分和使用它們呢?聰明的INTEL工程師們又安排了一個(gè)寄存器——程序狀態(tài)字寄存器(PSW)來(lái)管理它們,CPU只要定義這個(gè)寄存的PSW的D3和D4位(RS0和RS1),即可選中這四組通用寄存器。對(duì)應(yīng)的編碼關(guān)系如下表所示。惹程序中并不需要用4組,那么其余的可用做一般的數(shù)據(jù)緩沖器,CPU在復(fù)位后,選中第0組工作寄存器。

RS1 RS0

R0

R1

R2

R3

R4

R5

R6

R7

0

1

2

3

0     0

0     1

1     0

1     1

00H

08H

10H

18H

01H

09H

11H

19H

02H

0AH

12H

1AH

03H

0BH

13H

1BH

04H

0CH

14H

1CH

05H

0DH

15H

1DH

06H

0EH

16H

1EH

07H

0FH

17H

1FH

2、位尋址區(qū)(20H-2FH)
片內(nèi)RAM的20H—2FH單元為位尋址區(qū),既可作為一般單元用字節(jié)尋址,也可對(duì)它們的位進(jìn)行尋址。位尋址區(qū)共有16個(gè)字節(jié),128個(gè)位,位地址為00H—7FH。位地址分配如下表所示:

RAM位尋址區(qū)地址表

單元地址

MSB         位地址         LSB

 

2FH

7FH

7EH

7DH

7CH

7BH

7AH

79H

78H

 

2EH

77H

76H

75H

74H

73H

72H

71H

70H

 

2DH

6FH

6EH

6DH

6CH

6BH

6AH

69H

68H

 

2CH

67H

66H

65H

64H

63H

62H

61H

60H

 

2BH

5FH

5EH

5DH

5CH

5BH

5AH

59H

58H

 

2AH

57H

56H

55H

54H

53H

52H

51H

50H

 

29H

4FH

4EH

4DH

4CH

4BH

4AH

49H

48H

 

28H

47H

46H

45H

44H

43H

42H

41H

40H

 

27H

3FH

3EH

3DH

3CH

3BH

3AH

39H

38H

 

26H

37H

36H

35H

34H

33H

32H

31H

30H

 

25H

2FH

2EH

2DH

2CH

2BH

2AH

29H

28H

 

24H

27H

26H

25H

24H

23H

22H

21H

20H

 

23H

1FH

1EH

1DH

1CH

1BH

1AH

19H

18H

 

22H

17H

16H

15H

14H

13H

12H

11H

10H

 

21H

0FH

0EH

0DH

0CH

0BH

0AH

09H

08

H

 

20H

07H

06H

05H

04H

03H

02H

01H

00H

 

CPU能直接尋址這些位,執(zhí)行例如置“1”、清“0”、求“反”、轉(zhuǎn)移,傳送和邏輯等操作。我們常稱MCS-51具有布爾處理功能,布爾處理的存儲(chǔ)空間指的就是這些為尋址區(qū)。
3、用戶RAM區(qū)(30H-7FH)
在片內(nèi)RAM低128單元中,通用寄存器占去32個(gè)單元,位尋址區(qū)占去16個(gè)單元,剩下的80個(gè)單元就是供用戶使用的一般RAM區(qū)了,地址單元為30H-7FH。對(duì)這部份區(qū)域的使用不作任何規(guī)定和限制,但應(yīng)說(shuō)明的是,堆棧一般開辟在這個(gè)區(qū)域。
高128單元:(80H-FFH)

符號(hào)

地址

功能介紹

B

F0H

B寄存器

ACC  

E0H

累加器

PSW  

D0H

程序狀態(tài)字

IP  

B8H

中斷優(yōu)先級(jí)控制寄存器

P3  

B0H

P3口鎖存器

IE  

A8H

中斷允許控制寄存器

P2  

A0H

P2口鎖存器

SBUF

99H

串行口鎖存器

SCON

98H

串行口控制寄存器

P1  

90H

P1口鎖存器

TH1  

8DH

定時(shí)器/計(jì)數(shù)器1(高8位)

TH0

8CH

定時(shí)器/計(jì)數(shù)器1(低8位)

TL1

8BH

定時(shí)器/計(jì)數(shù)器0(高8位)

TL0  

8AH

定時(shí)器/計(jì)數(shù)器0(低8位)

TMOD

89H

定時(shí)器/計(jì)數(shù)器方式控制寄存器

TCON

88H

定時(shí)器/計(jì)數(shù)器控制寄存器

DPH  

83H

數(shù)據(jù)地址指針(高8位)

DPL

82H

數(shù)據(jù)地址指針(低8位)

SP

81H

堆棧指針

P0

80H

P0口鎖存器

PCON

87H

電源控制寄存器

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多