T
tumee
Guest
Я зробив цифровий годинник з використанням 7 сегмента і 89c52.Але зволікання збільшується, коли годинник робочого обладнання.Його падіння на за приблизно 4 секунди після 1:00.Якщо відомо кожному будь ласка, повідомте мене.
Затримка код:
недійсним delay_asec (недійсними)
(
непідписані символ D;
для (D = 0, р <20, г ) (
delay_50ms ();
)
)
недійсним delay_50ms (недійсними)
(
/ / SCON = 0x80;
/ / Налаштувати таймер 0, як 16-розрядних таймера
TMOD і = 0xf0; / / Очищаємо всі біти Т0 (T1 залишив без змін)
TMOD | = 0x01; / / Встановити біт потрібно Т0 (T1 залишив без змін)
ET0 = 0; / / Без переривання
/ / Значення затримки 50ms
TH0 = 0x3c Рівень / / 0x3c Рівень
TL0 = 0xb0 / / 0xb0
TF0 = 0; / / Очищаємо прапор переповнення
TR0 = 1; / / Початок таймер 0
а (TF0 == 0); / / Цикл, поки 0 прориває (TF0 == 1)
TR0 = 0;
)
Затримка код:
недійсним delay_asec (недійсними)
(
непідписані символ D;
для (D = 0, р <20, г ) (
delay_50ms ();
)
)
недійсним delay_50ms (недійсними)
(
/ / SCON = 0x80;
/ / Налаштувати таймер 0, як 16-розрядних таймера
TMOD і = 0xf0; / / Очищаємо всі біти Т0 (T1 залишив без змін)
TMOD | = 0x01; / / Встановити біт потрібно Т0 (T1 залишив без змін)
ET0 = 0; / / Без переривання
/ / Значення затримки 50ms
TH0 = 0x3c Рівень / / 0x3c Рівень
TL0 = 0xb0 / / 0xb0
TF0 = 0; / / Очищаємо прапор переповнення
TR0 = 1; / / Початок таймер 0
а (TF0 == 0); / / Цикл, поки 0 прориває (TF0 == 1)
TR0 = 0;
)