单片机P1口原来输出的是低电平,接上拉电阻后输出却全为高电平是怎么回事?两次都没有高低之分!请高手解决

如题所述

第1个回答  2012-11-07
你确定一直是高电平?不是方波?是用万用表量的吧,试试用示波器看看吧。另外,把你的设置高电平的程序贴出来看看。怀疑是程序的问题。追问

#include
sbit fan1=P1^0;
sbit fan2=P1^1;
sbit qu1=P0^0;
sbit qu2=P0^1;
sbit qu3=P0^2;
sbit qu4=P0^3;
sbit qu5=P0^4;
sbit qu6=P0^5;
viod main()
{
if(fan1==1&&fan2==1)
{

qu1=0;
qu4=0;
}
if(fan1==0&&fan2==0 )
{
qu1=1;
qu4=1;
qu2=1;
qu3=0;
qu5=1;
qu6=0;
}
}

追答

你没有加死循环,程序会抛费,单片机会复位的,复位后IO口变高电平。此时如果你的程序赋予低电平,它会不断复位,电平在高电平与低电平之间不断转换。
if(fan1==1&&fan2==1)
{

qu1=0;
qu4=0;
}
if(fan1==0&&fan2==0 )
{
qu1=1;
qu4=1;
qu2=1;
qu3=0;
qu5=1;
qu6=0;
}

改为
while(1)
{
if(fan1==1&&fan2==1)
{

qu1=0;
qu4=0;
}
if(fan1==0&&fan2==0 )
{
qu1=1;
qu4=1;
qu2=1;
qu3=0;
qu5=1;
qu6=0;
}

}

追问

谢谢!问题解决了!我犯了个很严重的错误就是把我的工程名字命名为汉字!改为了英文,现在好了!

追答

什么编译器?keil c51的话我们也是吧工程名字命名为汉字的,也不会出现问题。应该是其他原因吧

追问

是的啊!不是编译器的问题!是下载器的问题!STC-ISP-V4.80我用的!

第2个回答  2012-11-07
如果你空脚输出高电平4.2,低电平3.9,则端口已损坏追问

我是把它接在一个芯片上的,并且 我接了个10K的上拉电阻,以前没接的时候是2.4和1.8
现在不知道怎么办了?

追答

低电平最起码应该拉到0.3V以下的,可以确定你的端口损坏了,换个芯片吧

追问

可能不能是复位电路或者其他的最小系统上的问题!我换了个芯片还是不行!

第3个回答  2012-11-07
芯片损坏没有?追问

我是新学者!怎样判断他坏没有啊?

追答

如果能写进去程序就大概没问题。

追问

我刚测了下,我让其输出的是1,测电压为4.2!让其为0,输出的电压为3.9,到底是怎么一回事哦?

相似回答