реклама на сайте
подробности

 
 
> Индикатор на K1816BE51
misha88
сообщение Feb 27 2010, 12:46
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 81
Регистрация: 23-12-07
Пользователь №: 33 564



Посмотрите плиз схему и программу подключения светодиодного 4-разрядного индикатора.
Таблица знакогенератора размещена в рез.памяти мк.

CODE
;indpos–номер включеного катода
;Таблица знакогенератора(без децимальных точек)
digit: db C0h, F9h, A4h, B0h, 99h, 92h, 82h, F8h, 80h, 90h
; Таблица кодов для включения одного из четырех катодов
ipos : db 01h, 02h, 04h, 08h
; Инициализация параллельного интерфейса

display:

mov A, 0FFh
out BUS, A
mov A, @R1
add A, digit
mov A, @A
out P1, A
mov A, R2
out BUS, A
rl, A
mov R2, A
inc R1

repeat:

mov A, indpos
mov R1, number
add A, R1
mov R1, digit
add R1
mov A, R1
mov R1, ipos
add R1
mov A, 01h
dcr D
mov A, D
jnz repeat
mov D, 7
jmp repeat


Сообщение отредактировал Omen_13 - Feb 27 2010, 18:51
Причина редактирования: Оформление кода
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
at89c51ed2
сообщение Feb 27 2010, 21:44
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 81
Регистрация: 14-10-09
Пользователь №: 52 943



2 misha88
По описанию выходной ток низкого уровня для порта Р0 - 5 мА, что вполне достаточно для засветки современных эффективных LED индикаторов (даже в динамической индикации со скважностью 4), но не больших размеров. Выходные токи высокого уровня менее 1 мА, поэтому не годятся для засветки. Поэтому единственной альтернативой (не усложняющей схемотехнику) является применение индикаторов с ОА. Для этого Вам придётся просто проинвертировать коды знакогенератора и выбора знакоместа и сменить полярность ключевых транзисторов с n-p-n на p-n-p с одновременным подключением эммитеров последних не к "земле", а к питанию. В остальном всё правильно - базовые резисторы и резисторы между сегментами и выводами порта Р0. Ещё бы я добавил pull-up резисторы для баз транзисторов. Теперь о программе. Программой это назвать нельзя, это скорее подпрограммы вывода данных на сегменты и знакоместа. Которые не понятно как, в какое время и откуда вызываются. Не понятно, что такое R1, R2, D. Точнее, ясно, что это регистры, но для каких целей? Если уж не пишите об этом в начале (как про знакогенератор), то хотя бы комментарии к командам пишите, что бы Вам самому было понятно. Из какого ассемблера Вы взяли команду "out BUS, A"? Судя по Вашей программе здесь должно быть MOV P0, A. Теперь команда "add A, digit". Вы описываете digit как массив, поэтому при выполнении такой команды (если компилятор не выдаст ошибки) к аккумулятору будет прибавлен нулевой элемент массива, т.е. к числу, которое Вы собираетесь высветить на индикаторе Вы прибавите код знакогенератора 0! Вам же нужно сделать нечто другое: сначала запомнить начальный адрес массива знакогенератора, потом к этому адресу прибавить само число, которое хотите засветить (т.е. сместиться в массиве знакогенератора на само индицируемое число). Далее. В ассемблере 51 не существует команды mov A, @A, косвенная адресация только через R0 и R1! Команды out P1, A не существует! Есть команда MOV P1, A. Что такое регистр D? Нет такого в asm51. Нет команды dcr, есть DEC (декремент). Почему D инициализируется с 7!? Вы что развёртку делаете по сегментам, а не по знакоместам? Тогда это не для Вашей схемы и не для индикаторов с ОА! Вам нужно считать всего 4 раза - ровно столько, сколько индикаторов! В своё время мне очень помогало рисование алгоритма в виде графа (блок-схемы). Может и Вам это поможет. Удачи.
2 DpInRock
Цитата
А вообще, тому преподу, который такие задания дает - надо лицо бить.

А за что, позвольте полюбопытствовать? laughing.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- misha88   Индикатор на K1816BE51   Feb 27 2010, 12:46
- - stells   по схеме: резисторы нужны в базы транзисторов, а к...   Feb 27 2010, 12:59
- - misha88   м?   Feb 27 2010, 13:19
- - stells   угу   Feb 27 2010, 13:23
|- - misha88   Цитата(stells @ Feb 27 2010, 18:23) угу ...   Feb 27 2010, 13:29
|- - ReAl   Цитата(misha88 @ Feb 27 2010, 15:29) заче...   Feb 27 2010, 13:44
- - SSerge   Вторая схема уже лучше, но: порты у 1816ВЕ51 очень...   Feb 27 2010, 15:17
|- - stells   Цитата(SSerge @ Feb 27 2010, 18:17) ток о...   Feb 27 2010, 16:07
- - misha88   вопрос хороший. чем только   Feb 27 2010, 15:53
|- - rezident   Цитата(misha88 @ Feb 27 2010, 20:53) вопр...   Feb 27 2010, 16:08
- - misha88   а с прогой что?   Feb 27 2010, 19:04
- - DpInRock   http://incubator.amasoft.ru/content/view/293/475/ ...   Feb 27 2010, 21:29
- - vvs157   Цитата(misha88 @ Feb 27 2010, 15:46) Табл...   Feb 28 2010, 11:03
- - rezident   Сообщение модератора. Обсуждение способов и методо...   Mar 1 2010, 16:47
- - misha88   Проверьте меня) Программа поразрядной обработки ...   Mar 3 2010, 13:16
|- - SSerge   Цитата(misha88 @ Mar 3 2010, 19:16) Прове...   Mar 3 2010, 14:58
- - misha88   Переделал   Mar 14 2010, 18:10
|- - vvs157   Цитата(misha88 @ Mar 14 2010, 21:10) Пере...   Mar 14 2010, 18:43
- - misha88   Для динамической индикации группы символов удобно ...   Mar 14 2010, 19:00
|- - vvs157   Цитата(misha88 @ Mar 14 2010, 22:00) м?Не...   Mar 14 2010, 19:51
|- - misha88   Цитата(vvs157 @ Mar 15 2010, 00:51) Не-а....   Mar 14 2010, 19:52
- - misha88   так??   Mar 15 2010, 04:53
|- - ae_   Цитата(misha88 @ Mar 15 2010, 12:53) так?...   Mar 15 2010, 08:30
- - misha88   нА другой порт чтоли? P1? не догоняю. вывод порта ...   Mar 15 2010, 08:41
|- - AHTOXA   Цитата(misha88 @ Mar 15 2010, 13:41) не д...   Mar 15 2010, 09:04
- - misha88   Догнал)))))))))))))))   Mar 15 2010, 09:07
- - misha88   С прогой не могу разобраться....   Mar 15 2010, 12:31


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 23:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.01726 секунд с 7
ELECTRONIX ©2004-2016