永发信息网

怎么用一个定时器使3个LED灯闪烁,闪烁时间分别为1s、0.5s、2s且不互相影响?

答案:1  悬赏:50  手机版
解决时间 2021-11-29 03:44
  • 提问者网友:不爱我么
  • 2021-11-28 04:39
怎么用一个定时器使3个LED灯闪烁,闪烁时间分别为1s、0.5s、2s且不互相影响?
最佳答案
  • 五星知识达人网友:北城痞子
  • 2021-11-28 05:38
1S 0·5S 2s是周期吗?
那么它们翻转时间是0·5S 0·25S 1S
最大1S 是0·5和0·25的倍数
我们定时50ms,然后计中断次数
中断10次第1个LED翻转 5次第二个LED翻转 20次第3个LED翻转,并将计中断次数的变量清0
程序如下
sbit led1=P1^0; sbit led2=P1^1;sbit led3=P1^2;
uchar a;
TMOD=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;EA=1;
TR0=1;
while(1);
中断程序:
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
if(a%5==0) led1=!led1;
if(a%10==0) led2=!led2;
if(a==20) { led3=!led3;a=0;}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯