bit k1=P3^0;//按钮
sbit k2=P3^1;
sbit k3=P3^2;
//=================================================
#define led_num1 15//编码个数
uchar code table1[15]={//花样1编码
0x00,0x00,0xff,
0x00,0x00,0xff,
0x00,0x00,0xff,
0x00,0x00,0xff,
0x00,0x00,0xff
};
//=================================================
#define led_num2 8//编码个数
uchar code table2[8]={//花样2编码
0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00
};
//=================================================
#define led_num3 10//编码个数
uchar code table3[10]={//花样3编码
0xff,0xfe,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6
};
uchar time=0,mode=0;//系统变量
uchar flag=0;
void main() //主函数
{
TMOD|=0X01;
TH0=(65536-50000)/256;//50ms
TL0=(65536-50000)%256;
ET0=1;//打开定时器0中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
while(1)
{
if(!k1) //花样1
{
mode=1;
}
if(!k2) //花样2
{
mode=2;
}
if(!k3) //花样3
{
mode=3;
}
}
}
//定时器中断
void Timer0() interrupt 1
{
if(time<10)//0.5s
time++;
else
{
time=0;
if(mode==1)//花样1
{
P1=table1[flag];
if(flag<led_num1)
flag++;
else
{
flag=0;
P1=0xff;
mode=0;//停止
}
}
if(mode==2)//花样2
{
P1=table2[flag];
if(flag<led_num2)
flag++;
else
{
flag=0;
P1=0;
mode=0;//停止
}
资料借鉴于此纷传
阅读全文