#include <REGX52.H>
#include"LCD1602.h"
#include"DS1302.h"
#include"Key.h"
#include"timer0.h"
unsigned char KeyNumble,MOOE,TimeSetSelect,TimeSetFlashFlag;
void Timeshow()//ʱ¼äÏÔʾ
{
DS1302_ReadTime();//¶Áȡʱ¼ä
LCD_ShowNum(1,1,DS1302_Time[0],2);//ÏÔʾÄê
LCD_ShowNum(1,4,DS1302_Time[1],2);//ÏÔʾÔÂ
LCD_ShowNum(1,7,DS1302_Time[2],2);//ÏÔʾÈÕ
LCD_ShowNum(2,1,DS1302_Time[3],2);//ÏÔʾʱ
LCD_ShowNum(2,4,DS1302_Time[4],2);//ÏÔʾ·Ö
LCD_ShowNum(2,7,DS1302_Time[5],2);//ÏÔʾÃë
}
void TimeSet()//ʱ¼äÉèÖù¦ÄÜ
{
if(KeyNumble==2)//°´¼ü2°´ÏÂ
{
TimeSetSelect++;//ÉèÖÃÑ¡Ôñλ+1
TimeSetSelect%=6;//Ô½½çÇåÁ㣨0-5£©
}
if(KeyNumble==3)//°´¼ü3°´ÏÂ
{
DS1302_Time[TimeSetSelect]++;//ʱ¼äÉèÖÃλÊýÖµ¼ÓÒ»
if(DS1302_Time[0]>99){DS1302_Time[0]=0;}//ÄêÔ½½çÅжÏ
if(DS1302_Time[1]>12){DS1302_Time[1]=1;}//ÔÂÔ½½çÅжÏ
if(DS1302_Time[1]==1||DS1302_Time[1]==3||
DS1302_Time[1]==5||DS1302_Time[1]==7||
DS1302_Time[1]==8||DS1302_Time[1]==10||
DS1302_Time[1]==12){if(DS1302_Time[2]>31)DS1302_Time[2]=1;}
if(DS1302_Time[1]==4||DS1302_Time[1]==6||DS1302_Time[1]==9||DS1302_Time[1]==11)
{if(DS1302_Time[2]>30)DS1302_Time[2]=1;}
else if(DS1302_Time[1]==2)
if(DS1302_Time[0]%4==0)
{if(DS1302_Time[2]>29)DS1302_Time[2]=1;}//ÈòÄêÔ½½ç
else
{if(DS1302_Time[2]>28)DS1302_Time[2]=1;}//ƽÄêÔ½½ç
if(DS1302_Time[3]>23){DS1302_Time[3]=0;}//ʱԽ½ç
if(DS1302_Time[4]>59){DS1302_Time[4]=0;}//·ÖÔ½½ç
if(DS1302_Time[5]>59){DS1302_Time[5]=0;}//ÃëÔ½½ç
}
if(KeyNumble==4)//°´¼ü4°´ÏÂ
{
DS1302_Time[TimeSetSelect]--;//ʱ¼äÉèÖÃÊýÖµ¼õÒ»
if(DS1302_Time[0]<0){DS1302_Time[0]=99;}//ÄêÔ½½çÅжÏ
if(DS1302_Time[1]<1){DS1302_Time[1]=12;}//ÔÂÔ½½çÅжÏ
if(DS1302_Time[1]==1||DS1302_Time[1]==3||
DS1302_Time[1]==5||DS1302_Time[1]==7||
DS1302_Time[1]==8||DS1302_Time[1]==10||
DS1302_Time[1]==12){if(DS1302_Time[2]<1)DS1302_Time[2]=31;
else if(DS1302_Time[2]>31)DS1302_Time[2]=1;}
if(DS1302_Time[1]==4||DS1302_Time[1]==6||DS1302_Time[1]==9||DS1302_Time[1]==11)
{if(DS1302_Time[2]<1)DS1302_Time[2]=30;
else if(DS1302_Time[2]>30)DS1302_Time[2]=1;}
else if(DS1302_Time[1]==2)
if(DS1302_Time[0]%4==0)
{if(DS1302_Time[2]<1)DS1302_Time[2]=29;
else if(DS1302_Time[2]>29)DS1302_Time[2]=1;}//ÈòÄêÔ½½ç
else
{if(DS1302_Time[2]<1)DS1302_Time[2]=28;
else if(DS1302_Time[2]>28)DS1302_Time[2]=1;}//ƽÄêÔ½½ç
if(DS1302_Time[3]<0){DS1302_Time[3]=23;}//ʱԽ½ç
if(DS1302_Time[4]<0){DS1302_Time[4]=59;}//·ÖÔ½½ç
if(DS1302_Time[5]<0){DS1302_Time[5]=59;}//ÃëÔ½½ç
}
//¸üÐÂÏÔʾ£¬¸ù¾ÝTimeSetSelect,TimeSetFlashFlag¿ÉÍê³ÉÉÁ˸¹¦ÄÜ
if(TimeSetSelect==0&&TimeSetFlashFlag==1){LCD_ShowString(1,1," ");}
else{LCD_ShowNum(1,1,DS1302_Time[0],2);}
if(TimeSetSelect==1&&TimeSetFlashFlag==1){LCD_ShowString(1,4," ");}
else{LCD_ShowNum(1,4,DS1302_Time[1],2);}
if(TimeSetSelect==2&&TimeSetFlashFlag==1){LCD_ShowString(1,7," ");}
else{LCD_ShowNum(1,7,DS1302_Time[2],2);}
if(TimeSetSelect==3&&TimeSetFlashFlag==1){LCD_ShowString(2,1," ");}
else{LCD_ShowNum(2,1,DS1302_Time[3],2);}
if(TimeSetSelect==4&&TimeSetFlashFlag==1){LCD_ShowString(2,4," ");}
else{LCD_ShowNum(2,4,DS1302_Time[4],2);}
if(TimeSetSelect==5&&TimeSetFlashFlag==1){LCD_ShowString(2,7," ");}
else{LCD_ShowNum(2,7,DS1302_Time[5],2);}
}
void main()
{
LCD_Init();//LCD³õʼ»¯
DS1302_Init();//DS1302³õʼ»¯
Timer0Init();
LCD_ShowString(1,1," - - ");//¾²Ì¬×Ö·ûÏÔʾ
LCD_ShowString(2,1," : : ");
DS1302_SetTime();//ÉèÖÃʱ¼ä
while(1)
{
KeyNumble=Key();//¶ÁÈ¡¼üÂë
if(KeyNumble==1)//°´¼ü1°´ÏÂ
{
if(MOOE==0){MOOE=1;TimeSetSelect=0;}//¹¦ÄÜÇл»
else if(MOOE==1){MOOE=0;DS1302_SetTime();}
}
switch(MOOE)//¸ù¾Ý²»Í¬µÄ¹¦ÄÜÖ´Ðв»Í¬µÄº¯Êý
{
case 0:TimeShow();break;
case 1:TimeSet();break;
}
}
}
void Timer0_Routine() interrupt 1//ÖжϺ¯Êý
{
static unsigned int T0Count;
TL0 = 0x18; //ÉèÖö¨Ê±Æ÷³õÖµ
TH0 = 0xFC; //ÉèÖö¨Ê±Æ÷³õÖµ
T0Count++;
if(T0Count>=500)
{
T0Count=0;
TimeSetFlashFlag=!TimeSetFlashFlag;//ÉÁ˸λȡ·´
}
}#include <REGX52.H>
#include"LCD1602.h"
#include"DS1302.h"
#include"Key.h"
#include"timer0.h"
unsigned char KeyNumble,MOOE,TimeSetSelect,TimeSetFlashFlag;
void Timeshow()//ʱ¼äÏÔʾ
{
DS1302_ReadTime();//¶Áȡʱ¼ä
LCD_ShowNum(1,1,DS1302_Time[0],2);//ÏÔʾÄê
LCD_ShowNum(1,4,DS1302_Time[1],2);//ÏÔʾÔÂ
LCD_ShowNum(1,7,DS1302_Time[2],2);//ÏÔʾÈÕ
LCD_ShowNum(2,1,DS1302_Time[3],2);//ÏÔʾʱ
LCD_ShowNum(2,4,DS1302_Time[4],2);//ÏÔʾ·Ö
LCD_ShowNum(2,7,DS1302_Time[5],2);//ÏÔʾÃë
}
void TimeSet()//ʱ¼äÉèÖù¦ÄÜ
{
if(KeyNumble==2)//°´¼ü2°´ÏÂ
{
TimeSetSelect++;//ÉèÖÃÑ¡Ôñλ+1
TimeSetSelect%=6;//Ô½½çÇåÁ㣨0-5£©
}
if(KeyNumble==3)//°´¼ü3°´ÏÂ
{
DS1302_Time[TimeSetSelect]++;//ʱ¼äÉèÖÃλÊýÖµ¼ÓÒ»
if(DS1302_Time[0]>99){DS1302_Time[0]=0;}//ÄêÔ½½çÅжÏ
if(DS1302_Time[1]>12){DS1302_Time[1]=1;}//ÔÂÔ½½çÅжÏ
if(DS1302_Time[1]==1||DS1302_Time[1]==3||
DS1302_Time[1]==5||DS1302_Time[1]==7||
DS1302_Time[1]==8||DS1302_Time[1]==10||
DS1302_Time[1]==12){if(DS1302_Time[2]>31)DS1302_Time[2]=1;}
if(DS1302_Time[1]==4||DS1302_Time[1]==6||DS1302_Time[1]==9||DS1302_Time[1]==11)
{if(DS1302_Time[2]>30)DS1302_Time[2]=1;}
else if(DS1302_Time[1]==2)
if(DS1302_Time[0]%4==0)
{if(DS1302_Time[2]>29)DS1302_Time[2]=1;}//ÈòÄêÔ½½ç
else
{if(DS1302_Time[2]>28)DS1302_Time[2]=1;}//ƽÄêÔ½½ç
if(DS1302_Time[3]>23){DS1302_Time[3]=0;}//ʱԽ½ç
if(DS1302_Time[4]>59){DS1302_Time[4]=0;}//·ÖÔ½½ç
if(DS1302_Time[5]>59){DS1302_Time[5]=0;}//ÃëÔ½½ç
}
if(KeyNumble==4)//°´¼ü4°´ÏÂ
{
DS1302_Time[TimeSetSelect]--;//ʱ¼äÉèÖÃÊýÖµ¼õÒ»
if(DS1302_Time[0]<0){DS1302_Time[0]=99;}//ÄêÔ½½çÅжÏ
if(DS1302_Time[1]<1){DS1302_Time[1]=12;}//ÔÂÔ½½çÅжÏ
if(DS1302_Time[1]==1||DS1302_Time[1]==3||
DS1302_Time[1]==5||DS1302_Time[1]==7||
DS1302_Time[1]==8||DS1302_Time[1]==10||
DS1302_Time[1]==12){if(DS1302_Time[2]<1)DS1302_Time[2]=31;
else if(DS1302_Time[2]>31)DS1302_Time[2]=1;}
if(DS1302_Time[1]==4||DS1302_Time[1]==6||DS1302_Time[1]==9||DS1302_Time[1]==11)
{if(DS1302_Time[2]<1)DS1302_Time[2]=30;
else if(DS1302_Time[2]>30)DS1302_Time[2]=1;}
else if(DS1302_Time[1]==2)
if(DS1302_Time[0]%4==0)
{if(DS1302_Time[2]<1)DS1302_Time[2]=29;
else if(DS1302_Time[2]>29)DS1302_Time[2]=1;}//ÈòÄêÔ½½ç
else
{if(DS1302_Time[2]<1)DS1302_Time[2]=28;
else if(DS1302_Time[2]>28)DS1302_Time[2]=1;}//ƽÄêÔ½½ç
if(DS1302_Time[3]<0){DS1302_Time[3]=23;}//ʱԽ½ç
if(DS1302_Time[4]<0){DS1302_Time[4]=59;}//·ÖÔ½½ç
if(DS1302_Time[5]<0){DS1302_Time[5]=59;}//ÃëÔ½½ç
}
//¸üÐÂÏÔʾ£¬¸ù¾ÝTimeSetSelect,TimeSetFlashFlag¿ÉÍê³ÉÉÁ˸¹¦ÄÜ
if(TimeSetSelect==0&&TimeSetFlashFlag==1){LCD_ShowString(1,1," ");}
else{LCD_ShowNum(1,1,DS1302_Time[0],2);}
if(TimeSetSelect==1&&TimeSetFlashFlag==1){LCD_ShowString(1,4," ");}
else{LCD_ShowNum(1,4,DS1302_Time[1],2);}
if(TimeSetSelect==2&&TimeSetFlashFlag==1){LCD_ShowString(1,7," ");}
else{LCD_ShowNum(1,7,DS1302_Time[2],2);}
if(TimeSetSelect==3&&TimeSetFlashFlag==1){LCD_ShowString(2,1," ");}
else{LCD_ShowNum(2,1,DS1302_Time[3],2);}
if(TimeSetSelect==4&&TimeSetFlashFlag==1){LCD_ShowString(2,4," ");}
else{LCD_ShowNum(2,4,DS1302_Time[4],2);}
if(TimeSetSelect==5&&TimeSetFlashFlag==1){LCD_ShowString(2,7," ");}
else{LCD_ShowNum(2,7,DS1302_Time[5],2);}
}
void main()
{
LCD_Init();//LCD³õʼ»¯
DS1302_Init();//DS1302³õʼ»¯
Timer0Init();
LCD_ShowString(1,1," - - ");//¾²Ì¬×Ö·ûÏÔʾ
LCD_ShowString(2,1," : : ");
DS1302_SetTime();//ÉèÖÃʱ¼ä
while(1)
{
KeyNumble=Key();//¶ÁÈ¡¼üÂë
if(KeyNumble==1)//°´¼ü1°´ÏÂ
{
if(MOOE==0){MOOE=1;TimeSetSelect=0;}//¹¦ÄÜÇл»
else if(MOOE==1){MOOE=0;DS1302_SetTime();}
}
switch(MOOE)//¸ù¾Ý²»Í¬µÄ¹¦ÄÜÖ´Ðв»Í¬µÄº¯Êý
{
case 0:TimeShow();break;
case 1:TimeSet();break;
}
}
}
void Timer0_Routine() interrupt 1//ÖжϺ¯Êý
{
static unsigned int T0Count;
TL0 = 0x18; //ÉèÖö¨Ê±Æ÷³õÖµ
TH0 = 0xFC; //ÉèÖö¨Ê±Æ÷³õÖµ
T0Count++;
if(T0Count>=500)
{
T0Count=0;
TimeSetFlashFlag=!TimeSetFlashFlag;//ÉÁ˸λȡ·´
}
}#include <REGX52.H>
#include"LCD1602.h"
#include"DS1302.h"
#include"Key.h"
#include"timer0.h"
unsigned char KeyNumble,MOOE,TimeSetSelect,TimeSetFlashFlag;
void Timeshow()//ʱ¼äÏÔʾ
{
DS1302_ReadTime();//¶Áȡʱ¼ä
LCD_ShowNum(1,1,DS1302_Time[0],2);//ÏÔʾÄê
LCD_ShowNum(1,4,DS1302_Time[1],2);//ÏÔʾÔÂ
LCD_ShowNum(1,7,DS1302_Time[2],2);//ÏÔʾÈÕ
LCD_ShowNum(2,1,DS1302_Time[3],2);//ÏÔʾʱ
LCD_ShowNum(2,4,DS1302_Time[4],2);//ÏÔʾ·Ö
LCD_ShowNum(2,7,DS1302_Time[5],2);//ÏÔʾÃë
}
void TimeSet()//ʱ¼äÉèÖù¦ÄÜ
{
if(KeyNumble==2)//°´¼ü2°´ÏÂ
{
TimeSetSelect++;//ÉèÖÃÑ¡Ôñλ+1
TimeSetSelect%=6;//Ô½½çÇåÁ㣨0-5£©
}
if(KeyNumble==3)//°´¼ü3°´ÏÂ
{
DS1302_Time[TimeSetSelect]++;//ʱ¼äÉèÖÃλÊýÖµ¼ÓÒ»
if(DS1302_Time[0]>99){DS1302_Time[0]=0;}//ÄêÔ½½çÅжÏ
if(DS1302_Time[1]>12){DS1302_Time[1]=1;}//ÔÂÔ½½çÅжÏ
if(DS1302_Time[1]==1||DS1302_Time[1]==3||
DS1302_Time[1]==5||DS1302_Time[1]==7||
DS1302_Time[1]==8||DS1302_Time[1]==10||
DS1302_Time[1]==12){if(DS1302_Time[2]>31)DS1302_Time[2]=1;}
if(DS1302_Time[1]==4||DS1302_Time[1]==6||DS1302_Time[1]==9||DS1302_Time[1]==11)
{if(DS1302_Time[2]>30)DS1302_Time[2]=1;}
else if(DS1302_Time[1]==2)
if(DS1302_Time[0]%4==0)
{if(DS1302_Time[2]>29)DS1302_Time[2]=1;}//ÈòÄêÔ½½ç
else
{if(DS1302_Time[2]>28)DS1302_Time[2]=1;}//ƽÄêÔ½½ç
if(DS1302_Time[3]>23){DS1302_Time[3]=0;}//ʱԽ½ç
if(DS1302_Time[4]>59){DS1302_Time[4]=0;}//·ÖÔ½½ç
if(DS1302_Time[5]>59){DS1302_Time[5]=0;}//ÃëÔ½½ç
}
if(KeyNumble==4)//°´¼ü4°´ÏÂ
{
DS1302_Time[TimeSetSelect]--;//ʱ¼äÉèÖÃÊýÖµ¼õÒ»
if(DS1302_Time[0]<0){DS1302_Time[0]=99;}//ÄêÔ½½çÅжÏ
if(DS1302_Time[1]<1){DS1302_Time[1]=12;}//ÔÂÔ½½çÅжÏ
if(DS1302_Time[1]==1||DS1302_Time[1]==3||
DS1302_Time[1]==5||DS1302_Time[1]==7||
DS1302_Time[1]==8||DS1302_Time[1]==10||
DS1302_Time[1]==12){if(DS1302_Time[2]<1)DS1302_Time[2]=31;
else if(DS1302_Time[2]>31)DS1302_Time[2]=1;}
if(DS1302_Time[1]==4||DS1302_Time[1]==6||DS1302_Time[1]==9||DS1302_Time[1]==11)
{if(DS1302_Time[2]<1)DS1302_Time[2]=30;
else if(DS1302_Time[2]>30)DS1302_Time[2]=1;}
else if(DS1302_Time[1]==2)
if(DS1302_Time[0]%4==0)
{if(DS1302_Time[2]<1)DS1302_Time[2]=29;
else if(DS1302_Time[2]>29)DS1302_Time[2]=1;}//ÈòÄêÔ½½ç
else
{if(DS1302_Time[2]<1)DS1302_Time[2]=28;
else if(DS1302_Time[2]>28)DS1302_Time[2]=1;}//ƽÄêÔ½½ç
if(DS1302_Time[3]<0){DS1302_Time[3]=23;}//ʱԽ½ç
if(DS1302_Time[4]<0){DS1302_Time[4]=59;}//·ÖÔ½½ç
if(DS1302_Time[5]<0){DS1302_Time[5]=59;}//ÃëÔ½½ç
}
//¸üÐÂÏÔʾ£¬¸ù¾ÝTimeSetSelect,TimeSetFlashFlag¿ÉÍê³ÉÉÁ˸¹¦ÄÜ
if(TimeSetSelect==0&&TimeSetFlashFlag==1){LCD_ShowString(1,1," ");}
else{LCD_ShowNum(1,1,DS1302_Time[0],2);}
if(TimeSetSelect==1&&TimeSetFlashFlag==1){LCD_ShowString(1,4," ");}
else{LCD_ShowNum(1,4,DS1302_Time[1],2);}
if(TimeSetSelect==2&&TimeSetFlashFlag==1){LCD_ShowString(1,7," ");}
else{LCD_ShowNum(1,7,DS1302_Time[2],2);}
if(TimeSetSelect==3&&TimeSetFlashFlag==1){LCD_ShowString(2,1," ");}
else{LCD_ShowNum(2,1,DS1302_Time[3],2);}
if(TimeSetSelect==4&&TimeSetFlashFlag==1){LCD_ShowString(2,4," ");}
else{LCD_ShowNum(2,4,DS1302_Time[4],2);}
if(TimeSetSelect==5&&TimeSetFlashFlag==1){LCD_ShowString(2,7," ");}
else{LCD_ShowNum(2,7,DS1302_Time[5],2);}
}
void main()
{
LCD_Init();//LCD³õʼ»¯
DS1302_Init();//DS1302³õʼ»¯
Timer0Init();
LCD_ShowString(1,1," - - ");//¾²Ì¬×Ö·ûÏÔʾ
LCD_ShowString(2,1," : : ");
DS1302_SetTime();//ÉèÖÃʱ¼ä
while(1)
{
KeyNumble=Key();//¶ÁÈ¡¼üÂë
if(KeyNumble==1)//°´¼ü1°´ÏÂ
{
if(MOOE==0){MOOE=1;TimeSetSelect=0;}//¹¦ÄÜÇл»
else if(MOOE==1){MOOE=0;DS1302_SetTime();}
}
switch(MOOE)//¸ù¾Ý²»Í¬µÄ¹¦ÄÜÖ´Ðв»Í¬µÄº¯Êý
{
case 0:TimeShow();break;
case 1:TimeSet();break;
}
}
}
void Timer0_Routine() interrupt 1//ÖжϺ¯Êý
{
static unsigned int T0Count;
TL0 = 0x18; //ÉèÖö¨Ê±Æ÷³õÖµ
TH0 = 0xFC; //ÉèÖö¨Ê±Æ÷³õÖµ
T0Count++;
if(T0Count>=500)
{
T0Count=0;
TimeSetFlashFlag=!TimeSetFlashFlag;//ÉÁ˸λȡ·´
}
}#include <REGX52.H>
#include"LCD1602.h"
#include"DS1302.h"
#include"Key.h"
#include"timer0.h"
unsigned char KeyNumble,MOOE,TimeSetSelect,TimeSetFlashFlag;
void Timeshow()//ʱ¼äÏÔʾ
{
DS1302_ReadTime();//¶Áȡʱ¼ä
LCD_ShowNum(1,1,DS1302_Time[0],2);//ÏÔʾÄê
LCD_ShowNum(1,4,DS1302_Time[1],2);//ÏÔʾÔÂ
LCD_ShowNum(1,7,DS1302_Time[2],2);//ÏÔʾÈÕ
LCD_ShowNum(2,1,DS1302_Time[3],2);//ÏÔʾʱ
LCD_ShowNum(2,4,DS1302_Time[4],2);//ÏÔʾ·Ö
LCD_ShowNum(2,7,DS1302_Time[5],2);//ÏÔʾÃë
}
void TimeSet()//ʱ¼äÉèÖù¦ÄÜ
{
if(KeyNumble==2)//°´¼ü2°´ÏÂ
{
TimeSetSelect++;//ÉèÖÃÑ¡Ôñλ+1
TimeSetSelect%=6;//Ô½½çÇåÁ㣨0-5£©
}
if(KeyNumble==3)//°´¼ü3°´ÏÂ
{
DS1302_Time[TimeSetSelect]++;//ʱ¼äÉèÖÃλÊýÖµ¼ÓÒ»
if(DS1302_Time[0]>99){DS1302_Time[0]=0;}//ÄêÔ½½çÅжÏ
if(DS1302_Time[1]>12){DS1302_Time[1]=1;}//ÔÂÔ½½çÅжÏ
if(DS1302_Time[1]==1||DS1302_Time[1]==3||
DS1302_Time[1]==5||DS1302_Time[1]==7||
DS1302_Time[1]==8||DS1302_Time[1]==10||
DS1302_Time[1]==12){if(DS1302_Time[2]>31)DS1302_Time[2]=1;}
if(DS1302_Time[1]==4||DS1302_Time[1]==6||DS1302_Time[1]==9||DS1302_Time[1]==11)
{if(DS1302_Time[2]>30)DS1302_Time[2]=1;}
else if(DS1302_Time[1]==2)
if(DS1302_Time[0]%4==0)
{if(DS1302_Time[2]>29)DS1302_Time[2]=1;}//ÈòÄêÔ½½ç
else
{if(DS1302_Time[2]>28)DS1302_Time[2]=1;}//ƽÄêÔ½½ç
if(DS1302_Time[3]>23){DS1302_Time[3]=0;}//ʱԽ½ç
if(DS1302_Time[4]>59){DS1302_Time[4]=0;}//·ÖÔ½½ç
if(DS1302_Time[5]>59){DS1302_Time[5]=0;}//ÃëÔ½½ç
}
if(KeyNumble==4)//°´¼ü4°´ÏÂ
{
DS1302_Time[TimeSetSelect]--;//ʱ¼äÉèÖÃÊýÖµ¼õÒ»
if(DS1302_Time[0]<0){DS1302_Time[0]=99;}//ÄêÔ½½çÅжÏ
if(DS1302_Time[1]<1){DS1302_Time[1]=12;}//ÔÂÔ½½çÅжÏ
if(DS1302_Time[1]==1||DS1302_Time[1]==3||
DS1302_Time[1]==5||DS1302_Time[1]==7||
DS1302_Time[1]==8||DS1302_Time[1]==10||
DS1302_Time[1]==12){if(DS1302_Time[2]<1)DS1302_Time[2]=31;
else if(DS1302_Time[2]>31)DS1302_Time[2]=1;}
if(DS1302_Time[1]==4||DS1302_Time[1]==6||DS1302_Time[1]==9||DS1302_Time[1]==11)
{if(DS1302_Time[2]<1)DS1302_Time[2]=30;
else if(DS1302_Time[2]>30)DS1302_Time[2]=1;}
else if(DS1302_Time[1]==2)
if(DS1302_Time[0]%4==0)
{if(DS1302_Time[2]<1)DS1302_Time[2]=29;
else if(DS1302_Time[2]>29)DS1302_Time[2]=1;}//ÈòÄêÔ½½ç
else
{if(DS1302_Time[2]<1)DS1302_Time[2]=28;
else if(DS1302_Time[2]>28)DS1302_Time[2]=1;}//ƽÄêÔ½½ç
if(DS1302_Time[3]<0){DS1302_Time[3]=23;}//ʱԽ½ç
if(DS1302_Time[4]<0){DS1302_Time[4]=59;}//·ÖÔ½½ç
if(DS1302_Time[5]<0){DS1302_Time[5]=59;}//ÃëÔ½½ç
}
//¸üÐÂÏÔʾ£¬¸ù¾ÝTimeSetSelect,TimeSetFlashFlag¿ÉÍê³ÉÉÁ˸¹¦ÄÜ
if(TimeSetSelect==0&&TimeSetFlashFlag==1){LCD_ShowString(1,1," ");}
else{LCD_ShowNum(1,1,DS1302_Time[0],2);}
if(TimeSetSelect==1&&TimeSetFlashFlag==1){LCD_ShowString(1,4," ");}
else{LCD_ShowNum(1,4,DS1302_Time[1],2);}
if(TimeSetSelect==2&&TimeSetFlashFlag==1){LCD_ShowString(1,7," ");}
else{LCD_ShowNum(1,7,DS1302_Time[2],2);}
if(TimeSetSelect==3&&TimeSetFlashFlag==1){LCD_ShowString(2,1," ");}
else{LCD_ShowNum(2,1,DS1302_Time[3],2);}
if(TimeSetSelect==4&&TimeSetFlashFlag==1){LCD_ShowString(2,4," ");}
else{LCD_ShowNum(2,4,DS1302_Time[4],2);}
if(TimeSetSelect==5&&TimeSetFlashFlag==1){LCD_ShowString(2,7," ");}
else{LCD_ShowNum(2,7,DS1302_Time[5],2);}
}
void main()
{
LCD_Init();//LCD³õʼ»¯
DS1302_Init();//DS1302³õʼ»¯
Timer0Init();
LCD_ShowString(1,1," - - ");//¾²Ì¬×Ö·ûÏÔʾ
LCD_ShowString(2,1," : : ");
DS1302_SetTime();//ÉèÖÃʱ¼ä
while(1)
{
KeyNumble=Key();//¶ÁÈ¡¼üÂë
if(KeyNumble==1)//°´¼ü1°´ÏÂ
{
if(MOOE==0){MOOE=1;TimeSetSelect=0;}//¹¦ÄÜÇл»
else if(MOOE==1){MOOE=0;DS1302_SetTime();}
}
switch(MOOE)//¸ù¾Ý²»Í¬µÄ¹¦ÄÜÖ´Ðв»Í¬µÄº¯Êý
{
case 0:TimeShow();break;
case 1:TimeSet();break;
}
}
}
void Timer0_Routine() interrupt 1//ÖжϺ¯Êý
{
static unsigned int T0Count;
TL0 = 0x18; //ÉèÖö¨Ê±Æ÷³õÖµ
TH0 = 0xFC; //ÉèÖö¨Ê±Æ÷³õÖµ
T0Count++;
if(T0Count>=500)
{
T0Count=0;
TimeSetFlashFlag=!TimeSetFlashFlag;//ÉÁ˸λȡ·´
}
}检查问题