求单片机第一个灯亮,亮了5小时后关闭,关闭了就不要它再亮了.

来源:百度知道 编辑:UC知道 时间:2024/07/03 00:35:37

#include<reg52.h>
sbit d=P0^0;
void delay() //延时5小时
{
int i,j,k,m,n;
for(n=5;n>0;n--)
for(m=60;m>0;m--)
for(i=23;i>0;i--)
for(j=185;j>0;j--)
for(k=116;k>0;k--);
}
void main()
{
d=0; //灯亮
delay();//延时
d=1; //灯灭
while(1)
{

};
}
嘿嘿·· 楼上的灯还是会亮起来的,因为程序是反复执行的,我这个虽然和他有点同,但是 不会在亮了。

#include<reg52.h>
sbit d=P0^0;
void delay();
void main()
{
d=0;//灯亮
delay();//延时
d=1;//灯灭
while(1);
}
void delay()//延时5小时
{
int i,j,k,m,n;
for(n=5;n>0;n--)
for(m=60;m>0;m--)
for(i=23;i>0;i--)
for(j=185;j>0;j--)
for(k=116;k>0;k--);
}

是永远都不用再亮了,系统重启也不亮?如果是这样那就要用的一个存储芯片,定义一个地址做变量,第一次初始化为0,系统运行时先查询此地址变量若为0则亮5小时然后关闭,然后将该地址写为1,这样就不会再亮了

我觉得还是这个答案好,呵呵,分析问题够严谨!

还有ypfengye:
lambertxue用的while(1);