发表于:2011/12/27 20:26:07
#0楼
#include<reg52.h>
#define uchar unsigned char
sbit led=P1;
uchar num=0,speed=0,t=0;
uchar code table[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
void main()
{
TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
while(1)
{
P1=table[num];
} }
void T0_time() interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
speed++;
switch(t)
{
case 0:
if(speed==20)
num++;
break;
case 1:
if(speed==18)
num++;
break;
case 2:
if(speed==16)
num++;
break;
case 3:
if(speed==14)
num++;
break;
case 4:
if(speed==12)
num++;
break;
case 5:
if(speed==10)
num++;
break;
case 6:
if(speed==8)
num++;
break;
case 7:
if(speed==6)
num++;
break;
case 8:
if(speed==4)
num++;
break;
case 9:
if(speed==2)
num++;
break;
}
if(num==8)
{
num=0;
t++;
if(t==speed)
我程序switch(t)这样写才对; 写成switch(t):就错为什么的?
sbit led=P1;写成sfr led=P1;就错为什么
#define uchar unsigned char
sbit led=P1;
uchar num=0,speed=0,t=0;
uchar code table[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
void main()
{
TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
while(1)
{
P1=table[num];
} }
void T0_time() interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
speed++;
switch(t)
{
case 0:
if(speed==20)
num++;
break;
case 1:
if(speed==18)
num++;
break;
case 2:
if(speed==16)
num++;
break;
case 3:
if(speed==14)
num++;
break;
case 4:
if(speed==12)
num++;
break;
case 5:
if(speed==10)
num++;
break;
case 6:
if(speed==8)
num++;
break;
case 7:
if(speed==6)
num++;
break;
case 8:
if(speed==4)
num++;
break;
case 9:
if(speed==2)
num++;
break;
}
if(num==8)
{
num=0;
t++;
if(t==speed)
我程序switch(t)这样写才对; 写成switch(t):就错为什么的?
sbit led=P1;写成sfr led=P1;就错为什么