C de CCS paso a paso para 16F84A LED prende apaga

Anuncio
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
Descargar