// add their own drive
#include <1302.h>
#include <DS18B20.h>
U16 Duan code [] = {0x3F, 0x06,0x5b, 0x4F, 0x66,0x6d, 0x7D, 0x07,
0x7F, 0x6F, 0x77,0x7c, 0x39,0x5e, 0x79 , 0x71,0x00,0X40};
U8 Yi, ER, San, Si, Wu, Liu, Qi, BA;
U8 shizhongshezhicishu = 0;? // ou sheaths ???? ??
U8 naozhong [. 3] = {0, } 0,0;
U16 dingshishijian;
U16 dingshishijian1;
U8 kongzhishanshuo;
U8 naozhongcishu;
U8 Jia, Jian;
U8 chucunshijian [. 3];
U8 Kai;
void Delay1ms ();
void the display ();
#include <DS18B20.h>
U16 Duan code [] = {0x3F, 0x06,0x5b, 0x4F, 0x66,0x6d, 0x7D, 0x07,
0x7F, 0x6F, 0x77,0x7c, 0x39,0x5e, 0x79 , 0x71,0x00,0X40};
U8 Yi, ER, San, Si, Wu, Liu, Qi, BA;
U8 shizhongshezhicishu = 0;? // ou sheaths ???? ??
U8 naozhong [. 3] = {0, } 0,0;
U16 dingshishijian;
U16 dingshishijian1;
U8 kongzhishanshuo;
U8 naozhongcishu;
U8 Jia, Jian;
U8 chucunshijian [. 3];
U8 Kai;
void Delay1ms ();
void the display ();
void Delay200ms() //@11.0592MHz
{
unsigned char i, j, k;
{
unsigned char i, j, k;
_nop_();
_nop_();
i = 9;
j = 104;
k = 139;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
_nop_();
i = 9;
j = 104;
k = 139;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void Timer0Init(void) //[email protected]
{
AUXR |= 0x80; //?????1T??
TMOD &= 0xF0; //???????
TL0 = 0xCD; //??????
TH0 = 0xD4; //??????
TF0 = 0; //??TF0??
TR0 = 0;
EA=1;
ET0=1;//???0????
TMOD &= 0x0F; //???????
TL1 = 0xCD; //??????
TH1 = 0xD4; //??????
TF1 = 0; //??TF1??
TR1 = 0;
ET1=1;
}
{
AUXR |= 0x80; //?????1T??
TMOD &= 0xF0; //???????
TL0 = 0xCD; //??????
TH0 = 0xD4; //??????
TF0 = 0; //??TF0??
TR0 = 0;
EA=1;
ET0=1;//???0????
TMOD &= 0x0F; //???????
TL1 = 0xCD; //??????
TH1 = 0xD4; //??????
TF1 = 0; //??TF1??
TR1 = 0;
ET1=1;
}
void Delay10ms() //@11.0592MHz
{
unsigned char i, j;
{
unsigned char i, j;
i = 108;
j = 145;
do
{
while (--j);
} while (--i);
}
void Delay1ms() //@11.0592MHz
{
unsigned char i, j;
j = 145;
do
{
while (--j);
} while (--i);
}
void Delay1ms() //@11.0592MHz
{
unsigned char i, j;
_nop_();
_nop_();
_nop_();
i = 11;
j = 190;
do
{
while (--j);
} while (--i);
}
void allinit()
{
P2=0xa0;
P0=0x00;
P2=0x80;
P0=0xff;
}
void display()//陏??1?醸???
{
P2=0xc0;
P0=0x80;
P2=0xff;
P0=~duan[ba];
Delay1ms();
P2=0xc0;
P0=0x40;
P2=0xff;
P0=~duan[qi];
Delay1ms();P2=0xc0;
P0=0x20;
P2=0xff;
P0=~duan[liu];
Delay1ms();P2=0xc0;
P0=0x10;
P2 = 0xFF;
P0 = ~ Duan [Wu];
Delay1ms (); P2 = 0xC0;
P0 = 0x08;
P2 = 0xFF;
P0 = ~ Duan [Si];
Delay1ms (); P2 = 0xC0;
P0 = 0x04;
P2 = 0xFF;
P0 = ~ Duan [San];
Delay1ms ();
P2 = 0xC0;
P0 = 0x02;
P2 = 0xFF;
P0 = ~ Duan [ER];
Delay1ms ();
P2 = 0xC0;
P0 = 0x01;
P2 = 0xFF;
Duan = ~ P0 [Yi];
Delay1ms ();
}
_nop_();
_nop_();
i = 11;
j = 190;
do
{
while (--j);
} while (--i);
}
void allinit()
{
P2=0xa0;
P0=0x00;
P2=0x80;
P0=0xff;
}
void display()//陏??1?醸???
{
P2=0xc0;
P0=0x80;
P2=0xff;
P0=~duan[ba];
Delay1ms();
P2=0xc0;
P0=0x40;
P2=0xff;
P0=~duan[qi];
Delay1ms();P2=0xc0;
P0=0x20;
P2=0xff;
P0=~duan[liu];
Delay1ms();P2=0xc0;
P0=0x10;
P2 = 0xFF;
P0 = ~ Duan [Wu];
Delay1ms (); P2 = 0xC0;
P0 = 0x08;
P2 = 0xFF;
P0 = ~ Duan [Si];
Delay1ms (); P2 = 0xC0;
P0 = 0x04;
P2 = 0xFF;
P0 = ~ Duan [San];
Delay1ms ();
P2 = 0xC0;
P0 = 0x02;
P2 = 0xFF;
P0 = ~ Duan [ER];
Delay1ms ();
P2 = 0xC0;
P0 = 0x01;
P2 = 0xFF;
Duan = ~ P0 [Yi];
Delay1ms ();
}
void juzhen()//??????
{
u8 dat;
kai=0;
jia=0;
jian=0;
if(P30==0)
{
Delay10ms() ;
if(P30==0)
{
dat=4;kai=1;
}
while(P30==0)
{
}
}
if(P31==0)
{
Delay10ms() ;
if(P31==0)
{
dat=3;
kai=1;
}
while(P31==0)
{
}
}
if(P32==0)
{
Delay10ms();
if(P32==0)
{
dat=2;kai=1;
}
while(P32==0)
{
}
}
if(P33==0)
{
Delay10ms() ;
if(P33==0)
{
dat=1;
kai=1;
}
{
u8 dat;
kai=0;
jia=0;
jian=0;
if(P30==0)
{
Delay10ms() ;
if(P30==0)
{
dat=4;kai=1;
}
while(P30==0)
{
}
}
if(P31==0)
{
Delay10ms() ;
if(P31==0)
{
dat=3;
kai=1;
}
while(P31==0)
{
}
}
if(P32==0)
{
Delay10ms();
if(P32==0)
{
dat=2;kai=1;
}
while(P32==0)
{
}
}
if(P33==0)
{
Delay10ms() ;
if(P33==0)
{
dat=1;
kai=1;
}
}
if(dat==4&&naozhongcishu==0)
{
{
P14 =. 1;
P17 = 0;
shizhongshezhicishu + =. 1;
}
IF (shizhongshezhicishu ==. 4)
{
shizhongshezhicishu = 0;
}
IF (DAT ==. 3 && shizhongshezhicishu == 0)
{
naozhongcishu + =. 1;
}
IF (naozhongcishu ==. 4)
{
= 0 naozhongcishu;
}
IF (DAT == 2)
{
Jia =. 1;
}
IF (!! == DAT. 1 && (|| naozhongcishu shizhongshezhicishu = 0 = 0))
{
the while (P33 == 0)
{
Jian. 1 =;
}
}
IF (P33 shizhongshezhicishu == 0 &&! = naozhongcishu. 1 &&! =. 1)
{
the while (P33 == 0)
{
Yi = 16; ER = 16; San = 16; Si = 16; Wu = 16;
DAT = zuizhong ();
Liu = DAT / 100; Qi = DAT / 10% 10; BA = DAT% 10;
the display () ;
}
}
}
P17 = 0;
shizhongshezhicishu + =. 1;
}
IF (shizhongshezhicishu ==. 4)
{
shizhongshezhicishu = 0;
}
IF (DAT ==. 3 && shizhongshezhicishu == 0)
{
naozhongcishu + =. 1;
}
IF (naozhongcishu ==. 4)
{
= 0 naozhongcishu;
}
IF (DAT == 2)
{
Jia =. 1;
}
IF (!! == DAT. 1 && (|| naozhongcishu shizhongshezhicishu = 0 = 0))
{
the while (P33 == 0)
{
Jian. 1 =;
}
}
IF (P33 shizhongshezhicishu == 0 &&! = naozhongcishu. 1 &&! =. 1)
{
the while (P33 == 0)
{
Yi = 16; ER = 16; San = 16; Si = 16; Wu = 16;
DAT = zuizhong ();
Liu = DAT / 100; Qi = DAT / 10% 10; BA = DAT% 10;
the display () ;
}
}
}
void shanshuo // () ?? E //
// {
// Yi = 16; ER = 16; San = 16; Si = 16; Wu = 16; Liu = 16; Qi = 16; BA = 16;
// }
void shanshuo1 ()
{
chucunshijian [0] = chucunshijian [0] + Jia-Jian;
TR0 =. 1;
Yi = 16; ER = 16; San =. 17; Si = chucunshijian [. 1] / 16; Wu = chucunshijian [. 1 ] 16%; Liu =. 17; Qi = chucunshijian [2] / 16; BA = chucunshijian [2] 16%;
}
// {
// Yi = 16; ER = 16; San = 16; Si = 16; Wu = 16; Liu = 16; Qi = 16; BA = 16;
// }
void shanshuo1 ()
{
chucunshijian [0] = chucunshijian [0] + Jia-Jian;
TR0 =. 1;
Yi = 16; ER = 16; San =. 17; Si = chucunshijian [. 1] / 16; Wu = chucunshijian [. 1 ] 16%; Liu =. 17; Qi = chucunshijian [2] / 16; BA = chucunshijian [2] 16%;
}
shanshuo2 void ()
{TR0 =. 1; chucunshijian [. 1] = chucunshijian [. 1] + Jia-Jian;
{TR0 =. 1; chucunshijian [. 1] = chucunshijian [. 1] + Jia-Jian;
yi = chucunshijian [0] / 16 ; er = chucunshijian [0]% 16; san = 17; si = 16; wu = 16; liu = 17; qi = chucunshijian [2] / 16; ba = chucunshijian [2]% 16;
}
}
shanshuo3 void ()
{TR0 =. 1; chucunshijian [2] = chucunshijian [2] + Jia-Jian;
{TR0 =. 1; chucunshijian [2] = chucunshijian [2] + Jia-Jian;
yi = chucunshijian [0] / 16 ; er = chucunshijian [0]% 16; san = 17; si = chucunshijian [1] / 16; wu = chucunshijian [1]% 16; liu = 17; qi = 16; ba = 16;
}
void zhengchang ()
{
Yi = chucunshijian [0] / 16; ER = chucunshijian [0]% 16; San =. 17; Si = chucunshijian [. 1] / 16; Wu = chucunshijian [. 1]% 16; Liu = . 17; Qi = chucunshijian [2] / 16; BA = chucunshijian [2]% 16;
}
void zhengchang1 ()
{
Yi = Shijian [0] / 16; ER = Shijian [0]% 16; San =. 17; Si = Shijian [. 1] / 16; Wu Shijian = [. 1] 16%; Liu =. 17; Qi = Shijian [2] / 16; BA = Shijian [2] 16%;
}
}
void zhengchang ()
{
Yi = chucunshijian [0] / 16; ER = chucunshijian [0]% 16; San =. 17; Si = chucunshijian [. 1] / 16; Wu = chucunshijian [. 1]% 16; Liu = . 17; Qi = chucunshijian [2] / 16; BA = chucunshijian [2]% 16;
}
void zhengchang1 ()
{
Yi = Shijian [0] / 16; ER = Shijian [0]% 16; San =. 17; Si = Shijian [. 1] / 16; Wu Shijian = [. 1] 16%; Liu =. 17; Qi = Shijian [2] / 16; BA = Shijian [2] 16%;
}
sanshanshuo void ()
{
chucunshijian [0] = Shijian [0];
chucunshijian [. 1] = Shijian [. 1];
chucunshijian [2] = Shijian [2];
Switch (shizhongshezhicishu)
{Case. 1:
{
chucunshijian [0] = Shijian [0];
chucunshijian [. 1] = Shijian [. 1];
chucunshijian [2] = Shijian [2];
Switch (shizhongshezhicishu)
{Case. 1:
IF (kongzhishanshuo == 0)
{
shanshuo1 ();
}
the else IF (kongzhishanshuo ==. 1)
{
zhengchang ();
}
BREAK;
Case 2:
IF (kongzhishanshuo == 0)
{
shanshuo2 ();
}
the else IF (= kongzhishanshuo . 1 =)
{
zhengchang ();
}
BREAK;
Case. 3:
IF (kongzhishanshuo == 0)
{
shanshuo3 ();
}
the else IF (kongzhishanshuo ==. 1)
{
zhengchang ();
}
BREAK;
}
Write (0x8e, 0x00) ;
Write (0x80, chucunshijian [0]);
Write (0x82, chucunshijian [. 1]);
Write (0x84, chucunshijian [2]);
Write (0x8e, 0x80);
}
void naozhongkongzhi ()
{
Yi = naozhong [0] / 10; ER = naozhong [0]% 10; San =. 17; Si = naozhong [. 1] / 10;
Wu = naozhong [. 1]% 10; Liu =. 17; Qi = naozhong [2] / 10; BA = naozhong [ 2]% 10;
}
void naozhongxianshi ()
{
TR0 =. 1;
IF (naozhongcishu ==. 1 && kongzhishanshuo == 0)
{
naozhong [0] = naozhong [0] + Jia-Jian;
naozhongkongzhi ();
}
the else IF (naozhongcishu = ==. 1. 1 && kongzhishanshuo =)
{
Yi = 16; ER = 16; San =. 17; Si = naozhong [. 1] / 10;
Wu = naozhong [. 1]% 10; Liu =. 17; Qi = naozhong [2] / 10; BA = naozhong [2]% 10;
}
IF (naozhongcishu == 2 && kongzhishanshuo == 0)
{
naozhong [. 1] = naozhong [ . 1] + Jia-Jian;
naozhongkongzhi ();
}
the else IF (naozhongcishu == 2 && kongzhishanshuo ==. 1)
{
Yi = naozhong [0] / 10; ER = naozhong [0]% 10; San =. 17; Si = 16;
= 16 Wu; Liu =. 17; Qi = naozhong [2] / 10; BA = naozhong [2] 10%;
}
IF (naozhongcishu kongzhishanshuo == == 0 &&. 3)
{
naozhong [2] = naozhong [2] + jia- Jian;
naozhongkongzhi ();
}
the else IF (naozhongcishu ==. 3 && kongzhishanshuo ==. 1)
{
Yi = naozhong [0] / 10; ER = naozhong [0]% 10; San =. 17; Si = naozhong [. 1] / 10;
Wu = naozhong [. 1]% 10; Liu =. 17; Qi = 16; BA = 16;
}
}
void naozhongxiang ()
{
P2 = 0xCF;
P0 = 0xFF;
P2 = 0xFF;
P0 = 0xFF;
TR1 =. 1;
the while ( . 1)
{
P2 = 0x80;
P0 = 0x00;
Delay200ms ();
P2 = 0x80;
P0 = 0xFF;
Delay200ms ();
Juzhen ();
IF (Kai ==. 1)
{
BREAK;
}
}
dingshishijian = 0;
TR1 = 0 ;
}
void main ()
{
Timer0Init ();
WR ();
allinit ();
the while (. 1)
{
Juzhen ();
Re ();
IF (shizhongshezhicishu == 0 && naozhongcishu == 0)
{
zhengchang1 ();
}
the else {
sanshanshuo ();
naozhongxianshi ();
}
// moshixuanze ();
// Re ();
the display ();
IF (Shijian [0] = naozhong = [0] && Shijian [. 1] == naozhong [. 1] && Shijian [2] == naozhong [2])
{
naozhongxiang ();
}
}
}
void ding0()interrupt 1
{
{
0xCD = TL0; // ??????
TH0 is = 0xD4;
dingshishijian ++;
IF (1000 dingshishijian == == 0 && kongzhishanshuo)
{
kongzhishanshuo =. 1;
dingshishijian = 0;
}
the else IF (dingshishijian == == 1000 && kongzhishanshuo. 1)
{
= 0 kongzhishanshuo;
dingshishijian = 0;
}
}
TH0 is = 0xD4;
dingshishijian ++;
IF (1000 dingshishijian == == 0 && kongzhishanshuo)
{
kongzhishanshuo =. 1;
dingshishijian = 0;
}
the else IF (dingshishijian == == 1000 && kongzhishanshuo. 1)
{
= 0 kongzhishanshuo;
dingshishijian = 0;
}
}
void ding1()interrupt 3
{
TL1 = 0xCD;
TH1 = 0xD4;
//??????
{
TL1 = 0xCD;
TH1 = 0xD4;
//??????
++ dingshishijian1;
}