Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Разработка микропроцессорной системы

Тип Реферат
Предмет Коммуникации и связь
Просмотров
1059
Размер файла
615 б
Поделиться

Ознакомительный фрагмент работы:

Разработка микропроцессорной системы

Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования

«Тульский государственный университет»

Кафедра «Системы автоматического управления»

Курсовая работа

по дисциплине

ЭВМ И ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ

на тему

"РАЗРАБОТКА МПС"

Тула 2004 г.

Введение

Одним из крупнейших достижений микроэлектроники и вычислительной техники является создание микропроцессоров (микропроцессорных наборов БИС). В решении актуальных задач ускорения научно-технического прогресса им принадлежит существенная роль.

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

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

Создание МПС на базе МП содержит два этапа: разработка аппаратной части и разработка программного обеспечения на языке низкого уровня (языка кодовых комбинаций, Ассемблера).

В данной работе рассматривается пример разработки микропроцессорной системы, которая является ПИД-регулятором.


Выбор микропроцессора

Исходя из данных задания (разрядность, тактовая частота, общий объём памяти) выбираем процессор Z80 фирмы Zilog.

Схема подключения микропроцессора показана на рис. 1

Рисунок 1. Схема подключения микропроцессора

По заданию (вторая часть) на входе МПС – 16‑ти битный сигнал ошибки САУ , синхронный со срезами внешнего синхросигнала постоянной частоты со скважностью (меандр). Следовательно МПС должна начать обрабатывать новый сигнал, как только он поступил. Этот процесс организован с помощью подключения синхросигнала с выходу маскируемого прерывания .

Организация памяти

Шестнадцатибитная линия адреса процессора Z80 при разрядности 8 бит позволяет адресовать 64 Кбайта памяти и 512 устройств вводавывода (256 ввода, 256 вывода).

По заданию требуется спроектировать блок памяти:

· ПЗУ – 32 Кслов (32Кбайт),

· ОЗУ – 8 Кслов (8Кбайт).

Для хранения 32 Кбайт ПЗУ используем четыре микросхемы 573РФ4 (объём 65536 бит, организация 8192×8)

Для хранения 8 Кбайт ОЗУ – четыре микросхемы 537РУ10 (объём 16384 бит, организация 2048×8).

Составим карту памяти (табл. 1), исходя из того, что ПЗУ занимает нижние адреса памяти, адреса ОЗУ следуют за ПЗУ, остальные 24 Кбайта не используются.

Таблица 1. Карта памяти

Номер бита1514131211109876543210
ПЗУ

Банк 1

(8 кб)

00000000000000000000
1FFF0001111111111111

Банк 2

(8 кб)

20000010000000000000
3FFF0011111111111111

Банк 3

(8 кб)

40000100000000000000
5FFF0101111111111111

Банк 4

(8 кб)

60000110000000000000
7FFF0111111111111111
ОЗУ

Банк 1

(2 кб)

80001000000000000000
87FF1000011111111111

Банк 2

(2 кб)

88001000100000000000
8FFF1000111111111111

Банк 3

(2 кб)

90001001000000000000
97FF1001011111111111

Банк 4

(2 кб)

98001001100000000000
9FFF1001111111111111

Из табл. 1 можно сделать следующие выводы по организации памяти:

· Шина данных подключается сразу ко всем восьми микросхемам.

· Для выбора той или иной микросхемы достаточно одного двойного демультиплексора 531ИД14, осуществляющего преобразование 1-4. Одна его часть отвечает за выбор схемы ПЗУ, другая – за выбор ОЗУ.

· Бит А15 равен 0, если адресуется ПЗУ и равен 1, когда адресуется ОЗУ.

· ПЗУ. По линии адреса на микросхему подаются биты А0‑А12, биты А13 и А14 определяют, в какой именно банк происходит адресация.

· ОЗУ. По линии адреса на микросхему подаются биты А0‑А10, биты А11 и А12 определяют конкретный банк, биты А13 и А14 всегда равны 0.

Сигналы с выхода демультиплексора подаются непосредственно на входы в ПЗУ и на входы в ОЗУ.

Для активизации демультиплексора, отвечающего за ПЗУ, на вход необходимо подавать активный уровень сигнала (логический 0), если происходит цикл обращения к памяти () и . Необходимый управляющий сигнал достигается при использовании логического функции и элемента дисъюнктора. Справедливы аналогичные рассуждения для демультиплексора, отвечающего за ОЗУ, за исключением того факта, что в дисъюнкцию должно войти отрицание элемента – .

На вход ОЗУ необходимо подать логическую функцию (логическое , элемент конъюнктор), а на вход выход МП .

Напряжения.

Т.к. ПЗУ не находится в режиме программирования, то на входы питания ПЗУ (,,) требуется подать +5V, а входы и заземлить (на рис. не показано).

На вход ОЗУ также подаётся +5V, а вход заземляется.

Схема подключения памяти к шинам представлена на рис. 2.


Рисунок 2. Организация памяти

Организация вводавывода

По заданию МПС должна принимать и выдавать 16 ти битный код. Кроме того у МПС имеются перемычки для задания шестнадцатибитных констант регулятора , , .

На МПС должны быть 48 (16×3) перемычек для задания констант. Схема организации перемычек представлена на рис. слева. Перемычки собираются в группы по восемь (например, младший байт константы ) и подаются на приёмопередатчик 580ВА86. Таким образом задание трёх шестнадцатибитных констант требует шести 8‑ми битных приёмопередатчиков.

Входной и выходной сигналы целесообразно хранить в регистрах, где они будут дожидаться запроса МП на чтение при вводе и запроса внешнего устройства (фронта синхросигнала) при выводе кода. Таким образом требуется наличие четырёх 8‑ми битных регистров.

Всего же требуется адресовать 10 устройств вводавывода. При этом задействуются биты А0‑А3. Запишем адреса внешних устройств в табл. 3.

Таблица 2. Адреса внешних устройств

NВнешний сигналАдрес
1Входной сигнал0001:0000
20011:0010
30101:0100
40111:0110
5Выходной сигнал1001:1000

Обращение к тому или иному внешнему сигналу в зависимости от его адреса осуществим с помощью демультиплексора 555ИД7 1-8 и дополнительных логических элементов. На вход демультиплексора подаются биты А0‑А2. Бит А3 отвечает за то, осуществляется ли адресация к портам ввода или вывода.

Рассмотрим случай адресации к младшему байту порта ввода данных или вывода. Обозначим – сигнал с выхода демультиплексора №0, – сигнал, который подаётся на регистр, отвечающий за приём входного кода, – сигнал, отвечающий за запись в регистр выходного кода. Составим таблицу истинности (табл. 2). При этом необходимо помнить, что у активный уровень (подключается к входу ), а – сигнал положительной логики (подключается к входу ).

Таблица 3. Таблица истинности

0000
1011
0110
1110

Используя СКНФ, СДНФ и теорему де Моргана, запишем логические функции:

, .

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

.


Сокращённая схема подключения устройств вводавывода изображена на рис. 3.

Общий вид МПС достигается совмещением рис. 1–3 на одном и соединением магистралей (шины данных, адреса и управления).

Рисунок 3. Проектирование устройств вводавывода

Разработка программного обеспечения

В соответствии с заданием программа разрабатывается на Ассемблере с использованием системы команд выбранного процессора.

Логически программа состоит из двух частей:

· основная часть программы для задания констант;

· программа обработки прерывания – получения входного шестнадцатибитного кода, выполнение математической операции и выдача шестнадцатибитного кода – результата математической операции:

. (1)

Интеграл и дифференциал

Интеграл и дифференциал считаются по приближённым формулам:

·

· .

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

Операция умножения восьмибитных чисел

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

Расположение операндов:

– множимое, – множитель, – двухбайтный результат, используется в качестве счётчика регистр L.

Операция умножения шестнадцатибитных чисел со знаком

Операция умножения шестнадцатибитных чисел построена на операции умножения восьмибитных чисел и выполнена в виде процедуры MUL16_16. Метод вычисления 32‑х битного результата представлен на рис. 4.

Рисунок 4. Схема умножения 16-битных чисел

Т.к. входной код, равно как и константы, могут быть отрицательным числом, записанным в дополнительном коде, необходимо контролировать знак произведения. При этом все отрицательные сомножители входят в произведение по модулю, а знак произведения изменяется на противоположный, если сумма минусов, стоявших перед сомножителями, равна 1 (младший бит равен 1).

Расположение операндов в памяти:

– множимое, – множитель, причём коэффициент всегда располагается на месте множителя.

Четырёхбитный результат помещается в память, начиная с адреса, указанного перед процедурой в парном регистре H-L.

Контроль знаков

Поскольку коэффициенты ПИД-регулятора по заданию постоянны, то нет смысла хранить их со знаком и при каждой операции умножения заново выделять знак и инвертировать при необходимости. Целесообразно хранить модули коэффициентов в одних ячейках памяти (KP, KI, KD), а знаки – в специальной ячейке памяти (далее «знаковой ячейке»), устройство которой представлено на рис. 5. Старшая тетрада является незначащей. Младшие четыре бита отвечают за отрицательность соответсвующего элемента, причём 1 означает, что соответсвующий коэффициент изначально отрицательный. В изображённом случае все коэффициенты положительны, кроме KP. Биты трёх коэффициентов остаются постоянными с момента запуска программы.

Рисунок 5. Организация знаковой ячейки

Значение же коэффициента E () изменяется не только при поступлении нового значения. Эта ячейка отвечает также за знак разности при приблизительном подсчёте дифференциала. Поэтому дифференциал целесообразно считать в последнюю очередь.

Проверка знака произведения осуществляется в самой процедуре умножения. Т.к. множимое представляет собой либо , либо разность , то ему однозначно соотстветствует младший бит ячейки памяти SIGN. С другой стороны необходимо знать, какой именно из коэффициентов участвует в произведении, чтобы потом определить его знак. Для этого используется другая ячейка памяти «ячейка номера» – NUMBER. В неё вносится номер: 1 соответствует КР, 2 – KI, 3 – KD. Во время процедуры значение этой ячейки полностью определяет, какой именно из коэффициентов участвует в произведении, поэтому перед выполнением процедуры умножения необходимо присвоить какое-либо значение из трёх.

Использование памяти.

Программа для вычисления (1) требует обращения к ОЗУ. Расположение данных в ОЗУ представлено в табл. 4.

Таблица 4. Использование ОЗУ

АдресПеременнаяПримечание
1

8003: 8002:

8001: 8000

INT_SUMИнтегральная сумма
28004SignЗнаковая ячейка
38005NumberЯчейка номера
48007: 8006PEПредыдущее значение (число со знаком)
58009: 8008СEТекущее значение (число со знаком)
6800B: 800AKPМодуль
7800D: 800CKIМодуль
8800F: 800DKDМодуль
WC (Workcell) – рабочие ячейки, необходимые для временного хранения результатов процедуры MUL16_16 и отдельных частей суммы (1). Далее записывается смещение относительно ячейки WC с адресом 8010.
98011: 8010WC+1: WC+0Множимое (блок 2: 1 на рис. 4): текущее значение , разность
108013: 8012WC+3: WC+2Множитель (блок 4: 3): коэффициент
11noneWC+4Умерший товарищ
128015: 8014WC+6: WC+5Блок 1×3
138017: 8016WC+8: WC+7Блок 2×3
148019: 8018WC+10: WC+9Блок 1×4
15801B: 801AWC+12: WC+11Блок 2×4
16

801F:801E:

801D: 801C

WC+16: WC+15:

WC+14: WC+13

Результат умножения
17

8023: 8022:

8021: 8020

WC+20: WC+19:

WC+18: WC+17

Результат умножения и
189FFFST_PTВершина стека

Обработка переполнения

Программно переполнение (результат (1) превышает 32 бита) контролируется в трёх случаях:

· на очередном шаге произошло переполнение интегральной суммы;

· переполнение после сложения и интегральной суммы;

· переполнение при выполнении операции (1).

Результатом переполнения является следующая последовательность действий:

· на выходе сигнал FFFFH;

· обнуляется интегральная сумма.

При этом сам пользователь должен контролировать: чтобы разность двух соседних сигналов и не превышала 216.

Исходный текст программы

МеткаМнемокодТактовБайтПримечания
Задание констант
PRT_IN_LO = 00H
PRT_IN_HI = 01HСтарший байт входного сигнала
KP_LO = 02H
KP_HI = 03H
KI_LO = 04H
KI_HI = 05H
KD_LO = 06H
KD_HI = 07H
PRT_OUT_HI = 08H
PRT_OUT_LO= 09H
ST_PT = 9FFFHУказатель стека

В соотвествии с табл. 4 также указываются значения:

Int_sum, Sign, Number, PE, CE, KP, KI, KD, WC – WC +13, WC + 17

Основная программа
ORG 0000HПрограмма начинается по адресу 0000H
JMP START103
NOP41
NOP41
NOP41
NOP41
JMP INT103
START:DI41Запрет прерываний
Запись значений коэффициентов (со знаками) в память
MVI A, 072Обнуление ячейки SIGN
STA SIGN133
IN KP_LO102Запись в ячейку с адресом KP значения младшего байта KP
LXI H, KP103
STAX H71
IN KP_HI102Запись в ячейку с адресом INT_SUM+9 значения старшего байта KP
INX H51
STAX H71
IN KI_LO102

Занесение остальных значений коэффициентов в соответсвующие ячейки памяти, коэффициент KD располагается также в регистрах А: В

INX H51
STAX H71
IN KI_HI102
INX H51
STAX H71
IN KD_LO102
INX H51
STAX H71
IN KD_HI102
INX H51
STAX H71
Определение знаков коэффициентов, выделения модулей и записи знаков в соответствующий бит знаковой ячейки
MVI D, 372Загрузить в регистр D количество циклов
@@1:LDAX H71Запись текущего коэффициента в B: C, старший байт также остаётся в аккумуляторе.
MOV C, A51
DCX H51
LDAX H71
MOV B, A51
RAL41Занесение в признак переноса старшего бита
JNC POSNUM173Если старший бит = 0, то перейти к POSNUM (positive number) – не требуется уточнение знака и изменения знаковой ячейки
MOV A, B51Загрузка в аккумулятор младшего байта
XRI FFH72Дополнение до двух и прибавление единицы – выделение модуля.
ADI 172
MOV B, A51Сохранение младшего байта модуля в регистре В
MOV A, C51Помещение в аккумулятор старшего байта
XRI FFH72Дополнение до двух и учёт переноса.
ACI 072
MOV C, A51Поместить в регистр С старший байт модуля
XRA A71Сброс признака переноса
MOV E, D51
MVI A, 172
@@2:RAL41Смещение единицы в соответствующий разряд и сохранение в регистре Е
DCX E51
JNZ @@2173
Итого @@2156
MOV E, A51
LDA SIGN133Загрузить в соответствующий бит ячейки SIGN – 1 (прямая адресация)
ADD E41
STA SIGN133
POSNUM:MOV M, C71Сохранить модуль коэффициента в соответсвующих ячейках.
DCX H51
MOV M, B71
DCX H51Уменьшить адрес на единицу – указатель на старший байт следующего коэффициента
DCX D51Уменьшить счётчик цикла
JNZ @@1173Если не обработаны все коэффициенты то перейти к @@1. По окончании в регистрах B: С содержится значение коэффициента KP.
Итого@@1750
LXI SP, ST_PT103Установка вершины стека
EI41Разрешение прерываний
HLT71Ожидание прерывания
Итого(START)939129
Программа обработки прерывания
Выявление модуля и знака
INT:IN PRT_IN_LO102Загрузить значение в регистры В: С и в память
STA СE133СE+1: СE (число со знаком)
MOV C, A51
IN PRT_IN_HI102
STA СE+1133
MOV B, A51
LXI H, SIGN103Обнуление младшего бита SIGN
LDAX H71
ANI 00001110B72
STAX H71
RAL41Проверка знака , операции аналогичны приведённым выше
JNC POSNUM2173
MOV A, C51
XRI FFH72
ADI 072
MOV C, A51
MOV A, B51
XRI FFH72
ACI 072
MOV B, A51
LDAX H71Помещение в младший бит SIGN единицы
ADI 172
STAX H71
LXI H, WC103Помещение значения в память WC+1: WC (модуль)
POSNUM2:MOV A, C51
STAX H71
INX H51
MOV A, B51
STAX H71
Умножение
Запись коэффициента KP в ячейки памяти WC+3: WC +2
LDA KP133
STA WC+2133
LDA KP+1133
STA WC+3133
MVI A, 172Запись в NUMBER значение 1 – идентификатор коэффициента KP
STA NUMBER133
LXI H, WC + 13103Необходимый параметр процедуры – адрес младшего байта результата
CALL MUL16_164146NONE
Умножение
MVI A, 272Запись в NUMBER значение 2 – идентификатор коэффициента KI
LDA KI133(58 тактов, 12 байт) – (42 такта – 12 байт)
STA WC+2133Запись KI в ячейки множителя
LDA KI133
STA WC+3133
LXI H, WC + 17103
CALL MUL16_164146NONE
Увеличение интегральной суммы
LXI H, WC + 17103Инициализация указателей
LXI D, INT_SUM103
MVI B, 472Инициализация счётчика
XRA A71Сброс признака переноса
LOOP1:LDAX D71Загрузка первого операнда
ADC M71Сложение
STAX D71Запоминание операнда
DCR B51Декремент счётчика
JZ DONE1173Сложение закончено?
INX H51Переход к следующему байту
INX D51
JMP LOOP1103Организация цикла
Итого LOOP1252
DONE1:JC GLUCK173При переносе перейти к обработке переполнения
Умножение
LDA WC133Загрузка в регистры B: C
MOV C, A51
LDA WC+1133
MOV B, A51
LDA SIGN133Проверить знак
RAR41
JNC POSNUM3173
MOV A, C51Если знак отрицательный, то перевести в дополнительный код.
XRI FFH72
ADI 072
MOV C, A51
MOV A, B51
XRI FFH72
ACI 072
MOV B, A51
POSNUM3:LXI H, PE103Загрузить предыдущее значение в регистры В: С
MOV A, C51
ADD M71
MOV C, A51
INX H51
MOV A, B51
ADC M71
MOV B, A51
RAL41Запись в младший бит SIGN знака разности
MVI E, 11111110B72
MOV A, E51
ACI 072
MOV E, A51
LDA SIGN133
ANA E41
STA SIGN133
MOV A, B51Проверить ещё раз разность на перенос
RAL41
JNC POSNUM4173
MOV A, C51Далее процедура инвертирования знака
XRI FFH72
ADI 072
MOV C, A51
MOV A, B51
XRI FFH72
ACI 072
MOV B, A51
POSNUM4:STA WC133Помещение разности в ячейку множимого
MOV C, A51
STA WC+1133
LDA KD133Помещение КD в ячейку множителя
STA WC+2133
LDA KD+1133
STA WC+3133
LXI H, WC+17103
CALL MUL16_164146NONE
Сложение
LXI H, INT_SUM103Операция аналогичная увеличению интегральной суммы. Результат сложения в WC+16 – WC+13
LXID, WC + 13103
MVIB, 472
XRAA41
LOOP2:LDAXD71
ADCM71
STAXD71
DCRB51
JZ DONE2173
INX H51
INX D51
JMP LOOP2103
Итого LOOP2252
DONE2:JC GLUCK173
Вычисление (1)
LXI H, WC + 17103Операция аналогичная увеличению интегральной суммы
LXI D, WC + 13103
MVI B, 472
XRA A41
LOOP3:LDAX D71
ADC M71
STAX D71
DCR B51
JZ DONE3173
INX H51
INX D51
JMP LOOP3103
Итого LOOP3252
DONE3:JNC GOOD173Если нет переноса, то пропустить обработку переполнения
Обработка переполнений
GLUCK:MVI A, FFH72

Запись в выдаваемые старшие два байта значения FFFFH

LXI H, WC + 15103
MOV M, A71
INX H51
MOV M, A71
LXI H, INT_SUM103

Обнуление интегральной суммы

MVI B, 472
MVI A, 00H72
LOOP4:STAX D71
DCR B51
JZ GOOD173
INX D51
JMP LOOP4103
Итого LOOP4176
Выдача результата
GOOD:LDA WC + 15133Выдача старших шестнадцати бит суммы
OUT PRT_OUT_LO102
LDA WC + 16133
OUT PRT_OUT_HI102
LDA CE133

Текущее значение становится предыдущим.

STA PE133
LDA CE+1133
STA PE+1133
RET101
Итого RET14444293
Процедура умножения шестнадцатибитных чисел
MUL16_16:

Расположение в памяти исходных данных (4 байта):

Множимое – WC+1: WC

Множитель – WC+3: WC+2

Расположение результата (4 байта):

H-L – адрес младшего байта результата

Задействуются все регистры

PUSH H113Запомнить адрес младшего байта результата
LXI H, WC103
LDAX H71

Вычисление и помещение в память блока 1×3 (см. рис. 4 и табл. 4)

MOV E, A51
INX H51
INX H51
LDAX H71
MOV D, A51
CALL MUL8_8820NONE
MOV A, С51
STA WC + 5133
MOV A, B51
STA WC + 6133
LDAX H71Вычисление и помещение в память блока 2×3 (см. рис. 4 и табл. 4)
MOV E, A51
DCX H51
LDAX H71
MOV D, A51
CALL MUL8_8820NONE
MOV A, С51
STA WC + 7133
MOV A, B51
STA WC + 8133
DCX H51

Вычисление и помещение в память блока 1×4 (см. рис. 4 и табл. 4)

LDAX H71
MOV E, A51
INX H51
INX H51
INX H51
LDAX H71
MOV D, A51
CALL MUL8_8820NONE
MOV A, С51
STA WC + 9133
MOV A, B51
STA WC + 10133
LDAX H71

Вычисление и помещение в память блока 2×4 (см. рис. 4 и табл. 4)

MOV D, A51
DCX H51
DCX H51
LDAX H71
MOV E, A51
CALL MUL8_8820NONE
MOV A, С51
STA WC + 11133
MOV A, B51
STA WC + 12133
Сложение промежуточных результатов
LXI H, WC + 6103
LDAX H71Загрузить ячейку WC+6
MOV D, A51
INX H51
LDAX H71Загрузить ячейку WC+7
ADD D41
MOV D, A51
INX H51
LDAX H71Загрузить ячейку WC+8
ACI 072Прибавить перенос к третьему байту
MOV C, A51
LDA WC+12133
ACI 072Прибавить перенос к четвёртому байту
MOV B, A51
INX H51
LDAX H71Загрузить ячейку WC+9
MOV E, A51
MOV A, D51
ADD E41
MOV D, A51Регистр D содержит второй байт
MOV A, C51
ACI 072Прибавить перенос к третьему байту
MOV C, A51
MOV A, B51
ACI 072Прибавить перенос к четвёртому байту
MOV B, A51
INX H51
LDAX H71Загрузить ячейку WC+10
ADD C41
MOV C, A51
MOV A, B51
ACI 072Прибавить перенос к четвёртому байту
MOV B, A51
INX H51
LDAX H71Загрузить ячейку WC+11
ADD C41
MOV C, A51Регистр С содержит третий байт
MOV A, B51
ACI 072Прибавить перенос к четвёртому байту
MOV B, A51Регистр В содержит четвёртый байт
STA NUMBER133Загрузка в регистр Е содержимого ячейки памяти NUMBER, числа, которое определеняет, какой из коэффициентов является множителем
MOV E, A51
STA SIGN133Загрузить ячейку знаков
RAR41

Если знак первого сомножителя

был отрицательный, то регистр H содержит 1, если положительный – 0.

MVI A, 0102
ACI 072
MOV H, A51
@@3:RAR41Помещение значащего для этого коэффициента бита в признак переноса и последующее сложение с содержимым регистра H
DCR E51
JNZ @@3173
Итого @@378
MOV A, H51
ACI 071
RAR41Сумма минусов чётная? Если нет, то необходимо инвертировать результат
JNC NO_INVER173
STA WC + 5133Загрузить в аккумулятор первый байт произведения
XRI FFH72
ADI 172
POP H111Вернуть значение H-L из стека
STAX H71Сохранить значение первого байта по указанному адресу
INX H51
MOV A, D51
XRI FFH72
ACI 072
STAX H71Сохранить значение второго байта
INX H51
MOV A, C51
XRI FFH72
ACI 072
STAX H71Сохранить значение третьего байта
INX H51
MOV A, В51
XRI FFH72
ACI 072
STAX H71Сохранить значение четвёртого байта
NO_INVER:RET101Конец процедуры
Итого MUL16_164135168
MUL8_8:

Осуществляет умножение восьмибитных чисел

Множитель – Е

Множимое – D

Двухбайтный результат – BC Задействуется регистр: L

PUSH H111Сохранение значение регистровой пары H-L
LXI B, 0103Сброс частичной суммы
MVI L, 872Загрузка счётчика
NEXT_BIT:MOV A, E51Множитель в аккумулятор
RAR41Поместить анализируемый бит в признак переноса
MOV E, A51Возврат сдвинутого множителя
JNC NO_ADD173Бит множителя равен нулю?
MOV A, B51Нет
ADD D41Прибавление множимого
MOV B, A51Возврат старшей частичной суммы
NO_ADD:MOV A, B51
RAR41Сдвиг частичной суммы
MOV B, A51
MOV A, C51
RAR41
MOV C, A51Возврат младшей частичной суммы
DCR L51
JNZ NEXT_BIT173Организация цикла
Итого NEXT_BIT760
POP H111Возвращение сохранённой регистровой пары H-L
RET101Конец процедуры умножения
Итого MUL8_880927
Итого вся программа15419627

Вывод

В данной работе была разработана МПС на базе восьмиразрядного МП Z80. Довольно простое аппаратное решение дополняется весьма длинной программой на языке Ассемблер, которая занимает в памяти ПЗУ 627 байт. Программа выполняется примерно за 16000 (в самом худшем случае) тактов МП. Это накладывает определённые ограничения на частоту входного синхросигнала. Т.к. входной код синхронизирован по срезу, а выходной должен быть синхронизирован по фронту, то в простейшем случае (реализованный вариант) работа программы должна укладываться в половину периода синхросигнала.

При работе МП на частоте 2МГц один такт длится 500 нс. Программа выполняется за . Соответственно период входного сигнал не должен быть меньше , что накладывает ограничение на частоту входного синхросигнала .

Методы повышения частоты

1. Программный.

В задании сказано, что реализация выходного сигнала может отставать от входного, но не более 10 периодов синхросигнала. Учёт этого условия при пересмотре алгоритма программы (временного хранения поступающий входных сигналов при обработке предыдущих) позволит несколько увеличить частоту. В общем случае возможная частота синхросигнала будет зависеть от количества входных и выходных сигналов.

Примем отставание «выхода от входа» – 9,5 периодов. Тогда результат операции над первым кодом можно выдать через 9,5 периодов, второго – через 10,5 периодов и т.д. – , где – номер периода синхросигнала, в котором необходимо выдать обработанный код, поступивший на входе в периоде .

Нет оснований предполагать, что на при проведении операций над очередным входным сигналом, количество тактов, за которое обрабатывается программа уменьшится. Из этого предположения следует, что время затраченное на обработку каждого входного кода, постоянно. Следовательно максимальное время, выраженное в количестве периодов синхросигнала, которое может работать программа – , где – количество входных сигналов, которые планируется подать. От этого времени будет зависеть максимальная частота (примем продолжительность программы прежней).

Подставим конкретные числа:

, , ,

, , ,

Очевидно, что с ростом числа входных кодов частота будет стемиться к

2. Аппаратный.

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

Список использованной литературы

1. Каган Б.М., Сташин В.В. Основы проектирования микропроцессорных устройств автоматики. – М.: Энергоатомиздат, 1987.

2. Микропроцессорные автоматические системы регулирования. Основы теории и элементы: Учеб. пособие / В.В. Солодовников, В.Г. Коньков, В.А. Суханов, О.В. Шевяков; Под ред. В.В. Солодовникова. – М.: Высш. шк., 1991.

3. Микропроцессоры и микропроцессорные вычислительные системы: Учеб. пособие / О.В. Горячев; Тула, ТулГУ, 1998.

4. Микропроцессоры и микроЭВМ в системах автоматического управления: Справочник / С.Т. Хвоща, Н.Н. Варлинский, Е.А. Попов: Под общ. ред. С.Т. Хвоща. – Л.: Машиностроение, 1987.

5. Микропроцессоры. В 3-х кн. Кн. 1. Архитектура и проетирование микро-ЭВМ. Организация вычислительных процессов: Учеб. для втузов / П.В. Нестеров, В.Ф. Шаньгин, В.Л. Горбунов и др.; Под редакцией Л.Н. Преснухина. М.: Высш. шк., 1986.

6. Мячев А.А., Степанов В.Н. Персональные ЭВМ и микроЭВМ. Основы организации: Справочник / Под ред. А.А. Мячева. – М.: Радио и связь, 1991.

7. Пухальский Г.И., Новосельцева Т.Я. Проектирование дискретных устройств на интегральных микросхемах: Справочник. – М.: Радио и связь, 1990.

8. Скенлон Л. Персональные ЭВМ IBMPC и XT. Программирование на языке ассемблера: Пер. с англ. – М.: Радио и связь. 1989.


Нет нужной работы в каталоге?

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

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Тгу им. Г. Р. Державина
Реферат сделан досрочно, преподавателю понравилось, я тоже в восторге. Спасибо Татьяне за ...
star star star star star
РЭУ им.Плеханово
Альберт хороший исполнитель, сделал реферат очень быстро, вечером заказала, утром уже все ...
star star star star star
ФЭК
Маринаааа, спасибо вам огромное! Вы профессионал своего дела! Рекомендую всем ✌🏽😎
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Подогнать готовую курсовую под СТО

Курсовая, не знаю

Срок сдачи к 7 дек.

только что
только что

Выполнить задания

Другое, Товароведение

Срок сдачи к 6 дек.

1 минуту назад

Архитектура и организация конфигурации памяти вычислительной системы

Лабораторная, Архитектура средств вычислительной техники

Срок сдачи к 12 дек.

1 минуту назад

Организации профилактики травматизма в спортивных секциях в общеобразовательной школе

Курсовая, профилактики травматизма, медицина

Срок сдачи к 5 дек.

2 минуты назад

краткая характеристика сбербанка анализ тарифов РКО

Отчет по практике, дистанционное банковское обслуживание

Срок сдачи к 5 дек.

2 минуты назад

Исследование методов получения случайных чисел с заданным законом распределения

Лабораторная, Моделирование, математика

Срок сдачи к 10 дек.

4 минуты назад

Проектирование заготовок, получаемых литьем в песчано-глинистые формы

Лабораторная, основы технологии машиностроения

Срок сдачи к 14 дек.

4 минуты назад

2504

Презентация, ММУ одна

Срок сдачи к 7 дек.

6 минут назад

выполнить 3 задачи

Контрольная, Сопротивление материалов

Срок сдачи к 11 дек.

6 минут назад

Вам необходимо выбрать модель медиастратегии

Другое, Медиапланирование, реклама, маркетинг

Срок сдачи к 7 дек.

7 минут назад

Ответить на задания

Решение задач, Цифровизация процессов управления, информатика, программирование

Срок сдачи к 20 дек.

7 минут назад
8 минут назад

Все на фото

Курсовая, Землеустройство

Срок сдачи к 12 дек.

9 минут назад

Разработка веб-информационной системы для автоматизации складских операций компании Hoff

Диплом, Логистические системы, логистика, информатика, программирование, теория автоматического управления

Срок сдачи к 1 мар.

10 минут назад
11 минут назад

перевод текста, выполнение упражнений

Перевод с ин. языка, Немецкий язык

Срок сдачи к 7 дек.

11 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно