Российский государственный
профессионально-педагогический университет
Институт электроэнергетики и информатики
Кафедра микропроцессорной управляющей вычислительной техники
Отчёт по лабораторной работе №3
«Изучение временных диаграмм выполнения команд ввода и вывода информации»
Выполнил: Меньшенина О.А.
Проверил: Мешков В.В.
Екатеринбург, 2008
Цель работы: изучение особенностей функционирования микропроцессора при выполнении команд ввода и вывода информации, приобретение навыков программного управления клавиатурой и дисплеем УМК.
Общие сведения
Команды ввода и вывода информации обеспечивают информационный обмен данными между микропроцессором и устройствами ввода-вывода (портами вода/вывода) микропроцессорной системы. В табл. представлены команды указанной группы.
|
Мнемоника команд |
Число байт |
Выполняемые действия |
Состав машинных циклов/количество тактов в циклах |
|
Команды ввода информации в аккумулятор из порта ввода |
|||
|
IN<В2> |
2 |
(А)<=port<В2> |
1/4,2/3,6/3 |
|
Команды вывода информации в порт вывода из аккумулятора |
|||
|
OUT<В2> |
2 |
Port<В2><=(А) |
1/4,2/3,7/3 |
где <B2> адрес канала порта: F8 – канал А, F9 – канал В, FA – канал C.
Задание1: Составить программу выдачи на дисплей название своей группы (программу составить в виде процедуры выдачи на дисплей существующего массива с заранее подготовленными кодами).
|
Адрес ячейки памяти |
Код |
Комментарий |
|
0800 |
01 |
1 позиция |
|
0801 |
7f |
B |
|
0802 |
02 |
2 позиция |
|
0803 |
78 |
t |
|
0804 |
03 |
3 позиция |
|
0805 |
40 |
– |
|
0806 |
04 |
4 позиция |
|
0807 |
66 |
4 |
|
0808 |
05 |
5 позиция |
|
0809 |
06 |
1 |
|
080a |
06 |
6 позиция |
|
080b |
7d |
6 |
Блок-схема

Блок-схема подпрограммы задержки

Листинг программы
|
0810 |
Lxi H |
21 |
HL←0800 |
|
0811 |
00 |
00 |
|
|
0812 |
08 |
08 |
|
|
0813 |
Mvi C |
0e |
С←06 |
|
0814 |
06 |
06 |
|
|
0815 |
Mov A,M |
7e |
А←M(HL) |
|
0816 |
Out |
d3 |
Вывести A на порт А |
|
0817 |
F8 |
f8 |
|
|
0818 |
Inr L |
2c |
L=L+1 |
|
0819 |
Mov A,M |
7e |
А←M(HL) |
|
081a |
Out |
d3 |
Вывести A на порт B |
|
081b |
F9 |
f9 |
|
|
081c |
Call |
cd |
Вызов подпрограммы задержки по адресу 0827 |
|
081d |
27 |
27 |
|
|
081e |
08 |
08 |
|
|
081f |
Inr L |
2c |
L=L+1 |
|
0820 |
Dcr C |
0d |
C=C-1 |
|
0821 |
Jz |
ca |
Перейти к 0800, если флаг z=1 |
|
0822 |
00 |
00 |
|
|
0823 |
08 |
08 |
|
|
0824 |
Jmp |
c3 |
Иначе перейти к 0815 |
|
0825 |
15 |
15 |
|
|
0826 |
08 |
08 |
|
|
Подпрограмма задержки |
|||
|
0827 |
Mvi D |
16 |
D←ff |
|
0828 |
ff |
ff |
|
|
0829 |
Mvi E |
1e |
E←04 |
|
082a |
04 |
04 |
|
|
082b |
Dcr E |
1d |
E=E-1 |
|
082c |
Jnz |
c2 |
Перейти к 082b, если флаг z=0 |
|
082d |
2b |
2b |
|
|
082e |
08 |
08 |
|
|
082f |
Dcr D |
15 |
D=D-1 |
|
0830 |
Jnz |
c2 |
Перейти к 0829, если флаг z=0 |
|
0831 |
29 |
29 |
|
|
0832 |
08 |
08 |
|
|
0833 |
Ret |
c9 |
Вернуться из подпрограммы |
Задание 2: Составить программу выдачи на какой-либо разряд дисплея результатов опроса какой-либо линейки клавиатуры.
Ячейки памяти 0800-080F зарезервированы для семисегментных кодов чисел 0-F.
|
Адрес ячейки памяти |
Семисегментный код |
Символ |
|
0800 |
3f |
0 |
|
0801 |
06 |
1 |
|
0802 |
5b |
2 |
|
0803 |
4f |
3 |
|
0804 |
66 |
4 |
|
0805 |
6d |
5 |
|
0806 |
7d |
6 |
|
0807 |
07 |
7 |
|
0808 |
7f |
8 |
|
0809 |
6f |
9 |
|
080A |
77 |
A |
|
080B |
7c |
B |
|
080C |
39 |
C |
|
080D |
5e |
D |
|
080E |
79 |
E |
|
080F |
71 |
F |
Блок-схема

Блок-схема процедуры сравнения

Блок-схема процедуры вывода символа

Блок-схема подпрограммы задержки

Листинг программы
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.