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

[复制链接]
查看11 | 回复5 | 2010-6-4 16:11:58 | 显示全部楼层 |阅读模式
我的程序是:
#include
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;
}
}
}
仿真的时候,继电器没有任何变化,那位高人能帮我解决一下,我是程序有错误还是图连接有误


回复

使用道具 举报

千问 | 2010-6-4 16:11:58 | 显示全部楼层
你可以先测一下三极管的基极电压跟你想的是否一致,因为三极管嵌位的作用,高于0.6V就可以认为是高了。还有你这程序也有点问题,P2.4一旦变成0就再也回不到1了。这种电路你最好改用PNP三极管,采用低电平控制。
回复

使用道具 举报

千问 | 2010-6-4 16:11:58 | 显示全部楼层
电路上按键用的是P0口,而程序上用的P1口。void main(){P1=0;//这句应该反过来P1=0xFF;因为你开关接的是地,如果P1口又输出为0的话,那你还怎么检测得到按键按下啊。D2,led灯的接法是永远都不会点亮的。也不知道放在那里是做什么用的。要想让继电器工作,就得让p2_4=1,可是你的整个程序下来就是没有一句
回复

使用道具 举报

千问 | 2010-6-4 16:11:58 | 显示全部楼层
1、先测一下三极管的基极电压跟你想的是否一致,因为三极管嵌位的作用,高于0.6V就可以认为是高了。2、这个程序也有点问题,P2.4一旦变成0就再也回不到1了。 3、这种电路你最好改用PNP三极管,采用低电平控制。
回复

使用道具 举报

千问 | 2010-6-4 16:11:58 | 显示全部楼层
电路上按键用的P0口程序上用的P1口..能动作就怪了
回复

使用道具 举报

千问 | 2010-6-4 16:11:58 | 显示全部楼层
兄弟,你的按键用的是P0口
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行