当前位置:文档之家› 单片机C语言6位数码管显示时间程序

单片机C语言6位数码管显示时间程序

#include
#include
#define uint unsigned int
#define uchar unsigned char
uchar count;
sbit s1=P1^0;
sbit s2=P1^1;
sbit s3=P1^2;
sbit s4=P1^3;
sbit s5=P1^4;
sbit s6=P1^5;

uchar DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar Digits_of_8DSY[]={0,0,55,0,0,55,0,0} ;
void delay(uint m)
{
int i,j;
for(i=0;ifor(j=0;j<110;j++);
}
void key()
{
if(P1!=0xff)
{
IE=0;
TR0=0;

if(s1==0)
{
delay(300);
Digits_of_8DSY[0]++;
if(Digits_of_8DSY[0]==10)
Digits_of_8DSY[0]=0;
}
if(s2==0)
{
delay(300);
Digits_of_8DSY[1]++;
if(Digits_of_8DSY[1]==6)
Digits_of_8DSY[1]=0;
}

if(s3==0)
{
delay(300);
Digits_of_8DSY[3]++;
if(Digits_of_8DSY[3]==10)
Digits_of_8DSY[3]=0;
}
if(s4==0)
{
delay(300);
Digits_of_8DSY[4]++;
if(Digits_of_8DSY[4]==6)
Digits_of_8DSY[4]=0;
}
if(s5==0)
{
delay(300);
Digits_of_8DSY[6]++;
if(Digits_of_8DSY[7]!=2)
{
if(Digits_of_8DSY[6]==10)
Digits_of_8DSY[6]=0;
}
else
if(Digits_of_8DSY[6]==4)
Digits_of_8DSY[6]=0;
}
if(s6==0)
{
delay(300);
Digits_of_8DSY[7]++;

if(Digits_of_8DSY[6]==0||Digits_of_8DSY[6]==1||Digits_of_8DSY[6]==2||Digits_of_8DSY[6]==3)
{
if(Digits_of_8DSY[7]==3)
Digits_of_8DSY[7]=0;
}
else
{
if(Digits_of_8DSY[7]==2)
Digits_of_8DSY[7]=0;
}

}
}
if(P1==0xff)
{
IE=0x82;
TR0=1;

}
}
void main()
{
uchar i,j;

P0=0x00;
P2=0xff;
count=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
IE=0x82;
TR0=1;
while(1)
{
key();
j=0x7f;
for(i=7;i!=-1;i--)
{
j=_crol_(j,1);
P2=j;
P0=DSY_CODE[Digits_of_8DSY[i]];
delay(2);
}
}

}
void time0() interrupt 1
{
uchar i;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(++count!=20) return;
count=0;
Digits_of_8DSY[0]++ ;
for(i=0;i<=7;i++)
{
if(Digits_of_8DSY[0]==10)
{
Digits_of_8DSY[0]=0;
Digits_of_8DSY[1]++;
if(Digits_of_8DSY[1]==6)
{
Digits_of_8DSY[1]=0;
Digits_of_8DSY[3]++;
if(Digits_of_8DSY[3]==10)
{
Digits_of_8DSY[3]=0;
Digits_of_8DSY[4]++;
if(Digits_of_8DSY[4]==6)
{
Digits_of_8DSY[4]=0;
Digits_of_8DSY[6]++;
if(Digits_of_8DSY[6]==10)
{
Digits_of_8DSY[6]=0;
Digits_of_8DSY[7]++;
}
if(Digits_of_8DSY[7]==2&&Digits_of_8DSY[6]==4)
{
Digits_of_8DSY[6]=0;
Digits_of_8DSY[7]=0;
}
P0=DSY_CODE[Digits_of_8DSY[i]];
}
}
}
}
else break;
}
}

相关主题
文本预览
相关文档 最新文档