Página 1 de 1

entrada e saida

MensagemEnviado: 30 Dez 2006 22:00
por rebelk
tenho muitas duvidas em relação a entrada e saida de um pino ou uma porta . vamos supor que eu quero ultilizar um pino em um determinado momento como saida de dados e depois como entrada de dados , EX: ( na comunicação a tres fios com uma memoria AT59C22),
mas estou com duvidas de como proceder neste momento.

Do mesmo modo é com uma porta , como devo progama-la para receber e enviar dados .

alguem pode me responder ?

estou progamando em C

MensagemEnviado: 30 Dez 2006 22:13
por Red Neck Guy
tem que manipular o tris, não tem jeito não.
Ou tu faz a declaração do registrador na mão, ou usa as funções do CCS - :oops:

Seria algo assim

DATA_PIN_DIR = SAIDA;
//CODIGO QUE MANIPULA O PINO COMO SAÍDA
DATA_PIN_DIR = ENTRADA;
// CÓDIGO QUE MANIPULA O PINO COMO ENTRADA


ou assim
set_tris_x(0bXXXXXX)
//código que manipula o pino como entrada/saida
set_tris_x(0bxxxxxxx)
// código que manipula o pino com saida/entrada

MensagemEnviado: 30 Dez 2006 23:20
por rebelk
( Seria algo assim

DATA_PIN_DIR = SAIDA;
//CODIGO QUE MANIPULA O PINO COMO SAÍDA
DATA_PIN_DIR = ENTRADA;
// CÓDIGO QUE MANIPULA O PINO COMO ENTRADA
)

Aquino não entendi esta parte

tu pode me mostrar um exemplo mais claro?
desde já abrigado pela ajuda!!!!!

MensagemEnviado: 30 Dez 2006 23:45
por __JEREK__
Oi rebelk, acho que os pinos, do pic alguns como os do Port B são todos Entrada/Saída e alguns como o Pino A4 é apenas entrada (dependendo do PIC), no datasheet do 16F628 mostra essa figura. As setas mostram se ele pode ser configurado como estrada/saída (ou seja high/low). Os que só tem seta em uma direção só podem ser configurados como entrada ou nãp podem ser usados.

Imagem


o que vc pode fazer é colocar em estado low ou high pelo comando do CCS. Exemplo:

output_low(pin_B1); // Configura o pino para low

output_high(pin_B2); // configura o pino para high

MensagemEnviado: 30 Dez 2006 23:50
por rebelk
jerek , meu filho voce esta ainda ai ?

MensagemEnviado: 31 Dez 2006 00:19
por __JEREK__
oi, tô aqui!!!

MensagemEnviado: 31 Dez 2006 00:39
por rebelk
me manda ai um exemplo que vc ultiliza um pino como entrada e saida,
e me explica como vc faz esta celeção!

MensagemEnviado: 31 Dez 2006 08:23
por __JEREK__
Pô rebelk, não sei se entendi sua pergunta, vou postar um código aqui e vc me fala se é isso. Se não não for explica mais o que vc quer saber, valeu??


Código: Selecionar todos
#include <16F877.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=5000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

int x=0;                    // variavel
int y=0;                    // variavel


void main()
{

   set_tris_B(0x03);        // configura a porta B da seguinte forma:
                            // Pino B0 = Entrada
                            // Pino B1 = Entrada
                            // Pino B2 = saida
                            // Pino B3 = saida
                            // Pino B4 = saida
                            // Pino B5 = saida
                            // Pino B6 = saida
                            // Pino B7 = saida

 // Se for usar uma porta individual usar assim:
 //  output_flot(pin_b1);     // configura o pino B1 como entrada
 //  output_flot(pin_b2);     // configura o pino B2 como entrada

      while(1)
      {
         x = input(pin_b0); // lê o estado do pino b0 e salva em x
                            // como 1 ou 0 
         
         y = input(pin_b1); // lê o estado do pino b1 e salva em y
                            // como 1 ou 0
      }
}

MensagemEnviado: 31 Dez 2006 10:04
por rebelk
luciano é + ou - isso , minha duvida é se eu fou ultilizar apenas um pino RB0 para entrada e saida de dados como proceder na hora de receber os dados e na hora de enviar , é essa minha duvida.
deu para entender?

MensagemEnviado: 03 Jan 2007 08:38
por microeletronica
Ue, nao esta clara sua duvida.
Como fazer pra porta ser entrada ou saida vc ja sabe...
Agora, o momento em que ela deve ser entrada ou saida, depende do seu design, da sua intencao.

De mais informacoes para que possamos ajuda-lo.