89c52单片机按一键点亮小灯延时5分钟后熄灭怎么写
发布网友
发布时间:2022-05-11 07:46
我来回答
共1个回答
热心网友
时间:2023-08-09 01:55
是仿真?还是实物开发板?程序如下
#include<reg51.h>
sbit k1 =P3^2; //按键在P3.2上
sbit led=P2^7; //LED灯在P2.7上,0点亮
unsigned char t0n,second,minute;
void main()
{
TMOD=0x01;
TH0 =0x3C;//晶振频率=12M,定时50ms
TL0 =0xB0;
IE =0x82;//开中断
while(1)
{
if(k1==0&&TR0==0)//按键按下
{
TR0=1;
t0n=0;
led=0;//点亮小灯
while(k1==0);
}
if(t0n>=20)
{
t0n=0;//1秒到
second++;//加1秒
if(second>=60)//60秒到
{
second=0;
minute++;//加1分
if(minute>=5)//5分到
{
minute=0;
TR0=0;//停止计时
led=1;//时间到,小灯熄灭
}
}
}
}
}
void T0_time() interrupt 1
{
TH0 =0x3C;
TL0 =0xB0;
t0n++;
}