Autor Tema: Ayuda para la realización de programas en lenguaje ensamblador para PIC16F887  (Leído 1579 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Hansel

  • PIC10
  • *
  • Mensajes: 2
Hola usuarios, busco ayuda para realizar una serie de programas relacionados con el PIC16F887, elaborados con MPLab.
Adjunto los archivos para ver si alguien me puede ayudar a estructurar mis programas.
De antemano gracias y saludos!!!!

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Ayuda para la realización de programas en lenguaje ensamblador para PIC16F887
« Respuesta #1 en: 23 de Marzo de 2017, 14:59:09 »
Debo suponer que es ASM.

Bueno dejando de lado la parte de configuracion de los puertos, FUSES, etc, que todos los programas van a compartir casi, tenemos:

1- Esto es muy simple, te lo dice el programa, tomar del puerto, intercambiar los nibbles y luego ponerlo en otro puerto, esto se hace con 2 instrucciones en ASM
2- El segundo se puede hacer de 2 formas, la primera es utilizar una tabla, deberas buscar como hacer una tabla, la segunda seria con rotaciones y poner el carry en 1.
3- A mi preferencia este lo haria con una tabla y cada ves que el temporizador cumple el tiempo, pido otro valor de la tabla.
4- De forma secuencial, en el que el temporizador sea la menor unidad de tiempo, supongamos que el la intemitencia del verde es de 0.5s, entonces ese seria el valor del timer, luego para el color rojo si necesito 20s solo debo esperar que el tiempo de los 0.5s se complete 40 veces
5- Entran las interrupciones, tambien bastante simple. En tu programa principal solo un loop infinito si nada dentro. En la interrupcion tomarias el valor del boton presionado y lo pondrias en tu 7 segmento. Aca vas a tener que descubrir cual es el que esta en 1, primero compruebo que no esten todos en 0. Algo muy simple seria pasar el valor del puerto a un registro,  rotarlo y verificar si el carry esta en 1, si no lo esta aumento el valor de algun registro y roto de nuevo, asi hasta que alguno este en 1. Eso te da una proteccion por si se presionan 2 botones juntos.
6- Creo que de todos exceptuando el 1ro y 2do es uno de los mas facil, simplemente tomas los 2 valores y los restas, Dependiendo de Z ( cero ) y C (Carry) vas a saber si son iguales, o mayor o menor. Primero apagas todas tus salidas, preguntas por Z, si no son iguales preguntas por C y activas tu salida correspondiente.

Darte mas que esto seria hacerte los ejercicios. Ya tenes una gran ayuda y tenes explicado al menos como los haria yo.

Desconectado Hansel

  • PIC10
  • *
  • Mensajes: 2
Re:Ayuda para la realización de programas en lenguaje ensamblador para PIC16F887
« Respuesta #2 en: 24 de Marzo de 2017, 01:29:51 »
ok, así lo intentare.
gracias killerjc.