打印
[其他产品]

PIC16F684汇编学习笔记

[复制链接]
731|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
deadtime|  楼主 | 2019-5-6 20:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

470

帖子

2

粉丝