-ERROR
3 I/O Data Bit 1 16 O-INIT
4 I/O Data Bit 2 17 O-SLCT IN
5 I/O Data Bit 3 18 na Ground
6 I/O Data Bit 4 19 na Ground
7 I/O Data Bit 5 20 na Ground
8 I/O Data Bit 6 21 na Ground
9 I/O Data Bit 7 22 na Ground
10 I-ACK 23 na Ground
11 I BUSY 24 na Ground
12 I PE 25 na Ground
13 I SLCT
під'єднали виходи до 10,11,12,13-му з'єднанню (Pin) кабелю LPT, тобто сигнали закодованість температури будуть приходити на 10,11,12,13 Pin порту принтера LPT1. Потім послідовно зчитуємо два 8-бітних слова, старші 4 біти яких або ігноруються, або встановлені в нуль. Після передачі старшого байта, зчитуються дані зі наступного датчика, за аналогічною схемою, в перебігу півхвилини. І виводимо значення температури на екран монітора.
4. Програмування.
Програма, написана мовою Pascal 7.0 з вбудованим асемблером, є головною програмою. Її лістинг наведений у додатку А.
Програма "Вимірювання температури" працює наступним чином:
Запускається скомпільована програма Kp_rks.exe. p> При надходженні імпульсів на порт LPT1 ми зчитуємо ці імпульси перериванням 17h функції 02h в регістр Аh. У цьому регістрі знаходиться число розміром в 8 біт. Кожен біт є результатом стану пристрою підключеного до паралельного порту.
7 6 5 4 3 2 1 0
x. . . . . . . Printer not busy (0 = busy)
. x. . . . . . Acknowledgement from printer
. . x. . . . . немає паперу (12 Pin)
. . . x. . . . Printer selected
. . . . x. . . I/O error
. . . . . 0. . не використовується
. . . . . . 0 . не використовується
. . . . . . . x Time-out error
Тобто в регістрі Ah старші 4-біта являють собою першу половину в коді температури, зсуваємо їх на 4 вправо і записуємо в Bh, приймаємо наступний 8-бітний код зсуваємо мх вправо на 4, потім зсуваємо вліво на 4 і складаємо з Bh отримуємо результат виміряної температури в Ah, першого датчика. Потім послідовно зчитуємо інші 3 датчика, аналогічним чином. Далі порівнюємо ці значення температур з min і max допустимим значенням температури, якщо значення поточної температури виходить за межі допустимої температури, висвічується повідомлення про порушення режиму роботи вимірюваного об'єкта. p align=center> 5. Висновок
В
У даному курсовому проекті спроектовано пристрій контролю температури в холодильних установках. У ході виконання курсового проекту закріпили знання отримані при теоретичному вивченні даного курсу та набули навичок проектування складних систем.
Спроектували схему містить мінімум функціональних ланок, просту і дешеву, забезпечили необхідну точність, розробили програмне забезпечення, для простоти обслуговування даної системи.
Додаток p align=center> Лістинг програми Kp_rks
В
program Kurs;
uses crt;
var t1, t2, t3, t4: byte;
i, j: longint;
begin;
for i: = 1 to 1000 do
begin
clrscr;
asm
{1 датчик}
xor bx, bx
mov ah, 02h
mov dx, 00h
int 17h
shr ah, 4
mov bh, ah
mov ah, 02h
mov dx, 00h
int 17h
shr ah, 4
shl ah, 4
add ah, bh
mov t1, ah
{2 датчик}
xor bx, bx
mov ah, 02h
mov dx, 00h
int 17h
shr ah, 4
mov bh, ah
mov ah, 02h
mov dx, 00h
int 17h
shr ah, 4
shl ah, 4
add ah, bh
mov t2, ah
{3 датчик}
xor bx, bx
mov ah, 02h
mov dx, 00h
int 17h
shr ah, 4
mov bh, ah
mov ah, 02h
mov dx, 00h
int 17h
shr ah, 4
shl ah, 4
add ah, bh
mov t3, ah
{4 датчик}
xor bx, bx
mov ah, 02h
mov dx, 00h
int 17h
shr ah, 4
mov bh, ah
mov ah, 02h
mov dx, 00h
int 17h
shr ah, 4
shl ah, 4
add ah, bh
mov t4, ah
end;
writeln ('' Температура першого датчика ', t1,' градусів за С'');
writeln ('');
writeln ('' Температура другого датчика ', t2,' градусів за С'');
writeln ('');
writeln ('' Температура третього датчика ', t3,' градусів за С'');
writeln ('');
writeln ('' Температура четвертого датчика ', t4,' градусів за С'');
writeln ('');
if t1> 200 then writeln ('Вимкнути перший обігрівач ');
if t1 <55 then writeln ('Включити перший обігрівач '...