- •Лабораторные роботы по дисциплине «мп в си»
- •Лабораторная робота № 2 по дисциплине «мп в си»
- •4. Содержание протокола.
- •К афедра приборостроения Методические указания
- •1. Цель работы:
- •2. Теоретические сведения.
- •3. Ход выполнения работы.
- •4. Отчет по лабораторной работе должен содержать:
- •Цель работы:
- •Теоретические сведения.
- •Ход выполнения работы
- •Устройства ввода в мпс
- •1. Цель работы:
- •2. Теоретические сведения:
- •3. Ход выполнения работы.
- •Кафедра приборостроения Методические указания
- •Методические рекомендации
- •3. Ход выполнения работы
1. Цель работы:
1.1 Изучение работы устройств вывода информации.
1.2 Построение режима динамической индикации.
1.3 Корректировка программы показа информации в соответствии с индивидуальным заданием.
2. Теоретические сведения:
Выходным устройством, служащим для визуального наблюдения за внутренним состоянием системы, в микролаборатории являются 8 восьмисегментных индикаторов табло VD1-VD8. На них индуцируются входные данные, адреса памяти, данные памяти, содержимое регистров центрального процессора и флагов состояния в соответствии с операциями клавиатуры. Информация отображается на индикаторах в H-кодах. Индикация информации динамическая. Данные на индикаторы передаются из восьми старших ячеек ОЗУ с адресами 83F8-8FF при помощи прямого доступа к памяти без участия центрального процессора. В каждой из этих ячеек ОЗУ находится восьмисегментный код, соответствующий своему индикатору. Информация из этих ячеек посылается на индикаторы при помощи специальной схемы, которая обеспечивает динамический режим индикации.
Задача матобеспечения сводится к подготовке семисегментных кодов и засылке их в ячейки памяти 83F8…83FF. Ячейка 83F8 соответствует левому индикатору, 83FF – правому. (Динамическая индикация осуществляется в микропроцессорных системах не обязательно с помощью схемы. Сканирование индикаторов можно осуществлять и с помощью программы).
3. Ход выполнения работы.
Монитор микролаборатории содержит программу SEGCG (адрес=01С0), которая преобразует шестнадцатеричные коды 0, 1, 2…4, Е, F в семисегментные и заносит их в ячейки памяти 83F8…83FF. Исходные данные для этой программы должны находиться в ячейках 83F4…83F7. Каждый байт из этих ячеек соответствует паре индикаторов: содержимое ячейки 83F4 после преобразования высветится на двух левых индикаторах, содержимое ячейки 83F7 – на двух правых.
Задание 1:
В табл.1 приведена программа показа информации, использующая подпрограмму SEGCG. Введите программу и проверьте ее работу. На индикаторах должны последовательно высвечиваться символы 1, 2, 3, 4, A, B, C, D.
Таблица 1. Программа показа информации (SEGCG).
Адрес |
Содержимое |
Метки |
Команда |
Комментарии |
8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 800A 800B 800C 800D 800E 800F 8010 8011 8012 8013 8014 8015 8016 8017 |
3E 12 32 F4 83 3E 34 32 F5 83 3E AB 32 F6 83 3E CD 32 F7 83 CD C0 01 76 |
|
MVI A, 12
STA 83F4
MVI A, 34
STA 83F5
MVI A, AB
STA 83F6
MVI A, CD
STA 83F7
CALL SEGCG
HLT |
12->[A] Пересылка байта в аккумулятор A->83F4 Запись в ячейку содержимого аккумулятора
34->A
A->[83F5]
AB->A
A->F83F61
CD->A
A->[83F7]
Вызов SEGCG
Останов |
Задание 2:
В предыдущей программе мы использовали подпрограмму SEGCG для получения семисегментного кода. Но эта программа оперирует только с шестнадцатеричными символами 0…F, т. Е. не полностью использует возможности семисегментных индикаторов.
Можно формировать семимегментный код и получать на индикаторах любые символы, которые позволяют получить используемые в микролаборатории индикаторы. Как уже говорилось, семисегментные коды должны засылаться в определенные ячейки памяти. Каждый бит в этих ячейках соответствует определенному сегменту (рис. 1). Если бит 1, то соответствующий сегмент будет «гореть», и – наоборот.
Бит |
7 |
6 |
5 |
4 |
3 |
2 |
І |
0 |
Сегмент |
H |
G |
F |
E |
D |
C |
B |
A |
Рис. 1 Соответствие разрядов и сегментов
В табл.2 приведен листинг программы, которая выводит на индикаторы надпись 2011UA. Изменяя семисегментные коды, вы можете вывести на индикацию любую возможную надпись.
Таблица 2. Программа вывода символов на индикаторы без программы SEGCG.
Адрес |
Содержимое |
Метки |
Команда |
Комментарии |
8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 800A 800B 800C 800D 800E 800F 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 801A 801B 801C 801D 801E 801F 8020 8021 8022 8023 |
3E 5B 32 F8 83 3E 3F 32 F9 83 3E 06 32 FA 83 32 FB 83 3E 3E 32 FC 83 3E 77 32 FD 83 AF 32 FE 83 32 FF 83 76 |
|
MVI A, 5B
STA 83F8
MVI A, 3F
STA 83F9
MVI A, 06
STA 83FA
STA 83FB
MVI A, 3E
STA 83FC
MVI A, 77
STA 83FD
XRA A STA 83FE
STA 83FF
HLT |
Семисегментный код цифры 2 (2->A)
A->[83F8]
Семисегментный код цифры (0->A)
A->[83F9]
Семисегментный код цифры 1 (1->A)
A->[83FA]
A->[83FB]
Семисегментный код буквы “U”
A->[83FC]
Семисегментный код буквы “A”
A->[83FD]
0->A A->[83FE], гашение индикатора
A->[83FF], гашение индикатора
Останов |
Задание 3:
Внесите изменения в программу, заменив буквы UA номером вашей фамилии в списке группы.
Отчет по лабораторной работе должен содержать:
- Цель работы.
- Теоретические сведения (кратко, по выбору ).
- Рис. 1.
- Задания 1, 2, 3.
- Выводы по работе.
НТУУ «КПИ»
