[51单片机] 急急...关于单片机读取I/O口的的问题!

[复制链接]
2221|13
 楼主| me602111258 发表于 2014-3-10 20:12 | 显示全部楼层 |阅读模式
本帖最后由 me602111258 于 2014-3-10 20:36 编辑

其中一部分用光耦EL817,输出电压大约4.8V左右,我想用51单片机读取这个高电平,可是接到单片机端口后没反应,测得该端口电压为0,...各种猜想实验都不行,求大神帮解~

下面是程序调试,光耦输出接P2^0..蜂鸣器是P2^1,光耦输出高电平,蜂鸣器响
#include<reg52.h>
sbit d=P2^0;
sbit di=P2^1;
void main()
{
   d=0;
  while(1)
  {
  if(d==1)
  di=0;
  else di=1;
}

}

ayb_ice 发表于 2014-3-10 20:23 来自手机 | 显示全部楼层
不是说有电压吗,
端口没有输出低电平吧
 楼主| me602111258 发表于 2014-3-10 20:29 | 显示全部楼层
ayb_ice 发表于 2014-3-10 20:23
不是说有电压吗,
端口没有输出低电平吧

光耦输出端电压4.8...然后我用的杜邦线转接到I/O口,写程序调试不能用,用万用测单片机端口电压为0...请问那地方有误区啊我??
ningling_21 发表于 2014-3-10 20:53 | 显示全部楼层
单片机IO端口有时候会因为误操作而烧坏,所以必要时更换芯片试试...
as564335sa 发表于 2014-3-10 22:44 | 显示全部楼层
把d=0去掉试试,也可能是单片机把光耦拉低了
ZG11211 发表于 2014-3-10 23:25 | 显示全部楼层
你的d都=0了,你还想单片机造反么?
天风立马 发表于 2014-3-11 09:15 | 显示全部楼层
ZG11211 发表于 2014-3-10 23:25
你的d都=0了,你还想单片机造反么?

哈哈
four_zhg 发表于 2014-3-11 09:31 | 显示全部楼层
你用的什么单片机,有的单片机接光耦后输入检测不到,必须配置为高阻输入状态
coody 发表于 2014-3-11 11:32 | 显示全部楼层
单独测试光耦输出和IO的特性看看是否匹配或异常
Auto_lee 发表于 2014-3-11 13:49 | 显示全部楼层
阻抗匹配?在光耦输出端加一个阻值大的下拉电阻试试··
断尘笑 发表于 2014-3-11 20:07 | 显示全部楼层
6L 好幽默啊!~
liu1028tao 发表于 2014-3-12 08:03 来自手机 | 显示全部楼层
楼主,单片机IO口用做输入的时候是不能拉低的,不然真的是要它造反的节奏了
diy1997 发表于 2014-3-12 15:50 | 显示全部楼层
一般光耦和单片机连接都是按输出低电平的接法的,这样有信号时拉低电平,单片机
if (d==0)就可以了.
如果要接输出高电平,把IO设为高阻,下拉电阻(也就是光耦负载)选好.
ad25fgh30 发表于 2014-3-12 15:58 | 显示全部楼层
楼主你这是把io口直接杀了的节奏啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

9

帖子

0

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