Микропроцессорная система и ее основные элементы

 

Оглавление


1. Задание к курсовому проекту

2. Общая структура системы

3. Формирование сигнала выбора модуля

4. Структура памяти

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

5.1 Организация ПДП

5.2 Организация программируемого интервального таймера

5.3 Система прерываний

5.4 Реализация аппаратных интерфейсов вычислительных систем

6. Программное обеспечение

6.1 Начальная инициализация системы

6.2 Инициализация программируемых БИС

6.2.1 Программируемый контроллер ПДП

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

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

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

6.3 Подпрограммы обработки прерываний

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

Приложение


1. Задание к курсовому проекту


В курсовом проекте необходимо разработать микропроцессорную систему (МПС) на основе однокристального 8-разрядного микропроцессора КР580ВМ80А. Основные характеристики системы заданы в таблице 1.


Таблица 1. Основные характеристики

1Тип процессора КР580ВМ80А2Объем памяти ОЗУ32К3Тип и организация БИС ОЗУСОЗУ 32Кх84Объем памяти ПЗУ32 К5Тип и организация БИС ПЗУРПЗУ с УФ 8Кх86Контроль на паритет ОЗУ, контрольная сумма ПЗУНет7Контроллер ДОЗУНет8Количество цифровых входов8-разрядный порт ППИ, режим 09Количество цифровых выходов8 БР10Аппаратная реализация системы прерывания3 БИС КПР11Порядок обслуживания прерыванийФиксированный12Канал ПДПКПДП13Последовательный канал2 БИС ПСА14Таймер/счетчикестьСпособы обмена (организация ВВ) Программный ввод-вывод, ПДП, режим прерыванийТип интерфейсаRS-232CКонтроль на паритетестьХарактеристики аналогового канала8-разрядный АЦП

2. Общая структура системы


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

  1. Блок процессора;
  2. Схема начальной установки и формирования сигналов выбора устройств
  3. устройство памяти для хранения программ и массивов данных, включающее в себя ОЗУ и ПЗУ;
  4. устройства ввода - вывода, служащие для обмена информацией с ВУ.
  5. для формирования временных интервалов используется программируемый интервальный таймер.

Центральным процессорным элементом является микропроцессор КР580ВМ80А.

Функциональное назначение выводов МП следующее:

А0 - А15 Выходы для вывода 16 разрядов адреса

GND Общий

D0 - D7 Вход. /выход. Двунаправленная шина данных.

RESET Вход. Установка в начальное состояние.

HOLD Вход запроса ПДП.

INT Вход запроса прерывания.

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

INTE Выход разрешения прерываний.

DBIN Выход приема информации.

WR Выход выдачи информации.

SYNС Выходной сигнал синхронизации.

HLDA Выход. Подтверждение запроса ПДП.

RDY Вход. Сигнал готовность.

Интерфейс однокристального МП не обеспечивает его непосредственного соединения с системной магистралью. Для построения законченного модуля ЦП требуются дополнительные схемы: генератор тактовых импульсов (DD3), системный контроллер (DD2), буферные регистры (DD6, DD7).

Обслуживание входов С1, С2, READY, RESET взяла на себя микросхема КР580ГФ28 генератора тактовых импульсов. Выходной сигнал SYNC вводит синхронизацию его работы.

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

Контакты HOLD и HLDA служат для перевода системы в режим ПДП.

Сигналы DBIN, WR поступают на системный контроллер на микросхеме КР580ВК28 для формирования системных управляющих сигналов, таких как чтение из памяти (MEMR), запись в память (MEMW), ввод информации (I/OR), вывод информации (I/OW), подтверждение прерывания (INTA).

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

В этой схеме с помощью дополнительных элементов задаются следующие условия работы. Во-первых, тактовая частота генератора задается внешним кварцевым резонатором ZQ1 (конденсатор С2 корректирующий, подавляющий высокочастотные составляющие). Во-вторых, предполагается, что внешние устройства и память при обмене данными с микропроцессором не требуют тактов ожидания, т.е. могут работать также быстро, как и процессор, поэтому вход готовности RDYIN генератора тактовых импульсов, а через него и микропроцессора, соединен с источником питания +5В.

Резистор R2 ограничивает входной ток. Цепочка С1, R1 - типовая схема формирования импульса сброса нулевого уровня при замыкании ключа S1. Диод VD1 предохраняет вход ИС генератора от паразитных отрицательных импульсов, возникающих при переключении S1.

Системный контроллер помимо управляющих сигналов формирует и системную шину данных. Формирование системных (магистральных) шин необходимо потому, что нагрузочная способность выходов микропроцессора мала (2-3 входа ТТЛ-элемента). С целью увеличения нагрузочной способности шины адреса, считая, что проблему с шиной данных решает системный контроллер, в схему дополнительно вводят буферы (регистры или шинные формирователи) адреса.

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

3. Формирование сигнала выбора модуля


Для дешифрации портов ввода-вывода используется ИС дешифратора 4-х разрядного кода (линии А4-А7) в активный низкий уровень на одной из 16-и выходных линий. Разрешение дешифрации возможно при обращении МП к портам ввода/вывода (низкий уровень на линиях IOR, IOW), а также при отсутствии цикла ПДП (низкий уровень на линии AEN).

Назначение сигналов CS на выходах дешифратора ВУ приведены в таблице 2.


Таблица 2 "Назначение сигналов ВУ"

УстройствоРегистр устройстваНомер портаАдресные линииСигнал выбора устройстваA7A6A5A4A3A2A1A0КПР1ICW1, OCW100h00000000CSINT1ICW2, OCW2, OCW301h00000001КПР2ICW1, OCW110h00010000CSINT2ICW2, OCW2, OCW311h00010001КПР3ICW1, OCW120h00100000CSINT3ICW2, OCW2, OCW321h00100001КПДПРг. адреса канал 030h00110000CSDMAРг. счетчика циклов канал 031h00110001Рг. адреса канал 132h00110010Рг. счетчика циклов канал 133h00110011Рг. адреса канал 234h00110100Рг. счетчика циклов канал 235h00110101Рг. адреса канал 336h00110110Рг. счетчика циклов канал 337h00110111Рг. управляющего слова38h00111000Таймер-счетчик Канал 040h01000000CSPITКанал 141h01000001Канал 242h01000010Регистр управляющего слова43h01000011УСАПП1Регистр данных50h01010000CSPCA1Регистр управляющего слова51h01010001УСАПП2Регистр данных60h01100000CSPCA2Регистр управляющего слова61h01100001ППИПорт А70h01110000CSPPIПорт В71h01110001Порт С72h01110010Регистр управляющего слова73h01110011АЦПРегистр данных АЦП80h10000000CSAD

4. Структура памяти


Проектирование подсистемы памяти следует начинать с сопоставления объемов заданной памяти и размеров адресного пространства, прямо доступного из микропроцессора КР580ВМ80А. Объем этого адресного пространства определяется разрядностью программного счетчика, оно фиксировано и равно 64К. Если объем физически реализуемой памяти не превышает 64К, то дополнительных схемных решений для расширения адресного пространства не потребуется. Кроме того, следует учесть, что в задании часто указаны и адресные диапазоны, в которых должны быть размещены оперативная и постоянная память. Карта распределения памяти приведена на рисунке 3.



Согласно заданию объем оперативной памяти 32 Кb, объем ПЗУ 32 Kb. Данный объем памяти необходимо отобразить в адресное пространство в 64Kb. Адресное пространство процессора разделено на две части по 32 Kb для каждого типа памяти. Линия А15 осуществляет выбор памяти, к которой происходит обращение (RAM или ROM).

Для реализации ПЗУ объёмом 32 Кбайт используется 4 микросхемы M2732AF1 с организацией 8К х 8.

Оперативное запоминающие устройство объёмом 32 Кбайта выполнено на одной микросхем3 i51256 S/L с организацией 32К x 8.

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


5.1 Организация ПДП


ПДП используется при обмене данных между внешними устройствами и основной памятью. Для организации режима ПДП используется контроллер ПДП КР580ВТ57, регистр фиксации старшего байта адреса К580ИР82.

Основные возможности КПДП КР580ВТ57:

·Контроллер подключает 4 внешних устройства

·Независимо программируются 4 канала обмена

·Имеет фиксированные приоритеты обслуживания

·Размер передаваемых данных 16Кбайт

·Прямо доступно 64Кб памяти

Программно можно установить 3 режима: чтения, записи и верификации.

Контроллер построен по n-МДП технологии, имеет источник питания +5В. При программировании на входы RD и WR поступают сигналы IOR и IOW от системного контроллера. Линии A0-A3 используются для адресации внутренних регистров контроллера в режиме программирования и для выдачи соответствующих разрядов адреса в режиме ПДП.

При поступлении запроса на ПДП от внешнего устройства на вход контроллера, он выдает сигнал запроса HOLD, идущий к процессору. Процессор, получив этот запрос, переходит в режим ПДП, сообщая об этом сигналом HLDA. После этого, контроллер выдает на шину данных старшую часть адреса для области обмена и фиксирует ее в буферном регистре (КР580ИР82) сигналом ADSTB, после чего выдает сигнал AEN=1, который переводит выходы шинных формирователей в Z-состояние. Инверсный сигнал AEN (BUSEN) разрешает выдачу 8-и старших разрядов адреса буферным регистром на шину адреса. Далее контроллер работает в обычном режиме.

Программирование контроллеров ПДП осуществляется через порт с базовыми адресами 00h (линии A3-A0 отвечают за внутреннюю адресацию контроллера). Интерфейс с внешними устройствами представляет собой набор линий: запросов ПДП от внешнего устройства (DRQ0 - DRQ3) и сигнала готовности от внешнего устройства (READY), сигналов подтверждения (DACK0-DACK3), выходного сигнала последнего цикла (ТС), сигнала 128 байта (MARC), сигналов IOW и IOR, а также шины данных (D0 - D7). Все эти линии выведены на разъем Х5.


5.2 Организация программируемого интервального таймера


В качестве системного таймера-счетчика используется программируемый интервальный таймер КР580ВИ53. Микросхема выполнена по n-МОП технологии и имеет единственный источник питания +5В.

В состав БИС входят три 16-разрядных вычитающих счетчика. Связь ПИТ с микропроцессором осуществляется через двунаправленную 8-разрядную шину данных под управлением сигналов A0, A1, CSPIT, IOR и IOW. Перед началом работы каждый счетчик должен быть инициализирован посылкой слова состояния. Каждое слово состояния, за исключением операции защелки, сопровождается 1-2 байтами данных начального состояния счетчика. После этого начинается счет.

Входы GATE1. GATE0 подключены к источнику питания +5В. Канал 0 ПИТ используется как генератор синхроимпульсов для УСАПП 1, канал 1 используется как генератор синхроимпульсов для УСАПП 2. Канал 2 может использоваться программистом для различных целей. Для этого выходы ПИТ GATE2 и OUT2 выведены на разъем XS1.

5.3 Система прерываний


Источники запросов прерываний IRQ0-IRQ5 заняты системой:

IRQ0Запрос на прерывание от УСАПП по окончанию передачиIRQ1Запрос на прерывание от внешнего устройстваIRQ2Запрос на прерывание от АЦП (конец преобразования) IRQ5Запрос на прерывание от УСАПП по окончанию приемаIRQ6Запрос на прерывание от внешнего устройстваIRQ7Запрос на прерывание от внешнего устройства

Обработчики прерываний хранятся в ПЗУ и могут быть вызваны соответствующими источниками запроса.

Временная диаграмма контроллера прерываний:



5.4 Реализация аппаратных интерфейсов вычислительных систем


Разрабатываемая схема содержит последовательный канал интерфейс RS-232С. Этот интерфейс построен на базе микросхемы КР580ВВ51. Эта микросхема предназначена для аппаратной реализации последовательного канала связи между процессором и внешним устройством (ВУ), способным поддерживать протокол обмена данными в последовательном коде с УСАПП.

Микросхема КР580ВВ51 принимает параллельный код от микропроцессора, преобразует его в последовательный поток данных с присоединением служебными битами и передает его в линию связи, а также выполняет обратное преобразование: принимает последовательный поток данных из линии связи и преобразует его в параллельный 8-разрядный код, одновременно выполняя ряд функций по контролю над правильностью приема данных. Программирование БИС позволяет выбирать один из режимов работы: синхронный или асинхронный, а также установить скорость передачи/приема, контроль на чётность (нечетность) и другие параметры работы.

В разрабатываемой микропроцессорной системе УСАПП программируется на асинхронный режим со скоростью передачи 1: 1, длиной символа 8 бит, с контролем на четность и числом стоп-битов, равным 2.


Назначение сигналов интерфейса RS-232 приведено в таблице:

СигналN контактаНаправлениеНазначениеCD1входОбнаружение несущего сигналаRxD2входДанные, принимаемые компьютером в последовательном коде (логика отрицательная) TxD3выходДанные, передаваемые компьютером в последовательном коде (логика отрицательная) DTR4выходГотовность терминалаSG5-Общий сигналDSR6входГотовность данных к передачеRTS7выходСигнал запроса передачиCTS8входГотовность внешнего устройства к приемуRI9входИндикатор вызова

Все сигналы RS-232 передаются специально выбранными двухполярными уровнями, обеспечивающими высокую помехоустойчивость связи.

5.5 Организация аналоговых каналов

Система имеет два 8-и разрядных АЦП, организованных на базе микросхем 12-и разрядного АЦП К572ПВ1, операционного усилителя К553УД2 (DA1), 8-и разрядного буферного регистра КР580ИР82.

АЦП - устройство, предназначенное для преобразования непрерывных, аналоговых сигналов в цифровой код. Связь с МП, как и для многих типов ВУ, осуществляется в режимах программного ввода-вывода или прерываний. Данные считываются с АЦП после завершения цикла преобразования. При организации режима обмена данными через АЦП, как правило, для преобразователя в системе выделяется несколько адресов. С каждым из адресов при управлении работой АЦП программным способом связана определенная операция: запуск АЦП, чтение данных или признаков и т.п.

На Рисунке 7 приведена схема включения 8 - разрядного АЦП. Для управления буферными регистрами введен дополнительный дешифратор, управляемый сигналами CSADC с основного дешифратора внешних устройств и IOR с выхода системного контроллера, а также адресной линией АB0. Дешифратор позволяет получить два дополнительных адреса для буферных регистров и требуется в тех случаях, когда у основного дешифратора ВУ нет свободных выходов (адресов) для выбора буферных регистров АЦП.

Запуск АЦП производится из программы при выполнении команды OUT port. В адресной части команды указывается адрес АЦП, назначенный устройству при составлении таблицы адресов ВУ. Внешний сигнал запуска АЦП по входу STB формируется схемой 2И-НЕ, на входы которой подаются сигналы CSADC (от дешифратора ВУ) и IOW (от системного контроллера). На вход тактовых импульсов STB преобразователя подаются синхроимпульсы микропроцессорной системы, которые формируются, например, программируемым интервальным таймером.

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


Рисунок 7 - Схема включения 8 - разрядного АЦП.

6. Программное обеспечение


6.1 Начальная инициализация системы


Программа в ПЗУ рассчитана на то, что после сброса системы выполнение начинается с адреса 0000h. Программа инициализирует все устройства системы на установки, описанные ниже, устанавливает отображение первой страницы в окно ОЗУ (нулевая страница всегда отображена в память), устанавливает таблицу прерываний, вершину стека и инициализирует системные переменные. Инициализация заканчивается переходом на адрес С000h.


АдресМеткаМнемокодКомментарий0000JUMP StartПерейти к командам инициализации0350Start: DIЗапретить прерывания0351LXI SP, 87FFhЗагрузить вершину стека0354MVI A,00hЗадаем страницу ОЗУ0356OUT A, 00h0358CALL Test_ROMВызвать процедуру тестирования ПЗУ035BCALL Test_RAMВызвать процедуру проверки ОЗУ035ECALL InitВызвать процедуру инициализации контроллеров 0362CALL PollingВызвать подпрограмму обмена данными в режиме программного ввода/вывода0365EI

6.2 Инициализация программируемых БИС


0016Init: CALL DMA_INITВызвать процедуру инициализации КПДП0019CALL PIT_INITВызвать процедуру инициализации ПИТ001CCALL PCA_INITВызвать процедуру инициализации УСАПП001FCALL PPI_INITВызвать процедуру инициализации ППИ0022CALL KPR_INITВызвать процедуру инициализации КПР0025MVI H, 98Инициализация счетчиков памяти для 0027MVI L, 02для вывода данных ЦАП1 и ЦАП2MVI L, 020029SHLD 9800002BMVI H, A0002CSHLD A0000020RET

6.2.1 Программируемый контроллер ПДП

Контроллер ПДП имеет четыре канала, каждый из которых содержит 16-битный регистр адреса, 14-битный счетчик и 2-битный регистр режима канала.


Формат регистра режима.

D7D6D5D4D3D2D1D0ALTCSEWRPEN3EN2EN1EN0EN3. EN0 - разрешение работы каналов 0.3RP - задает приоритет обслуживания каналов, RP = 1 - циклический приоритет, RP = 0 - фиксированный приоритетEW - бит расширенной записиTCS - бит задания режима КС-счета, TCS = 0 - нормальное завершение режима ПДП, TCS = 1 - после завершения режима ПДП по обслуживанию канала i соответствующий бит ENi сбрасывается в 0AL - бит установки режима автозагрузки. AL = 1 - автоматически устанавливаются параметры режима канала 2 из параметров режима канала 3

Формат регистра состояния контроллера

D7D6D5D4D3D2D1D0---OFTC3TC2TC1TC0TC3. TC0 - окончание счета каналов 0.3OF - бит модификации для режима автозагрузки

Начальная инициализация контроллера ПДП

АдресМеткаМнемокодКомментарий0030DMA_INIT: MVI A, 00hЗаписать 00h в аккумулятор0032OUT 60hЗапретить работу всех каналов КПДП0034MVI A, low_addr_0В А - младший байт начального адреса канала 00036OUT 61hЗаписать его в ПДП0038MVI A, hi_addr_0В А - старший байт начального адреса канала 0003AOUT 61hЗаписать его в ПДП003CMVI A, low_count_0В А - младший байт счетчика адреса канала 0003EOUT 62hЗаписать его в ПДП0040MVI A, hi_count_0В А - старший байт счетчика адреса канала 00042OUT 62hЗаписать его в ПДПАналогично для канала 1, 2 и 30074MVI A, 0FhЗаписать в А инструкцию режима КПДП0076OUT 60hУстановить режим КПДП0078RET

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


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

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

Режим 0 - Прерывание по окончанию счета.

Режим 1 - Генератор одиночного импульса.

Режим 2 - Генератор прямоугольных импульсов.

Режим 3 - Генератор меандра.

Режим 4 - Одиночный программно-стробируемый сигнал.

Режим 5 - Одиночный аппаратно-стробируемый сигнал.


Формат управляющего слова

D7D6D5D4D3D2D1D0SC1SC0RL1RL0M2M1M0BCDBCD - BCD = 0 - двоичный счет, BCD = 1 - двоично-десятичный счетM2. M0 - номер режимаRL1. RL0 - тип операции: 00 - защелкивание, 01 - чтение/запись только младшего байта, 10 - чтение/запись только старшего байта, 11 - чтение/запись сначала младшего, затем старшего байтовSC1. SC0 - номер канала: 00 - счетчик 0, 01 - счетчик 1, 10 - счетчик 2, 11 - запрещенная комбинация

Канал 0 и 1 используются как генератор частоты для ПСА. Он программируется в режим 2. Зададим на канале 0 частоту 4800, а на канале 1 - 9600. Коэффициенты счета получим равные 416 и 208


АдресМеткаМнемокодКомментарий0080PIT_INIT: MVI A, 34hВ РУС - канал 0, режим 0, двоичный счет, задание0082OUT 33hи младшего и старшего байтов0086MVI A, A0hЗапись мл. байта коэффициента пересчета0088OUT 30hв канал 0008AMVI A, 01hЗапись ст. байта коэффициента пересчета008COUT 30hв канал 0008EMVI A, 54hВ РУС - канал 1, режим 2, двоичный счет, задание0090OUT 33hтолько младшего байта0092MVI A, D0hЗапись коэффициента пересчета в канал 10094OUT 31h009ERET

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

Программирование программируемого адаптера последовательного интерфейса осуществляется в несколько этапов:

.Инструкция управления с кодом 40h - программный сброс.

2.Инструкция режима - определяет основные параметры режима обмена данными.

.Инструкция управления - определяет дополнительные условия, сопровождающие процесс обмена.


Формат инструкции режима

D7D6D5D4D3D2D1D0ST1ST0P1P0L1L0DR1DR0DR1. DR0 - Режим работы: 00 - синхронный режим, 01 - асинхронный 1: 1, 10 - асинхронный 1: 16, 11 - асинхронный 1: 64L1. L0 - Длина символа: 00 - 5 бит, 01 - 6 бит, 10 - 7 бит, 11 - 8 бит. P0 - 1 - разрешить контроль на паритет, 0 - запретить контроль на паритетP1 - 1 - контроль на четность, 0 - контроль на нечетностьST1. ST0 - Число стоп-бит в асинхронном режиме: 00 - запрещенная комбинация, 01 - 1 стоп-бит, 10 - 1,5 стоп-бита, 11 - 2 стоп-бита

Формат инструкции управления

D7D6D5D4D3D2D1D0EHIRRTSERSBRKRxEDTRTxETxE - Бит разрешения работы передатчикаDTR - Управление выходом DTRRxE - Бит разрешения работы приемникаSBRK - 0 - нормальный режим работы - при отсутствии передачи на выходе передатчика 1, 1 - при отсутствии передачи на выходе передатчика 0ER - Бит сброса триггеров ошибок: 1 - сбросить триггер ошибок, 0 - сохранить триггер ошибокRTS - Управление выходом RTSIR - Установка программного сбросаEH - Устанавливается в синхронном режиме работы: 1 - поиск синхроимпульсов, 0 - поиска синхроимпульсов нет

В разрабатываемой микропроцессорной системе ПСА программируется на асинхронный режим со скоростью передачи 1: 1, длиной символа 8 бит, с контролем на четность, числом стоп-битов, равным 2.


АдресМеткаМнемокодКомментарий0100PCA_INIT: DIЗапретить прерывания0101MVI A, 40hПрограммный сброс контроллера0103 OUT 41h0105OUT 51h0107MVI A, FDhЗапись в ПСА инструкции режима0109 010BOUT 41h OUT 51h010DMVI A,17hЗапись в ПСА инструкции управления010F 0111OUT 41h OUT 51h0113MVI H, A8Инициализация счетчиков памяти для 0115MVI L, 02Ввода и вывода информации контроллеров0117SHLD A800011AMVI H, B0011СSHLD B000011FMVI H, B80121SHLD B8000124MVI H, C00126SHLD C0000129EIРазрешить прерывания0130RET

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


Перечень прерываний, обслуживаемых контроллером, имеет вид:

Номер прерыванияУстройство, от которого поступает запрос на прерываниеIRQ0IRDRAMЗапрос на ошибку ОЗУIRQ1IRT1Запрос на прерывание от УСАПП по окончанию передачиIRQ2IRR1Запрос на прерывание от УСАПП по окончанию приемаIRQ3IRT2Запрос на прерывание от УСАПП по окончанию передачиIRQ4IRR2Запрос на прерывание от УСАПП по окончанию приемаIRQ6, IRQ5, IRQ7Запрос на прерывание от внешнего устройства

При инициализации контроллера задаются расположение таблицы прерываний, размер одной ячейки в таблице прерываний, количество контроллеров прерываний в системе. При программировании примем, что в системе один контроллер прерываний, размер одной ячейки в таблице прерываний 4 байта и таблица прерываний расположена по адресам 0140h - 015Fh. Таблица прерываний имеет вид:


АдресМеткаМнемокодКомментарий0140JMP IRDRAMПереход на обработчик прерывания IRQ00144JMP IRT1Переход на обработчик прерывания IRQ10148JMP IRR1Переход на обработчик прерывания IRQ2014CJMP IRT2Переход на обработчик прерывания IRQ30150JMP IRR2Переход на обработчик прерывания IRQ40154JMP IRQ5Переход на обработчик прерывания IRQ50158JMP IRQ6Переход на обработчик прерывания IRQ6015CJMP IRQ7Переход на обработчик прерывания IRQ7

Программирование контроллера выполняется последовательностью управляющих слов двух типов: командами инициализации ICW и командами управления OCW.

Команды начальной установки ICW1 и ICW2 переводят БИС КПР в состояние готовности к обработке запросов прерываний. Инициализация контроллера начинается с записи в него команды ICW1. Формат команды ICW1:


A0D7D6D5D4D3D2D1D00A7A6A510ADISNGL0

Разряд D1 (SNGL) программирует число контроллеров в системе. При D1=1 контроллер один, в противном случае - несколько (до 8), и для начальной установки необходима команда ICWЗ.

Разряд D2 (АDI) задает адресный интервал в таблице обработчика прерываний. Если D2=1, то интервал равен четырем, а при D2=0 - восьми.

Положение таблицы прерываний в адресном пространстве произвольно и задается при программировании в разрядах D7-D5 команды ICW1 и команды ICW2, содержащей старший байт адреса таблицы.


A0D7D6D5D4D3D2D1D01A15A14A13А12А11А10А9А8

Команды ICW1 и ICW2 сбрасывают в ноль все разряды IRR и IMR, устанавливают приоритеты для входов IRQ0. IRQ7 (IRQ0 - высший приоритет, IRQ7 - низший приоритет) и определяют начальный адрес подпрограммы, обслуживающей прерывания по входу IRQ0. Адреса обработчиков прерываний по входам IRQ1-IRQ7 автоматически задаются смещением (сдвигом) относительно начала таблицы.


АдресМеткаМнемокодКомментарий0160_INIT: DIЗапретить прерывания0161MVI A, 56hИнициализация КПР: 0163OUT 10hзадать один КПР, ячейка таблицы 0165MVI A,00000001bпрерываний 4 байта, адрес таблицы прерываний0167OUT 11hравен 0140h0169MVI A, 10100000bУстановка циклического сдвига прерываний016BOUT 10h016DMVI A,00hРазрешить все прерывания016FOUT 11h0171EIРазрешить прерывания0172RET

Разрешение и запрещение прерываний может осуществляться программой пользователя по необходимости.


6.3 Подпрограммы обработки прерываний


По окончанию передачи данных от первого УСАПП вызывается обработчик прерывания IRT1.


АдресМеткаМнемокодКомментарий01DDIRT1: DIЗапрет прерываний01DFPUSH PSW01E0LHLD A800hЧитаем след. для записи адрес01E3LDAX HЗаносим в аккумулятор байт для передачи01E4OUT 40hПередаем новый байт в буфер УСАПП01E6INX HИнкрементируем адрес01E7MVI A, AFhПроверка на конец блока данных01E9CMP H01EAJNZ ENDIRT101EDMVI A, FFh01EFCMP L01F0JNZ ENDIRT101F3MOV H, A8hПереходим в начало блока01F5MOV L, 02h01F7ENDIRT1SHLD A800hСохраняем значение следующего адреса01FAMVI A, 20h01FCOUT A0h01FEPOP PSW01FFEI0200RET

По окончанию приема данных от первого УСАПП вызывается обработчик прерывания IRR1.


АдресМеткаМнемокодКомментарий0202IRT1: DIЗапрет прерываний0203PUSH PSW0204LHLD B800hЧитаем след. для записи адрес0207IN 40hЧитаем новый байт в буфер УСАПП0209STAX HСохраняем бит в памяти020AINX HИнкрементируем адрес020BMVI A, ВFhПроверка на конец блока данных020DCMP H020EJNZ ENDIRR10211MVI A, FFh0213CMP L0214JNZ ENDIRR10217MOV H, B8hПереходим в начало блока0219MOV L, 02h021BENDIRR1SHLD B800hСохраняем значение следующего адреса021EMVI A, A0h0220OUT 10h0222POP PSW0223EI0224RET

По окончанию передачи данных от второго УСАПП вызывается обработчик прерывания IRT2.


АдресМеткаМнемокодКомментарий0227IRT2: DIЗапрет прерываний0228PUSH PSW0229LHLD B000hЧитаем след. для записи адрес022СLDAX HЗаносим в аккумулятор байт для передачи022DOUT 50hПередаем новый байт в буфер УСАПП022FINX HИнкрементируем адрес0230MVI A, B7hПроверка на конец блока данных0232CMP H0232JNZ ENDIRT20235MVI A, FFh0237CMP L0238JNZ ENDIRT2023AMOV H, B0hПереходим в начало блока023CMOV L, 02h023EENDIRT2SHLD B000hСохраняем значение следующего адреса0241MVI A, А0h0243OUT 10h0245POP PSW0246EI0247RET

По окончанию приема данных от второго УСАПП вызывается обработчик прерывания IRR1.


АдресМеткаМнемокодКомментарий024AIRT1: DIЗапрет прерываний024BPUSH PSW024CLHLD C000hЧитаем след. для записи адрес024FIN 50hЧитаем новый байт в буфер УСАПП0251STAX HСохраняем бит в памяти0252INX HИнкрементируем адрес0253MVI A, C7hПроверка на конец блока данных0255CMP H0256JNZ ENDIRR10259MVI A, FFh025BCMP L025CJNZ ENDIRR1025FMOV H, C0hПереходим в начало блока0261MOV L, 02h0263ENDIRR1SHLD B800hСохраняем значение следующего адреса0266MVI A, A0h0268OUT 10h026APOP PSW026BEI026CRET

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


1. Александров К.К., Кузьмина Е.Г. Электрические схемы и чертежи. - М.: Энергоатомиздат, 1990. - 288 с.

. Зорин А.Ю. Условные графические изображения на электрических схемах / под. ред. А.И. Питолина. М.: Издательский дом МЭИ, 2007. - 74 с.

. Гук М. Аппаратные интерфейсы ПК. Энциклопедия. - СПб.: Питер, 2003. - 528 с.

. Ключев А.О., Ковязина Д.Р., Петров Е.В., Платунов А.Е. Интерфейсы периферийных устройств. - СПб.: СПбГУ ИТМО, 2010. - 290 с.

Приложение



Оглавление 1. Задание к курсовому проекту 2. Общая структура системы 3. Формирование сигнала выбора модуля 4. Структура памяти 5. Организация

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2018 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ