指令PIC的指令详解.doc

指令PIC的指令详解

指令PIC的指令详解 伪指令 #include p16f877a.inc list p=16f877a,r=dec __config __idlocs(用户利用它存放程序版本或日期等) __idlocs 0x1234 errorlevel 0,-302,-305 (编译信息输出显示等级及对对某些信息的单独设定) #define/#undefine #define KEY1 PORTB,7 equ w_temp equ 0x20 cblock+endc: cblock 0x20 w_temp buffer:8 var1 endc org 0x00 dt(定义表格数据 代替retlw)table addwf pcl,f dt 0 dt 1,2,3;retlw 1 ;retlw 2 ;retlw 0x33(3) dt abc ;retlw a ;retlw b ;retlw c de(源程序中定义片内eeprom的初值 其实地址0x2100) org 0x2100 de 0,1,2,3 de ABCD;定义8个字节 fill(填充程序空间) fill 0x0000,5 fill (goto $),next_bloclk-$ (从当前填充至标号next)死循环 end 宏指令 banksel、pagesel、bankisel、clrc、setc、clrz、setz、clrdc、setdc、skpc、skpnc、skpdc、skpndc、bc、bnc、bz、bnz、bdc、bndc macro自定义宏 1.ADD LITERAL TO W ADDLW K (W)+K-W加立即数至W ADDLW 0X15 W=0X10-0X25 2.ADD W TO F ADDWF F,D ((W)+(F)-W/F) ADDWF REG1,0 ADDWF FSR,1 3.ADD W AND CARRY D TO F ADDWFC F,D ADDWFC FSR,1 (W+FSR+C-FSR) 4.AND LITERAL AND W ANDLW K ANDLW 0x5F((W)并0x5F-W) 5.AND W WITH F ANDWF F,D ANDWF FSR 1 (W并FSR-W/F) 6.BIT CLEAR F BCF F,B BCF FLAG_REG,7 将FLAG_REG的D7清0 7.BIT SET F BSF F,B BSF PROTA,0 PROTA的D0置1 8.BIT TEST,SKIP IF CLEAR BTFSC F,B BTFSC FLAG,1 FALSE TRUE位测试 0跳转 9.BIT TEST,SKIP IF SET BTFSS F,B BTFSS FLAG,1 FALSE TRUE位测试 1跳转 10.BIT TOGGLE F BTG F,B BTG PROTC,4 位取反 PORTC=0111 0101-0110 0101 11.SUBROUTINE CALL CALL 调用子程序 12.CLEAR F CLRF FLAG_REG (F清零 置Z=1) 13.CLEAR W REGISTER CLRW (W清零 置Z=1) 14.CLEAR WATCHDOG TIMER CLRWDT(监视定时器清零 00h-WDT 0-WDT预定标器 1-TO 1-PD) 15.COMPLEMENT F COMF REG1,0(寄存器内容取反-W/F) 16.COMPARE F WITH W,SHIP IF F=W CPFSEQ REG 17.COMPARE F WITH W,SHIP IF FW CPFSGT REG 18.COMPARE F WITH W,SHIP IF FW CPFSLT REG 19.DECIMAL ADJUST W REGISTER DAW REG1,0 (对F中内容进行10进制调整-F/W+F) REG1=0XA5 C=0 DC=0-0X05 C=1 DC=0 20.DECREMENT F DECF CNT,1(寄存器内容减1-W/F) 21.DECREMENT F,SHIP IF 0 DECFSZ CNT,1 GOTO ... CONTINUE ...(减1后为0跳转至CONTINUE) 22.DECREMENT F,SHIO IF NOT 0 DECFSNZ CNT,0 GOTO ... CONTINUE ...(减1后不为0跳转至CONTINUE) 23.UNCONDITIONAL BRANCH GOTO 地址

文档评论(0)

1亿VIP精品文档

相关文档