PIC系列单片机指令系统[精品].ppt

  1. 1、本文档共91页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PIC系列单片机指令系统[精品]

MPASM常用的几个伪指令。 1.ORG ~END 功能:ORG~END对程序存放单元的起始地址和结束位置进行定位。 格式:[标号] ORG 地址表达式 说明:ORG后面不带地址参数,则默认为0。若ORG带标号,则地址参数也赋值给该标号,程序可以跳转至标号开始执行。在一个源程序中,可以包含多个ORG定位伪指令。 伪指令END放在整个程序的最后,用于通知MPASM汇编程序结束对源程序(.ASM)的汇编。如果END后面还有语句,将被忽略。 4.3.5 常用的伪指令(续1) * 2.INCLUDE 功能: 文件包含。 格式:INCLUDE 文件名 INCLUDE 文件名 说明:用于把指定文件读入源程序中作为源程序代码的一部分,直到检测到文件结束符时为止,再恢复到原源程序中的代码处。 INCLUDE伪指令是很有用的。在PIC系列单片机汇编程序设计中,可以采用文件包含方法将MPASM提供的用于定义片内的各种资源和变量的通用定义文件包含至程序中,从而避免重复定义。对于一些常用的子程序或宏也可组成一个单独的文件,在需要时用INCLUDE伪指令包含进来即可。 4.3.5 常用的伪指令(续2) * 3._CONFIG 功能:设置微控制器配置位。 格式:_CONFIG表达式 说明:在使用这条伪指令前,必须先用PROCESSOR或LIST等伪指令设置微控制器类型。 例:对16F877程序的配置 __CONFIG _CP_OFF_WDT_ON_BODEN_ON_PWRTE_ON _CPD_OFF _RC_OSC _WRT_ENABLE_ON _LVP_ON _DEBUG_OFF 4.EQU 功能:设置标号为确定值。 格式:标号 EQU 表达式 说明:标号一旦由EQU赋值,其值不允许重新定义。如果标号的值要改变,用SET伪指令代替。参见SET伪指令。 例:NUM EQU 4;NUM值为4 4.3.5 常用的伪指令(续3) * 5.LIST 功能:列表选择指令。 格式:LIST[选择项,…,选择项] 说明:LIST用于设置各种汇编参数来控制汇编过程,或对列表文件进行格式化。该伪指令所有参数只能在一行内完成。其中参数的数值都用十进制数设置。 例:LIST P=16F877,f=INHX8M,r=HEX;f和r可省。 6.MACRO~EXITM~ENDM 功能:定义一个宏。 格式:宏名 MACRO 参数表 程序段 ENDM 说明:宏是一可被调用的指令序列.伪指令MACRO表示宏定义的开始,ENDM 用于通知MPASM汇编程序结束宏定义。 4.3.5 常用的伪指令(续4) * 结构化程序设计的三种基本结构 顺序结构 循环结构 分支结构 以PIC16F877为例说明结构化程序设计方法 §4.4 汇编语言程序结构化设计 * 1. 存储体选择 PIC16F877数据存储器分为4个存储体,每个存储体包括专用寄存器和通用寄存器两部分。 状态寄存器STATUS中的RP1和RP0位(STATUS6:5)控制直接寻址时存储体的选择,每一个存储体包括128个寄存器。 RP1、RP0与存储体的对应关系: 00—存储体0(00H-7FFH) 01—存储体1(80H-FFH) 10—存储体2(100H-17FH) 11—存储体3(180H-1FFH) 4.4.1 顺序结构 * 图4.2 寄存器映射关系 * 状态寄存器STATUS中的IRP位(STATUS7)为间接寻址时存储体的选择控制位,IRP位与存储体的对应关系为: 0—存储体0、1(00H-FFH) 1—存储体2、3(100h - 1FFh) 直接寻址时,由RP1,RP0指定存储体,寄存器地址低7位有效在00H-7FH内寻址,最高位无效。因此,如下程序段将数据0x55送入存储体0中的0x20单元,而非存储体1中的0x20单元(数据存储器0xA0单元)。 CLRF STATUS ;存储体0 MOVLW 0x55 MOVWF 0xA0 ;低6位有效,表示地址0x20 4.4.1 顺序结构(续1) * 欲将数据0x55送入0xA0单元,正确的写法是 ?CLRF STATUS BSF STATUS,RP0 ;存储体1 MOVLW 0x55 MOVWF 0xA0 ;(或MOVWF 0x20) ? 或者采用如下的间接寻址方式? CLRF STATUS ;IRP0=0 MOVLW 0xA0 MOVWF FSR MOVLW 0x55 MOVWF INDF,1 4.4.1 顺序结构(续2) * 采用间接寻址方式清RAM地址单元20H-2FH。 CLRF STATUS MOVLW 0x20

文档评论(0)

bodkd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档