单片机c语言程序问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 22:23:51
#include<reg52.h>

#define uint unsigned int
#define uchar unsigned char

sbit startflag = P2^4; // 开始按钮
sbit relay=P1^4; //继电器启动信号,高电平有效
void delay();

void delay()
{
uint i,j;
for(i=0;i<100;i++)
for(j=0;j<200;j++);
}

void main()
{

while(1)
{

if(startflag==0)
{
relay=1;
delay();
relay=0;
delay();

}
}

}

为什么通电后继电器的开关就啪啪的响,开关不起任何作用那?
即使按下开关也不管用,我感觉应该是按下开关后,继电器才能开始工作呀,可为什么通电后继电器就工作那,开关根本起不到控制作用?

你只写了if(startflag==0),else呢?这样程序都跑飞了。

检查一下你的电路,大概是 P2^4 已经对地短路了。

要不,换个引脚试试。

你有没有用光偶?继电器的电压要达到12V以上的

单片机的电源课没有那么高的

startflag加上拉电阻,并在程序中初始为1.
relay脚要通过管子驱动继电器,单片机的引脚不足以驱动继电器。
希望能帮到你。