89C51外部引脚图:(可以直接拷入ASM程序文件中,作注释使用,十分方便)
; ┏━┓┏━┓
; P1.0 ┫1 ┗┛40┣ Vcc
; P1.1 ┫2 39┣ P0.0
; P1.2 ┫3 38┣ P0.1
; P1.3 ┫4 37┣ P0.2
; P1.4 ┫5 36┣ P0.3
; P1.5 ┫6 35┣ P0.4
; P1.6 ┫7 34┣ P0.5
; P1.7 ┫8 33┣ P0.6
; RST/Vpd ┫9 32┣ P0.7
; RXD P3.0 ┫10 31┣ -EA/Vpp(内1/外0 程序地址选择)
; TXD P3.1 ┫11 30┣ ALE/-P (地址锁存输出)
; -INT0 P3.2 ┫12 29┣ -PSEN (外部程序读选通输出)
; -INT1 P3.3 ┫13 28┣ P2.7
; T0 P3.4 ┫14 27┣ P2.6
; T1 P3.5 ┫15 26┣ P2.5
; -WR P3.6 ┫16 25┣ P2.4
; -RD P3.7 ┫17 24┣ P2.3
; X2 ┫18 23┣ P2.2
; X1 ┫19 22┣ P2.1
; GND ┫20 21┣ P2.0
; ┗━━━━┛
引脚说明:
①电源引脚
Vcc(40脚):典型值+5V。
Vss(20脚):接低电平。
②外部晶振
X1、X2分别与晶体两端相连接。当采用外部时钟信号时,X2接振荡信号,X1接地
。
③输入输出口引脚:
P0口:I/O双向口。作输入口时,应先软件置“ 1”。
P1口:I/O双向口。作输入口时,应先软件置“ 1”。
P2口:I/O双向口。作输入口时,应先软件置“ 1”。
P3口:I/O双向口。作输入口时,应先软件置“ 1”。
④控制引脚:
RST/Vpd、ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51的控制总线。
RST/Vpd(9脚):复位信号输入端(高电平有效)。
第二功能:加+5V备用电源,可以实现掉电保护RAM信息不丢失。
ALE/-PROG(30脚):地址锁存信号输出端。
第二功能:编程脉冲输入。
-PSEN(29脚):外部程序存储器读选通信号。
-EA/Vpp(31脚):外部程序存储器使能端。
第二功能:编程电压输入端(+21V)。
;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┛
原文链接:https://www.eeworld.com.cn/mcu/article_2016102130669.html