рефераты рефераты
Главная страница > Курсовая работа: Разработка микропроцессорной системы  
Курсовая работа: Разработка микропроцессорной системы
Главная страница
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
География экономическая география
Геодезия
Геология
Госслужба
Гражданский процесс
Гражданское право
Иностранные языки лингвистика
Искусство
Историческая личность
История
История государства и права
История отечественного государства и права
История политичиских учений
История техники
История экономических учений
Биографии
Биология и химия
Издательское дело и полиграфия
Исторические личности
Краткое содержание произведений
Новейшая история политология
Остальные рефераты
Промышленность производство
психология педагогика
Коммуникации связь цифровые приборы и радиоэлектроника
Краеведение и этнография
Кулинария и продукты питания
Культура и искусство
Литература
Маркетинг реклама и торговля
Математика
Медицина
Реклама
Физика
Финансы
Химия
Экономическая теория
Юриспруденция
Юридическая наука
Компьютерные науки
Финансовые науки
Управленческие науки
Информатика программирование
Экономика
Архитектура
Банковское дело
Биржевое дело
Бухгалтерский учет и аудит
Валютные отношения
География
Кредитование
Инвестиции
Информатика
Кибернетика
Косметология
Наука и техника
Маркетинг
Культура и искусство
Менеджмент
Металлургия
Налогообложение
Предпринимательство
Радиоэлектроника
Страхование
Строительство
Схемотехника
Таможенная система
Сочинения по литературе и русскому языку
Теория организация
Теплотехника
Туризм
Управление
Форма поиска
Авторизация




 
Статистика
рефераты
Последние новости

Курсовая работа: Разработка микропроцессорной системы

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

, .

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

.


Сокращённая схема подключения устройств ввода\вывода изображена на рис. 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 Интегральная сумма
2 8004 Sign Знаковая ячейка
3 8005 Number Ячейка номера
4 8007: 8006 PE

Предыдущее значение  (число со знаком)

5 8009: 8008 СE

Текущее значение  (число со знаком)

6 800B: 800A KP

Модуль

7 800D: 800C KI

Модуль

8 800F: 800D KD

Модуль

WC (Work cell) – рабочие ячейки, необходимые для временного хранения результатов процедуры MUL16_16 и отдельных частей суммы (1). Далее записывается смещение относительно ячейки WC с адресом 8010.
9 8011: 8010 WC+1: WC+0

Множимое (блок 2: 1 на рис. 4): текущее значение , разность

10 8013: 8012 WC+3: WC+2 Множитель (блок 4: 3): коэффициент
11 none WC+4 Умерший товарищ
12 8015: 8014 WC+6: WC+5 Блок 1×3
13 8017: 8016 WC+8: WC+7 Блок 2×3
14 8019: 8018 WC+10: WC+9 Блок 1×4
15 801B: 801A WC+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

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

18 9FFF ST_PT Вершина стека

Страницы: 1, 2, 3, 4, 5

рефераты
Новости