• Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   13-02-2016

      Prezados membros do Clube do Hardware,

      Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:
        Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas ao formulário abaixo:    Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Seguidores 0
MESTRE-ANDREI

Portas paralelas e seriais em delphi

6 posts neste tópico

Oi.

Quero fazer algo simples tipo mandar energia para dois pinos da porta paralela ou fechar dois contatos da porta paralela, para poder acessar um ou mais relês.

Sei que tem como fazer isso através do Delphi, pois uma vez vi um site que o cara tinha feito um programinha em delphi que controlava um robozinho, só que não sei como se faz.

Tenho que misturar assembler com delphi, para poder fazer isso?

Gostaria que alguém me indicasse sites que contenham códigos para controlar estas portas, e se possível, exemplos de hardwares simples também.

Ou se alguém souber algum código, eu também agradeço.

Se tiver alguma coisa em C++ também pode ser.

Desde já agradeço pela ajuda de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depende do sistema operacional.

Se for Windows 9X/Me, você tem acesso direto e fica fácil.

Já se for Windows família NT (NT/2000/XP), os programas não podem acessar o hardware diretamente, precisam de um driver de dispositivo. você encontra alguns por ai.

Eu indico o GWIOPM. Tem ai um port para Delphi e um exemplo: http://www.wideman-one.com/gw/tech/Delphi/iopm/

Existem outros até mais simples. Esse dai que indiquei permite acessar qualquer porta e você precisa saber qual. No caso de porta paralela e serial, não tem segredo e você encontra na documentação dos padrões.

Recomendo que faça uma boa leitura do que é enviar dados para essas portas. Cada pino tem a sua função, tensão de trabalho, etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado Originalmente por MESTRE-ANDREI-FELIPE@16 dez 2004, 01:09

valeu mesmo pela dica. Vou ver agora mesmo.

O meu windows é ME.

Então é mais fácil. Tem essas funções ai embaixo .PortIn é para ler, Portout é para escrever. As que tem W no final gravam 2 bytes (um Word, número 16-bit, sem sinal) e as outras apenas 1 byte. Ai você tem que ler na porta em um determinado endereço. Aqui tem uma lista das portas mais usadas: http://www.angelfire.com/pa2/jcgr/tecnica/PP/aspec_gen.htm

Mas esse programa não irá funcionar em Windows NT.

function PortIn(IOport:word):byte; assembler;
asm
 mov dx,ax
 in al,dx
end;

function PortInW(IOport:word):word; assembler;
asm
 mov dx,ax
 in ax,dx
end;

procedure PortOut(IOport:word; Value:byte); assembler;
asm
 xchg ax,dx
 out dx,al
end;

procedure PortOutW(IOport:word; Value:word); assembler;
asm
 xchg ax,dx
 out dx,ax
end

Compartilhar este post


Link para o post
Compartilhar em outros sites

Problema Resolvido!

Caso o autor necessite que o tópico seja reaberto, favor enviar mensagem privada para um dos moderadores dessa área.

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
Seguidores 0