Programación de PIC en lenguaje C (CCS): Herramientas “CCS PIC C COMPILER”

By on Mar 25, 2015 in Blog | 0 comments

En el post anterior dimos una breve introducción acerca de la programación de PIC en lenguaje C , y comentamos sobre los programas que vamos a  utilizar para programar nuestros queridos PICS, En este primer punto veremos como crear , guardar y abrir un proyecto con CCS.

La instalación es algo que a mi parecer no requiere de explicación pues con unos cuantos clicks se puede llevar a cabo. Una vez instalado CCS  procederemos a hacer click en el icono de la aplicación CCS

APLICACION

 

Si vemos nuestra página aparece totalmente en blanco y hay una sección a la que hay que poner especial atención la cual se muestra abajo

proyecto vacio

Esta imagen nos muestra que no tenemos ningún proyecto abierto , es importante que aparezca así ya que si no nuestro archivo podría guardarse o compilarse de forma errónea.

En caso de que nos apareciera algo debemos hacer click en

 Close All

 para cerrar todo archivo anterior que hubiésemos abierto anteriormente. Una vez verificado que este limpio nuestro directorio Procedemos a hacer click en  file    después nos dirigimos a “New” y hacemos click en “Source File

nuevo proyecto

Al hacer click nos aparecerá un pantalla pidiendo que guardemos nuestro proyecto

 

nuevo proyecto 2

 

En nuestro caso nombraremos nuestro archivo como “practica 1 (parpadeo de leds).c

Una vez guardado el archivo veremos que nuestro directorio ha cambiado

proyecto nuevo 3

 

Hay que tener mucho cuidado con este detalle en particular ya que muchas veces pueden surgir problemas porque creamos nuevos archivos *.C  pero ese archivo fuente esta guardado en un proyecto con otro nombre, ya que cada proyecto pueden contener varios archivos *.C, así que debemos observar que nuestro proyecto “hola mundo” debe contener nuestro archivo fuente “hola mundo.c

Ahora procederemos a copiar el siguiente fragmento de codigo y lo insertamos, por el momento solo vamos a usar el codigo para poder compilar nuestro programa.

///////////////////////////// DIRECTIVAS DE PREPROCESADO //////////////////////

/// libreria para el manejo del pic16f887
#include <16F887.h>

/// declara la frecuencia del cristal
#use delay(clock=8000000)
#fuses HS, NOWDT, NOPUT, NOPROTECT, INTRC_IO, BROWNOUT, NOLVP, NOPROTECT, NOCPD, NOFCMEN

///configura los fusibles
/// HS es la configuración  del oscilador la cual indica High speed es decir
/// frecuencias altas esto es a partir de 8 Mhz.

/// NOWDT deshabilita el Watch Dog Timer

/// NOPUT deshabilita le reseteo de power up timer

/// NOPROTECT deshabilita la proteccion del codigo del pic.

/// INTRC_IO nos indica que se va a utilizar el oscilador interno sin salida de
/// reloj

/// NOBROWNOUT habilita el reseteo automatico en caso de bajo voltaje.

/// NOLVP deshabilita la programación de bajo voltaje.

/// NOPROTECT deshabilita la protección de lectura de codigo de programa

/// NOCPD deshabilita la proteccion de lectura de la memoria eeprom

/// NOFCMEN deshabilita el monitor de falla de oscilador

/// asignamos a variable port_b el espacio memoria 0x08 que es la dir de port_d
#byte port_d=0x08

//////////////////////////GLOBALES//////////////////////////////////////////////
/// Estos parámetros son visibles desde todo el código ///
/// por eso se les llama globales ///
/// Al ser constantes,lo más práctico es declararlas aquí. ///
////////////////////////////////////////////////////////////////////////////////

int contador;

////////////////////////// Principal //////////////////////////////////////////

void main()
{

/// configura el oscilador interno con con 8MHZ

setup_oscillator(OSC_8MHZ|OSC_INTRC);

/// declaramos el puerto D como salidas

set_tris_d(0);

/// lo igualamos con cero para que tengamos un valor inicial de lo contrario no sabriamos con que valor iniciaria al comienzo de nuestro programa
port_d=0;

/// bucle infinito para que las instrucciones que tiene siempre se ejecuten
while (true)

{

/// activa todos los pins del puerto B, otra instrucción  que podemos poner es contador=255 las dos son lo mismo

contador=0xff;

port_d=contador;

/// Retardo de 1000 milisegundos es decir 1 segundo
delay_ms(1000);

//// apaga todos los pins del puerto B
contador=0x00;
port_d=contador;

delay_ms(1000);

/// fin de bucle while

}

/// fin de funcion principal main
}

 

Una vez que pegamos el código procedemos a compilar el programa,

Compilar significa pasar el código que acabamos de escribir en  C a lenguaje de Máquina que es el lenguaje que nuestro microcontrolador puede interpretar.

 

Para compilar debemos hacer click en la pestaña “Compile” y después hacemos click en el botón       compile para comenzar a compilar, de igual forma podemos compilar apretando las teclas Crtl + Alt + F9 .

 

compilar

 

Nos aparecerá una ventana emergente por unos instantes, y si nuestro programa no tiene errores nos mostrara un mensaje de “no errors“.

Ahora podemos ver que en la carpeta donde tenemos guardado nuestro archivo se generaron nuevos archivos con extensiones  hex, err ,tre , asm, cof, entre otros.

Esos archivos son lo que usaremos mas adelante para grabar nuestro programa al PIC de nuestra elección o para poder simularlo en Proteus. No olviden salvar su proyecto con el botón “Save All

En nuestro siguiente post veremos el funcionamiento de Proteus.

Post a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *