已解決000-999
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P1^7;
sbit wela=P1^6;
uchar num,count;
uint bai=0,shi=0,ge=0;
void display(uint bai,uint shi,uint ge);
uchar code table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,};
void delay1ms(void) //誤差 -0.651041666667us
{
unsigned char a,b;
for(b=102;b>0;b--)
for(a=3;a>0;a--);
}
void main()
{
TMOD=0x00;
TH0=(8192-8000)/32;
TL0=(8192-8000)%32;
EA=1;
ET0=1;
TR0=1;
while(1)
{
display(bai,shi,ge);
}
}
void display(uint bai,uint shi,uint ge)
{
bai=num/100;
shi=(num - (bai*100))/10;
ge=num%10;
dula=1;
P0=0X00;
dula=0;
wela=1;
P0=0x7f;
wela=0;
dula=1;
P0=table[ge];
delay1ms();
dula=1;
P0=0X00;
dula=0;
wela=1;
P0=0xbf;
wela=0;
dula=1;
P0=table[shi];
delay1ms();
dula=1;
P0=0X00;
dula=0;
wela=1;
P0=0xdf;
wela=0;
dula=1;
P0=table[bai];
delay1ms();
}
void timer0()interrupt 1
{
TH0=(8192-8000)/32;
TL0=(8192-8000)%32;
count++;
if(count ==125)
{
count = 0;
num++;
if(num==999)
num = 0;
}
}
|