田老师的PIC单片机教案2.pdf_第1页
田老师的PIC单片机教案2.pdf_第2页
田老师的PIC单片机教案2.pdf_第3页
田老师的PIC单片机教案2.pdf_第4页
田老师的PIC单片机教案2.pdf_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.1指令系统概述 2.2字节操作指令 2.3位操作指令 2.4 简单程序设计 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.1 指令系统概述 2.1.1 指令的表示方法 1机器指令的表示方法 指令用于规定计算机的基本操作。一台计算机所能 执行的指令集合就是它的指令系统。 指令用于规定计算机的基本操作。一台计算机所能 执行的指令集合就是它的指令系统。 指令共有两种表示方法,分别是机器语言表示方法 和汇编语言表示方法。不同种类的单片机有不同的一 套命令 指令共有两种表示方法,分别是机器语言表示方法 和汇编语言表示方法。不同种类的单片机有不同的一 套命令(即所谓即所谓“指令系统指令系统”)。 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.1 指令系统概述 2.1.1 指令的表示方法 1机器指令的表示方法 B13B0 操作码操作码操作数操作数 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.1 指令系统概述 2.1.1 指令的表示方法 2汇编语言的表示方法 汇编语言是对机器语言的改进,它采用便于人们记 忆的一些符号(例如简化的英文单词)来表示操作码、 操作数和地址码等。通常把表示指令的符号称之为助 记符。 汇编语言是对机器语言的改进,它采用便于人们记 忆的一些符号(例如简化的英文单词)来表示操作码、 操作数和地址码等。通常把表示指令的符号称之为助 记符。 MOVF 20H,0 ;MOVF 20H,0 ; ANDLW 0FHANDLW 0FH MOVWF 21HMOVWF 21H 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.1 指令系统概述 2.1.1 指令的表示方法 3.PIC16F87X单片机指令3.PIC16F87X单片机指令 PIC16F87X单片机采用精简指令集(RISC)结构,指令效率高, 功能强。它的指令为单字的宽字位(14)指令,由此生成的程 序代码短。指令条数少,仅有35条。 PIC16F87X单片机采用精简指令集(RISC)结构,指令效率高, 功能强。它的指令为单字的宽字位(14)指令,由此生成的程 序代码短。指令条数少,仅有35条。 (1)面向字节操作类(1)面向字节操作类 (2)面向位操作类(2)面向位操作类 (3)常数操作和控制类操作。(3)常数操作和控制类操作。 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.1 指令系统概述 2.1.2 PIC单片机指令的寻址方式2.1.2 PIC单片机指令的寻址方式 1寄存器间接寻址1寄存器间接寻址 所谓寄存器间接寻址指的是通过寄存器F0、 F4来实现。实际的寄存器地址放在F4的低5位中, 通过F0来进行间接寻址。 INDF不是物理上实际 存在的寄存器,而任何寻址INDF的指令都是以 FSR寄存器内容为地址的RAM单元中存放着参加 运算或操作的数据。 所谓寄存器间接寻址指的是通过寄存器F0、 F4来实现。实际的寄存器地址放在F4的低5位中, 通过F0来进行间接寻址。 INDF不是物理上实际 存在的寄存器,而任何寻址INDF的指令都是以 FSR寄存器内容为地址的RAM单元中存放着参加 运算或操作的数据。 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.1 指令系统概述 2.1.2 PIC单片机指令的寻址方式2.1.2 PIC单片机指令的寻址方式 1寄存器间接寻址1寄存器间接寻址 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.1 指令系统概述 2.1.2 PIC单片机指令的寻址方式2.1.2 PIC单片机指令的寻址方式 2立即数寻址2立即数寻址 所谓立即寻址就是操作数在指令中直接给出。 通常把出现在指令中的操作数称之为立即数, 因此就把这种寻址方式称之为立即寻址。 所谓立即寻址就是操作数在指令中直接给出。 通常把出现在指令中的操作数称之为立即数, 因此就把这种寻址方式称之为立即寻址。 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.1 指令系统概述 2.1.2 PIC单片机指令的寻址方式2.1.2 PIC单片机指令的寻址方式 2立即数寻址2立即数寻址 立即数寻址立即数寻址 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.1 指令系统概述 2.1.2 PIC单片机指令的寻址方式2.1.2 PIC单片机指令的寻址方式 3直接寻址3直接寻址 指令中操作数以其所在存储单元地址的形式 给出,就称之为直接寻址。这种方式是对任何 一寄存器直接寻址访问。 指令中操作数以其所在存储单元地址的形式 给出,就称之为直接寻址。这种方式是对任何 一寄存器直接寻址访问。 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.1 指令系统概述 2.1.2 PIC单片机指令的寻址方式2.1.2 PIC单片机指令的寻址方式 3直接寻址3直接寻址 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.1 指令系统概述 2.1.2 PIC单片机指令的寻址方式2.1.2 PIC单片机指令的寻址方式 4位寻址4位寻址 这种寻址方式是对寄存器中的任一位(bit) 进行操作 这种寻址方式是对寄存器中的任一位(bit) 进行操作 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.1 指令系统概述 2.1.3 指令符号的意义说明2.1.3 指令符号的意义说明 1.PIC汇编语言指令格式1.PIC汇编语言指令格式 PIC系列微控制器汇编语言指令与MCS51系列单片 机汇编语言一样,每条汇编语言指令由4个部分组成, 其书写格式如下: PIC系列微控制器汇编语言指令与MCS51系列单片 机汇编语言一样,每条汇编语言指令由4个部分组成, 其书写格式如下: 标号 操作码助记符 操作数1,操作数2;注释标号 操作码助记符 操作数1,操作数2;注释 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.1 指令系统概述 2.1.3 指令符号的意义说明2.1.3 指令符号的意义说明 2.指令符号的意义说明2.指令符号的意义说明 在PIC系列单片机指令中常把数据存储器RAM当作寄 存器来使用(处理)并用字母f(或F)表示。 在PIC系列单片机指令中常把数据存储器RAM当作寄 存器来使用(处理)并用字母f(或F)表示。 d 代表操作数的目标选择,定义d=0,结果存入W; d=1结果存入(文件)寄存器f,当使用汇编程序指令d缺 省时,默认d=1。b代表(文件)寄存器(8位)的位地址(0 d 代表操作数的目标选择,定义d=0,结果存入W; d=1结果存入(文件)寄存器f,当使用汇编程序指令d缺 省时,默认d=1。b代表(文件)寄存器(8位)的位地址(0 7取值)。如寄存器的8位为b7、b6b1、b0,若b=1 代表寄存器的第b1位。字母符号k代表立即数、常数和 数据标号。 7取值)。如寄存器的8位为b7、b6b1、b0,若b=1 代表寄存器的第b1位。字母符号k代表立即数、常数和 数据标号。 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.2 字节操作 指令 PIC16F87X系列单片机PIC16F87X系列单片机字节操作 指令详解详解 见下面表格见下面表格 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.3 位操作 指令 PIC16F87X系列单片机PIC16F87X系列单片机位操作 指令详解详解 见下面表格见下面表格 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 表2-1 PIC16F87X单片机指令集表2-1 PIC16F87X单片机指令集 数据传送类指令数据传送类指令 指令助记符指令助记符功能简述功能简述周期周期14位指令字位指令字影响的状态位影响的状态位 MOLW k 立即数立即数k送入寄存 器 送入寄存 器W 1 110xx k k k k k k k k MOVWF fW送入送入f寄存器寄存器100 0000 1ffff ffff MOVFf,df送入送入f或或W100 1000dfff ffffZ SWAPF f,d f寄存器半字节交 换 寄存器半字节交 换 100 1110 dfff ffff ADDLWk W加立即数加立即数k,结 果送入 ,结 果送入W或或f 111 111xkkkk kkkk OV,C,DC, Z ADDWFf,d W加加f,结果送入,结果送入 W或或f 100 0111dfff ffff OV,C,DC, Z 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 算术操作类指令算术操作类指令 指令助记符指令助记符功能简述功能简述周期周期影响的状态位影响的状态位 DECF f,df减减1100 0011 dfff ffffZ DECFSZ f,df减减1,为,为0间跳间跳1(2)00 1011 dffff ffff INCF f,df加加1100 1010dfff ffffZ INCFSZ f,df加加1,为,为0间跳间跳1(2)00 1111 dfff ffff SUBLW k 立即数立即数k减减W结果 送入 结果 送入W或或f 111110xkkkkkkkk OV,C,DC, Z SUBWF f,d f减减W,结果送入 或 ,结果送入 或f 100 0010 dfff ffff OV,C,DC, Z 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 逻辑操作类指令逻辑操作类指令 指令助记符指令助记符功能简述功能简述周期周期14位指令字位指令字 影响的状态 位 影响的状态 位 ANDLW k 立 即 数 与立 即 数 与 W, 结果送入 , 结果送入W 1 11 1001 kkkk kkkk Z ANDWF f,d f与与W,结果送 入 ,结果送 入W或或f 100 0101dfff ffffZ CLRF ff清清0100 0001 1fff ffffZ CLRWW清清01 00 0001 0xxx xxxx Z COMF f,df取反取反100 1001 dfff ffffZ 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 IORLW k k 或或 W, 结 果 送入 , 结 果 送入W 1 11 1000 kkkk kkkk Z IORWF f, d f或或W,结果送 入 ,结果送 入W或或f 1 00 0100 dfff ffff Z RLF f,d f带进位带进位C循环 左移 循环 左移 100 1101dfff ffffC RRF f,d f带进位带进位C循环 右移 循环 右移 100 1100dfff ffffC XORLW k 立即数或立即数或W, 结果送入 , 结果送入W 1 11 1010 kkkk kkkk Z XORWF f,d f异或异或W,结果 送入 ,结果 送入W和和f 1 00 0110 dfff ffff Z 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 PDTO, 控制转移类指令控制转移类指令 指令助记符指令助记符功能简述功能简述周期周期14位指令字位指令字 影响的状 态位 影响的状 态位 CLRWDT 清 除清 除 WDT 定 时器 定 时器 1 00 0000 0110 0100 CALL k调用子程序调用子程序2 10 0 kkk kkkk kkkk GOTO k无条件跳转无条件跳转2 11 1000 kkkk kkkk 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 NOP空操作空操作1 00 0000 0xx 0000 OPTION 写写OPTION寄存 器 寄存 器 1 00 0000 0110 0010 RETFIE中断返回中断返回2 00 0000 0000 1001 DLINTD RETLW k 常 数 送常 数 送 W, 子 程序返回 , 子 程序返回 2 11 01xx kkkk kkkk RETURN子程序返回子程序返回2 00 0000 0000 1000 SLEEP进入休眠状态进入休眠状态1 00 0000 0110 0011 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 位操作类指令位操作类指令 指令助记符指令助记符功能简述功能简述周期周期14位指令字位指令字 影响的状态 位 影响的状态 位 BCF f,b 清除清除f寄存器的寄存器的b 位位 101 00bb bfff ffff BSF f,b置置f寄存器的寄存器的b位位101 01bb bfff ffff BTFSC f,b f寄存器的寄存器的b位为位为 0间距间距 1(2)01 10bb bfff ffff BTFSS f,b f寄存器的寄存器的b位产 为 位产 为0间距间距 1(2)01 11bb bfff ffff 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.4 汇编语言程序设计 2.4.1 汇编语言程序设计知识 1汇编语言源程序的结构 汇编语言提供了一种不涉及实际存储器地 址和机器指令编码的编写源程序的有效方法。 我们需要掌握的是: 汇编语言的程序格式、语句格式、助记符、 伪指令。 程序的4种基本结构: 顺序、分支、循环和 子程序。 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.4 汇编语言程序设计 2.4 汇编语言程序设计 2.4.1 汇编语言程序设计知识 2PIC 汇编语言的程序流程图 (1)程序流程图常用的图形符号(1)程序流程图常用的图形符号 圆角矩形框为起始 /终止框,表示一个程序的开始或结束。圆角矩形框为起始 /终止框,表示一个程序的开始或结束。 矩形框为任务框,表示要处理的任务。矩形框为任务框,表示要处理的任务。 菱形框为判断框,表示要判断的因素,判断结果将导致程 序走入不同的分支。 菱形框为判断框,表示要判断的因素,判断结果将导致程 序走入不同的分支。 指向线为带有箭头的线段,表示程序的走向。指向线为带有箭头的线段,表示程序的走向。 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.4 汇编语言程序设计 2.4 汇编语言程序设计 2.4.1 汇编语言程序设计知识 2PIC 汇编语言的程序流程图 ((2)程序流程图的画法 顺序程序结构 顺序程序结构在流程图中表示为任务框一个一个地串行 连接。在计算机执行程序时表现为,从头至尾严格按照次序 一条语句一条语句地顺序执行,并且每一条语句均被执行一 遍。 (2)程序流程图的画法 顺序程序结构 顺序程序结构在流程图中表示为任务框一个一个地串行 连接。在计算机执行程序时表现为,从头至尾严格按照次序 一条语句一条语句地顺序执行,并且每一条语句均被执行一 遍。 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.4 汇编语言程序设计 2.4 汇编语言程序设计 2.4.1 汇编语言程序设计知识 2PIC 汇编语言的程序流程图 分支程序流程图 分支程序流程图包含 分支程序流程图 分支程序流程图包含1个判断框和两 个或两个以上的出口。从而形成程序的 个判断框和两 个或两个以上的出口。从而形成程序的 2个或多个分支个或多个分支. 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.4 汇编语言程序设计 2.4 汇编语言程序设计 2.4.1 汇编语言程序设计知识 2PIC 汇编语言的程序流程图 循环程序流程图循环程序流程图 循环程序的结构包含以下4个组成部分:循环程序的结构包含以下4个组成部分: 循环初始化部分:为循环程序作准备。如循环变量设置, 即指定或定义一个循环变量作循环次数计数器或地址指针,并 给它设置一个初始值。 循环初始化部分:为循环程序作准备。如循环变量设置, 即指定或定义一个循环变量作循环次数计数器或地址指针,并 给它设置一个初始值。 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.4 汇编语言程序设计 2.4 汇编语言程序设计 2.4.1 汇编语言程序设计知识 2PIC 汇编语言的程序流程图 循环体:要求重复执行的程序段,即循环程序的主体部分。循环体:要求重复执行的程序段,即循环程序的主体部分。 循环控制部分:循环控制就是根据循环结束条件,判断是否 跳出循环。 循环控制部分:循环控制就是根据循环结束条件,判断是否 跳出循环。 结束部分:对循环结果进行分析、处理和保存。结束部分:对循环结果进行分析、处理和保存。 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.4 汇编语言程序设计 2.4 汇编语言程序设计 2.4.2 PIC 汇编语言的伪指令 用来编写汇编语言源程序的语句,主要是 指令助记符,其次就是伪指令。所谓伪指令就 是“假”指令的意思,不是单片机的指令系统中 的真实指令。伪指令与指令系统中的助记符的 不同之处是没有机器码与它对应。 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.4 汇编语言程序设计 2.4 汇编语言程序设计 2.4.2 PIC 汇编语言的伪指令 最常用的伪指令介绍 (1)INCLODE 1)INCLODE 功能: 读入外部源文件功能: 读入外部源文件 格式:INCLUDE 格式:INCLUDE 说明:用于把指定文件读入源程序中作为源程序代码的一部分。 文件名必须用双引号或尖括号给出,如果被指定文件非当前工 作目录下,则需要指令完整的路径。 说明:用于把指定文件读入源程序中作为源程序代码的一部分。 文件名必须用双引号或尖括号给出,如果被指定文件非当前工 作目录下,则需要指令完整的路径。 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.4 汇编语言程序设计 2.4 汇编语言程序设计 2.4.2 PIC 汇编语言的伪指令 最常用的伪指令介绍 (2)EQU (2)EQU 功能: 对标号赋值功能: 对标号赋值 格式: EQU 格式: EQU 说明:使说明:使 EQU 两端的两端的8位值相等,即给标号赋 予一个特定值或者说是给标号定义一个数值。 位值相等,即给标号赋 予一个特定值或者说是给标号定义一个数值。 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.4 汇编语言程序设计 2.4 汇编语言程序设计 2.4.2 PIC 汇编语言的伪指令 最常用的伪指令介绍 (3)#DEFINE (3)#DEFINE 功能:定义文本替换标号功能:定义文本替换标号 格式:#DEFINE格式:#DEFINE 说明:用于定义文本替换标号,在汇编时把源 代码中的 说明:用于定义文本替换标号,在汇编时把源 代码中的替换成替换成。 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.4 汇编语言程序设计 2.4 汇编语言程序设计 2.4.2 PIC 汇编语言的伪指令 最常用的伪指令介绍 (4)ORG (4)ORG 功能: 存放程序单元的起始地址功能: 存放程序单元的起始地址 格式:标号 ORG 格式:标号 ORG 说明:用于指定该伪指令后面的源程序存放的起始地 址,也就是汇编后的机器码目标程序在单片机的程序 存储器中开始存放的首地址。 说明:用于指定该伪指令后面的源程序存放的起始地 址,也就是汇编后的机器码目标程序在单片机的程序 存储器中开始存放的首地址。 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.4 汇编语言程序设计 2.4 汇编语言程序设计 2.4.2 PIC 汇编语言的伪指令 最常用的伪指令介绍 (5) END (5) END 功能:程序结束伪指令功能:程序结束伪指令 格式:END 格式:END 说明: 这条伪指令通知汇编器 MPASM结束对源程序(.ASM)的 汇编,即使在后面还有语句,也将不予继续汇编。 说明: 这条伪指令通知汇编器 MPASM结束对源程序(.ASM)的 汇编,即使在后面还有语句,也将不予继续汇编。 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.4 汇编语言程序设计 2.4.3 PIC 汇编语言程序设计基础 1设置 I/O 口的输入/输出方向 2检查寄存器是否为零 3.比较二个寄存器的大小 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.4 汇编语言程序设计 2.4.4 数据传送程序的设计 数据传送程序设计是最基本的程序设计, 也是最常用的汇编程序设计。但是 数据传送程序设计是最基本的程序设计, 也是最常用的汇编程序设计。但是PIC单片机 的数据传送程序和其他的单片机不同,因为 单片机 的数据传送程序和其他的单片机不同,因为 PIC单片机的数据存储器单片机的数据存储器RAM分成分成4个存储区, 所以对 个存储区, 所以对PIC单片机来说,设计数据传送程序时 应该随时注意存储区的选择,否则数据传送达 不到目的。 单片机来说,设计数据传送程序时 应该随时注意存储区的选择,否则数据传送达 不到目的。 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.4 汇编语言程序设计 2.4.4 数据传送程序的设计 【2-43】用直接寻址方式分别向】用直接寻址方式分别向4个存储区的个存储区的0x B0、0x30、 ox130、0x1 B0传送数据。传送数据。 ;选择存储区0,直接寻址单元0xB0实际对应到0x30单元;选择存储区0,直接寻址单元0xB0实际对应到0x30单元 CLRFSTATUSCLRFSTATUS MOVLW 0xF0 MOVLW 0xF0 MOVWF 0x30MOVWF 0x30 MOVLW 0x0FMOVLW 0x0F MOVWF 0xB0MOVWF 0xB0 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.4 汇编语言程序设计 ;选择存储;选择存储区区1,直接寻址单元0x30实际对应到0xB0单元1,直接寻址单元0x30实际对应到0xB0单元 BSFSTATUS,RP0BSFSTATUS,RP0 MOVLW 0xF1MOVLW 0xF1 MOWWF 0x30MOWWF 0x30 MOVLW 0x1FMOVLW 0x1F MOVWF 0xB0MOVWF 0xB0 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.4 汇编语言程序设计 2.4.5 算术逻辑运算程序的设计算术逻辑运算程序的设计 基本算术运算有:定点数、浮点数运算; 无 符号数、 有符号数运算等。 基本算术运算有:定点数、浮点数运算; 无 符号数、 有符号数运算等。 逻辑运算逻辑运算 - 逻辑运算包括:逻辑异或、逻辑与、逻 辑或; - 逻辑运算包括:逻辑异或、逻辑与、逻 辑或; 1加法运算:二进制加法运算,可直接运用加 法指令: 加法运算:二进制加法运算,可直接运用加 法指令:ADDWF 或或 ADDLWBCD加法运算加法运算 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.4 汇编语言程序设计 2.4.6 延时程序的设计延时程序的设计 1简单延时程序的编写简单延时程序的编写 如果延时时间较短,可以让程序简单地连续执行几条空操 作指令 如果延时时间较短,可以让程序简单地连续执行几条空操 作指令“NOPNOP”。如果延时时间长,可以用循环来实现。如果延时时间长,可以用循环来实现。 2延时程序的延时时间计算2延时程序的延时时间计算 延时程序中计算指令执行的时间和即为延时时间。如果使 用4MHz振荡,则每个指令周期为1S。所以单周期指令时间为 1S,双周期指令时间为2S。在上例的LOOP循环延时时间即 为:(1+2)*100+2=302(S)。在循环中插入空操作指令即 可延长延时时间。 延时程序中计算指令执行的时间和即为延时时间。如果使 用4MHz振荡,则每个指令周期为1S。所以单周期指令时间为 1S,双周期指令时间为2S。在上例的LOOP循环延时时间即 为:(1+2)*100+2=302(S)。在循环中插入空操作指令即 可延长延时时间。 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.4 汇编语言程序设计 2.4.7 查表程序查表程序 查表程序常用于数据补偿,非线性修正,求非函数和代码转 换,这种方法就不需要计算,速度又快,而且实现容易。查表 程序用得恰当可能,大大简化程序设计带极大方便。 查表程序常用于数据补偿,非线性修正,求非函数和代码转 换,这种方法就不需要计算,速度又快,而且实现容易。查表 程序用得恰当可能,大大简化程序设计带极大方便。 在单片微机中,要对程序存储器的数据进行访问,必须用 读表操作。而PIC系列MCU没有查表指今,PIC的查表程序是利 用子程序带值返回的特点来实现。具体是在主程序中先取表数 据地址放入W,接着调用子程序,子程序的第一条指令将W置入 PC,则程序跳到数据地址的地方,再由 在单片微机中,要对程序存储器的数据进行访问,必须用 读表操作。而PIC系列MCU没有查表指今,PIC的查表程序是利 用子程序带值返回的特点来实现。具体是在主程序中先取表数 据地址放入W,接着调用子程序,子程序的第一条指令将W置入 PC,则程序跳到数据地址的地方,再由“RETLWRETLW”指令将数据放 入W返回到主程序。表格程序是通过一偏移量来修正PC值,由 一条带参数返回指令实现。 指令将数据放 入W返回到主程序。表格程序是通过一偏移量来修正PC值,由 一条带参数返回指令实现。 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.4 汇编语言程序设计 2.4.8 子程序设计子程序设计 在编程过程中,常常会遇到一些完全相同的计算 和操作,例如求各种数据的加减乘除运算、代码转换 和延时等。如果每次都编写完全相同的程序段,会使 编程相当繁琐、耽误时间,而且浪费大量的程序存储 器空间。因此,对这些基本操作功能都是将它编制成 标准化的程序段,存储于程序存储器的指定区域,在 每次需要时就调出使用,这种程序段就称为子程序, 调用子程序的程序称为主程序或者调用程序。子程序 结构是程序设计标准化和模块化的有效方法。 在编程过程中,常常会遇到一些完全相同的计算 和操作,例如求各种数据的加减乘除运算、代码转换 和延时等。如果每次都编写完全相同的程序段,会使 编程相当繁琐、耽误时间,而且浪费大量的程序存储 器空间。因此,对这些基本操作功能都是将它编制成 标准化的程序段,存储于程序存储器的指定区域,在 每次需要时就调出使用,这种程序段就称为子程序, 调用子程序的程序称为主程序或者调用程序。子程序 结构是程序设计标准化和模块化的有效方法。 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 2.4 汇编语言程序设计 2.4.9分支跳转子程序2.4.9分支跳转子程序 经常需要根据条件判断,确定程序多方向转 向选择,实现对程序的灵活控制。用 经常需要根据条件判断,确定程序多方向转 向选择,实现对程序的灵活控制。用PIC单片机 指令可以轻松地构成分支跳转。在程序形式上, 分支功能跳转子程序与数据查表子程序的结构类 似,只是它是用 单片机 指令可以轻松地构成分支跳转。在程序形式上, 分支功能跳转子程序与数据查表子程序的结构类 似,只是它是用GOTO语句替代了语句替代了RETLW语句语句, 并直接进入不同的子程序中。并直接进入不同的子程序中。 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言程序设计 本章小节 (1)基本概念(1)基本概念 指令:指挥计算机完成某个基本操作的命令。指令:指挥计算机完成某个基本操作的命令。 程序:完成一项任务所需的所有指令的有序集合。程序:完成一项任务所需的所有指令的有序集合。 指令系统:一台计算机所能执行的指令集合就是它的 指令系统。 指令系统:一台计算机所能执行的指令集合就是它的 指令系统。 指令的表示方法:有机器语言表示方法和汇编语言表 示方法。其中机器语言的指令是用二进制代码表示, 汇编语言的指令是用助记符表示。 指令的表示方法:有机器语言表示方法和汇编语言表 示方法。其中机器语言的指令是用二进制代码表示, 汇编语言的指令是用助记符表示。 (2)PIC16F87X系列单片机的指令分类(2)PIC16F87X系列单片机的指令分类 第二章 PIC单片机指令系统和汇编语言程序设计第二章 PIC单片机指令系统和汇编语言

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论