Пример #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
	}
}
Пример #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;
        }
    }
}
Пример #3
0
void displayState1(void) {
    while (1) {
        // Hien thi thoi gian
        DisplayTimeToLCD(Get_DS1307_RTC_Time());
        ADCinit();
        ADCvalue = ReadADC();
        //Hien thi ngày tháng t? giây 0->giây 40
        if (Get_DS1307_RTC_Time()[0] > 40) {
            WriteCommandToLCD(0xc0);
            DisplayDateOnLCD(Get_DS1307_RTC_Date());
        }
        //Hi?n th? nhi?t ?? t? giây 40->59
        if (Get_DS1307_RTC_Time()[0] < 40) {

            voltage = (int) (5000.0f / 1023 * ADCvalue);
            f = voltage / 10;
            WriteCommandToLCD(0xc0);
            WriteStringToLCD("TEMP: ");
            WriteTempToLCD(f);
            WriteCommandToLCD(0xc8);
            WriteDataToLCD(0xdf);
            WriteStringToLCD("C");
        }
        //WriteCommandToLCD(0xc0);
        //Nh?n nút chuy?n tr?ng thái
        if (!RA1) {
            state++;
            if (state == 5) {
                state = 1;
            }
            break;
        }
        //Báo th?c
        if (h_alarm == (int) Get_DS1307_RTC_Time()[2] && m_alarm == (int) Get_DS1307_RTC_Time()[1]) {
            RD0 = 0;
        }
        //T?t báo th?c
        if (!RA4) {
            RD0 = 1;
            h_alarm = 0;
            m_alarm = 0;
        }

    }
}
Пример #4
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
	}
}
Пример #5
0
void displayState4(void) {
    ClearLCDScreen();
    unsigned int h;
    unsigned int m;
    unsigned int s;
    h = 0;
    m = 0;
    s = 0;
    if (!RA1) {
        state++;
        if (state == 5) {
            state = 1;
        }
    }
    while (1) {
        WriteCommandToLCD(0x80);
        WriteStringToLCD("     ALARM     ");
        WriteCommandToLCD(0xc0);
        WriteTempToLCD(h);
        WriteStringToLCD(":");
        WriteTempToLCD(m);
        WriteStringToLCD(":");
        WriteTempToLCD(s);
        if (!RA1) {
            DisplayFirstTimeToLCD(Get_DS1307_RTC_Time());
            //DisplayDateOnLCD(Get_DS1307_RTC_Date());
            break;
        }
        while (1) {
            if (RA4 == 0) {
                switch_state++;
                if (switch_state == 4) {
                    break;
                }
            }
            if (RA1 == 0) {
                state = 1;
                break;
            }
            switch (switch_state) {
                case 1:
                    WriteCommandToLCD(0x80);
                    WriteStringToLCD("    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("     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("    SECOND   ");
                    if (RA2 == 0) {
                        s++;
                        WriteCommandToLCD(0xc0 + 6);
                        WriteTempToLCD(s);
                    }
                    if (RA3 == 0 && s > 0) {
                        s--;
                        WriteCommandToLCD(0xc0 + 6);
                        WriteTempToLCD(s);
                    }
                    break;
            }
            h_alarm = h;
            m_alarm = m;
            s_alarm = s;
        }
    }

}
Пример #6
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);
        }
    }

}