- •ПОДКЛЮЧЕНИЕ К МИКРОЭВМ ДИСПЛЕЯ СЕМИСЕГМЕНТНЫХ ИНДИКАТОРОВ
- •Кафедра информационно-измерительной техники
- •ПОДКЛЮЧЕНИЕ К МИКРОЭВМ ДИСПЛЕЯ СЕМИСЕГМЕНТНЫХ ИНДИКАТОРОВ
- •Таблица 2.1
- •Таблица 2.2
- •Рис. 2.5. Схема подключения дисплея к микроЭВМ
- •Программа 2
- •4. Рекомендации по выполнению задания
- •Список рекомендуемой литературы
- •ПОДКЛЮЧЕНИЕ К МИКРОЭВМ ДИСПЛЕЯ СЕМИСЕГМЕНТНЫХ ИНДИКАТОРОВ
13
4. Рекомендации по выполнению задания
Первое задание по п. 3.1 необходимо выполнять в следующей последовательности.
4.1.Включить микроЭВМ УМПК – 80М в сеть.
4.2.Нажать клавишу отыскания адреса OтA. При этом в ячейках дисплея с номерами 2 – 5 должны индицироваться сегменты d.
4.3.Ввести в микроЭВМ программу 1 с адреса 0800.
4.4.Осуществить пуск программы нажатием клавиши П.
4.5.Последовательно устанавливая коды на входном устройстве (адрес 05h) и считывая информацию с дисплея заполнить табл. 4.1 и табл. 4.2.
|
|
Таблица 4.1 |
|
|
|
|
|
Символ |
Код во входном |
Шестнадцатеричный |
|
|
устройстве |
код |
|
1 |
2 |
3 |
|
0 |
|
|
|
1 |
|
|
|
2 |
|
|
|
3 |
|
|
|
4 |
|
|
|
5 |
|
|
|
6 |
|
|
|
7 |
|
|
|
8 |
|
|
|
9 |
|
|
|
А |
|
|
|
В (малое) |
|
|
|
С |
|
|
|
D (малое) |
|
|
|
Е |
|
|
|
F |
|
|
|
ПРОБЕЛ |
|
|
|
H |
|
|
|
L |
|
|
|
Y |
|
|
|
P |
|
|
|
П, Л (малое) |
|
|
|
О (малое нижн.) |
|
|
|
_ (нижн. черта) |
|
|
|
-(средн. черта)
(верхн. черта) Все сегменты
14
|
|
|
|
|
|
|
|
Окончание табл. 4.1 |
||||
|
|
|
|
|
|
|
|
|
|
|
||
Символ |
|
|
Код во входном |
Шестнадцатеричный |
||||||||
|
|
|
|
|
устройстве |
|
код |
|
|
|||
1 |
|
|
|
|
2 |
|
|
3 |
|
|
||
R (малое) |
|
|
|
|
|
|
|
|
|
|||
1 (левая) |
|
|
|
|
|
|
|
|
|
|||
О (малое верхн.) |
|
|
|
|
|
|
|
|
|
|||
R (малое верхн.) |
|
|
|
|
|
|
|
|
|
|||
" " (верхн.) |
|
|
|
|
|
|
|
|
|
|||
" " (нижн.) |
|
|
|
|
|
|
|
|
|
|||
" " |
|
|
|
|
|
|
|
|
|
|
|
|
" = " (нижн.) |
|
|
|
|
|
|
|
|
|
|||
" U " (нижн.) |
|
|
|
|
|
|
|
|
|
|||
"└┐" |
|
|
|
|
|
|
|
|
|
|
|
|
"┌┘" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 4.2 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Адрес |
08Е4 |
|
|
|
|
Адрес |
|
08Е0 |
|
08Е1 |
|
08Е2 |
08Е3 |
|
08Е5 |
|
||
Индекс |
|
0 |
|
Л |
|
А |
Ч |
А |
|
H |
|
|
Код B(16)B |
|
|
|
|
|
|
|
F |
|
|
|
|
Индекс |
|
|
|
L |
|
I |
A |
|
|
|
|
|
Код B(16)B |
|
|
|
|
|
|
|
А |
|
|
|
|
Индекс |
|
|
|
|
|
Ч |
H |
|
Л |
|
||
Код B(16)B |
|
|
|
|
|
|
|
|
|
|
|
|
Второе задание по п. 3.2 необходимо выполнить в следующей последовательности.
4.6.Ввести программу 2 в соответствии с текстом программы.
4.7.Нажать клавишу отыскания адреса OтА, ввести адрес 08Е0 и машинный код, соответствующий последнему символу первого слова табл. 4.2, и записать в ОЗУ (кл. 3пУВ).
4.8.Аналогично п. 4.7 ввести в адреса 08Е1–08Е5 машинные коды слов табл.
4.2и записать в ОЗУ (кл. 3пУв).
4.9.Нажать клавишу отыскания адреса OтA, ввести адрес 0800 и осуществить пуск программы нажатием клавиши "П".
Третье задание по п. 3.3 необходимо выполнить в следующей последовательности.
15
4.10.Установить в программе время включенного состояния цифры на каждой ячейке дисплея, равное 1с (время задается программой задержки); проследить изменения в информации, выводимой на дисплей.
Задание по пункту 3.4 выполнять, пользуясь приведенными ниже алгоритмами и пояснениями.
4.11.Пусть длина дисплея N символов (в данном конкретном случае 6), а длина сообщения – М символов, причем N<M. Таким образом, в квазистатическом режиме (на самом деле – динамическом режиме с временным мультиплексированием) на дисплее может отображаться только N символов из М возможных. Т.е. можно считать дисплей “окном”, через которое последовательно, блоками по N символов, выводится все сообщение.
Для получения эффекта БС необходимо в течение времени Т=Т1 обеспечить вывод блока из N символов (N1, N2, N3, N4, N5, N6), а затем, по окончании времени Т1 – блока из символов N2, N3, N4, N5, N6, N7 в течение Т2=Т, затем – блока из символов N3, N4, N5, N6, N7, N8 в течение Т3=Т и т.д. При правильно подобранном времени Т визуально создается эффект перемещения сообщения по дисплею в заданном направлении (как правило, справа налево). Регулируя значение параметра Т с входного порта, легко добиться управления скоростью перемещения строки. Подпрограмма временной задержки для БС может отличаться от подпрограммы DLY.
Перемещение строки по дисплею в непрерывном режиме аналогично круговому движению символов по окружности цилиндра, на которой для наблюдателя доступна только часть из N позиций. Таким образом, сообщение оказывается как бы закольцованным и в режиме непрерывного вывода первые символы сообщения следуют сразу за последними символами. Следовательно, чтобы исключить сливание первых и последних символов необходимо добавить n служебных пробелов, и тогда полная длина сообщения будет L=n+M. Кроме того, в программе необходимо контролировать длину выводимого сообщения. Это возможно двумя способами:
1)Задание фиксированного значения L
2)Введение в формат строки служебного символа “End of Line”
(EOL). В качестве последнего может использоваться любой код. Второй вариант является предпочтительным, так как позволяет работать
со строками произвольной длины, не заботясь о предварительном задании числа символов строки.
В этом случае полная длина строки:
L'=L+EOL=M+n+EOL,
где М – число символов строки;
n – число пробелов в конце (или начале строки – по выбору программиста);
EOL – служебный символ “конец строки”.
16
4.12. Алгоритм подпрограммы вывода «окна» (window) приведен на рис. 2.7.
Задать указатель на ячейку дисплея (IndPtr)
По текущему CharPtr (указателю на
элемент массива символов)
проверить символ на EOL
EOL? |
да |
Переместить CharPtr на |
|||
|
|
начало строки |
|||
|
|
|
|
||
нет |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Вывести символ на табло |
|
|
|
||
по указателю IndPtr |
|
|
|
||
|
|
|
|
|
|
Подпрограмма временной задержки
Указать на следующий индикатор и сдвинуть указатель IndPtr
нет
Вышли из табло?
да
Выход из подпрограммы
Рис.2.7. Алгоритм подпрограммы Window
4.13. Алгоритм основной программы БС приведен на рис. 2.8.
|
17 |
|
Начало |
Загрузить указатель массива символов CharPtr |
|
значением «начало строки» (начальным адресом) |
|
Ввести с входного порта P_IN параметр скорости |
|
движения строки (счетчик повторов «окна» CNT) |
|
Сохранить указатель на начало «окна» |
|
|
CharPtr |
|
Вывести «окно» (Window) |
Восстановить указатель на начало «окна» |
|
|
CharPtr |
да |
Повторить |
|
вывод «окна» |
|
(по CNT) |
|
нет |
Сместить указатель CharPtr на начало |
|
|
«окна» (сдвинуть «окно») |
|
нет |
|
CharPtr=EOL? |
|
да |
|
Рис. 2.8. Алгоритм программы БС |
