PIC单片机的清零指令详解

发布者:艺泉阁最新更新时间:2019-11-30 来源: elecfans关键字:PIC单片机  清零指令  编程 手机看文章 扫描二维码
随时随地手机看文章

看到这篇文章的朋友,想必大家对pic单片机均具备一定兴趣,或对pic单片机具备一定使用需求。前文中,小编曾对pic单片机汇编语言进行过部分讲解。本文中,将对pic单片机的清零等指令加以讲解,以帮助大家更好掌握pic单片机编程


一、清零指令

1.寄存器清零指令

实例:CLRW;寄存器W被清零

说明:该条指令很简单,其中W为PIC单片机的工作寄存器,相当于MCS-51系列单片机中的累加器A,CLR是英语Clear的缩写字母。

2.看门狗定时器清零指令。

实例:CLRWDT;看门狗定时器清零(若已赋值,同时清预分频器

说明:WDT是英语Watchdog Timer的缩写字母。CLR见上述说明。注意该两条指令无操作数。

3.寄存器f清零指令。指令格式:CLRF f

实例:CLRF TMRO;对TMRO清零

说明:在PIC系列8位单片机中,常用符号F(或f)代表片内的各种寄程器和F的序号地址。F取值按PIC系列不同型号而不同,一般为Ox00~Ox1F/7F/FF。TMRO代表定时器/计数器TMRO,所以CLRF对寄程器清零,采用了直接寻址方式直接给出要访问的寄存器TMRO。

4.位清零指令。指令格式 BCF f,b

实例:BCF REG1,2;把寄存器REG1的D2位清零

说明:BCF是英语Bit Clear F的缩写。指令格式中的F,同上说明;符号b是表示PIC片内某个8位数据寄存器F的位号(或位地址),所以b的取值为0~7或D0~D7。实例中REG是Register的缩写。实例中的2代表指令格式中的b=2即寄存器REG1的D2位。

通过上述四条清零指令格式和实例,可以说明,学习PIC系列8位单片机的指令时应首先了解指令的助记符意义(功能),再有就是它的表达方式。初学者没有必要死记指令,重要是理解和实践。

PIC单片机的清零指令详解

二、面向字节、常数与控制操作的指令

1.传送立即数至工作寄存器W指令

指令格式:MOVLW k;k表示常数、立即数和标号

说明:MOVLW是Move Literal to w的缩写

实例:MOVL 0x1E;常数30送W

2.I/O口控制寄存器TRIS设置指令

指令格式;TRIS f

说明;TRIS f是Load TRIS Register的缩写。其功能是把工作寄存器W的内容送入I/O口控制寄存器f。当W=0时,置对应I/O口为输出;W=1,置I/O口为输入。

实例:MOVLW 0x00 ;把00H送入W

TRIS RA ;置PIC RA口为输出

MOVLW 0xFF ;把FFH送入W

TRIS RB ;置PIC RB口为输入

说明:这是PIC汇编语言中常用的几条指令,即设置某个I/O口(这里是RA口和RB口)为输入或输出的语句。可见,识读指令时,一应充分理解语句格式的功能,二应前后联系阅读。

PIC单片机的清零指令详解

3.W寄存器内容送寄存器f(W内容保持不变)指令

指令格式:MOVWF f

说明:MOVWF是Move W to f的缩写

实例:MOVLW 0x0B;送0BH送W

MOVWF 6 ;送W内容到RB口

说明:第一条指令0x0B(常数11)送工作寄存器W,第二条指令,把W内容常数11送到寄存器F6中,查表F6即为RB口,所以PORT_B(B口)=0BH=D11

4.寄存器f传送指令

指令格式:MOVF f,d

说明:MOVF是Move f的缩写。F代表PIC中的某个寄存器。指令中的d规定:d=0时,f内容送W;d=1时,f内容送寄存器。

实例:MOVF 6,0 ;RB口内容送W

MOVWF 8  ;RB口内容送f8

说明:第一条指令中的6代表寄存器f=6,查寄存器表f=6为RB口;0代表d=0,代表选择的目标为寄存器W。第二条指令中的8代表寄存器f=8。所以两条指令结果是把RB口的内容送f8。至于f8内容是多少?还应在汇编语言开始时附加指令,这里从略。

5.空操作指令

指令格式:NOP

说明:NOP是英语No OperaTIon的缩写。NOP无操作数,所以称为空操作。执行NOP指令只使程序计数器PC加1,所以占用一个机器周期。

实例:MOVLW 0xOF;送OFH到W

MOVWF PORT_B ;W内容写入B口

NOP      ;空操作

MOVF PORT_B,W ;读操作

说明:该三条指令是一种对I/O口的B口连续操作的实例,其目的达到写入B口的内容要读出时,应保证写、读之间有个稳定时间,因此加入了空操作指令NOP。

6.无条件跳转指令

指令格式:GOTO k

说明:执行该条指令时,将指令转移到指定的地址(跳转)。指令中的k,常与程序中的标号联系起来。

实例:见第9条指令中

7.寄存器内容减1,结果为零的间跳指令

指令格式:DECFSZ f,d

说明:DECFSZ是英语Decrement f,Skip of not 0的缩写。符号f,d代表的意义,前述已作说明。该条指令是指寄存器的内容减1存入W(d=0)或f(d=1)中。若指令执行结果减1不为零,指令顺序执行;为零时,就间跳下一条指令后再执行(等效顺序执行一条空指令NOP),实际指令中,当d=1时,该项常被略去。

8.寄存器内容加1,结果为零间跳指令

指令格式:INCFSZ f,d

说明:INCFSZ是英语Increment f,Skip of 0的缩写。该条指令与上一条(7)指令差别仅在于“1”上,即执行这条指令时,寄存器f内容加1,若结果不为零,则指令顺序执行;为零则指令间跳执行。执行这条指令的其它逻辑关系与上条相同。

9.子程序返回指令

指令格式:RETLW k

说明:RETLW是Return Literal to W的缩写。该指令代表子程序返回,返回前先把8位立即数送W。

关键字:PIC单片机  清零指令  编程 引用地址:PIC单片机的清零指令详解

上一篇:PIC单片机的各种汇编语言指令详解
下一篇:PIC单片机程序设计的基础知识介绍

推荐阅读最新更新时间:2024-11-01 10:21

6502单片机编程--伪指令2
** 宏指令 ** 令我感到极度兴奋的是 6502_Macroassembler &Simulator 有强大的宏功能 . 这无疑使程序 的编写又简单方便许多了 . 我们先说说宏的格式 宏名 :.MACRO 宏虚参数 1, 宏虚参数 2, 宏虚参数 3..... 宏体 .ENDM 这里 .MACRO 和 .ENDM 必须成对出现 宏调用的格式 : 宏名宏实参数 1, 宏实参数 2, 宏参数 3 具有宏调用的源程序被编译时 , 每个宏调用将被编译程序展开 , 宏展开实际上是宏定义时设计的宏体去代替相应的宏指令名 , 并且用实际参数去取代虚参数 , 以形成符合功能并可以被执行的实际代
[单片机]
如何解决汽车“智能钥匙”编程失败率高、效率不够的冲突
随着汽车电子行业的蓬勃发展,汽车制造商正在越来越多地采用电子部件。但是高产能的需求和原厂工具编程失败率高效率不够的冲突却日益凸显,原因究竟在哪里?今天,就让我们从汽车“智能钥匙”聊起。 一、现象 很多智能钥匙厂家一开始生产时,采用芯片官方提供的2-Link仿真器进行烧录,2-Link带有第三方调用接口,可以实现半自动化量产烧录。我们知道2-Link的强项是仿真,对于开发阶段是独一无二的工具,但在严格的生产中却没有表现出稳定的性能,很多用户反应,使用2-Link生产时,均会出现一定概率的烧录不良现象。在严谨的汽车电子行业中,要求近乎苛刻的100%良品率,显然2-Link的效果是很难被接受的。 图1 NXP仿真工具
[汽车电子]
Altera宣布高清晰质量计划 瞄准广播设施质量“热点”
2007年9月17号,北京—— 旨在加速高清晰(HD)广播系统设计在市场上的应用,Altera公司(NASDAQ: ALTR)今天公布了其高清晰质量计划(HDQI)。在HD领域合作伙伴提供的专业技术支持下,该计划的目的是帮助设计人员迅速高效地满足高质量HD系统迅速增长的需求。4i2i、ATEME、Let It Wave和PLDA是该计划的创始成员。 HDQI为整个广播基础设施的大量质量“热点”提供独特的解决方案,从而提高了HD质量,解决了实用性问题,增强了系统设计效能。通过高质量的业界标准现成设计,采用Altera? HDQI解决方案后,设计人员并不需要从头开始设计质量最好的功能,能够以更低的成本迅速实现广播系统设计。系统设计人员
[焦点新闻]
PIC单片机开发环境搭建
1.PIC单片机的开发环境常用的是MPLAB, MPLAB可以从微芯公司网站上(http://www.microchip.com)下载;这个开发环境自带的是汇编程序的编译器,如果想用C语言做开发,那么需要下载相应的C语言编译器并安装,配套的C语言编译器为 MPLAB-C18, 可以从微芯公司网站上(http://www.microchip.com)下载。 2.首先下载好MPLAB和MPLAB-C18两个软件并解压。 首先安装MPLAB,解压好的MPLAB如下图所示: 双击setup,前半部分直接点击next即可,到中间部分会出现如下图所示的选择框: 这里可以选择是,后面的点击next即可。MPLAB安装完成之后,重启系统
[单片机]
基于DSP的高速实时语音识别系统的设计
实时语音识别系统中,由于语音的数据量大,运算复杂,对处理器性能提出了很高的要求,适于采用高速DSP实现。虽然DSP提供了高速和灵活的硬件设计,但是在实时处理系统中,还需结合DSP器件的结构及工作方式,针对语音处理的特点,对软件进行反复优化,以缩短识别时间,满足实时的需求。因此如何对DSP进行优化编程,解决算法的复杂性和硬件存储容量及速度之间的矛盾,成为实现系统性能的关键。本文基于TMS320C6713设计并实现了高速实时语音识别系统,在固定文本的说话人辨识的应用中效果显著。 1 语音识别的原理 语音识别的基本原理框图如图1所示。语音信号中含有丰富的信息,从中提取对语音识别有用的信息的过程,就是特征提取,特征提取方法是整个语音识
[应用]
PIC单片机基础1
1、PIC单片机总线结构——哈佛结构:即指令和数据空间是完全分开的,所以与常见的微控制器不同的一点是,程序和数据总线可以采用不同的宽度。以PIC16F684单片机为例,数据总线是8位的,但指令总线位数是14位。 2、在PIC单片机中,我们将RAM存储器称作文件寄存器(F寄存器)。 3、PIC中程序寄存器和数据存储器分开,两者总线不同: 以PIC16F684单片机为例: 1)程序存储器构成:具有一个13位程序计数器,物理上具有2Kx14(0000H-07FFH)存储空间。复位后初始地址为0000H,向量中断地址为0004H。 2)数据存储器构成:数据存储器被分为两个存储区(bank,后续将将专门做原因分析),用STATUS寄
[单片机]
<font color='red'>PIC单片机</font>基础1
S5PV210串口通信编程实战-2
1、串口Tx、Rx对应的GPIO初始化 给GPA0CON的相应bit位赋值为相应值,用C语言位操作完成。 void uart_init( void ) { //初始化Tx、Rx对应的GPIO引脚 rGPA0CON &= ~( 0xff 0 ); //把寄存器的bit0 ~ bit 7全部清零 rGPA0CON |= 0x00000022; //0b0010, Rx、Tx } 2、UCON、ULCON、UMCON、UFCON等主要控制寄存器 依据上节中分析的值进行依次设置即可 void uart_init( void ) { //初始化Tx、Rx对应的GPIO引脚 rGPA0CON &= ~( 0xff 0 ); //把寄存
[单片机]
S5PV210串口通信<font color='red'>编程</font>实战-2
用软件编程的方法来模拟51单片机产生PWM波
89C51芯片没有自带PWM发生器,如果要用51来产生PWM波就必须要用软件编程的方法来模拟。方法大概可以分为软件延时和定时器产生两种方法。下面将逐一介绍。 1 软件延时法 利用软件延时函数,控制电平持续的时间,达到模拟pwm的效果。 程序如下: #include sbit pwm=P1^0; main() { while(1) { pwm=1; delayus(60);//置高电平后延时60us,占空比60% pwm=0; delayus(40); } } void delayus(uint x) { while(x--); } proteus软件仿真结果如下: 可见,用这种延时函数的方法就能简单地模拟出pwm输出。
[单片机]
用软件<font color='red'>编程</font>的方法来模拟51单片机产生PWM波
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved