На педыдущей странице (в конце) признал был не совсем прав - "прошу понять и простить (c)".
Закупками и продажей не занимаюсь (беру денюжку за разработку или за прошивку), но по требованию заказчиков приходилось экономить колличество паек (цену уже озвучивал - в нормальном месте контакт 9 укр. коп.). Даже платы, было, требовалось разводить под старое производство плат, еще советское оборудование дорожки 0,3 с зазором 0,3 не проходят. И под выводные резисторы, конденсадоры, дип корпус микроконтроллера и пр, как раз паяльщик не мог смд паять. До сих пор это паяется и продается (махровая китайщина (c)).
Знакогенератор как обычно - разложили число на тысячи сотни десятки и еденицы, затем полученые 4 цифры преобразовали в их семисегментное представление на индикаторе - сложили в 4 переменные Led0-Led3. В прерывании в начале выключаем катоды, сегмент А в еденицу,остальные сегменты в ноль, затем смотрим в Led0 надо зажигать сегмент А, если надо устанавливаем в первом катоде ноль, в Led1 надо зажигать сегмент А, если надо устанавливаем на втором катоде ноль и также в Led2 и Led3. В следуюющем прерывании уже расматриваем сегмент В, в следующем С и т.д..
Знакогенератор или я не так думаю:
Код:
|
// A
// --
// F | | B
// -- G
// E | | C
// -- ~H
// D
#define SegA bit_5
#define SegB bit_7
#define SegC bit_1
#define SegD bit_3
#define SegE bit_4
#define SegF bit_6
#define SegG bit_0
#define SegH bit_2
#define digit_0 (SegA | SegB | SegC | SegD | SegE | SegF)
#define digit_1 (SegB | SegC)
#define digit_2 (SegA | SegB | SegG | SegE | SegD)
#define digit_3 (SegA | SegB | SegG | SegC | SegD)
#define digit_4 (SegF | SegG | SegB | SegC)
#define digit_5 (SegA | SegF | SegG | SegC | SegD)
#define digit_6 (SegA | SegF | SegE | SegD | SegC | SegG)
#define digit_7 (SegA | SegB | SegC)
#define digit_8 (SegA | SegB | SegC | SegD | SegE | SegF | SegG)
#define digit_9 (SegA | SegB | SegC | SegD | SegF | SegG)
#define let_A (SegA | SegB | SegC | SegF | SegE | SegG)
#define let_B (SegF | SegE | SegD | SegC | SegG)
#define let_C (SegA | SegF | SegE | SegD)
#define let_d (SegB | SegC | SegD | SegG | SegE)
#define let_n (SegC | SegE | SegG)
#define let_E (SegA | SegF | SegE | SegD | SegG)
#define let_F (SegD | SegC | SegB | SegG)
#define let_t (SegF | SegE | SegD | SegG)
#define let_P (SegA | SegF | SegE | SegB | SegG)
#define let_r (SegE | SegG)
#define let_S (SegA | SegF | SegG | SegC | SegD)
#define let_Y (SegF | SegG | SegB | SegC | SegD)
#define let_G (SegA | SegF | SegE | SegD | SegC)
#define let_o (SegG | SegE | SegC | SegD)
#define let_u (SegC | SegD | SegE)
#define let_L (SegF | SegE | SegD)
#define let_H (SegB | SegC | SegE | SegF | SegG)
#define let_h (SegC | SegE | SegF | SegG)
#define let_I (SegC | SegB )
#define let_i (SegC) |