当前课程知识点:单片机原理及应用 > 3 指令系统 > 3.7 ROM传送指令 > ROM传送指令
同学 你好
今天我们来介绍一下负责程序存储器
ROM数据读取的指令MOVC
ROM只能读不能写
里面除了存放程序以外
还可以存放一些常数表格
51单片机对片内或片外ROM内
常数表格数据的读取都是用的指令MOVC
至于从片内ROM读还是从片外ROM读
可以用51单片机的外部引脚来设定
总之MOVC可以实现
从程序存储器读取数据到累加器A中
指令中的目的操作数
注意一下
必须是累加器A
源操作数只能够使用变址间接寻址的方式
其中基地址寄存器可以用DPTR
或程序计数器PC
变址寄存器可以用累加器A
像指令MOVC A ,@ A+DPTR
由于采用DPTR作为基地址
可以把64KB范围的ROM空间里面的
某个表格数据查出来送给累加器A
所以该条指令常被称为远程查表指令
而像指MOVC A , @ A+PC中
这条指令中是把程序计数器PC
来作为基地址的
我们前面强调过
PC中永远存放的是下一条将要执行
将要执行的指令所在ROM单元的地址
而变址寄存器A只有八位
所以查找范围只能是把本条指令后的
256个单元里面的常数数据送给A存放
所以该条指令又称为进程查表指令
好的
了解了MOVC这条指令之后
下面我们就来看一道例题
对MOVC这条指令的应用
例题是利用查表法来求取Y等于X的平方
其中X的取值范围是0到15之间
X是在片内RAM的20H单元中来进行存放
要求查表法来求取Y
这个存入到片内RAM 21H的单元中
我们可以用两种方法
方法一采用的是DPTR来作为MOVC
查表指令的基地址
程序中有几条指令我们没有学过
我们先来解释一下它们的功能
其中ORG为定位伪指令
表示紧接着他的下一条指令
在指定地址的ROM单元内来存放
比如第一条指令ORG 1000H
表示下一条指令
SQU :MOV DPTR这条指令
将从ROM地址的1000H单元开始来存放
还有一道指令是RET
RET表示的是子程序结束指令
表示这个程序到此就结束
还有一条指令是DB
DB为字节数据定义伪指令
表示在标号指定地址的ROM单元中
依次连续存放该指令中给出的字节型常数
特别要提醒的是指令中的标号就是在
该指令所在ROM单元的地址
例如SQU : MOV DPTR , #
3000H中的标号SQU
实际上就表示地址1000H
方法二
采用的是程序计数器PC
来作为MOVC查表指令的基地址
只同样可以实现要求的功能
你可以从以上两种方法中仔细体会
这两种查表方式的不同点
以上就是今天课程的全部内容
今天我们主要介绍了一下MOVC这条指令
请同学们认真的体会一下例题中的
程序的含义
好的
再见
-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 第八章作业-作业