Самітов М. КІТ-14б
ОРГАНІЗАЦІЯ ПЕРЕРИВАНЬ В 8-МИ И 16-ТИ РОЗРЯДНИХ СИСТЕМАХ
Ціль: Вивчення механізму переривань в 8-ми й 16-ти розрядних мікропроцесорних системах МПС), їхніх типів, алгоритмів і засобів їхньої обробки, придбання практичних навичок у розробці подпрограм обслуговування переривань і налагодженню програм за допомогою крапок переривання.
Для виводу інформації в ПКП використаються 2 порти вводу-виводу. Порт із парною адресою (звичайно це порт 20h) і порт із непарною адресою (звичайно 21h). Через ці порти можуть бути передані 4 слова ініціалізації (Initialization Control Word, ICW1 - ICW4), що задають режим роботи ПКП, і 3 операційних керуючих слова (слова робочих наказів, Operation Control Words, OCW1 - OCW3). У порт із парною адресою виводяться ICW1, OCW2 й OCW3. OCW2 відрізняється від OCW3 тим, що біт 3 в ocw2 дорівнює 0, а в OCW3 дорівнює 1. У той же час біт 4 в OCW2 й OCW3 дорівнює 0, а в ICW1 дорівнює 1. У такий спосіб за значенням, виведеному в порт із парною адресою, однозначно визначається, у який регістр (ICW1, OCW2 або OCW3) заносяться дані.
Друге слово робочих наказів (OCW2) призначене для выво-
так команди завершення обробки апаратного переривання (EOI),
циклічного зрушення і явної зміни пріоритетів рівнів. Наз-
начение битов OCW2 наступне:
A0 7 6 5 4 3 2 1 0
┌────┬────┬────┬────┬────┬────┬────┬────┬────┐
│ 0 │ R │ SL │ EOI│ 0 │ 0 │ L2 │ L1 │ L0 │
└────┴─┬──┴─┬──┴─┬──┴────┴────┴─┬──┴─┬──┴─┬──┘
│ │ │ │ │ └──> Ці 3 бита визначають
│ │ │ │ └───────> номер рівня
│ │ │ └────────────> переривання, якщо воно
│ │ │ необхідно у команді.
│ │ │
│ │ │
│ │ └───────────────────────────> 1-команда завершення
v v обробки
┌────┬────┐ апаратного
│ 0 │ 0 │ Використовується разом з EOI=1 переривання
├────┼────┤
│ 0 │ 1 │ Специфіцированний EOI (скидає біт, визначаємий
├────┼────┤ рядками L0 - L2 в ISR)
│ 1 │ 0 │ циклічний зсув пріоритетів на одну вліво
├────┼────┤ позицію
│ 1 │ 1 │ Встановлення найнижчого пріоритету вказаному у рядках
└────┴────┘ L0 - L2
{ Вашій увазі пропонується програма, що ілюструє
особливості написання оброблювачів переривань від таймера й клавиа-
тури, а також програмування контролера в режимі автоматичного
завершення переривання.}
{$m,$800,0,0}
program cont_int; { програмування ПКП й }
uses crt,dos; { обробка переривань }
var i:integer;
procedure scan; interrupt; { оброблювач переривання }
begin { від клавіатури}
asm sti end; { дозволити переривання }
writeln(port[$60]); { обов'язкове читання порту }
port[$20]:=$80;
meml[0:9*4]:=meml[0:$60*4]; { відновлення вектора 9 }
port[$21]:=1; {**} { OCW1:маскирование таймера }
delay(5000); {**} { протягом 5 сек. }
port[$21]:=0; {**} { размаскирование таймера }
delay(5000); { переривання від таймера перериває }
{ обробку переривання від клавіатури }
port[$20]:=$a1; { скидання біта ISR рівня 1 }
meml[0:8*4]:=meml[0:$62*4]; { відновлення вектора 8 }
end; {scan}
procedure tick; interrupt; { оброблювач переривання }
begin { від таймера }
if i>20 then begin
write('8'); { вивід "8" через 1 сек }
i:=0
end else inc(i);
port[$20]:=$20; {* -} { скидання біта ISR найвищого рівня }
end; {tick}
begin
if meml[0:$61*4]<>12345 then { реалізація можливості повторного }
begin { запуску резидентної програми }
meml[0:$62*4]:=meml[0:8*4]; { збереження системних оброблювачів }
meml[0:$60*4]:=meml[0:9*4]; { переривань від таймера й клавіатури }
meml[0:$61*4]:=12345;
end;
i:=0;
port[$20]:=$11; {ICW1} {* +} { керуючого слова }
port[$21]:=8; {ICW2} {* +} { ICW1 - ICW3 }
port[$21]:=4; {ICW3} {* +} { не змінені }
port[$21]:=3; {1} {ICW4} {* +} { режим автоматичного завершення }
meml[0:9*4]:=longint(@scan); { установка оброблювача переривання 9 }
meml[0:8*4]:=longint(@tick); { установка оброблювача переривання 8 }
keep(0) { програма - резидентна }
end.
Вивід: вивчив механізми переривань в 8-ми й 16-ти разряядных мікропроцесорних системах МШС), їхніх типів, алгоритмів і засобів їхньої обробки, придбання практичних навичок у розробці одпрограмм обслуговування переривань і налагодженню програм за допомогою крапок переривання.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.