MCS-51单片机结构及原理
MCS-51单片机结构
MCS-51单片机的内部结构
- SCM——将通用微计算机基本功能部件集成在一块芯片上构成的一种专用微计算机系统
- 80C51=(1×8)CPU+128B RAM+4KB ROM+ (2×16)T/C + (4×8)I/O + 1个UART+5个中断源
UART:通用异步收发传输器。它将要传输的资料在串行通信与并行通信之间加以转换
单片机CPU = 控制器 + 运算器
- 控制器:
作用:统一指挥和控制计算机协调工作
组成:程序计数器PC+指令译码器ID+数据指针DPTR+其它专用寄存器
功能:
(1)从存储器中取出下一条要执行的指令(取指)
(2)对取出的指令进行识别(译码)
(3)指挥运算器运算或控制数据传送(指挥) - 程序计数器(Program Counter——PC)
作用:指令地址寄存器,永远存放着下一条指令的地址, PC的变化规律决定着程序的流程。
特点:
具有16位字长→可寻址范围216(=64KB)
具有自动加1功能(计数器)→顺序运行程序功能
具有可被指令修改功能→跳转运行程序功能
复位时,PC值为0 →复位后程序从0开始运行 - 数据指针寄存器(Data Pointer ——DPTR)
16位字长,可寻址范围 2 16 2^{16} 216(64KB)
可拆为2个8位的独立寄存器DPL和DPH
用于表示存储器数据地址的指针,以便对片外64K的数据RAM区进行读/写操作 - 运算器
作用:对数据进行算术运算和逻辑操作
组成:算术/逻辑部件ALU +累加器ACC+程序状态字寄存器PSW+其它工作单元
功能:
(1)对暂存器中的数据进行运算
(2)结果保存在ACC中
(3)运行状态反映在PSW中 - 累加器(Accumulater——A)
累加器A是一个8位寄存器,用来存放操作数或中间运算结果
通过暂存器与ALU相连
它是CPU中使用最频繁的寄存器 - 程序状态字寄存器(Program State Word——PSW)
PSW是一个8位的专用寄存器,用于存放程序运行过程中的各种状态信息。
寄存器名称 | 功能 |
---|---|
CY(PSW.7) | 进位标志 |
AC(PSW.6) | 辅助进位标志 |
F0(PSW.5) | 用户标志位(用户可自定义) |
RS1(PSW.4) | 工作寄存器组指针 |
RS0(PSW.3) | 工作寄存器组指针 |
OV(PSW.2) | 溢出标志 |
F1(PSW.1) | 用户标志位(用户可自定义) |
P(PSW.0) | 奇偶标志位 |
MCS-51引脚及功能
电源及晶振引脚(共4只)
控制引脚(共4只)
输入/输出引脚 (共32只)
电源及晶振引脚 | 引脚功能 |
---|---|
VCC | +5V电源引脚 |
VSS | 接地引脚 |
XTAL1 | 外接晶振引脚(内置放大器输入端) |
XTAL2 | 外接晶振引脚(内置放大器输出端) |
控制引脚 | 引脚功能 |
---|---|
RST/VPD | 为复位/ 备用电源引脚 |
ALE/ P R O G ‾ \overline{PROG} PROG | 为地址锁存使能输出/ 编程脉冲输入 |
P S E N ‾ \overline{PSEN} PSEN | 输出访问片外程序存储器读选通信号 |
E A ‾ / V P P \overline{EA}/ V_{PP} EA/VPP | 外接晶振引脚(内置放大器输出端) |
并行I/O口引脚 | 引脚功能 |
---|---|
P0.0~P0.7 | P0口 |
P1.0~P1.7 | P1口 |
P2.0~P2.7 | P2口 |
P3.0~P3.7 | P3口 |
MCS-51的存储器结构
存储器划分方法
计算机存储器地址空间的两种结构形式:
普林斯顿结构和哈佛结构。
MCS-51系列单片机采用哈佛结构,存储器配置如图 :
程序存储器
作用:存放程序、表格或常数(非易失性——掉电保存)
字长:8位
数量:4KB
ROM的6个特殊存储器单元——引导程序跳转
地址 | 功能 |
---|---|
0000H | 复位后程序自动运行的首地址 |
0003H | 外部中断0入口地址 |
000BH | 定时器0溢出中断入口地址 |
0013H | 外部中断1入口地址 |
001BH | 定时器1溢出中断入口地址 |
0023H | 串行口中断入口地址 |
所以,程序一般应安排在0030H地址以后。 | |
- 当EA引脚接高电平(开关接A点)时,4 KB以内的地址在片内ROM,大于4KB的地址在片外ROM中(图中折线),两者共同构成64KB空间;
- 当**EA引脚接低电平(开关接B点)**时,片内ROM被禁用,全部64KB地址都在片外ROM中(图中直线)。
数据存储器
作用:存放程序运行结果
字长:8位
数量:256B
低128B( 00H~7FH )为普通RAM区
高128B (80H~FFH)为特殊功能寄存器区
位寻址与字节寻址:
这里我们以一个例子进行说明
- 欲将地址(20H)中存放数 0111 0010B的最高位改为1, 而其余不变。
方法1,用 数1000 0000B与(20H)的内容进行“或”运算
MOV A, 20H ;先将 20H的内容传入A里
ORL A, #80H ;再对A进行80H的“或”运算
方法2,直接针对最高位进行“置位”操作
SETB 07H ;07H为20H最高位的位地址
单片机的复位、时钟与时序
复位与复位电路
在 R S T / V P D RST/V_{PD} RST/VPD引脚端出现满足复位时间要求的高电平状态,该时间等于系统时钟振荡周期建立时间再加2个机器周期时间(一般不小于10ms)。