// Main function void main(void) { InitLCD(); // Initialize LCD InitI2C(); // Initialize i2c pins // Set initial time Set_DS1307_RTC_Time(TwentyFourHoursMode, 12, 59, 50); // Set time 08:32:59 AM // Set initial date Set_DS1307_RTC_Date(15, 12, 12, Saturday); // Set 15-12-2012 @ Saturday while(1) { SetTime(); // Display RTC time on first line of LCD DisplayTimeToLCD(Get_DS1307_RTC_Time()); // Display RTC date on second line of LCD DisplayDateOnLCD(Get_DS1307_RTC_Date()); __delay_ms(100); // 1 second delay } }
void main(void) { TRISA = 0xff; TRISC = 0X00; TRISD = 0X00; InitLCD(); // Initialize LCD InitI2C(); // Initialize i2c pins state = 1; // Khoi tao gia mac dinh //__delay_ms(10000) // Tre 1s Set_DS1307_RTC_Time(PM_Time, 2, 30, 30); // kh?i t?o ngày tháng m?c ??nh Set_DS1307_RTC_Date(04, 04, 16, Tuesday); DisplayFirstTimeToLCD(Get_DS1307_RTC_Time()); while (1) { switch (state) { case 1: displayState1(); break; case 2: displayState2(); break; case 3: displayState3(); break; case 4: displayState4(); break; } } }
// Main function void main() { InitLCD(); // Initialize LCD InitI2C(); // Initialize i2c pins // Set initial time Set_DS1307_RTC_Time(AM_Time, 8, 32, 59); // Set time 08:32:59 AM // Set initial date Set_DS1307_RTC_Date(2, 11, 12, Friday); // Set 02-11-2012 @ Friday while(1) { // Display RTC time on first line of LCD DisplayTimeToLCD(Get_DS1307_RTC_Time()); // Display RTC date on second line of LCD DisplayDateOnLCD(Get_DS1307_RTC_Date()); delay(65000); // Roughly about 1 second delay } }
void displayState2(void) { ClearLCDScreen(); //Ba bi?n h,m,s l?u l?i th?i gian hi?n t?i unsigned int h; unsigned int m; unsigned int s; h = (int) Get_DS1307_RTC_Time()[2]; m = (int) Get_DS1307_RTC_Time()[1]; s = (int) Get_DS1307_RTC_Time()[0]; //B?m nút chuy?n tr?ng thái if (!RA1) { state++; if (state == 5) { state = 1; } } //S?a th?i gian while (1) { WriteCommandToLCD(0x80); WriteStringToLCD(" SETTING TIME"); WriteCommandToLCD(0xc0); WriteTempToLCD(h); WriteStringToLCD(":"); WriteTempToLCD(m); WriteStringToLCD(":"); WriteTempToLCD(s); if (!RA1) break; while (1) { //Khi nút switch ???c b?m s? chuy?n qua các ch? ?? ?i?u ch?nh khác if (RA4 == 0) { switch_state++; if (switch_state == 4) { break; } } //Chuy?n tr?ng thái if (RA1 == 0) { state = 3; break; } switch (switch_state) { case 1: WriteCommandToLCD(0x80); WriteStringToLCD(" CHANGE HOUR "); if (RA2 == 0 && h < 24) { h++; WriteCommandToLCD(0xc0); WriteTempToLCD(h); } if (RA3 == 0 && h > 0) { h--; WriteCommandToLCD(0xc0); WriteTempToLCD(h); } break; case 2: WriteCommandToLCD(0x80); WriteStringToLCD(" CHANGE MINUTE "); if (RA2 == 0 && m < 60) { m++; WriteCommandToLCD(0xc0 + 3); WriteTempToLCD(m); } if (RA3 == 0 && m > 0) { m--; WriteCommandToLCD(0xc0 + 3); WriteTempToLCD(m); } break; case 3: WriteCommandToLCD(0x80); WriteStringToLCD(" CHANGE SECOND "); if (RA2 == 0) { s++; WriteCommandToLCD(0xc0 + 6); WriteTempToLCD(s); } if (RA3 == 0 && s > 0) { s--; WriteCommandToLCD(0xc0 + 6); WriteTempToLCD(s); } break; } //L?u l?i th?i gian v?a thay ??i Set_DS1307_RTC_Time(PM_Time, h, m, s); } } }