当前课程知识点:单片机原理及应用 > 2 单片机的硬件结构 > 2.7 内部程序存储器ROM > 内部程序存储器ROM
同学
你好
前面我们介绍了单片机内部的
数据存储器RAM的主要结构和功能
下面让我们再来看一看
51单片机内部的程序存储器ROM
我们前面也说过
RAM的功能主要是用来暂时存放一些
程序运行中的临时的数据
而 ROM的功能主要是
用来存放程序
我们用户所编写的所有的程序
最终将存放在ROM中
51单片机内部
有4KB的程序存储器ROM
那么其地址单元对应的就是
0000H到0FFFH
共4KB的单元
程序存储器ROM
通常用来存放用户的程序以及
相关需要永久保存的表格和参数数据
在ROM的存储单元中
有一些单元
被固定的分配给了一些专用的程序
是哪些专用程序会占用
我们ROM中的哪些固定的单元
下面我们来详细的叙述一下
ROM的从0000H到0002H
这起始的三个单元
被分配给了单片机的启动程序
也就是说我们的第一条
想要单片机执行的程序也叫启动程序
你应该把它放在ROM的
0000H到0002H这三个单元
当然有时候启动程序的大小
可能会超过了这三个单元
这时候也没有关系
我们可以把启动动程序
放在ROM的其它的位置
而在这三个单元中
我们可以放一条无条件的转移指令
这样通过该转移指令可以转移的
真正的启动程序所对应的
ROM单元的位置去执行该启动程序
由于单片机上电复位时
我们说过程序计数器
PC自动是清零 是0000H
而PC中存放的是CPU将要执行的
指令所在ROM单元的地址
而ROM0000H单元
开始的三个单元
已经分配给了启动程序
所以单片机一上电复位时
就会自动的找到这个启动程序去执行
那么除了启动程序
会占用ROM的固定的单元之外
还有五个中断服务程序
也会占用ROM的固定单元
中断服务程序和中断相关
什么是中断
这个我们会在后续的课程中
再来进行详细的介绍
这里同学们你只需要知道的是什么
是和中断相关的五个中断服务程序
他们会固定的存放到 ROM中
指定的位置
其中0003H到000AH
这八个单元存放的是
外部中断0的中断服务程序
而000BH到0012H
这八个单元存放的是
定时计数器0的中断服务程序
0013H到001AH这八个单元
存放的是外部中断一的中断服务程序
001BH到0022H这八个单元
存放的是定时计数器1的
中断服务程序
0023H到002AH这八个单元
存放的是串口的中断服务程序
当相关中断产生并有效时
我们的51单片机就会自动的
从这些固定分配好的单元中
找到对应的中断服务程序去执行
和启动程序类似
如果中断服务程序的大小
超过了八个单元
我们可以把该中断服务程序
放到ROM的其他位置
而在它所对应的中断服务程序固定的
入口的这8个单元的位置
放一条转移指令
这样当中断发生有效时
单片机首先会从该中断
对应的固定入口位置去取指令
而这里存放的是一条我们刚刚
放进去的转移指令
那么通过执行该转移指令
我们就可以让单片机转移到真正的
中断服务程序所对应的ROM单元中
去执行该中断服务程序了
好的
今天我们主要介绍了一下51单片机
内部程序存储器ROM的结构和功能
今天的课就到这里
同学们 再见
-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 第八章作业-作业