?? rtc.c
字號(hào):
void For_Date_set_clearn(void)
{
LCD_ShowString(0xc0," ",16);
}
**************************************************/
//*************************************
void Year_set_adding(void)
{
uchar i;
time_s3530[6]++;
if(time_s3530[6]>0x99)time_s3530[6]=0;
else {
i=time_s3530[6]&0x0f;
if(i>9)time_s3530[6]=(time_s3530[6]&0xf0)+0x10;
}
time_ram.year[1]=(time_s3530[6]>>4)&0x0f;
time_ram.year[0]=time_s3530[6]&0x0f; //年
LCD_ShowData(0x84,time_ram.year[1],1,0); //年
LCD_ShowData(0x85,time_ram.year[0],1,0);
}
void Year_set_decrease(void)
{
uchar i;
time_s3530[6]--;
if(time_s3530[6]<0)time_s3530[6]=0x99;
// else if(time_s3530[6]>0x99)time_s3530[6]=0;
else {
i=time_s3530[6]&0x0f;
if(i>9)time_s3530[6]=(time_s3530[6]&0xf0)+0x09;
}
time_ram.year[1]=(time_s3530[6]>>4)&0x0f;
time_ram.year[0]=time_s3530[6]&0x0f; //年
LCD_ShowData(0x84,time_ram.year[1],1,0); //年
LCD_ShowData(0x85,time_ram.year[0],1,0);
}
//*************************************
void Month_set_adding(void)
{
uchar i;
time_s3530[5]++;
if(time_s3530[5]>0x12)time_s3530[5]=0;
else {
i=time_s3530[5]&0x0f;
if(i>9)time_s3530[5]=(time_s3530[5]&0xf0)+0x10;
}
time_ram.month[1]=(time_s3530[5]>>4)&0x0f;
time_ram.month[0]=time_s3530[5]&0x0f; //月
LCD_ShowData(0x87,time_ram.month[1],1,0); //月
LCD_ShowData(0x88,time_ram.month[0],1,0);
}
void Month_set_decrease(void)
{
uchar i;
time_s3530[5]--;
if(time_s3530[5]<0)time_s3530[5]=0x12;
// else if(time_s3530[5]>0x12)time_s3530[5]=0;
else {
i=time_s3530[5]&0x0f;
if(i>9)time_s3530[5]=(time_s3530[5]&0xf0)+0x09;
}
time_ram.month[1]=(time_s3530[5]>>4)&0x0f;
time_ram.month[0]=time_s3530[5]&0x0f; //月
LCD_ShowData(0x87,time_ram.month[1],1,0); //月
LCD_ShowData(0x88,time_ram.month[0],1,0);
}
//*************************************
void Day_set_adding(void)
{
uchar i;
time_s3530[4]++;
if(time_s3530[4]>0x31)time_s3530[4]=0;
else {
i=time_s3530[4]&0x0f;
if(i>9)time_s3530[4]=(time_s3530[4]&0xf0)+0x10;
}
time_ram.day[1]=(time_s3530[4]>>4)&0x0f;
time_ram.day[0]=time_s3530[4]&0x0f; //日
LCD_ShowData(0x8a,time_ram.day[1],1,0); //日
LCD_ShowData(0x8b,time_ram.day[0],1,0);
}
void Day_set_decrease(void)
{
uchar i;
time_s3530[4]--;
if(time_s3530[4]<0)time_s3530[4]=0x31;
// else if(time_s3530[4]>0x31)time_s3530[4]=0;
else {
i=time_s3530[4]&0x0f;
if(i>9)time_s3530[4]=(time_s3530[4]&0xf0)+0x09;
}
time_ram.day[1]=(time_s3530[4]>>4)&0x0f;
time_ram.day[0]=time_s3530[4]&0x0f; //日
LCD_ShowData(0x8a,time_ram.day[1],1,0); //日
LCD_ShowData(0x8b,time_ram.day[0],1,0);
}
//*************************************
void Week_set_adding(void)
{
time_s3530[3]++;
if(time_s3530[3]>0x6)time_s3530[3]=0;
time_ram.week=time_s3530[3]&0x0f; //星期
LCD_ShowData(0x8f,time_ram.week,1,0); //星期
}
void Week_set_decrease(void)
{
time_s3530[3]--;
if(time_s3530[3]<0)time_s3530[3]=0x06;
// else if(time_s3530[3]>0x06)time_s3530[3]=0;
time_ram.week=time_s3530[3]&0x0f; //星期
LCD_ShowData(0x8f,time_ram.week,1,0); //星期
}
//**********************************************************
//****查看是否有設(shè)定腦鐘/如有則比較是到喚醒時(shí)間--Check_The_Alarm****
bit Clock_Alarm_Touch(void)
{
uchar a;
b_REFRESH_MINUTE_flag=0;
if(g_alarm_flag&0x10)for(a=1;a<3;a++) //if g_alarm_flag=00010000 "Alarm one" OPEN-------"Everyday"
{
if(alarm[0][a]==time_s3530[a])
{
if(a==2)return(TRUE);
else continue;
}
else break;
}
//**********************************************************
if(g_alarm_flag&0x20)for(a=1;a<3;a++) //if g_alarm_flag=00100000 "Alarm second" OPEN------"Everyday"
{
if(alarm[1][a]==time_s3530[a])
{
if(a==2)return(TRUE);
else continue;
}
else break;
}
//**********************************************************
if(g_alarm_flag&0x40)for(a=1;a<3;a++) //if g_alarm_flag=00100000 "Alarm third" OPEN------"Everyday"
{
if(alarm[2][a]==time_s3530[a])
{
if(a==2)return(TRUE);
else continue;
}
else break;
}
//**********************************************************
if(g_alarm_flag&0x80)for(a=1;a<3;a++) //if g_alarm_flag=00100000 "Alarm four" OPEN------"Everyday"
{
if(alarm[3][a]==time_s3530[a])
{
if(a==2)return(TRUE);
else continue;
}
else break;
}
//**********************************************************
return(FALSE);
}
//**********保存系統(tǒng)時(shí)間設(shè)置***********
void Save_Tet_TimeDate_To_RTC(void)
{
CLEAR_DISPLAY
LCD_ShowString(0x80," SAVE THE SETUP ",16);
LCD_ShowString(0xc0," !!! ",16);
Delay1ms(0x20);
write_rtc_time();
CLEAR_DISPLAY
LCD_ShowString(0x80," SAVE THE SETUP ",16);
LCD_ShowString(0xc0," !!! ",16);
Delay1ms(0x20);
CLEAR_DISPLAY
if(79<KeyFuncIndex<84)Date_display();
}
//**********保存鬧鈴時(shí)間設(shè)置***********
void Save_Tet_TimeDate_To_ALARM_X_(void)
{
uchar x;
CLEAR_DISPLAY
LCD_ShowString(0x80," SAVE THE SETUP ",16);
LCD_ShowString(0xc0," !!! ",16);
Delay1ms(0x10);
x=g_alarm_flag&0x0f; //g_alarm_flag的高4bit:是否打開相應(yīng)鬧鐘. 低4bit 用來指定鬧鐘存儲(chǔ)位置
switch(x)
{
case 1:
for(x=0;x<7;x++)alarm[0][x]=time_s3530[x];
break;
case 2:
for(x=0;x<7;x++)alarm[1][x]=time_s3530[x];
break;
case 4:
for(x=0;x<7;x++)alarm[2][x]=time_s3530[x];
break;
case 8:
for(x=0;x<7;x++)alarm[3][x]=time_s3530[x];
break;
default:
break;
}
CLEAR_DISPLAY
Delay1ms(0x30);
LCD_ShowString(0x80," SAVE THE SETUP ",16);
LCD_ShowString(0xc0," !!! ",16);
if(KeyFuncIndex==93)Date_display();
}
//***************************************************
//**************時(shí)間設(shè)定的顯示界面*******************
void For_Time_Set_Interface(void)
{
LCD_ShowString(0x80," ",16);
time_display();
}
//**************日期設(shè)定的顯示界面*******************
void For_Date_Set_Interface(void)
{
LCD_ShowString(0x80," ",16);
Date_display();
}
//****************************************************
//***************打開鬧鐘and設(shè)定******************
void Open_The_Alarm(void)
{
uchar x;
LCD_ShowString(0x80," ",16);
switch(KeyFuncIndex)
{ //g_alarm_flag的高4bit:是否打開相應(yīng)鬧鐘. 低4bit 用來指定鬧鐘存儲(chǔ)位置
case 35:
{
LCD_ShowString(0x80,"R(1)",4);
for(x=0;x<7;x++)time_s3530[x]=alarm[0][x];
g_alarm_flag=(g_alarm_flag|0x11)&0xf1;
}
break;
case 37:
{
LCD_ShowString(0x80,"R(2)",4);
for(x=0;x<7;x++)time_s3530[x]=alarm[1][x];
g_alarm_flag=(g_alarm_flag|0x22)&0xf2;
}
break;
case 39:
{
LCD_ShowString(0x80,"R(3)",4);
for(x=0;x<7;x++)time_s3530[x]=alarm[2][x];
g_alarm_flag=(g_alarm_flag|0x44)&0xf4;
}
break;
case 41:
{
LCD_ShowString(0x80,"R(4)",4);
for(x=0;x<7;x++)time_s3530[x]=alarm[3][x];
g_alarm_flag=(g_alarm_flag|0x88)&0xf8;
}
break;
//************************************************
case 0x100://將不用到的函數(shù)放到至項(xiàng)中
Write_Byte(1,1,1);
Read_Byte(1,1);
Initial_RTC();
Set_Rtc_Status_Register(1);
break;
}
//************************************************
time_display();
Date_display();
Delay1ms(0xff);
Delay1ms(0x60);
CLEAR_DISPLAY
Delay1ms(0x40);
time_display();
Date_display();
Delay1ms(0x40);
x=g_alarm_flag&0x0f;
switch(x)
{
case 1:
LCD_ShowString(0x80,"1`",2);
break;
case 2:
LCD_ShowString(0x80,"2`",2);
break;
case 4:
LCD_ShowString(0x80,"3`",2);
break;
case 8:
LCD_ShowString(0x80,"4`",2);
break;
}
Delay1ms(0xff);
}
//***************************************************
//***************關(guān)閉鬧鐘and設(shè)定******************
void Close_The_Alarm(void)
{
switch(KeyFuncIndex)
{
case 36:
LCD_ShowString(0x80,"Close The ARARM1",16);
Delay1ms(0xff);
CLEAR_DISPLAY Delay1ms(0x20);
g_alarm_flag=g_alarm_flag&0xef;
LCD_ShowString(0x80,"Close The ARARM1",16);
Delay1ms(0xff);
break;
case 38:
LCD_ShowString(0x80,"Close The ARARM2",16);
Delay1ms(0xff);
CLEAR_DISPLAY Delay1ms(0x20);
g_alarm_flag=g_alarm_flag&0xdf;
LCD_ShowString(0x80,"Close The ARARM2",16);
Delay1ms(0xff);
break;
case 40:
LCD_ShowString(0x80,"Close The ARARM3",16);
Delay1ms(0xff);
CLEAR_DISPLAY Delay1ms(0x20);
g_alarm_flag=g_alarm_flag&0xbf;
LCD_ShowString(0x80,"Close The ARARM3",16);
Delay1ms(0xff);
break;
case 42:
LCD_ShowString(0x80,"Close The ARARM4",16);
Delay1ms(0xff);
CLEAR_DISPLAY Delay1ms(0x20);
g_alarm_flag=g_alarm_flag&0x7f;
LCD_ShowString(0x80,"Close The ARARM4",16);
Delay1ms(0xff);
break;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -