Российский государственный профессионально-педагогический университет
Лабораторная работа № 3
Изучение временных диаграмм выполнения команд ввода и вывода информации
Выполнили: Величко В.С.
Проверил: Мешков В.В.
Екатеринбург 2008
Цель работы: изучение особенностей функционирования микропроцессора при выполнении команд ввода и вывода информации, приобретение навыков программного управления клавиатурой и дисплеем УМК.
Команды ввода и выводы информации
Мнемоника команд |
Число байт |
Выполняемые действия |
Состав машинных циклов/количество тактов в циклах |
Команды ввода информации в аккумулятор из порта ввода |
|||
IN<В2> |
2 |
(А)←port<В2> |
1/4,2/3,6/3 |
Команды вывода информации в порт вывода из аккумулятора |
|||
OUT<В2> |
2 |
Port<В2>←(А) |
1/4,2/3,7/3 |
Временные диаграммы:
IN<B2>
OUT<B2>
Задание: Составить программу выдачи на дисплей название своей группы (программу составить в виде процедуры выдачи на дисплей существующего массива с заранее подготовленными кодами).
Листинг:
адрес |
код |
мнемоника |
комментарий |
0800 |
7F |
7F |
Семисегментный код “B” |
0801 |
78 |
78 |
Семисегментный код “t” |
0802 |
40 |
40 |
Семисегментный код “-“ |
0803 |
66 |
66 |
Семисегментный код “4” |
0804 |
3F |
3F |
Семисегментный код “0” |
0805 |
07 |
07 |
Семисегментный код “7” |
0810 |
01 |
01 |
Номер разряда дисплея |
0811 |
02 |
02 |
Номер разряда дисплея |
0812 |
04 |
04 |
Номер разряда дисплея |
0813 |
08 |
08 |
Номер разряда дисплея |
0814 |
10 |
10 |
Номер разряда дисплея |
0815 |
20 |
20 |
Номер разряда дисплея |
0820 |
01 |
LXI B, data8 |
BC←0800 |
0821 |
00 |
00 |
|
0822 |
08 |
08 |
|
0823 |
11 |
LXI D, data16 |
DE←0810 |
0824 |
10 |
10 |
|
0825 |
08 |
08 |
|
0826 |
26 |
MVI H, data8 |
H←06 |
0827 |
06 |
06 |
|
0828 |
0A |
LDAX B |
A←M(BC) |
0829 |
D3 |
OUT port |
F9←A |
082A |
F9 |
F9 |
|
082B |
1A |
LDAX D |
A←M(DE) |
082C |
D3 |
OUT port |
F8←A |
082D |
F8 |
F8 |
|
082E |
13 |
INX D |
DE=DE+1 |
082F |
03 |
INX B |
BC=BC+1 |
0830 |
25 |
DCR H |
H=H-1 |
0831 |
3E |
MVI A, data8 |
A←00 |
0832 |
00 |
00 |
|
0833 |
D3 |
OUT port |
F8←A |
0834 |
F8 |
F8 |
|
0835 |
C2 |
JNZ addr |
Перейти в 0828 |
0836 |
28 |
28 |
|
0837 |
08 |
08 |
|
0838 |
C3 |
JMP addr |
Перейти в 0820 |
0839 |
20 |
20 |
|
083A |
08 |
08 |
|
083B |
76 |
HLT |
Остановка |
Задание: Составить программу выдачи на какой либо разряд дисплея результатов опроса какой-либо линейки клавиш.
Листинг:
0800 |
00 |
00 |
Сохраняем данные после опроса клавиатуры |
0801 |
64 |
64 |
Строка №1 |
0802 |
06 |
3F |
Семисегментный код “0” |
0803 |
34 |
34 |
Строка №2 |
0804 |
5B |
66 |
Семисегментный код “4” |
0805 |
54 |
54 |
Строка №3 |
0806 |
4F |
7F |
Семисегментный код “8” |
0807 |
70 |
70 |
Строка №4 |
0808 |
66 |
39 |
Семисегментный код “C” |
080A |
21 |
LXI H, data 16 |
HL←0801 |
080B |
01 |
01 |
|
080C |
08 |
08 |
|
080D |
3E |
MVI A, data |
A←04 F8←A |
080E |
04 |
04 |
|
080F |
D3 |
OUT port |
|
0810 |
F8 |
F8 |
|
0811 |
DB |
IN port |
A←FA |
0812 |
FA |
FA |
|
0813 |
32 |
STA addr |
0800←A |
0814 |
00 |
00 |
|
0815 |
08 |
08 |
|
0816 |
0E |
MVI C, data |
C←04 |
0817 |
04 |
04 |
|
0818 |
CD |
CALL addr |
Вызов подпрограммы по адресу 0822 |
0819 |
22 |
22 |
|
081A |
08 |
08 |
|
081B |
0D |
DCR C |
C=C-1 |
081C |
C2 |
JNZ addr |
Если счетчик C≠0, то перейти в 0818 |
081D |
18 |
18 |
|
081E |
08 |
08 |
|
081F |
C3 |
JMP addr |
Переход в начало программы 080A |
0820 |
0A |
0A |
|
0821 |
08 |
08 |
|
0822 |
7E |
MOV A, M |
А←M(HL) |
0823 |
32 |
STA addr |
0830←A |
0824 |
30 |
30 |
|
0825 |
08 |
08 |
|
0826 |
23 |
INX H |
HL=HL+1 |
0827 |
7E |
MOV A, M |
А←M(HL) |
0828 |
32 |
STA addr |
0835←A |
0829 |
35 |
35 |
|
082A |
08 |
08 |
|
082B |
23 |
INX H |
HL=HL+1 |
082C |
3A |
LDA addr |
A←0800 |
082D |
00 |
00 |
|
082E |
08 |
08 |
|
083F |
D6 |
SUI data |
A←A-Byte 2 |
0830 |
00 |
Byte 2 |
|
0831 |
C2 |
JNZ addr |
Если результат вычитания не равен нулю, то перейти в 0838 |
0832 |
38 |
38 |
|
0833 |
08 |
08 |
|
0834 |
3E |
MVI A, data |
А←Byte 2 |
0835 |
00 |
Byte 2 |
|
0836 |
D3 |
OUT port |
F9←A |
0837 |
F9 |
F9 |
|
0838 |
C9 |
RET |
Выход из подпрограммы |
Задание: Модифицировать предыдущую программу таким образом, чтобы на четыре разряда дисплея последовательно выдавались результаты опроса клавиш выбранной линейки клавиатуры в порядке нажатия клавиш.
Листинг:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.