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引腳帶有內(nèi)部上拉電阻,P1.0
和P1.1要求外部上拉電阻。P1.0和P1.1還分別作為片內(nèi)精密模擬比較器的同相輸入(AIN
0)和反相輸入(AIN1)。P1口輸出緩沖器可吸收20mA電流,并能直接驅(qū)動LED顯示。
??????? 對端口寫1時,通過內(nèi)部的上拉電阻把端口拉到高電位,這時可作輸入口。P2口作輸
入口使用時,因為內(nèi)部有上拉電阻,那些被外部信號拉低的引腳會輸出一個電流(Iil)
。
??????? P3口:P3.0~P3.5、P3.7是帶有內(nèi)部上拉電阻的7個雙向I/O端口。P3.6用于固定輸
入片內(nèi)比較器的輸出信號并且它作為一通用I/O口引腳而只讀。P3口輸出緩沖器可吸收
20mA電流。對端口寫1時,通過內(nèi)部的上拉電阻把端口拉到高電位,這時可作輸入口。
P3口作輸入口使用時,因為內(nèi)部有上拉電阻,那些被外部信號拉低的引腳會輸出一個電
流(Iil)。
AT89C51單片機的P口特點:
??????? P0口:是一個8位漏極開路輸出型雙向I/O端口。作為輸出端口時,每位能以吸收電
流的方式驅(qū)動8 個TTL輸入,對端口寫1時,又可作高阻抗輸入端用。
??????? 在訪問外部程序或數(shù)據(jù)存儲器時,它是時分多路轉(zhuǎn)換的地址(低8位)/數(shù)據(jù)總線,
在訪問期間將激活內(nèi)部的上拉電阻。
??????? P1口:P1口是一個帶有內(nèi)部上拉電阻的8位雙向I/O端口。P1口的輸出緩沖器可驅(qū)動
(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過內(nèi)部的上拉電阻把端口拉到高
電位,這時可作輸入口。P2口作輸入口使用時,因為內(nèi)部有上拉電阻,那些被外部信號
拉低的引腳會輸出一個電流(Iil)。
??????? P2口:P2口是一個帶有內(nèi)部上拉電阻的8位雙向I/O端口。P2口的輸出緩沖器可驅(qū)動
(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過內(nèi)部的上拉電阻把端口拉到高
電位,這時可作輸入口。P2口作輸入口使用時,因為內(nèi)部有上拉電阻,那些被外部信號
拉低的引腳會輸出一個電流(Iil)。
??????? 在訪問外部程序存儲器時和16位外部地址的外部數(shù)據(jù)存儲器(如執(zhí)行 MOVX @DPTR)
時,P2口送出高8位地址。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行 MOVX @RI)時,
P2口引腳上的內(nèi)容(就是專用寄存器(SFR)區(qū)中的P2寄存器的內(nèi)容),在整個訪問期間
不會改變。
??????? P3口:P3口是一個帶有內(nèi)部上拉電阻的8位雙向I/O端口。P3口的輸出緩沖器可驅(qū)動
(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過內(nèi)部的上拉電阻把端口拉到高
電位,這時可作輸入口。P3口作輸入口使用時,因為內(nèi)部有上拉電阻,那些被外部信號
拉低的引腳會輸出一個電流(Iil)。
??????? 在穩(wěn)定的狀態(tài)條件下Io 低被外部限制如下
1、每個管腳的最大IOL 15mA 注85 規(guī)格
2、每個8 位口的最大IOL 26 mA
3、IOL 輸出最大總和 71mA
4、如果IOL 超過測試條件VOL 可能會超過相應(yīng)規(guī)格不能保證超過測試電流
——————————————————————————————————————
內(nèi)部單元:
運算器:
1、算術(shù)/邏輯部件ALU:用以完成+、-、*、/ 的算術(shù)運算及布爾代數(shù)的邏輯運算
,并通過運算結(jié)果影響程序狀態(tài)寄存器PSW的某些位,從而為判斷、轉(zhuǎn)移、十進制修正
和出錯等提供依據(jù)。
2、累加器A:在算術(shù)/邏輯運算中存放一個操作數(shù)或結(jié)果,在與外部存儲器和I/O
接口打交道時,進行數(shù)據(jù)傳送都要經(jīng)過A來完成。
3、寄存器B:在 *、/ 運算中要使用寄存器B 。乘法時,B用來存放乘數(shù)以及積的
高字節(jié);除法時,B用來存放除數(shù)及余數(shù)。不作乘除時,B可作通用寄存器使用。
4、程序狀態(tài)標(biāo)志寄存器PSW:用來存放當(dāng)前指令執(zhí)行后操作結(jié)果的某些特征,以便
為下一條指令的執(zhí)行提供依據(jù)。
【PSW】 (D0H)?????? D7????? D6????? D5????? D4????? D3????? D2????? D1????? D0
??????????????????? Cy????? AC????? F0????? RS1 RS0 OV????? —????? P
Cy:進位標(biāo)志。有進位或借位,則Cy=1,否則Cy=0 ;在布爾運算時,Cy(簡稱C)
作為布爾處理器。
AC:輔助進位標(biāo)志位。
F0:用戶標(biāo)志位:用戶可用軟件對F0置位“1”或清“0”,以決定程序的流向。
OV:溢出標(biāo)志位:當(dāng)運算結(jié)果溢出時,OV為“1”,否則為“0”。
D.1:未定義。
P: 奇偶校驗位:當(dāng)累加器A中的“1”的個數(shù)為奇數(shù)時,P置“1”,否則P置“0”
。
RS1、RS0:工作寄存區(qū)選擇位:
——————————————————————————————————————
??????????????????? 【片內(nèi)工作寄存器組】
·RS1、RS0與片內(nèi)工作寄存器組的對應(yīng)關(guān)系
??????? RS1 RS0 寄存器區(qū)??????? 片內(nèi)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、程序計數(shù)器:存放CPU執(zhí)行下一條指令的地址。是一個16位寄存器,可尋址64KB
。
3、堆棧指針SP:用于子程序調(diào)用和中斷處理。【機器復(fù)位后,SP←#07H ,因此壓
棧的第一個數(shù)據(jù)在08H單元中】。
4、數(shù)據(jù)指針寄存器DPTR:16位的寄存器,也可以作為兩個8位寄存器DPH和DPL 。
DPTR主要作外部數(shù)據(jù)指針,可對64KB外部RAM進行間接尋址。
——————————————————————————————————————
MCS-51由包括PC在內(nèi)的22個特殊功能寄存器,它們除有各自的名稱外,還有唯一的
地址,
離散的分布在片內(nèi)RAM中的80H~FFH共128個存儲單元中。在這128個儲存單元構(gòu)成的
SFR塊中,未被占用的單元不可使用!
??????????????? 【21個特殊功能寄存器SFR】
特殊功能寄存器????? 功能名稱?????????????????????????? 地址??????? 復(fù)位后狀態(tài)
B?????????? *?????????? 寄存器???????????????????????????? F0H???????? 00H
A?????????? *?????????? 累加器???????????????????????????? E0H???????? 00H
PSW???????? *?????????? 程序狀態(tài)標(biāo)志寄存器???????????????? D0H???????? 00H
IP????????? *?????????? 中斷優(yōu)先級控制器?????????????????? B8H???????? XXX00000B
P3????????? *?????????? P3口數(shù)據(jù)寄存器???????????????????? B0H???????? FFH
IE????????? *?????????? 中斷允許控制寄存器???????????????? A8H???????? 0XX00000B
P2????????? *?????????? P2口數(shù)據(jù)寄存器???????????????????? A0H???????? FFH
SBUF??????????????? 串行口發(fā)送/接收緩沖器???????????? 99H???????? 不定
SCON??????? *?????????? 串行口控制寄存器?????????????????? 98H???????? 00H
P1????????? *?????????? P1口數(shù)據(jù)寄存器???????????????????? 90H???????? FFH
TL1???????????????? T1計數(shù)器低8位????????????????????? 8BH???????? 00H
TL0???????????????? T0計數(shù)器低8位????????????????????? 8AH???????? 00H
TH1???????????????? T1計數(shù)器高8位????????????????????? 8DH???????? 00H
TH0???????????????? T0計數(shù)器高8位????????????????????? 8CH???????? 00H
TMOD??????????????? 定時器/計數(shù)器方式控制寄存器?????? 89H???????? 00H
TCON??????? *?????????? 定時器控制寄存器?????????????????? 88H???????? 00H
PCON??????????????? 電源控制寄存器???????????????????? 87H???????? 00H
DPL???????????????? 地址寄存器低8位??????????????????? 82H???????? 00H
DPH???????????????? 地址寄存器高8位??????????????????? 83H???????? 00H
SP????????????????? 堆棧指針寄存器???????????????????? 81H???????? 07H
P0????????? *?????????? P0口數(shù)據(jù)寄存器???????????????????? 80H???????? FFH
PC????????????????? 程序計數(shù)器???????????????????????? 無地址????? 0000H
注:“*”表示可位尋址。
……………………………………………………………………………………………………
;SP賦值方法:(其中#50H為寄存器50H,不可直接寫為50H,否則SP指向寄存器00H)
??????? MOV SP,#50H
……………………………………………………………………………………………………
——————————————————————————————————————
??????????? 【SER塊中具有位尋址功能寄存器的位地址】
地址????? [HSB]?????? 位地址名稱:即可用地址,也可用()內(nèi)的名稱????? [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、數(shù)據(jù)存儲器(即RAM)
MCS-51系列有128B內(nèi)部數(shù)據(jù)存儲器(片內(nèi)ARM),分3部分:
7FH┓
?????? ┣ 數(shù)據(jù)緩沖區(qū):存放數(shù)據(jù)或是作為堆棧區(qū)。
30H┛
2FH┓ 位尋址區(qū):這(61×8)128位的為地址為00H~7FH,其中每位占用一個位地址。
?????? ┣ 【這些位地址名可以并只能在位操作指令中使用。例如:MOV C,30H
20H┛ 其中的30H是指位地址名,而不是寄存器30H,要特別注意。】
1FH┓
?????? ┣ 寄存器 3 區(qū)┓
18H┛??????????????? ┃
17H┓??????????????? ┣ 4個寄存器區(qū)占用內(nèi)部RAM的00H~1FH共31個單元。
?????? ┣ 寄存器 2 區(qū)┃ 其中每區(qū)8個寄存器為R0~R7,參見上述“工作寄存器組”。
10H┛??????????????? ┃ 【注:因為CPU復(fù)位時,SP(堆棧指針)指向07H,使用寄存
0FH┓??????????????? ┃ 器1、2、3時,必須將SP移至數(shù)據(jù)緩沖區(qū)(30H~7FH)?!?br>?????? ┣ 寄存器 1 區(qū)┃
08H┛??????????????? ┃
07H┓??????????????? ┃
?????? ┣ 寄存器 0 區(qū)┛
00H┛