Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Мікропроцесорна система і її основні елементи

Реферат Мікропроцесорна система і її основні елементи





fy"> АдресМеткаМнемокодКомментарій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Чітаем новий байт в буф...


Назад | сторінка 6 з 7 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Cтенд для вивчення і дослідження контролера пріоритетних переривань
  • Реферат на тему: Переривання і виключення
  • Реферат на тему: Переривання вагітності
  • Реферат на тему: Цикли, переривання, компоненти для відображення тексту
  • Реферат на тему: Внутрішньоутробне вдосконалення людини і переривання вагітності