Реферат: Микросхема ПЗУ в управляющем автомате с МПУ выбрана неверно
Реферат: Микросхема ПЗУ в управляющем автомате с МПУ выбрана неверно
Московский
Авиационный
институт
(технический
университет)
КАФЕДРА 403
Расчетно-пояснительная
записка
к курсовой
работе по дисциплине
Вычислительные
системы и
микропроцессорная
техника
выполнил:
студент гр.
04-417
Левин О.А.
проверил:
Герасимов
А.Л.
МОСКВА 1997
Содержание
Анализ задания
- 2
Комбинационный
вариант -
2
Алгоритм
работы устройства
- 4
Микропрограмма
- 5
Управляющий
автомат с жесткой
логикой - 5
Управляющий
автомат с МПУ
- 8
Выбор элементной
базы - 10
Составление
программы -
12
Задание
ВАРИАНТ №17
Задается входной
код D{1:32}. Спроектировать
вычислитель,
который определяет
номер разряда
самой первой
и самой последней
единиц, стоящих
между нулями.
Предусмотреть
реакцию проектируемого
устройства
в случае отсутствия
таких сигналов.
Анализ
и уточнение
задания
Очевидно, что
в тридцатидвухразрядном
коде единица,
стоящая между
двумя нулями
ни при каких
обстоятельствах
не может находится
ни в первом ни
в тридцать
втором разряде
кода.
Тактовая
синхронизация
будет осуществляться
внешним генератором
тактовых импульсов
с частотой 20
МГц
По
окончании
обработки
входного кода
должен вырабатываться
специальный
сигнал, позволяющий
следующему
устройству
считать выходные
данные с проектируемого
устройства.
Обобщенная
функциональная
схема проектируемого
устройства
может быть
представлена
в следующем
виде:
D{1:32}
B{1:6}
F
C{1:6}
СТРОБ
УСЧИТ
Рисунок
1
Обобщенная
функциональная
схема устройства
Комбинационный
вариант устройства
Функциональная
схема комбинационного
устройства,
осуществляющего
параллельную
обработку
входного кода
представлена
на рисунке 2.
Входной код
D{1:32}
разбивается
на пересекающиеся
элементы по
три разряда:
D’{1:3},
D’{2:4},...D’{30:32}. Крайние
разряды D’
проходят через
инверторы DD1,
DD3, DD4, DD6, DD7, DD9,...DD88, DD90.
Проинвертированные
крайние разряды
вместе с центральным
разрядом элемента
поступают на
логическую
схему И, на
выходе которой
в случае если
D{i-1, i,
i+1}=010 сформируется
высокий логический
уровень напряжения,
приводящий
в действие
соответствующий
элемент индикации
на внешней
панели устройства.
При визуальном
контроле внешней
панели устройства
по расположению
работающих
элементов
индикации можно
определить
номер разряда
первой и последней
единиц, стоящих
между нулями.
Для реализации
данной схемы
потребуется
20 микросхем
1533ЛН1 (6 логических
элементов НЕ),
10 - КР1533 (3 элемента
3И), 4 - КР531ЛЕ7 (2 элемента
5 ИЛИ-НЕ), 1 - 1533ЛИ6 (2
элемента 4И), 1
- 1533ЛИ1 (4 элемента
2И).
Основным недостатком
данной схемы
является
невозможность
дальнейшей
обработки
выходной информации.
НАЧАЛО
НЕТ
СТРОБ
РЕГ В {1:32}=D{1:32}
РЕГ А{1:32}=РЕГ
В{1:32}
СЧЕТ Ц1=2
ДА
РЕГ
А{1}=0
&
РЕГ А{2}=1
&
РЕГ А{3}=0
НЕТ
РЕГ А{1:32}=РЕГ
А{2:32}.0
СЧЕТ Ц1=СЧЕТ Ц1
+1
НЕТ
СЧЕТ
Ц1=32
ДА
РЕГ А{1:32}=РЕГ
В{1:32}
СЧЕТ
Ц2=31
ДА
РЕГ А{32}=0
&
РЕГ А{31}=1
&
РЕГ А{30}=0
НЕТ
РЕГ А{1:32}=РЕГ
А{1:31}.0
СЧЕТ Ц=СЧЕТ Ц
-1
НЕТ
СЧЕТ
Ц=1
B {1:6}=СЧЕТ
Ц1; С
{1:6}=СЧЕТ Ц2
КОНЕЦ
Рисунок 3
Блок-схема
алгоритма
работы устройства
Микропрограмма
Переменные:
Входные:
D{1:32} - входной
код
строб
Выходные:
Внутренние:
РЕГ
А{1:32}, РЕГ В{1:32} - регистры
СЧЕТ
Ц1{1:6}, СЧЕТ Ц2{1:6} - счетчики
циклов
Признаки:
Программа
М1
ЕСЛИ НЕ Р1
ТО М1
(СТРОБ) РЕГ
В{1:32}=D {1:32}
(УЗАП1) РЕГ
А{1:32}=РЕГ В {1:32}
(УН1) СЧЕТ Ц1
{1:6}
=2
М2
ЕСЛИ Р2 ТО
М3
(УСДВ1) РЕГ
А{1:32}=РЕГ А{2:32}.0 }
(УСЧ1) СЧЕТ
Ц1
{1:6}=СЧЕТ Ц1
{1:6}+1 } УЭ1
ЕСЛИ НЕ Р4
ТО М2
М3
(УЗАП1) РЕГ
А{1:32}=РЕГ В {1:32}
(УН2) СЧЕТ Ц2
{1:6} =31
М4
ЕСЛИ Р3
ТО М5
(УСДВ2) РЕГ
А{1:32}=0.РЕГ А{1:31} }
(УСЧ2) СЧЕТ
Ц2 {1:6}=СЧЕТ Ц2 {1:6}-1 }
УЭ2
ЕСЛИ НЕ Р5
ТО М4
М5
(УСЧИТ1) В{1:6}=СЧЕТ
Ц1 {1:6} }
(УСЧИТ2) С{1:6}=СЧЕТ
Ц2 {1:6} } УЭ3
КОНЕЦ (ИДТИ
К М1)
Как видно из
текста микропрограммы,
некоторые
сигналы можно
объединить
и заменить
эквивалентными
сигналами.
Функциональная
схема операционной
части устройства
приведена на
рисунке 4.
Разработка
управляющего
автомата с
жесткой логикой
Управляющий
автомат с жесткой
логикой будет
реализовываться
в виде классического
конечного
автомата Мили
или Мура. На
основании
блок-схемы
алгоритма
работы устройства
определим
количество
состояний для
каждого типа
автомата. Обозначим
состояния
автомата Мура
буквой S,
а состояния
автомата Мили
- S’.
Как видно из
рисунка 5, у автомата
Мура будет
шесть состояний,
в то время как
у автомата Мили
- лишь четыре.
НАЧАЛО
S0
S’0
0 Р1
УН 1, УЗАП
1 S1
0
S’1
1
Р2
УЭ 1 S2
УЗАП
1, УН 2
S3
0
Р4
S’2
УЗАП 1 УН 2
S3
0
S’3
1
Р3
УЭ 2 S5
УЗАП
1 УЭ 3
S4
0
Р5
S’4
S6
УЗАП 1
УЭ 3
КОНЕЦ
S’0
Рисунок 5.
Состояния
конечных автоматов
Мили и Мура.
Таким образом,
определим, что
управляющее
устройство
необходимо
синтезировать
в виде конечного
автомата Мили
Р1/—
P1/УН
1, УЗАП 1
Р2/УЭ
1 Р4/УН 2, УЗАП
1 Р3/УЭ 2
S0
S1 S2
S3 S4
Р4/—
Р5/—
Р2/УН
2, УЗАП 1
Р3/УЭ 3
Р5/УЭ 3
Граф состояний
автомата Мили.
|
S0
|
S1
|
S2
|
S3
|
S4
|
Q1
|
0
|
0
|
0
|
1
|
1
|
Q2
|
0
|
0
|
1
|
1
|
0
|
Q3
|
0
|
1
|
1
|
1
|
1
|
Таблица
1
Кодированная
таблица состояний.
ВХОД |
S0
|
S1
|
S2
|
S3
|
S4
|
P1
|
S1/УН
1,УЗАП1
|
|
|
|
|
НЕ Р1 |
S0/-
|
|
|
|
|
Р2 |
|
S3/
УН 2, УЗАП1
|
|
|
|
НЕ Р2 |
|
S2/УЭ
1
|
|
|
|
Р3 |
|
|
|
S0/УЭ
3
|
|
НЕ Р3 |
|
|
|
S4/УЭ
2
|
|
Р4 |
|
|
S3/УН
2, УЗАП 1
|
|
|
НЕ Р4 |
|
|
S1/-
|
|
|
P5
|
|
|
|
|
S0/УЭ
3
|
НЕ P5
|
|
|
|
|
S3/-
|
Таблица
2
Таблица
переходов и
выходов
ВХОД |
0
0 0
|
0
0 1
|
0
1 1
|
1
1 1
|
1
0 1
|
P1
|
0
0 1/УН 1, УЗАП
1
|
|
|
|
|
НЕ Р1 |
0
0 0/-
|
|
|
|
|
Р2 |
|
1
1 1/ УН 2,
УЗАП
1
|
|
|
|
НЕ Р2 |
|
0
1 1/УЭ 1
|
|
|
|
Р3 |
|
|
|
0
0 0/УЭ 3
|
|
НЕ Р3 |
|
|
|
1
0 1/УЭ 2
|
|
Р4 |
|
|
1
1 1/УН 2,
УЗАП
1
|
|
|
НЕ Р4 |
|
|
0
0 1/-
|
|
|
P5
|
|
|
|
|
0
0 0/УЭ 3
|
НЕ P5
|
|
|
|
|
1
1 1/-
|
Таблица
3
Кодированная
таблица переходов
и выходов
Если в конечном
автомате будет
применяться
D-триггер,
то будут справедливы
равенства:
Q1
(t+1) = НЕ Q1*НЕ Q2*Q3*P2
+ НЕ Q1*Q2*Q3*P4 + Q1*Q2*Q3*НЕ P3+ Q1*НЕ
Q2*Q3*НЕ P5 [20 входов]
Q2
(t+1) = НЕ Q1*НЕ Q2*Q3*P1 + НЕ
Q1*Q2*Q3*НЕ P4 + Q1*НЕ Q2*Q3*НЕ
P5 [15 входов]
Q3
(t+1) = НЕ Q1*НЕ Q2*НЕ Q3*P1 +
НЕ Q1*НЕ Q2*Q3 + НЕ Q1*Q2*Q3 +
Q1*Q2*Q3*НЕ P3 + Q1*НЕ Q2*Q3*НЕ
P5 = =НЕ Q1*НЕ
Q2*НЕ Q3*P1 + НЕ Q1*Q3 + Q1*Q2*Q3*НЕ
P3 + Q1*НЕ Q2*Q3*НЕ P5 [18 входов]
Для реализации
автомата на
D-триггерах
потребуется
43 входа. Если
будет использоваться
J-K триггер,
то уравнения
для него можно
получить из
уравнений для
D-триггера:
Q
(t+1)=J*Q+K*Q
Q(T+1)=J*HE Q + HE K*Q
J1=НЕ
Q2*Q3*P2+Q2*Q3*P4=Q3*(НЕ Q2*P2+Q2*P4) [6
входов]
K1=(Q2*Q3*НЕ
P3+НЕ Q2*Q3*НЕ P5)=(Q2*Q3*НЕ
P3)*(НЕ Q2*Q3*НЕ P5)=(НЕ Q2+
НЕ
Q3+P3)*(Q2+НЕ Q3+P5) [8 входов]
J2=(НЕ
Q1*Q3+Q1*Q3*НЕ P5)=Q3*(НЕ Q1+Q1*НЕ
P5) [6 входов]
K2=(НЕ
Q1*Q3*P4) = Q1+НЕ Q3+НЕ
P4 [3 входа]
J3=НЕ
Q1*НЕ Q2*P1 [3 входа]
K3=(НЕ
Q1*НЕ Q2+НЕ Q1*Q2+Q1*Q2*НЕ
P3+Q1*НЕ Q2*НЕ P5) = (НЕ
Q1+Q1*(Q2+НЕ Q2*НЕ
P5))
=Q1*(НЕ Q1+(Q2+НЕ Q2*НЕ P5)) =
Q1*НЕ Q2*(Q2+P5) = Q1*НЕ Q2*P5 [3
входа]
Для реализации
автомата на
J-K-триггерах
потребуется
29 входов, поэтому
автомат будет
реализовываться
на них. Управляющие
сигналы на
основе таблицы
переходов и
выходов будут
формироваться
следующим
образом
УН 1=НЕ Q1*НЕ
Q2*НЕ Q3*P1
УЭ 1=НЕ Q1*НЕ
Q2*Q3*НЕ P2
УН 2=НЕ Q1*Q2*Q3*P4+НЕ
Q1*НЕ Q2*Q3*P2
УЭ 2=Q1*Q2*Q3*НЕ P3
УЭ 3=Q1*НЕ
Q2*Q3*P5+Q1*Q2*Q3*P3
УЗАП1=УН
1+УН 2
Управляющий
автомат с
микропрограммным
управлением
Принудительная
адресация
Каноническая
форма микропрограммы
разрабатываемого
устройства
с учетом эквивалентности
сигналов
представлена
в таблице 4:
№ |
МЕТКА |
УПР.
СИГНАЛ |
ПЕРЕХОД |
1 |
М1 |
|
ЕСЛИ
НЕ Р1 ТО М1 |
2 |
|
УН 1,
УЗАП1 |
|
3 |
М2 |
|
ЕСЛИ
Р2 ТО М3 |
4 |
|
УЭ 1 |
|
5 |
|
|
ЕСЛИ
НЕ Р4 ТО М2 |
6 |
М3 |
УН 2,
УЗАП1 |
|
7 |
М4 |
|
ЕСЛИ
Р3 ТО М5 |
8 |
|
УЭ 2 |
|
9 |
|
|
ЕСЛИ
НЕ Р5 ТО М4 |
10 |
М5 |
УЭ 3 |
ИДТИ
К М1 |
Таблица
4
Каноническая
форма микропрограммы.
Адрес
|
УН
1
|
УЭ
1
|
УН
2
|
УЭ
2
|
УЭ
3
|
УЗАП1
|
Не
Р1
|
Р2
|
Р3
|
Не
Р4
|
Не
Р5
|
Адрес перехода
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Таблица
5
Кодовые
выражения
микропрограммы.
Минимальная
требуемая
емкость ПЗУ
-
(или 2К*4 Бит)
Естественная
адресация
№ |
МЕТКА |
УПР.
СИГНАЛ |
ПЕРЕХОД |
1 |
М1 |
|
ЕСЛИ
НЕ Р1 ТО М1 |
2 |
|
УН
1, УЗАП1 |
|
3 |
М2 |
|
ЕСЛИ
Р2 ТО М3 |
4 |
|
УЭ 1 |
|
5 |
|
|
ЕСЛИ
НЕ Р4 ТО М2 |
6 |
М3 |
УН
2, УЗАП1 |
|
7 |
М4 |
|
ЕСЛИ
Р3 ТО М5 |
8 |
|
УЭ 2 |
|
9 |
|
|
ЕСЛИ
НЕ Р5 ТО М4 |
10 |
М5 |
УЭ 3 |
|
11 |
|
|
ИДТИ
К М1 |
Таблица
6
Каноническая
форма микропрограммы.
Адрес
|
П
|
УН
1
|
УЭ
1
|
УН
2
|
УЭ
2
|
УЭ
3
|
УЗАП
1
|
|
|
|
|
П
|
НЕ
P1
|
P2
|
P3
|
НЕ
P4
|
НЕ
P5
|
Адрес
перехода
|
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
– |
– |
– |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
– |
– |
– |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
– |
– |
– |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
– |
– |
– |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
- |
– |
– |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Таблица 7
Кодовые
выражения
микропрограммы
Необходимый
объем ПЗУ может
быть уменьшен
путем шифрации
маски признаков.
|
П
|
УН
1
|
УЭ
1
|
УН
2
|
УЭ
2
|
УЭ
3
|
УЗАП
1
|
|
Адрес
|
П
|
Маска
признаков
|
Адрес
перехода
|
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
– |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
– |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
– |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
– |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
- |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
Таблица
8
Минимизированные
кодовые выражения
микропрограммы
Минимальная
требуемая
емкость ПЗУ
-
(или 256*4 Бит), что
меньше, чем
требуется для
принудительной
адресации,
поэтому будем
применять
естественную
адресацию.
Функциональная
схема управляющего
автомата с
микропрограммным
управлением
показана на
рисунке 7.
Выбор
элементной
базы
Устройство
будем реализовывать
на интегральных
микросхемах
серий 1533, так как
микросхемы
этой серий
обладают наиболее
оптимальными
параметрами
среди современных
микросхем.
|
Время
задержки, нс |
Потребляемая
мощность, мВт |
531 |
3,2 |
20 |
533 |
10 |
2 |
1531 |
3 |
4 |
1533 |
4 |
2 |
Таблица 9
Основные
электрические
параметры
микросхем
серии 1533
Выходное
напряжение
низкого уровня
- не более 0,5 В
Выходное
напряжение
высокого уровня
- не менее 2 В
Выходной
ток - не менее
-30 мА и не более
-112 мА
Входной
ток - не более
0,1 мА
Входной
ток высокого
уровня - не более
20 мкА
Входной
ток низкого
уровня - не более
0,2 мкА
Работа
переключения
- 4 пДж
Коэффициент
разветвления
по выходу - 40
Предельно
допустимые
режимы эксплуатации
Напряжение
питания - не
менее 4,7 В и не
более 5,5 В
Входное
напряжение
высокого уровня
- не менее 2 В и
не более 5,5 В
Входное
напряжение
низкого уровня
- не менее 0 В и
не более 0,8 В
Основными
элементами
устройства
являются счетчики
и регистры.
Счетчик будет
реализован
на двух микросхемах
1533ИЕ7 - четырехразрядном
синхронном
реверсивном
счетчике. Он
имеет три основных
режима: параллельная
асинхронная
загрузка кода
по входам Di
при поступлении
отрицательного
ипульса на
вход С, режим
суммирования
и режим вычитания.
В двух последних
режимах счетные
импульсы подают
на различные
входы: суммирования
и вычитания.
Входной код
будет записываться
в восемь четырехразрядных
универсальных
регистра сдвига
на микросхемах
КР531ИР11. Регистр
функционирует
в одном из четырех
режимов, которые
задаются
двухразрядным
кодом на входе
S.
Параллельный
ввод информации
со входа D
происходит
синхронно, по
положительному
фронту тактового
импульса.
|
R
|
S1
|
S0
|
C
|
DR
|
DL
|
D0
|
D1
|
D2
|
D3
|
Q0
|
Q1
|
Q2
|
Q3
|
Уст.
L
|
L
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
L
|
L
|
L
|
L
|
Пок-ой |
H
|
X
|
X
|
L
|
X
|
X
|
X
|
X
|
X
|
X
|
QA0
|
QB0
|
QC0
|
QD0
|
Зап-ись
|
H
|
H
|
H
|
|
X
|
X
|
a
|
b
|
c
|
d
|
a
|
b
|
c
|
d
|
Сдв.
|
H
|
L
|
H
|
|
L
|
L
|
X
|
X
|
X
|
X
|
L
|
QAn
|
QBn
|
QCn
|
впр-аво
|
H
|
L
|
H
|
|
H
|
H
|
X
|
X
|
X
|
X
|
H
|
QAn
|
QBn
|
QCn
|
Сдв. |
H
|
H
|
L
|
|
X
|
X
|
X
|
X
|
X
|
X
|
QB
|
QC
|
QD
|
L
|
вле-во
|
H
|
H
|
L
|
|
X
|
X
|
X
|
X
|
X
|
X
|
QB
|
QC
|
QD
|
H
|
Пок-ой |
H
|
L
|
L
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
QA0
|
QB0
|
QC0
|
QD0
|
Таблица
10
Таблица
истинности
регистра КР531ИР11
Характеристики
ППЗУ КР556РТ4
Составление
программы
Программа
на ассемблере
НАЧАЛО
СЧЕТЧИК=02Н
АККУМУЛЯТОР=
=1-ый справа
байт кода
Маскирование
последних
3 бит АККУМУЛЯТОРА
АККУМУЛЯТОР=
010В
НЕТ
Сдвиг кода на
разряд вправо
СЧЕТЧИК=СЧЕТЧИК+1
СЧЕТЧИК=32
Запись значения
счетчика в
память
СЧЕТЧИК=02Н
АККУМУЛЯТОР=
=1-ый слева
байт кода
Маскирование
первых
3 бит АККУМУЛЯТОРА
ДА
АККУМУЛЯТОР=
01000000В
2
3
1
1
2 3
Сдвиг кода на
разряд влево
СЧЕТЧИК=СЧЕТЧИК-1
НЕТ
СЧЕТЧИК=1
Запись значения
счетчика в
память
КОНЕЦ
Для нормального
функционирования
программы
необходимо
предварительно
занести входной
код, предварительно
поделенный
на байты в следующие
ячейки памяти:
0800Н - 0803Н (в 0800Н - крайний
левый байт
кода и т.д.) и 0804Н
- 0807Н (в 0804Н - крайний
левый байт
кода и т.д.)
Адрес
|
Код
|
Метка
|
Команда
|
Комментарий
|
0809 |
16
|
|
MVI
D,O2H
|
Счетчик
= 2 |
080A
|
02
|
|
|
|
080B
|
3A
|
M1
|
LDA
0803H
|
Загрузка
первого справа
байта кода
в аккумулятор |
080C
|
03
|
|
|
|
080D
|
08
|
|
|
|
080F
|
E6
|
|
ANI
07H
|
Маскирование
3 последних
бит аккумулятора |
0810
|
07
|
|
|
|
0811
|
FE
|
|
CPI
02H
|
Сравнение
аккумулятора
с 010В |
0812
|
02
|
|
|
|
0813
|
CA
|
|
JZ
M2
|
|
0814
|
37
|
|
|
|
0815
|
08
|
|
|
|
0816
|
A7
|
|
ANA
A
|
Обнуление
флага переноса |
0817
|
3A
|
|
LDA
0800H
|
|
0818
|
00
|
|
|
|
0819
|
08
|
|
|
|
081A
|
1F
|
|
RAR
|
|
081B
|
32
|
|
STA
0800H
|
|
081C
|
00
|
|
|
|
081D
|
08
|
|
|
|
081E
|
3A
|
|
LDA
0801H
|
|
0820
|
01
|
|
|
|
0821
|
08
|
|
|
|
0822
|
1F
|
|
RAR
|
|
0823
|
32
|
|
STA
0801H
|
|
0824
|
01
|
|
|
|
0825 |
08
|
|
|
|
0826 |
3A
|
|
LDA 0802H
|
|
0827 |
02 |
|
|
|
0829
|
08 |
|
|
Последовательный
сдвиг |
082A
|
1F
|
|
RAR
|
байтов
кода вправо |
082B
|
32
|
|
STA
0802H
|
|
082C
|
02
|
|
|
|
082D
|
08
|
|
|
|
082E
|
3A
|
|
LDA
0803H
|
|
082F
|
03
|
|
|
|
0830
|
08
|
|
|
|
0831
|
1F
|
|
RAR
|
|
0832
|
32
|
|
STA
0803H
|
|
0833
|
03
|
|
|
|
0834
|
08
|
|
|
|
0835
|
14
|
|
INR
D
|
Прибавление
к счетчику
единицы |
0836
|
7A
|
|
MOV
A, D
|
|
0837
|
FE
|
|
CPI
20H
|
Сравнение
значения
счетчика с
32D
|
0838
|
20
|
|
|
|
083A
|
7A
|
M2
|
MOV
A, D
|
|
083B
|
32
|
|
STA
0808H
|
Запись
первого результата
в память |
083C
|
08
|
|
|
|
083D
|
08
|
|
|
|
083E
|
16
|
|
MVI
D,1FH
|
Счетчик
= 31 |
083F
|
1F
|
|
|
|
0840
|
3A
|
M3
|
LDA
0803H
|
Загрузка
первого слева
байта кода
в аккумулятор |
0841
|
03
|
|
|
|
0842
|
08
|
|
|
|
0843
|
E6
|
|
ANI
E0H
|
Маскирование
3 первых разрядов
кода |
0844
|
E0
|
|
|
|
0845
|
FE
|
|
CPI
40H
|
Сравнение
аккумулятора
с 0100 0000В |
0846
|
40
|
|
|
|
0847
|
CA
|
|
JZ
M4
|
|
0848
|
6B
|
|
|
|
0849
|
08
|
|
|
|
084A
|
A7
|
|
ANA
A
|
Обнуление
флага переноса |
084B
|
3A
|
|
LDA
0804H
|
|
084C
|
04
|
|
|
|
084D
|
08
|
|
|
|
084E
|
1F
|
|
RAL
|
|
084F
|
32
|
|
STA
0804H
|
|
0850
|
04
|
|
|
|
0851
|
08
|
|
|
|
0852
|
3A
|
|
LDA
0805H
|
|
0853
|
05
|
|
|
|
0854
|
08
|
|
|
|
0855
|
17
|
|
RAL
|
|
0856
|
32
|
|
STA
0805H
|
|
0857
|
05
|
|
|
|
0858
|
08
|
|
|
|
0859
|
3A
|
|
LDA 0806H
|
|
085A
|
02 |
|
|
|
085B
|
08 |
|
|
Последовательный
сдвиг |
085C
|
17
|
|
RAL
|
байтов
кода влево |
085D
|
32
|
|
STA
0806H
|
|
085E
|
06
|
|
|
|
085F
|
08
|
|
|
|
0860
|
3A
|
|
LDA
0807H
|
|
0861
|
07
|
|
|
|
0862
|
08
|
|
|
|
0863
|
17
|
|
RAL
|
|
0864
|
32
|
|
STA
0807H
|
|
0865
|
07
|
|
|
|
0866
|
08
|
|
|
|
0867
|
15
|
|
DCR
D
|
Вычитание
из счетчика
единицы |
0868
|
7A
|
|
MOV
A, D
|
|
0869
|
FE
|
|
CPI
02H
|
Сравнение
значения
счетчика с
1D
|
086A
|
02
|
|
|
|
086B
|
7A
|
M4
|
MOV
A, D
|
|
086C
|
32
|
|
STA
0809H
|
Запись
второго результата
в память |
086D
|
08
|
|
|
|
086E
|
09
|
|
|
|
086F
|
76
|
|
HLT
|
Останов
программы |
Программа
на языке BASIC
Программа была
составлена
на языке BASIC
и отлажена
на IBM-совместимом
компьютере.
Текст программы
REM
Программа по
курсовой работе
(каф 403).
REM
Список переменных:
REM
SCHET%
- счетчик
циклов.
REM
D% - входной
код.
REM
B%, C% - выходные
коды.
CLS
REM
Задается размерность
входного кода.
DIM
D%(32)
REM
Установка
списка данных
в начальное
положение.
RESTORE
REM
Запись входного
кода. Цикл.
FOR
I%=1 TO 32
REM
Чтение I-го элемента
входного кода.
READ
D%(I%)
NEXT
I%
REM Поиск
первой комбинации
010. Цикл.
FOR
SCHET%=2 TO 31
REM
Проверка совпадения.
IF
D%(SCHET%-1)=0 AND D%(SCHET%)=1 AND D%(SCHET%+1)=0 THEN GOTO 1
REM Сдвиг
"окна".
NEXT
SCHET%
REM
Запись и вывод
результата.
1
B%=SCHET%: PRINT "Номер первой
единицы, стоящей
между нулями:
";B%
REM Поиск
последней
комбинации
010. Цикл.
FOR
SCHET%=31 TO 2 STEP -1
REM
Проверка совпадения
и запись результата.
IF
D%(SCHET%-1)=0 AND D%(SCHET%)=1 AND D
%(SCHET%+1)=0
THEN GOTO 2
NEXT
SCHET%
REM
Запись и вывод
результата.
2
C%=SCHET%: PRINT "Номер последней
единицы, стоящей
между нулями:
";C%
REM
Входной код.
DATA
0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,1,0,1,1,1,1,1,1,1,0,1,1,0,0,1,0,1
В результате
работы программы,
на экран было
выведено сообщение:
Номер
первой единицы,
стоящей между
нулями: 7
Номер
последней
единицы, стоящей
между нулями:
30
Использованная
.литература
Аванесян
Г.Р. Лёвшин В.П.
«Интегральные
микросхемы
ТТЛ, ТТЛШ» М93;
Лебедев
О.Н. «Применение
микросхем
памяти в электронных
устройствах»
М94;
Мельников
Б.С. Щеглов А.В.
«Методические
указания к
курсовой работе...»
М91;
«Цифровые
интегральные
микросхемы»
М94.
Для заметок
Необходимые
микросхемы
регистров и
ПЗУ в серии
1533 отсутствуют.
|