Российский государственный
профессионально-педагогический университет
Институт электроэнергетики и информатики
Кафедра микропроцессорной управляющей вычислительной техники
Отчёт по лабораторной работе №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).
Ссылка на скачивание - внизу страницы.