IC单片机基础教程课件-第二章.ppt

上传人:max****ui 文档编号:6351150 上传时间:2020-02-23 格式:PPT 页数:52 大小:817.05KB
返回 下载 相关 举报
IC单片机基础教程课件-第二章.ppt_第1页
第1页 / 共52页
IC单片机基础教程课件-第二章.ppt_第2页
第2页 / 共52页
IC单片机基础教程课件-第二章.ppt_第3页
第3页 / 共52页
点击查看更多>>
资源描述
丁跃军来清民等编著 PIC单片机基础教程 第二章PIC单片机指令系统和汇编语言程序设计 2 1指令系统概述 2 2字节操作指令 2 3位操作指令 2 4简单程序设计 2 1指令系统概述 2 1 1指令的表示方法1 机器指令的表示方法指令用于规定计算机的基本操作 一台计算机所能执行的指令集合就是它的指令系统 指令共有两种表示方法 分别是机器语言表示方法和汇编语言表示方法 不同种类的单片机有不同的一套命令 即所谓 指令系统 2 1指令系统概述 2 1 1指令的表示方法1 机器指令的表示方法 2 1指令系统概述 2 1 1指令的表示方法2 汇编语言的表示方法汇编语言是对机器语言的改进 它采用便于人们记忆的一些符号 例如简化的英文单词 来表示操作码 操作数和地址码等 通常把表示指令的符号称之为助记符 MOVF20H 0 ANDLW0FHMOVWF21H 2 1指令系统概述 2 1 1指令的表示方法3 PIC16F87X单片机指令PIC16F87X单片机采用精简指令集 RISC 结构 指令效率高 功能强 它的指令为单字的宽字位 14 指令 由此生成的程序代码短 指令条数少 仅有35条 1 面向字节操作类 2 面向位操作类 3 常数操作和控制类操作 2 1指令系统概述 2 1 2PIC单片机指令的寻址方式1 寄存器间接寻址所谓寄存器间接寻址指的是通过寄存器F0 F4来实现 实际的寄存器地址放在F4的低5位中 通过F0来进行间接寻址 INDF不是物理上实际存在的寄存器 而任何寻址INDF的指令都是以FSR寄存器内容为地址的RAM单元中存放着参加运算或操作的数据 2 1指令系统概述 2 1 2PIC单片机指令的寻址方式1 寄存器间接寻址 2 1指令系统概述 2 1 2PIC单片机指令的寻址方式2 立即数寻址所谓立即寻址就是操作数在指令中直接给出 通常把出现在指令中的操作数称之为立即数 因此就把这种寻址方式称之为立即寻址 2 1指令系统概述 2 1 2PIC单片机指令的寻址方式2 立即数寻址 立即数寻址 2 1指令系统概述 2 1 2PIC单片机指令的寻址方式3 直接寻址指令中操作数以其所在存储单元地址的形式给出 就称之为直接寻址 这种方式是对任何一寄存器直接寻址访问 2 1指令系统概述 2 1 2PIC单片机指令的寻址方式3 直接寻址 2 1指令系统概述 2 1 2PIC单片机指令的寻址方式4 位寻址这种寻址方式是对寄存器中的任一位 bit 进行操作 2 1指令系统概述 2 1 3指令符号的意义说明1 PIC汇编语言指令格式PIC系列微控制器汇编语言指令与MCS 51系列单片机汇编语言一样 每条汇编语言指令由4个部分组成 其书写格式如下 标号操作码助记符操作数1 操作数2 注释 2 1指令系统概述 2 1 3指令符号的意义说明2 指令符号的意义说明在PIC系列单片机指令中常把数据存储器RAM当作寄存器来使用 处理 并用字母f 或F 表示 d代表操作数的目标选择 定义d 0 结果存入W d 1结果存入 文件 寄存器f 当使用汇编程序指令d缺省时 默认d 1 b代表 文件 寄存器 8位 的位地址 0 7取值 如寄存器的8位为b7 b6 b1 b0 若b 1代表寄存器的第b1位 字母符号k代表立即数 常数和数据标号 2 2字节操作指令 PIC16F87X系列单片机字节操作指令详解见下面表格 2 3位操作指令 PIC16F87X系列单片机位操作指令详解见下面表格 2 4汇编语言程序设计 2 4 1汇编语言程序设计知识1 汇编语言源程序的结构汇编语言提供了一种不涉及实际存储器地址和机器指令编码的编写源程序的有效方法 我们需要掌握的是 汇编语言的程序格式 语句格式 助记符 伪指令 程序的4种基本结构 顺序 分支 循环和子程序 2 4汇编语言程序设计 2 4汇编语言程序设计2 4 1汇编语言程序设计知识2 PIC汇编语言的程序流程图 1 程序流程图常用的图形符号圆角矩形框为起始 终止框 表示一个程序的开始或结束 矩形框为任务框 表示要处理的任务 菱形框为判断框 表示要判断的因素 判断结果将导致程序走入不同的分支 指向线为带有箭头的线段 表示程序的走向 2 4汇编语言程序设计 2 4汇编语言程序设计2 4 1汇编语言程序设计知识2 PIC汇编语言的程序流程图 2 程序流程图的画法 顺序程序结构顺序程序结构在流程图中表示为任务框一个一个地串行连接 在计算机执行程序时表现为 从头至尾严格按照次序一条语句一条语句地顺序执行 并且每一条语句均被执行一遍 2 4汇编语言程序设计 2 4汇编语言程序设计2 4 1汇编语言程序设计知识2 PIC汇编语言的程序流程图 分支程序流程图分支程序流程图包含1个判断框和两个或两个以上的出口 从而形成程序的2个或多个分支 2 4汇编语言程序设计 2 4汇编语言程序设计2 4 1汇编语言程序设计知识2 PIC汇编语言的程序流程图 循环程序流程图循环程序的结构包含以下4个组成部分 循环初始化部分 为循环程序作准备 如循环变量设置 即指定或定义一个循环变量作循环次数计数器或地址指针 并给它设置一个初始值 2 4汇编语言程序设计 2 4汇编语言程序设计2 4 1汇编语言程序设计知识2 PIC汇编语言的程序流程图循环体 要求重复执行的程序段 即循环程序的主体部分 循环控制部分 循环控制就是根据循环结束条件 判断是否跳出循环 结束部分 对循环结果进行分析 处理和保存 2 4汇编语言程序设计 2 4汇编语言程序设计2 4 2PIC汇编语言的伪指令用来编写汇编语言源程序的语句 主要是指令助记符 其次就是伪指令 所谓伪指令就是 假 指令的意思 不是单片机的指令系统中的真实指令 伪指令与指令系统中的助记符的不同之处是没有机器码与它对应 2 4汇编语言程序设计 2 4汇编语言程序设计2 4 2PIC汇编语言的伪指令最常用的伪指令介绍 1 INCLODE功能 读入外部源文件格式 INCLUDE说明 用于把指定文件读入源程序中作为源程序代码的一部分 文件名必须用双引号或尖括号给出 如果被指定文件非当前工作目录下 则需要指令完整的路径 2 4汇编语言程序设计 2 4汇编语言程序设计2 4 2PIC汇编语言的伪指令最常用的伪指令介绍 2 EQU功能 对标号赋值格式 EQU说明 使EQU两端的8位值相等 即给标号赋予一个特定值或者说是给标号定义一个数值 2 4汇编语言程序设计 2 4汇编语言程序设计2 4 2PIC汇编语言的伪指令最常用的伪指令介绍 3 DEFINE功能 定义文本替换标号格式 DEFINE 说明 用于定义文本替换标号 在汇编时把源代码中的替换成 2 4汇编语言程序设计 2 4汇编语言程序设计2 4 2PIC汇编语言的伪指令最常用的伪指令介绍 4 ORG功能 存放程序单元的起始地址格式 标号 ORG说明 用于指定该伪指令后面的源程序存放的起始地址 也就是汇编后的机器码目标程序在单片机的程序存储器中开始存放的首地址 2 4汇编语言程序设计 2 4汇编语言程序设计2 4 2PIC汇编语言的伪指令最常用的伪指令介绍 5 END功能 程序结束伪指令格式 END说明 这条伪指令通知汇编器MPASM结束对源程序 ASM 的汇编 即使在后面还有语句 也将不予继续汇编 2 4汇编语言程序设计 2 4 3PIC汇编语言程序设计基础1设置I O口的输入 输出方向2检查寄存器是否为零3 比较二个寄存器的大小 2 4汇编语言程序设计 2 4 4数据传送程序的设计数据传送程序设计是最基本的程序设计 也是最常用的汇编程序设计 但是PIC单片机的数据传送程序和其他的单片机不同 因为PIC单片机的数据存储器RAM分成4个存储区 所以对PIC单片机来说 设计数据传送程序时应该随时注意存储区的选择 否则数据传送达不到目的 2 4汇编语言程序设计 2 4 4数据传送程序的设计 2 43 用直接寻址方式分别向4个存储区的0 xB0 0 x30 ox130 0 x1B0传送数据 选择存储区0 直接寻址单元0 xB0实际对应到0 x30单元CLRFSTATUSMOVLW0 xF0MOVWF0 x30MOVLW0 x0FMOVWF0 xB0 2 4汇编语言程序设计 选择存储区1 直接寻址单元0 x30实际对应到0 xB0单元BSFSTATUS RP0MOVLW0 xF1MOWWF0 x30MOVLW0 x1FMOVWF0 xB0 2 4汇编语言程序设计 2 4 5算术逻辑运算程序的设计基本算术运算有 定点数 浮点数运算 无符号数 有符号数运算等 逻辑运算 逻辑运算包括 逻辑异或 逻辑与 逻辑或 1 加法运算 二进制加法运算 可直接运用加法指令 ADDWF或ADDLWBCD加法运算 2 4汇编语言程序设计 2 4 6延时程序的设计1 简单延时程序的编写如果延时时间较短 可以让程序简单地连续执行几条空操作指令 NOP 如果延时时间长 可以用循环来实现 2 延时程序的延时时间计算延时程序中计算指令执行的时间和即为延时时间 如果使用4MHz振荡 则每个指令周期为1 S 所以单周期指令时间为1 S 双周期指令时间为2 S 在上例的LOOP循环延时时间即为 1 2 100 2 302 S 在循环中插入空操作指令即可延长延时时间 2 4汇编语言程序设计 2 4 7查表程序查表程序常用于数据补偿 非线性修正 求非函数和代码转换 这种方法就不需要计算 速度又快 而且实现容易 查表程序用得恰当可能 大大简化程序设计带极大方便 在单片微机中 要对程序存储器的数据进行访问 必须用读表操作 而PIC系列MCU没有查表指今 PIC的查表程序是利用子程序带值返回的特点来实现 具体是在主程序中先取表数据地址放入W 接着调用子程序 子程序的第一条指令将W置入PC 则程序跳到数据地址的地方 再由 RETLW 指令将数据放入W返回到主程序 表格程序是通过一偏移量来修正PC值 由一条带参数返回指令实现 2 4汇编语言程序设计 2 4 8子程序设计在编程过程中 常常会遇到一些完全相同的计算和操作 例如求各种数据的加减乘除运算 代码转换和延时等 如果每次都编写完全相同的程序段 会使编程相当繁琐 耽误时间 而且浪费大量的程序存储器空间 因此 对这些基本操作功能都是将它编制成标准化的程序段 存储于程序存储器的指定区域 在每次需要时就调出使用 这种程序段就称为子程序 调用子程序的程序称为主程序或者调用程序 子程序结构是程序设计标准化和模块化的有效方法 2 4汇编语言程序设计 2 4 9分支跳转子程序经常需要根据条件判断 确定程序多方向转向选择 实现对程序的灵活控制 用PIC单片机指令可以轻松地构成分支跳转 在程序形式上 分支功能跳转子程序与数据查表子程序的结构类似 只是它是用GOTO语句替代了RETLW语句 并直接进入不同的子程序中 本章小节 1 基本概念指令 指挥计算机完成某个基本操作的命令 程序 完成一项任务所需的所有指令的有序集合 指令系统 一台计算机所能执行的指令集合就是它的指令系统 指令的表示方法 有机器语言表示方法和汇编语言表示方法 其中机器语言的指令是用二进制代码表示 汇编语言的指令是用助记符表示 2 PIC16F87X系列单片机的指令分类 本章小节 PIC16F87X单片机采用精简指令集 RISC 结构 指令效率高 功能强 它的指令为单字的宽字位 14 指令 由此生成的程序代码短 指令条数少 仅有35条 每条指令都由操作码和操作数组成 按指令的操作对象将指令分为面向字节操作类指令 面向位操作类指令 常数操作和控制操作类指令 3 PIC汇编语言指令格式PIC系列微控制器每条汇编语言指令由4个部分组成 其书写格式如下 标号操作码助记符操作数1 操作数2 注释 本章小节 2 掌握PIC单片机指令的寻址方式PIC16F87X单片机寻址方式根据操作数的来源分为立即数寻址 直接寻址 寄存器间接寻址和位寻址四种 3 熟记PIC16F87X单片机的35条指令助记符4 学会汇编语言程序设计 本章小节 1 汇编语言程序流程图的基本结构顺序程序结构 从头至尾严格按照次序一条语句一条语句地顺序执行 且每一条语句均被执行一遍 分支程序流程图 一般包含一个判断框和两个或两个以上的出口 从而形成程序的2个或多个分支 循环程序流程图 对某一段程序重复执行多次 2 PIC汇编语言的伪指令伪指令是程序设计人员向汇编器发布的控制命令 告诉汇编器如何完成汇编过程和一些规定的操作 以及控制汇编器的输入 输出和数据定位等 本章小节 3 PIC汇编语言常用程序设计方法这是本章的重点 要在实验中反复联系 熟练掌握最基本的数据传送程序的设计 算术逻辑运算程序设计 延时程序的设计 查表程序设计和子程序设计
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!