#include <AT89x51.h>
#define uint unsigned int
#define uchar unsigned char
uchar code DIG_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//显示0~9的值
unsigned char temp, number,G,S,H,Q,W;
void display(uchar G,ucharS,ucharH,ucharQ,ucharW);
void inital();
void delay(uint z);
//主函数
void main()
{
inital();
G=0;
S=0;
H=0;
Q=0;
W=0;
while(1)
{
display(G,S,H,Q,W);
}
}
//显示函数
void display(uchar G,ucharS,ucharH,ucharQ,ucharW)
{
P0=DIG_CODE[G];
P2=0x7f;
delay(1);
P0=DIG_CODE[S];
P2=0xbf;
delay(1);
P0=DIG_CODE[H];
P2=0xdf;
delay(1);
P0=DIG_CODE[Q];
P2=0xef;
delay(1);
P0=DIG_CODE[W];
P2=0xf7;
delay(1);
}
//定时器初始化
void inital()
{
temp=0;
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
ET0=1;
TR0=1;
}
//定时器中断函数
void
timer0() interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
number++;
if(number==20)
{
G++;
number==0;
if(G==9)
{ S++;
G==0;
if(S==9)
{
H++;
S==0;
if(H==9)
{
Q++;
H==0;
if(Q==9)
{
W++;
Q==0;
if(W==9)
W==0;
}
}
}
}
}
}
//延时函数
void delay(uint z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
一周热门 更多>