TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: stalin84 en 21 de Febrero de 2015, 19:48:48
-
Buenas Tardes, quisiera que me ayuden a hacer un contador 0-99 con el PIC-16F877A usando Timer0 con un pulsador. En lenguaje Assembler.
-
Necesitas que vaya a programarlo a tu casa?
Perdon por el sarcasmo no podia dejarlo escapar...
Si quisieras hacer eso primero comenzaria con aprender a usar el TMR0,1,2,3 el que sea. entender como cuenta y cuando se preoduce una interrupcion ( o un overflow del mismo) asi definis una base de tiempo.
Luego cuando tengas eso funcionando y puedas guardar el resultado en registros.. pasarias a mostrarlos en algo. Displays,lcd, etc, seguro vas a necesitar aprender que es BCD tambien.
Por lo demas no puedo decirte mas nada, practicamente que te "ayuden" como lo pediste es querer que te hagan el proyecto completo.
Si tenes una duda particular de por ejemplo por que no entra a la interrupcion, o por ejemplo quiero que cada 1 segundo sume mi contador pero el timer solo puedo hacer una interrupcion cada 10ms como le hago... ahi te van a presentar soluciones o ideas para que lo soluciones.
-
Ha lcaro tienes razon, bueno el programa ya lo hice lo que no se es como hacer para conectar de frente al pic el display, o si a las salidas del pic colocar un deco y luego el display. No se como hacer elprograma para conetar directo el display.
-
Vas a necesitar 2 displays. Podes elegir entre usar un decodificador como el cd4511 ( 4 pines + 2 de los catodos ) o directamente prender y apagar cada segmento ( 7 pines + 2 de catodo ).
Esta imagen te va a ser de ayuda:
(http://www.circuitstoday.com/wp-content/uploads/2012/06/multiplexing-7-segement-display-to-8051.png)
Basicamente podes prender 1 por ves. Asi que para mostrar las decenas prendes los segmentos correspondientes a ese valor y activas el catodo de ese display. Luego esperas un tiempo, apagas el catodo de las decenas ahora haces lo mismo para las unidades.
Para traducir el numero del 0 al 9 se suele utilizar tablas..
Este hilo te va a ser de mucha utilidad:
http://www.todopic.com.ar/foros/index.php?topic=24720.msg201401#msg201401
-
Otra sugerencia: el lenguaje assembler es bastante complicado, pues es literalmente el más bajo nivel de programación para pics, lo más parecido al lenguaje máquina disponible. Si no tienes experiencia vasta en el lenguaje, se te puede complicar mucho el programa. Te sugeriría que si lo de assembler es requisito arbitrario del profesor (supongo que es para eso) programes en algún compilador de alto nivel (Pic Simulator IDE, Proton, MikroC, etc.) y utilices la opción de generar código assembler para mostrar las instrucciones en .asm
Eso, y como ya te dijeron, bájate la hoja de datos del 877 y dale una buena leída, concretamente a los apartados referentes a Timer0, interrupciones y pre-escalador.