Очевидно, что можно получить любые задержки – 4, 5, 7, 8, 9, 10 и т.д.
Задача № 2.
Составить программу для получения временной задержки равной Тзад=1 сек.
Решение:
Решение данной задачи возможно на основе организации счета, циклического участка программы. В данном случае задача сводится к выбору числа каскадов счетчика, определению требуемых коэффициентов пересчета и введению дополнительных задержек, для обеспечения требуемой точности.
Решим задачу на основе однокаскадного (однобайтного) счетчика.
Время задержки вычислим согласно выражения
Исходя из заданной величины задержки равной 1 сек и частоты работы процессора 2 МГц получаем:
1. Время задержки равно 2*106Т, где Т – период следования импульсов задающего генератора процессора.
2. Преобразуем выражение(2) к виду:
3. Очевидно, что основной вклад в реализацию выражения вносит первый член, следовательно возьмем максимальным Кс=251(h’fb), получаем 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 (h’ff). Получаем 31*256=7936. 16000-7936=8064.
9. . 8064 - (251*15) = 251Тдс. Следовательно, Тдс=17, следовательно 251*(17+15)=8032.
10. 8064-8032=32. Следовательно, Тдк=18.
Получаем в результате Кв=256 (h’ff), Кс=251(h’fb), Тдв=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 |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.