为什么我断开连接之后,LED灯还会亮十几秒之后再灭啊?
一直都是用引脚输出,没用过输入,刚才就随手写了一个小程序,想试一试输入引脚的用法,思路是Pin1输出高, Pin2不断检测,检测到高时(当我用线连起来Pin1和Pin2时),LED亮灯。检测不到高时,LED灭。
输出用的是 强输出 模式,输入用的是 高阻数字 模式
程序如下:
#include <device.h>
void main()
{ uint8 led = 0x01;
Pin_1_Write(led);
for(;;)
{
if(Pin_2_Read())
{led=0x01;}
else
{led=0x00;}
LED_Write(led);
}
}
结果实际情况是
刚开始灯不亮,我把Pin1和Pin2连起来了之后,灯亮,再然后,我把线拆去,灯不灭 !大概还会亮个13s 左右才灭。
从我拔线到灯灭,每次都是 13秒左右 (我用表测的)
不明白。。这是为什么啊?
另外,还想问一下,一个引脚,我又想让它做输出引脚,又想让它做输入引脚,该怎么设置啊?(就是想反转法做矩阵键盘)
是选择bidirection么?
试了一下,感觉不对啊。。。
求教!
ukonline2000 发表于 2013-3-25 17:45 static/image/common/back.gif
GPIO要想双向模式,一般都配置为漏极开路,最好再加个上拉
我配置成上下拉可以么?我测了一下貌似行,但是不知道稳定不稳定、 GPIO要想双向模式,一般都配置为漏极开路,最好再加个上拉 你可以试试把Pin2配成下拉或者Pin2外面接个下拉电阻应该就可以了
另外同时当输入输出应该是没问题的,只要读和写的时序把握好就行,总线很多都是复用的,关键看你是如何用 kk5290122 发表于 2013-3-23 22:23 static/image/common/back.gif
呵呵……你的头像好经典哦……
是我亲外甥的~
今年都两岁了。。这张是刚出生的时候给他拍的、、很有赶脚啊,,一直被我盗用{:3_62:} tao475824827 发表于 2013-3-23 22:22 static/image/common/back.gif
恩恩,我也感觉他很厉害,每次都说关键点
呵呵……你的头像好经典哦…… kk5290122 发表于 2013-3-23 22:19 static/image/common/back.gif
你楼上那位是我师兄哦,有什么问题可以多跟他交流……
恩恩,我也感觉他很厉害,每次都说关键点 tao475824827 发表于 2013-3-22 21:13 static/image/common/back.gif
感觉pin的8个模式我都不太懂、、、、所以每次选的时候都很迷茫、、、
8051那本书上感觉说的也不是很详细 ...
你楼上那位是我师兄哦,有什么问题可以多跟他交流…… ht868788 发表于 2013-3-22 18:12 static/image/common/back.gif
下拉?《8051片上可编程系统原理与应用》P78页中段有一句话:
“实际的I/O引脚电压是由所选择的驱动模式和 ...
感觉pin的8个模式我都不太懂、、、、所以每次选的时候都很迷茫、、、
8051那本书上感觉说的也不是很详细这一部分、、 ht868788 发表于 2013-3-22 09:48 static/image/common/back.gif
照你的描述,led应该是接地,拔线后你这灯是渐灭的不?可能和GPIO的8种使用模式有关
还有感觉你这个程序里 ...
我把Pin2的模式改成下拉问题就解决了~~
可是我想用pin2做双向口,就是一会输入,一会输出,这样一直设置成下拉也可以么? ht868788 发表于 2013-3-22 09:48 static/image/common/back.gif
照你的描述,led应该是接地,拔线后你这灯是渐灭的不?可能和GPIO的8种使用模式有关
还有感觉你这个程序里 ...
不是渐灭的、、、拔线之后灯暗了一点(没有不拔线的时候那么亮),
然后到了十三秒左右的时候就突然灭了。。
还有手都不能碰线、、(不是裸线)
一摸线,灯就亮了,,,,搞不懂,,难道是线放久了、、绝缘胶皮都坏了?
我是用线连接的。。把Pin1口和pin2口用导线连在一起了。。。这样是不是不行啊?。。。
页:
[1]
2