Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
56
Добавлен:
23.02.2015
Размер:
404.99 Кб
Скачать

5. Лабораторные задания

Задание № 1

Разработайте на языке Аассемблера микропроцессора КР580ВМ80 программу моделирования функции F1 (табл.1) методом создания в памяти полной таблицы истинности. Входные переменные введите из ячейки оперативной памяти, например 87F0h. Выходную переменную (функцию F1) выведите в младший разряд ячейки оперативной памяти, например 87F1h.

Введите программу в микроЭВМ. Проверьте правильность работы программы, задавая поочередно в ячейке памяти входные наборы, на которых функция F1 принимает единичные и нулевые значения.

Определите количество машинных тактов в программе моделирования функции F1.

Примечание.

В таблице 1 единичные наборы входных переменных представлены десятичной цифрой соответствующей двоичному коду. Например, функция F1 принимает единичное значение, когда все четыре переменные имеют нулевое значение, т.е. 0000. В таблице 1 этот двоичный четырех битный код представлен десятичной цифрой 0.

Выбор варианта осуществляется по последней цифре зачетной книжки или указывается преподавателем.

Задание№2

Разработайте на языке Ассемблера микропроцессора КР580ВМ80 программу моделирования функции F1 и F2 (табл.1) методом создания в памяти двух массивов: массива 1 входных наборов, на которых функции F1 или F2 принимают единичные значения, и массива 2 выходных значений этих функций. Входные переменные введите из ячейки оперативной памяти, например, 87F2h. Выходные переменные (функции F1 и F2) выведите соответственно в нулевой и первый разряды ячейки оперативной памяти, например 87F3h.

Введите программу в микроЭВМ. Проверьте правильность работы программы, задавая поочередно в ячейке памяти входные наборы, на которых функции F1 или F2 принимают единичные и нулевые значения.

Определите минимальное и максимальное количество машинных тактов в программе моделирования функций F1 и F2 и сравните время выполнения данной программы и программы моделирования в задании 1.

Таблица 1

Единичные наборы функций F1 или F2

п/п

Функция F1.

Функция F2.

п/п

Функция F1.

Функция F2.

1

0,1,3,5,7,12

0,3,4,5,11

17

0,1,2,3,12,14

3,7,12,13

2

1,2,6,7,11,13

3,5,7,11,13

18

1,4,6,8,11,13,15

0,1,3,4,8

3

2,3,5,8,10,14

2,4,8,9,10

19

2,4,6,8,12,14,15

8,10,12,13

4

3,4,5,6,7,8,9

1,3,9,11,12

20

0,4,5,7,11,12,13

3,4,7,8,9

5

1,4,5,7,9,10,15

0,1,5,6,9

21

7,8,9,10,11,12,14

5,7,8,10,1

6

6,7,8,9,10,11,12

4,6,8,11,14

22

3,4,6,8,11,12,13

6,8,9,11

7

5,6,7,8,9,10,11

3,5,9,12,13

23

1,2,3,5,7,8,9,14

0,1,3,4,5,

8

7,8,9,10,11,12,1

0,1,5,7,10

24

0,1,2,3,9,10,11,

1,4,5,9,11

9

8,9,10,11,13,14

2,4,9,11,12

25

2,4,8,12,13,15

0,2,6,8,12

10

2,3,4,5,6,7,9,15

4,6,8,9,15

26

6,7,8,9,10,11,13

0,4,6,7,11

11

0,1,2,3,4,5,6,15

5,6,11,10,13

27

7,8,9,11,12,13,14

2,5,7,9,15

12

3,4,5,6,10,12,14

1,3,4,9,12

28

1,4,7,10,11,12,15

9,10,11,14

13

8,9,10,11,12,13

6,7,8,11,14

29

5,7,9,10,11,12,13

4,5,6,7,9

14

0,2,3,4,6,8,15

4,5,6,8,14

30

2,3,6,9,11,13,15

1,2,4,6,9

15

2,4,6,8,10,12,14

0,2,6,10,15

31

4,5,6,11,12,14,15

0,1,2,4,6

16

1,3,5,7,9,11,13

7,8,9,11,13

32

8,9,10,11,12,13,1

1,7,8,9,13

h 7 6 5 4 3 2 1 00000000000h

g

f

e

d

c

b

a

7 6 5 4 3 2 1 0

Рис. 1

Таблица 2

Логическая функция

1

Y = (a  b)(c  h)(d  f)(e g)

2

Y = (a b)(c  h)(d  f)(e  g)

3

Y = (a  c)(dh)(g  e)(b  f)

4

Y = (a  c)(d  h)(ge)(b  f)

5

Y = (a  d)(e  c)(b  h)(g f)

6

Y = (ad)(e  c)(b  h)(g  f)

7

Y = (a  e)(df)(b  g)(c  h)

8

Y = (a  e)(d  f)(b g)(c  h)

9

Y = (a  f)(e  g)(b  h)(cd)

10

Y = (a f)(e  g)(b  h)(c  d)

Примечание: Чертой под идентификатором переменной обозначено логическое отрицание.

Задание № 3

Разработайте на языке Ассемблера микропроцессора КР580ВМ80А программу, моделирующую заданную преподавателем логическую функцию Y (табл. 2). Входные переменные разместите в регистре В микропроцессора, как показано на рис. 1. Выходную переменную выведите в младший разряд аккумулятора, т.е. если Y = 0, то содержимое аккумулятора (А) = 00h, а если Y = 1, то (А) = =01h. Исходные данные сохраните.

Введите программу в микроЭВМ. Проверьте правильность работы программы.

Поскольку логическая функция Y представляет собой конъюнкцию дизъюнкций, то Y = =0, если хотя бы одна из дизъюнкций равна нулю. Следовательно, алгоритм решения задачи сводится к последовательной проверке дизъюнкций на равенство нулю. При обнаружении первой дизъюнкции, равной нулю, в аккумулятор надо вывести число 00h и завершить программу. Если же окажется, что ни одна из дизъюнкций не равна нулю, то перед завершением программы

необходимо вывести в аккумулятор число 01h.

Задание № 4

Разработайте на языке ассемблера микропроцессора КР580ВМ80А программу, моделирующую заданную преподавателем логическую функцию Z (табл. 3). Входные переменные разместите в регистре В микропроцессора, как показано на рисунке 1. Выходную переменную выведите в младший разряд аккумулятора. Исходные данные сохраните.

Таблица 3

Логическая функция

1

Z = (a  b) (c  h) (d  f)  (e g)

2

Z = (a b) (c  h) (d  f)  (e  g)

3

Z = (a  c) (dh) (g  e)  (b  f)

4

Z = (a  c) (d  h) (ge)  (b  f)

5

Z = (a  d) (e  c) (b  h)  (g f)

6

Z = (ad) (e  c) (b  h)  (g  f)

7

Z = (a  e) (df) (b  g)  (c  h)

8

Z = (a  e) (d  f) (b g)  (c  h)

9

Z = (a  f) (e  g) (b  h)  (cd)

10

Z = (a f) (e  g) (b  h)  (c  d)

Примечание: Чертой под идентификатором переменной обозначено логическое отрицание

Введите программу в микроЭВМ. Проверьте правильность работы программы.

Логическая функция Z представляет собой дизъюнкцию конъюнкций, поэтому Z = 1, если хотя бы одна из конъюнкций равна единице. Следовательно, алгоритм решения задачи сводится к последовательной проверке конъюнкций на равенство единице. При обнаружении первой конъюнкции, равной единице, в аккумулятор надо вывести число 01h и завершить программу. Если же окажется, что ни одна из конъюнкций не равна единице, то перед завершением программы необходимо вывести в аккумулятор число 00h.

Задание № 5

В соответствии с заданиями 1-4 составите программы моделирования ФАЛ в системе команд микроконтроллеров семейства КМ1816ВЕ51. Входные переменные вводите через порт Р1. Значения логических функций, полученные при моделировании, выведите в порт Р2.

Проведите сравнительный анализ программ моделирования ФАЛ в системе команд МП К580ВМ80 и микроконтроллера КМ1816ВЕ51.

Примечание.

В приложении приведена система команд микроконтроллера КМ1816ВЕ51.

Разработку программ и их отладку можно выполнить в интегрированной среде разработки программного обеспечения – Pro View фирмы Franklin Software Inc. или на Aссемблере микроконтроллера КМ1816ВЕ51 ( на Aссемблере ASM51).

Соседние файлы в папке Лаб. 1-5,6,7,7а,8,9,10