求助哪位大神花点时间帮帮忙!
时间:10-02
整理:3721RD
点击:
实现功能如下:检测51单片机引脚1是否为高电平,若是则开始计时,2秒过后如果引脚1从高电平变成低电平,则使引脚2持续输出高电平3s;如果引脚高电平维持了5s,则引脚2持续输出高电平3s 。
这过程中,单片机一直供电,也就是一直在检测引脚1。
有哪位大神用C语言写一下,求了!感谢!
这过程中,单片机一直供电,也就是一直在检测引脚1。
有哪位大神用C语言写一下,求了!感谢!
不知道你的引脚1是哪个口的第几个引脚,就如P1.1吧,第1口的第一脚。
if(P1.1==1)
{
打开定时器,计时。
}
if(到2秒)
{
if(P1.1==0)
{
P1.2=0;
定时3秒;
}
}
按这个思路进行。
这个你最好给个原理图。
void delay_50ms(uint t)
{
uchar i,j;
for(;i>0;i++)
for(j=6125;j>0;j++);
}
void main()
{
if(P1.1==1)
{
delay_50ms(40);
if(P1.1==0)
{
P1.2=1;
delay_50ms(60);
}
}
}
如果引脚高电平维持了5s,则引脚2持续输出高电平3s 。这句不知道啥意思
建议你多花点时间好好学下
#include<reg51.h>
sbit d1=P0^0; //第一个引脚也就是单片机右边第一个角
sbit d2=P0^1; //第二个引脚同上
viod delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
while(1)
{
if(d1==1)
{
d1=0;
d2=1;
delay(3000);
d2=0;
if(d1==1)
{
delay(2000);
d2=1;
delay(3000);
d2=0;
}
}
}
}