80C51单片机指令系统ppt课件_第1页
80C51单片机指令系统ppt课件_第2页
80C51单片机指令系统ppt课件_第3页
80C51单片机指令系统ppt课件_第4页
80C51单片机指令系统ppt课件_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理与应用 第3章80C51单片机指令系统 1 CPU包括哪两部分电路 2 80C51单片机引脚有多少个 分为几类 3 80C51内部RAM空间分配 ROM空间 4 80C51单片机PO口在作为通用I O口使用时要注意什么 5 80C51单片机时钟电路一般外接晶振多少HZ 相应的机器周期如何计算 6 80C51单片机复位如何实现 有哪两种方式 单片机指令系统简介 80C51指令寻址方式 80C51单片机指令分类介绍 1 2 3 本章主要内容 3 1单片机指令系统概述 一 基本概念指令 规定计算机基本操作的语句或命令 指令系统 一个单片机所能执行的指令集合 是单片机提供给用户使用的软件资源 二 指令格式 标号 操作码 目的操作数 源操作数 注释 标号 用户设定的符号 它实际代表该指令所在的地址 标号必须以字母开头 其后跟1 7个字母或数字 并以 结尾 操作码 用英文缩写的指令功能助记符 规定指令进行什么操作 源操作数 提供操作的对象指出的是一个源地址 表示操作数来自何处 也可以是一个立即数 表示操作的对象与目的操作数之间要用 号隔开 目的操作数 提供操作的对象 指出一个目标地址 表示操作结果存放单元的地址 与操作码之间必须以一个或几个空格分隔 注释 在编写程序时 为了增加程序的可读性 由用户拟写对该条指令或该段程序功能的说明 它以分号 开头 可以用中文 英文或某些符号来表示 显然它不存入计算机 只出现在源程序中 标号 操作码 目的操作数 源操作数 注释 表示该项是可选项 例如 LOOP ADDA 10H A A 10HCLRARETIRET 三 指令中常用符号介绍 1 Ri和Rn R表示当前工作寄存器区中的工作寄存器 当前工作寄存器的选定是由PSW的RS1和RS0位决定的 i表示0或1 即R0和R1 n表示0 7 即R0 R7 2 data 表示立即数 data为8位二进制常数 data是指包含在指令中的8位立即数 3 data16 包含在指令中的16位立即数 4 rel 8位补码形式表示的地址偏移量范围为 128 127 主要用于无条件相对短转移指令SJMP和所有的条件转移指令中 5 addr16 16位目的地址目的地址可在全部程序存储器的64KB空间范围内 用于无条件长转移指令LJMP和子程序长调用指令LCALL中 6 addr11 11位目的地址以该11位地址替换PC的低11位内容 形成新的PC值 用于绝对转移指令AJMP和子程序绝对调用指令ACALL指令中 7 direct 表示直接寻址的地址 即8位内部数据存储器RAM的单元地址 0 127 特殊功能寄存器SFR的地址 对于SFR可直接用其名称来代替其直接地址 8 bit 内部数据存储器RAM中位寻址区中的位地址特殊功能寄存器SFR中的可直接寻址位地址或名称 9 间接寻址寄存器或基地址寄存器的前缀 如 Ri DPTR 表示寄存器间接寻址 10 X 表示X 地址或寄存器 中的内容 在注释中使用 11 X 表示 X 作地址 该地址的内容用 X 表示 在注释中使用 12 符号 加在位地址的前面 表示对该位状态取反 13 符号 表示指令操作流程 将箭头右边的内容 送入箭头左边的单元中去 3 280C51单片机指令寻址方式 寻址方式 如何确定操作数单元地址 并取得操作数 源操作数的寻址方式 80C51有7种寻址方式 1 寄存器寻址方式 2 直接寻址方式 3 寄存器间接寻址方式 4 立即寻址方式 5 变址寻址方式 6 位寻址方式 7 相对寻址方式 1 寄存器寻址方式操作数在寄存器 以符号名表示寄存器 中 指定寄存器就能得到操作数寄存器寻址的主要对象 当前通用寄存器 R0 R7 部分专用寄存器A AB DPTR例 MOVA R0 2 直接寻址方式操作数直接以存储单元地址的形式给出寻址范围 在内部RAM中低128单元 直接以单元地址形式给出专用寄存器 可以以单元地址形式给出 还可以寄存器符号形式给出 直接寻址是访问专用寄存器的唯一方法 例 MOVA 30HMOVA P1 3 寄存器间接寻址方式由指令指出某一个寄存器的内容作为操作数的地址 在寄存器前加符号 寻址范围 访问片内RAM低128单元 用R0和R1 MOVA R0 R1 用访问片外RAM64KB 用DPTR MOVXA DPTR访问片外RAM低256单元 也可以用R0和R1 MOVXA R0 R1 DPTR 堆栈操作指令PUSHPOP 4 立即寻址方式在指令中直接给出操作数 立即数前面加 标志 例 MOVA 30HMOVDPTR 2000H 5 变址寻址以16位的程序计数器PC或数据指针DPTR作为基址寄存器 以8位的累加器A作为变址寄存器 并以两者内容相加形成的16位地址为操作数地址 只能对程序存储器进行寻址 范围64K 指令只有三条 MOVCA A DPTRMOVCA A PCJMP A DPTR 6 位寻址方式指令中直接给出位地址 对数据位进行处理寻址范围 片内RAM的位寻址区 128位 SFR的可寻址位 83位 直接使用位地址位名称表示方法单元地址加位数专用寄存器符号加位数例 MOVC 3AH 7 相对寻址方式为转移指令采用的寻址方式 以PC的内容 相对转移指令的存储地址加上该指令的字节数 作为基址寄存器 加上指令中给定的偏移量所得结果作为转移地址 偏移量rel是有符号的单字节数 以补码表示 其值的范围是 128 127 负数表示从当前地址向前转移 正数表示从当前地址向后转移 目的地址 转移指令地址 转移指令字节数 rel 说明下列指令中源操作数的寻址方式MOVA R7MOVA R1MOVCA A DPTRMOVA P0MOVA 88HMOVA 88HMOVC P0 0 3 380C51单片机指令系统 80C51指令分类 按功能分 数据传送指令 29条 算术运算指令 24条 逻辑运算指令及移位类指令 24条 控制转移类指令 17条 位操作类指令 17条 一 数据传送指令 29条 1 内部RAM单元之间数据传送指令 16条 2 片外RAM数据传送指令 4条 3 ROM数据传送指令 2条 4 交换指令 5条 5 堆栈指令 2条 1 内部RAM单元之间数据传送指令 16 以A为目标操作数的传送指令 4 以Rn为目标操作数的指令 3 以直接地址为目标操作数的指令 5 以间接地址为目标操作数的指令 3 16位数据传送指令 1 目的操作数为A 4 MOVA dataMOVA directMOVA RnMOVA Ri目的操作数为Rn 3 MOVRn dataMOVRn directMOVRn A目的操作数为DPTR 1 MOVDPTR data 例1 指令执行前 A 33H R0 30H 30H 55H 指令执行后的结果 MOVA R0 A MOVA 30H A MOVA R0 A MOVA 20H A 30H 55H 30H 55H 20H 例2指令执行前 A 33H R0 30H 30H 55H 指令执行后的结果 MOVR0 A R0 MOVR3 30H R3 MOVR7 20H R7 33H 55H 20H 例3指令执行前 DPTR 2000H 指令执行后的结果 MOVDPTR 8811H DPTR 8811H 目的操作数为direct 5 MOVdirect AMOVdirect directMOVdirect dataMOVdirect RnMOVdirect Ri目的操作数为 Ri 3 MOV Ri AMOV Ri directMOV Ri data 例4指令执行前 A 33H R0 20H 20H 55H 40H 88H 指令执行后的结果 MOV30H A 30H MOV30H R0 30H MOV30H R0 30H MOV30H 20H 30H MOV30H 40H 30H 33H 20H 55H 20H 88H 例5指令执行前 A 33H R0 30H 30H 55H 指令执行后的结果 MOV R0 A 30H MOV R0 30H 30H MOV R0 20H 30H 33H 55H 20H 练习一 59H 50H 执行指令后的结果MOVA 59HMOVR0 AMOVA 00HMOV R0 AMOVA 25HMOV51H AMOV53H 70H 练习二 写出相应的指令 内RAM 内RAM 将R1的内容传送到20H单元 将A的内容传送到寄存器R5 将立即数30H传送到累加器A 将R0的内容传送到A 将立即数88H传送到50H单元 2 片外RAM传送指令 4 寻址方式 寄存器间接寻址 只能通过A实现片内片外数据传送目的操作数为AMOVXA RiMOVXA DPTR目的操作数为 RiMOVX Ri AMOVX DPTR A 例6 指令执行前 DPTR 2000H A 30H 2000H 55H R0 20H 20H 88HMOVXA DPTR MOVX R0 A A 55H 20H 30H 练习3 按要求写出指令 将外部RAM中2000H单元的内容送A MOVDPTR 2000HMOVXA DPTR法1 MOVP2 20H法2MOVR0 00HMOVXA R0 练习4 按要求写出指令 将A的内容送外部RAM中2000H单元 MOVDPTR 2000HMOVX DPTR A法1 MOVP2 20H法2MOVR0 00HMOVX R0 A 练习5 按要求写出指令 内RAM 外RAM 将50H的内容送外部RAM中2000H单元 MOVDPTR 2000HMOVA 50HMOVX DPTR A 练习6 按要求写出指令 外RAM 内RAM 将外部RAM中2000H的内容送50H单元 MOVDPTR 2000HMOVXA DPTRMOV50H A 练习7 按要求写出指令 外RAM 外RAM 将外部RAM中2000H的内容送1000H单元 MOVDPTR 2000HMOVXA DPTRMOVDPTR 1000HMOVX DPTR A 3 ROM数据传送指令 2条 ROM数据只能读 不能写 因此数据传送是单向的 MOVCA A PCMOVCA A DPTR片外ROM中的数据只能传送到累加器A 用于查阅常数表 DPTR PC称为基地址寄存器 用于存放表格的首地址 A中的数称为地址偏移量 用于指出表格中待查数据存放的单元地址偏移表头地址的字节数 例 指令执行前 DPTR 2000H A 30H 2030H 55H MOVCA A DPTR则 A 2000H 30H 2030H 55H ROM数据传送指令又称查表指令 例 MOVDPTR TABLEMOVA 02HMOVCA A DPTRSJMP TABLE DB0 1 24 9 16 25 36 49 64 81 或者MOVA 02HADDA 02HMOVCA A PCSJMP TABLE DB0 1 24 9 16 25 36 49 64 81 4 数据交换指令 5条 将源操作数的内容和累加器A的内容互换XCHA Rn A Rn XCHA direct A direct XCHA Ri A Ri XCHDA Ri A 3 0 Ri 3 0 最后一条指令将A的低4位和R0或R1指出的RAM单元低4位相互交换 各自的高4位不变 累加器高低半字节交换指令只有一条指令 SWAPA 例 已知 A 80H R0 30H 30H 44H 执行下列指令后的结果 XCHA R0 A 44H 30H 80HXCHDA R0 A 84H 30H 40HXCHA R0 A 30H R0 80H 法1 XCHA 30H法2 MOVR0 AMOVA 30HMOV30H R0 练习8 将A的内容和30H的内容互换 MOVA 40HXCHA 30HMOV40H A或MOVA 40HMOV40H 30HMOV30H A 练习9 将40H的内容和30H的内容互换 MOVR0 20HSWAPAXCHDA R0SWAPA 练习10 A 7 4 20H 3 0 思考 2 将外RAM的内容和外RAM的内容互换 1 将内RAM的内容和外RAM的内容互换 5 堆栈操作指令 2条 进栈指令PUSHdire

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论