ign="justify"> # define REG_SHCP BIT5
# define REG_STCP BIT4
# define REG_DS BIT6
/ / begin # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # _char hour_H;// Десятки годин
u_char hour_L;// Одиниці часов_char min_H;// Десятки мінут_char min_L;// Одиниці мінут_char sec_H;// Десятки секунд_char sec_L;// Одиниці секунд_char mode;// Режим работи_char ct_2ms;// Лічильник інтервалу часу по 2 мс_char ct_beep;// Лічильник інтервалу в сек. звучання сігнала_char key;// Виконавчий код кнопок_char cur_num;// Номер поточної відображуваної ціфри_char cur_key;// Номер поточного опитування кнопок_char prev_key;// Результат попереднього опитування кнопок_char bounce_tmr;// Лічильник для програмного винятку брязкоту
u_char flags; A; _char value; _char c; TBL_IMAGE []={
xC0, / / ??0
xF9, / / ??1
xA4, / / ??2
xB0, / / ??3
x99, / / ??4
x92, / / ??5
x82, / / ??6
xF8, / / ??7
x80, / / ??8
0x90, / / ??9
};
/ / таблиця сигналів управління анодами 6 цифр світлодіодного дисплея
char TBL_COM []={
xFB, / / ??А1 hour_H
xF7, / / ??А2 hour_L
xEF, / / ??А3 min_H
xDF, / / ??А4 min_L
0xBF, / / ??А5 sec_H
x7F / / А6 sec_L
}; TBL_LIGHT []={
x01, / / ??загоряється зелений світлодіод
x10 / / спалахує червоний світлодіод
}; Servis_Key ()
{(key)
{KEY_MODE:
{= NOT_DEFINE; + +; (mode == 7)
{= 0;
}
}; KEY_UP:
{= NOT_DEFINE; (mode == 0)
{}
{_beep=0; DIR |=0x08; OUT |=0x08; (mode)
{1:
{_H + +; (hour_H> 2)
{_H=0;
}
}; 2:
{_L + +; ((hour_H> 9) | ((hour_H == 2) & (hour_L> 3)))
{_L=0;
}
}; 3:
{_H + +; (min_H> 5)
{_H=0;
}
}; 4:
{_L + +; (min_L> 9)
{_L=0;
}
}; 5:
{_H + +; (sec_H> 5)
{_H=0;
}
}; 6:
{_L=0;
};
}
}
};
}
} Keybscan ()
{DIR &=~ 0x07;=P1IN; (key & SW_Load == SW_Load)
{= TBL_LIGHT [0];