当前课程知识点:单片机原理及应用 > 2 单片机的硬件结构 > 2.5 特殊功能寄存器 > 特殊功能寄存器
同学
你好
前面我们学习了这个单片机内部
RAM的低128个单元
下面的话我们来看一看
51单片机
内部RAM的高128个单元
这高128个单元
我们又称作是专用寄存器区
也叫做SFR
也称作特殊功能寄存器
对应的单元地址
就是从80H到FFH
总共是128个地址
当然虽然有128个地址
但是很多地址我们都没有用到
这些地址
实际上对应的是
单片机内部的一些
重要的硬件的寄存器
比如说像我们前面介绍的累加器A
B寄存器
程序状态寄存器PSW
4个并口
P0口 P1口 P2口 P3口
他们本身都占用的是
内部RAM的高128个单元的地址
在这些特殊功能寄存器中
有些是可以进行位寻址和位操作的
所谓位操作就是我们可以对这些
寄存器的某一个位
单独的来进行读写的操作
具体这高128个单元地址中
51单片机
用到了其中的21个单元地址
其中又有11个单元是可以位寻址
和位操作
我们把这11个可以位寻址和位操作
的单元在这边列了出来
同时这每个可寻址的位
也都唯一的编了一个位地址
我们在图中也详细的
标出了他们的单元地址和名称
以及位地址的分配情况
在指令中
比如说你要对某一个单元来进行操作
那么你可以通过它这个单元的地址
当然也可以通过单元的名字来找到它
但是如果说你要对这个单元里面的
某一个位来进行操作
那么你要通过单元的位的位地址
来找到位
所以位地址和单元地址它是不同的
单元地址是对整个单元
来进行寻找和操作
位地址是对这个单位里面的某一个位
来进行单独的位读写操作的
下面我们将重点的介绍几个重要的
特殊功能寄存器
首先我们来看一看程序计数器PC
PC我们前面在讲单片机的内部的
CPU的硬件运行原理时
也重点介绍过
程序计数器PC
是一个16位的计数器
注意一下 PC不占用RAM的地址
其内容为将要执行的指令
所在ROM单元的地址
即下一条指令的地址
CPU总是按照PC的指示
从ROM对应单元中读取指令来执行
由于PC是可以用时钟信号
来进行自加一
因此CPU在执行程序时
一般就是顺序的来执行
就是每来一个
每来一个时钟脉冲信号
PC会字加一个一
而PC里面我们也说了
它里面存放的是下一条将要执行的
ROM单元的地址
我们的CPU就会从
PC指定的地址中从ROM里面
去取出指令去执行
而PC可以自加一
所以当我们的单片机正常运行时
那么这个ROM
就是一条一条的顺序的
CPU从ROM中取出指令
来进行执行
来进行执行
当然有时候我们CPU在执行程序时
可能不希望顺序的执行
而是想进行跳转 进行转移
进行中断
或进行一些复位 这些操作
都要求我们的CPU
并不是顺序的
从ROM中来取指令执行
怎么办
这个时候我们的PC就会被强制改写
本来PC是自加一
现在我不让PC的内容自加一
而是让PC的内容改为一个
你想要执行的
其他ROM位置的单元的地址
就是通过强行的改写PC的内容
我们可以来改变程序执行的顺序
当然在复位的这个情况下
就是复位时
我们的PC里面的内容自动的是清零
所以51单片机在上电复位时
总是从ROM的0000H
即ROM的第一个单元开始执行程序
这是PC
累加器ACC也是8位
ACC我们前面也介绍过
它是在配合ALU
CPU里面的ALU
算术逻辑单元处理数据时
一般会将一些计算的结果
会再放到累加器A中来进行暂存
所以累加器A
同学们要在后面再介绍
我们的单片机的指令中
加减乘除的指令中会看到
加减乘除的一些运算结果
最终都是会首先在累加器A中
来进行存放
除了累加器A之外
那么我们还有一个寄存器B
这也是一个8位的寄存器
B寄存器通常会和A累加器
配合起来
帮助ALU进行乘除的运算
也可以作为一个通用寄存器
除了A和B之外
还有就是程序状态字PSW
这个也是八位
PSW是用来存放ALU
运算过程中的一些标志状态
其中的第四位和第三位
我们前面也介绍过
就是我们的工作寄存器区的选择位
其他的位的功能和相关的指令有关
我们在后面介绍相关指令时再会
来详细介绍相关位的状态和功能
除了PSW之外
还有一个就是数据指针DPTR
注意一下
这个DPTR寄存器它是16位
它的功能用来存放片外存储器的地址
作为片外存储器的地址指针
DPTR
本身可以分成两个8位的寄存器
一个是高八位的DPH
一个是低八位的DPL来使用
其它的特殊功能寄存器
我们会在后面用到时再来详细介绍
它们的功能
需要注意的是
21个可字节寻址的专用寄存器
它是不连续地分散在
内部RAM的高128个单元之中
总共有83个可寻址的位
尽管还剩余了许多空闲单元
但用户并不能使用
唯一一个不可寻址的PC
它是不占用RAM单元的
它在物理上是独立的
因此是不可寻址的寄存器
对于专用寄存器
只能使用直接寻址的方式
在指令中我们既可以使用
这个寄存器的名字
也可以使用寄存器单元地址
来找到它们
对它们进行操作
好了
今天我们就对内部RAM的
高128个单元
也叫做特殊功能寄存器区
做了简单的介绍
今天的课就到这里
同学们 再见
-1.1 单片机的名称
--单片机的名称
-1.2 单片机的相关概念
--单片机的相关概念
-1.3 单片机的设计语言及软件
-1.4 单片机的发展
--单片机的发展
-1.5单片机的应用
--单片机的应用
-1.6 第一单元作业
-2.1 单片机的结构框图
--单片机的结构框图
-2.2 80C51内部结构
-2.3 信号引脚
--信号引脚
-2.4 内部数据存储器RAM
-2.5 特殊功能寄存器
--特殊功能寄存器
-2.6 堆栈
--堆栈
-2.7 内部程序存储器ROM
-2.8 存储器的结构特点
--存储器的结构特点
-2.9 并行输入输出接口电路
-2.10 并口功能与时序
--并口功能与时序
-2.11 工作方式
--工作方式
-2.12 最小应用系统
-- 最小应用系统
-2.13 第二单元作业
-3.1 指令格式
--指令格式
-3.2 立即寻址与直接寻址
-3.3 寄存器寻址与寄存器间接寻址
-3.4 变址间接寻址与位寻址
-3.5 内部RAM传送指令
-3.6 外部RAM传送指令
-3.7 ROM传送指令
--ROM传送指令
-3.8 交换指令
--交换指令
-3.9 堆栈操作指令
--堆栈操作指令
-3.10 传送类指令习题讲解
-3.11 算术运算类指令特点
-3.12 加法指令
--加法指令
-3.13 加法习题、减法和乘除指令
-3.14 逻辑运算指令
--逻辑运算指令
-3.15 布尔变量操作指令
--布尔变量操作指令
-3.16 无条件转移指令
--无条件转移指令
-3.17 条件转移指令
--条件转移指令
-3.18 循环转移指令
--循环转移指令
-3.19 子程序相关指令
--子程序相关指令
-3.20 并口访问指令及指令小结
-3.21 第三单元作业
-4.1 汇编程序约定
--汇编程序约定
-4.2 宏指令
--宏指令
-4.3 汇编控制指令
--汇编控制指令
-4.4 汇编语言程序设计步骤
-4.5 顺序程序举例
-- 顺序程序举例
-4.6 单重分支结构
--单重分支结构
-4.7 多重分支结构
--多重分支结构
-4.8 单重循环结构
--单重循环结构
-4.9 计数控制循环程序
--计数控制循环程序
-4.10 特征控制循环程序
-- 特征控制循环程序
-4.11 多重循环程序
--多重循环程序
-4.12 子程序的概念
--子程序的概念
-4.13 子程序设计注意事项
-4.14 子程序举例
--子程序举例
-4.15 第四单元作业
-5.1 系统扩展
--系统扩展
-5.2 51单片机扩展方法
-5.3 存储器单元位数扩充方法
-5.4 存储器容量单元扩充方法
-5.5 译码线选法
--译码线选法
-5.6 程序存储器的类型
--程序存储器的类型
-5.7 程序存储器的扩展
--程序存储器的扩展
-5.8 数据存储器的扩展
--数据存储器的扩展
-5.9 存储器综合扩展
--存储器综合扩展
-5.10 单片机存储器系统的特点
-- 单片机存储器系统的特点
-5.11 第五单元作业
-6.1 中断技术
--中断技术
-6.2 中断优先级及中断系统内部结构
-6.3 中断控制寄存器及中断响应过程
-6.4 中断请求的撤消
--中断请求的撤消
-6.5 外部中断举例
--外部中断举例
-6.6 定时器/计数器
--定时器/计数器
-6.7 定时计数器工作方式及程序编写
-6.8 定时器举例
--定时器举例
-6.9 第六单元作业
-7.1 并行接口
-- 并行接口
-7.2 并口举例
--并口举例
-7.3 并口扩展芯片
--并口扩展芯片
-7.4 8155连接方式及编程
-7.5 键盘接口技术
--键盘接口技术
-7.6 按键处理程序及举例
-7.7 键盘扫描子程序
-- 键盘扫描子程序
-7.8 显示接口技术
--显示接口技术
-7.9 多位字符静态显示
--多位字符静态显示
-7.10 多位字符动态显示
--多位字符动态显示
-7.11 第七单元作业
-8.1 流水灯控制系统设计
--html
-8.2 数码管显示系统设计
--html
-8.3 按键控制系统设计
--html
-8.4 中断控制系统设计
--html
-8.5 定时计数器系统设计
--html
-8.6 串口通信系统设计
--html
-8.7 汉字显示系统设计
--html
-8.8 单片机烧录方法
--单片机烧录方法
-8.9 第八章作业-作业