PIC单片机汇编指令集合

发布者:西周以前的最新更新时间:2022-02-19 来源: eefocus关键字:PIC单片机  汇编指令  寄存器 手机看文章 扫描二维码
随时随地手机看文章

(1)因为寄存器都分散在不同的bank里,对寄存器操作时就是转换当前所在的bank。如果你知道是你要操作的寄存器在哪个bank,那么就直接movlb也可以。BANKSEL就是自动的,不用你去查datasheet了。


(2)MOVF:是把一个寄存器内存送入W寄存器中,如 MOVF 8, 0 就是把第8寄存器送到W中,后面是0说明存后F不变。


MOVWF:与上面相反,把W内容存入F寄存器中, 相当于MOV W to F。


(3)常用指令:


CLRF  PORTD ;  //PORTD 清零

BCF   PORTE ;  //RE0清零

MOVLW  d'100;  //意思是把100(D代表十进制),存入寄存器W


MOVLW  k ;  //将立即数k存入W寄存器中


MOVWF  ADCON1;  //将W的内容存入ADCON1寄存器中


MOVF  f,  d ;  //如果d=0,f中的内容被传送至W寄存器。如果d=1,f的内容存在f本身,零标志位受影响。


BSF  f,  b ;   //f寄存器中的第b位被置1

BCF  f,  b ;  //f寄存器中的第b被清零


BTFSC  f, b ;  //如果f寄存器的b位为1,则执行下一条指令。如果为0,则放弃下一条指令,执行一条NOP指令,使之成为一条双周期指令。

BTFSS  f, b ;  //与BTFSC相反,0执行,为1则跳过


(4)一个例子 内置ADC设置


BANKSEL ADCON1 ;              //选择寄存器ADCON1

MOVLW B’11110000’;          //将立即数11110000传送给工作寄存器W  功能:Right justify, ADCRC,oscillator; Vdd and Vss Vref

MOVWF ADCON1 ;                //将W的内容存入ADCON1寄存器    


BANKSEL TRISA ;                 //选择寄存器TRISA

BSF TRISA,0 ;                   //将TRISA第0位置1,即将端口RA0设置为输入  功能:Set RA0 to input

 

BANKSEL ANSELA ;                //选择寄存器ANSELA

BSF ANSELA,0 ;                  //将ANSLA的第0位置1,即将端口RA0设置为模拟输入   功能:Set RA0 to analog


BANKSEL ADCON0 ;                //选择寄存器ADCON0

MOVLW B’00000001’ ;           //将立即数00000001传送给工作寄存器W    功能:Select channel AN0;ADC conversion cycle in progress. ;  ADC is enabled

MOVWF ADCON0 ;                  //将W内的数据传送给ADCON0寄存器


CALL SampleTime ;               // 延时 Acquisiton delay


BSF ADCON0,ADGO ;               //将ADCON0的ADGO位置1,开始转换  功能:Start conversion   ADC Conversion Status bit。1 = ADC conversion cycle in progress.


BTFSC ADCON0,ADGO ;             //Is conversion done? 判断ADCON0的GO位是否为0?  为0则跳过,为1则顺序执行;

GOTO $-1 ;                      // No, test again   没有转换完成,再检测一遍


BANKSEL ADRESH ;                //选择寄存器ADRESH

MOVF ADRESH,W ;                 // Read upper 2 bits  将高位ADRESH的数据存入W寄存器中

MOVWF RESULTHI ;                //store in GPR space  将数据存储

 

BANKSEL ADRESL ;                //选择寄存器ADRESL

MOVF ADRESL,W ;                 //Read lower 8 bits

MOVWF RESULTLO ;                //Store in GPR space

在这里插入图片描述
在这里插入图片描述

关键字:PIC单片机  汇编指令  寄存器 引用地址:PIC单片机汇编指令集合

上一篇:PIC单片机-冲压出料监控
下一篇:PIC16F15323单片机 (ADC+温度传感器)--汇编+C语言

推荐阅读最新更新时间:2024-11-16 22:38

基于PIC单片机的多媒体终端遥控器设计
1 设计理念和原理 1.1 设计理念 随着数字家庭等领域技术的迅速发展,在多媒体终端上的增值业务将越来越多,浏览网页、搜索、短信等都需要遥控器进行输入。但作为连接用户和终端之间的重要外设,遥控器的设计理念还停留在模拟电视时代,体验感较差。目前用户输入的解决方式是呼出终端的内置输入法,这样就带来了两个问题:一,不同厂家的终端都需要内置自己的中英文输入法,占用资源,而且必须搭配自己的遥控器使用,通用性不高;二,用户在输人时必须一边看遥控器输入一边看屏幕确认输入,如果文字较多会造成频频抬头和低头的麻烦,难以忍受。基于以上缺点,本文提出将输入法内置于遥控器的理念,在遥控器上输入文字后再统一将文字编码用 红外 线发给终端,终端接收后将编码译
[单片机]
基于<font color='red'>PIC单片机</font>的多媒体终端遥控器设计
PIC单片机汇编指令
PIC 8位单片机汇编指令识读 各大类单片机的指令系统是没有通用性的,它是由单片机生产厂家规定的,所以用户必须遵循厂家规定的标准,才能达到应用单片机的目的。 PIC 8位单片机共有三个级别,有相对应的指令集。基本级PIC系列芯片共有指令33条,每条指令是12位字长;中级PIC系列芯片共有指令35条,每条指令是14位字长;高级PIC系列芯片共有指令58条,每条指令是16位字长。其指令向下兼容。 在这里笔者介绍PIC 8位单片机汇编语言指令的组成及指令中符号的功能,以供初学者阅读相关书籍和资料时快速入门。 一、PIC汇编语言指令格式 PIC系列微控制器汇编语言指令与MCS-51系列单片机汇编语言一样,每条汇编语言指令由4个部
[单片机]
STM32 GPIO BRR和BSRR寄存器
使用BRR和BSRR寄存器可以方便地快速地实现对端口某些特定位的操作,而不影响其它位的状态。 比如希望快速地对GPIOE的位7进行翻转,则可以: GPIOE- BSRR = 0x80; // 置'1' GPIOE- BRR = 0x80; // 置'0' 如果使用常规'读-改-写'的方法: GPIOE- ODR = GPIOE- ODR | 0x80; // 置'1' GPIOE- ODR = GPIOE- ODR & 0xFF7F; // 置'0' 有人问是否BSRR的高16位是多余的,请看下面这个例子: 假如你想在一个操作中对GPIOE的位
[单片机]
Microchip带 USB2.0的PIC单片机
Microchip Technology(美国微芯科技公司)日前推出首款具备全速USB2.0连接功能的闪存PIC®单片机,工作频率达48MHz,数据传输速率高达12Mbps。结合新器件配备的一系列片上外设和纳瓦技术(nanoWatt)的功耗管理功能,该系列器件针对采用USB的工业、医疗和其它多种嵌入式应用,为设计人员提供了全套嵌入式控制解决方案。 目前大部份具有USB功能的单片机都是专门针对个人计算机外围设备或消费市场的需要而设计的,却忽略了嵌入式工程师的需要。 Microchip 新款USB PIC单片机系列的问世为更广泛的嵌入式应用增添了全速USB的优势,即使遇到恶劣的操作环境或碰到只能不定时地连接个人计算机的
[单片机]
手把手教你使用PIC单片机驱动继电器
在现代自动控制设备中,都存在一个电子电路(弱电)与电气电路(强电)的互相连接问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件(如电动机、电磁铁、电灯等),另一方面又要为电子线路的电气电路提供良好的电隔离,以保护电子电路和人身的安全。继电器便能完成这一桥梁作用。 继电器的工作原理与分类 继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。在大多数的情况下,继电器就是一个电磁铁,这个电磁铁的衔铁可以闭合或断开一个或数个接触点。当电磁铁的绕组中有电流通过
[单片机]
手把手教你使用<font color='red'>PIC单片机</font>驱动继电器
一种实用的VXI总线寄存器基接口电路的设计
摘要:在介绍VXI总线协议的基础上,通过对器件寻址、端口地址译码、DTB总线仲裁和中断仲裁等几部分工作原理的分析,提出了一种VXI寄存器基接口电路的实现方法,并给出了用可编程逻辑器件实现的过程。该接口电路已在多种VXI寄存器基器件中得到应用。 关键词:VXI总线 寄存器基 地址修改码 VXI(VMEbus eXtention for Instrumentation)总线是一种完全开放的、适用于各仪器生产厂家的模块化仪器背板总线规范。它具有高速数据传输、结构紧凑、配置灵活、电磁兼容性好等优点,已成为高性能测试系统集成的首选总线。VXI总线器件主要分为:寄存器基器件、消息基器件和存储器基器件。目前寄存器基器件在应用中所占比例最大
[应用]
PIC单片机程序设计的基本格式
为了快速掌握PIC单片机源程序的基本结构,这里给出一个典型的程序结构框架。建立源程序时首先用伪指令TITLE提供程序的标题,接着给出整个程序的总说明,并用列表伪指令LIST指定所用单片机型号和文件输出格式,再利用INCLUDE伪指令读入MPASM中提供的定义文件如《P16F84INC》,然后对片内常用资源进行定义,再给出一般程序的基本结构框架。现举例如下。 TITLE“This is……”;程序标题   ;程序说明   LIST P="16F84",F=1NHX8M   ;   include   -config_RC_Qsc &_WDT_0FF…   ;资源定义和变量定义   STATUS EQU 03   FSR EQU
[应用]

推荐帖子

MDK4.1 生成的BIN 内容错误 !!!
LPC1102规格书UM10249Page:128说到:当MCU计算Sector0中地址0-8的CHECKSUM为0时,程序进入用户代码区。否则进入ISP区。但我用Keil生成的代码,0-8的CHECKSUM不为零。是不是MDK不支持LPC1102的编译?请高手解答。如果是该用什么软件来开发LPC1102?Criterionforvalidusercode:ThereservedCortex-M0exceptionvectorlocation
lijie1116 NXP MCU
求助!!!10—14V升压输出24V电路,用lm5022芯片,为什么芯片不能工作??
本帖最后由paulhyde于2014-9-1503:17编辑电路如图,Rsns用一段0.1欧的导线代替,M1用的是IFRF024N。我们的电路很奇怪的是输入一达到9V时,我们使用的稳压电源的输出就被限制死了,怎么调都调不到10V以上,mos管也十分的烫,感觉lm5022就没有工作,因为lm5022的out引脚一直就没有pwm波形输出,我们设计的是输入10-14V,输出24V的电路,可以告诉我们这是什么原因吗??谢谢了!!!求助!!!10—14V升压输出24V电路,用lm
jjjj~~~ 电子竞赛
VHDL学习理解
一.关于端口VHDL共定义了5种类型的端口,分别是In,Out,Inout,Buffer及Linkage,实际设计时只会用到前四种。In和Out端口的使用相对简单。这里,我们主要讲述关于buffer和inout使用时的注意事项。与Out端口比,Buffer端口具有回读功能,也即内部反馈,但在设计时最好不要使用buffer,因为buffer类型的端口不能连接到其他类型的端口上,无法把包含该类型端口的设计作为子模块元件例化,不利于大型设计和程序的可读性。若设计时需要实现某个输出的回
eeleader FPGA/CPLD
《基于wince的网络音视频通信(简单易明版)》中开发板的ip问题
源程序来自hellogv的《基于wince的网络音视频通信(简单易明版)》。我用的是wifi通信方式,2440与pc机通信。路由器给pc机分配的ip是192.168.0.100;给arm板分配的ip是192.168.0.101;为什么在2440上运行该程序的时候,localip显示的是192.168.0.234???应该显示192.168.0.101才对啊!!下面是对话框的初始化代码,localip=192.168.0.234就是由下面代码产生的。就是不知道怎么会取得192.168.0.
毅通客服1 WindowsCE
请教sallen key 滤波问题
问题在附件。请教sallenkey滤波问题可能我没有说清楚。当R=1K,C1=2n,C2=1n与R=5K,C1=10n,C2=5n两个电路,fo的Q值是否一样?首先,这是低通滤波器,所以不能用中心频率除以带宽的方法求Q值。二楼的问题很显然,转折频率肯定是不同的,但是Q值是一样的。想用简单方法计算出这个电路不同电阻和/或电容的截止频率,我摆弄很久都只能在有条件下的接近。看到你所说当Q值等于0.7,该频点的衰减只好3dB。而2楼的电路参数,Q一样,那么衰减在3dB的频点不同,就一
captzs 模拟电子
wince 6.0
请问哪位大虾有wince6.0的下载地址啊,还有wince5.0和wince6.0能够同时在一台电脑上装吗?wince6.0微软的网站上面有的下,你到微软网站上面搜索一下就可以了。ce5,ce6可以的,我的ce5还和ce6安装在同一个盘符下面呢,目前还没有发现什么问题。楼上正解。ding!我这里有Wince4.2、5.0、6.0的正版软件。不过太大,没办法我的系统上安装了3个版本的,没问题。只不过如果卸载5.0的话,就会导致6.0出问题,需要重新修复6.0
hlyft WindowsCE
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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