插入链接与图片
##代码片
代码片
.
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit key=P3^0;
sbit sit=P2^7;
sbit num=P2^6;
uint number,k,number1,m;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code table2[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
void delayms(uint x) //延时x毫秒
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void keyshow(uint x,uint y) //显示数字
{
uint shi,ge,min;
shi=x/10;ge=x%10;min=y;
sit=1;
P0=0xfe;
sit=0;
num=1;
P0=table[shi];
delayms(5);
sit=1;
P0=0xfd;
sit=0;
num=1;
P0=table2[ge];
delayms(5);
sit=1;
P0=0xfb;
sit=0;
num=1;
P0=table[min];
delayms(5);
}
void init()
{
TMOD=0x01;
TH0=(65535-45872)/256; //设置为50ms溢出
TL0=(65535-45872)%256;
EA=1; //启动总中断
ET0=1; //开启定时器0中断
}
void keyscan()
{
if(key==0)
{
delayms(10);
if(key==0)
{
while(!key);
TR0=~TR0;
}
}
}
void main()
{
init();
while(1)
{
keyscan();
keyshow(number,number1);
}
}
void T0_time() interrupt 1
{
TH0=(65535-45872)/256; //设置为50ms溢出
TL0=(65535-45872)%256;
k++;m++;
if(m==2)
{
number1++;
m=0;
if(number1==10)
number1=0;
}
if(k==20)
{
number++;
k=0;
if(number==100)
{
number=0;
}
}
}