void main()
{
init();
// d1=1;
sec=Iapreadbyte(0x0001);
if(sec>=60)
sec=0;
min=Iapreadbyte(0x0002);
if(min>=60)
min=0;
while(1)
{
min_h=min/10;
min_l=min%10;
sec_h=sec/10;
sec_l=sec%10;
alarm_min_h=alarm_min/10;
alarm_min_l=alarm_min%10;
alarm_sec_h=alarm_sec/10;
alarm_sec_l=alarm_sec%10;
ring();
keyscan();
if(k4num==0)
display(min_h,min_l,sec_h,sec_l);
else
display(alarm_min_h,alarm_min_l,alarm_sec_h,alarm_sec_l);
}
}
void t0() interrupt 1 //50ms定時
{
TH0=(65536-45872)/256; //50ms需計數N=45872=50ms/(12/11.0592)us
TL0=(65536-45872)%256;
num_50ms++;
if(num_50ms==20) //計時1s
{
num_50ms=0;
sec++;
Iaperasesector(0x0001);// 數據存儲器的擦出是按扇區擦除的
Iapprogrambyte(0x0001,sec);
if(sec==60)
{
sec=0;
min++;
if(min==60)
min=0;
}
Iaperasesector(0x0002);//數據存儲器的擦出是按扇區擦除的
Iapprogrambyte(0x002,min);
}
}
|