Comunicação ps2 com pic

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Comunicação ps2 com pic

Mensagempor nois88 » 09 Jul 2009 21:36

Ola amigos, estou pesquisando sobre um projeto que utiliza um teclado ps2(mini-dimm), achei muito simples a sua comunicação isto é bom, porém por equanto so estou programando em assembly e o exemplo que peguei é em "c" e tem 2 linhas de comando nele que não consegui achar como fazer em assembly, que são a ps2_config e ps2_key_read, são dois comandos de microc e não sei como utilizalos em assembly, se alguem puder me ajudar fico grato!! :P


olha o exeplo do programa ai:

program TecladoPS2
Main:
dim keydata, special, down as byte
'Define as variáveis auxiliares da função PS2_Key_Read
ADCON1=7 'Desliga os ADs do pino do PORTA
trisa.1=0 'Configura o RA1 como saída
Ps2_config(PORTC,1,2) 'Configura os pinos de CLOCK e DATA do teclado
while true 'Loop While
if Ps2_Key_Read(keydata, special, down)=1 then
'Tem algum dado no buffer?
if keydata="a" then 'Sim! É o "a"?
porta.1=1 'Sim! Então liga o relé
else
porta.1=0 'Não... Então desliga o relé
end if
end if
wend
end.
nois88
Bit
 
Mensagens: 8
Registrado em: 20 Jun 2009 22:09
Localização: Maringá-pr

Mensagempor Beto_s » 11 Jul 2009 00:23

Compila no Mikroc e vê o que ele vai gerar em assembly para ter uma idéia ( fica meio confuso se vc nao tem digamos... fluência em assembly...rsrsr)
Já fiz algumas rotinas em asm para ler um teclado que depois evoluiu para um leitor de codigo de barras , mas foi na unha mesmo , implementar a leitura serial ...
Comece pesquisando o protocolo do teclado para ter uma ideia do que vc vai ter que implementar ...
Tem bastante info na web...
Beto_s
Bit
 
Mensagens: 43
Registrado em: 06 Set 2007 23:36

Mensagempor MOR_AL » 11 Jul 2009 08:02

Olá nois88.

Esta linguagem não é em "c". Está me parecendo "MikroBasic".

As duas instruções "ps2_config e ps2_key_read" são rotinas. Pode-se criar instruções em assembly, mas sua conversão não é imediata.

Você pode compilar no MikroBasic e tentar converter as duas instruções para o assembly (caso o compilador faça a conversão de rotinas internas. Eu acho que não). Para usar o assembly, talvez você tenha que estudar sobre PS2 e começar do zero. Não sei se vale a pena. Certa ocasião fiz isso para o I2C. Deu um trabalhão e no final só funcionava para uma determinada frequência de clock.
De qualquer forma, boa sorte!
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor Alesandro F Zagui » 11 Jul 2009 10:07

nois88

Eu acho mais facil voce desenvolver o codigo na unha mesmo.

É bem facil.

Eu fiz a minha rotina utilizando a interrupcao externa, liguei o clock do teclado ao pino PORTB,0. Entao cada bit transmitido pelo teclado gera um interrupcao.

http://renato.silva.nom.br/eletro/teclado.html

http://www.computer-engineering.org/ind ... =Main_Page

Alesandro F Zagui
Alesandro F Zagui
Byte
 
Mensagens: 154
Registrado em: 12 Mai 2009 11:03
Localização: Campo Mourao, Pr

Mensagempor fabim » 11 Jul 2009 11:10

noiz, apesar que.
A partir do momento que você ja aprendeu a manipular a aquitetura do pic, para pular para pascal basic ou mesmo C, é um pulinho.
O bom da historia é que você vai saber a melhorar o codigo fazendo uma salada de asm e C.
Pense nisso, vai ficar bom pra você.

Abraços

Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor vtrx » 11 Jul 2009 19:53

Olá,ja tem um tempo que fiz um projeto completo com 14 teclas(16F628A) e compativel com todos os Windows e Linux ja dando boot da bios.
Procure aqui no forum que vai achar uns links úteis que passei a alguem aqui no forum.
Meu código é em assembler mas é fechado,mas posso te dar umas dicas enquanto desenvolve o seu.
***********************************
Me confundí,o post com links é de outro forum,não sei se pode postar link de outro forum,mas se não puder é só apagar:
http://www.forumnow.com.br/vip/mensagens.asp?forum=41935&grupo=56847&topico=2998333&pag=1
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Mensagempor tcpipchip » 13 Jul 2009 10:29

Como voce trata um pacote que a BIOS envia ao TECLADO para acender o NUMLOCK ???
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Mensagempor vtrx » 13 Jul 2009 13:05

Não entendí sua pergunta?
Veja,a BIOS emvia esse comando mas o windows Xp e Linux tambem reiniciam e enviam novamente esse comando.
Voce precisa ler qual byte de status esta sendo enviado,se for 'ED',voce pula para rotina de tratamento para ver qual o estado do NumlOck.
Explique melhor sua dúvida.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

QWERT TO DVORAK

Mensagempor tcpipchip » 13 Jul 2009 18:10

Voce conseguiria fazer um conversor de QWERT para DVORAK ?

Ou seja...fazer uma placa que fica entre o PC e teclado, que troca as teclas pressionadas ?

Eu comecei a fazer no AVR...mas...nao esta funcionando 100%...

:(

TCPIPCHIP
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Mensagempor vtrx » 13 Jul 2009 18:40

Olha,até da pra fazer mas muda completamente a programação do pic pois deste modo teremos que ler os códigos do teclado.
Tem certeza que vale a pena?
Achei este artigo:
http://oui.com.br/n/content.php?article.17
Ve se te interessa,mas acho muito trabalhoso fazer uma placa conversora.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Mensagempor nois88 » 13 Jul 2009 21:48

o galera vlw pelas respostas! :D
vo estudar mais sobre o assunto e ver oque acontece, vou seguir a linha de dica de vcs, e ver no que da! hehehe 8)

MUITO OBRIGADO A TODOS! :D
nois88
Bit
 
Mensagens: 8
Registrado em: 20 Jun 2009 22:09
Localização: Maringá-pr

Mensagempor mhagnumdw » 11 Jun 2012 22:45

Opa!!

Alguém pode me dizer como é o procedimento para comunicar esse teclado numérico com o PIC? Acho que sabendo o protocolo e pinagem (quantos pinos vou precisar no PIC?), o resto dá pra desenrolar.
http://www.gertec.com.br/produto.aspx/p ... /36/TEC_12

Valeu!!
--
MhagnumDw
Avatar do usuário
mhagnumdw
Bit
 
Mensagens: 49
Registrado em: 26 Out 2009 15:30

Mensagempor Milhoci » 12 Jun 2012 12:18

mhagnumdw escreveu:Opa!!

Alguém pode me dizer como é o procedimento para comunicar esse teclado numérico com o PIC? Acho que sabendo o protocolo e pinagem (quantos pinos vou precisar no PIC?), o resto dá pra desenrolar.
http://www.gertec.com.br/produto.aspx/p ... /36/TEC_12

Valeu!!
--
MhagnumDw


https://www.google.com.br/search?sugexp ... 2+protocol


http://pcbheaven.com/wikipages/The_PS2_protocol/
Milhoci
Byte
 
Mensagens: 148
Registrado em: 12 Out 2006 18:46

Mensagempor mhagnumdw » 21 Jun 2012 20:43

O teclado chegou e ele é - na verdade - serial (DB9).
Já comuniquei com um PC e deu certo.
Já tenha no PIC um MAX232, então deve ser simples colocar o teclado no PIC. Nesse fds verei isso.

Valeu.
Avatar do usuário
mhagnumdw
Bit
 
Mensagens: 49
Registrado em: 26 Out 2009 15:30


Voltar para PIC

Quem está online

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

x