Рефераты

Микросхема ПЗУ в управляющем автомате с МПУ выбрана неверно

Микросхема ПЗУ в управляющем автомате с МПУ выбрана неверно

Московский Авиационный институт

(технический университет)

КАФЕДРА 403

Расчетно-пояснительная записка

к курсовой работе по дисциплине

Вычислительные системы и микропроцессорная техника

выполнил: студент гр. 04-417

Левин О.А.

проверил: Герасимов А.Л.

МОСКВА 1997

Содержание

1. Анализ задания - 2

2. Комбинационный вариант - 2

3. Алгоритм работы устройства - 4

4. Микропрограмма - 5

5. Управляющий автомат с жесткой логикой - 5

6. Управляющий автомат с МПУ - 8

7. Выбор элементной базы - 10

8. Составление программы - 12

Задание

ВАРИАНТ №17

Задается входной код D{1:32}. Спроектировать вычислитель, который

определяет номер разряда самой первой и самой последней единиц, стоящих

между нулями. Предусмотреть реакцию проектируемого устройства в случае

отсутствия таких сигналов.

Анализ и уточнение задания

Так как входной код - тридцатидвухразрядный, то для получения интересующей

нас информации необходимо два выходных шестиразрядных кода. Реакцией

устройства в случае отсутствия интересующих нас кодовых комбинаций будет

значение первого и второго выходных кодов соответственно:

[pic]

[pic]

Очевидно, что в тридцатидвухразрядном коде единица, стоящая между

двумя нулями ни при каких обстоятельствах не может находится ни в первом ни

в тридцать втором разряде кода.

Тактовая синхронизация будет осуществляться внешним генератором тактовых

импульсов с частотой 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:6}, С{1:6} - выходной код

Внутренние:

. РЕГ А{1:32}, РЕГ В{1:32} - регистры

. СЧЕТ Ц1{1:6}, СЧЕТ Ц2{1:6} - счетчики циклов

Признаки:

. Р1 - строб=1

. Р2 - РЕГ А{1}=0 & РЕГ A{2}= 1 & РЕГ А {3}=0

. Р3 - РЕГ А{32}=0 & РЕГ A{31}= 1 & РЕГ А {30}=0

. Р4 - СЧЕТ Ц1 {1:6} = 32

. Р5 - СЧЕТ Ц2 {1:6} = 1

Программа

М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|Не|Р2|Р3|Не|Не|Адрес |

| | | | | | | |Р1| | |Р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

Кодовые выражения микропрограммы.

Минимальная требуемая емкость ПЗУ - [pic] (или 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

Минимизированные кодовые выражения микропрограммы

Минимальная требуемая емкость ПЗУ - [pic] (или 256*4 Бит), что меньше,

чем требуется для принудительной адресации, поэтому будем применять

естественную адресацию. Функциональная схема управляющего автомата с

микропрограммным управлением показана на рисунке 7.

Выбор элементной базы

Устройство будем реализовывать на интегральных микросхемах серий 1533,

так как микросхемы этой серий обладают наиболее оптимальными параметрами

среди современных микросхем.[1]

| |Время задержки, |Потребляемая |

| |нс |мощность, мВт |

|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 |X |X |X |X |X |X |X |X |X |L |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

Емкость - 256х4 Бит

Время задержки - 70 нс

Потребляемая мощность - 690 мВт

Тип выхода - ТТЛ-ОК

Исходное состояние - 0

Составление программы

Программа на ассемблере

НАЧАЛО

СЧЕТЧИК=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.

Для заметок

-----------------------

[1] Необходимые микросхемы регистров и ПЗУ в серии 1533 отсутствуют.


© 2010 Современные рефераты