Exemple #1
0
// 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
	}
}
Exemple #2
0
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;
        }
    }
}
Exemple #3
0
// 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
	}
}
Exemple #4
0
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);
        }
    }

}