usar I/O como entrada e saída

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

usar I/O como entrada e saída

Mensagempor jack sparrow » 25 Nov 2007 01:11

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
jack sparrow
Bit
 
Mensagens: 25
Registrado em: 25 Jul 2007 01:02

Mensagempor phophollety » 25 Nov 2007 10:12

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!
"3 minutes of boring code review means 3 hours less fixing LSD (Little Stupid Detail)" Dr. Mike Smith
"Dê-me um ponto de apoio e uma alavanca e moverei o mundo" Arquimedes
"Quando vejo um Alfa Romeo passar eu tiro o meu chapéu" Henry FORD.
Avatar do usuário
phophollety
Dword
 
Mensagens: 1511
Registrado em: 15 Out 2006 13:00
Localização: Santo André São Paulo, Brasil

pino com entrada e saida

Mensagempor jack sparrow » 01 Dez 2007 20:35

Desculpe, acho que não fui bem claro, o problema é hardware não software, mas de qualquer forma obrigado.
jack sparrow
Bit
 
Mensagens: 25
Registrado em: 25 Jul 2007 01:02

Mensagempor mastk » 01 Dez 2007 22:11

tem sim :lol:

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
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Mensagempor LeandroPIC » 03 Dez 2007 11:50

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.....!!!!!!!!!!!!
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19

Mensagempor xultz » 03 Dez 2007 20:58

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.
98% das vezes estou certo, e não estou nem aí pros outros 3%.
Avatar do usuário
xultz
Dword
 
Mensagens: 3001
Registrado em: 13 Out 2006 18:41
Localização: Curitiba

Mensagempor LeandroPIC » 05 Dez 2007 11:49

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.
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19

usara I/O como entrada e saida

Mensagempor jack sparrow » 09 Dez 2007 22:26

Obrigado galera, adotei a solução do LeandroPIC, mas agradeço a todos.
jack sparrow
Bit
 
Mensagens: 25
Registrado em: 25 Jul 2007 01:02

Mensagempor LeandroPIC » 10 Dez 2007 11:44

Beleza....

Qualquer coisa é só gritar...!!!!
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x