求救:单片机怎么用中断和定时器实现一个按键实现流水灯的正反顺序

2024年11月14日 11:58
有2个网友回答
网友(1):

void main()
{ EA=1;//这是外部中断,
ET0=1;
//ET1=1;
EX0=1;
// EX1=1;
IT0=0;
// IT1=0;

init();
key1=1;
while(1)
{ if(tt==20)//时间为一秒
{ tt=0;//重新定时
。。。。//
}
if(key1==0)//按下
{ delay(5); //除去震动
if(key1==0)//再次确认按下
{ 。。。//你想按下后做什么
while(!key1);//松手检测
delay(5);
while(!key1); //再次确认松手
}
}
}
}
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
EA=1;
ET0=1;
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
}
void inter0() interrupt 0
{ 。。。//中断时你想要它做什么
ET1=0;
}
真不太明白你想怎样的实现,凭记忆大概给了你个框架,(应该没错),自由发挥吧。

网友(2):

看一下郭天祥的10天学会单片机吧!