тання регістра днів
day=(temp amp; 0x0F); Read (0x04, amp; temp);// Читання регістра дати=(((temp amp; 0xF0) gt; gt; 4) * 10) + (temp amp; 0x0F);
DS1307Read (0x05, amp; temp);// Читання регістра місяці
month=(((temp amp; 0xF0) gt; gt; 4) * 10) + (temp amp; 0x0F);
DS1307Read (0x06, amp; temp);// Читання регістра року
years=(((temp amp; 0xF0) gt; gt; 4) * 10) + (temp amp; 0x0F);
if (v == 1)
{_ com (0x08);// Повне вимикання дісплея_com (0x01);// Очистка дисплея
_ delay_us (100); _ com (0x06);// Зрушення курсора вправо_com (0x0C);// Включення дисплея, курсор не бачимо=0;
}
//Висновок годин і календаря_string (0xC1, - - 20/);// Дата_com (0xC1); (date, 2);// Виводимо на екран дату
if (month == 1) lcd_string (0xC4, ЗЅі ); if (month == 2) lcd_string (0xC4, дeі ); if (month == 3) lcd_string (0xC4, јap ); if (month == 4) lcd_string (0xC4, aѕp ); if (month == 5) lcd_string (0xC4, јa№ ); if (month == 6) lcd_string (0xC4, ёЖЅ ); if (month == 7) lcd_string (0xC4, їжак »); if (month == 8) lcd_string (0xC4, aіґ ); if (month == 9) lcd_string (0xC4, ceЅ ); if (month == 10) lcd_string (0xC4, oєї ); if (month == 11) lcd_string (0xC4, ЅoЗ );
else lcd_string (0xC4, гeє );// Виводимо на екран месяц_com (0xCA); (years, 2);// Виводимо на екран рік
if (day == 1) lcd_string (0xCD, BC ); if (day == 2) lcd_string (0xCD, ЁH ); if (day == 3) lcd_string (0xCD, BT ); if (day == 4) lcd_string (0xCD, CP ); if (day == 5) lcd_string (0xCD, «T ); if (day == 6) lcd_string (0xCD, ЁT );
else lcd_string (0xCD, C );// Виводимо на екран день тижня
lcd_string (0x84, :: ); _ com (0x84);
LCDWriteInt (hour, 2);// Виводимо на екран часи_com (0x87); (minute, 2);// Виводимо на екран мінути_com (0x8A); (second, 2);// Виводимо на екран секунди_com (0x8E); (zvon_vkl == 1) lcd_data (0xED);// Виводимо на екран індикатор включення/виключення дзвінка (MENU)//якщо кнопка меню натиснута
{((PINC amp; (1 lt; lt; PC2)) == 0) {}=1;
}
//Вхід в меню (menu)
{1://Налаштування часу (1)
{((v == 0) || (k == 0) || (a == 1))
{_ com (0x08);// Повне вимикання дісплея_com (0x01);// Очистка дисплея
_ delay_us (100); _ com (0x06);// Зрушення курсора вправо_com (0x0C);// Включення дисплея, курсор не бачимо
v=1;=1;=0;
} _ string (0x86, MEH ° ); _ string (0xC1, Hacїp. Аacoі gt; );
if (OK)//Якщо кнопка ок натиснута
{((PINC amp; (1 lt; lt; PC3)) == 0) {}=1;
} (MIN)//Якщо натиснута кнопка Хвилини +
{((PINC amp; (1 lt; lt; PC1)) == 0) {}//Чекаємо відпускання кнопки
menu=2 ;;
} (ok == 1)
{(k == 1)
{_ com (0x08);// Повне вимикання дісплея_com (0x01);// Очистка дисплея
_ delay_us (100); _ com (0x06);// Зрушення курсора вправо_com (0x0C);// Включення дисплея, курсор не бачимо
k=0;
} _ string (0x81, HACTPO|KA «ACOB ); _ string (0xC5, : ); _ com (0xC5);
LCDWriteInt (hour, 2);// Виводимо на екран часи_com (0xC8); (minute, 2);// Виводимо на екран хвилини (HOUR)//Якщо натиснута кнопка Годинники +
{((PINC amp; (1 lt; lt; PC0)) == 0) {}//Чекаємо відпускання кнопки ++;// Збільшуємо годинник на 1 (hour gt; 23) hour=0;
//Перетворимо з двійкової системи в BCD і записуємо в DS1307
uint8_t temp;=((hour/10) lt; lt; 4) | (hour% 10); Write (0x02, temp);
_ delay_ms (100);
} (MIN)//Якщо натиснута кнопка Хвилини +
{((PINC amp; (1 lt; lt; PC1)) == 0) {}//Чекаємо відпускання кнопки ++;// Збільшуємо хвилини на 1 (minute gt; 59) minute=0;
//Перетворимо з двійкової системи в BCD і записуємо в DS1307
uint8_t temp;=((minute/10) lt; lt; 4) | (minute% 10); Write (0x01, temp);
_ delay_ms (100);
}
/** Вихід з налаштувань годин **/(OK)//Якщо кнопка ок натиснута, то вихід
{((PINC amp; (1 lt; lt; PC3)) == 0) {}=0;=1;
} (ok == 0)
{brea...