pic汇编语言程序设计基础

上传人:shaoy****1971 文档编号:112236637 上传时间:2019-11-05 格式:PPT 页数:66 大小:1.82MB
返回 下载 相关 举报
pic汇编语言程序设计基础_第1页
第1页 / 共66页
pic汇编语言程序设计基础_第2页
第2页 / 共66页
pic汇编语言程序设计基础_第3页
第3页 / 共66页
pic汇编语言程序设计基础_第4页
第4页 / 共66页
pic汇编语言程序设计基础_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《pic汇编语言程序设计基础》由会员分享,可在线阅读,更多相关《pic汇编语言程序设计基础(66页珍藏版)》请在金锄头文库上搜索。

1、第四章 PIC汇编语言程序设计基础 lMPASM汇编器简介 l汇编语言的语句格式 l常用伪指令 l程序格式和程序流程图 lRAM数据存储器的体选寻址问题 l顺序程序结构 l分支程序结构 l循环程序结构 l子程序结构 l程序跨页跳转和跨页调用问题 l延时程序设计 l查表程序设计 第四章 PIC汇编语言程序设计基础 l简介 人 汇编语言 机器语言 单片机 源程序 汇编器 目标程序 第四章 PIC汇编语言程序设计基础 l简介 机器语言:用二进制代码表示的能为计算机直接识 别和执行的指令的集合。 汇编语言:采用便于人们记忆的符号或者字符串来 表示操作码、操作数和地址码的符号语言。 源程序:用汇编语言编

2、写的程序。 目标程序:由源程序翻译成的机器语言程序。 第四章 PIC汇编语言程序设计基础 lMPASM汇编器简介 第四章 PIC汇编语言程序设计基础 lMPASM汇编器简介 MPASM汇编器是美国Microchip公司为其单片机应用 者、开发者提供的一套语言工具软件。 功能:将汇编语言源程序翻译成机器语言目标程序 代码。 检察源程序中的语法错误或格式错误。 第四章 PIC汇编语言程序设计基础 l汇编语言的语句格式 第四章 PIC汇编语言程序设计基础 l汇编语言的语句格式 第四章 PIC汇编语言程序设计基础 l汇编语言的语句格式 对于PIC系列单片机,在编写源程序时必须依照所用汇编器的 一些约定

3、进行书写。例如使用Microchip公司提供的MPASM汇 编器,汇编语言语句的一般格式由以下4个字段组成: 标号 操作码(指令助记符) 操作数 ;注释 (label) (opcode) (operand) (comment) 这些字段不都是必需的,但其顺序是不能颠倒的; 标号必须从最左边第一列开始书写,其后至少用一个空格与 操作码隔离; 在没有标号的语句中,指令操作码前面必须保留一个或一个 以上的空格; 第四章 PIC汇编语言程序设计基础 l汇编语言的语句格式 标号 操作码(指令助记符) 操作数 ;注释 (label) (opcode) (operand) (comment) 操作码与操作数

4、之间也必须保留一个或一个以上的空格; 操作码后面如果跟随2个操作数的话,操作数之间必须用逗号 (半角)隔开; 在必要时可以加注释,注释可以跟在操作码、操作数或标号 之后,并用分号引导,甚至可以单独占用一行且可以从任何 一列开始。 汇编语言源程序既可以用大写字母书写,也可以用小写字母 书写,还可以大写小写混用,以便于阅读。一个语句行最多 允许有225个(半角)字符。 l汇编语言的语句格式 标号 用在指令助记符之前的标号就是该指令的符号地址, 在程序汇编时,它被赋以该指令在程序存储器中所存 放的具体地址。 并不是每一条语句都需要加标号,只有那些欲被其他 语句引用的语句之前才需要加标号。 标号最多可

5、以由32个字母、数字和其他一些字符组成 ,且第一个字符必须是字母或下划线“ ”, 标号不能用指令助记符、寄存器名称或其他在系统中 已有固定用途的字符串(这些又称为系统保留字); 一个标号在程序中只能定义一次。 标号必须从一行的第一列开始写,后面用空格、制表 符或换行符与操作码隔开;可以单独作为一行。 l汇编语言的语句格式 操作码 这个字段不能是空的,操作码就是指令助记符, 它是指令功能名称的英文缩写,表示指令的操作 类型和操作性质,是汇编语言语句中的关键词, 因此不可缺省。 指令操作码的助记符在汇编过程中,汇编器把它 与一个事先建立的操作码索引表进行逐一比较, 找出相应的机器码,并且取而代之,

6、所以这一汇 编过程又叫做代真。 在其前面没有标号时,操作码前面至少保留一个 空格,即不能顶格书写,以便与标号区别,否则 ,会被汇编器误认为是标号。 l汇编语言的语句格式 操作数 该部分是操作对象,也就是数据或地址,可以用 数值形式或标号形式表示。 数值可以是二进制、八进制、十进制、十六进制 数值或者 ASCll字符值; 标号可以是在此之前经过定义或者赋值的代表数 据或地址的标号或字符串。 如果操作数有2个,中间应该用逗号分开。 MPASM的默认进制不是十进制,而是十六进制, 这一点与许多其他单片机的汇编器不同,需要格 外注意。 操作数还可以是事先经过定义的符号以及表达式 ,若想进一步了解,请参

7、考附录C。 第四章 PIC汇编语言程序设计基础 l汇编语言的语句格式 十六进制数由数字09和 字母AF组成。当在源程 序中采用后缀“H”表示一 个以AF打头的十六进制 数时,则必须在它的前面 增添一个“0”作为引导, 以便于汇编器将其与标号 或符号名相区别。 用字符代表的常数就是该 字符对应的ASCll码(即美 国标准信息交换码,长度 为7位,许多计算机原理书 或高级语言程序设计书中 都能找到 ASCll表,也可 以参考附录I)。 第四章 PIC汇编语言程序设计基础 l汇编语言的语句格式 注释 注释部分可有可无,但是最好养成附带注释的习惯。用来 对程序作一些注解和说明,便于人们阅读、交流、修改

8、和 调试程序。 注释不是程序的功能部分,通常用分号(半角)引导或与 指令部分隔开,也可以单独书写为以分号(半角)开头的 独立行,汇编器对该部分不作任何处理。 加注释时,一般应该说明指令的作用和执行的条件,尤其 要说明程序在做什么;在用到子程序时,要说明子程序的 入口条件和出口条件以及该程序完成的功能。 第四章 PIC汇编语言程序设计基础 l常用伪指令 第四章 PIC汇编语言程序设计基础 l常用伪指令 汇编器能“听得懂”的语言伪指令。要让单片 机为我们服务,我们必须先学会它的语言指令 系统一样。 用来编写汇编语言源程序的语句,主要是指令助记 符(亦称指令性语句),其次就是伪指令(也叫指 示性语句

9、)。所谓伪指令就是“假” 指令的意思 ,不是单片机的指令系统中的真实指令。 第四章 PIC汇编语言程序设计基础 l常用伪指令 一般格式也由4个字段组成: 符号名 伪指令助记符 操作数 ;注释 符号名通常是代表专用寄存器名、通用寄存器变量 、常数名、标志位或控制位名、复位矢量或中断矢 量的一个字符串。符号名应从一行的第一列开始书 写,其后至少保留一个空格与伪指令隔离,但是, 不能像标号那样单独作为一行书写。 与指令系统中的助记符不同,没有机器码与伪指令 对应,当源程序被汇编成目标程序时,目标程序中 并不出现这些伪指令的代码,它们仅在汇编过程中 起作用。 第四章 PIC汇编语言程序设计基础 l常用

10、伪指令 伪指令是程序设计人员向汇编器发出的控制命令, 告诉汇编器如何完成汇编过程和一些规定的操作, 以及控制汇编器的输入、输出和数据定位等。 对于Microchip公司为开发PIC单片机提供的MPASM 汇编器,可以使用的伪指令多达数十条,不过,初 学者掌握以下几条最常用的伪指令即可满足一般编 程的需要(欲想深入了解更多的伪指令可以参考附 录C) 第四章 PIC汇编语言程序设计基础 l常用伪指令 1)EQU符号名赋值伪指令 格式:符号名 EQU nn 说明:使EQU两端的值相等,即给符号名赋予一个 特定值,或者说是给符号名定义一个数值。 其中,nn可以是一个长度不同的二进制数值(1位 的目标寄

11、存器指示符d的值、3位的标志位的位地址 、7位的寄存器地址、8位的数据常数、13位的复位 或中断矢量等)。 一个符号名一旦由EQU赋值,其值就固定下来了, 不能再被重新赋值。 第四章 PIC汇编语言程序设计基础 l常用伪指令 2)ORG程序起始地址定义指令 格式:ORG nnnn 说明:用于指定该伪指令后面的源程序存放的起始 地址,也就是汇编后的机器码目标程序;在单片机 的程序存储器中开始存放的首地址。其中nnnn是一 个13位长的地址参数。 第四章 PIC汇编语言程序设计基础 l常用伪指令 3)END程序结束伪指令 格式:END 说明:该伪指令通知MPASM汇编器结束对源程序的 汇编。 在一

12、个源程序中必须要有并且只有一条END指令, 放在整个程序的末尾。 第四章 PIC汇编语言程序设计基础 l常用伪指令 4) LIST列表选项伪指令 格式:LIST 可选项,可选项, 说明:用于设置汇编参数来控制汇编过程,或对打 印输出的列表文件进行格式化。该伪指令的所有参 数都必须在一行内书写完成。参数种类共有10余种 ,在此只介绍最常用的2种,即可满足初学者的基 本需要: P= 设定单片机型号。例如P=16C84或 P=16F877等。 R。例如R=DEC(十进 制);R=HEX(十六进制)等。 第四章 PIC汇编语言程序设计基础 l常用伪指令 5)INCLUDE:调入外部程序文件伪指令 格式

13、:INCLUDE“文件名” 说明:用来告知汇编器,将一个预先编写好的外部 程序文件包含进来,作为该源程序的一部分。这样 可以减少重复劳动,提高编程效率。 调入的外部文件,通常是定义文件,其中定义了单 片机的复位矢量、专用寄存器的地址以及控制位和 状态位的位地址等。 第四章 PIC汇编语言程序设计基础 l程序格式和程序流程图 第四章 PIC汇编语言程序设计基础 l程序格式和程序流程图 第四章 PIC汇编语言程序设计基础 l程序格式和程序流程图 第四章 PIC汇编语言程序设计基础 l程序格式和程序流程图 通常在编写程序之前,需要画程序流程 图。流程图是一种图形语言,它用各种 图形符号来说明程序的执

14、行过程。常常 采用的图形符号有以下几种: (1)圆角矩形框端点框,表示一个程 序的开始或结束; (2)矩形框任务框,表示要处理的任 务; (3)菱形框判断框,表示要判断的因 素,判断结果将导致程序走入不同的分 支(菱形框也有时用两端带尖的条形框 代用); (4)指向线带有箭头的线段,表示程 序的走向。 第四章 PIC汇编语言程序设计基础 lRAM数据存储器的体选寻址问题 PIC单片机面向字节操作和面向位操作的指令,其 指令码中均包含一个7位长的数据存储器单元地址F 。F最多可以区分128个存储器单元。 PIC16F87X内部的RAM配置了512个单元的地址空间 ,地址编码长度需要9位,从000

15、H到1FFH(即 000000000B1111lllllB)。如果想用7位地址码 (从00H到 7FH即 0000000B1111111B)实现对 512个单元的寻址,就必须对长度为512的RAM均匀 划分为4等份,每一等份称作一个体,按地址从小 到大的顺序分别记为体0、体1、体2和体3。 lRAM数据存储器的体选寻址问题 区分4个体需要2位地址码(00B11B) 对RAM直接寻址时,2位体选妈来自于状态寄存器STATUS的RPO 和RP1位; 对RAM进行间接寻址时,2位体选码来自于状态寄存器STATUS 的IRP位和FSR寄存器的最高位 第四章 PIC汇编语言程序设计基础 lRAM数据存储

16、器的体选寻址问题 RAM数据存储器的体选寻址问题 有些寄存器单元7位地址码能 找到同一个单元。如 STATUS 根据“够用即可”的原则, PIC16F87X在000HIFFH的 地址空间里,实际并没有 配置512个真实的单元。 特殊功能寄存器安排在4个体 的上半部分,而通用寄存 器占据着4个体的下半部分 。 在RAM中寻找某一单元需用2个 地址码,这就像在直角坐 标系表示的平面上确定一 个点一样,需要用到横坐 标和纵坐标2个数据。 第四章 PIC汇编语言程序设计基础 l顺序程序结构 顺序程序结构是最简单的一种结构, 在流程图中表示为任务框一个一个地 串行连接。 在计算机执行程序时表现为,从头至 尾严格按照次序一条语句一条语句地 顺序执行,并且每一条语句均被执行 一

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号