Página 1 de 1
entrada e saida

Enviado:
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

Enviado:
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 -
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

Enviado:
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!!!!!

Enviado:
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.
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

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

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

Enviado:
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!

Enviado:
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
}
}

Enviado:
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?

Enviado:
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.