在16位的pic单片机中,不同组的io口,把这些IO口进行位操作?

在16位的pic单片机中,不同组的io口,如A口的RA1 ,RA2 ,B口的RB1,RB2,C口的RC1,RC2 等等,如何编写代码把这些IO口进行位操作?像PORTA=0XFFFF,这样?

可以使用以下语句。如PORTA=(1<<i)
i为你需要对哪个IO口置1的操作。那么假如你要对0位操作,i为0;对1位操作,i为1以此类推。不过此写法会使其它位全为0,如你对端口A的1位操作时,那么其它位的值将为0无论之前是否为1或0.
如你想对IO口的操作不影响之前的状态,那么你该这么使用。
对IO口置1的写法
a=PORTA;
a=a|(1<<i);
PORTA=a;
对IO口置0的写法
a=PORTA;
a=a&(~(1<<i));
PORTA=a;
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-10
PIC系列单片机 汇编语言编程时:对I/O端口的 位操作指令如下:

BCF PORTA,3 对A端口的RA3进行清零
我们一般先预定义本回答被提问者采纳
相似回答