这样写看看,刚测试通过的
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uint a,b;
uchar m,n; //计时时间控制
uchar code tab[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
void Timer0() interrupt 1 //T0定时器
{
m++;
// n++;
TH0=0x3c;
TL0=0xb0; //设定50ms时间
}
void T0_init(void) //T0初始化
{
TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
EA=1;
ET0=1;
TR0=1;
}
void main(void)
{ uchar s;
T0_init();
// a=0x80; //10000000
b=0x7f; //01111111
P1=b;
while(1)
{
if(m==40) //流水时间控制
{
m=0;
s++;
if(s==8)
s=0;
}
if(m%5 == 0) //闪烁时间控制
b= tab[s];
else b=0xff;
P1=b;
}
} |