Особенности функционирования микропроцессоров: Методическая разработка для проведения практического занятия, страница 2

Очевидно, что можно получить любые задержки – 4, 5, 7, 8, 9, 10 и т.д.

Задача № 2.

Составить программу для получения временной задержки равной Тзад=1 сек.

Решение:

Решение данной задачи возможно на основе организации счета, циклического участка программы. В данном случае задача сводится к выбору числа каскадов счетчика, определению требуемых коэффициентов пересчета и введению дополнительных задержек, для обеспечения требуемой точности.

Решим задачу на основе однокаскадного (однобайтного) счетчика.

Время задержки вычислим согласно выражения

Исходя из заданной величины задержки равной 1 сек и частоты работы процессора 2 МГц получаем:

1.  Время задержки равно 2*106Т, где Т – период следования импульсов задающего генератора процессора.

2.  Преобразуем выражение(2) к виду:

3.  Очевидно, что основной вклад в реализацию выражения вносит первый член, следовательно возьмем максимальным Кс=251(hfb), получаем 256*250=64000.

4.  2*106/64000=31,25. Следовательно, выбираем Тдв=31-15=16. Получаем 64000*31=1984000.

5.  2*106-1,984*106=16000.

6.  Методом подбора возможно найти оставшиеся части выражения. Исходя из вышеизложенного  Кс=251. Следовательно, 16000/251=63.745. Однако, нами выбрано Тдв=16. Выражение во вторых скобках 16+15=31. Следовательно, нам необходимо выбрать два слагаемых Кв и Тдс.

7. 

8.  Выбираем Кв=256 (hff). Получаем 31*256=7936. 16000-7936=8064.

9.  . 8064 - (251*15) = 251Тдс. Следовательно, Тдс=17, следовательно 251*(17+15)=8032.

10.  8064-8032=32. Следовательно, Тдк=18.

Получаем в результате Кв=256 (hff), Кс=251(hfb), Тдв=16, Тдс=17, Тдк=18

Мнемоники

ЯП "Ассемблер"

яч.ОЗУ

Машинный

код

Комментарии

mvib, h'ff

00

01

 3е

 ff

РгB:=h’ff.

Начальная установка счетчика Кв=256

mvic, h'fb

02

03

 06

 fb

РгC:=h’fb.

Начальная установка счетчика Кс=251

m1: nop

04

00

Команды обеспечивающие задержку равную Тдв=16 = 4*4.

nop

05

00

nop

06

00

nop

07

00

dcrb

08

РгВ:=РгВ-1

jnzm1

09

0a

0b

C2

04

00

если результат ¹ 0, перейти к меткеm1 ,иначе к следующей команде.

pop d

0c

d1

Команды обеспечивающие задержку равную Тдc=17

adi h’00

0d

0e

c6

00

dcr c

0f

РгС:=РгС-1

jnz m1

10

11

12

C2

04

00

если результат ¹ 0, перейти к меткеm1 ,иначе к следующей команде.

XTHL

13

e3

Команда обеспечивающая задержку равную Тдк=18

hlt

14

76

ОСТАНОВ

2. Анализ работы МП при выполнении арифметических команд

Задача №3.

Осуществить выполнение программы счета, обеспечивающую выполнение основной функции N=20 (h’14) раз.

Решение.

Мнемоники

ЯП "Ассемблер"

яч.ОЗУ

Машинный

код

Комментарии

mvi b, h'14

00

01

 3е

 14

РгB:=h’14.

Начальная установка счетчика N=20

mvi d,h’01

02

03

16

01

РгD:=h’01

m1: add d

04

81

Участок программы обеспечивающий выполнение основной функции

dcr c

05

РгС:=РгС-1

jnz m1

06

07

08

C2

04

00

если результат ¹ 0, перейти к меткеm1 ,иначе к следующей команде.

hlt

09

76

ОСТАНОВ

Задача №4.

Осуществить выполнение программы счета, обеспечивающую выполнение основной функции N=25000 (h’) раз.

Решение.

Для решения данной задачи необходимо обеспечить функционирования нескольких счетчиков с заданными коэффициентами пересчета каждого. Если задаться 2 счетчиками с коэффициентами Кв и Кс (используются регистры В и С), то можно получить выражение:

Получаем Кв=168 (h’a8) и Кс=98(h’62)

Мнемоники

ЯП "Ассемблер"

яч.ОЗУ

Машинный

код

Комментарии

mvi b, h'a8

00

01

 3е

 94

РгB:=h’a8.

Начальная установка счетчика N=168

mvi с, h'62

02

03

 3е

 62

РгС:=h’62.

Начальная установка счетчика N=98

mvi d,h’01

04

05

16

01

РгD:=h’01

m1: add d

06

81

Участок программы обеспечивающий выполнение основной функции

dcr b

07

РгВ:=РгВ-1

jnz m1

08

09

0a

C2

04

00

если результат ¹ 0, перейти к меткеm1 ,иначе к следующей команде.

dcr c

0b

РгC:=РгC-1

jnzm1

0c

0d

0e

C2

04

00

если результат ¹ 0, перейти к меткеm1 ,иначе к следующей команде.

hlt

0f

76

ОСТАНОВ

3. Анализ работы МП при выполнении логических команд

Задача 5.

Реализовать переключательную функцию m=8 аргументов, записанную в ДНФ в следующем виде:

.

Осуществить перебор всех возможных входных комбинаций, с записью результатов в ячейки памяти.

Методика решения задачи

Значения каждого из двух дизъюнктивных членов y1(x) и y2(x) определим следующим образом:

1.  Маскирование. Данная операция подразумевает установку в нулевое состояние аргументов, которые не входят в данный член yi(x).

Данная операция производится с помощью логического умножения на соответствующую маску, а именно γ1 и γ2.

Для нашего примера получаем следующие маски:

γ1=10101110;

γ2=01110001.

.

Y1(x)

Y2(x)

Х1

Х2

Х3

Х4

Х5

Х6

Х7

Х8

Х1

Х2

Х3

Х4

Х5

Х6

Х7

Х8

1

0

1

0

1

1

1

0

0

1

1

1

0

0

0

1