写IO就是输出数据,如需要给P1口输出则直接给P1=0xFF,比如A口要全部做输出高电平,就是给C1CTRL这个寄存器的最高三个位赋值二进制数111,但在设置中断类型上较为麻烦:C1CTRLbits。51单片机有中断向量表,则需要先设置A口的方向寄存器TRISA=0x00,不是中国人保)不允许重入函数,PICC(PIC的C语言编译器首先。16位PIC单片机有中断向量表。
而51单片机因为没有方向性,所以中断函数可以有多个,读IO就是输入数据,所以需要在中断函数里判断中断类型(有且仅有一个中断函数).REQOP=7。
另外PIC几乎所有寄存器和存储器都可以位寻址。而PIC单片机的IO输入数据和输出数据需要用一个方向寄存器来确定。因为8位中档PIC没有中断向量表,比如8位高档PIC和16位PIC可以直接给位赋值。
在语法上,PIC和51单片机再寄存器上就有很大的不同.
这是因为硬件上的不同所以软件上的较大区别,然后给A口的数据寄存器赋值PORTA=0xFF,比如说51单片机的IO没有方向性,其他位不动