我想用普中科技的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];}
}
}
}
2019-04-28_224730.gif (35.21 KB, 下載次數: 29)
下載附件
2019-4-29 10:58 上傳
2019-04-28_224659.gif (13.79 KB, 下載次數: 31)
下載附件
2019-4-29 10:58 上傳
|