TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: NIKHEL en 20 de Abril de 2018, 12:42:21
-
Un cordial saludo.
Hace poco regresé a esto de los microcontroladores y por consiguiente, hay muchísimo que desconozco y bien podría dedicarme a investigar y hacer pruebas pero, por cuestiones de trabajo no me queda mucho tiempo.
El caso es que deseo aprender a programar este sencillo pic porque deseo ponerlo a funcionar una de sus salidas inicialmente en estado bajo y despues de un tiempo de unos tantos milisegundos, pasar esta salida a nivel alto.
Despues otra salida va a activarse a un estado alto por espacio de 30 segundos y apagarse por un espacio de 30 segundos también ......y permanecer en este ciclo indefinidamente.
La cuestion es que no se como empezar ya que con este pic no he trabajado y no veo mucho material de referencia.
Quisiera saber si usa las mismas instrucciones del 16f84 (se que solo usa 33), a ver si funciona igual.
Con solo que pueda aprender a definir sus salidas y entradas, activar los fusibles correctos .......creo que podría irme solo.
Cualquier ayuda es bienvenida!
-
Que lenguaje vas a usar?
Recomiendo C, ya que es mucho mas facil. Pero veo que tenes idea de ASM
----------------
Respecto al PIC12F509 si hay informacion, tenes el datasheet y es suficiente, pero es igual que cualquier otro PIC, nomas que en ves de usar PORTx usas GPIO, es decir cambia el nombre
En C ya hay funciones que te calculan las demoras, asi que es simple. solo poner delay_ms(500) y etnes una demora de 500ms
Y activar y desactivar los pines hay informacion de sobra, depediendo del compilador tambien muy simple.
-----------------
Respecto a hacerlo en ASM es simple.
Creas el proyecto, adjuntas el archivo p12f509.inc creo que se llama, ahi al final de ese archivo estan definidos todos los FUSES, si usas MPLAB X podes generarlos graficamente.
Luego solo resta nombrar los 2 vectores de reset e interrupcion.
Configurar los puertos, te vas al datasheet y ahi te explica el puerto ( GPIO )
Crear una rutina de demora, hay paginas uqe lo hacen por vos http://www.piclist.com/techref/piclist/codegen/delay.htm
Poner el dato, llamar demora, poner dato, llamar demora, volver a repetir y listo. ( Esto si es apagar y encender )
-
Excelente.
Si, de hecho tengo idea de ASM pero en definitiva el lenguaje C es un medio que nos facilita la vida y voy a irme por ese lado.
Precisamente después de escribir esta inquietud por este foro me puse a leer el datasheet y ya tengo mas claras muchas cosas (como lo de los GPIO que desconocía).
Revisaré el enlace para el calculo de retardos que dejaste anexo; me servirá mucho.
Muchas gracias por tu ayuda!