Ir ao conteúdo
  • Cadastre-se
IanTods

Interface de teclado de PC para 8051 via COM1

Recommended Posts

Olá a todos,

Estou desenvolvendo um projeto utilizando o microcontrolador 8051/31 que necessita do uso de um teclado. Cheguei a solução de utilizar o PC como via pra poder "mandar" os dados do teclado pra o micro, através do HyperTerminal. Bom até aí tudo bem, utilizando o sistema mínimo já montado do laboratório da minha escola, fiz um programa simples que só tinha o objetivo de "pegar" o dado recebido via serial e mandá-lo pro Port1, para eu ver o que estava sendo recebido. Constatei uns problemas, um deles foi que o bit mais significativo ficava semrpe em "1" mesmo quando teclava várias teclas, mas isso é fácil de se resolver, é sobre o outro problema que preciso de ajuda. O que acontece é o seguinte: o segundo bit mais significativo (no P1.6) permanece comutando a medida que aperto a mesma tecla, ou seja, quando eu aperto a letra "a", deveria aparecer no port o código ASCII 61h (01100001b) mas aparece 21h (00100001b, P1.6=0), mas quando eu reaperto "a", aparece o 61h, ou seja, p1.6 vai para 1 mostrando o verdadeiro código ASCII para a tecla, e reapertando novamente, P1.6 vai para 0 novamente (00100001b = 21h).

Tentei ser o mais claro possivel. Mas o que lhes peço é que me explique o porque dessa "comutação" e se tem como configurar para que seja enviado somente o código ASCII correto todas as vezes que a mesma tecla é pressionada.

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve, IanTods.

Como estão configurados os parâmetros de comunicação no PC e no MCU?

Baud-rate, paridade, protocolo, essas coisas.

Eles tem que ser os mesmos, em ambas as pontas, tanto no PC, como no MCU.

Eu aqui tenho rotinas para comunicação serial entre o PC e o 8051, em linguagem C, utilizando o HyperTerminal.

http://download.editoraerica.com.br/prog_c_8051/exercicios.exe

você está usando o conversor de nível TTL-232?

Eu uso MAX232. Seu uso é obrigatório nesse tipo de comunicação.

Post seu programa aqui. Fica melhor pra analisar, principalmente, as rotinas de geração de comunicação.

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Maurício2006,

Pra mim só é possivel fazer testes na minha escola, tanto que o programa está no PC de lá, mas como ele é simples posso refazê-lo aqui sem problemas, logo postarei. Mas só queria adicionar uma coisa: fiz um teste utilizando osciloscópio direto no cabo serial que sai do pc, e o mesmo problema da comutação do bit 6 ocorria, logo, acredito que o problema seja no computador, na transmissão, configuração do HyperTerminal e tal.

Quanto às suas perguntas, sim, na placa do sistema minimo já tem o MAX232, pus baud-rate de 2400bps que é melhor com um cristal de 12MHz que é meu caso, no hyperterminal não pus paridade e deixe sem controle de fluxo. Protocolo? não me lembro de ter mexido algo do tipo.

Obrigado! ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×