io口高阻态第一次应用,出现不明现象

[复制链接]
 楼主| yegucheng123 发表于 2011-8-10 14:02 | 显示全部楼层 |阅读模式
程序如下
P1M1=0x01;
P1M0=0;
while(1)
{
  if(p10==0)
  p11=~p11;
}
设置p10高阻。然后读p10,根据p10使p11取反。
现象如下
上电后,p11LED中亮度。向p10输入低电平后,LED在原来的基础上变亮。向p10输入高电平后,LED在原来的基础上变暗。多试几次LED偶然会熄灭。
P1无上拉或下拉电阻。

为什么LED暗亮不分明且偶然还会熄灭?
在设置p10高阻态后,只对其读取,会读出什么值?
 楼主| yegucheng123 发表于 2011-8-10 14:10 | 显示全部楼层
将 if(p10==0)改为if(p10==1)后再试
现象如下:
上电后,p11LED中亮度。向p10输入低电平后,LED基本上每次都能熄灭,偶然很暗。向p10输入高电平后,LED在原来的基础上变亮。
P1无上拉或下拉电阻。

为什么LED暗亮不分明且偶然还会熄灭?
在设置p10高阻态后,只对其读取,会读出什么值?
两次向p10分别输入高低电平,p11都能作出反应(变暗或变亮)。这说明p10准确地读出我输入的高低电平和本身的高阻态吗?
 楼主| yegucheng123 发表于 2011-8-10 15:45 | 显示全部楼层
诚忘高手指点或砖拍
a412314214 发表于 2011-8-10 15:56 | 显示全部楼层
:loveliness::loveliness:
zhouarm 发表于 2011-8-12 21:14 | 显示全部楼层
你能确定在每次P10状态即将发生变化的最后那个周期,P11是什么状态吗? :)。
或者说,P10状态发生变化,难道 每次高电平状态或者低电平状态持续时间内,P11 = ~P11 执行次数是一样的么?  可能为奇数次,也可能为偶数次…………。

你的程序有问题。再看看把。
草履虫 发表于 2011-8-15 12:08 | 显示全部楼层
1. LED暗亮不分明且偶然还会熄灭?
while(1){}执行速度太快,p11可频繁变化.可以考虑加延时测试.
2. p10高阻态后,只对其读取,会读出什么值?
外部给的电平是高读的就是高,低读的就是低.前提是p10端口置1.如果置0的话,情况就不定了,外部输入信号的驱动能力和p10的驱动能力强弱有关了.
xiaotann 发表于 2011-8-15 12:14 | 显示全部楼层
LED在原来的基础上变亮
autopccopy 发表于 2011-8-15 23:38 | 显示全部楼层
没说单片机的型号?
jamsan 发表于 2011-8-16 00:31 | 显示全部楼层
猜是STC的单片机吧?没有延时,所以撤掉P10时,没准会处在那个状态。
草履虫 发表于 2011-8-16 19:26 | 显示全部楼层
和什么单片机没有关系.世界上除了STC,51,还有成n多MCU.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:阿弥陀佛,出家人不打诳语。女施主 ,你的确是贫僧自东土出行至今所遇的,最美丽、最性感的女子,你看你这秀发,这玉手,这肌肤,这手感……

0

主题

82

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部