C de CCS paso a paso para 16F84A LED prende apaga Este es el programa más simple que se puede hacer para aprender a programar. Y elegimos el PIC que más información tiene en Internet. Suponemos que ya está instalado en la PC el programa para editar lenguaje C de CCS. Lo arrancamos y seleccionamos la pestaña Project. No importa lo que se vea en el editor. Todas las pantallas en este WORD se pueden agrandar para verlas mejor. En el menú seleccionamos PIC Wizard. Esto nos guiará para crear un programa creando la configuración del PIC. Nos aparece la pantallita que nos permite elegir el directorio y el nombre que le pondremos a nuestro proyecto. Por ejemplo creamos el directorio 16F84A prende apaga y el nombre de nuestro proyecto será LED. 1 Le damos Guardar. En el circulado rojo debemos elegir el PIC de la lista. Tener paciencia porque no aparecen en orden alfabético. Elegimos las opciones circuladas. Nombre del PIC, poner frecuencia del cristal de 4 MHz, reloj con cristal exterior de 4 MHz, y el resto en blanco. Le damos OK. Recordar de agrandar las imágenes para leer bien los detalles. Si elegimos la pestaña Code, veremos el código que va creando. Si tuviéramos otras opciones para agregar, las elegimos del circulado de la izquierda. Pero aquí no necesitamos más, por lo tanto le daremos OK, y terminó esta etapa del proyecto. 2 Este es nuestro código hasta ahora. Como a mí me gusta tener todo el código en un solo archivo .C, abriré el archivo 16F84A Prende Apaga\LED y lo copiaré al archivo .C en lugar del #include. Lo abriré con la opción directorios desde el menú, circulada en la imagen, elegiré el archivo, lo copiaré con CTRL C y lo pegaré. Se ve como en esta pantalla. Tenemos el encabezamiento con la configuración del PIC y el void main() que es obligatorio que exista, por las reglas del código de programación C. Usando el menú, cierro el LED.h y lo borro del directorio. Ahora comenzaremos con el programa, usando el editor del programa CCS. Borramos lo circulado y comenzamos. Eliminamos la línea del RS232, porque aquí no la usaremos. Es la conexión de entrada – salida del puerto serie. En el directorio se ve un archivo WORD que es este que estoy creando, un archivo .bat que es para limpiar los archivos que se crean al compilar y que no usamos, el LED.c en el que estamos trabajando y el LED.pjt que es el proyecto del CCS. 3 Elegimos la pestaña Compile y luego Build All, para compular el proyecto y que nos cree el archivo LED.hex, que es lo que grabaremos en el PIC. Por ahora lo hacemos solo para ver si no tenemos errores hasta aquí. Así quedó el CCS y el directorio. No marcó Errores ni Warnings (Llamadas de atención) El directorio se limpia haciendo doble click en el .bat. Para hacer el programa usaremos el manual del CCS, que ahora incluyo en este directorio. Usaremos estas funciones. El número es la página donde están: OUTPUT_HIGH(pin) .................. 32; pone a uno la salida especificada. OUTPUT_LOW(pin) ................... 32; pone a cero la salida especificada DELAY_MS(time) ....................... 33; crea un retardo para mantener prendido o apagado el LED. SET_TRIS_X(value) ................... 32; setea el puerto para indicar que pin es salida o entrada. Esta función es propia del lenguaje C, y ejecuta un bucle, donde se ejecuta infinitamente todo lo que está encerrado entre sus llaves. 4 while(true) // Bucle infinito { } Agregamos: // 76543210 Número de PIN del PIC set_tris_ab(0b00000000); // Todos salida valor cero. Las entradas van con 1. La primer línea es un comentario que se comienza con //. Esto es del C. La segunda indica que todos los pines del puerto A se ponen como salida. El número de pin se muestra en la línea de arriba. Si alguno fuera una entrada, como por ejemplo un pulsador, pondríamos el número 1. Agregamos el bucle infinito: while(true) // Bucle infinito { } Dentro de el, escribimos las líneas que se ejecutarán hasta que cortemos la alimentación del PIC. output_high(PIN_A0); // enciende el LED en el PIN A0 delay_ms( 1000 ); // demora de 1 segundo output_low(PIN_A0); // apaga el LED delay_ms( 1000 ); // demora de 1 segundo Este es todo el programa necesario. En esa dirección http://www.programatium.com/c.htm encontrarán un manual de C, muy completo, donde encontrarán al while empleado. Luego de tipeado todo se compila otra vez y hacerlo esto tantas veces como necesiten. Para quienes tengan Proteus, va el archivo para poder simular este programa antes de soldar o armarlo en una tarjeta de pruebas. 5 Esquema 6