AT89C2051管腳圖引腳圖中文資料
;98c2051外部引腳圖:(可以直接拷入ASM程序文件中,作注釋使用,十分方便)
;
;????????????????????????? ┏━┓┏━┓
;??????????????? RET????? ┫1 ┗┛20┣??????? Vcc
;????????? RXD P3.0 ┫2?????????? 19┣??????? P1.7????
;????????? TXD P3.1 ┫3?????????? 18┣??????? P1.6????
;??????? -INT0 P3.2 ┫6?????????? 17┣??????? P1.5????
;??????? -INT1 P3.3 ┫7?????????? 16┣??????? P1.4????
;??????????? T0 P3.4 ┫8?????????? 15┣??????? P1.3????
;??????????? T1 P3.5 ┫9?????????? 14┣??????? P1.2????
;???????????????? P3.7 ┫11????????? 13┣??????? P1.1??????? A1(+)
;???????????????? X1?????? ┫4??????????? 12┣??????? P1.0??????? A0(-)
;???????????????? X2?????? ┫5??????????? 10┣??????? GND
;???????????????????????? ┗━━━━┛
——————————————————————————————————————
【引腳電器性能】
AT89C2051單片機的P口特點:
??????? P1口:P1口是一個8位雙向I/O端口,其中P1.2~P1.7引腳帶有內部上拉電阻,P1.0
和P1.1要求外部上拉電阻。P1.0和P1.1還分別作為片內精密模擬比較器的同相輸入(AIN
0)和反相輸入(AIN1)。P1口輸出緩沖器可吸收20mA電流,并能直接驅動LED顯示。
??????? 對端口寫1時,通過內部的上拉電阻把端口拉到高電位,這時可作輸入口。P2口作輸
入口使用時,因為內部有上拉電阻,那些被外部信號拉低的引腳會輸出一個電流(Iil)
。
??????? P3口:P3.0~P3.5、P3.7是帶有內部上拉電阻的7個雙向I/O端口。P3.6用于固定輸
入片內比較器的輸出信號并且它作為一通用I/O口引腳而只讀。P3口輸出緩沖器可吸收
20mA電流。對端口寫1時,通過內部的上拉電阻把端口拉到高電位,這時可作輸入口。
P3口作輸入口使用時,因為內部有上拉電阻,那些被外部信號拉低的引腳會輸出一個電
流(Iil)。
AT89C51單片機的P口特點:
??????? P0口:是一個8位漏極開路輸出型雙向I/O端口。作為輸出端口時,每位能以吸收電
流的方式驅動8 個TTL輸入,對端口寫1時,又可作高阻抗輸入端用。
??????? 在訪問外部程序或數據存儲器時,它是時分多路轉換的地址(低8位)/數據總線,
在訪問期間將激活內部的上拉電阻。
??????? P1口:P1口是一個帶有內部上拉電阻的8位雙向I/O端口。P1口的輸出緩沖器可驅動
(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過內部的上拉電阻把端口拉到高
電位,這時可作輸入口。P2口作輸入口使用時,因為內部有上拉電阻,那些被外部信號
拉低的引腳會輸出一個電流(Iil)。
??????? P2口:P2口是一個帶有內部上拉電阻的8位雙向I/O端口。P2口的輸出緩沖器可驅動
(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過內部的上拉電阻把端口拉到高
電位,這時可作輸入口。P2口作輸入口使用時,因為內部有上拉電阻,那些被外部信號
拉低的引腳會輸出一個電流(Iil)。
??????? 在訪問外部程序存儲器時和16位外部地址的外部數據存儲器(如執行 MOVX @DPTR)
時,P2口送出高8位地址。在訪問8位地址的外部數據存儲器(如執行 MOVX @RI)時,
P2口引腳上的內容(就是專用寄存器(SFR)區中的P2寄存器的內容),在整個訪問期間
不會改變。
??????? P3口:P3口是一個帶有內部上拉電阻的8位雙向I/O端口。P3口的輸出緩沖器可驅動
(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過內部的上拉電阻把端口拉到高
電位,這時可作輸入口。P3口作輸入口使用時,因為內部有上拉電阻,那些被外部信號
拉低的引腳會輸出一個電流(Iil)。
??????? 在穩定的狀態條件下Io 低被外部限制如下
1、每個管腳的最大IOL 15mA 注85 規格
2、每個8 位口的最大IOL 26 mA
3、IOL 輸出最大總和 71mA
4、如果IOL 超過測試條件VOL 可能會超過相應規格不能保證超過測試電流
——————————————————————————————————————
內部單元:
運算器:
1、算術/邏輯部件ALU:用以完成+、-、*、/ 的算術運算及布爾代數的邏輯運算
,并通過運算結果影響程序狀態寄存器PSW的某些位,從而為判斷、轉移、十進制修正
和出錯等提供依據。
2、累加器A:在算術/邏輯運算中存放一個操作數或結果,在與外部存儲器和I/O
接口打交道時,進行數據傳送都要經過A來完成。
3、寄存器B:在 *、/ 運算中要使用寄存器B 。乘法時,B用來存放乘數以及積的
高字節;除法時,B用來存放除數及余數。不作乘除時,B可作通用寄存器使用。
4、程序狀態標志寄存器PSW:用來存放當前指令執行后操作結果的某些特征,以便
為下一條指令的執行提供依據。
【PSW】 (D0H)?????? D7????? D6????? D5????? D4????? D3????? D2????? D1????? D0
??????????????????? Cy????? AC????? F0????? RS1 RS0 OV????? —????? P
Cy:進位標志。有進位或借位,則Cy=1,否則Cy=0 ;在布爾運算時,Cy(簡稱C)
作為布爾處理器。
AC:輔助進位標志位。
F0:用戶標志位:用戶可用軟件對F0置位“1”或清“0”,以決定程序的流向。
OV:溢出標志位:當運算結果溢出時,OV為“1”,否則為“0”。
D.1:未定義。
P: 奇偶校驗位:當累加器A中的“1”的個數為奇數時,P置“1”,否則P置“0”
。
RS1、RS0:工作寄存區選擇位:
——————————————————————————————————————
??????????????????? 【片內工作寄存器組】
·RS1、RS0與片內工作寄存器組的對應關系
??????? RS1 RS0 寄存器區??????? 片內RAM地址 通用寄存器名稱
??????? 0?????? 0?????? 0?????????? 00H~07H??????? R0~R7
??????? 0?????? 1?????? 1?????????? 08H~0FH??????? R0~R7
??????? 1?????? 0?????? 2?????????? 10H~17H??????? R0~R7
??????? 1?????? 1?????? 3?????????? 18H~1FH??????? R0~R7
控制器:
1、指令寄存器IR和指令譯碼器。
2、程序計數器:存放CPU執行下一條指令的地址。是一個16位寄存器,可尋址64KB
。
3、堆棧指針SP:用于子程序調用和中斷處理。【機器復位后,SP←#07H ,因此壓
棧的第一個數據在08H單元中】。
4、數據指針寄存器DPTR:16位的寄存器,也可以作為兩個8位寄存器DPH和DPL 。
DPTR主要作外部數據指針,可對64KB外部RAM進行間接尋址。
——————————————————————————————————————
MCS-51由包括PC在內的22個特殊功能寄存器,它們除有各自的名稱外,還有唯一的
地址,
離散的分布在片內RAM中的80H~FFH共128個存儲單元中。在這128個儲存單元構成的
SFR塊中,未被占用的單元不可使用!
??????????????? 【21個特殊功能寄存器SFR】
特殊功能寄存器????? 功能名稱?????????????????????????? 地址??????? 復位后狀態
B?????????? *?????????? 寄存器???????????????????????????? F0H???????? 00H
A?????????? *?????????? 累加器???????????????????????????? E0H???????? 00H
PSW???????? *?????????? 程序狀態標志寄存器???????????????? D0H???????? 00H
IP????????? *?????????? 中斷優先級控制器?????????????????? B8H???????? XXX00000B
P3????????? *?????????? P3口數據寄存器???????????????????? B0H???????? FFH
IE????????? *?????????? 中斷允許控制寄存器???????????????? A8H???????? 0XX00000B
P2????????? *?????????? P2口數據寄存器???????????????????? A0H???????? FFH
SBUF??????????????? 串行口發送/接收緩沖器???????????? 99H???????? 不定
SCON??????? *?????????? 串行口控制寄存器?????????????????? 98H???????? 00H
P1????????? *?????????? P1口數據寄存器???????????????????? 90H???????? FFH
TL1???????????????? T1計數器低8位????????????????????? 8BH???????? 00H
TL0???????????????? T0計數器低8位????????????????????? 8AH???????? 00H
TH1???????????????? T1計數器高8位????????????????????? 8DH???????? 00H
TH0???????????????? T0計數器高8位????????????????????? 8CH???????? 00H
TMOD??????????????? 定時器/計數器方式控制寄存器?????? 89H???????? 00H
TCON??????? *?????????? 定時器控制寄存器?????????????????? 88H???????? 00H
PCON??????????????? 電源控制寄存器???????????????????? 87H???????? 00H
DPL???????????????? 地址寄存器低8位??????????????????? 82H???????? 00H
DPH???????????????? 地址寄存器高8位??????????????????? 83H???????? 00H
SP????????????????? 堆棧指針寄存器???????????????????? 81H???????? 07H
P0????????? *?????????? P0口數據寄存器???????????????????? 80H???????? FFH
PC????????????????? 程序計數器???????????????????????? 無地址????? 0000H
注:“*”表示可位尋址。
……………………………………………………………………………………………………
;SP賦值方法:(其中#50H為寄存器50H,不可直接寫為50H,否則SP指向寄存器00H)
??????? MOV SP,#50H
……………………………………………………………………………………………………
——————————————————————————————————————
??????????? 【SER塊中具有位尋址功能寄存器的位地址】
地址????? [HSB]?????? 位地址名稱:即可用地址,也可用()內的名稱????? [LSB]????? 寄存器
F0H?????? F7????????? F6????????? F5????????? F4????????? F3????????? F2????????? F1????????? F0????????? B
E0H?????? E7????????? E6????????? E5????????? E4????????? E3????????? E2????????? E1????????? E0????????? A
D0H?????? D7????????? D6????????? D5????????? D4????????? D3????????? D2????????? D1????????? D0????????? PSW
B8H?????? —????????? —????????? —????????? BC(PS)????? BB(PT1) BA(PX1) B9(PT0) B8(PX0) IP
B0H?????? B7????????? B6????????? B5????????? B4????????? B3????????? B2????? B1????? B0????????? P3
A8H?????? AF(EA)????? —????????? —????????? AC(ES)????? AB(ET1) AA(EX1) A9(ET0) A8(EX0) IE
A0H?????? A7????????? A6????????? A5????????? A4????????? A3????????? A2????????? A1????????? A0????????? P2
98H?????? 9F(SM0) 9E(SM1) 9D(SM2) 9C(REN) 9B(TB8) 9A(RB8) 99(TI)????? 98(RI)????? SCON
90H?????? 97????????? 96????????? 95????????? 94????????? 93????????? 92????????? 91????????? 90????????? P1
88H?????? 8F(TF1) 8E(TR1) 8D(TF0) 8C(TR0) 8B(IE1) 8A(IT1) 89(IE0) 88(IT0) TCON
80H?????? 87????????? 86????????? 85????????? 84????????? 83????????? 82????????? 81????????? 80????????? P0
——————————————————————————————————————
??????????????????? 【存儲器】
1、數據存儲器(即RAM)
MCS-51系列有128B內部數據存儲器(片內ARM),分3部分:
7FH┓
?????? ┣ 數據緩沖區:存放數據或是作為堆棧區。
30H┛
2FH┓ 位尋址區:這(61×8)128位的為地址為00H~7FH,其中每位占用一個位地址。
?????? ┣ 【這些位地址名可以并只能在位操作指令中使用。例如:MOV C,30H
20H┛ 其中的30H是指位地址名,而不是寄存器30H,要特別注意。】
1FH┓
?????? ┣ 寄存器 3 區┓
18H┛??????????????? ┃
17H┓??????????????? ┣ 4個寄存器區占用內部RAM的00H~1FH共31個單元。
?????? ┣ 寄存器 2 區┃ 其中每區8個寄存器為R0~R7,參見上述“工作寄存器組”。
10H┛??????????????? ┃ 【注:因為CPU復位時,SP(堆棧指針)指向07H,使用寄存
0FH┓??????????????? ┃ 器1、2、3時,必須將SP移至數據緩沖區(30H~7FH)。】
?????? ┣ 寄存器 1 區┃
08H┛??????????????? ┃
07H┓??????????????? ┃
?????? ┣ 寄存器 0 區┛
00H┛