Página 1 de 1
usar I/O como entrada e saída

Enviado:
25 Nov 2007 01:11
por jack sparrow
Bom dia,
Alguem tem uma dica de como usar um mesmo pino num PIC (compartilhar) como entrada e saída digital, para ler uma tecla e acionar um LED por exemplo?
Obrigado

Enviado:
25 Nov 2007 10:12
por phophollety
Peguemos um PIC16F636 por exemplo em assembler
Vamos ler a porta, para tal, temos que modificar o registrador de controle que faz tal serviço, o TRISA
BSF STATUS,RP0 ; esse registrador encontra-se no Bank 1
movlw b'00000001'
movwf TRISA ;Define todos como saída, exceto RA0, entrada
BCF STATUS,RP0 ;Volta para o banco 0
Apesar da TRISA estar no banco 1 a PORTA está no BANCO 0
movf PORTA,w ;Carrega toda a porta
movf portaTemp ;Salva em um registrador seu.
BSF STATUS,RP0 ; esse registrador encontra-se no Bank 1
movlw b'00000000'
movwf TRISA ;Define todos como saída.
BCF STATUS,RP0 ;Volta para o banco 0
Tá feito, também pode usar o
BTFSC e BTFSS para testar o bit, como preferir...
[]s!
pino com entrada e saida

Enviado:
01 Dez 2007 20:35
por jack sparrow
Desculpe, acho que não fui bem claro, o problema é hardware não software, mas de qualquer forma obrigado.

Enviado:
01 Dez 2007 22:11
por mastk
tem sim
Faz o seguinte, coloca um pull-up bem alto quando o botão solto vc lé 1, quando precionado, deçe o sinal pra 0, lendo o msm, quando quiser acender o led, driva a porta e seja feliz

Enviado:
03 Dez 2007 11:50
por LeandroPIC
HARDWARE:
coloque um diodo "KATODO" no pino do PIC, coloque uma CHAVE, um pino da CHAVE no GND eo outro pino no "ANODO" do diodo, coloque um resistor PULL-UP de 10K no ANODO" do diodo.
No mesmo pino do PIC vc coloca um resistor de 330R e um LED para o GND.
SOFTWARE:
Configure o pino como entrada leia o entrado da chave, depois vc cofigura-o como saida, ai vc acenda ou apaga o led, mais isso deve ser em uma velocidade maior do que 50Hz....!!!
CUIDADO:
Se vc não colocar o diodo vai queimar o PIC.....!!!!!!!!!!!!

Enviado:
03 Dez 2007 20:58
por xultz
Eu já fiz isso num produto, funcionou sem traumas.
Você pega a IO e coloca um pull up de 1k. Em paralelo com este resistor de 1k coloca um led em série com um resistor de 390R. E nesta IO você liga também um push button entre a IO e o GND.
A IO deve operar somente em dois modos: como entrada, ou como saída em nível baixo, nunca, jamais, sob hipótese alguma como saída em nível alto. Como entrada, lendo nível alto, quer dizer chave aberta, nível baixo, chave fechada. E o led (teoricamente) apagado (teoricamente porque se a chave for pressionada o led vai acender). Em modo saída, nivel baixo, led aceso.
Pronto.

Enviado:
05 Dez 2007 11:49
por LeandroPIC
xultz escreveu:Eu já fiz isso num produto, funcionou sem traumas.
Você pega a IO e coloca um pull up de 1k. Em paralelo com este resistor de 1k coloca um led em série com um resistor de 390R. E nesta IO você liga também um push button entre a IO e o GND.
A IO deve operar somente em dois modos: como entrada, ou como saída em nível baixo, nunca, jamais, sob hipótese alguma como saída em nível alto. Como entrada, lendo nível alto, quer dizer chave aberta, nível baixo, chave fechada. E o led (teoricamente) apagado (teoricamente porque se a chave for pressionada o led vai acender). Em modo saída, nivel baixo, led aceso.
Pronto.
É desse jeito tambem funciona mas é limitado.....
Na verdade o LED acende, mas não é o pic de o acende, vc usa o pino de IO apenas como entrada....
Do jeito expliquei acima vc pode usar o pino de IO em qualquer nivel logico sem problemas como entrada ou saida....
Essa configuração que expliquei é usado para um teclado 4 x 4 sendo multiplexado um display de 7 segmentos.
usara I/O como entrada e saida

Enviado:
09 Dez 2007 22:26
por jack sparrow
Obrigado galera, adotei a solução do LeandroPIC, mas agradeço a todos.

Enviado:
10 Dez 2007 11:44
por LeandroPIC
Beleza....
Qualquer coisa é só gritar...!!!!