《PIC单片机基础教程课件.pptx》由会员分享,可在线阅读,更多相关《PIC单片机基础教程课件.pptx(51页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.1指令系统概述 2.2字节操作指令 2.3位操作指令 2.4 简单程序设计 第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.1 指令系统概述 2.1.1 指令的表示方法1机器指令的表示方法 指令用于规定计算机的基本操作。一台计算机所能指令用于规定计算机的基本操作。一台计算机所能执行的指令集合就是它的指令系统。执行的指令集合就是它的指令系统。指令共有两种表示方法,分别是
2、机器语言表示方法指令共有两种表示方法,分别是机器语言表示方法和汇编语言表示方法。不同种类的单片机有不同的一和汇编语言表示方法。不同种类的单片机有不同的一套命令套命令(即所谓即所谓“指令系统指令系统”)。第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.1 指令系统概述2.1.1 指令的表示方法1机器指令的表示方法B13B0操作码操作码操作数操作数第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.1 指令系统概述 2.1.1 指令的表示方法2汇编语言的表示方法 汇汇编编语语言言是是对对机机器器语语言言的的改改
3、进进,它它采采用用便便于于人人们们记记忆忆的的一一些些符符号号(例例如如简简化化的的英英文文单单词词)来来表表示示操操作作码码、操操作作数数和和地地址址码码等等。通通常常把把表表示示指指令令的的符符号号称称之之为为助助记符。记符。MOVF 20HMOVF 20H,0 0 ;ANDLWANDLW 0FH0FHMOVWFMOVWF 21H21H 第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.1 指令系统概述 2.1.1 指令的表示方法3.PIC16F87X3.PIC16F87X单片机指令单片机指令 PIC16F87XPIC16F87X单单片片机机采采
4、用用精精简简指指令令集集(RISCRISC)结结构构,指指令令效效率率高高,功功能能强强。它它的的指指令令为为单单字字的的宽宽字字位位(1414)指指令令,由由此此生生成成的的程程序代码短。指令条数少,仅有序代码短。指令条数少,仅有3535条。条。(1)(1)面向字节操作类面向字节操作类(2)(2)面向位操作类面向位操作类(3)(3)常数操作和控制类操作。常数操作和控制类操作。第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.1 指令系统概述2.1.2 PIC2.1.2 PIC单片机指令的寻址方式单片机指令的寻址方式 1 1寄存器间接寻址寄存器间接寻
5、址 所所谓谓寄寄存存器器间间接接寻寻址址指指的的是是通通过过寄寄存存器器F0F0、F4F4来来实实现现。实实际际的的寄寄存存器器地地址址放放在在F4F4的的低低5 5位位中中,通通过过F0F0来来进进行行间间接接寻寻址址。INDFINDF不不是是物物理理上上实实际际存存在在的的寄寄存存器器,而而任任何何寻寻址址INDFINDF的的指指令令都都是是以以FSRFSR寄寄存存器器内内容容为为地地址址的的RAMRAM单单元元中中存存放放着着参参加加运算或操作的数据。运算或操作的数据。第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.1 指令系统概述2.1.2
6、 PIC2.1.2 PIC单片机指令的寻址方式单片机指令的寻址方式 1 1寄存器间接寻址寄存器间接寻址 第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.1 指令系统概述 2.1.2 PIC2.1.2 PIC单片机指令的寻址方式单片机指令的寻址方式 2 2立即数寻址立即数寻址 所所谓谓立立即即寻寻址址就就是是操操作作数数在在指指令令中中直直接接给给出出。通通常常把把出出现现在在指指令令中中的的操操作作数数称称之之为为立立即即数数,因此就把这种寻址方式称之为立即寻址。因此就把这种寻址方式称之为立即寻址。第二章第二章 PICPIC单片机指令系统和汇编语言
7、程序设计单片机指令系统和汇编语言程序设计2.1 指令系统概述2.1.2 PIC2.1.2 PIC单片机指令的寻址方式单片机指令的寻址方式 2 2立即数寻址立即数寻址立即数寻址立即数寻址第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.1 指令系统概述2.1.2 PIC2.1.2 PIC单片机指令的寻址方式单片机指令的寻址方式 3 3直接寻址直接寻址 指指令令中中操操作作数数以以其其所所在在存存储储单单元元地地址址的的形形式式给给出出,就就称称之之为为直直接接寻寻址址。这这种种方方式式是是对对任任何何一寄存器直接寻址访问。一寄存器直接寻址访问。第二章第
8、二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.1 指令系统概述2.1.2 PIC2.1.2 PIC单片机指令的寻址方式单片机指令的寻址方式 3 3直接寻址直接寻址第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.1 指令系统概述2.1.2 PIC2.1.2 PIC单片机指令的寻址方式单片机指令的寻址方式 4 4位寻址位寻址 这这种种寻寻址址方方式式是是对对寄寄存存器器中中的的任任一一位位(bitbit)进行操作进行操作 第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计第
9、二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.1 指令系统概述 2.1.3 2.1.3 指令符号的意义说明指令符号的意义说明1.PIC1.PIC汇编语言指令格式汇编语言指令格式 PICPIC系系列列微微控控制制器器汇汇编编语语言言指指令令与与MCSMCS5151系系列列单单片片机机汇汇编编语语言言一一样样,每每条条汇汇编编语语言言指指令令由由4 4个个部部分分组组成成,其书写格式如下:其书写格式如下:标号操作码助记符操作数标号操作码助记符操作数1 1,操作数,操作数2 2;注释;注释 第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机
10、指令系统和汇编语言程序设计2.1 指令系统概述 2.1.3 2.1.3 指令符号的意义说明指令符号的意义说明2.2.指令符号的意义说明指令符号的意义说明 在在PICPIC系系列列单单片片机机指指令令中中常常把把数数据据存存储储器器RAMRAM当当作作寄寄存器来使用存器来使用(处理处理)并用字母并用字母f(f(或或F)F)表示。表示。d d 代代表表操操作作数数的的目目标标选选择择,定定义义d=0d=0,结结果果存存入入W W;d=1d=1结结果果存存入入(文文件件)寄寄存存器器f f,当当使使用用汇汇编编程程序序指指令令d d缺缺省省时时,默默认认d=1d=1。b b代代表表(文文件件)寄寄存
11、存器器(8(8位位)的的位位地地址址(0(07 7取取值值)。如如寄寄存存器器的的8 8位位为为b7b7、b6b1b6b1、b0b0,若若b=1b=1代代表表寄寄存存器器的的第第b1b1位位。字字母母符符号号k k代代表表立立即即数数、常常数和数据标号。数和数据标号。第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.2 字节操作 指令PIC16F87XPIC16F87X系列单片机系列单片机字节操作 指令详解详解 见下面表格见下面表格第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.3 位操作 指令PIC16
12、F87XPIC16F87X系列单片机系列单片机位操作 指令详解详解 见下面表格见下面表格第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计表表2-1 PIC16F87X2-1 PIC16F87X单片机指令集单片机指令集数据传送类指令数据传送类指令指令助记符指令助记符功能简述功能简述周期周期14位指令字位指令字影响的状态位影响的状态位MOLWk立立即即数数k送送入入寄寄存存器器W1110 xxkkkkkkkkMOVWFfW送入送入f寄存器寄存器10000001ffffffffMOVFf,df送入送入f或或W1001000dfffffffZSWAPFf,df
13、寄寄存存器器半半字字节节交交换换1001110dfffffffADDLWkW加加立立即即数数k,结结果送入果送入W或或f111111xkkkkkkkkOV,C,DC,ZADDWFf,dW加加f,结结果果送送入入W或或f1000111dfffffffOV,C,DC,Z第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计算术操作类指令算术操作类指令指令助记符指令助记符功能简述功能简述周期周期影响的状态位影响的状态位DECFf,df减减11000011dfffffffZDECFSZf,df减减1,为,为0间跳间跳1(2)001011dffffffffINCFf,
14、df加加11001010dfffffffZINCFSZf,df加加1,为,为0间跳间跳1(2)001111dfffffffSUBLWk立立即即数数k减减W结结果果送入送入W或或f111110 xkkkkkkkkOV,C,DC,ZSUBWFf,df减减W,结结果果送送入入或或f1000010dfffffffOV,C,DC,Z第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计逻辑操作类指令逻辑操作类指令指令助记符指令助记符功能简述功能简述周期周期14位指令字位指令字影响的状态影响的状态位位ANDLWk立立即即数数与与W,结结果送入果送入W1111001kkk
15、kkkkkZANDWFf,df与与W,结结果果送送入入W或或f1000101dfffffffZCLRFff清清010000011fffffffZCLRWW清清010000010 xxxxxxxZCOMFf,df取反取反1001001dfffffffZ第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计IORLWkk或或 W,结结 果果送入送入W1111000kkkkkkkkZIORWFf,df或或W,结结果果送送入入W或或f1000100dfffffffZRLFf,df带带进进位位C循循环环左移左移1001101dfffffffCRRFf,df带带进进位位
16、C循循环环右移右移1001100dfffffffCXORLWk立立即即数数或或W,结果送入结果送入W1111010kkkkkkkkZXORWFf,df异异或或W,结结果果送入送入W和和f1000110dfffffffZ第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计控制转移类指令控制转移类指令指令助记符指令助记符功能简述功能简述周期周期14位指令字位指令字影响的状影响的状态位态位CLRWDT清清除除WDT定定时时器器100000001100100CALLk调用子程序调用子程序2100kkkkkkkkkkkGOTOk无条件跳转无条件跳转2111000kk
17、kkkkkk第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计NOP空操作空操作10000000 xx0000OPTION写写OPTION寄寄存存器器100000001100010RETFIE中断返回中断返回200000000001001DLINTDRETLWk常常数数送送W,子子程程序返回序返回21101xxkkkkkkkkRETURN子程序返回子程序返回200000000001000SLEEP进入休眠状态进入休眠状态100000001100011第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计位操作类指令位操
18、作类指令指令助记符指令助记符功能简述功能简述周期周期14位指令字位指令字影响的状态影响的状态位位BCFf,b清除清除f寄存器的寄存器的b位位10100bbbfffffffBSFf,b置置f寄存器的寄存器的b位位10101bbbfffffffBTFSCf,bf寄存器的寄存器的b位为位为0间距间距1(2)0110bbbfffffffBTFSSf,bf寄存器的寄存器的b位产位产为为0间距间距1(2)0111bbbfffffff第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.4 汇编语言程序设计 2.4.1 汇编语言程序设计知识1汇编语言源程序的结构 汇编
19、语言提供了一种不涉及实际存储器地址和机器指令编码的编写源程序的有效方法。我们需要掌握的是:汇编语言的程序格式、语句格式、助记符、伪指令。程序的4种基本结构:顺序、分支、循环和子程序。第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.4 汇编语言程序设计 2.4 汇编语言程序设计2.4.1 汇编语言程序设计知识2PIC 汇编语言的程序流程图(1 1)程序流程图常用的图形符号)程序流程图常用的图形符号 圆角矩形框为起始圆角矩形框为起始 /终止框,表示一个程序的开始或结束。终止框,表示一个程序的开始或结束。矩形框为任务框,表示要处理的任务。矩形框为任务框,
20、表示要处理的任务。菱菱形形框框为为判判断断框框,表表示示要要判判断断的的因因素素,判判断断结结果果将将导导致致程程序序走入不同的分支。走入不同的分支。指向线为带有箭头的线段,表示程序的走向。指向线为带有箭头的线段,表示程序的走向。第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.4 汇编语言程序设计 2.4 汇编语言程序设计2.4.1 汇编语言程序设计知识2PIC 汇编语言的程序流程图((2)(2)程序流程图的画法程序流程图的画法顺序程序结构顺序程序结构 顺序程序结构在流程图中表示为任务框一个一个地串行顺序程序结构在流程图中表示为任务框一个一个地串行
21、连接。在计算机执行程序时表现为,从头至尾严格按照次序连接。在计算机执行程序时表现为,从头至尾严格按照次序一条语句一条语句地顺序执行,并且每一条语句均被执行一一条语句一条语句地顺序执行,并且每一条语句均被执行一遍。遍。第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.4 汇编语言程序设计 2.4 汇编语言程序设计2.4.1 汇编语言程序设计知识2PIC 汇编语言的程序流程图分支程序流程图分支程序流程图 分支程序流程图包含分支程序流程图包含1个判断框和两个判断框和两个或两个以上的出口。从而形成程序的个或两个以上的出口。从而形成程序的2个或多个分支个或多个
22、分支.第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.4 汇编语言程序设计 2.4 汇编语言程序设计2.4.1 汇编语言程序设计知识2PIC 汇编语言的程序流程图循环程序流程图循环程序流程图 循环程序的结构包含以下循环程序的结构包含以下4 4个组成部分:个组成部分:循循环环初初始始化化部部分分:为为循循环环程程序序作作准准备备。如如循循环环变变量量设设置置,即即指指定定或或定定义义一一个个循循环环变变量量作作循循环环次次数数计计数数器器或或地地址址指指针针,并并给给它设置一个初始值。它设置一个初始值。第二章第二章 PICPIC单片机指令系统和汇编语
23、言程序设计单片机指令系统和汇编语言程序设计2.4 汇编语言程序设计 2.4 汇编语言程序设计2.4.1 汇编语言程序设计知识2PIC 汇编语言的程序流程图循环体:要求重复执行的程序段,即循环程序的主体部分。循环体:要求重复执行的程序段,即循环程序的主体部分。循环控制部分:循环循环控制部分:循环控制就是根据循环结束条件,判断是否控制就是根据循环结束条件,判断是否跳出循环。跳出循环。结束部分:对循环结果进行分析、处理和保存。结束部分:对循环结果进行分析、处理和保存。第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计第二章第二章 PICPIC单片机指令系统和汇
24、编语言程序设计单片机指令系统和汇编语言程序设计2.4 汇编语言程序设计 2.4 汇编语言程序设计2.4.2 PIC 汇编语言的伪指令 用来编写汇编语言源程序的语句,主要是指令助记符,其次就是伪指令。所谓伪指令就是“假”指令的意思,不是单片机的指令系统中的真实指令。伪指令与指令系统中的助记符的不同之处是没有机器码与它对应。第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.4 汇编语言程序设计 2.4 汇编语言程序设计2.4.2 PIC 汇编语言的伪指令最常用的伪指令介绍(1 1)INCLODE INCLODE 功能功能:读入外部源文件读入外部源文件 格
25、式:格式:INCLUDE INCLUDE 说说明明:用用于于把把指指定定文文件件读读入入源源程程序序中中作作为为源源程程序序代代码码的的一一部部分分。文文件件名名必必须须用用双双引引号号或或尖尖括括号号给给出出,如如果果被被指指定定文文件件非非当当前前工工作目录下,则需要指令完整的路径。作目录下,则需要指令完整的路径。第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.4 汇编语言程序设计 2.4 汇编语言程序设计2.4.2 PIC 汇编语言的伪指令最常用的伪指令介绍(2)(2)EQU EQU 功能:功能:对标号赋值对标号赋值格式:格式:EQU EQU
26、 说说明明:使使EQU两两端端的的8位位值值相相等等,即即给给标标号号赋赋予一个特定值或者说是给标号定义一个数值。予一个特定值或者说是给标号定义一个数值。第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.4 汇编语言程序设计 2.4 汇编语言程序设计2.4.2 PIC 汇编语言的伪指令最常用的伪指令介绍(3)(3)#DEFINE#DEFINE 功能:定义文本替换标号功能:定义文本替换标号格式:格式:#DEFINE#DEFINE说说明明:用用于于定定义义文文本本替替换换标标号号,在在汇汇编编时时把把源源代码中的代码中的替换成替换成。第二章第二章 PIC
27、PIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.4 汇编语言程序设计 2.4 汇编语言程序设计2.4.2 PIC 汇编语言的伪指令最常用的伪指令介绍(4)(4)ORG ORG 功能功能:存放程序单元的起始地址存放程序单元的起始地址格式:格式:标号标号 ORG ORG 说说明明:用用于于指指定定该该伪伪指指令令后后面面的的源源程程序序存存放放的的起起始始地地址址,也也就就是是汇汇编编后后的的机机器器码码目目标标程程序序在在单单片片机机的的程程序序存储器中开始存放的首地址。存储器中开始存放的首地址。第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和
28、汇编语言程序设计2.4 汇编语言程序设计 2.4 汇编语言程序设计2.4.2 PIC 汇编语言的伪指令最常用的伪指令介绍(5)(5)END END 功能:程序结束伪指令功能:程序结束伪指令格式:格式:END END 说说明明:这这条条伪伪指指令令通通知知汇汇编编器器 MPASMMPASM结结束束对对源源程程序序(.ASM)(.ASM)的的汇汇编,即使在后面还有语句,也将不予继续汇编。编,即使在后面还有语句,也将不予继续汇编。第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.4 汇编语言程序设计 2.4.3 PIC 汇编语言程序设计基础1设置 I/O
29、口的输入/输出方向2检查寄存器是否为零 3.比较二个寄存器的大小 第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.4 汇编语言程序设计 2.4.4 数据传送程序的设计 数据传送程序设计是最基本的程序设计,数据传送程序设计是最基本的程序设计,也是最常用的汇编程序设计。但是也是最常用的汇编程序设计。但是PIC单片机的单片机的数据传送程序和其他的单片机不同,因为数据传送程序和其他的单片机不同,因为PIC单单片机的数据存储器片机的数据存储器RAM分成分成4个存储区,所以个存储区,所以对对PIC单片机来说,设计数据传送程序时应该随单片机来说,设计数据传送程序
30、时应该随时注意存储区的选择,否则数据传送达不到目时注意存储区的选择,否则数据传送达不到目的。的。第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.4 汇编语言程序设计 2.4.4 数据传送程序的设计【2-43】用用直直接接寻寻址址方方式式分分别别向向4个个存存储储区区的的0 xB0、0 x30、ox130、0 x1B0传送数据。传送数据。;选择存储区;选择存储区0 0,直接寻址单元,直接寻址单元0 xB00 xB0实际对应到实际对应到0 x300 x30单元单元CLRFCLRFSTATUSSTATUSMOVLWMOVLW 0 xF0 0 xF0 MO
31、VWFMOVWF 0 x300 x30MOVLWMOVLW 0 x0F0 x0FMOVWFMOVWF 0 xB00 xB0第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.4 汇编语言程序设计;选择存储;选择存储区区1 1,直接寻址单元,直接寻址单元0 x300 x30实际对应到实际对应到0 xB00 xB0单元单元BSFBSFSTATUSSTATUS,RP0RP0MOVLWMOVLW 0 xF10 xF1MOWWFMOWWF 0 x300 x30MOVLWMOVLW 0 x1F0 x1FMOVWFMOVWF 0 xB00 xB0第二章第二章 PIC
32、PIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.4 汇编语言程序设计 2.4.5算术逻辑运算程序的设计算术逻辑运算程序的设计基本算术运算有:定点数、基本算术运算有:定点数、浮点数运算;浮点数运算;无无符号数、符号数、有符号数运算等。有符号数运算等。逻辑运算逻辑运算-逻逻辑辑运运算算包包括括:逻逻辑辑异异或或、逻逻辑辑与与、逻逻辑或;辑或;1加加法法运运算算:二二进进制制加加法法运运算算,可可直直接接运运用用加加法指令:法指令:ADDWF或或ADDLW BCD加法运算加法运算第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.4
33、 汇编语言程序设计 2.4.6延时程序的设计延时程序的设计1简单延时程序的编写简单延时程序的编写 如果延时时间较短,可以让程序简单地连续执行几条空操作如果延时时间较短,可以让程序简单地连续执行几条空操作指令指令“NOPNOP”。如果延时时间长,可以用循环来实现。如果延时时间长,可以用循环来实现。2 2延时程序的延时时间计算延时程序的延时时间计算 延延时时程程序序中中计计算算指指令令执执行行的的时时间间和和即即为为延延时时时时间间。如如果果使使用用4MHz4MHz振振荡荡,则则每每个个指指令令周周期期为为1S1S。所所以以单单周周期期指指令令时时间间为为1S1S,双双周周期期指指令令时时间间为为
34、2S2S。在在上上例例的的LOOPLOOP循循环环延延时时时时间间即即为为:(1+21+2)*100+2=302100+2=302(SS)。在在循循环环中中插插入入空空操操作作指指令令即即可延长延时时间。可延长延时时间。第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.4 汇编语言程序设计 2.4.7查表程序查表程序 查查表表程程序序常常用用于于数数据据补补偿偿,非非线线性性修修正正,求求非非函函数数和和代代码码转转换换,这这种种方方法法就就不不需需要要计计算算,速速度度又又快快,而而且且实实现现容容易易。查查表表程序用得恰当可能,大大简化程序设计带
35、极大方便。程序用得恰当可能,大大简化程序设计带极大方便。在单片微机中,要对程序存储器的数据进行访问,必须用在单片微机中,要对程序存储器的数据进行访问,必须用读表操作。而读表操作。而PICPIC系列系列MCUMCU没有查表指今,没有查表指今,PICPIC的查表程序是利用的查表程序是利用子程序带值返回的特点来实现。具体是在主程序中先取表数据子程序带值返回的特点来实现。具体是在主程序中先取表数据地址放入地址放入W W,接着调用子程序,子程序的第一条指令将,接着调用子程序,子程序的第一条指令将W W置入置入PCPC,则程序跳到数据地址的地方,再由,则程序跳到数据地址的地方,再由“RETLWRETLW”
36、指令将数据放入指令将数据放入W W返回到主程序。表格程序是通过一偏移量来修正返回到主程序。表格程序是通过一偏移量来修正PCPC值,由一条值,由一条带参数返回指令实现。带参数返回指令实现。第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计2.4 汇编语言程序设计 2.4.8子程序设计子程序设计 在编程过程中,常常会遇到一些完全相同的计算在编程过程中,常常会遇到一些完全相同的计算和操作,例如求各种数据的加减乘除运算、代码转换和操作,例如求各种数据的加减乘除运算、代码转换和延时等。如果每次都编写完全相同的程序段,会使和延时等。如果每次都编写完全相同的程序段,会
37、使编程相当繁琐、耽误时间,而且浪费大量的程序存储编程相当繁琐、耽误时间,而且浪费大量的程序存储器空间。因此,对这些基本操作功能都是将它编制成器空间。因此,对这些基本操作功能都是将它编制成标准化的程序段,存储于程序存储器的指定区域,在标准化的程序段,存储于程序存储器的指定区域,在每次需要时就调出使用,这种程序段就称为子程序,每次需要时就调出使用,这种程序段就称为子程序,调用子程序的程序称为主程序或者调用程序。子程序调用子程序的程序称为主程序或者调用程序。子程序结构是程序设计标准化和模块化的有效方法。结构是程序设计标准化和模块化的有效方法。第二章第二章 PICPIC单片机指令系统和汇编语言程序设计
38、单片机指令系统和汇编语言程序设计2.4 汇编语言程序设计2.4.92.4.9分支跳转子程序分支跳转子程序 经经常常需需要要根根据据条条件件判判断断,确确定定程程序序多多方方向向转转向向选选择择,实实现现对对程程序序的的灵灵活活控控制制。用用PIC单单片片机机指指令令可可以以轻轻松松地地构构成成分分支支跳跳转转。在在程程序序形形式式上上,分分支支功功能能跳跳转转子子程程序序与与数数据据查查表表子子程程序序的的结结构构类类似似,只只是是它它是是用用GOTO语语句句替替代代了了RETLW语语句句,并直接进入不同的子程序中。并直接进入不同的子程序中。第二章第二章 PICPIC单片机指令系统和汇编语言程
39、序设计单片机指令系统和汇编语言程序设计本章小节(1 1)基本概念基本概念指令:指挥计算机完成某个基本操作的命令。指令:指挥计算机完成某个基本操作的命令。程序:完成一项任务所需的所有指令的有序集合。程序:完成一项任务所需的所有指令的有序集合。指指令令系系统统:一一台台计计算算机机所所能能执执行行的的指指令令集集合合就就是是它它的的指令系统。指令系统。指指令令的的表表示示方方法法:有有机机器器语语言言表表示示方方法法和和汇汇编编语语言言表表示示方方法法。其其中中机机器器语语言言的的指指令令是是用用二二进进制制代代码码表表示示,汇编语言的指令是用助记符表示。汇编语言的指令是用助记符表示。(2 2)P
40、IC16F87XPIC16F87X系列单片机的指令分类系列单片机的指令分类第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计本章小节PIC16F87XPIC16F87X单单片片机机采采用用精精简简指指令令集集(RISCRISC)结结构构,指指令令效效率率高高,功功能能强强。它它的的指指令令为为单单字字的的宽宽字字位位(1414)指指令令,由由此此生生成成的的程程序序代代码码短短。指指令令条条数数少少,仅仅有有3535条条。每每条条指指令令都都由由操操作作码码和和操操作作数数组组成成,按按指指令令的的操操作作对对象象将将指指令令分分为为面面向向字字节节操操
41、作作类类指指令令、面向位操作类指令、常数操作和控制操作类指令。面向位操作类指令、常数操作和控制操作类指令。(3)PICPIC汇编语言指令格式汇编语言指令格式PICPIC系系列列微微控控制制器器每每条条汇汇编编语语言言指指令令由由4 4个个部部分分组组成成,其书写格式如下:其书写格式如下:标号操作码助记符操作数标号操作码助记符操作数1 1,操作数,操作数2 2;注释;注释第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计本章小节2、掌握掌握PICPIC单片机指令的寻址方式单片机指令的寻址方式PIC16F87X单单片片机机寻寻址址方方式式根根据据操操作作数数
42、的的来来源源分分为为立立即即数数寻寻址址、直直接接寻寻址址、寄寄存存器器间间接接寻寻址和位寻址四种。址和位寻址四种。3、熟记熟记PIC16F87XPIC16F87X单片机的单片机的3535条指令助记符条指令助记符4 4、学会汇编语言程序设计、学会汇编语言程序设计第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计本章小节(1)汇编语言程序流程图的基本结构汇编语言程序流程图的基本结构顺顺序序程程序序结结构构:从从头头至至尾尾严严格格按按照照次次序序一一条条语语句句一一条条语句地顺序执行,且每一条语句均被执行一遍。语句地顺序执行,且每一条语句均被执行一遍。分分
43、支支程程序序流流程程图图:一一般般包包含含一一个个判判断断框框和和两两个个或或两两个个以上的出口。从而形成程序的以上的出口。从而形成程序的2个或多个分支。个或多个分支。循环程序流程图:对某一段程序重复执行多次。循环程序流程图:对某一段程序重复执行多次。(2 2)PIC PIC 汇编语言的伪指令汇编语言的伪指令伪伪指指令令是是程程序序设设计计人人员员向向汇汇编编器器发发布布的的控控制制命命令令,告告诉诉汇汇编编器器如如何何完完成成汇汇编编过过程程和和一一些些规规定定的的操操作作,以以及控制汇编器的输入、输出和数据定位等。及控制汇编器的输入、输出和数据定位等。第二章第二章 PICPIC单片机指令系统和汇编语言程序设计单片机指令系统和汇编语言程序设计本章小节(3 3)PICPIC汇编语言常用程序设计方法汇编语言常用程序设计方法这这是是本本章章的的重重点点,要要在在实实验验中中反反复复联联系系,熟熟练练掌握最基本的数据传送程序的设计、掌握最基本的数据传送程序的设计、算算术术逻逻辑辑运运算算程程序序设设计计、延延时时程程序序的的设设计计、查查表程序设计和子程序设计。表程序设计和子程序设计。