zoukankan      html  css  js  c++  java
  • PIC16F684汇编学习笔记

    1、端口:

    PORTA 6位 双向口 方向寄存器 TRISA = 1 输入
                      = 0 输出

    注:RA3例外,始终为输入,TRIS位始终读1.当MCLRE = 1时,RA3读为0;

    2、常用指令:
    MOVLW k ;将立即数存入W寄存器中

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

    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则跳过

    3、例子 内置ADC设置

    BANKSEL ADCON1
    MOVLW B'01110000 ;将立即数传送给工作寄存器W
    MOVWF ADCON1 ;将W内的数据传送给ADCON1寄存器,设置ADC的时钟来自内部振荡器=500kHz

    BANKSEL TRISA
    BSF TRISA,0 ;将TRISA第0位置1,即将端口设置为输入

    BANKSEL ANSEL
    BSF ANSEL,0 ;将ANSLE的第0位置1,即将端口设置为模拟输入

    BANKSEL ADCON0
    MOVLW B'10000001 ;设置ADC转换的结果格式、参考电压、通道、转换状态、使能转换
    MOVWF ADCON0 ;将设置的数据存入ADCON0中

    CALL SampleTime ;延时
    BSF ADCON0,GO ;将ADCON0的GO位置1,开始转换
    BTFSC ADCON0,GO ;判断ADCON0的GO位是否为0,为0则跳过,否则顺序执行;
    ;转换完成时GO位自动清零,通过测句判断转换是否完成
    GOTO $ - 1 ;没有转换完成,再检测一遍

    BANKSEL ADRESH
    MOVF ADRESH,W ;将高位ADRESH的数据存入W寄存器中
    MOVWF RESULTHI ;将数据存储

    BANKSEL ADRESL
    MOVF ADRESL,W
    MOVWF RESULTHI

  • 相关阅读:
    Rust资料
    CMake & Ninja
    @Configurable
    Hibernate startup -> 配置SessionFactory实例
    Vue 渲染函数
    Spring 5 新特性
    @Configuration 注解的用途
    AOP
    AnnotationConfigApplicationContext.() -> Unit
    C编译优化
  • 原文地址:https://www.cnblogs.com/loves6036/p/5032558.html
Copyright © 2011-2022 走看看