PIC单片机PIC12F510怎么GP0和GP1无法正常的作为输入IO口,当设为输入时,这两个端口总是为0。
十有八九是你没有设置这二个脚为数字口,因为默认时它是AD模拟口(GP0为AN0,GP1为AN1).
还有,比较器要关闭,因为GP0,GP1也是比较器的输入端,默认时比较器是打开的。程序如下,仿真运行是正确的,我用的是C编程。
#include <htc.h>
__CONFIG(0x0FCA); //采用内部4MHz RC,
void DELAY(unsigned int);
void main(void)
{ ADCON0=0b00000000; //最高二位为0,引脚均为数字口
TRIS=0b00001000; //GP3只能作为输入脚
CM1CON0=0; //关闭比较器
GPIO=0b00100101;
while(1)
{
DELAY(100);
GPIO=~GPIO; //按位取反,即图中的LED亮变为灭,灭变为亮
};
}
//======延时(n)ms
void DELAY(unsigned int n)
{ unsigned int j;
unsigned char k;
for (j=0;j<n;j++)
for (k=197;k>0;k--)
NOP();
}