Ir ao conteúdo
  • Cadastre-se

ajuda leitura da porta paralela em C


pablomconexx

Posts recomendados

Grupo: Participantes

Posts: 31

opa!

eu faço eng.eletrica to com um projeto aqui bastante simples,mas a programação ta acabando comigo

é um programa q controla uma esteira

ele liga ela,o motor passa a funcionar...dae ele começa a contagem de caixas (caixas grandes e pequenas no meu caso)

quando uma caixa passa por um sensor instalado na esteira,o programa tem que contar c é caixa grande ou pequena e mostrar no final da execução!

já li tutoriais no rogercom e em outros lugares...descobri que o windows xp precisa de um prograinha para liberar as portas,instalei o pograma ...obtive melhoras mas NÃO COSIGO CONTAR O QUE ENTRA NA PORTA DE JEITO NENHUM!!!

vou colar aqui fontes de alguns programas que eu montei

c alguem tiever paciencia por favor..to precisabdo pra caramba!!

fiz testes diversos

****************************************************************************

#include <stdio.h>

#include <dos.h>

#include <conio.h>

#define out 0x37A

void main ()

{

unsigned char lig, entrada0=0,res=0;

int caixap=0,caixag=0;

outportb(out,1);

res=inportb(0x378);

printf(" digite L para iniciar a esteira:\n");

scanf ("%c",&lig);

printf("motor funcionando,comecando a contagem...\n");

printf ("Digite qualquer tecla para terminar\n");

while (lig=='l')

{

outportb(out,222); //motor funcionando

if (kbhit())/* se pressionada alguma tecla */

/* atribuimos para ela um caracter diferente de L para*/

/* sair do la‡o*/

{

lig=getch();

}

entrada0=inportb(0x378);

if (entrada0>1)

{

if(entrada0==16)

{

if (entrada0==res )

{

caixag++;

printf("Foi contada uma caixa grande\n");

}

}

if (entrada0==8)

{

if(entrada0==res)

{

caixap++;

printf("Foi contada uma caixa pequena\n");

}

}

}

}

printf("motor desligado,contagem finalizada\n" );

printf("Temos %i caixas grandes\n",caixag);

printf("Temos %i caixas pequenas\n",caixap);

printf("ent %i \n",res);

getch();

}

*******************************************************************************

#include <stdio.h>

#include <dos.h>

#include <conio.h>

#define out 0x37A

#define lpt 0x379

void main ()

{

unsigned char lig, entrada0=0,ent;

int caixap=0,caixag=0;

outportb(out,1);

printf("digite L para iniciar a esteira:\n");

scanf ("%c",&lig);

printf("motor funcionando,comecando a contagem...\n");

printf ("Digite qualquer tecla para terminar\n");

while (lig=='l')

{

ent=0;

outportb(out,0); //motor funcionando

if (kbhit())/* se pressionada alguma tecla */

/* atribuimos para ela um caracter diferente de L para*/

/* sair do la‡o*/

{

lig=getch();

}

entrada0=inportb(lpt);

if (entrada0>126)

{

if(entrada0<191)

{

if (entrada0==ent)

{

caixag++;

printf("Foi contada uma caixa grande\n");

}

}

if (entrada0==191)

{

if(entrada0==res)

{

caixap++;

printf("Foi contada uma caixa pequena\n");

}

}

}

}

printf("motor desligado,contagem finalizada\n" );

printf("Temos %i caixas grandes\n",caixag);

printf("Temos %i caixas pequenas\n",caixap);

printf("res %i \n",res);

getch();

}

******************************************************************************

#include <iostream.h>

#include <stdio.h>

#include <dos.h>

#include <conio.h>

#define out 0x37A

#define lpt 0x378

#define bit5 0x22

#define regcontrole lpt+2

void main ()

{

unsigned char lig, entrada0=0;

int caixap=0,caixag=0;

outportb(regcontrole,bit5);

outportb(out,1);

printf("digite L para iniciar a esteira:\n");

scanf ("%c",&lig);

printf("motor funcionando,comecando a contagem...\n");

printf ("Digite qualquer tecla para terminar\n");

while (lig=='l')

{

outportb(out,0); //motor funcionando

if (kbhit())/* se pressionada alguma tecla */

/* atribuimos para ela um caracter diferente de L para*/

/* sair do la‡o*/

{

lig=getch();

}

entrada0=inportb(lpt);

if (entrada0>1)

{

if (entrada0==20)

{

while (entrada0==20)

{

outport(out,0);

printf ("caixa grande");

}

caixag++;

}

if (entrada0==12)

{

while (entrada0==12)

{

outport(out,0);

printf ("caixa pequena");

}

caixap++;

}

}

}

printf("motor desligado,contagem finalizada\n" );

printf("Temos %i caixas grandes\n",caixag);

printf("Temos %i caixas pequenas\n",caixap);

printf("entrada %i",entrada0);

getch();

}

******************************************************************************

#include <iostream.h>

#include <stdio.h>

#include <dos.h>

#include <conio.h>

#define out 0x37A

void main ()

{

unsigned char lig, entrada0=0;

int caixap=0,caixag=0;

outportb(out,0);

outportb(0x378,0);

printf("digite L para iniciar a esteira:\n");

scanf ("%c",&lig);

printf("motor funcionando,comecando a contagem...\n");

printf ("Digite qualquer tecla para terminar\n");

while (lig=='l')

{

outportb(out,1); //motor funcionando

if (kbhit())/* se pressionada alguma tecla */

/* atribuimos para ela um caracter diferente de L para*/

/* sair do la‡o*/

{

lig=getch();

}

entrada0=inportb(0x378);

if (entrada0>1)

{

if (entrada0==9)

{

while (entrada0==9)

{

outport(out,1);

printf ("caixa grande");

}

caixag++;

}

if (entrada0==17)

{

while (entrada0==17)

{

outport(out,1);

printf ("caixa pequena");

}

caixap++;

}

}

}

printf("motor desligado,contagem finalizada\n" );

printf("Temos %i caixas grandes\n",caixag);

printf("Temos %i caixas pequenas\n",caixap);

printf("entrada %i",entrada0);

getch();

}

******************************************************************************

aí tem alguns já tentados!!c alguem puder ajudar agradeço!

abraço!

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!