示灯闪烁,每个指示闪烁的频率为 0.2 秒,不知道为什么实现不了,感觉中断嵌套那不对劲儿,又找不出来错…可以用两个定时器分别定时吗??
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar tt,num,a;
sbit D1=P1^0;
sbit D2=P1^1;
sbit D3=P1^2;
sbit D4=P1^3;
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
if(tt==40)
{
tt=0;
num++;
if(num==5)
num=1;
a++;
if(a==4)
{
a=0;
switch (num)
{
case 1: D1=~D1;
break;
case 2: D2=~D2;
break;
case 3: D3=~D3;
break;
case 4: D4=~D4;
break;
}
}
}
}
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
}
嗯 分析的对,卡在每个LED的闪烁频率0.2秒用T0设置,这个0.2秒很是纠结……
追答现在可以了