- 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);
- }
- }
复制代码 |