如何要单片机通过继电器,来控制5v电源开关

我的程序是:
#include<reg52.h>
sbit p1_0=P1^0;
sbit p1_1=P1^1;
sbit p1_2=P1^2;
sbit p2_4=P2^4;
void main()
{
P1=0;
while(1)
{
if(p1_0==1)
{
p2_4=0;
}
else if(p1_1==1)
{
p2_4=0;
}
else if(p1_2==1)
{
p2_4=0;
}
}
}
仿真的时候,继电器没有任何变化,那位高人能帮我解决一下,我是程序有错误还是图连接有误

你可以先测一下三极管的基极电压跟你想的是否一致,因为三极管嵌位的作用,高于0.6V就可以认为是高了。
还有你这程序也有点问题,P2.4一旦变成0就再也回不到1了。
这种电路你最好改用PNP三极管,采用低电平控制。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-04
电路上按键用的是P0口,而程序上用的P1口。

void main()
{
P1=0;//这句应该反过来P1=0xFF;因为你开关接的是地,如果P1口又输出为0的话,那你还怎么检测得到按键按下啊。

D2,led灯的接法是永远都不会点亮的。也不知道放在那里是做什么用的。

要想让继电器工作,就得让p2_4=1,可是你的整个程序下来就是没有一句是它工作的。那继电器又怎么能变化呢。在那么多的if else 后面加个
else
p2_4=1;
继电器就会工作了。
第2个回答  2015-11-02
1、先测一下三极管的基极电压跟你想的是否一致,因为三极管嵌位的作用,高于0.6V就可以认为是高了。
2、这个程序也有点问题,P2.4一旦变成0就再也回不到1了。
3、这种电路你最好改用PNP三极管,采用低电平控制。
第3个回答  2010-06-04
电路上按键用的P0口
程序上用的P1口..能动作就怪了
第4个回答  2010-06-04
兄弟,你的按键用的是P0口

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网