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

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информатика, ВТ, телекоммуникации
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    162,52 Кб
  • Опубликовано:
    2013-10-13
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

Введение

микропроцессорный контроллер импульс генератор

Целью курсового проектирования является разработка микропроцессорной системы (МПС) управления некоторым объектом. МПС должна принимать информацию от объекта и выдавать на него управляющие воздействия, обеспечивающие поддержание объекта в определенном состоянии.

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

Основой МПС является микропроцессор I82386SX. Структура этого микропроцессора, принципы его работы, система команд, в определенной степени являются универсальными и отражают общие принципы функционирования микропроцессоров. Микропроцессор I82386SX предназначен для построения микропроцессорных систем обработки цифровой информации и систем управления в различных областях техники, где не предъявляется высоких требований по быстродействию. Функционирование МПС сводится к следующей последовательности действий: получение данных от различных периферийных устройств, обработка данных и выдача результата обработки на периферийные устройства. При этом данные от периферийного устройства, подлежащие обработки могут поступать и в процессе их обработки. Для выполнения этих процессов в МПС предусматриваются следующие устройства: блок центрального процессора, выполняющий обработку информации; оперативная память, предназначенная для хранения и выдачи по запросам команд программ, определяющих работу микропроцессоров, различных данных.



1. Описание работы МПС


Обобщенная структура МПС представлена на рисунке 1. В ее состав входят:

-       микропроцессор (МП);

-       генератор тактовых импульсов (ГТИ);

-       системный контроллер (СК);

-       шинный формирователь шины адреса (ШФ);

-       контроллер прерываний (КП);

-       дешифратор адреса памяти и УВВ (ДША памяти и УВВ);

-       постоянное запоминающее устройство (ПЗУ);

-       оперативное запоминающее устройство (ОЗУ);

-       программируемый параллельный адаптер (ППА);

-       программируемый интервальный таймер (ПИТ);

-       пульт управления (ПУ).

МПС взаимодействует с объектом управления посредством восьмибитной шины X, четырехбитной шины Y1 и двух линий Y2 и Y3. По шине X через модуль ППА в МПС вводится информация о состоянии объекта управления. С помощью четырехразрядной шины Y1 осуществляется регулирование состояния объекта, а по линиям Y2 и Y3 через ПИТ на объект управления выдаются воздействия.

На ПУ с помощью тумблеров задается требуемое значение, которое выдается на МПС через восьмибитную шину «К». Информация о процессе регулирования передается с МПС через ППА на четырехразрядный светодиодный индикатор ПУ.


Рисунок 1 - Структурная схема МПС

Выходные воздействия Y1, Y2, Y3 и показания индикатора вырабатываются МПС после программного вычисления результатов соответствующих функций от переменных X и K, где X - 8-битовая переменная, формируемая объектом управления; K - 8-битовая константа, установленная переключателями на ПУ.

Микропроцессор

Основой МПС является микропроцессор I82386SX. УГО МП приведено на рисунке 2, а в таблице 1 приведено назначение сигналов МП.

Рисунок 2 - УГО микропроцессора I82386SX

Таблица 1 - Назначение сигналов микропроцессора 386

Сигнал

I/O

Назначение

CLK2

I

Внешний сигнал синхронизации процессора

D [15:0]

I/O

Сигналы шины данных

А [23:1]

О

Сигналы шины адреса

BLE#, BHE#

О

Аналоги ВЕ0# и ВЕ1#

W/R#

О

Сигнал, определяющий тип шинного цикла (запись / чтение)

M/IO#

О

Высокий уровень указывает на обращение к памяти (или останов), низкий - на обращение к портам ввода-вывода или подтверждение прерывания

D/C#

О

Сигнал, определяющий тип шинного цикла

NA#

I

Запрос следующего адреса при конвейерной адресации

Продолжение таблицы 1

ADS#

O

Сигнал идентификации адресного цикла, во время которого действительны сигналы W/R#, D/C#, M/IO#, ВЕ [0:3] и А [31:2]

READY

I

Сигнал завершения шинного цикла. Шинный цикл расширяется на неограниченное время до появления сигнала готовности (низкий уровень)

LOCK

О

Сигнал монополизации управления шиной, вырабатывается на время выполнения инструкции по префиксу LOCK и автоматически при выполнении инструкций XCHG с памятью, подтверждения прерывания и доступа к таблицам дескрипторов

INTR

I

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

Сигнал

I/O

Назначение

NMI

I

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

RESET

I

Сигнал аппаратного сброса (высоким уровнем)

HOLD HLDA

I О

Запрос управления локальной шиной от другого контроллера и подтверждение предоставления

PEREQ

I

Запрос на передачу операнда сопроцессором

BUSY# ERROR#

I I

Сигналы состояния сопроцессора. Активность сигнала BUSY# останавливает процессор, а сигнала ERROR вызывает исключения при исполнении инструкций WAIT и некоторых инструкций ESCAPE

микропроцессорный контроллер адресный

Генератор тактовых импульсов

Для работы МП на его вход CLK2 необходимо подать сигнал тактовой частоты 16МГц., который формирует микросхема тактового генератора. В его качестве может быть использован ряд микросхем. УГО используемой для этой цели типовой микросхемы VXO-61 приведено на рисунке 3, а назначение её выводов описано в таблице 2.

Рисунок 3 - УГО микросхемы тактового генератора VXO-61

Таблица 2 - Назначение выводов микросхемы VXO-61

№ вывода

Обозначение вывода

Назначение вывода

14

VDD

Напряжение питания +5В

1

Vcontrol

Напряжение управления

8

Output

Тактовый сигнал

7

GND

Общий

 

Системный контроллер

Основное назначение системного контроллера (СК) - формирование управляющих сигналов МПС, а именно - сигналов чтения / записи памяти и УВВ, а также сигнала подтверждения прерывания (рис. 3).

Рисунок 4 - УГО СК

Системный контроллер формирует управляющие сигналы чтения / записи памяти и УВВ, дешифрируя информацию, выдаваемую ему процессором по шине состояния М/Ю#, D/C#, W/R# о типе шинного цикла, выполняемого в данный момент процессором.

В таблице 3 приведёна прошивка ПЗУ для реализации системного контроллера для циклов подтверждения прерывания, чтения / записи памяти и УВВ.

Таблица 3-Прошивка ПЗУ для реализации системного контроллера


A4

A3

A2

A1

A0

D4

D3

D2

D1

D0


M/IO#

D/C#

W/R#

A1

A0

MEMW#

MEMR#

IOW#

IOR#

INTA#

Подтв. прер.

0

0

0

0

0

1

1

1

1

1


0

0

0

0

1

1

1

1

1

1


0

0

0

1

0

1

1

1

1

0


0

0

0

1

1

1

1

1

1

0

Чт. УВВ

0

1

0

0

0

1

1

1

1

1


0

1

0

0

1

1

1

1

1

1


0

1

0

1

0

1

1

1

0

1


0

1

0

1

1

1

1

1

0

1

Зп. УВВ

0

1

1

0

0

1

1

1

1

1


0

1

1

0

1

1

1

0

1

1


0

1

1

1

0

1

1

0

1

1


0

1

1

1

1

1

1

0

1

1

 

Шинный формирователь шины адреса

Так как выходы микропроцессора могут быть нагружены только на один ТТЛ - вход, то для согласования шин адреса / данных МП с шиной адреса / данных МПС необходимы шинные формирователи (ШФ), обеспечивающие повышение токовой нагрузки по выходам. В качестве формирователей шины адреса / данных используется микросхема КР1533АП6 (рис. 4).


Рисунок 4 - УГО микросхемы КР1533АП6

Микросхема КР1533АП6 представляет собой восьмиразрядный двунаправленный приемопередатчик с тремя состояниями на выходе и без инверсии входной информации.

Так как разрядность шины адреса МП 386SX равна 24, то для повышения токовой нагрузки ША необходимо 3 микросхемы. Ещё две микросхемы потребуются для повышения токовой нагрузки ШД.

Контроллер прерываний

Система векторных прерываний реализуется с помощью БИС ПКП I8259A. На основе одного ПКП I8259A формируется 8-уровневая приоритетная система векторных прерываний для МП типа I82386 (рис. 5).

Рисунок 5 - УГО программируемого контроллера прерываний I8259A

Назначение выводов микросхемы I8259A приведено в таблице 4.

Таблица 4 - Назначение выводов микросхемы I8259A

Вывод

Обозначение

Тип вывода

Функциональное назначение вывода

11,10,9,8,7,6,5,4

D0-D7

Входы-выходы

Канал данных

27

A0

Вход

Адрес 0-го разряда

18-25

IRQ0 - IRQ7

Вход

Запрос прерывания

Продолжение таблицы 2

1

CS

Вход

Выбор микросхемы

2

WR

Вход

Запись информации

3

RD

Вход

Чтение информации

26

INTA

Вход

Подтверждение прерывания

16

MS/SV

Вход

Выбор ведомой микросхемы

12,13,15

CAS0-CAS2

Входы-выходы

Шина каскадирования

17

INT

Выход

Прерывание

14

GND

-

Общий

28

UCC

-

Напряжение питания


Разряды D7-D3 определяют старшие биты номера прерывания n для каждого входа IRQ ПКП. Младшие 3 бита номера прерывания определяются номером входа IRQ, на который поступил запрос прерываний. Формат управляющего слова ICW2 приведен на рисунке 6.

Рисунок 6 - Формат управляющего слова ICW2

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

IRQ1 00001001. Смещение в таблице векторов прерываний: IRQ1 00100100.

Запрос прерывания происходит после нажатия кнопки КН2. Для предотвращения дребезга контакта кнопки применяется схема (рис. 7).

Рисунок 7 - Схема подавления дребезга контактов и снятия сигнала IRQI после формирования сигнала INTA#

 

Дешифратор адреса памяти и УВВ

Дешифратор адреса памяти и УВВ представлен на рисунке 8.

Рисунок 8 - УГО микросхемы 1533ИД14

На вход поступают линии А3 и А4.

Сигнал на выходе CSPIC означает выбор контроллера прерываний, т.е. в этом такте ПИТ и УВВ не будут задействованы.

Сигнал на выходе CSPIT означает выбор ПИТ.

Сигнал на выходе CSPPA означает выбор УВВ.

Постоянное запоминающее устройство

В данной работе используется ПЗУ - AT27C256R, представленное на рис. 9.

Рисунок 9 - УГО микросхемы AT27C256R

Организация памяти ПЗУ AT27C256R - 32К*8 бит. Питание - 5В. Доступ к любому байту осуществляется меньше, чем за 45 нс. У ПЗУ AT27C256R небольшой ток потребления и быстрое программирование. Ток потребления обычно 8 мА в активном режиме и меньше, чем 10 мкА в неактивном.

Таблица 5. Сигналы ПЗУ AT27C256R

Сигнал

Назначение

D [0:7]

Сигналы шины данных

А [0:14]

Сигналы шины адреса

Разрешение работы микросхемы

Разрешение вывода

VCC, VPP

Питающее напряжение

GND

Общий вывод


Так как шина данных ПЗУ AT27C256R составляет 8 бит, а шина данных микропроцессора равна 16 бит, используются 2 микросхемы ПЗУ. Для выбора конкретной микросхемы используется элемент КР1533ЛА4 (рис. 10).

 

Оперативное запоминающее устройство

В данной работе используется ОЗУ - AS7C1024-12JC, представленное на рисунке 11.

Рисунок 11 - УГО микросхемы AS7C1024-12JC

Организация памяти ОЗУ AS7C1024-12JC - 128Kx8. Напряжение питания - 5 В. Максимальное время доступа к ячейке - 12 нс. Максимальное время вывода - 6 нс. Максимальный ток потребления во время выполнения операции - 140 мА. Максимальный ток потребления в неактивном режиме - 10 мА.

Таблица 6. Сигналы ОЗУ AS7C1024-12JC

Сигнал

Назначение

I/O [0:7]

Входы/выходы информационные

А [0:15]

Сигналы шины адреса

Вход сигнала разрешения

Вход сигнала «Разрешение вывода информации»

Вход сигнала «Разрешение записи»

Вход сигнала «Разрешения выборки младших разрядов данных»

Вход сигнала «Разрешения выборки старших разрядов данных»

VCC

Вывод питания от источника напряжения

GND

Общий вывод

 

Программируемый параллельный адаптер

Для организации обмена с объектом управления и ПУ в МПС используется микросхема ППА КР580ВВ55, которая представляет собой программируемую интерфейсную БИС, с помощью которой возможна организация обмена параллельной информацией с различным периферийным оборудованием. Микросхема может быть использована для организации синхронного и асинхронного обмена. На рисунке 12 приведено УГО микросхемы, а в таблице 7 - назначение ее выводов.










Рисунок 12 - УГО микросхемы ППА КР580ВВ55

Таблица 7 - Назначение выводов БИС КР580ВВ55

Обозначен

Функциональное назначение

D0 - D7

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

WR

Запись информации. Подключается к линии MEMW ШУ МПС

RD

Чтение информации. Подключается к линии MEMR ШУ МПС

CS

Выбор микросхемы

SR

Сброс. По окончанию действия этого сигнала все каналы ППИ устанавливаются в режим 0

A0, A1

Разряды адреса

PA0 - PA7

Выводы канала А

PВ0 - PВ7

Выводы канала В

PС0 - PС7

Выводы канала С


Обмен информацией между каналами ввода-вывода и шиной данных МПС производится через двунаправленную шину D0-D7 и буфер данных БД в соответствии с сигналами на входах RD, WR, CS, а также сигналами A0, A1, определяющими адрес канала ввода-вывода (см. таблицу 8).

Таблица 8 - Сигналы управления микросхемой КР580ВВ55

Операция

Сигналы управления


CS

RD

WR

A1

A0

Запись управляющего слова из МП в РУС

0

1

0

1

1

Запись в канал A

0

1

0

0

0

Запись в канал B

0

1

0

0

1

Запись в канал C

0

1

0

1

0

Чтение из канала A

0

0

1

0

0

Чтение из канала B

0

0

1

0

1

Чтение из канала C

0

0

1

1

0

Отключение ППА от ШД МПС

1

x

x

x

x


Формат управляющего слова представлен в таблице 9. Управляющее слово, загруженное в регистр управляющего слова (РУС), настраивает порты ППА на указанный режим работы и направление передачи.

Таблица 9 - Формат управляющего слова ППА

D0

Направление передачи разрядов PC0..PC3 порта C («1» - ввод, «0» - вывод).

D1

Направление передачи разрядов PB0..PB7 порта В («1» - ввод, «0» - вывод).

D2

Режим работы порта В и разрядов PC0..PC3 порта C (0 - режим 0, 1 - режим 1)

D3

Направление передачи разрядов PC4..PC7 порта С («1» - ввод, «0» - вывод).

D4

Направление передачи разрядов PA0..PA7 порта А («1» - ввод, «0» - вывод).

D5

D5, D6 - Режим работы порта A и разрядов PC4..PC7 порта C (00 - режим 0, 01 - режим 1, 1x-режим 2).

D6


D7

D7 = «1» - признак управляющего слова ППА


Пример программирования ППА:

         al, 10010010B     ; установка ППА в режим ввода по каналам А и В

; и вывода по каналу С         al, CWPPA                   ; запись в РУС ППА    al, PA                            ; ввод содержимого PA в регистр al

Программируемый интервальный таймер

Программируемый интервальный таймер (ПИТ) обеспечивает генерацию заданных временных интервалов. В МПК I82386SX функции ПИТ выполняет микросхема КР580ВИ53. В разрабатываемой МПС ПИТ используется при формировании управляющих воздействий Y2 и Y3.


Рисунок 13 - УГО программируемого интервального таймера КР580ВИ53

Таблица 11 - Назначение выводов КР580ВИ53

Обозначение вывода

Тип вывода

Назначение выводов

D7-D0

Вход/выход

Шина данных

C0, C1, C2

Вход

Синхронизация каналов 0, 1 и 2 соответственно

OUT0, OUT1, OUT2

Выход

Выходы сигналов каналов 0,1 и 2 соответственно

CE0, CE1, CE2

Вход

Разрешение каналов 0, 1 и 2 соответственно

A0, A1

Вход

Разряды адреса

CS

Вход

Выбор микросхемы

RD

Вход

Чтение

WR

Вход

Запись

GND

-

Общий

Ucc

-

Напряжение питания


В проектируемой МПС один из каналов ПИТ используется в режиме 0 (для формирования управляющего воздействия Y3), а два оставшихся - в режиме 3 (для формирования управляющего воздействия Y2).

Пульт управления (ПУ)

ПУ состоит из 4-х частей:

1) Линейку из четырех светодиодов (рис. 14)

Рисунок 14 - УГО светодиодного индикатора

Светодиодный индикатор отображает значение старшей тетрады байтового результата вычисления функции MIN (X, K)+X.

2) Восемь тумблеров (рис. 15), определяющих значение константы K, используемой при реализации алгоритма работы МПС.

Рисунок 15 - УГО тумблеров

3) Кнопку КН1 «Сброс» (рис. 16), осуществляющую начальную установку и запуск МПС.

Рисунок 16 - УГО кнопки «Сброс»

4) Кнопки КН2 (рис. 17) и КН3 (рис. 18), обеспечивающие управление выдачей сигналов y2 и y3.

Рисунок 17 - УГО кнопки КН2

Рисунок 18 - УГО кнопки КН3

 

. Синтез и описание электрической принципиальной схемы


Обобщенная структура МПС представлена на рис. 1. Информация об объекте поступает в МПС по 16-разрядной шине. МПС воздействует на объект по 4-разрядной шине y1, линиям y2 и y3. Для управления работой и отображения информации об объекте в составе МПС имеется пульт управления.

Выходные воздействия y1, y2, y3 и показания индикатора вырабатываются МПС после программного вычисления результатов соответствующих функций от переменных x и к, где x - значение байта, принятого по входной 8-разрядной шине x; к - константа, установленная тумблерами на ПУ.

Управляющее воздействие y1, состоящее из четырех двоичных сигналов, вычисляется МПС программно на основе функции MIN (X, K)+X. Шина y1 принимает значение младшей тетрады полученного байтового результата вычисления функции.

На выходе y2 вырабатывается прямоугольный сигнал со скважностью 2. Период выходного сигнала в микросекундах вычисляется программно с помощью функции MAX (X, K)+4. Переключение с текущего значения частоты сигнала y2 на очередное значение, полученное после изменения параметров, определяющих эту частоту, происходит только при нажатии кнопки КН2, а также сбросе системы при включении питания или кнопки «Сброс». В остальных случаях изменение состояния входной шины x и положения тумблеров на ПУ не влияет на частоту сигнала y2.

При старте МПС сигнал y3 принимает нулевое значение. Спустя заданное время y3 переходит в единичное состояние и находится в нем до следующего старта системы. Время нахождения сигнала y3 в нулевом состоянии, выраженное в миллисекундах, вычисляется программно по формуле 2*MAX (X, K). Длительность сигнала y3=0 может быть произвольно увеличена на промежуток времени, в течение которого нажата кнопка КН3. После отпускания кнопки КН3 отсчет заданного времени продолжается.

Светодиодный индикатор отображает значение старшей тетрады байтового результата вычисления функции MIN (X, K)+X.

3. Карта распределения адресного пространства памяти


В разрабатываемой МПС объем адресного пространства памяти (АПП) намного превышает объем физически устанавливаемой памяти. В связи с этим распределение АПП производится, исходя из критерия минимума сложности дешифратора адреса ОЗУ и ПЗУ. При распределении АПП необходимо также учитывается, что после подачи питающего напряжения +5 и окончания действия сигнала RESET, выдаваемого схемой начального сброса на МП, последний переходит реальный режим адресации памяти и считывает первую команду программы из ячейки памяти с адресом FFFFF0h. Так как исполняемая программа в реализуемой МПС размещена в ИС ПЗУ, то под ПЗУ отведена область АПП, включающую в себя этот адрес. Содержимое регистров после аппаратного сброса:

FLAGS=0002h, MSW=FFF0h, CS=F000h, IP=FFF0h, DS=ES=SS=0000h.

Рисунок 23 - Распределение АПП МПС

В соответствии с рисунком 23, диапазон адресов АПП с 0…524287 (7FFFFh), используется для адресации имеющихся в МПС ячеек ОЗУ. В виду того, что диапазон адресов с 0 по 1023 используется подсистемой прерывания для размещения адресов подпрограмм обработки прерываний, использование этих ячеек ОЗУ для других целей нецелесообразно. Верхняя часть ОЗУ отведена под стековую память.

Диапазон адресов 983040…1048575 используется для адресации ячеек ПЗУ емкостью 64Кб. Первая (исполняемая) команда основной программы размещается по адресу FFFFFh минус размер модуля ПЗУ в байтах, при этом в ячейке по адресу запуска системы (FFFFF0h) размещается команда JMP START.

Основная же часть АПП ввиду небольших размеров ОЗУ и ПЗУ в МПС не используется.

Реализация дешифратора адреса ОЗУ и ПЗУ имеет вид, приведенный на рисунке 24.

Рисунок 24 - Реализация ДША ОЗУ и ПЗУ

На рисунке 24 сигналы CSROM и CSRAM обозначают, соответственно, сигналы выбора модулей ПЗУ и ОЗУ.

4. Карта распределения адресного пространства устройств ввода-вывода


В разрабатываемой МПС используется две микросхемы УВВ - ППА и ПИТ, в каждой из которых реализованы по четыре адресуемых устройства. Для микросхемы ППА это, соответственно, порты A, B и C (PA, PB и PC), а также регистр управляющего слова ППА (CWPPA). Для микросхемы ПИТ - это три таймера (T0, T1 и T2) и регистр управляющего слова ПИТ (CWPIT). В микросхеме ПКП адресуются 2 управляющих регистра.

Таким образом, из 65536 адресов адресного пространства ввода / вывода (АПУВВ), доступных МП, используется только 10.

Как и при распределении АПП, распределение адресов АПУВВ целесообразно произвести исходя из простоты реализации дешифратора АПУВВ. В связи с тем, что у процессора отсутствует адресная линия А0, нужно производить дешифрацию линий А4, А3, для адресации УВВ, а линиями А2, А1 адресовать внутренние регистры УВВ (рисунок 25).

Рисунок 25 - Распределение АПУВВ

5. Оценки

 

Оценка ёмкостей ОЗУ и ПЗУ в байтах

В данной работе используются два типа запоминающих устройств.

ПЗУ AT27C256R используется для хранения команд и констант (128 слов*8 разрядов).

Команды и данные необходимо хранить и выбирать по мере необходимости в процессе работы ЭВМ. Для этой цели применяют запоминающие устройства (ЗУ). Их можно разделить на два типа: ОЗУ и ПЗУ. ПЗУ используется для хранения команд и констант. Запись в ПЗУ сложна и занимает много времени, поэтому этот тип памяти применяется в тех случаях, когда не требуется изменять записанную однажды информацию. В данном курсовом проекте используется ПЗУ AT27C256R (128 слов*8 разрядов), а так как программа, реализующая алгоритм работы МПС занимает около 300 байтов, то используется две микросхемы данного типа.

ОЗУ используется для хранения данных, изменяющихся в процессе работы системы. Блок ОЗУ построен на основе 2 микросхем AS7C1024-12JC (256 слов*8 разрядов).

Оценка потребления токов от источников питания


Таблица 12. Потребление токов элементами составляет:

Тип микросхемы

Количество (шт.)

Ток потребления

Входной ток низкого уровня

Входной ток высокого уровня



мА

мА

мА

I386SX

1

305



К561ЛН1

8


0,01

0,02

К155ТМ2

2

не более 30



VXO-61

1

35



КР1533ИЕ19

1

27



AT27C256R

3

20



1533АП6

5

27



1533ИД14

1

41



К155ЛА4

2


не более 16,5

не более 6

AS7C1024

2

140



i8259a

1

не более 300



КР580ВИ53

1

не более 115



ВВ55

1

не более 0,075



Итого

29

1020,075

16,6

6,02

 

. Описание реализуемой программы на языке ассемблера


Для упрощения написания и последующего восприятия программы, возможности ее частичного написания до разработки аппаратной части МПС и для уменьшения затрат времени на отладку программы используются символической формы обозначения различных устройств, параметров, констант и т.д. Например, для адреса регистра порта «А» ППА определим константу PPA_A, адреса регистра порта «В» ППА определим константу PPA_В, и т.д.

Для хранения значений переменных X и K, а также результатов вычисления функций Y1, Y2, Y3 используются переменные Data_X, Data_K, Data_Y1, Data_Y2, Data_Y3.

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

В программе используются следующие процедуры:

1)      ProgramPrer - подпрограмма обработки прерывания. Эта подпрограмма вызывает подпрограмму ProgramCalculateY2SetPIT, не изменяя значение ax.

2)      ProgramKlavIn - подпрограмма опроса клавиатуры (порта А ППА). Эта подпрограмма помещает значение регистра порта А ППА и значение регистра порта В ППА в переменные Data_X и Data_K, не изменяя содержимое регистров общего назначения.

3)      ProgramCalculateY1SetY1SetInd - подпрограмма вычисления У1 и выводит результата в порт С.

4)      ProgramCalculateY2SetPIT - подпрограмма расчета Y2 и программирования ПИТ.

5)      ProgramCalculateY3SetPIT - подпрограмма расчета Y3.

В начале программы описана инициализация МПС, состоящая из следующих этапов:

)        Устанавливается режим запрета аппаратных прерываний.

)        Устанавливается сегмент данных на ОЗУ.

)        Устанавливается вектор прерывания

)        Программирование ППА

)        Программирование ПИТ

)        Программирование контроллера прерываний

Основная программа состоит из следующих операций: опрос порта А ППА, расчет У1, вывод У1 на порт С, возврат к опросу порта А.

Текст программы представлен в приложении.

Заключение


В процессе выполнения курсового проекта, была спроектирована схема микропроцессорной системы управления некоторым объектом. В пояснительной записке представлен синтез структурной и принципиальной схемы.

Составлен алгоритм работы МПС, разработана программа обеспечивающая выполнение заданного алгоритма, также была распределена область памяти под ОЗУ и ПЗУ. Проведена организация оперативной и постоянной памяти.

Был произведен расчет потребления тока от источника питания. Был оформлен чертеж микропроцессорной системы в виде электрической принципиальной схемы.

Данный проект может быть использован для создания микроконтроллера автоматизированного управления удаленным объектом.

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


1. Бикташев Р.А., Чернышев Н.И. Организация ЭВМ и систем: Учеб. пособие. - Пенза: Издательство ЦНТИ, 2012. - 163 с.

2.      Лебедев О.Н. Применение микросхем памяти в электронных устройствах: Справ. Пособие.-М. Радио и связь, 1994.-216с

.        Справочник Большие интегральные схемы ЗУ/ под редакцией Гордонова А.Ю., Дьяконова Ю.Н.

.        Справочник Полупроводниковые БИС ЗУ/ под редакцией Гордонова А.Ю., Дьяконова Ю.Н. Учебный микропроцессорный комплект: Техническое описание и руководство оператора.

.        Каган Б.М. Электронные вычислительные машины и системы: Учеб. пособие для вузов. - 3-е изд., перераб. и доп. - М.: Энергоатомиздат1991. - 592 с.


Приложение


Текст программы

;-

; - kp_386_Real_NoOS.asm                                                                    -

; - Текст программы для курсового проекта по ОЭВМ (i386).           -

; - После включения питания или сброса         регистры процессора            -

; - установлены: CS = F000h; IP = FFF0h; DS = SS = ES = 0.               -

; - Код программы должен быть размещен в микросхеме ПЗУ           -

; - в микросхеме ПЗУ начиная с нулевой ячейки                                 -

;-

; -      Адреса переменных, в сегменте данных ОЗУ. Размер переменных - слово

Data_X      EQU 0h     ; переменная Х (данные с шины Х)

Data_K      EQU 2h     ; переменная K (константа с тумблеров)

Data_X      EQU 4h     ; переменная Х (данные с шины Х)

Data_Y1    EQU 6h     ; результат вычисления функции Y1

Data_Y2    EQU 8h     ; результат вычисления функции Y2

Data_Y3    EQU 0Ah   ; результат вычисления функции Y3

; -      Определение констант

Adr_IRQ   EQU 36h   ; Адрес вектора в таблице прерываний

PIC_ICW1 EQU 0       ; Адрес контроллера прерываний (A0 = 0)

PIC_ICW2 EQU 2       ; Адрес контроллера прерываний (A0 = 1)

_0               EQU 8       ; Адрес регистра состояния счетчика 0 ПИТ_1                 EQU         10     ; Адрес регистра состояния счетчика 1 ПИТ_2                 EQU 12     ; Адрес регистра состояния счетчика 2 ПИТ_CW        EQU 14     ; Адрес регистра управления ПИТ

_A     EQU 16     ; Адрес регистра порта А ППА_B          EQU 18     ; Адрес регистра порта B ППА_C    EQU 20     ; Адрес регистра порта C ППА     _CW EQU 22         ; Адрес регистра управления ППА

         0       ; Начальный адрес микросхемы ROM

;-

; -      Инициализация                                                                              -

;-

:                           ; Запрет аппаратных прерываний

; - Установка сегмента данных на ОЗУ

mov  ax, 400h

mov  ds, ax         ss, ax

; - Установка вектора прерывания (адрес подпрограммы обработки прерывания)

mov  ax, offset ProgramPrer  ; Определение смещения адреса

; подпрограмм мы обработки прерывания

mov  es: Adr_IRQ, ax            ; Запись в два младших байта ТВП

; по адресу Adr_IRQ

push  cs

pop   ax      es: Adr_IRQ + 2, ax                       

; - Программирование ППА

mov  al, 10010000b               ; Управляющее слово для ППА

out    PPA_CW, al

; - Программирование ПИТ

call    ProgramCalculateY2SetPIT

call    ProgramCalculateY3SetPIT

; - Программирование контроллера прерываний    al, 00010010b     ; Запись ICW1 в КП (работа КП)

out    PIC_ICW1, al      al, 01000000b     ; Запись ICW2 в КП (номер вектора прерывания)

out    PIC_ICW2, al      al, 00000000b     ; Запись OCW1 в КП (маскирование прерываний)

out    PIC _ICW1, al                                 ; Разрешение аппаратных прерываний

;-

; -      Начало основной программы                                                               -

;-:

         ProgramKlavIn    ProgramCalculateY1SetY1SetInd   ProgramStart

;-

; -      Подпрограмма обработки прерывания                                      -

;-:      ax      ProgramCalculateY2SetPIT   ax

;-

; -      Подпрограмма опроса клавиатуры (порта А ППА)                            -

;-:      ax      dx     bx

; Принять и сохранить значение Х

in      ax, PPA_A

mov  ds: Data_X, ax

; Принять и сохранить значение К

in      ax, PPA_B ds: Data_K, ax


;-

; -      Подпрограмма рассчитывает У1 и выводит его в порт С                   -

;-SetY1SetInd:     ax      dx     bx

; расчет У1

mov ax, ds: Data_X      ; Перемещение переменной X в ax

cmp ax, ds: Data_K      ; Сравнивание X и K

jl xmin                         ; Если X меньше К, то переход на метку xminax, ds: Data_K          ; Перемещение переменной K в ax

xmin: add ax, ds: Data_x       ; MIN (X, K)+X

mov  ds: Data_Y1, ax  ; Cохранение результата

; Вывод в порт С

mov  bx, ax

and    ax, 0000000000001111b       ; выделение младшей тетрады в ax

and    bx, 0000000011110000b       ; выделение старшей тетрады в bx          ax, bx                            ; младшая и старшая тетрады в общий регистр ax

out    PPA_C, al

         bx     dx     ax

;-

; -      Подпрограмма расчета Y2 и программирования ПИТ                       -

;-SetPIT:     ax      dx

; расчет У2 ax, ds: Data_X   ; Перемещение переменной X в ax

cmp ax, ds: Data_K     ; Сравнивание X и K

jg xmax                       ; Если X меньше К, то переход на метку xminax, ds: Data_K         ; Перемещение переменной K в ax

xmax:         add ax, 4d                    ; MAX (X, K)+4

mov  ds: Data_Y2, ax

; программирование ПИТ по значению У2     ax, 0000000000011110b       ; записать младший байт в счетчик 0

; и установить режим 3

out    Adr_PIT_U, al

out    Adr_PIT_0, dl     ax, 0000000000101110b       ; записать старший байт

out    Adr_PIT_U, al     Adr_PIT_0, dh    ax, 0000000000001110b       ; защелкнуть         Adr_PIT_U, al     dx     ax

;-

; -      Подпрограмма расчета Y3                                                          -

;-SetPIT:     ax      dx

; расчет У3

mov ax, ds: Data_X     ; Перемещение переменной X в ax

cmp ax, ds: Data_K     ; Сравнивание X и K

jg xmax2                     ; Если X меньше К, то переход на метку xminax, ds: Data_K         ; Перемещение переменной K в ax

xmax2:ax, 2d                         ; MAX (X, K)*2  ds: Data_Y3, ax

; Программирование ПИТ для У3          ax, 0000000001010000b       ; записать младший байт в счетчик 0

; и установить режим 3

out    PIT_U, al

out    PIT_1, dl    ax, 0000000001100000b       ; записать старший байт

out    PIT_U, al   PIT_1, dh   ax, 0000000001000000b       ; защелкнуть       PIT_U, al         dx

pop   ax

ret

; - После сброса процессор выполняет команду из адреса CS:FFF0h

ORG 0FFF0hProgramBegin

         ProgramBegin

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

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!