第二章
MCS-51单片机的内部结构
MCS-51系列单片机都是以 8051为核心电路发展起来的,都具有 8051的基本结构和软件特征。 8051单片机包含了作为微型计算机所必须的基本功能部件,各功能部件相互独立而融为一体,集成在同一块芯片上。
1.CPU 核心部件 字长 8位
1).运算器
① 算术逻辑单元 ALU
② 累加器 A(ACC)
8位 频繁使用 存放操作数和中间结果,大部分操作都通过 A。
③ 寄存器 B
乘除运算使用,存放乘数和乘积的高 8位,存放除数和余数,还可以作一般的用。
④ 程序状态器寄存器 PSW ( 8位)
特殊功能寄存器用于存放运算结果的状态信息,以供程序查询和判断。
Cy(PSW.7)进位(或借位)标志位有进位或借位时
Cy=1,反之 Cy=0 进行位操作时 Cy做累加器用。
AC (PSW.6)半进位(或借位)标志位低 4位向高四位有进 /借位时 AC=1,否则 AC=0,专用于 BCD码运算。
F0(PSW.5) 用户自定义标志位可软件设置
OV (PSW.2)溢出标志位溢出时 OV=1,否则 OV=0,专指有符号数
RS1 RS0 (PSW.4 PSW.3)
工作寄存器组选择标志位
P(PSW.0)奇偶校验标志位
A中 1的个数为奇数时 P=1,反之 P=0 。
51单片机偶校验
8086CPU奇校验
⑤ 布尔处理器
MCS-51CPU是 8位微处理器,具有 1位微处理器的功能,布尔处理器具有较强的布尔变量处理能力以位为单位进行运算和操作,以 Cy作为累加器,内部 RAM的所有可寻址的位作为操作位或存储位,有自己的指令系统。
2)控制器控制器是计算机的指挥控制部件,它对来自存储器中的指令进行译码,并通过定时和控制电路在规定的时刻发出各种操作所需要的控制信号,使各部件协调工作,完成指令所规定的操作。
① 程序 计数器 PC
16位的计数器,其内容为 CPU将要执行的下一条指令的地址,PC将决定程序的流程,每执行完一条指令 PC会自动增值,增值量与已执行过的指令的长度有关,寻址范围为 64KB。可以通过转移、调用、
返回等指令改变其内容,以实现程序的转移。复位后
PC=0000H
② 指令寄存器 IR和指令译码器 ID
指令 IR ID 电平信号控制信号执行操作译码
③ 数据指针寄存器 (DPTR)
存放 16位的地址作为访问 ROM和外部 RAM的地址。
两个 8位寄存器用
DPH高 8位
DPL低 8位
④ 堆栈指针寄存器 SP
8位寄存器 存放栈顶地址
RAM中开辟的一个连续区域“先进 后出” 。
向上生长型堆栈 进栈,SP+1,后输入数据出栈,输出数据,SP-1
2.存储器冯,诺依曼存储结构 ( 8086) ROM和 RAM统一编址哈佛存储结构 ( 51) ROM和 RAM分开(独立)编址
MCS-51有 4个物理上相互独立的地址空间。
片内 ROM和片外 ROM
片内 RAM和片外 RAM
从用户使用的角度分为三类:
片内片外统一编址的 ROM
0000H~FFFFH 64KB
00H~FFH 256B 片内 RAM
64KB片外 RAM 和 I/O端口地址
① ROM 存放代码和常数
EA=1,两者统一编址,PC在 0000H~0FFFH从片内取指令,PC大于 0FFFH时则从片外 ROM取指。
EA=0,片内 ROM不起作用,片外 ROM从 0000H
~FFFFH,对于片内无 ROM的 8031/2单片机,EA应接地,
以便从外部扩展 ROM中取指令。
8051从片内和片外 ROM中取指令时间相同。
在程序存储器,有些特殊单元。
0000H~0002H,系统复位 PC=0000H如果程序不从 0000H单元开始,则在此处安排一条无条件转移指令,以便直接转去执行用户程序。
0003H~002AH,共 40单元,分为 5段作为 5个中断源的中断地址区。
0003H~000AH INT0
0023H~002AH 串行口0013H~001AH INT1000BH~0012H T/C0
001BH~0022H T/C1
注,8个字节难以存放中断服务程序安排一条无条件转移指令。
② RAM
片内 RAM 256个单元低 128( 00H~7FH)
高 128( 80H~FFH) 用户不可用低 128B的用户数据存储( 52系列 256B)用于存放中间结果和过程数据,可读可写部分单元可以位寻址。
A.片内数据存储器低 128单元
a.工作寄存器( 00H ~1FH)
32个单元分 4组,存放操作数和中间结果,通用寄存器,可以就近存储数据,提高了单片机的运算速度。
任一时刻,CPU只能使用其中一组。
b.位寻址( 20H ~2FH)
16个单元共 128位,每一位都有相应的位地址,既可以作一般的 RAM
也可以位寻址。
布尔处理器的存储空间 00H~7FH,低 128B地址也是
00H~7FH,用不同的寻址方式区分,访问 128BRAM用直接寻址和间接寻址,访问 128位地址用位寻址方式。
c.用户区( 30H ~7FH)
供用户使用,共 80个单元,存放用户数据和做堆栈区用。
B.特殊功能寄存器( SFR)
a.SFR字节寻址
8051片内 21个特殊功能寄存器不连续分散在内部 RAM高 128B,空闲地址用户不可用,寻址采用直接寻址,用寄存器单元地址和寄存器都行。
b.SFR位寻址在 21个 SFR中共有 11个位寻址,88位,5位未用,
共 83位。 MCS-51内部共有 211个位寻址单元。
片外 RAM的地址范围为 0000H~FFFFH,其中
0000H~00FFH与片内 RAM重叠,CPU使用 MOV(片内)和 MOVX(片外)指令区分。
3.定时器 /计数器( T/C)
8051 MCU 2个 16位 T/C TC0和 TC1
TC0
TH0( 8CH)高 8位
TL0( 8AH)低 8位
TC1
TH1( 8DH)高 8位
TL1( 8BH)低 8位存计数初值,
加 1计数
4.并行 I/O接口
8051MCU 4个并行 I/O口 P0~P3共 32位根 I/O线。
双向 I/O功能一个 8位数据输出锁存器一个输出驱动器一个 8位数据输入缓冲器
CPU将数据从并行 I/O接口输出时,可以得到锁存,
输入时可得到缓存。
CPU访问片外存储器时,P2输出地址线的高 8位地址码 (A15~A8) P0输出地址线的低 8位地址码 (A7~A0 )
P0口兼作 8位双向数据总线 D7~D0 分时复用
P0口不接外存储器或不扩展 I/O接口,P0口可作数据输入 /出。
P1口常作数据输入 /出,CPU传送用户数据用,P3口除作为数据输入 /出使用外还有第二功能。
5.串行口
MCS-51 MCU内部有一个可编程的全双工串行接口。
CPU → 串 → TxD
RxD → 串 → CPU
SUBF(99H) 数据缓冲寄存器机器内部有 2个 8位 SBUF寄存器,共用一个
99H,读写区分。
SCON 串行口控制寄存器 (控制 )
PCON 电源控制及波特率选择寄存器 (工作状态、波特率倍增控制 )
6.中断系统
8051 MCU有 5个中断源,分为高低两个优先级 (实时控制、故障自动处理、计算机与外设之间传送数据及人机对话 )
MCS-51单片机引脚功能
ALE/PROG
访问外部存储器时,ALE用于锁存出现在 P0口的低 8位地址,隔离地址和数据。
ALE周期的向外输出正脉冲信号( 6T)可作为外部时钟或外部定时脉冲。
PROG对 8751EPROM编程时,作为编程脉冲的输入端。
PSEN
片外 ROM的选通信号,低电平有效,
从片外 ROM读取指令和常数,每个机器周期该信号两次有效,以实现对片外 ROM单元的读操作。
EA/VPP
EA=0,内 ROM无用,只用外 ROM
EA=1,内外 ROM都用,PC>4K,自动读外 ROM。
VPP 用于 8751的 EPROM编程时,
转入 21V编程电压。
RST/VDD
复位信号,2个机器周期的高电平就可以复位,
VDD为备用电源的输入端。
I/O端口 P0,P1,P2,P3
MCS-51单片机的工作方式
1.复位方式 单片机复位后 (PC)=0000H (SP)=07H
2.单步执行方式 JNB P3.2,$;若 INT0=0,则等待
JB P3.2,$;若 INT0=1,则等待
RETI ;返回程序
3.程序执行方式单片机的基本工作方式,复位后 PC=0000H,从 0000H
开始执行。
MCS-51单片机的时序
MCS-51时序的单位从小到大依次为节拍、状态、
机器周期、指令周期
1,时序单位
① 节拍和状态时钟周期定义为节拍 (P),2个节拍为一个状态
(S)P1P2
② 机器周期
MCS-51采用定时控制方式,有固定的机器周期一个机器周期 6个状态 S1~S6,12个节拍 (时钟周期 )。
fosc=12MHz 一个机器周期为 1us
fosc=6MHz 一个机器周期为 2us
③ 指令周期指令周期是最大的时序定时单位,执行一条指令所需要的时间为指令周期。
2.MCS-51指令的取指 /执行时序执行指令分为取指阶段和执行指令阶段,单片机在取执阶段把 PC中地址送到 ROM,取出指令的操作码和操作数,指令执行阶段对指令进行译码以产生控制信号完成指令的执行。
每个机器周期 ALE2次,S1P2,S4P2持续时间为 S。
ALE每出现一次进行一次取指操作。
S1
P1P2 P1P2
S2
P1P2
S3 S4
P1P2
S5
P1P2
S6
P1P2
S1
P1P2 P1P2
S2
P1P2
S3 S4
P1P2
S5
P1P2
S6
P1P2