luni, 15 octombrie 2012

Parallel Port Controller - Portul LPT

LPT Port Switch

LPT Port Switch – permite controlul on/off a 8 relee conectate pe portul paralel (LPT1). Controlul se face independent pe cele 8 iesiri, asadar softul e ideal atat pentru teste, cat si pentru utilizarea in aplicatii de tip home automation.
 

About Parallel Port Controller

Ce să mai citim?

Presa franceză , pune întrebări incomode care ar putea face lumină în plandemia 

Robotul ADN ar putea ucide celulele canceroase

SARS a fost o boală relativ rară; la sfârșitul epidemiei, în iunie 2003

Fii propriul tău nutriționist

Planet REBOOT

Votăm un Deputat BUN

Ttatăl fondator al Uniunii Europene. 

Colonizarea de pe Marte !


This is a very easy and fun to build project that will allow you to control up to eight external devices through your computer's parallel port. You may for instance control different appliances such as lamps, computers, printers, tv sets, radios, music systems, air conditioners, air fans, garden sprinklers and anything else you can think of, all through your computer.

You can do a simple test by connecting a LED directly to a ground and any PINs 2 through 9 of your parallel port. The voltage on the parallel connectors is around 4.5V but it drops to around 2V once you connect the LED. You may use a 100 Ohm resistor if you want to, but it is not necessary since the current is very low.


Parallel Port Controller Software




The Parallel Port Controller is very easy to use and gives you a visual of which devices are turned ON or OFF. In the future versions you will be able to program at what time a particular device should be turned on or off. If you should have any suggestions for any additional features please let us know.

Portul paralel

Descrierea portului.
Portul paralel este proiectat pentru a conecta o imprimantă la computer. Este utilizat pentru CPU pentru a trimite date către imprimantă. În această interfaţă se regăsesc atât semnale de intrare cât şi de ieşire. Scopul acestor semnale este de a avertiza computerul asupra stării imprimantei şi de a o controla. Opt biţi de date transferă toate informaţiile trimise la fiecare impuls de ceas.
Hardware-ul acestui port este format din 8 biţi de date ieşiri, 5 biţi de control intrări şi 5 biţi de control ieşiri. Semnalele de control sunt listate mai jos:
Ieşiri:
STROBE/: Comunică imprimantei când cei opt biţi de date sunt gata pentru a fi citiţi. Este trecut pe nivelul logic “0” când datele sunt pregătite.
INIT/: Resetează imprimanta.
SLCT IN/: Selectează imprimanta când acest semnal ajunge la nivelul logic “0”.
AUTO FD/: Comunică imprimantei să imprime o linie goală urmată de revenirea pe poziţia de repaus a capului de printare.
D0-D7: Biţi de date.
Intrări:
ACK/: Comunică CPU-ului faptul că datele au fost corect recepţionate.
BUSY: Imprimanta setează acest semnal când buffer-ul de recepţie este plin. Computerul va înceta să mai transmită date.
SLCT: Comunică computerului prezenţa imprimantei.
ERROR/: A survenit o eroare. CPU nu mai transmite date.
PE: Imprimanta nu mai are hârtie.
Toate aceste semnale apar la un conector cu 25 pini. Toţi biţii prezintă nivele logice TTL.

Adresarea portului
(vezi Tabelul 1.1)

BIT FUNCTION PIN
D0 data 0 2
D1 data 1 3
D2 data 2 4
D3 data 3 5
D4 data 4 6
D5 data 5 7
D6 data 6 8
D7 data 7 9
Sub sistemul de operare MS-DOS se pot gestiona trei porturi paralele denumite LPT1, LPT2 şi LPT3. Deci, putem găsi trei adrese dedicate acestor porturi în memoria PC-ului. Vom studia pentru început adresele dedicate LPT1. Fiecare port paralel utilizează trei adrese ale listei I/O. Pentru LPT1 aceste adrese sunt 378H, 379H şi 37AH.
Portul 378H: La această adresă CPU scrie datele care urmează a fi transmise către imprimantă. Portul este unul de ieşire. Cei opt biţi de date (D0-D7) apar în conectorul de ieşire. În tabelul 1.1 putem observa care pini ai conectorului sunt utilizaţi.
Portul 379H: Acesta este un port de intrare. Semnalele conţinute sunt utilizate de către CPU pentru a afla starea imprimantei. Locaţia acestor biţi este listată în tabelul 1.2.

Data Bits Table
BIT FUNCTION PIN
D0 not used
D1 not used
D2 not used
D3 ERROR/ 15
D4 SLCT/ 17
D5 PE 12
D6 ACK/ 10
D7 BUSY/ 11
Portul 37AH: În acest port computerul scrie semnalele care controlează imprimanta. Prin urmare, acesta este un port de ieşire, vezi tabelul 1.3.
Data Bits Table

Control Bits Table
BIT FUNCTION PIN
D0 STROBE 1
D1 AUTO FD 14
D2 INIT/ 16
D3 SLCT IN/ 17
D4 Habilitation IRQ7
D5 not used
D6 not used
D7 not used

Computerul are trei porturi LPT. Adresele semnalelor de control şi de date pentru fiecare port LPTn sunt listate mai jos. Fiecare port lucrează în acelaşi fel ca şi LPT1.
După cum se poate observa, portul paralel este capabil să controleze canalul de întreruperi IRQ7l. Aceasta este o calitate de bază a portului. În continuare vom prezenta modul de utilizare a acestui semnal.
Adresses of LPTn Tabelul 1.4

PORT DATA STATUS CONTROL
LPT1 378H 379H 37AH
LPT2 278H 279H 27AH
LPT3 3BCH 2BDH 3BEH

Programarea portului
Programele de mai jos sunt exemple despre cum se poate programa portul paralel. Sunt toate compilate cu compilatorul Borland C++ 3.1.
Primul program arată cum să transmiţi un octet către adresele de ieşire ale portului paralel. Este o operaţie foarte uşoară. Funcţia outportb(); trimite un octet către un port I/O specificat. Primul parametru al funcţiei este adresa portului în care se scrie un bit. Al doilea parametru este valoarea octetului ce se transmite. Ambii parametri pot fi definiţi ca variabile. În acest caz primul parametru trebuie să fie de tip unsigned int, iar cel de-al doilea de tip unsigned char.
#include
#include
#include

/********************************************/
/*This program set the parallel port outputs*/
/********************************************/

void main (void)

{
clrscr();
outportb(0x378,0xff);
outportb(0x37a,0xff);
getch();}

Cel de-al doilea exemplu arată cum se poate efectua citirea unui octet de la adresa de intrare a portului paralel. Funcţia principală este utilizată pentru a arăta valoarea octetului pe ecran. Funcţia inportb(); citeşte un octet de la adresa I/O specificată de computer. Parametrul trebuie să fie de tip unsigned int.

#include
#include
#include

/***********************************/
/*This function read parallel port inputs*/
/***********************************/

int Read_Input()

{int Byte;

Byte=inportb(0x379);
return Byte;}

void main (void)

{int PP_Input;

clrscr();
PP_Input = Read_Input;
printf("%d",var);
getch();}
Vezi Sursa Info AiCI

Niciun comentariu:

Trimiteți un comentariu