Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабраб.DOC
Скачиваний:
0
Добавлен:
22.08.2019
Размер:
1 Mб
Скачать

4.2 Порядок виконання роботи

  1. Ознайомитися з особливостями інтерфейсів мікропроцесорних систем, вивчити їх атрибути.

  2. Вивчити механізм програмного опитування пристроїв АЦП мікропроцесорною системою.

  3. Відповідно до запропонованої блок-схеми алгоритму (рис. 4.8) написати програму мовою асемблера для МП К1810ВМ86, що забезпечує взаємодію мікропроцесорної системи з пристроєм АЦП.

  4. За допомогою текстового редактора ввести текст програми керування обміном інформацією з АЦП мовою асемблера для МП К1810ВМ86 та зберегти його в каталозі C:\CPU\TASM\WORK.

  5. Перевірити правильність роботи розробленої програми.

  6. Закрити проект – «Project/Close Project».

  7. Вийти з програми.

  8. Скласти звіт щодо виконаної роботи.

Рис. 4.8 - Блок - схема алгоритму керування обміном інформацією з АЦП

4.3 Зміст звіту

  1. Титульний аркуш.

  2. Найменування та мета лабораторної роботи.

  3. Короткі теоретичні відомості.

  4. Отримане у викладача завдання (текст програми з докладними коментарями).

  5. Опис виконання кожного пункту завдання.

  6. Письмові відповіді на контрольні питання.

4.4 Контрольні запитання

  1. Що називається інтерфейсом мікропроцесорної системи?

  2. Які типи інтерфейсів використовуються у мікропроцесорних системах?

  3. Опишіть призначення АЦП та принципи його функціонування?

  4. В чому полягає зміст теореми Котельнікова?

  5. Які типи АЦП ви знаєте? В чому полягає відмінність організації аналогово-цифрового перетворення в них? Назвати переваги і недоліки кожного типу АЦП.

  6. Для чого призначені перетворювачі кодів?

  7. Яким чином здійснюється узгодження пристрою АЦП з мікропроцесором і пам’яттю?

  8. Навести приклади програмного коду ініціалізації програмованого паралельного інтерфейсу (ППІ) і8255.

Лабораторна робота № 5 програмне опитування зовнішніх пристроїв. Програмування паралельного інтерфейсу

Мета роботи.

Освоїти навички програмування опитування зовнішніх пристроїв мовою асемблера для К1810. Вивчити дію команд обміну даними.

5.1 Теоретичні відомості

Паралельні інтерфейси характеризуються тим, що в них для передачі біт у слові використовуються окремі сиґнальні лінії, і всі біти передаються одночасно. Паралельні інтерфейси використовують логічні рівні ТТЛ (транзисторно-транзисторної логіки), що обмежує довжину з’єднуючого кабелю з причини невисокої перешкодозахищеності ТТЛ-інтерфейсу. Гальванічна розв'язка відсутня. Паралельні інтерфейси використовують для підключення принтерів. Передача даних може бути як однонаправленою (Centronics), так і двонаправленою (Bitmіnics). Іноді паралельний інтерфейс використовують для зв'язку між двома комп'ютерами. Нижче будуть розглянуті протоколи інтерфейсів Centronics, а також порти РС, що реалізовують їх.

Паралельний порт комп'ютера (інтерфейс “Centronics”) призначений для підключення принтера. Проте його сиґнали можна використовувати довільно при підключенні нестандартних пристроїв.

Адаптер паралельного інтерфейсу являє собою набір реґістрів, розташованих в просторі введення/виведення. Реґістри порта адресуються щодо базової адреси порту, стандартними значеннями якої є 3BCh, 378h і 278h. Порт може використовувати лінію запиту апаратного переривання, зазвичай IRQ7 або IRQ5. Порт має зовнішню 8-бітову шину даних, 5-бітову шину сиґналів стану і 4-бітову шину керуючих сиґналів.

Сиґнали інтерфейсу можна розділити на чотири групи:

  1. Восьмирозрядна шина даних для отримання сиґналів з комп'ютера (сиґнали D0-D7);

  2. Чотирьохрозрядна шина керування для отримання сиґналів з комп'ютера (сиґнали -STROBE, -AUTO FD, -INIT, -SLCT IN);

  3. П’ятирозрядна шина стану для читання інформації в комп'ютер (сиґнали -ACK, BUSY, PE, SLCT, -ERROR);

  4. Шина “земля”.

Шина DATA

Восьмирозрядна шина даних (D0 - D7) призначена для передачі з комп'ютера в принтер. Логіка сиґналів - позитивна.

Шина CONTROL

  • STROBE — стробує даних. Комп'ютер повідомляє принтер про готовність до передачі даних.

  • AUTOFEED — автоматичний переклад рядка. При отриманні цього сиґналу принтер переводить рядок.

  • INIT — сиґнал скидання принтера. Відбувається очищення буфера друку. Тривалість сиґналу 2,5 мкс.

  • SELECT IN — сиґнал вибору принтера перед передачею даних.

Решта сиґналів зазвичай не представлена при розводці стандартних кабелів для підключення принтера.

Шина STATUS

  • ACK — вхідний для комп'ютера сиґнал. Принтер підтверджує ухвалення даних і готовність отримання наступних даних. Здійснюється асинхронний обмін.

  • BUSY - вхідний для комп'ютера сиґнал. Принтер повідомляє про зайнятість і неготовність прийняти наступні дані, а також про вимкнений стан, відсутність паперу, помилку друку.

  • PE - вхідний для комп'ютера сиґнал про закінчення паперу.

  • SLCT - сиґнал принтера про готовність приймати дані.

  • ERROR - сиґнал про помилку принтера.

Функція DOS 05h Виведення символу в стандартний пристрій PRN

Введення:

АН = 05h DL = символ

Крім того, можна користуватися функцією запису у файл або пристрій, помістивши у ВХ число 4, відповідне пристрою PRN. BIOS, у свою чергу, надає базовий набір з трьох функцій для роботи з принтером.

INT 17h, АН = 00 Вивести символ в принтер

Введення:

АН = 00h AL = символ DX = номер паралельного порту (00 LPT1, 01 LPT2, 02 LPT3)

Виведення:

АН = стан принтера:

біт 7: принтер не зайнятий біт 6: підтвердження біт 5: немає паперу біт 4: принтер в змозі on-line біт 3: помилка введення-висновку біт 0: тайм-аут

INT 17h, АН = 01 Виконати апаратне скидання принтера

Введення:

АН = 01h DX = номер порту (00h 02h)

Виведення:

АН = стан принтера

INT 17h, AH = 02 Отримати інформацію про стан принтера

Введення:

АН = 02h DX = номер порту (00h 02h)

Виведення:

АН = стан принтера

Наприклад, щоб роздрукувати вміст екрану на принтері, можна написати таку програму:

; prtscr.asm

; роздрукувати поточний вміст екрану на принтері

;

.model tiny ;модель пам’яті для файлів типу СОМ

.code

.186 ;для команди push 0B800h

org 100h ;початок СОМ-файла

start:

mov ah,1

mov dx,0 ;вибір порта LPT1

int 17h ;ініціалізувати принтер

cmp ah,90h ;перевірка: якщо принтер не готовий

jne printer_error ;видати повідомлення про помилку

push 0B800h ;інакше зберегти в стек фрагмент відеопам’яті

;адресою 0В00h

pop ds ;у DS = сеґмент відеопам'яті в текстовому режимі

xor si,si ;очищення SI = 0

mov cx,80*40 ;в CX = число символів на екрані

cld ;рядкові операції вперед

main_loop:

lodsw ;AL - символ, АН - атрибут, SI = SI + 2

mov ah,0 ;АН - номер функції

int 17h ;виведення символу з AL на принтер

loop main_loop

ret ;закінчити програму

printer_error:

mov dx,offset msg ;адреса повідомлення про помилку в DS:DX

mov ah,9

int 21h ;виведення рядка на екран

ret

msg db "Принтер на LPT1 знаходиться в режимі offline або занятий$"

end start

Щоб роздрукувати вміст екрана в текстовому режимі на LPT1, достатньо всього лише однієї команди INT 05h, що в точності еквівалентно натисненню клавіші PrtScr.