sky-Hawk where 发表于 2013-3-21 20:30:53

为什么我断开连接之后,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么?

试了一下,感觉不对啊。。。



求教!


sky-Hawk where 发表于 2013-3-25 22:01:08

ukonline2000 发表于 2013-3-25 17:45 static/image/common/back.gif
GPIO要想双向模式,一般都配置为漏极开路,最好再加个上拉

我配置成上下拉可以么?我测了一下貌似行,但是不知道稳定不稳定、

sky-Hawk where 发表于 2013-3-25 17:45:51

GPIO要想双向模式,一般都配置为漏极开路,最好再加个上拉

sky-Hawk where 发表于 2013-3-25 17:40:59

你可以试试把Pin2配成下拉或者Pin2外面接个下拉电阻应该就可以了
另外同时当输入输出应该是没问题的,只要读和写的时序把握好就行,总线很多都是复用的,关键看你是如何用

sky-Hawk where 发表于 2013-3-24 08:41:51

kk5290122 发表于 2013-3-23 22:23 static/image/common/back.gif
呵呵……你的头像好经典哦……

是我亲外甥的~
今年都两岁了。。这张是刚出生的时候给他拍的、、很有赶脚啊,,一直被我盗用{:3_62:}

sky-Hawk where 发表于 2013-3-23 22:23:59

tao475824827 发表于 2013-3-23 22:22 static/image/common/back.gif
恩恩,我也感觉他很厉害,每次都说关键点

呵呵……你的头像好经典哦……

sky-Hawk where 发表于 2013-3-23 22:22:29

kk5290122 发表于 2013-3-23 22:19 static/image/common/back.gif
你楼上那位是我师兄哦,有什么问题可以多跟他交流……

恩恩,我也感觉他很厉害,每次都说关键点

sky-Hawk where 发表于 2013-3-23 22:19:29

tao475824827 发表于 2013-3-22 21:13 static/image/common/back.gif
感觉pin的8个模式我都不太懂、、、、所以每次选的时候都很迷茫、、、

8051那本书上感觉说的也不是很详细 ...

你楼上那位是我师兄哦,有什么问题可以多跟他交流……

sky-Hawk where 发表于 2013-3-22 21:13:26

ht868788 发表于 2013-3-22 18:12 static/image/common/back.gif
下拉?《8051片上可编程系统原理与应用》P78页中段有一句话:
“实际的I/O引脚电压是由所选择的驱动模式和 ...

感觉pin的8个模式我都不太懂、、、、所以每次选的时候都很迷茫、、、

8051那本书上感觉说的也不是很详细这一部分、、

sky-Hawk where 发表于 2013-3-22 10:42:12

ht868788 发表于 2013-3-22 09:48 static/image/common/back.gif
照你的描述,led应该是接地,拔线后你这灯是渐灭的不?可能和GPIO的8种使用模式有关
还有感觉你这个程序里 ...

我把Pin2的模式改成下拉问题就解决了~~

可是我想用pin2做双向口,就是一会输入,一会输出,这样一直设置成下拉也可以么?

sky-Hawk where 发表于 2013-3-22 10:31:51

ht868788 发表于 2013-3-22 09:48 static/image/common/back.gif
照你的描述,led应该是接地,拔线后你这灯是渐灭的不?可能和GPIO的8种使用模式有关
还有感觉你这个程序里 ...

不是渐灭的、、、拔线之后灯暗了一点(没有不拔线的时候那么亮),
然后到了十三秒左右的时候就突然灭了。。

还有手都不能碰线、、(不是裸线)
一摸线,灯就亮了,,,,搞不懂,,难道是线放久了、、绝缘胶皮都坏了?



我是用线连接的。。把Pin1口和pin2口用导线连在一起了。。。这样是不是不行啊?。。。


页: [1] 2
查看完整版本: 为什么我断开连接之后,LED灯还会亮十几秒之后再灭啊?

Baidu
map