#include <STC12C2052AD.H>
#define uchar unsigned char
#define uint unsigned int
uchar light[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
uchar num1,kk;
void int_init()
{
TMOD=0x01;
TH0=0x3c; //TH0=(65536-50000)/256
TL0=0xb0;//TL0=(65536-50000)%256
ET0=1;//开定时器中断
EA=1;
TR0=1;//启动定时器
}
void main()
{
num1=0;
kk=0;
int_init();
/**************************************************************
while(1)
{
if(kk==20)
{
kk=0; //这种方法可以
P1=light[num1];
num1++;
if(num1==8)num1=0;
}
}**************************************************************/
while(1)
{
if((kk<161)&&(kk%20==0))
{
P1=light[num1]; //这种方法不行,虽然灯大致上
num1++; //在流水,但其他等也会跳着亮。怎么回事呢?
if(num1==8)num1=0;
if(kk>160)kk=0;
}
}
}
void T_C0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
kk=kk+1;
}
#define uchar unsigned char
#define uint unsigned int
uchar light[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
uchar num1,kk;
void int_init()
{
TMOD=0x01;
TH0=0x3c; //TH0=(65536-50000)/256
TL0=0xb0;//TL0=(65536-50000)%256
ET0=1;//开定时器中断
EA=1;
TR0=1;//启动定时器
}
void main()
{
num1=0;
kk=0;
int_init();
/**************************************************************
while(1)
{
if(kk==20)
{
kk=0; //这种方法可以
P1=light[num1];
num1++;
if(num1==8)num1=0;
}
}**************************************************************/
while(1)
{
if((kk<161)&&(kk%20==0))
{
P1=light[num1]; //这种方法不行,虽然灯大致上
num1++; //在流水,但其他等也会跳着亮。怎么回事呢?
if(num1==8)num1=0;
if(kk>160)kk=0;
}
}
}
void T_C0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
kk=kk+1;
}