//顯示00.0~99.9
//2011 12 12 E:\ DPJ _ C \ 00.00 \ 00.0 . C
# include & ltreg 51 . h & gt;
#定義uchar無符號字符
//sbit p20=p2^0;
sbit p21=p2^1;
sbit p22=p2^2;
sbit p23=p2^3;
sbit p07=p0^7;
sbit ks=p1^0;//開始
sbit kr=p1^1;//重置
烏恰時間,xs,葛,石,白,錢;
uchar代碼頁簽[]= {
0x3F,/*0*/
0x06,/*1*/
0x5B,/*2*/
0x4F,/*3*/
0x66,/*4*/
0x6D,/*5*/
0x7D,/*6*/
0x07,/*7*/
0x7F,/*8*/
0x6F,/*9*/
};
void delay _ ms(unsigned int ms)//1毫秒延遲
{
uchar a;
當(毫秒)
for(a = 123;a & gt0;a-);
}
void顯示();
void t 0 intinit()////定時器T0初始化
{
TMOD = 0x 01;
TH0 =(65536-10000)/256;//10ms計時
TL0 =(65536-10000)% 256;
EA = 1;
ET0 = 1;
}
void main()
{
t 0 intinit();
while(1)
{
顯示();
而(!KS) //開始鍵
{
顯示();
如果(KS)
TR0 = 1;
}
而(!KR) //清除鍵
{
顯示();
如果(KR)
TR0 = 0;
錢= 0;
白= 0;
Shi = 0;
ge = 0;
}
if(白==10)
{
白= 0;
錢++;
}
if(錢==10)
{
錢= 0;
TR0 = 0;
}
}
}
空顯示( )
{
P23 = 0;
P0 = tab[Shi];
delay _ ms(1);
P23 = 1;
p22 = 0;
P0 = tab[Bai];
p07 = 1;
delay _ ms(1);
p22 = 1;
p 21 = 0;
P0 = tab[Qian];
delay _ ms(1);
p 21 = 1;
//P20 = 0;
P0 = tab[Qian];
delay _ ms(1);
//P20 = 1;
}
Void T0int()中斷1 //定時器T0中斷模式1
{
TH0 =(65536-10000)/256;//重新安裝10ms定時常數。
TL0 =(65536-10000)% 256;
ge++;
if(ge==10)
{
ge = 0;
石++;
}
if(shi==10)
{
Shi = 0;
白++;
}
}