Некоммерческое акционерное общество
АЛМАТИНСКИЙ УНИВЕРСИТЕТ ЭНЕРГЕТИКИ И СВЯЗИ
Кафедра «Электроника»
ЦИФРОВЫЕ УСТРОЙСТВА И МИКРОПРОЦЕССОРЫ
Методические указания к лабораторным работам
для студентов всех форм обучения специальности
5В071900 – Радиотехника, электроника и телекоммуникации
Алматы 2010
СОСТАВИТЕЛИ: С.Н.Петрищенко, Г.Д.Мусапирова Цифровые устройства и микропроцессоры. Методические указания к лабораторным работам для студентов специальности 5В071900 – Радиотехника, электроника и телекоммуникации. - Алматы: АУЭС, 2010. – 20 с.
Методические указания содержат рабочие задания к четырем лабораторным работам по основам программирования на языке ассемблера 8-разрядного микропроцессора i8085. Дана методика проведения и обработки данных, приведены перечень рекомендуемой литературы и контрольные вопросы.
Методические указания предназначены для студентов специальности 5В071900 - Радиотехника, электроника и телекоммуникации.
1 Лабораторная работа
Изучение микрокомпьютера на базе микропроцессора Intel 8085
Цель работы:
- ознакомление и изучение работы компонентов микрокомпьютера, расположенного на плате ЕВ-151;
- приобретение навыков работы с микрокомпьютером.
1.1 Порядок выполнения работы
1.1.1 Изучите схему рисунка 1.1, выделив на плате ЕВ-151 основные компоненты микрокомпьютера: микропроцессор i8085, триггер-защелку адреса (address – latch), стираемое программируемое постоянное запоминающее устройство - СППЗУ (Erasable – Programmable Read – Only Memory - EPROM), оперативное запоминающее устройство – ОЗУ ( Random Access Memory – RAM), дешифратор ( Port Decoder), порты Ввода (Input Port) и Вывода (Output Port) и их триггеры-защелки Input Latch и Output Latch, а также адрессную шину (ADDRESS BAS) и двунаправленную шину данных (DATA BUS).
На схеме имеются кнопки intr (прерывание), Reset (сброс) и зуммер (Buzzer).
Рисунок 1.1
1.1.2 Для приведения платы ЕВ-151 в рабочее состояние необходимо произвести соединения, как показано на рисунке 1.1.
1.1.3 Для запуска нужной программы на плате ЕВ-151 необходимо:
а) установить номер нужной программы в двоичном коде на переключателях порта Ввода D6-D0;
б) переключатель D7 поставить в положение «1»;
в) нажать на кнопку RESET;
г) вернуть D7 в положение «0».
1.1.4 Запустить программу №1 (код 0000001), согласно пункту 1.1.3. Этот запуск позволяет повторить положение переключателей D7-D0 порта Ввода 0 на светодиодах D7-D0 порта Вывода 0. Проверьте это, поменяв положения нескольких входных переключателей D0-D7.
1.1.5 Для того, чтобы получить обратный код положения переключателей D7-D0 порта ввода 0 на светодиодах D7-D0 порта Вывода 0, необходимо запустить программу №2 (код 0000010), согласно пункту 1.1.3 и наблюдать полученный результат.
1.1.6 Запустить программу №3 (код 0000011), согласно пункту 1.1.3. Эта программа позволяет считывать данные с переключателей порта Ввода 0 и циклически сдвигать их влево на четыре позиции. Проделайте этот эксперимент и заполните выходные данные таблицы 1.1.
Т а б л и ц а 1.1
Входные данные |
Выходные данные |
11110000 |
|
00001111 |
|
1.1.7 Запустить программу №4 (код 0000100), согласно пункту 1.1.3. Эта программа решает логическую задачу, блок-схема решения которой представлена на рисунке 1.2.
Рисунок 1.2
Заполните таблицу истинности для различных комбинаций D0 и D1 и определите тип логического элемента, реализующего данную функцию.
1.1.8 Запустить программу №5 (код 0000101), согласно пункту 1.1.3. Эта программа решает арифметическую задачу, согласно блок-схеме рисунка 1.3.
Рисунок 1.3
Арифметически сложить следующие числа и записать результаты:
а) 1111 + 1001 = ;
б) 0101 + 1011 = ;
в) 1101 + 1101 = ;
г) 0011 + 1000 = .
1.1.9 Запустить программу №6 (код 0000110), согласно пункту 1.1.3. Эта программа осуществляет обработку прерываний, согласно блок-схеме рисунка 1.4.
Рисунок 1.4
Из рисунка 1.4 видно, что двоичный счетчик передает серию двоичных импульсов на порт вывода 1. Кроме того, с помощью кнопки прерывания можно остановить работу счетчика на две секунды.
Установите переключатели порта Ввода 0 в одно из положений, указанного преподавателем согласно таблице 1.2. Убедиться, что данные передаются на порт Вывода 2 через 2 секунды после вашего нажатия на кнопку прерывания.
Т а б л и ц а 1.2
№ эксперимента |
Входные данные 7654*3210 |
Выходные данные 7654*3210 |
1 |
1010*1010 |
1010*1010 |
2 |
0101*0101 |
0101*0101 |
3 |
1100*1100 |
1100*1100 |
4 |
0011*0011 |
0011*0011 |
1.1.10 Запустить программу №7 (код 0000111), согласно пункту 1.1.3. Эта программа считывает положение переключателей порта Ввода 0 и использует этот двоичный сигнал для создания тонального звукового сигнала, согласно таблице 1.3.
Т а б л и ц а 1.3
№ эксперимента |
Входные данные |
Период, мкс |
Частота, кГц |
1 |
00000000 |
123 |
8,13 |
2 |
00000001 |
123 |
8,13 |
3 |
00000011 |
170 |
5,88 |
4 |
00000111 |
270 |
3,7 |
5 |
00001111 |
465 |
2,15 |
6 |
00011111 |
840 |
1,19 |
7 |
00111111 |
1600 |
0,6 |
8 |
01111111 |
3050 |
0,3 |
9 |
11111111 |
6300 |
0,2 |
Установите переключатели в указанные в таблице 1.3 положения и отметьте, что создаются различные тональные сигналы.
1.1.11 Запустить программу №8 (код 00001000), согласно пункту 1.1.3. Эта программа считывает положение переключателей порта Ввода 0 и передает звуковому устройству (зуммеру) после получения трех прерываний, как показано на рисунке 1.5.
Выберите любую комбинацию положений переключателей. Нажмите кнопку прерывания. Выберите вторую комбинацию переключателей. Нажмите кнопку прерывания. Выберите третью комбинацию переключателей. Нажмите кнопку прерывания. Теперь вы должны услышать созданную из трех тонов вашу мелодию.
Во избежание ошибок, при нажатии держите кнопку прерываний не дольше одной секунды. Следите также за значением порта Вывода, каждый раз, когда вы нажимаете кнопку.
Повторите действия для других значений переключателей.
Рисунок 1.5
1.2 Контрольные вопросы
1.2.1 Сколько соединительных проводников имеют шина данных и шина адресов?
1.2.2 Сколько адресов может быть выбрано адресной шиной?
1.2.3 Какая разница между внутренней и внешней памятью данных?
1.2.4 Какие основные функции выполняет микропроцессор?
1.2.5 Из каких основных частей состоит микрокомпьютер?
1.2.6 С какими устройствами соединен порт ввода: памятью, центральным процессором, портом вывода?
1.2.7 С какими устройствами соединен порт вывода: памятью, центральным процессором, портом ввода, устройствами вывода (цифро-аналоговые преобразователи, светодиоды и реле?
1.2.8 Что сделать для того, чтобы порт ввода работал как порт 3?
1.2.9 Когда можно подключиться к выходам логических схем ТТЛ с тремя состояниями?
2 Лабораторная работа
Знакомство с платой ЕВ-152. Решение простейших программ на микрокомпьютере
Цель работы:
- освоить навыки подключения платы ЕВ-152 к плате ЕВ-151;
- научиться просматривать и изменять ячейки памяти и регистры микропроцессора i8085;
- выполнять простейшие программы на микрокомпьютере платы ЕВ-151.
2.1 Порядок выполнения работы
2.1.1 Используя длинные провода, соедините плату ЕВ-152 в следующем порядке:
a) +12 V. EB-152 - +12 V. PU-2000;
b) + 5 V. EB-152 - + 5 V. PU-2000;
c) -12 V. EB-152 - -12 V. PU-2000;
d) GND EB-152 - Ground PU-2000;
e) установите Sig.ANAL/KB+DISP переключатель (S1) в положение KB+DISP;
f) соедините клемму TX. EB-152 с клеммой RX. EB-151;
g) соедините клемму RX. EB-152 с клеммой TX. EB-151.
2.1.2 Убедитесь, что дисплей платы ЕВ-152 показывает EbHt.
2.1.3 Нажмите и отпустите кнопку Reset на плате ЕВ-151. Если все работает правильно, то дисплей платы ЕВ-152 должен показывать Eb-151.
2.1.4 Просмотрите несколько адресов управляющей программы, которая входит в состав ПЗУ (постоянное запоминающее устройство), объемом 8 Кбайт. Для этого нажмите на клавишу MEM и введите адрес, например, 1000Н. После нажатия на клавишу ENTER слева от адреса появится содержимое ячейки 0ЕН. При повторном нажатии на клавишу ENTER появится содержимое следующей ячейки по адресу 1001Н и так далее. Просмотрите и запишите несколько ячеек, адреса которых лежат в разрешенном для управляющей памяти диапазоне (0000Н-1FFFH) и представлены в таблице 2.1.
Т а б л и ц а 2.1
Адреса ячеек памяти |
|||||||||
0889H |
088AH |
088BH |
088CH |
088DH |
1F27H |
0988H |
0B24H |
018CH |
009CH |
2.1.5 Запишите в ячейки памяти ОЗУ (оперативное запоминающее устройство с диапазоном адресов 2100H-27FFH), адреса и данные которых показаны в таблице 5. Для этого нажмите клавишу МЕМ, введите нужный адрес, нажмите на ENTER и введите данные. Нажмите на ENTER и введите данные по следующему адресу и так далее.
Т а б л и ц а 2.2
Адрес |
2100Н |
2101Н |
2102Н |
2103Н |
2104Н |
21005Н |
Данные |
AA |
AB |
AC |
AD |
AE |
AF |
После записи данных в ОЗУ, просмотрите эти ячейки по алгоритму, описанному выше.
2.1.6 Запишите программу, представленную в таблице 2.3, для чего:
a) нажмите клавишу RESET на плате ЕВ-151;
b) нажмите на клавишу MEM на плате ЕВ-152;
c) введите адрес 2100Н;
d) нажмите клавишу ENTER.
Т а б л и ц а 2.3
Адрес |
Машинный код |
Мнемокод |
2100 |
3F |
MVI A, FFH |
2101 |
FF |
|
2102 |
FF |
RST 7 |
Для выполнения программы нажмите клавишу GO и введите адрес, с которого начинается программа. Нажмите ENTER.
Команда FFH, находящаяся по адресу 2102Н, является контрольной точкой. Эта инструкция останавливает программу и выдает bP 2103H. Указанный адрес является содержимым регистра, который называется программный счетчик.
Просмотрите в регистре А записанное туда число FFH, для чего надо нажать на клавиши REG и 1.
2.1.7 Запишите программу, представленную в таблице 2.4, по алгоритму пункта 2.1.6. Эта программа вычисляет обратный код числа и сохраняет результат вычисления.
Т а б л и ц а 2.4
Адрес |
Машкод |
Мнемокод |
Операнд |
Комментарий |
2100Н |
3AH |
LDA |
2130H |
Загрузить данные из адреса 2130Н |
2101Н |
30H |
|
|
|
2102Н |
21H |
|
|
|
2103Н |
2FH |
CMA |
|
Обратный код числа |
2104Н |
32H |
STA |
2131H |
Сохранить по адресу 2131Н |
2105Н |
31H |
|
|
|
2106Н |
21H |
|
|
|
2107Н |
FFH |
RST7 |
|
Возврат в управляющую программу |
Исходные данные вводятся, согласно таблице 2.5. Зафиксируйте полученные результаты.
Т а б л и ц а 2.5
2130Н |
00Н |
3EH |
C9H |
FAH |
1EH |
2131Н |
|
|
|
|
|
2.1.8 Введите и выполните программу, представленную в таблице 2.6 , используя исходные данные таблицы 2.5.
Т а б л и ц а 2.6
Адрес |
Машкод |
Мнемокод |
Операнд |
Комментарий |
2100Н |
21AH |
LXI H |
2130 |
Загрузить данные из адреса 2130Н |
2101Н |
30H |
|
|
|
2102Н |
21H |
|
|
|
2103Н |
7FH |
MOV A,M |
|
Считывание данных |
2104Н |
2FH |
CMA |
|
Обратный код числа |
2105Н |
23H |
INX H |
|
Увеличение на 1 числа в HL |
2106Н |
77H |
MOV M,A |
|
Сохранение данных |
2107Н |
FFH |
RST7 |
|
Возврат в управляющую программу |
2.1.9 Произвести сложение двух чисел по программе, представленной в таблице 2.7 и исходных данных таблицы 2.8.
Т а б л и ц а 2.7
Адрес |
Машкод |
Мнемокод |
Операнд |
Комментарий |
2100Н |
21AH |
LXI H |
2130H |
|
2101Н |
30H |
|
|
|
2102Н |
21H |
|
|
|
2103Н |
7EH |
MOV A,M |
|
Считать первое число |
2104Н |
23H |
INX H |
|
|
2105Н |
86H |
ADD M |
|
Прибавить второе число |
2106Н |
23H |
INX H |
|
|
2107Н |
77H |
MOV M,A |
|
Сохранение результата |
2108H |
FFH |
RST 7 |
|
|
Т а б л и ц а 2.8
2130Н |
32Н |
58H |
B8H |
2131Н |
15H |
43H |
7DH |
2131H |
|
|
|
2.1.10 Выполнить программу, представленную в таблице 2.9 и предназначенную для выполнения логической операции ANA M. Исходные данные представлены в таблице 2.8.
Т а б л и ц а 2.9
Адрес |
Машкод |
Мнемокод |
Операнд |
Комментарий |
2100Н |
21AH |
LXI H |
2130H |
|
2101Н |
30H |
|
|
|
2102Н |
21H |
|
|
|
2103Н |
7EH |
MOV A,M |
|
Считать первое число |
2104Н |
23H |
INX H |
|
|
2105Н |
A6H |
ANA M |
|
Логическое сложение со вторым числом |
2106Н |
23H |
INX H |
|
|
2107Н |
77H |
MOV M,A |
|
Сохранение результата |
2108H |
FFH |
RST 7 |
|
|
2.2 Контрольные вопросы
2.2.1 Какое назначение у клавиши MEM?
2.2.2 Какое назначение у клавиши REG?
2.2.3 Какое назначение у команды RST 7?
2.2.4 При тактовой частоте микропроцессора 2 МГц вычислите время, необходимое при выполнении программы, представленной в таблице 2.4, если известно, что команда LDA содержит 13 циклов, команда CMA – 4 цикла, команда STA – 3 цикла, а команда RST 7 – 12 циклов.
2.2.5 Дать комментарий действия логических команд ANA r, ANA M, ANI data?
2.2.6 Дать комментарий назначения и действия команд LDA adr, CMA и STA adr?
2.2.7 Дать комментарий назначения и действия команд LXI rp, data 16; INX rp и MOV r,M ?
2.2.8 Дать комментарий действия командам арифметической операции сложения: ADD r; ADI,data; ADD M; ADC r; ADC M и ACI data.
3 Лабораторная работа
Обработка массива данных микропроцессором i8085
Цель работы:
- понимать и использовать команды i8085 для выполнения программы с массивами данных.
3.1 Порядок выполнения работы
3.1.1 Используя длинные провода, соедините плату ЕВ-152 в следующем порядке:
a) +12 V. EB-152 - +12 V. PU-2000;
b) + 5 V. EB-152 - + 5 V. PU-2000;
c) -12 V. EB-152 - -12 V. PU-2000;
d) GND EB-152 - Ground PU-2000;
e) установите Sig.ANAL/KB+DISP переключатель (S1) в положение KB+DISP;
f) соедините клемму TX. EB-152 с клеммой RX. EB-151;
g) соедините клемму RX. EB-152 с клеммой TX. EB-151.
3.1.2 Убедитесь, что дисплей платы ЕВ-152 показывает EbHt.
3.1.3 Нажмите и отпустите кнопку Reset на плате ЕВ-151. Если все работает правильно, то дисплей платы ЕВ-152 должен показывать Eb-151.
3.1.4 Введите программу счета, показанную в таблице 3.1. Эта программа считает до семи и затем сохраняет это число.
Т а б л и ц а 3.1
Адрес |
Машкод |
Мнемокод |
Операнд |
Комментарий |
2100Н |
3EH |
MVI A |
00H |
Сброс сумматора на 0 |
2101Н |
00H |
|
|
|
2102Н |
3CH |
INR A |
|
Увеличение значения сумматора на 1 |
2103Н |
FEH |
CPI |
07H |
Проверка на окончание счета |
2104Н |
07H |
|
|
|
2105Н |
FFH |
RST 7 |
|
Точка прерывания |
2106Н |
CAH |
JZ |
210CH |
Переход, если сумматор = 7 |
2107Н |
0CH |
|
|
|
2108H |
21H |
|
|
|
2109H |
C3H |
JMP |
2102H |
Повтор операции |
210AH |
02H |
|
|
|
210BH |
21H |
|
|
|
210CH |
32H |
STA |
2115H |
Сохранение сумматора (7) |
210DH |
15H |
|
|
|
210EH |
21H |
|
|
|
210FH |
FFH |
RST 7 |
|
Конец программы |
Как видно из таблицы 3.1, адрес 2105Н содержит контрольную точку, чтобы при остановке в ней программы можно было просмотреть содержимое ячеек памяти или регистров.
Нажмите на клавиши REG и «1» и просмотрите содержимое аккумулятора.
Нажмите на клавиши REG и «8», просмотрите содержимое регистра признаков F. Убедитесь, что флаг нуля (шестой бит) равен нулю, показывая, что содержимое аккумулятора не равно 7.
Нажмите на клавиши GO и ENTER. По адресу 2106Н находится команда JZ (переходить, если нуль), которая переводит на адрес 2109Н, чтобы повторить программу.
Повторяйте выполнение программы до тех пор, пока содержимое аккумулятора не увеличится до 7. Адрес соответствующей контрольной точки – 2109Н, а результат (07) будет храниться в ячейке 2115Н.
3.1.5 В таблице 3.2 показана программа, которая помещает содержимое ячеек памяти 2160Н и 2161Н в порядке убывания, то есть большие элементы идут раньше.
Т а б л и ц а 3.2
Адрес |
Машкод |
Мнемокод |
Операнд |
Комментарий |
2100Н |
3AH |
LDA |
2160H |
Считывание первого элемента |
2101Н |
60H |
|
|
|
2102Н |
21H |
|
|
|
2103Н |
47H |
MOV B,A |
07H |
Сохранение первого элемента |
2104Н |
3AH |
LDA |
2161H |
Сохранение второго элемента |
2105Н |
61H |
|
|
|
2106Н |
21H |
|
|
|
2107Н |
B8H |
CMP B |
|
Сравнение элементов |
2108H |
00H |
NOP |
|
Нет операции |
2109H |
DAH |
JC |
2113H |
Выход из программы |
210AH |
13H |
|
|
|
210BH |
21H |
|
|
|
210CH |
32H |
STA |
2160H |
Сохранение элементов массива |
210DH |
60H |
|
|
|
210EH |
21H |
|
|
|
210FН |
78H |
MOV A,B |
00H |
Перенос элемента |
2110Н |
32H |
STA |
2161H |
Сохранение второго элемента |
2111Н |
61H |
|
|
|
2112Н |
21H |
|
|
|
2113Н |
FFH |
RST 7 |
|
Возврат к УП |
Из таблицы 3.2 видно, что программа тестирует флаг переноса, используя команду JC. Причем, если флаг переноса установлен в положение 1, то выполнение программы возобновляется в адресе, определенном командой JC. Если флаг переноса сброшен на 0, то выполнение продолжается со следующей последовательной команды.
Команда может быть заменена RST 7 с целью просмотра регистров.
3.1.6 Изучите блок-схему рисунка 3.1, которая показывает алгоритм вычисления суммы всех элементов массива.
|
Рисунок 3.1
В таблице 3.3 представлена программа, реализующая алгоритм, представленный на рисунке 3.1.
Т а б л и ц а 3.3
Адрес |
Машкод |
Мнемокод |
Операнд |
Комментарий |
2100Н |
06H |
MVI B |
05H |
Счетчик = 5 |
2101Н |
05H |
|
|
|
2102Н |
21H |
LXI H |
2160H |
Определение базового адреса |
2103Н |
60H |
|
|
|
2104Н |
21H |
|
|
|
2105Н |
97H |
SUB A |
|
Сброс значения суммы на 0 |
2106Н |
86H |
ADD M |
|
Сумма = Сумма + Данное |
2107Н |
32H |
STA |
2165H |
Сохранение данного |
2108H |
65H |
|
|
|
2109H |
21H |
|
|
|
210AH |
05H |
DCR B |
|
Уменьшение У |
210BH |
97H |
SUB A |
|
Сброс сумматора |
окончание таблицы 3.3
210CH |
B8H |
CMP B |
2160H |
Проверка окончания счета |
210DH |
CAH |
JZ |
2117H |
Если да, закончить программу |
210EH |
17H |
|
|
|
210FН |
21H |
|
|
|
2110Н |
3AH |
LDA |
2165H |
Если нет, вычислить сумму |
2111Н |
65H |
|
|
|
2112Н |
21H |
|
|
|
2113Н |
23H |
INX H |
|
Увеличение указателя на 1 |
2114Н |
C3H |
JMP |
2106H |
|
2115Н |
06H |
|
|
|
2116Н |
21H |
|
|
|
2117Н |
FFH |
RST 7 |
|
Возврат к управляющей программе |
Запустите программу, используя в качестве начальных данных значения из таблицы 3.4. Произведите вычисления и внесите в таблицу 3.4 недостающее значение.
Т а б л и ц а 3.4
Адрес |
2160Н |
2161Н |
2162Н |
2163Н |
2164Н |
2165Н |
Данные |
A3H |
11H |
27H |
5BH |
32H |
|
3.2 Контрольные вопросы
3.2.1 Представить флаговые биты регистра F, объяснить их назначение.
3.2.2 Дать комментарий действия команд управления JMP adr, JC adr и JZ adr.
3.2.3 Дать комментарий назначения и действия команд CMP B, NOP, MVI B и SUB A.
3.2.4 Составить алгоритм вычисления программы, представленной в таблице 3.2.
3.2.5 Какие параметры необходимы для обработки массива данных?
3.2.6 Укажите назначение регистров общего назначения H и L.
3.2.7 Укажите назначение аккумулятора и регистров общего назначения B, C, D и E.
4 Лабораторная работа
Изучение работы программ с помощью эмулятора микропроцессора
Цель работы:
- приобретение навыков анализа работы простейших программ с помощью эмулятора микропроцессора i8085
4.1 Порядок выполнения работы:
4.1.1 Найти в папке к580 файл эмулятора d580.exe и запустить его. На экране монитора появится меню.
4.1.2 С помощью клавиш F10 и два раза «Ввод» выбрать имя программы , представленной на рисунке 4.1, и загрузить ее в эмулятор.
LXI H,10H; Загрузка указателя памяти
MOV A,M; Пересылка байта из памяти в А
INX H; Увеличение содержимого Н на 1
ADD M; A А + M(HL)
DAA; Если АС=1,то А+06,если С=1,то ст.тетрада+06
INX H; Инкремент регистровой пары Н
MOV M,A; Пересылка байта из А в память
HLT; Команда останова программы
Рисунок 4.1
4.1.3 Исследовать работу программы 1, предварительно записав в ячейки памяти (Alt-M) с адресами 10h и 11h числа 37h и 48h. Запустить программу на выполнение в пошаговом режиме с помощью клавиши F7. При исследовании работы программы ответить на следующие вопросы:
1) Сколько машинных тактов затрачено на выполнение программы ?
2) В какой ячейке памяти будет находится результат сложения чисел ?
3) Какое число будет в аккумуляторе до выполнения команды десятичной коррекции DAA?
4) Какие команды изменяют содержимое регистра признаков ?
Изменив исходные числа, прогнать программу в автоматическом режиме (клавиша F9).
По завершении исследования с помощью клавиши F10 выйти из программы и загрузить для исследования следующую программу.
4.2.3 В предыдущем примере использовалась только косвенная адресация при обращении к памяти. Исследовать работу программы, использующей команды с прямой адресацией, как показано на рисунке 4.2.
LXI H,10H; HL 0010H
LDA 11H; A M(0011H)
ADD M; A A + M(HL)
DAA; Десятичная коррекция аккумулятора
STA 12H; М(0012Н) А
HLT Останов
Рисунок 4.2
4.2.4 Проверить работу программы, представленной на рисунке 4.3, записывающей в аккумулятор значение байтовой информации, снятой с 20 датчиков в ОЗУ пользователя, начиная с адреса 100Н.
LXI H,100H; Начальный адрес массива
MVI B,20; Число элементов
XRA A; Очистка аккумулятора
M1: CMP M; Если А=М,то Z=1;если А<М,то С=1
JNC M2; Переход,если А больше
MOV A,M; Обмен,если А меньше или равно
M2: INX H; Наращивание адреса
DCR B; Декремент счетчика числа элементов
JNZ M1; Цикл обработки массива
HLT;
Рисунок 4.3
Заполнить ячейки памяти, представляющие небольшой массив с адресами 100h – 113h, произвольной информацией (не выше числа 99h), как показано в программе 3. Убедитесь, что после выполнения программы в автоматическом режиме , максимальное число попадет в аккумулятор.
4.2.5 Проверить работу программы, представленной на рисунке 4.4, реализующей двоично- десятичный счетчик в аккумуляторе, скорость инкрементирования которого зависит от времени выполнения подпрограммы временной задержки DELAY.
LXI SP,20H; Загрузка указателя стека
M2: ADI 1; Инкремент аккумулятора
DAA; Десятичная коррекция
CALL DELAY; Вызов подпрограммы
JMP M2; Зацикливание программы
DELAY: MVI B,2; Установка счетчика
M1: DCR B; Декремент счетчика
JNZ M1; Если не нуль, повторить
RET Возврат из подпрограммы
Рисунок 4.4
Прогоняя программу в пошаговом режиме, проследите за изменением содержимого аккумулятора, регистра В, указателя стека SP, стека, признаков нуля и четности.
4.2 Контрольные вопросы
4.2.1 Объясните алгоритм работы команды десятичной коррекции DAA.
4.2.2 Что такое указатель стека и как он работает?
4.2.3 Что сохраняется в стеке при вызове подпрограммы?
4.2.4 На сколько изменится содержимое указателя стека при вызове подпрограммы?
4.2.5 Что происходит при выполнении команды RET?
4.2.6 Что такое подпрограмма и как организовать ее вызов?
Список литературы
1. Цифровая и вычислительная техника: Учебник под ред. Э.В.Евреинова.- М.: Радио и связь, 1991. - 464 с.
Пухальский Г.И. Проектирование микропроцессорных систем. Учебное пособие для вузов.- СПб.: Политехника, 2001.–544 с.
3. Калабеков Б.А. Цифровые устройства и микропроцессорные системы. Учебник для техникумов связи.- М.: Горячая линия –Телеком, 2000. – 336 с.
4. Гольденберг Л.М. и др. Цифровые устройства и микропроцессорные системы. Задачи и упражнения: Учебное пособие. - М.: Радио и связь,1992 . - 256 с.
5. Бойко В.И., Гуржий А.Н., Жуйков В.Я. и др. Схемотехника электронных устройств. Микропроцессоры и микроконтроллеры.- СПб.: БХВ – Петербург, 2004. – 464 с.
6. Петрищенко С.Н. Цифровые устройства и микропроцессоры. Конспект лекций для студентов специальности 050719 – Радиотехника, электроника и телекоммуникации дистанционной формы обучения. – Алматы: АИЭС, 2006. – 36 с.
Содержание
1 Лабораторная работа 2 Лабораторная работа 3 Лабораторная работа 4 Лабораторная работа Список литературы |
3 9 13 17 20 |