打印

一个问题纠结了一个星期~高手进来帮下忙,不胜感激!

[复制链接]
2184|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
如何检测STC89C52,IO口外部信号高电平状态???

这几天发现,只能检测外部信号低电平,如if(d1==0){}.

如果要检测外部信号高电平状态,很多人都说先向其写“1”,但是你向其写“1”之后,不管你外部信号是高电平或无信号,再读回来的始终是“1”。不能区分啥时候有高电平信号进来...

又试了方法二,用P0不接上拉。P0状态默认为高阻大概1.7v左右。但是运行下语句后,
if(P00==1){LED=1;},结果LED一直为1,点亮。P00一直为1,再向P00输入高电平信号时,LED始终为1。  证明,P00在高阻和高电平时单片机默认其为1,而且不能区分高阻跟高电平。

是小弟方法不对吗?
应该如何检测STC89C52,IO口外部信号高电平状态???
:dizzy:

相关帖子

沙发
不光写程序| | 2011-8-3 06:36 | 只看该作者
你向其写1后不给IO拉低他当然还是1了。。。。。。。

方法二:这个太搞笑了,“不能区分高阻跟高电平”,高阻和高电平根本就不是一个概念,高阻态是IO口地一种输入输出状态,高电平是一种信号的状态,和低电平相对。。。。

哎,楼主下次少用点STC估计就不会纠结到凌晨一点半了。。。。。。。。。。。。。

使用特权

评论回复
板凳
不光写程序| | 2011-8-3 06:41 | 只看该作者
查楼主资料发现竟然是个8月3日注册的马甲,难道楼主专门为问这个问题弄得号?

问问题又不是丢人事,干嘛弄马甲啊?    知之为知之,不知为不知,是智也!
等楼主大号露面:lol

使用特权

评论回复
地板
123jj| | 2011-8-3 06:48 | 只看该作者
如何检测STC89C52,IO口外部信号高电平状态???

这几天发现,只能检测外部信号低电平,如if(d1==0){}.

如果要检测外部信号高电平状态,很多人都说先向其写“1”,但是你向其写“1”之后,不管你外部信号是高电平或无信号,再读回来的始终是“1”。不能区分啥时候有高电平信号进来...

又试了方法二,用P0不接上拉。P0状态默认为高阻大概1.7v左右。但是运行下语句后,
if(P00==1){LED=1;},结果LED一直为1,点亮。P00一直为1,再向P00输入高电平信号时,LED始终为1。  证明,P00在高阻和高电平时单片机默认其为1,而且不能区分高阻跟高电平。

是小弟方法不对吗?
应该如何检测STC89C52,IO口外部信号高电平状态???
:dizzy:...
yegucheng123 发表于 2011-8-3 01:37


LZ真可怜,忙了一星期~~~ :L
“不管你外部信号是高电平或无信号,再读回来的始终是“1”。 ”
但小盆友漏了下半句,下半句是“当你外部信号是低电平时,再读回来的始终是“0”。 ”
这样,不就能区分啥时候有高电平信号进来,啥时候有低电平信号进来了吗?至于无信号,那是中间态,使用时应避免...

使用特权

评论回复
5
原野之狼| | 2011-8-3 08:50 | 只看该作者
你所描述的现象是正确的  只是你的理解存在偏差

使用特权

评论回复
6
yegucheng123|  楼主 | 2011-8-3 09:17 | 只看该作者
5楼说的有道理,是本人对准双向口和双向口的理解问题。
应当纠正。

那就是stc单片机都不可以做?
有无办法另p0为三态?
2楼的朋友说“高阻和高电平根本就不是一个概念,高阻态是IO口地一种输入输出状态,高电平是一种信号的状态,和低电平相对。。。。”
我的意思是“if(P00==1){LED=1;},结果LED一直为1,点亮”这个语句不能区分出,p00的高电平跟高阻。
还是纠结...另外我无大号

使用特权

评论回复
7
不光写程序| | 2011-8-3 09:30 | 只看该作者
我都说过了,信号的状态只有两个(高电平、低电平),高阻态是IO的一种工作状态,IO为高阻态时一般对其读数就是高电平,当然不是绝对的,具体看器件了。   
要是按楼主的想法,那么高阻态在程序中用什么表示呢(1为高电平,0为低电平,高阻为?)?:o

使用特权

评论回复
8
不光写程序| | 2011-8-3 09:31 | 只看该作者
不知楼主还纠结不?:L

使用特权

评论回复
9
yegucheng123|  楼主 | 2011-8-3 09:49 | 只看该作者
不对其操作,只对其检测,能返回!0或!1 么?

使用特权

评论回复
10
yegucheng123|  楼主 | 2011-8-3 09:51 | 只看该作者
STC官网进去不了
还以为遭黑了...
今早进去,显示“您的网站已经到期,请联系您的服务商续费”

使用特权

评论回复
11
jack821119| | 2011-8-3 11:19 | 只看该作者
个人建议,你可以用外部中断来检测高低电平。

使用特权

评论回复
12
不光写程序| | 2011-8-3 18:15 | 只看该作者
STC官网进去不了
还以为遭黑了...
今早进去,显示“您的网站已经到期,请联系您的服务商续费”
yegucheng123 发表于 2011-8-3 09:51

STC肿木了?木钱了?

使用特权

评论回复
13
autopccopy| | 2011-8-3 18:29 | 只看该作者
STC官网进去不了
还以为遭黑了...
今早进去,显示“您的网站已经到期,请联系您的服务商续费”
yegucheng123 发表于 2011-8-3 09:51

STC肿木了?木钱了?
不光写程序 发表于 2011-8-3 18:15


宏晶STC早就使用www.****ducst 官网域名了。。。 :)

使用特权

评论回复
14
llp133| | 2011-8-3 23:59 | 只看该作者
拉低

使用特权

评论回复
15
yegucheng123|  楼主 | 2011-8-4 00:20 | 只看该作者
NND换域名也不通知我一声...

使用特权

评论回复
16
不光写程序| | 2011-8-4 09:05 | 只看该作者
NND换域名也不通知我一声...
yegucheng123 发表于 2011-8-4 00:20

估计是那天姚先生打电话给你,但是你手机忘带了,打了一上午也没打通,后来就忘记了!

使用特权

评论回复
17
NE5532| | 2011-8-4 11:13 | 只看该作者
搞懂原理就不会纠结了

使用特权

评论回复
18
yegucheng123|  楼主 | 2011-8-5 00:29 | 只看该作者
谢谢大家:lol

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

82

帖子

1

粉丝