PIC单片机PIC12F510怎么GP0和GP1无法正常的作为输入IO口,当设为输入时,这两个端口总是为0。

GP0和GP1当设为输入时,这两个端口总是为0,怎么都无法让它变高。开了内部上拉也不行,系统总是认为该端口是低电平。... GP0和GP1当设为输入时,这两个端口总是为0,怎么都无法让它变高。开了内部上拉也不行,系统总是认为该端口是低电平。 展开
 我来答
jianghe706
2012-06-26 · TA获得超过5145个赞
知道大有可为答主
回答量:2213
采纳率:77%
帮助的人:805万
展开全部

十有八九是你没有设置这二个脚为数字口,因为默认时它是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();

}

深圳思驰科技有限公司_
2024-10-23 广告
深圳思驰科技是国内先进入芯片解密领域的公司,拥有数十年的丰富经验,成功帮助国内外企业、政府及知名科研机构攻克多个技术难题。在医疗电子、工控设备、军事航天、通信设备、广电设备、交通设备、汽车电子、家用电子等行业都成功推出了多款创新产品,熟悉这... 点击进入详情页
本回答由深圳思驰科技有限公司_提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式