Hola a todos, aquí les traigo la continuación de la entrada anterior de como programar en C a un PIC, en esta ocasión podrán ver lo sencillo que es hacer un primer programa que solo srealziará la tarea de prender y apagar un led. A continuación podrán ver la estructura principal de un programa.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include <16F1938.h> //PIC A USAR
//Los fusibles que usará nuestro PIC, recuerden que cambian dependiendo del PIC a usar. Y si gustan pueden escribir los fusibles de la sig manera. #FUSES INTRC_IO, NOWDT, WST_SW,...
#FUSES INTRC_IO
#FUSES NOWDT
#FUSES INTRC_IO
#FUSES WDT_SW
#FUSES NOBROWNOUT
#FUSES NOLVP
//Igualmente el cristal de cuarzo que usarán para trabajar depende de lo que necesiten
#use delay(clock=4000000)
///////////////////////////////////////
//----------------VARIABLES GLOBALES--------------
// En la entrada anterior dije que las variables globales deben estar antes de main, creo que con este ejemplo ya queda un //poco más claro donde deben estar, ademas si no se usan el el programa cuando se ejecute marcará un erro por usar //variables que no se utilizan en el programa float valor=3.00025;
char nombre[]="Oscar Espitia"; //Normalmente se usa esto en un GLCD, LCD, comunicación serial pero esto es un ejemplo
char carga[]="Cargando";
char saludo[]="Hola Oscar";
char valor2[8];
int16 q;
int16 VoltoTemp;
float Temp;
float z;
float p;
///////////////////////////////
////////////////////////////////////////////
//---------------LIBRERIAS EXTERNAS-----------
//#include <lcd.c> usar librerias
///////////////////////////////////////
//---------------SUB-RUTINAS--------------
void cargando() //Nombre de tu sub-rutina
{
//HOLA SOY UNA SUB RUTINA
if(input(pin_c0)){ //En entradas posteriores veremos para que sirve las comandos input
while(TRUE) {
delay_us(20);
z = 20.0 * q;
p = z/1024.0;
delay_ms(100);
if(!input(pin_c0)) break;
}
}
}
//------------------------------------------
////////////////////////////////////////////
//-------PROGRAMA--------------
void main()
{
////////////////////////
//-----------------PUERTOS--------------
set_tris_b(0xff);
//1 - Entradas
//0 - Salidas
//En este caso todos son entradas
/////////////////////////////////////////////
while(true)
{
output_toggle(pin_c2); //Solo hacemos que empiece a parpadear indefinidamente el led.
delay_ms(500);
}
}
//////////////////////////////////
Una vez leído todo esto si gustan pueden copiar el codigo fuente a PIC C Compiler, y ejecutarlo para ver como funciona si todo esta correctamente para esto van a la opción compile y build all y si es así podrán ver la siguiente ventana ejecutarse, se encargará de crear el archivo .hex, y si es que algo estuvo mla les marcará donde están los errores o lo warning
Si marca algo de error 103 es porque es un versión de prueba.
----------------------------------------------------------------------------------------------------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////////////////////////////////
PARTE 3 (PRESIONAR BOTONES):
http://batiz9.blogspot.mx/2014/07/porgramar-pic-en-c-identificar-0-1.html
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include <16F1938.h> //PIC A USAR
//Los fusibles que usará nuestro PIC, recuerden que cambian dependiendo del PIC a usar. Y si gustan pueden escribir los fusibles de la sig manera. #FUSES INTRC_IO, NOWDT, WST_SW,...
#FUSES INTRC_IO
#FUSES NOWDT
#FUSES INTRC_IO
#FUSES WDT_SW
#FUSES NOBROWNOUT
#FUSES NOLVP
//Igualmente el cristal de cuarzo que usarán para trabajar depende de lo que necesiten
#use delay(clock=4000000)
///////////////////////////////////////
//----------------VARIABLES GLOBALES--------------
// En la entrada anterior dije que las variables globales deben estar antes de main, creo que con este ejemplo ya queda un //poco más claro donde deben estar, ademas si no se usan el el programa cuando se ejecute marcará un erro por usar //variables que no se utilizan en el programa float valor=3.00025;
char nombre[]="Oscar Espitia"; //Normalmente se usa esto en un GLCD, LCD, comunicación serial pero esto es un ejemplo
char carga[]="Cargando";
char saludo[]="Hola Oscar";
char valor2[8];
int16 q;
int16 VoltoTemp;
float Temp;
float z;
float p;
///////////////////////////////
////////////////////////////////////////////
//---------------LIBRERIAS EXTERNAS-----------
//#include <lcd.c> usar librerias
///////////////////////////////////////
//---------------SUB-RUTINAS--------------
void cargando() //Nombre de tu sub-rutina
{
//HOLA SOY UNA SUB RUTINA
if(input(pin_c0)){ //En entradas posteriores veremos para que sirve las comandos input
while(TRUE) {
delay_us(20);
z = 20.0 * q;
p = z/1024.0;
delay_ms(100);
if(!input(pin_c0)) break;
}
}
}
//------------------------------------------
////////////////////////////////////////////
//-------PROGRAMA--------------
void main()
{
////////////////////////
//-----------------PUERTOS--------------
set_tris_b(0xff);
//1 - Entradas
//0 - Salidas
//En este caso todos son entradas
/////////////////////////////////////////////
while(true)
{
output_toggle(pin_c2); //Solo hacemos que empiece a parpadear indefinidamente el led.
delay_ms(500);
}
}
//////////////////////////////////
Una vez leído todo esto si gustan pueden copiar el codigo fuente a PIC C Compiler, y ejecutarlo para ver como funciona si todo esta correctamente para esto van a la opción compile y build all y si es así podrán ver la siguiente ventana ejecutarse, se encargará de crear el archivo .hex, y si es que algo estuvo mla les marcará donde están los errores o lo warning
Si marca algo de error 103 es porque es un versión de prueba.
----------------------------------------------------------------------------------------------------------------------------------------------------------------
OK, después de haber hecho todo esto solo queda corroborarlo existen dos opciones armar el circuito en un proto board y programar con algún dispositivo como Wellon, Volnia o Pickit y ver como se prende o apaga un led.
Pero que pasa para las personas que no cuentan con un PIC o estos dispositivos para programar, pues existen diferentes programas que son básicamente simuladores que sirven para eso simular el codigo que hicimos en la parte de arriba.
El programa que yo utilizo es Proteus.
Proteus es una compilación de programas de diseño y simulación electrónica, desarrollado por Labcenter Electronics que consta de los dos programas principales: Ares e Isis, y los módulos VSM y Electra.
Y el que nos interesa es ISIS
El Programa ISIS, Intelligent Schematic Input System (Sistema de Enrutado de Esquemas Inteligente) permite diseñar el plano eléctrico del circuito que se desea realizar con componentes muy variados, desde simples resistencias, hasta alguno que otro microprocesador o microcontrolador, incluyendo fuentes de alimentación, generadores de señales y muchos otros componentes con prestaciones diferentes. Los diseños realizados en Isis pueden ser simulados en tiempo real, mediante el módulo VSM, asociado directamente con ISIS.
PASOS PARA SIMULAR EN ISIS (PROTEUS)
- Primeramente ya tener instalado PROTEUS, sino es cuestión de comprarlo o descargarlo, para ya ejecutar ISIS.
- Una vez abierto ISIS esta será su interfaz.
- Agregar todos los elementos a utilizar (PIC, led's, resistencias, etc.) Para esto se debe dar clik en la barra lateral izquierda a Componenet Mode (tiene forma de un amplificador operacional), y si nos vamos un poquito a la derecha estará otra barra lateral donde están la opciones P, L y dirá devices, ahí click en la letra P ahí nos abrirá un pestaña para seleccionar todos los componentes necesarios(lo único es que se tienen que escribir por su matricula o en ingles).
- Unir los componentes de forma correcta. A lo que me refiero es que como en el programa seleccionamos 1 puerto para poner un led en los mismos puertos de deben colocar esos dispositivos. y para colocar GND(tierra) deben ir a la opción Terminal Mode y ahí aparecerá la opción
- Ahora solo queda seleccionar la ubicación de nuestro programa, para eso solo hay que dar dos click en el PIC y nos abrirá una ventana donde podremos agregar la ubicación de programa .hex, y tambien cambiar de 1 Mhz a 4 Mhz el cristal de cuarzo.
- Solo resta darle click al símbolo de play y ver como se prende o apaga e led si todo salió bien, sino pues no se ejecutará el programa y nos marcará errores.
Bueno eso es todo espero les ayude en algo, y recuerden pueden cambiar el dispositivo utilizado pero si lo hacen también cambian los fusibles fuera de ahí es muy similar la forma de utilizar el codigo. Hasta luego.
PARTE 3 (PRESIONAR BOTONES):
http://batiz9.blogspot.mx/2014/07/porgramar-pic-en-c-identificar-0-1.html
Comentarios
Publicar un comentario