Помогите пожалуйста разобраться в прошивкой управление семисегментным индикатором (ассемблер).
Я не понимаю каким образам реализовано управление индикатором.
Нужно изменить ОА на ОК, объясните как это сделать или дайте ссылки.
Во-первых в базовые цепи нужны резисторы хотябы килоом. Первую ногу меги подтянуть через 10к к +5В.
Транзисторы взять другой проводимости (например bc847), коммутировать естественно на землю, а не на +5В.
Во всех кусках:
В подпрограмме ZOBRAZ похоже происходит перевод цифры в код, там тоже нужно все LDI REG,0bXXXXXXXX проинвертировать.
Код довольно длинный, и вроде не все используется (для некоторых подпрограмм нет прямых вызовов), возможно что-то упустил.
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Схему я привел для наглядности использование портов. У меня 12V семисегментники (из светодиодной ленты). Подключаю я их вот так:
( Синим обозначены порты мк, красным светодиоды)
И исходя из схемы происходит инверсия. Когда сегмент не используется он светится а когда используется гаснет.
(Не до конца гаснет, транзистор закрывается не полностью, думаю нужно пересчитать резисторы)
Что касается подпрограмм, Я удалял не нужные мне функции видимо не все почистил.
Позвольте с Вами не согласится, Engineer_Keen. В базы транзисторов действительно надо будет поставить сопротивления, но проводимость транзисторов менять не надо, надо их перевернуть. Коллектор к ОК индикатора, а эмиттер на землю. И тогда инвертировать PORTC не надо, надо инвертировать PORTD.
Это верно, да и нагрузка логичнее смотрится именно в коллекторе, просто если есть готовая плата, то там переделок чуть меньше. Но раз ТС сказал что схема для наглядности, то это неактуально...
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
SER R16
OUT DDRD,R16
OUT DDRC,R16
;nastavн port jako vэstup
;LDI REG,0xFF
;OUT SMER,REG
;LDI REG,0xFF
;OUT PORT,REG
;nastavн port jako vэstup
;LDI REG,0xFF
;OUT SMER2,REG
;LDI REG,0xFF
;OUT PORT2,REG
LDI REG,0b10111111 ;odchytн инslo mimo 0-9 a zobrazн jako "-"
RET
ZOBRAZ0:
LDI REG,0b11000000
RET
ZOBRAZ1:
LDI REG,0b11111001
RET
ZOBRAZ2:
LDI REG,0b10100100
RET
ZOBRAZ3:
LDI REG,0b10110000
RET
ZOBRAZ4:
LDI REG,0b10011001
RET
ZOBRAZ5:
LDI REG,0b10010010
RET
ZOBRAZ6:
LDI REG,0b10000010
RET
ZOBRAZ7:
LDI REG,0b11111000
RET
ZOBRAZ8:
LDI REG,0b10000000
RET
ZOBRAZ9:
LDI REG,0b10010000
RET