第二章 AT89S51 单片机的硬件结构
硬件组成
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7wlHB9WQ-1668761320975)(…/图片/微机原理与接口技术/AT89S51片内组成.png)]
功能部件
微处理器 CPU
8位
运算器、控制器
位处理功能
数据存储器 RAM
128B RAM(52 -> 256B)
片外 64KB
程序存储器 ROM
4KB Flash ROM(AT89S52 -> 8KB,AT89C55 -> 20KB)
片外 64KB
中断系统
5个中断源、5个中断向量
2级中断优先权
定时器/计数器
2个16位、可编程(52 -> 3个)
4种工作方式
串行口
通用异步收发传输器(UART)
1个、全双工、异步
4种工作方式
串行通信、扩展并行I/O口、构成多机通信系统
并行I/O口
4个8位、可编程
P0口、P1口、P2口、P3口
特殊功能寄存器 SFR
26个
管理、控制和监视
控制寄存器、状态寄存器
映射片内 RAM 区 80H ~ FFH 内(128B)
看门狗定时器 WDT
1个
程序死循环或跑飞时恢复
低功耗模式
空闲模式
掉电模式
掉电状态下的中断恢复模式
3个程序加密锁定位
程序跑飞原因
- 意外中断
- 地址溢出
- 死循环
- 堆栈溢出
与AT89C51比的优点
- 在系统编程(ISP)字节和页编程,灵活调试程序
- 2个数据指针,便捷 RAM 访问
- 看门狗定时器,提高抗干扰能力
- 增加断电标志
- 增加掉电状态下的中断恢复模式
特性
- 基本结构
- 传统微机结构 CPU+外围芯片
- CPU 对功能部件的控制
- 集中控制方式
- 特殊功能寄存器
引脚功能
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NYzhcHkY-1668761320976)(…/图片/微机原理与接口技术/AT89S51引脚.png)]
40 只引脚双列直插
电源引脚
VCC 40 +5V
VSS 20 数字地
时钟引脚
XTAL1 19 外部晶振
振荡器和时钟输入端
振荡器 外接石英晶体和微调电容
外部时钟 外接时钟信号
XTAL2 18
振荡器输出端
振荡器 外接石英晶体和微调电容
外部时钟 悬空
控制引脚
RST(RESET)9
>2个机器周期高电平 -> 复位
<=0.5V -> 正常工作
看门狗溢出 -> 输出 96 个时钟振荡周期高电平
EA*/VPP 31
EA* 外部程序存储器访问允许
EA*=1 小内大外
PC<=0FFFH 读片内 4KB
PC>0FFFH 读片外 60KB(1000H ~ FFFFH)
EA*=0 只读外
读片外 64KB(0000H ~ FFFFH)
4KB Flash 无效
VPP 片内 Flash 编程电压(5/12V)
ALE/PROG* 30
ALE
外部存储器低八位地址锁存控制信号
正常工作 正脉冲输出 f=f(晶振)/6
访问外部 丢失一个 ALE 脉冲
禁止位不影响外部存储器访问
PROG* 片内 Flash 编程脉冲输入
PSEN* 29
片外程序存储器读选通信号
低有效
并行I/O口引脚
P0口 漏极开路的双向I/O口(不能输出高电平)
通用I/O口
准双向口
外加上拉电阻
作输入先写1
8个LS型TTL负载
外扩存储器 I/O接口芯片
双向三态I/O口
低8位地址总线及数据总线
分时复用(ALE 控制)
P1口
通用I/O口
准双向口
内有上拉电阻
作输入先写1
4个LS型TTL负载
P1.5/MOSI P1.6/MISO P1.7/SCK
片内 Flash 串行编程和校验
串行数据输入 输出 移位脉冲
P2口
通用I/O口
准双向口
内有上拉电阻
作输入先写1
4个LS型TTL负载
外扩存储器 I/O接口芯片
高8位地址总线
P3口
通用I/O口
准双向口
内有上拉电阻
作输入先写1
4个LS型TTL负载
第二功能见表
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mxTz51hj-1668761320976)(…/图片/微机原理与接口技术/P3口第二功能.png)]
CPU
运算器
ALU
8位
算术运算
逻辑运算
位操作
累加器 A
8位
寄存器
汇编有时写为 Acc
ALU 输入输出
瓶颈堵塞 -> 不经过累加器的传送指令
Cy
进位标志
位处理机位累加器
程序状态寄存器 PSW
SFR D0H
Cy Ac F0 RS1 RS0 OV - P
Cy 进位标志位
1 进位/借位
位处理机位累加器
Ac 辅助进位标志位
BCD 码(8421 余三码)
1 D3向D4进位/借位
F0 用户设定标志位
自定义 flag
RS1 RS0 选择工作寄存器区
共4组
00H~07H +8*4
OV 溢出标志位
1 溢出
- 保留位
P 奇偶标志位
累加器A中1的个数
1 奇数
0 偶数
控制器
任务
识别指令(指令读入、译码、执行)
控制功能部件(定时、逻辑)
程序计数器 PC
16位计数器
不可直接访问
复位 -> 0000H
PC内容变化轨迹
顺序执行 +1
转移程序、子程序、中断子程序 =目标地址
PC计数宽度
程序存储器 ROM 地址范围
16位 -> 64KB(2^16B)
存储器
哈佛结构
程序存储器与数据存储器分离
存储器空间
程序存储器
片内外访问EA*决定
1 地址决定内外
0 只读片外 忽略片内
片内
4KB Flash
0000H ~ 0FFFH
片外
扩展至 64KB
0000H ~ FFFFH
16位地址线
中断程序入口(5条跳转指令)
外部中断0 0003H
定时器T0 000BH
外部中断1 0013H
定时器T1 001BH
串行口 0023H
0000H
PC复位值
存放主程序入口跳转指令
数据存储器
片内 00H ~ 7FH
128B RAM
00H ~ 1FH
32字节
4组通用工作寄存器区
RS0 RS1选择
20H ~ 2FH
16字节
16*8=128位可位寻址/字节寻址
30H ~ 7FH
数据,堆栈
片外
扩展至 64KB
低128B地址相同,访问指令不同
特殊功能寄存器 SFR
26个
片内RAM 80H ~ FFH
比AT89C51新增5个
DP1L DP1H AUXR AUXR1 WDTRST
位寻址
末位0H 8H
读/写未定义 -> 随机数
SP 堆栈指针
指向堆栈顶部在 RAM 中的地址
复位 07H 一般改为 >60H
堆栈
子程序调用
中断操作
保护断点和现场
现场 寄存器内容
B 乘除 辅助寄存器
A 乘数 被除数 商
B 乘数 乘积 除数 余数
AUXR 辅助寄存器
- - - WDTDLE DISRTO - - DISALE
DISALE ALE脉冲控制
0 ALE发出脉冲
1 不访问外部存储器时,ALE不输出脉冲信号
DISRTO WDT溢出时复位输出控制
0 WDT溢出时,RST输出一个高电平
1 禁止WDT,RST仅作输入
WDIDLE WDT空闲模式控制。
0 计数;
1 暂停计数
AUXR1 辅助寄存器
- - - - - - - DPS
DPS 数据指针寄存器选择
0 DPTR0
1 DPTR1
DPTR0 DPTR1 数据指针寄存器
复位 选DPTR0
作16位/两个8位
WDT 看门狗寄存器
14位计数器
定时器复位寄存器 WDTRST
位地址
211个可寻址位
00H ~ FFH
片内 RAM
128位 20H ~ 2FH
SFR
83位
RAM 128位 + SFR 83位
并行I/O端口
P0口
外扩RAM I/O 地址/数据总线
否则 通用I/O
复用地址/数据总线
连接外部扩展的存储器和I/O连接
输出低8位地址
输出/输入8位数据
双向端口
通用I/O
外加上拉电阻
准双向口
P1口
通用I/O
输出口
不用外加上拉电阻
输入口
读锁存器 Q
读引脚 引脚电平
向锁存器写1
准双向口
P2口
双功能口 不可兼用
地址总线口
输出高8位地址
输出锁存器内容不变
通用I/O
准双向口
同P1
P3口
第二功能
输出 锁存置1
输入 锁存和第二功能输出均置1
读引脚
通用I/O
输出 第二功能输出置1
输入 锁存和第二功能输出均置1
读引脚
机器周期、指令周期、指令时序
时钟周期
T=1/f(晶振)
机器周期
T=12*T(时钟)
CPU基本操作时间
6个状态 每个两拍
计数周期
指令周期
一条指令所需时间
单双字节指令 单双机器周期
三字节指令 双机器周期
乘除指令 4机器周期
低功耗节电模式
工作模式
空闲模式
关闭CPU时钟信号
CPU 空闲
振荡器工作
外围电路工作
WDT受WDIDLE控制
其他寄存器 RAM 保持之前状态
退出
响应任一中断
硬件复位
掉电保持模式
后备电源供电
所有部件停止
WDT停止
RAM SFR 内容保留
退出
硬件复位(复位SFR 不改RAM)
外部中断
PCON 寄存器
SMOD - - - GF1 GF0 PD IDL
SMOD 串行波特率选择
GF1 GF0 通用标志位 flag
PD 1 进入掉电保持模式
IDL 1 进入空闲模式