我想用普中科技的51单片机开发版实现数码管动态显示,可是我为什么不能实现这个功能啊?谢谢,我是一只小小白啊
#include<reg52.h>
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
unsigned char code led1[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char led2[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
void main()
{
unsigned char i=0;
unsigned int cnt=0;
unsigned long sec=0;
LSA=0;
LSB=0;
LSC=0;
TMOD=0X01;
TH0=0XFC;
TL0=0X67;
TR0=1;
while(1)
{
if(TF0==1)
{
TF0=0;
TH0=0XFC;
TL0=0X67;
cnt++;
if(cnt>=1000)
{
cnt=0;
sec++;
led2[0]=led1[sec%10];
led2[1]=led1[sec/10%10];
led2[2]=led1[sec/100%10];
led2[3]=led1[sec/1000%10];
led2[4]=led1[sec/10000%10];
led2[5]=led1[sec/100000%10];
led2[6]=led1[sec/1000000%10];
led2[7]=led1[sec/10000000%10];
}
if(i==0)
{LSA=0;LSB=0;LSC=0; i++;P0=led2[0];}
else if(i==1)
{LSA=0;LSB=0;LSC=1; i++;P0=led2[1];}
else if(i==2)
{LSA=0;LSB=1;LSC=0; i++;P0=led2[2];}
else if(i==3)
{LSA=0;LSB=1;LSC=1; i++;P0=led2[3];}
else if(i==4)
{LSA=1;LSB=0;LSC=0; i++;P0=led2[4];}
else if(i==5)
{LSA=1;LSB=0;LSC=1; i++;P0=led2[5];}
else if(i==6)
{LSA=1;LSB=1;LSC=0; i++;P0=led2[6];}
else if(i==7
{LSA=1;LSB=1;LSC=1; i++;P0=led2[7];}
}
}
}
|