МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
КІРОВОГРАДСЬКИЙ ДЕРЖАВНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ
КАФЕДРА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
КУРСОВИЙ ПРОЕКТ
З ДИСЦИПЛІНИ: “АРХІТЕКТУРА ЕОМ”
ТЕМА:
“Програма контролю наявності зв’язку комп’ютера зпристроєм через паралельний порт протягом 15 секунд"
Зміст
Вступ
1. Призначення та область використання
2. Огляд існуючих пристроїв, систем, програмного забезпечення, обгрунтування вибору принципа розробки та методикипобудови програми
3. Опис та обгрунтування проектних рішень по проектуваннюпрограми
4. Реалізація проекту
5. Інструкція користувача
6. Основні висновки
Список літератури
Додаток
Текст програми
Блок-схема програми
Вступ
Для ефективної роботи систем керування різнимипристроями їх підключають до комп’ютерів. З комп’ютера можуть видаватисярізноманітні команди для пристрою, пристрій може передавати різні сигналикомп’ютеру про свій стан.
Для зв’язку використовуються спеціальніпристрої, такі як послідовні та паралельні адаптери. Послідовні передають даніпо одному біту, паралельні — одночасно. Паралельні забезпечують більшушвидкість роботи, але вимагають більше з’єднувальних ліній.
У даній роботі розглянуто програму, якаприймає дані з зовнішнього пристрою через паралельний порт. Якщо дані незмінюються (там знаходиться якесь одне значення), то програма повідомляє про це.
1. Призначення та область використання
Програма призначена для контролю зв’язкукомп’ютера з зовнішнім пристроєм через паралельний порт. У випадку якщо новідані не надходять, то програма видає відповідне повідомлення.
Програма може бути використана на комп’ютері зпаралельним адаптером і операційною системою MS-DOS.
2. Огляд існуючих пристроїв, систем,програмного забезпечення, обгрунтування вибору принципа розробки та методикипобудови програми
Програм для зв’язку комп’ютера з іншимикомп’ютерами чи зовнішніми пристроями дуже багато. Вони використовуються дляпередачі файлів, для підключення комп’ютерів до різних мереж, а також дляз’єднання комп’ютерів з різними пристроями.
Операційні системи містять стандартні програмидля передачі файлів, з’єднання з мережами за допомогою пристроїввведення-виведення. Для різних пристроїв переважно створюється різнеспеціалізоване програмне забезпечення.
Програма для ведення контролю за наявністюданих буде визначати, чи змінюються дані на вході адаптера протягом 15с. Якщотаких даних не буде, то програма повідомить про це.
3. Опис та обгрунтування проектнихрішень по проектуванню програми
Наведемо деякі відомості про роботупаралельного адаптера.
Будь-який МП-системі необхідні засоби обмінуданими із зовнішніми периферійними пристроями. В залежності від умовконкретного застосування та характеристик периферійного обладнання передачаданих виконується в паралельному або послідовному форматі. Спільність функцій введення-виведеннястимулювала розробку ВІС периферійних адаптерів, що являють собою гнучкіпрограмовані прилади, зорієнтовані виключно на введення-виведення. Зараз такіадаптери стали неодмінними компонентами практично всіх мікропроцесорнихсімейств.
Як приклад типового паралельного периферійногоадаптера, або програмованого паралельного інтерфейсу, нижче розглядаєтьсямікросхема КР580ВВ55А.
На рисунках 1.1 a) і 1.1 б) наведеніструктурна схема адаптера і його програмна модель. Підключення периферійногообладнання виконується через три двонаправлених 8-бітних порти (або канали)
A, B і C. Інтерфейс із системною шиноюздійснюється за допомогою ліній:
D (0-7) — двонаправлена шина даних з тристабільнимикаскадами.
A1,A0 — лінії адреси, котрі вибираютьвнутрішній регістр адаптера, комутований на шину даних:
00 — порт A, 01 — порт B, 10 — порт C, 11 — регіструправляючого слова.
CS — активний вхід вибірки кристала; високийрівень забороняє, а низький дозволяє зв'язок приладу із системною шиною даних.
RD — активний вхід зчитування інформації ізадресованого по лініям A0, A1 регістру на шину даних.
WR — активний вхід запису інформації з шиниданих в адресований по A0 і A1 внутрішній регістр адаптера.
RESET — активний сигнал для приведення приладуу вихідний стан;
при дії сигналу регістр управлінняобнуляється, а всі три порти налаштовуються в режим введення.
Відмітимо, що зчитування з регістру управління(RD=0,A1=1,A0=1) не допускається, а одночасний запис та зчитування (RD=0,WR=0) призводятьдо непередбачуваних наслідків.
Програмування адаптера полягає в завантаженніуправляючого слова в регістр управління. Формат управляючого слова визначення режиму,що ідентифікується умовою D7=1, наведені на мал. 1.2 Відмітимо, що 8-бітніпорти A і B не разділені, а лінії порта C розділені на дві 4-бітні групи, щоявляють собою два незалежних порти.
Наприклад, управляюче слово конфігурації портуA на введення в режимі 0, порта B на виведення в режимі 1, біта 3 порту C навведення та біта 7 порту C на виведення матиме код 11010101b.
Управляюче слово з нульовим старшим бітом D7=0використовується для встановлення і скидання будь-якого біту порта C. Біти D (6-4)в цьому випадку не використовуються і містять нулі, біти D (3-1) містять двійковийномер (адресу) модифікованого біта порту С, а біт D0 задає встановлення (D0=1) абообнулення (D0=0) адресованого біту.
Адаптер має 3 режими роботи — 0,1,2. Розглянемокожний з них.
В режимі 0 (базового введення-виведення) можутьпрацювати всі три порти, причому порт C разділюється на два незалежних 4-бітныхпорти.
Всього, таким чином, виходить два 8-бітних ідва 4-бітних порти паралельного введення або виведення, що забезпечує 16можливих конфігурацій адаптера в режимі 0. Дані, що виводяться, фіксуються врегістрах-фіксаторах, що входять до складу всіх портів, а введені дані не запам'ятовуються,тобто в операціях зчитування вхідного порту на шину даних передаїться поточнийстан вхідних ліній.
Режим 0 застосовується припрограмно-управляємому введенні-виведенні з повільнодіючими периферійнимипристроями.
Для організації введення-виведення необхіднапідпрограма ініціалізації адаптера і три аналогічні підпрограми введення івиведення для кожного периферійного пристрою. Кожна з них виконує такі дії:
введення стану пристрою, перевірку готовності,виведення або введення даних і формування супроводжуючого стробу. Якщо пристрійне готовий до обміну, мікропроцесор входить в цикл очікування.
Режим 1 (стробоване введення-виведення) призначенийдля однонаправленої передачі даних, ініційованих перериваннями. Власне передачаслів даних здійснюється через порти B і A, а шість ліній порту C використовуютьсядля управління обміном. Даний режим надає користувачеві такі можливості: запрограмуватиодин або два паралельних порти з лініями квітування і переривання, кожний зяких може працювати на введення або виведення; при використанні тільки одного портурешту 13 ліній запрограмувати в режим 0; при встановленні двох портів в режим 1інші 2 лінії використати для введення або виведення.
В режимі 2 (двонаправлена шина, що забезпечуєвведення і виведення даних) може працювати тільки група A. Порт A використовуєтьсядля передачі власне 8-бітных даних, а п'ять ліній порту C виконують функціїквітування і переривань. Загальна дисципліна квітування аналогічна режиму 1,але ї окремі тригери дозволу переривань по виводу INTE1 (управляєтьсявстановленням та скиданням біту PC6) та по вводу INTE2 (управляється через бітPC4). Дані, що вводяться та виводяться, фіксуються в регістрах-фіксаторах порту.
4. Реалізація проекту
Програму написано на мові програмування С звикористанням вставок на асемблері. Для читання байта з паралельного портувикористовується функція мови С inportb (номер). Для встановлення затримки використовуєтьсяфункція 83h переривання 15h (очікування події). При проходженні заданого у CX: DXзаданого числа мікросекунд встановлюється старший біт за адресою в DS: BX.
Після запуску програма встановлює таймер іпочинає у циклі читати інформацію з порта. Цикл припиняється або принадходженні даних, або при натисканні клавіші, або при закінченні 15 секунд.
5. Інструкція користувача
Перед початком роботи треба підключитипристрій, який треба перевірити, до паралельного порту комп’ютера. Після цьоготреба запустити програму на виконання. При тестуванні на екран буде виведеноповідомлення. Тестування може закінчитись достроково при натисканні клавіші,або при надходженні сигналу. Інакше через 15 секунд буде видано повідомленняпро те, що даних не надходить і програма завершить роботу.
6. Основні висновки
Отже, створена програма, яка перевіряєнаявність даних, що надходять до комп’ютера через паралельний порт. Вона займаємало місця і функціонує дуже просто, виконуючи свою задачу.
Список літератури
1. Ю.С. Лукач, А.М. Сибиряков.
2. Архитектура ввода-вывода ЭВМ IBM PC.
3. Електронний довідник NG.
ДодатокТекст програми
#include
#include
#include
#include
char end=0;
void set_timer ()
{
unsigned res;
asm{
mov ah,0x83
mov al,1
int 15h
mov ah,0x83
mov al,0
mov bx,offset end
mov cx,0xe5
mov dx,0xffff
int 15h
pushf
pop ax
and ax,1
mov res,ax
}
if (res! =0) {
printf («Помилка встановлення таймера!\n»);
exit (-1);
}
}
void main ()
{
char data;
char x,xnew;
clrscr ();
printf ("\t\t Програма перевiркинаявностi\n");
printf ("\t\tзв`язку комп`ютера зпристроєм через паралальний\n");
printf ("\t\t порт протягом 15 секунд.\n\n");
printf («Для початку вiдмiрювання часунатиснiть клавiшу ENTER. \n»);
getch ();
printf («Очiкуємо 15 секунд… \n»);
printf («Для вiдмiни натиснiтьбудь-яку клавiшу. \n»);
set_timer ();
xnew=inportb (0x378);
x=xnew;
data=0;
do{
xnew=inportb (0x378);
if (xnew! =x) {
data=1;
break;
}
x=xnew;
if (kbhit ()) {getch (); break; }
}while (! end);
if (! data)
{
printf («Даних з паралельного порту ненадходить. \n»);
sound (1000);
delay (500);
nosound ();
}
else
{
printf («Данi надходять з паралельногопорту. \n»);
}
getch ();
}
Блок-схема програми
/>