微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求助哪位大神花点时间帮帮忙!

求助哪位大神花点时间帮帮忙!

时间:10-02 整理:3721RD 点击:
实现功能如下:检测51单片机引脚1是否为高电平,若是则开始计时,2秒过后如果引脚1从高电平变成低电平,则使引脚2持续输出高电平3s;如果引脚高电平维持了5s,则引脚2持续输出高电平3s 。
这过程中,单片机一直供电,也就是一直在检测引脚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;
}
}
}
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top