PIC单独取反端口指令问题

2020-02-10 08:33发布

初学 PIC,现想单独取反PC口的第三,汇编指令如下

MOVF        PORTC,W
SUBLW        0XFF
ANDLW        0X08
MOVWF        PORTC

需要4个周期,请问是否还有更简的指令实现吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
youmcu
2020-02-11 17:20
3) 尽管PIC单片机对寄存器有具体的位操作指令,如位置1指令BSF、位清零指令BCF以及字节取反指令,但没有对位取反的指令,对此可用异或运算指令XORWF配合二进制常数对寄存器的一位或多位进行取反,异或的逻辑关系是两数相异时输出=1,相等则输出=0,所以将某一位与1异或时即可将对应位取反,如需对RB和count的3、4位取反,可用以下程序实现:
                movlw                B'00011000'        ; 将常数000 11 000传送到W
                xorwf                PORTB,f                ; 原状态是011 01 001时,运算后变为011 10 001
                xorwf                count,f                ; 原状态是101 00 101时,运算后变为101 11 101

一周热门 更多>