?? clock_pic16f877.c
字號:
lcd_write_data(AlarmTime2.minuteh + '0');
lcd_write_data(AlarmTime2.minutel + '0');
lcd_write_data(':');
lcd_write_data(AlarmTime2.secondh + '0');
lcd_write_data(AlarmTime2.secondl + '0');
lcd_write_data(' ');
lcd_write_data('O');
if (Alarm2Enable)
{
lcd_write_data('n');
}
else
{
lcd_write_data('f');
lcd_write_data('f');
}
pStr = StrAlarm2;
Alarm2Cnt = 0;
}
lcd_write_inst(0xc0); // set LCD line2
if (CurrentMode != mode_time)
{
for (;*pStr!=0;pStr++)
{ // write hint message
lcd_write_data(*pStr);
}
lcd_write_inst(0x0f); // LCD cursor on
lcd_write_inst(time_start_addr); // move cursor to start
}
else // time mode,write date to second line
{
lcd_write_inst(0x0c); // LCD sursor off
/* lcd_write_inst(0xc0 + 3); // set date start address
lcd_write_data(CurrentDate.year1 + '0');
lcd_write_data(CurrentDate.year2 + '0');
lcd_write_data(CurrentDate.year3 + '0');
lcd_write_data(CurrentDate.year4 + '0');
lcd_write_data('/');
lcd_write_data(CurrentDate.monthh + '0');
lcd_write_data(CurrentDate.monthl + '0');
lcd_write_data('/');
lcd_write_data(CurrentDate.dayh + '0');
lcd_write_data(CurrentDate.dayl + '0');
*/ }
if (CurrentMode == mode_set_time)
{
lcd_write_inst(time_start_addr); // move cursor to start
}
else if (CurrentMode == mode_set_date)
{
lcd_write_inst(time_start_addr); // move cursor to start
}
else if (CurrentMode == mode_set_alarm1)
{
lcd_write_inst(time_secondl_addr+3);
adjust_item = 6;
}
else if (CurrentMode == mode_set_alarm2)
{
lcd_write_inst(time_secondl_addr+3);
adjust_item = 6;
}
else
{
lcd_write_inst(0x0c); // LCD cursor off
}
}
// -------------------------------------------------------
void set_date(void)
{
if (adjust_item == 0) // adjust year
{
if ((KeyNew >=0) & (KeyNew <= 9))
CurrentDate.year1 = KeyNew;
lcd_write_data(CurrentDate.year1 + '0');
//lcd_write_inst(time_start_addr);
adjust_item ++;
}
else if (KeyNew == key_left)
{
adjust_item = 7;
lcd_write_inst(time_start_addr + 9);
}
else if(KeyNew == key_right)
{
adjust_item ++;
lcd_write_inst(time_start_addr + 1);
}
}
else if(adjust_item == 1)
{
if ((KeyNew >=0) & (KeyNew <= 9))
{
CurrentDate.year2 = KeyNew;
lcd_write_data(CurrentDate.year2 + '0');
//lcd_write_inst(time_start_addr + 1);
adjust_item ++;
}
else if (KeyNew == key_left)
{
adjust_item --;
lcd_write_inst(time_start_addr + 0);
}
else if(KeyNew == key_right)
{
adjust_item ++;
lcd_write_inst(time_start_addr + 2);
}
}
else if(adjust_item == 2)
{
if ((KeyNew >=0) & (KeyNew <= 9))
{
CurrentDate.year3 = KeyNew;
lcd_write_data(CurrentDate.year3 + '0');
//lcd_write_inst(time_start_addr + 2);
adjust_item ++;
}
else if (KeyNew == key_left)
{
adjust_item --;
lcd_write_inst(time_start_addr + 1);
}
else if(KeyNew == key_right)
{
adjust_item ++;
lcd_write_inst(time_start_addr + 3);
}
}
else if(adjust_item == 3)
{
if ((KeyNew >=0) & (KeyNew <= 9))
{
CurrentDate.year4 = KeyNew;
lcd_write_data(CurrentDate.year4 + '0');
//lcd_write_inst(time_start_addr + 3);
adjust_item ++;
lcd_write_inst(time_start_addr + 5);
}
else if (KeyNew == key_left)
{
adjust_item --;
lcd_write_inst(time_start_addr + 2);
}
else if(KeyNew == key_right)
{
adjust_item ++;
lcd_write_inst(time_start_addr + 5);
}
}
else if(adjust_item == 4)
{
if (((CurrentDate.monthl>2) & (KeyNew == 0)) | ((CurrentDate.monthl == 0) & (KeyNew == 1))
| (((CurrentDate.monthl == 1) | (CurrentDate.monthl == 2)) & (KeyNew <2)))
{
CurrentDate.monthh = KeyNew;
lcd_write_data(CurrentDate.monthh + '0');
//lcd_write_inst(time_start_addr + 5);
adjust_item ++;
}
else if (KeyNew == key_left)
{
adjust_item --;
lcd_write_inst(time_start_addr + 3);
}
else if (KeyNew == key_right)
{
adjust_item ++;
lcd_write_inst(time_start_addr + 6);
}
}
else if(adjust_item == 5)
{
if (((CurrentDate.monthh == 3) & (KeyNew <2)) | ((CurrentDate.monthh != 3) & (KeyNew >=0) & (KeyNew <=9)))
{
CurrentDate.monthl = KeyNew;
lcd_write_data(CurrentDate.monthl + '0');
//lcd_write_inst(time_start_addr + 6);
adjust_item ++;
lcd_write_inst(time_start_addr + 8);
}
else if (KeyNew == key_left)
{
adjust_item --;
lcd_write_inst(time_start_addr + 5);
}
else if (KeyNew == key_right)
{
adjust_item ++;
lcd_write_inst(time_start_addr + 8);
}
}
else if(adjust_item == 6)
{
if (((CurrentDate.dayl>1) & ((KeyNew == 1) | (KeyNew == 2))) | ((CurrentDate.dayl == 0) & (KeyNew >0) & (KeyNew<4))
| ((CurrentDate.dayl == 1) & (KeyNew <4)))
{
CurrentDate.dayh = KeyNew;
lcd_write_data(CurrentDate.dayh + '0');
//lcd_write_inst(time_start_addr + 8);
adjust_item ++;
}
else if (KeyNew == key_left)
{
adjust_item --;
lcd_write_inst(time_start_addr + 6);
}
else if (KeyNew == key_right)
{
adjust_item ++;
lcd_write_inst(time_start_addr + 9);
}
}
else if(adjust_item == 7)
{
if (((CurrentDate.dayh == 3) & (KeyNew <2)) | ((CurrentDate.dayh != 3) & (KeyNew >=0) & (KeyNew <=9)))
{
CurrentDate.dayl = KeyNew;
lcd_write_data(CurrentDate.dayl + '0');
//lcd_write_inst(time_start_addr + 9);
adjust_item ++;
lcd_write_inst(time_start_addr + 0);
}
else if (KeyNew == key_left)
{
adjust_item --;
lcd_write_inst(time_start_addr + 8);
}
else if (KeyNew == key_right)
{
adjust_item = 0;
lcd_write_inst(time_start_addr + 0);
}
}
}
// -------------------------------------------------------
void set_time(void)
{
if (adjust_item == 0) // set hourh
{
if (((CurrentTime.hourl <4) & (KeyNew < 3)) | ((CurrentTime.hourl >3) & (KeyNew <2)))
{
CurrentTime.hourh = KeyNew;
lcd_write_data(CurrentTime.hourh + '0'); // refresh hourh
//lcd_write_inst(0x10); // move cursor back
adjust_item ++;
}
else if(KeyNew == key_left)
{
adjust_item = 5;
lcd_write_inst(time_secondl_addr);
}
else if(KeyNew == key_right)
{
adjust_item ++;
lcd_write_inst(time_hourl_addr);
}
}
else if (adjust_item == 1) // set hourl
{
if (((CurrentTime.hourh == 2) & (KeyNew < 4)) | ((CurrentTime.hourh < 2) & (KeyNew <=9)))
{
CurrentTime.hourl = KeyNew;
lcd_write_data(CurrentTime.hourl + '0'); // refresh hourl
//lcd_write_inst(0x10); // move cursor back
adjust_item ++;
lcd_write_inst(time_minuteh_addr);
}
else if(KeyNew == key_left)
{
adjust_item --;
lcd_write_inst(time_hourh_addr);
}
else if(KeyNew == key_right)
{
adjust_item ++;
lcd_write_inst(time_minuteh_addr);
}
}
else if (adjust_item == 2) // set minuteh
{
if (KeyNew <6)
{
CurrentTime.minuteh = KeyNew;
lcd_write_data(CurrentTime.minuteh + '0');
//lcd_write_inst(0x10); // move cursor back
adjust_item ++;
}
else if(KeyNew == key_left)
{
adjust_item --;
lcd_write_inst(time_hourl_addr);
}
else if(KeyNew == key_right)
{
adjust_item ++;
lcd_write_inst(time_minutel_addr);
}
}
else if (adjust_item == 3) // set minutel
{
if ((KeyNew >=0) & (KeyNew <=9))
{
CurrentTime.minutel = KeyNew;
lcd_write_data(CurrentTime.minutel + '0');
//lcd_write_inst(0x10); // move cursor back
adjust_item ++;
lcd_write_inst(time_secondh_addr);
}
else if(KeyNew == key_left)
{
adjust_item --;
lcd_write_inst(time_minuteh_addr);
}
else if(KeyNew == key_right)
{
adjust_item ++;
lcd_write_inst(time_secondh_addr);
}
}
else if (adjust_item == 4) // set secondh
{
if (KeyNew <6)
{
CurrentTime.secondh = KeyNew;
lcd_write_data(CurrentTime.secondh + '0');
//lcd_write_inst(0x10); // move cursor back
adjust_item ++;
}
else if(KeyNew == key_left)
{
adjust_item --;
&nb, sp; lcd_write_inst(time_minutel_addr);
}
else if(KeyNew == key_right)
{
adjust_item ++;
lcd_write_inst(time_secondl_addr);
}
}
else if (adjust_item == 5) // set secondl
{
if ((KeyNew >=0) & (KeyNew <=9))
{
CurrentTime.secondl = KeyNew;
lcd_write_data(CurrentTime.secondl + '0');
//lcd_write_inst(0x10); // move cursor back
adjust_item = 0;
lcd_write_inst(time_hourh_addr);
}
else if(KeyNew == key_left)
{
adjust_item --;
lcd_write_inst(time_secondh_addr);
}
else if(KeyNew == key_right)
{
adjust_item = 0;
lcd_write_inst(time_hourh_addr);
}
}
}
// -------------------------------------------------------
void set_alarm1(void)
{
if (adjust_item == 0) // set hourh
{
if (((AlarmTime1.hourl <4) & (KeyNew < 3)) | ((AlarmTime1.hourl >3) & (KeyNew <2)))
{
AlarmTime1.hourh = KeyNew;
lcd_write_data(AlarmTime1.hourh + '0'); // refresh hourh
//lcd_write_inst(0x10); // move cursor back
adjust_item ++;
}
else if(KeyNew == key_left)
{
adjust_item = 6;
lcd_write_inst(time_secondl_addr + 3);
}
else if(KeyNew == key_right)
{
adjust_item ++;
lcd_write_inst(time_hourl_addr);
}
}
else if (adjust_item == 1) // set hourl
{
if (((AlarmTime1.hourh == 2) & (KeyNew < 4)) | ((AlarmTime1.hourh < 2) & (KeyNew <=9)))
{
AlarmTime1.hourl = KeyNew;
lcd_write_data(AlarmTime1.hourl + '0'); // refresh hourl
//lcd_write_inst(0x10); // move cursor back
adjust_item ++;
lcd_write_inst(time_minuteh_addr);
}
else if(KeyNew == key_left)
{
adjust_item --;
lcd_write_inst(time_hourh_addr);
}
else if(KeyNew == key_right)
{
adjust_item ++;
lcd_write_inst(time_minuteh_addr);
}
}
else if (adjust_item == 2) // set minuteh
{
if (KeyNew <6)
{
AlarmTime1.minuteh = KeyNew;
lcd_write_data(AlarmTime1.minuteh + '0');
//lcd_write_inst(0x10); // move cursor back
adjust_item ++;
}
else if(KeyNew == key_left)
{
adjust_item --;
lcd_write_inst(time_hourl_addr);
}
else if(KeyNew == key_right)
{
adjust_item ++;
lcd_write_inst(time_minutel_addr);
}
}
else if (adjust_item == 3) // set minutel
{
if ((KeyNew >=0) & (KeyNew <=9))
{
AlarmTime1.minutel = KeyNew;
lcd_write_data(AlarmTime1.minutel + '0');
//lcd_write_inst(0x10); // move cursor back
adjust_item ++;
lcd_write_inst(time_secondh_addr);
}
else if(KeyNew == key_left)
{
adjust_item --;
lcd_write_inst(time_minuteh_addr);
}
else if(KeyNew == key_right)
{
adjust_item ++;
lcd_write_inst(time_secondh_addr);
}
}
else if (adjust_item == 4) // set secondh
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -