工学PIC单片机指令系统.pptx

上传人:莉*** 文档编号:72536935 上传时间:2023-02-12 格式:PPTX 页数:107 大小:3.40MB
返回 下载 相关 举报
工学PIC单片机指令系统.pptx_第1页
第1页 / 共107页
工学PIC单片机指令系统.pptx_第2页
第2页 / 共107页
点击查看更多>>
资源描述

《工学PIC单片机指令系统.pptx》由会员分享,可在线阅读,更多相关《工学PIC单片机指令系统.pptx(107页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、会计学1工学工学PIC单片机指令系统单片机指令系统第二章第二章 PIC单片机指令系统和单片机指令系统和汇编语言程序设计汇编语言程序设计第1页/共106页第二章第二章 PIC单片机指令系统单片机指令系统 和汇编语言程序设计和汇编语言程序设计n n2.1 指令系统概述n n2.2 字节操作指令n n2.3 位操作指令n n2.4 常数和控制操作类指令n n2.5 汇编语言程序设计第2页/共106页2.1 指令系统概述指令系统概述n n2.1.1 指令的表示方法指令的表示方法n n1机器指令的表示方法n n指令,用于规定计算机的基本操作。一台计算机所能执行的指令集合就是它的指令系统。n n指令共有两

2、种表示方法,分别是机器语言表示方法和汇编语言表示方法。不同种类的单片机有不同的一套命令(即所谓“指令系统”)。第3页/共106页2.1 指令系统概述指令系统概述n n2.1.1 指令的表示方法n n1机器指令的表示方法第4页/共106页2.1 指令系统概述指令系统概述n n2.1.1 指令的表示方法n n2汇编语言的表示方法n n汇编语言是对机器语言的改进,它采用便于人们记忆的一些符号(例如简化的英文单词)来表示操作码、操作数和地址码等。通常把表示指令的符号称之为助记符。MOVF 20H,0;ANDLW 0FH MOVWF 21H第5页/共106页2.1 指令系统概述指令系统概述n n2.1.

3、1 指令的表示方法n n3.PIC16F87X单片机指令n nPIC16F87X单片机采用精简指令集(RISC)结构,指令效率高,功能强。它的指令为单字的宽字位(14)指令,由此生成的程序代码短。指令条数少,仅有35条。n n(1)面向字节操作类n n(2)面向位操作类n n(3)常数操作和控制类操作。第6页/共106页指令的类型指令的类型第7页/共106页2.1 指令系统概述指令系统概述n n2.1.2 PIC单片机指令的寻址方式n n寻址,就是寻找操作数的存放地址。n n寻址方式,就是给操作数定位的过程。n n1寄存器间接寻址n n所谓寄存器间接寻址指的是通过寄存器所谓寄存器间接寻址指的是

4、通过寄存器F0F0、F4F4来来实现。实际的寄存器地址放在实现。实际的寄存器地址放在F4F4的低的低5 5位中,通位中,通过过F0F0来进行间接寻址。来进行间接寻址。INDFINDF不是物理上实际存不是物理上实际存在的寄存器,而任何寻址在的寄存器,而任何寻址INDFINDF的指令都是以的指令都是以FSRFSR寄存器内容为地址的寄存器内容为地址的RAMRAM单元中存放着参加运算单元中存放着参加运算或操作的数据。或操作的数据。第8页/共106页2.1 指令系统概述指令系统概述n n2.1.2 PIC单片机指令的寻址方式n n1寄存器间接寻址第9页/共106页2.1 指令系统概述指令系统概述n n2

5、.1.2 PIC单片机指令的寻址方式n n2立即数寻址n n所谓立即寻址就是操作数在指令中直接给出。通常把出现在指令中的操作数称之为立即数(literal),因此就把这种寻址方式称之为立即寻址。第10页/共106页2.1 指令系统概述指令系统概述n n2.1.2 PIC单片机指令的寻址方式n n2立即数寻址第11页/共106页2.1 指令系统概述指令系统概述n n2.1.2 PIC单片机指令的寻址方式n n3直接寻址n n指令中操作数以其所在存储单元地址的形式给出,就称之为直接寻址。这种方式是对任何一寄存器直接寻址访问。第12页/共106页2.1 指令系统概述指令系统概述n n2.1.2 PI

6、C单片机指令的寻址方式n n3直接寻址第13页/共106页2.1 指令系统概述指令系统概述n n2.1.2 PIC单片机指令的寻址方式n n4位寻址n n这种寻址方式是对寄存器中的任一位(bit)进行操作。第14页/共106页例例21 ADDLW 16H第15页/共106页例例22 IORWF 26H,0第16页/共106页例例23 XORWF 0,1第17页/共106页例例24 BSF 26H,4第18页/共106页2.1 指令系统概述指令系统概述n n2.1.3 指令符号的意义说明n n1.PIC汇编语言指令格式n nPIC系列微控制器汇编语言指令与MCS51系列单片机汇编语言一样,每条汇

7、编语言指令由4个部分组成,其书写格式如下:n n标号 操作码助记符 操作数 ;注释 (Lable)(Opcode)(Operand)(Comment)第19页/共106页2.1 指令系统概述指令系统概述n n2.1.3 指令符号的意义说明n n2.指令符号的意义说明n n在PIC系列单片机指令中常把数据存储器RAM当作寄存器来使用(处理)并用字母f(或F)表示。n nd 代表操作数的目标选择,定义d=0,结果存入W;d=1结果存入(文件)寄存器f,当使用汇编程序指令d缺省时,默认d=1。b代表(文件)寄存器(8位)的位地址(07取值)。如寄存器的8位为b7、b6b1、b0,若b=1代表寄存器的

8、第b1位。字母符号k代表立即数、常数和数据标号。第20页/共106页2.2 2.4指令指令集集第21页/共106页2.2 2.4指令指令集集第22页/共106页2.2 2.4指令指令集集第23页/共106页2.2 2.4指令指令集集第24页/共106页2.2 2.4指令指令集集第25页/共106页2.2 2.4指令指令集集第26页/共106页2.2 2.4指令指令集集第27页/共106页2.2 字节操作指令字节操作指令n n1.寄存器加法指令寄存器加法指令第28页/共106页2.2 字节操作指令字节操作指令n n2.2.寄存器减法指令寄存器减法指令第29页/共106页2.2 字节操作指令字节操

9、作指令n n3.寄存器加寄存器加1指令指令 第30页/共106页2.2 字节操作指令字节操作指令n n4.寄存器减寄存器减1指令指令第31页/共106页2.2 字节操作指令字节操作指令n n5.寄存器与指令寄存器与指令第32页/共106页2.2 字节操作指令字节操作指令n n6.寄存器或指令寄存器或指令第33页/共106页2.2 字节操作指令字节操作指令n n7.寄存器异或指令寄存器异或指令第34页/共106页2.2 字节操作指令字节操作指令n n8.寄存器取反指令寄存器取反指令第35页/共106页2.2 字节操作指令字节操作指令n n9.寄存器清零指令寄存器清零指令第36页/共106页2.2

10、 字节操作指令字节操作指令n n10.W清零指令清零指令第37页/共106页2.2 字节操作指令字节操作指令n n11.f寄存器传送指令寄存器传送指令第38页/共106页2.2 字节操作指令字节操作指令n n12.W寄存器传送指令寄存器传送指令第39页/共106页2.2 字节操作指令字节操作指令n n13.寄存器加寄存器加1,结果为零则跳指令结果为零则跳指令第40页/共106页2.2 字节操作指令字节操作指令n n14.寄存器减寄存器减1,结果为零则跳指令结果为零则跳指令第41页/共106页2.2 字节操作指令字节操作指令n n15.带进位左移指令带进位左移指令第42页/共106页2.2 字节

11、操作指令字节操作指令n n16.带进位右移指令带进位右移指令第43页/共106页2.2 字节操作指令字节操作指令n n17.寄存器交换指令寄存器交换指令第44页/共106页2.3 位操作指令位操作指令n n1.1.位清零指令位清零指令第45页/共106页2.3 位操作指令位操作指令n n2.位置1指令第46页/共106页2.3 位操作指令位操作指令n n3.位测试,为零则跳指令第47页/共106页2.3 位操作指令位操作指令n n4.位测试,为1则跳指令第48页/共106页2.4 常数和控制操作类指令常数和控制操作类指令n n1.常数加法指令第49页/共106页2.4 常数和控制操作类指令常数

12、和控制操作类指令n n2.常数减法指令常数减法指令第50页/共106页2.4 常数和控制操作类指令常数和控制操作类指令n n3.常数与指令常数与指令第51页/共106页2.4 常数和控制操作类指令常数和控制操作类指令n n4.常数或指令常数或指令第52页/共106页2.4 常数和控制操作类指令常数和控制操作类指令n n5.常数异或指令常数异或指令第53页/共106页2.4 常数和控制操作类指令常数和控制操作类指令n n6.看门狗计数器清零指令看门狗计数器清零指令第54页/共106页2.4 常数和控制操作类指令常数和控制操作类指令n n7.常数传送指令常数传送指令第55页/共106页2.4 常数

13、和控制操作类指令常数和控制操作类指令n n8.子程序调用指令子程序调用指令第56页/共106页2.4 常数和控制操作类指令常数和控制操作类指令n n9.无条件跳转指令无条件跳转指令第57页/共106页2.4 常数和控制操作类指令常数和控制操作类指令n n10.子程序返回指令子程序返回指令第58页/共106页2.4 常数和控制操作类指令常数和控制操作类指令n n11.子程序带参数返回指令子程序带参数返回指令第59页/共106页2.4 常数和控制操作类指令常数和控制操作类指令n n12.中断服务子程序返回指令中断服务子程序返回指令第60页/共106页2.4 常数和控制操作类指令常数和控制操作类指令

14、n n13.睡眠(睡眠(进入低功耗状态)指进入低功耗状态)指令令第61页/共106页2.4 常数和控制操作类指令常数和控制操作类指令n n14.空操作指令空操作指令第62页/共106页第63页/共106页2.5 汇编语言程序设计汇编语言程序设计n n2.5.1 汇编语言程序设计知识n n1汇编语言源程序的结构n n汇编语言提供了一种不涉及实际存储器地址和机器指令编码的编写源程序的有效方法。n n我们需要掌握的是:n n汇编语言的程序格式、语句格式、助记符、伪指令。n n程序的4种基本结构:顺序、分支、循环和子程序。第64页/共106页2.5 汇编语言程序设计汇编语言程序设计n n2.5.1 汇

15、编语言程序设计知识n n2PIC 汇编语言的程序流程图n n(1 1)程序流程图常用的图形符号)程序流程图常用的图形符号n n圆角矩形框为起始圆角矩形框为起始/终止框,表示一个程序的开终止框,表示一个程序的开始或结束。始或结束。n n矩形框为任务框,表示要处理的任务。矩形框为任务框,表示要处理的任务。n n菱形框为判断框,表示要判断的因素,判断结果菱形框为判断框,表示要判断的因素,判断结果将导致程序走入不同的分支。将导致程序走入不同的分支。n n指向线为带有箭头的线段,表示程序的走向。指向线为带有箭头的线段,表示程序的走向。第65页/共106页2.5 汇编语言程序设计汇编语言程序设计n n2.

16、5.1 汇编语言程序设计知识n n2PIC 汇编语言的程序流程图n n((2)(2)程序流程图的画法程序流程图的画法n n顺序程序结构顺序程序结构顺序程序结构在流程图中表示为任务框一个一个地串行连接。顺序程序结构在流程图中表示为任务框一个一个地串行连接。在计算机执行程序时表现为,从头至尾严格按照次序一条语句一在计算机执行程序时表现为,从头至尾严格按照次序一条语句一条语句地顺序执行,并且每一条语句均被执行一遍。条语句地顺序执行,并且每一条语句均被执行一遍。第66页/共106页2.5 汇编语言程序设计汇编语言程序设计n n2.5.1 汇编语言程序设计知识n n2PIC 汇编语言的程序流程图n n分

17、支程序流程图n n分支程序流程图包含分支程序流程图包含1 1个判断框和两个或两个以上个判断框和两个或两个以上的出口。从而形成程序的的出口。从而形成程序的2 2个或多个分支个或多个分支。第67页/共106页2.5 汇编语言程序设计汇编语言程序设计n n2.5.1 汇编语言程序设计知识n n2PIC 汇编语言的程序流程图n n循环程序流程图循环程序流程图n n循环程序的结构包含以下循环程序的结构包含以下4 4个组成部分:个组成部分:n n循环初始化部分:为循环程序作准备。如循环变循环初始化部分:为循环程序作准备。如循环变量设置,即指定或定义一个循环变量作循环次数量设置,即指定或定义一个循环变量作循

18、环次数计数器或地址指针,并给它设置一个初始值。计数器或地址指针,并给它设置一个初始值。第68页/共106页2.5 汇编语言程序设计汇编语言程序设计n n2.5.1 汇编语言程序设计知识n n2PIC 汇编语言的程序流程图n n循环体:要求重复执行的程序段,即循环程序的主体部分。n n循环控制部分:循环控制就是根据循环结束条件,判断是否跳出循环。n n结束部分:对循环结果进行分析、处理和保存。第69页/共106页2.5 汇编语言程序设计汇编语言程序设计第70页/共106页2.5 汇编语言程序设计汇编语言程序设计n n2.5.2 PIC 汇编语言的伪指令n n用来编写汇编语言源程序的语句,主要是指

19、令助记符,其次就是伪指令。所谓伪指令就是“假”指令的意思,不是单片机的指令系统中的真实指令。伪指令与指令系统中的助记符的不同之处是没有机器码与它对应。符号名 伪指令助记符 操作数 ;注释 第71页/共106页2.5 汇编语言程序设计汇编语言程序设计n n2.5.2 PIC 汇编语言的伪指令n n最常用的伪指令介绍n n(1)INCLUDE n n功能:读入外部源文件n n格式:INCLUDE n n说明:用于把指定文件读入源程序中作为源程序代码的一部分。文件名必须用双引号或尖括号给出,如果被指定文件非当前工作目录下,则需要指令完整的路径。第72页/共106页2.5 汇编语言程序设计汇编语言程序

20、设计n n2.5.2 PIC 汇编语言的伪指令n n最常用的伪指令介绍n n(2)EQU n n功能:对符号名赋值n n格式:EQU n n说明:使EQU 两端的8位值相等,即给符号名赋予一个特定值或者说是给符号名定义一个数值。第73页/共106页2.5 汇编语言程序设计汇编语言程序设计n n2.5.2 PIC 汇编语言的伪指令n n最常用的伪指令介绍n n(3)#DEFINE n n功能:定义文本替换标号n n格式:#DEFINEn n说明:用于定义文本替换标号,在汇编时把源代码中的替换成。第74页/共106页2.5 汇编语言程序设计汇编语言程序设计n n2.5.2 PIC 汇编语言的伪指令

21、n n最常用的伪指令介绍n n(4)ORG n n功能:存放程序单元的起始地址n n格式:符号名 ORG n n说明:用于指定该伪指令后面的源程序存放的起始地址,也就是汇编后的机器码目标程序在单片机的程序存储器中开始存放的首地址。第75页/共106页2.5 汇编语言程序设计汇编语言程序设计n n2.5.2 PIC 汇编语言的伪指令n n最常用的伪指令介绍n n(5)END n n功能:程序结束伪指令n n格式:END n n说明:这条伪指令通知汇编器MPASM结束对源程序(.ASM)的汇编,即使在后面还有语句,也将不予继续汇编。第76页/共106页2.5 汇编语言程序设计汇编语言程序设计n n

22、2.5.3 PIC 汇编语言程序设计基础n n1.设置I/O 口的输入/输出方向n n2.检查寄存器是否为零n n3.比较二个寄存器的大小n n4.循环n次的程序n n5.“IFTHEN”格式的程序第77页/共106页2.5 汇编语言程序设计汇编语言程序设计n n1.1.设置设置 I/O I/O 口的输入口的输入/输出方向输出方向PIC16F877PIC16F877的的I/O I/O 口皆为双向可编程,即每一根口皆为双向可编程,即每一根I/O I/O 端线都可分别单独地由程序设置为输入或输出。端线都可分别单独地由程序设置为输入或输出。这个过程由写这个过程由写I/OI/O控制寄存器控制寄存器TR

23、IS fTRIS f来实现,写入值为来实现,写入值为“1”1”,则为输入;写入值为,则为输入;写入值为“0”0”,则为输出。,则为输出。MOVLW 0FH MOVLW 0FH ;0000 11110000 1111(0FH0FH)输入)输入 输出输出MOVWF TRISB MOVWF TRISB;将;将WW中的中的0FH0FH写入写入B B口控制器,口控制器,;B B口高口高4 4位为输出,低位为输出,低4 4位为输入。位为输入。MOVLW 0C0H MOVLW 0C0H;1100 00001100 0000(0C0H0C0H)MOVWF TRISB RB0RB5MOVWF TRISB RB0

24、RB5输出输出0 RB60 RB6,RB7RB7输输 出出1 1第78页/共106页2.5 汇编语言程序设计汇编语言程序设计n n2.检查寄存器是否为零如果要判断一个寄存器内容是否为零,很简单,现以寄存器F10为例:MOVF 10,1;F10F10,结果影响零标记 状态位ZBTFSS STATUS,Z;F10为零则跳GOTO NZ;Z=0即F10不为零转入标号NZ 处程序 ;Z=1即F10=0处理程序第79页/共106页2.5 汇编语言程序设计汇编语言程序设计n n3.3.比较二个寄存器的大小比较二个寄存器的大小要比较二个寄存器的大小,可以将它们做减法要比较二个寄存器的大小,可以将它们做减法运

25、算,然后根据状态位运算,然后根据状态位C C来判断。注意,相减的结果来判断。注意,相减的结果放入放入WW,则不会影响二寄存器原有的值。,则不会影响二寄存器原有的值。例如例如F8F8和和F9F9二个寄存器要比较大小:二个寄存器要比较大小:MOVF 8MOVF 8,0 0;F8WF8W SUBWF 9SUBWF 9,0 0 ;F9WF9W(F8F8)WW BTFSC STATUSBTFSC STATUS,Z Z ;判断;判断F8=F9F8=F9否否 GOTO F8=F9GOTO F8=F9 BTFSC STATUSBTFSC STATUS,C C;C=0C=0则跳则跳 GOTO F9F8 GOTO

26、 F9F8;C=1C=1相减结果为正,相减结果为正,F9F8F9F8 GOTO F9F8 GOTO F9F8;C=0C=0相减结果为负,相减结果为负,F9F8F9F8 第80页/共106页2.5 汇编语言程序设计汇编语言程序设计n n4.4.循环循环n n次的程序次的程序如果要使某段程序循环执行如果要使某段程序循环执行n n次,可以用一个寄存器作计次,可以用一个寄存器作计数器。下例以数器。下例以F10F10做计数器,使程序循环做计数器,使程序循环8 8次。次。COUNT EQU 10 COUNT EQU 10;定义;定义F10F10名称为名称为COUNTCOUNT(计数器)(计数器)MOVLW

27、 8MOVLW 8 MOVWF COUNT MOVWF COUNT;循环体;循环体LOOPLOOP DECFSZ COUNTDECFSZ COUNT,1 1;COUNTCOUNT减减1 1,结果为零则跳,结果为零则跳 GOTO LOOP GOTO LOOP ;结果不为零,继续循环;结果不为零,继续循环 ;结果为零,跳出循环;结果为零,跳出循环第81页/共106页2.5 汇编语言程序设计汇编语言程序设计n n5.“IFTHEN”5.“IFTHEN”格式的程序格式的程序下面以下面以“IF X=Y THEN GOTO NEXT”IF X=Y THEN GOTO NEXT”格式格式为例。为例。MOVF

28、 XMOVF X,0 0;XWXWSUBWF YSUBWF Y,0 0 ;YWYW(X X)WWBTFSS STATUSBTFSS STATUS,Z Z ;X=Y X=Y 否否 ;XYXY GOTO NEXT GOTO NEXT ;X=YX=Y,跳到,跳到 NEXTNEXT去执去执行。行。第82页/共106页2.5 汇编语言程序设计汇编语言程序设计n n“FORNEXT”“FORNEXT”格式的程序格式的程序“FORNEXT”FORNEXT”程序使循环在某个范围内进行。下例是程序使循环在某个范围内进行。下例是“FOR X=0 FOR X=0 TO 5”TO 5”格式的程序。格式的程序。F10F

29、10放放X X的初值,的初值,F11F11放放X X的终值。的终值。START START EQU EQU 1010DAEND DAEND EQU EQU 1111 MOVLW 0MOVLW 0MOVWF START MOVWF START;0START0START(F10F10)MOVLW 5MOVLW 5MOVWF DAEND MOVWF DAEND;5DAEND5DAEND(F11F11)LOOPLOOP INCF STARTINCF START,1 1;STARTSTART值加值加1 1 MOVF STARTMOVF START,0 0 SUBWF DAENDSUBWF DAEND,0

30、 0;START=DAEND START=DAEND?(?(X=5X=5否)否)BTFSS STATUSBTFSS STATUS,Z Z GOTO LOOPGOTO LOOP ;X X5 5,继续循环,继续循环 ;X X5 5,结束循环,结束循环第83页/共106页2.5 汇编语言程序设计汇编语言程序设计n n“DO WHILEEND”“DO WHILEEND”格式的程序格式的程序“DO WHILEEND”DO WHILEEND”程序是在符合条件下执行循环。下例是程序是在符合条件下执行循环。下例是“DO WHILE X=1”DO WHILE X=1”格式的格式的程序。程序。F10F10放放X

31、X的值。的值。X X EQU EQU 1010 MOVLW MOVLW 1 1 MOVWF MOVWF X X;1X1X(F10F10),作为初值),作为初值 LOOPLOOP MOVLW 1MOVLW 1 SUBWF XSUBWF X,0 0 BTFSS STATUSBTFSS STATUS,Z Z;X X1 1否?否?GOTO LOOP GOTO LOOP;X 1X 1继续循环继续循环 ;X X 1 1跳出循环跳出循环第84页/共106页2.5 汇编语言程序设计汇编语言程序设计n n2.5.4 数据传送程序的设计n n数据传送程序设计是最基本的程序设计,也是最常用的汇编程序设计。但是PIC

32、单片机的数据传送程序和其他的单片机不同,因为PIC单片机的数据存储器RAM分成4个存储区,所以对PIC单片机来说,设计数据传送程序时应该随时注意存储区的选择,否则数据传送达不到目的。第85页/共106页2.5 汇编语言程序设计汇编语言程序设计n n2.5.4 数据传送程序的设计n n用直接寻址方式分别向4个存储区 的 0 xB0、0 x30、0 x130、0 x1B0传送数据。n n;选择存储区0,直接寻址单元0 xB0实际对应到0 x30单元n nCLRF STATUSn nMOVLW 0 xF0 n nMOVWF 0 x30n nMOVLW 0 x0Fn nMOVWF 0 xB0第86页/

33、共106页2.5 汇编语言程序设计汇编语言程序设计n n;选择存储区1,直接寻址单元0 x30实际对应到0 xB0单元n nBSF STATUS,RP0n nMOVLW 0 xF1n nMOVWF 0 x30n nMOVLW 0 x1Fn nMOVWF 0 xB0第87页/共106页2.5 汇编语言程序设计汇编语言程序设计n n2.5.5 算术逻辑运算程序的设计n n基本算术运算有:定点数、浮点数运算;无符号数、有符号数运算等。n n逻辑运算包括:逻辑异或、逻辑与、逻辑或;n n加法运算:二进制加法运算,可直接运用加法指令:ADDWF ADDWF 或ADDLWBCDADDLWBCD加法运算第8

34、8页/共106页2.5 汇编语言程序设计汇编语言程序设计n n2.5.6 2.5.6 延时程序的设计延时程序的设计n n1 1简单延时程序的编写简单延时程序的编写n n如果延时时间较短,可以让程序简单地连续执行几如果延时时间较短,可以让程序简单地连续执行几条空操作指令条空操作指令“NOPNOP”。如果延时时间长,可以用循。如果延时时间长,可以用循环来实现。环来实现。n n2 2延时程序的延时时间计算延时程序的延时时间计算n n延时程序中计算指令执行的时间和即为延时时间。延时程序中计算指令执行的时间和即为延时时间。如果使用如果使用4MHz4MHz振荡,则每个指令周期为振荡,则每个指令周期为1S1

35、S。所以。所以单周期指令时间为单周期指令时间为1S1S,双周期指令时间为,双周期指令时间为2S2S。在。在循环中插入空操作指令即可延长延时时间。循环中插入空操作指令即可延长延时时间。第89页/共106页2.5 汇编语言程序设计汇编语言程序设计n n2.5.7 2.5.7 查表程序查表程序n n查表程序常用于数据补偿,非线性修正,求非函数查表程序常用于数据补偿,非线性修正,求非函数和代码转换,这种方法就不需要计算,速度又快,和代码转换,这种方法就不需要计算,速度又快,而且实现容易。查表程序用得恰当,可能大大简化而且实现容易。查表程序用得恰当,可能大大简化程序设计,带来极大方便。程序设计,带来极大

36、方便。n n在单片微机中,要对程序存储器的数据进行访问,在单片微机中,要对程序存储器的数据进行访问,必须用读表操作。而必须用读表操作。而PICPIC系列系列MCUMCU没有查表指今,没有查表指今,PICPIC的查表程序是利用子程序带值返回的特点来实现。的查表程序是利用子程序带值返回的特点来实现。具体是在主程序中先取表数据地址放入具体是在主程序中先取表数据地址放入WW,接着调,接着调用子程序,子程序的第一条指令将用子程序,子程序的第一条指令将WW置入置入PCPC,则程,则程序跳到数据地址的地方,再由序跳到数据地址的地方,再由“RETLWRETLW”指令将数据指令将数据放入放入WW返回到主程序。表

37、格程序是通过一偏移量来返回到主程序。表格程序是通过一偏移量来修正修正PCPC值,由一条带参数返回指令实现。值,由一条带参数返回指令实现。第90页/共106页2.5 汇编语言程序设计汇编语言程序设计n n2.5.8 2.5.8 子程序设计子程序设计n n在编程过程中,常常会遇到一些完全相同的计算和在编程过程中,常常会遇到一些完全相同的计算和操作,例如求各种数据的加减乘除运算、代码转换操作,例如求各种数据的加减乘除运算、代码转换和延时等。如果每次都编写完全相同的程序段,会和延时等。如果每次都编写完全相同的程序段,会使编程相当繁琐、耽误时间,而且浪费大量的程序使编程相当繁琐、耽误时间,而且浪费大量的

38、程序存储器空间。因此,对这些基本操作功能都是将它存储器空间。因此,对这些基本操作功能都是将它编制成标准化的程序段,存储于程序存储器的指定编制成标准化的程序段,存储于程序存储器的指定区域,在每次需要时就调出使用,这种程序段就称区域,在每次需要时就调出使用,这种程序段就称为子程序,调用子程序的程序称为主程序或者调用为子程序,调用子程序的程序称为主程序或者调用程序。子程序结构是程序设计标准化和模块化的有程序。子程序结构是程序设计标准化和模块化的有效方法。效方法。第91页/共106页2.5 汇编语言程序设计汇编语言程序设计n n2.5.9分支跳转子程序n n经常需要根据条件判断,确定程序多方向转向选择

39、,实现对程序的灵活控制。用PIC单片机指令可以轻松地构成分支跳转。在程序形式上,分支功能跳转子程序与数据查表子程序的结构类似,只是它是用GOTO语句替代了RETLW语句,并直接进入不同的子程序中。第92页/共106页2.5 汇编语言程序设计汇编语言程序设计第93页/共106页2.5 汇编语言程序设计汇编语言程序设计第94页/共106页2.5 汇编语言程序设计汇编语言程序设计第95页/共106页2.5 汇编语言程序设计汇编语言程序设计第96页/共106页2.5 汇编语言程序设计汇编语言程序设计第97页/共106页第98页/共106页2.5 汇编语言程序设计汇编语言程序设计第99页/共106页2.

40、5 汇编语言程序设计汇编语言程序设计第100页/共106页本章小节本章小节n n(1)基本概念n n指令:指挥计算机完成某个基本操作的命令。n n程序:完成一项任务所需的所有指令的有序集合。n n指令系统:一台计算机所能执行的指令集合就是它的指令系统。n n指令的表示方法:有机器语言表示方法和汇编语言表示方法。其中机器语言的指令是用二进制代码表示,汇编语言的指令是用助记符表示。n n(2)PIC16F87X系列单片机的指令分类第101页/共106页本章小节本章小节n nPIC16F87XPIC16F87X单片机采用精简指令集(单片机采用精简指令集(RISCRISC)结构,指)结构,指令效率高,

41、功能强。它的指令为单字的宽字位令效率高,功能强。它的指令为单字的宽字位(1414)指令,由此生成的程序代码短。指令条数少,)指令,由此生成的程序代码短。指令条数少,仅有仅有3535条。每条指令都由操作码和操作数组成,按条。每条指令都由操作码和操作数组成,按指令的操作对象将指令分为面向字节操作类指令、指令的操作对象将指令分为面向字节操作类指令、面向位操作类指令、常数操作和控制操作类指令。面向位操作类指令、常数操作和控制操作类指令。n n(3 3)PICPIC汇编语言指令格式汇编语言指令格式n nPICPIC系列微控制器每条汇编语言指令由系列微控制器每条汇编语言指令由4 4个部分组成,个部分组成,

42、其书写格式如下:其书写格式如下:n n标号操作码助记符操作数标号操作码助记符操作数1 1,操作数,操作数2 2;注释;注释第102页/共106页本章小节本章小节n n2、掌握PIC单片机指令的寻址方式n nPIC16F87X单片机寻址方式根据操作数的来源分为立即数寻址、直接寻址、寄存器间接寻址和位寻址四种。n n3、熟记PIC16F87X单片机的35条指令助记符n n4、学会汇编语言程序设计第103页/共106页本章小节本章小节n n(1 1)汇编语言程序流程图的基本结构)汇编语言程序流程图的基本结构n n顺序程序结构:从头至尾严格按照次序一条语句一顺序程序结构:从头至尾严格按照次序一条语句一

43、条语句地顺序执行,且每一条语句均被执行一遍。条语句地顺序执行,且每一条语句均被执行一遍。n n分支程序流程图:一般包含一个判断框和两个或两分支程序流程图:一般包含一个判断框和两个或两个以上的出口。从而形成程序的个以上的出口。从而形成程序的2 2个或多个分支。个或多个分支。n n循环程序流程图:对某一段程序重复执行多次。循环程序流程图:对某一段程序重复执行多次。n n(2 2)PIC PIC 汇编语言的伪指令汇编语言的伪指令n n伪指令是程序设计人员向汇编器发布的控制命令,伪指令是程序设计人员向汇编器发布的控制命令,告诉汇编器如何完成汇编过程和一些规定的操作,告诉汇编器如何完成汇编过程和一些规定的操作,以及控制汇编器的输入、输出和数据定位等。以及控制汇编器的输入、输出和数据定位等。第104页/共106页本章小节本章小节n n(3)PIC汇编语言常用程序设计方法n n这是本章的重点,要在实验中反复联系,熟练掌握最基本的数据传送程序的设计、n n算术逻辑运算程序设计、延时程序的设计、查表程序设计和子程序设计。第105页/共106页感谢您的观看!感谢您的观看!第106页/共106页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com