Некоммерческое акционерное общество

АЛМАТИНСКИЙ УНИВЕРСИТЕТ ЭНЕРГЕТИКИ И СВЯЗИ

Кафедра «Электроника»

 

 

 

ЦИФРОВЫЕ УСТРОЙСТВА И МИКРОПРОЦЕССОРЫ

Методические указания к лабораторным работам

для студентов всех форм обучения специальности

5В071900 – Радиотехника, электроника и телекоммуникации

 

 

Алматы 2010 

СОСТАВИТЕЛИ: С.Н.Петрищенко, Г.Д.Мусапирова Цифровые устройства и микропроцессоры. Методические указания к лабораторным работам для студентов специальности 5В071900 – Радиотехника, электроника и телекоммуникации. - Алматы: АУЭС, 2010. – 20 с. 

 

Методические указания содержат рабочие задания к четырем лабораторным работам по основам программирования на языке ассемблера 8-разрядного микропроцессора i8085. Дана методика проведения и обработки данных, приведены перечень рекомендуемой литературы и контрольные вопросы.

Методические указания предназначены для студентов специальности 5В071900 - Радиотехника, электроника и телекоммуникации.

    

1 Лабораторная работа

 

Изучение микрокомпьютера на базе микропроцессора Intel 8085

 

Цель работы:

-  ознакомление и изучение работы компонентов микрокомпьютера, расположенного на плате  ЕВ-151;

-  приобретение навыков работы с микрокомпьютером.

 

1.1 Порядок выполнения работы

1.1.1 Изучите схему рисунка 1.1, выделив на плате ЕВ-151 основные компоненты микрокомпьютера:  микропроцессор i8085, триггер-защелку адреса (addresslatch), стираемое программируемое постоянное запоминающее устройство - СППЗУ (Erasable Programmable ReadOnly 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 VPU-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, которая показывает алгоритм вычисления суммы всех элементов массива.

Счетчик = Длине массива (05Н)

Указатель = базовый адрес (2160Н)

Сумма = 0

 
 


Рисунок 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 adrJC 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;                      Зацикливание программы

DELAYMVI 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