?
注册 用户名:应用
密码: 登录 ? ? ? ? ? ? ? ? ? ?
HOHO 照片PK 分享 投票 测试 礼物 开心部落 汽车工厂 七彩鱼
更多
网页游戏
分享
? ? ? ?
热门分享 最新分享 好友的分享 我的分享
如何分享? 问题反馈
shxc_3的分享
分享
PIC常用汇编指令
PIC常用汇编指令 常用指令
1.寄存器加1指令:INCF 【格式】 INCF F,d
【功能】寄存器F加1
【说明】
(1)INCF是Increment F的缩写;
(2)在PIC系列8位单片机中,常用符号F代表片内的各种寄存器和F的序号地址;
(3)d=0时,结果存入W;d=1时,结果存入F。
【实例】 INCF PORTC,1 ;将PORTC加1
2.寄存器减1指令:DECF 【格式】 DECF F,d
【功能】寄存器F减1
【说明】
(1)DECF是Decrement F的缩写;
(2)d=0时,结果存入W;d=1时,结果存入F。
【实例】 ENCODER EQU 0X21
……
DECF ENCODER,1 ;将ENCODER减1 3.寄存器清零指令:CLRF 【格式】 CLRF F
【功能】寄存器清零
【说明】
(1)CLRF是Clear F的缩写;
(2)F寄存器被清为全0,使状态位Z=1。
【实例】 CLRF TRISC ;对TRISC 清零
4.W清零指令:CLRW 【格式】 CLRW
【功能】寄存器W清零
【说明】
(1)CLRW是Clear W的缩写;
(2)W为PIC单片机的工作寄存器;
(3)W寄存器被清为全0,使状态位Z=1。
【实例】 CLRW ;W=00H
5.F寄存器传送指令:MOVF 【格式】 MOVF F,d
【功能】将F寄存器内容传送到F或W
【说明】
(1)MOVF是Move F的缩写;
(2)当d=1时,传到F本身;当d=0时,传到W;
(3)影响状态位Z
【实例】 MOVF PORTB,0 ;PORTB口内容送W
MOVWF PORTA ;W内容即PORTB口内容送PORTA 6.W寄存器传送指令:MOVWF 【格式】 MOVWF F
【功能】 W寄存器传送
【说明】
(1)MOVWF是Move W to F的缩写;
(2)将W寄存器内容传到F,W内容不变;
(3)不影响状态位。
【实例】 MOVLW 0x0B ;送0BH送W
MOVWF PORTB ;送W内容到PORTB口
7.递增跳转指令:INCFSZ 【格式】 INCFSZ F,d
【功能】 递增跳转
【说明】
(1)INCFSZ是Increment F,Skip if 0的缩写;
(2)F寄存器内容加1后,当d=1时结果存入F,当d=0时存入W;
(3)若结果为0则跳过下一条指令,否则顺序执行;
(4)影响状态位Z。
【实例】
LOOP INCFSZ COUNT1,1 ;COUNT1加1,结果存到COUNT1 GOTO LOOP ;结果不为零,循环
MOVWF COUNT2 ;结果为零时,执行该语句 8.递减跳转指令:DECFSZ 【格式】 DECFSZ F,d
【功能】递减跳转
【说明】
(1)DECFSZ是Decrement F,Skip if 0的缩写;
(2)F寄存器内容减1,结果存入F本身(d=1)或W(d=0);
(3)如果结果为0则跳过下一条指令,否则顺序执行;
(4)影响状态位Z;
(5)实际指令中,当d=1时,该项常常被略去。
【实例】
DELAY MOVLW 25 ;延时子程序 MOVWF N ;给N赋值25
LOOP DECFSZ N,1 ;N-1送回N并判结果=0?是!跳出循环 GOTO LOOP ;否!循环回去 RETURN ;返回 9.位置1指令:BCF 【格式】 BCF F,B
【功能】位清0
【说明】
(1)BCF是Bit Clear F的缩写;
(2)符号B是表示片内某个8位数据寄存器F的位号(或位地址);
(3)指令的意思是:将寄存器的第B位清0。
【实例】 BCF REG1,2 ;把寄存器REG1的第2位清零
10.位清零指令:BSF 【格式】 BSF F,B
【功能】位置1
【说明】(1)BSF是Bit Set F的缩写;
(2)将寄存器F的第B位置1。
【实例】 BSF STATUS,RP0 ;设置文件寄存器的体1
11.位测试为零跳转指令:BTFSC 【格式】 BTFSC F,B
【功能】位测试为0跳转