Binários 16f84 up / down counter

S

steelhacker

Guest
Olá programadores, i am a precisar de algum código para um 16f84. Eu preciso de um bit 7 para cima / para baixo contador que é intensificada pelo codificador rotativo nos pinos de entrada porta. e exibidos em binário (LEDs) em pinos de saída portb. eu preciso para começar a 0 e contar até 127 (0000000-1111111), em seguida, volta para redefinir 0. i também precisa dele para contar para baixo se instruído pelo codificador rotativo. 0,5 segundo atraso entre as etapas seria bom uma vez que será controlado por um ser humano lento. Eventualmente, eu gostaria de adicionar ao projeto e ter esse número binário convertido em decimal em um LCD. mas isso não é importante agora. Eu sei que vocês provavelmente atingido o tempo todo para isso e eu me sinto mal por perguntar, mas meu cérebro está prestes a explodir de tentar aprender asm. i conseguiram aprender o básico absoluta, mas fica um pouco desanimadora depois de um tempo. Eu construí a mim mesmo uma placa de desenvolvimento apenas para a tarefa e não têm nenhum problema para fazer o pic a contar com a sua própria, mas estou tendo problemas com entradas. Qualquer ajuda neste projeto seria muito apreciada. Muito obrigado! Fragrance Mod é um perdedor
 
Oi, Não é difícil conseguir uma execução contra - mas primeiro você precisa verificar se sua saída é Encoders Pic 5v compatíveis - você tem todos os detalhes sobre ele? Você pode ser capaz de conectá-lo direto a uma porta ou você pode precisar de alguns componentes adicionais. Se você tem um contador de execução já então você é meia maneira lá. A maneira mais simples de ler uma entrada de 'slow' é assim, digamos Wlth PortB, 0 ligado ao encoder agora compatível bankse1 TRISB movlw b, '00000001 '; set PortB, 0 a entrada TRISB banksel PORTB btfss PORTB, 0; teste porto B, 0 se for uma alta do codificador, assim, contar uma Goto nocount; não alto assim que sair INCF COUNT, F; incrementar o contador; opcional - agora esperar / teste para encoder para ir baixo Veja como você vai, se você ficar preso em seguida, publicar o seu código para que possamos ver onde as coisas estão acontecendo de errado.
 
O codificador que eu tenho é uma atração a partir de uma rádio, eu não encontrei uma folha de dados sobre ele, mas eu tenho experiência com isso no meu alcance. É pulsos estão fora de fase um do outro. o pic teria que ler a borda das duas saídas para determinar a direção. há um codificador rotativo que é mais fácil para me integrar no circuito dada a minha falta de experiência? Eu estou provavelmente errado, então por favor me corrijam. Estudei o seu código de exemplo, parece que a foto seria verificar a 0 e incremento ou verificar a 1 e pular para diminuir ...????? Estou assumindo que esta rota não funcionaria para este estilo encoder rotativo. Eu realmente aprecio você tomar o seu tempo para ajudar alguém. É um reflexo de seu personagem! Obrigado
 
i irá sugerir que você use atmel. que um é fácil de programar
 
Oi, Parece que você tem um Encoder Incremental, conforme mostrado aqui. http://en.wikipedia.org/wiki/Rotary_encoder Como você está apenas lendo-o muito lentamente, em seguida, usando o método simples que eu descrevi deve funcionar ok. Se você estivesse lendo a uma velocidade maior que há outras maneiras, mas eles são um pouco complicado para agora. O BTFSS instrução é complementada pela BTFSC que você possa testar e controle tanto para condições de alta ou baixa. Olhe-se no Datasheet PIC16F84. para a parte traseira é o conjunto de instruções completo. Então você precisa para alimentar cada fase em seu pino pic própria e em seguida, ler cada porta e depois decodificar os resultados a um resultado apresentável. No entanto o meu nível de Encoders é baixa e eu não sei se o que você tem pode alimentar o pic diretamente, mas se você tem escopo que eu suponho que você pode fazê-lo enviam sinais de 5v?
 

Welcome to EDABoard.com

Sponsor

Back
Top