quarta-feira, 5 de janeiro de 2011

Acesso à Porta Paralela

Este pequeno programa, foi desenvolvido em c++ para a demostração de como efetuar um acesso à porta paralela. Inicialmente isto utiliza os 8 pinos disponíveis para a comunicação por porta paralela. O programa solicita a porta que você deseja enviar o sinal, enviando o sinal de aproximadamente de 3.5 Volts quando acionada. Não vou explicar o funcionamento da porta paralela, mais postarei um simples programa que utiliza esta porta.

Compilado: GCC-C++ 4.3 - Linux


#include <iostream>
#include <sys/io.h>

#define MAXLED 8 /* 8 BITS. */
#define LPTPORT 0x378 /* ENDERECO DE MEMORIA DE COMUNICACAO COM A PORTA PARALELA. */

int main() {
/* DECLARACAO DE VARIAVEIS */
unsigned int LUX;
unsigned int VAR;
unsigned short D[10];


/* VERIFICA PEMICOES DE ACESSO A PORTA DE MEMORIA */
if(ioperm(LPTPORT, 1, 1)) {
printf("Error ioperm in address port.\n");
}

outb(0, LPTPORT); /* FAZ COM QUE QUALQUER TENSAO SEJA DESATIVADA AO INICIAR O PROGRAMA. */

/* ARRAY MATRIZ DOS VALORES DE PINOS 8 BITS. */
D[0] = 1;
D[1] = 2;
D[2] = 4;
D[3] = 8;
D[4] = 16;
D[5] = 32;
D[6] = 64;
D[7] = 128;
D[8] = 255;
D[9] = 256;

/* LISTA OS VALORES DA OPCOES. */
printf("Escolha o pino que deseja ativar a tensao:\n\n");
printf("PINO 0 = 0:\n");
printf("PINO 1 = 1:\n");
printf("PINO 2 = 2:\n");
printf("PINO 3 = 3:\n");
printf("PINO 4 = 4:\n");
printf("PINO 5 = 5:\n");
printf("PINO 6 = 6:\n");
printf("PINO 7 = 7:\n");
printf("LIGA TODOS OS PINOS = 8:\n");
printf("DESLIGA TODOS OS PINOS = 9:\n\n");

while(1) {

printf("Entre com o PINO desejado: ");
scanf("%d", &VAR);

/* CONDICOES DE SAIDA */
if(VAR == 0){
outb(D[0], LPTPORT);
}
if(VAR == 1){
outb(D[1], LPTPORT);
}
if(VAR == 2){
outb(D[2], LPTPORT);
}
if(VAR == 3){
outb(D[3], LPTPORT);
}
if(VAR == 4){
outb(D[4], LPTPORT);
}
if(VAR == 5){
outb(D[5], LPTPORT);
}
if(VAR == 6){
outb(D[6], LPTPORT);
}
if(VAR == 7){
outb(D[7], LPTPORT);
}
if(VAR == 8){
outb(D[8], LPTPORT);
}
if(VAR == 9){
outb(D[9], LPTPORT);
}

}
}

Mario Uzae
E-mail: mariouzae@gmail.com