单片机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();
}
}
}
为什么通电后继电器的开关就啪啪的响,开关不起任何作用那?
即使按下开关也不管用,我感觉应该是按下开关后,继电器才能开始工作呀,可为什么通电后继电器就工作那,开关根本起不到控制作用?
#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脚要通过管子驱动继电器,单片机的引脚不足以驱动继电器。
希望能帮到你。