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

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

十键罩有八九是你没有设置这二个脚为数字口,因为默认时它是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=0j<nj++)

for (k=197k>0k--)

NOP()

}

可以用VDD来作参考电压用,但是最好分开走线,然后再接到VDD的输入处.还要加电容滤波.如何编程,那要看你怎样用了.有需要我可以提供一个参考程序给你.

这样吧,I/O分时使悔岩用可以实现.但是,VDD不能当I/O口来用啊.不用专业的AD,就用电容充放电来检测,但是不准确.I/O不够用,最好是分时使用.这样才能测准确.你可以HI在线交谈。

*************************************

刚看了,12F510有带滑知AD口的,完全可以用LED显示口和AD输入口共用同一I/O口.只时你碧让御的程序保证时间在10US左右,是看不到LED有闪的情况.就这样实现.

1、按下Win+R组合件打开运行,在框中键入 control (控制面板命令)点击确定打开控制面板。

2、在凳穗晌控制面板中点击【程序和功能】,大图标的查看方式下。

3、然后将无法正常运行的程序找到族御后单击枣锋右键,选择卸载将其卸载。

4、卸载后重新下载安装即可解决问题。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12456851.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存