УМК управляет работой дисплея, реализованного на индикаторах HG1-HG4, через порт ввода-вывода DD1, в котором задействованы четыре линии порта А (А0-А3) и восемь линий порта В (В0-В7). Через порт А осуществляется переключение индикаторов путем вывода кода типа «бегущая единица», а через порт В выводятся требуемые символы. Все транзисторы в схеме применяются как электронные ключи и как усилители тока, а резисторы ограничивают значение тока через светодиоды и транзисторы.
Рис. 7.3
Таблицу соответствия между двоичными кодами, выводимыми в порт, и соответствующими им символами называют кодировочной таблицей. Кодировочная таблица для лабораторной установки приведена в табл. 7.1.
Таблица 7.1
Код |
00111111 |
00000110 |
01011011 |
01001111 |
01100110 |
01101101 |
Символ |
0 |
1 |
2 |
3 |
4 |
5 |
Таблица 7.1 (продолжение)
Код |
01111101 |
00000111 |
01111111 |
01101111 |
01110111 |
01110001 |
Символ |
6 |
7 |
8 |
9 |
А |
F |
Таблица 7.2
Адрес HEX |
Код HEX |
Метка |
Операция |
Комментарий |
0800 |
3E 89 |
MVI A,89h |
Загрузка управляющего кода порта |
|
0802 |
D3 93 |
OUT RUW |
Запись управляющего кода в порт |
|
0804 |
21 00 09 |
DISP: |
LHI H,0900h |
Начальный адрес дисплейного ОЗУ |
0807 |
06 04 |
MVI B,04h |
Счетчик циклов (4 индикатора) |
|
0809 |
0E 01 |
MVI C,01h |
Код для «бегущей единицы» |
|
080B |
CD 20 08 |
LOOP: |
CALL DELAY |
Подпрограмма выдержки времени |
080E |
7E |
MOV A,M |
Чтение кода из дисплейного ОЗУ |
|
080F |
D3 91 |
OUT PORTB |
Вывод символа на дисплей |
|
0811 |
79 |
MOV A,C |
Подготовка «бегущей единицы» |
|
0812 |
D3 90 |
OUT PORTA |
Включение текущего индикатора |
|
0814 |
23 |
INX H |
Переход к следующему символу |
|
0815 |
07 |
RLC |
Организация «бегущей единицы» |
|
0816 |
4F |
MOV C,A |
||
0817 |
05 |
DCR B |
Декремент счетчика циклов |
|
0818 |
C2 0B 08 |
JNZ LOOP |
Организация цикла переключения индикаторов |
|
081B |
C3 04 08 |
JMP DISP |
Бесконечный цикл |
|
Подпрограмма выдержки времени |
||||
0820 |
16 04 |
DELAY: |
MVI D,04h |
Число, задающее длительность выдержки времени |
0822 |
1E FF |
LP2: |
MVI E,FFh |
|
0824 |
00 |
LP1: |
NOP |
|
0825 |
1D |
DCR E |
Декремент счетчика циклов |
|
0826 |
С2 24 08 |
JNZ LP1 |
Организация внутреннего цикла |
|
0829 |
15 |
DCR D |
Декремент счетчика циклов |
|
082A |
C2 22 08 |
JNZ LP2 |
Организация внешнего цикла |
|
082D |
C9 |
RET |
Возврат |
Порядок выполнения работы
1. Введите в память УМК программу, приведенную в табл. 7.2.
2. Продумайте, как работает эта программа.
3. Введите в дисплейное ОЗУ, то есть по адресам 0900, 0901, 0902 и 0903, код 3Fh.
4. Запустите программу на выполнение и просмотрите результат на дисплее. Убедитесь, что выведены нули и изображение мерцает. Продумайте, почему наблюдается именно такой результат.
5. Выйдите из программы, нажав кнопку «СБ».
6. Уменьшите в два раза значение выдержки времени переключения индикаторов, задав в программе по адресу 0821 код 02h вместо 04h.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.