Introduccion a la programacion de PICS en lenguaje C (CCS)

Iniciado por MARCO_RECARGADO, 26 Julio 2007, 17:47 PM

0 Miembros y 1 Visitante están viendo este tema.

MARCO_RECARGADO

hola pues hace como un año aprendi a programar los micros PIC en lenguaje C pero ultimamente no los he retomado ya por lo que voy a empezar a programar de nuevo  Y que mejor que publicar todos los programas que pueda en el foro y compartirlo con todos.

Asi que comencemos. En primer lugar que es CCS es un software que te permite programar microcontroladores PIC en lenguaje C. para mayor informacion aqui tienen el link

www.ccsinfo.com

En inicio vamos a poner que herramientas necesitamos para poder trabajar.

CCS compiler     (el antes mencionado)
Proteus              (software para poder simular los pics)
Winpic800         
    ó                   (programadores de pics muy bueno)
epicwin             

y por supuesto un quemador de pics en el programa winpic800 vienen  links de varios quemadores.


en el siguiente post les mandare los links de donde pueden descargar los programas con su respectiva medicina. y el diagrama del hardware que yo tengo
hasta pronto


"Desde muy chico tuve que interrumpir mis estudios para ir a la escuela"  Gabriel García Márquez

MARCO_RECARGADO

Empecemos con los links de descarga

Epicwin (pagina oficial software freeware)
http://www.melabs.com/support/progsoft.htm

winpic800  (pagina oficial software freeware)
http://www.winpic800.com/

los otros programas los tengo que subir a algun servidor cual me recomiendan?
el rapidshare es bueno pero no tedeja bajar los archivos enseguida despues de que haz descargado un archivo. cual si te deja?
"Desde muy chico tuve que interrumpir mis estudios para ir a la escuela"  Gabriel García Márquez

MARCO_RECARGADO

#2
Las versiones mas recientes con sus respectivas medicinas.


PICC COMPILER CCS

Megaupload
CCS 4.104


Badongo
CCS 4.104


Filefactory
CCS 4.104



PROTEUS 7.6 SP0


Megaupload
CCS 4.104


Badongo
CCS 4.104


Filefactory
CCS 4.104


Para instalarlo solo tienen que leer el archivo dond vienen las instrucciones de comom instalar saludos


Actualizado 4/febrero/2010
"Desde muy chico tuve que interrumpir mis estudios para ir a la escuela"  Gabriel García Márquez

MARCO_RECARGADO

"Desde muy chico tuve que interrumpir mis estudios para ir a la escuela"  Gabriel García Márquez

MARCO_RECARGADO

#4
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
///          Practica 1 :     Parpadeo de LED´S    con PIC16F84A       ///
///          para el   foro.elhacker.net     by Marco                           ///
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////



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

///   libreria para el manejo del pic16f84a
#include <16F84A.h>

///   declara  la frecuencia del cristal
#use delay(clock=8000000)

///configura los fusibles
/// HS es la configuraricion 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.
#fuses HS,NOWDT,NOPUT,NOPROTECT

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

//////////////////////////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()
{       

/// declaramos el puerto B como salidas
set_tris_b(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_b=0;

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

{               

/// activa todos los pins del puerto B
/// otra instruccion que podemos poner es contador=255 las dos son lo mismo
contador=0xff;     
port_b=contador;

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

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

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

} /// fin de bucle while
} /// fin de funcion principal main


aqui los archivos para PICC y Proteus

"Desde muy chico tuve que interrumpir mis estudios para ir a la escuela"  Gabriel García Márquez

lu8emw

Hola marco... Yo nunca programe en c... me sera dificil? ya me baje el compilador, el proteus medio que le agarre la mano hace un tiempo... Te agradezco por lo que haces por el foro, nunca esta de mas seguir aprendiendo. Un saludo.

MARCO_RECARGADO

El lengujae c no es un lenguaje de programacion dificil es relativamente rapido de aprender. Yo empece programando en ensamblador, es bueno porque tienes el control del PIC total pero hay cosas que es mejor hacerlas en c puesto que en ensamblador seria demasiado tedioso como el manejo de una pantalla LCD en la cual el CCS ya tiene una libreria determinada. Estoy haciendo el tutorial de manera que sea lo mas comprensible para los que quieren empezar a programar estos micros en C.  Pero tambien se vale preguntar.
"Desde muy chico tuve que interrumpir mis estudios para ir a la escuela"  Gabriel García Márquez

skapunky

Buena aportación. Poca gente comparte las cosas que hace, y a veces por muy sencillas que puedan parece ya no se toma uno la molestia de colgarlas. Aunque sean racticas sencillitas mas de 1 quiza ahora le aclare dudas o le ayude.

Nota: Intenta poner mas info en un mensaje. Si por ejemplo fuera el caso de que posteas algo por la mañana y otra cosa por la tarde y no han habido respuesta, edita el post con el boton "Modificar"

Saludos.
Killtrojan Syslog v1.44: ENTRAR

MARCO_RECARGADO

gracias lo acabo de hacer, parece que no muchos conocen el programa CCS y obviamente mi titulo no les va a decir nada, espero que con esto tenga mas afluencia, disculpen si ahorita dejo el post esta semana pero es que tengo que salir por cuestiones de trabajo a otro lugar y no voy a tener tiempo pero en cuanto regrese les pongo las demas practicas
"Desde muy chico tuve que interrumpir mis estudios para ir a la escuela"  Gabriel García Márquez

MARCO_RECARGADO

#9
Perdon por la tardanza pero mi trabajo no me ha dejado hacer mucho les dejo otra practica para que sigan practicando el ccs


/////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////            Practica 2          /////////////////////////////////
//   Esta practica pasa la informacion que hay en el puerto B y la pasa        //
//                                           al puerto A                                               //
///////////////////////// By  Marco_recargado    ///////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////


#include <16F877A.h>                ///   libreria para el manejo del pic16f877a
#use delay(clock=8000000)          ///   declara  la frecuencia del cristal

#fuses HS,NOWDT,NOPUT,NOLVP,NOBROWNOUT,NOWRT,NOPROTECT




#use fast_io(B)             ///   con esta instruccion evitamos que
                                   ///   se este configurando cada vez que usamos 
#use fast_io(C)            ///   alguna instruccion de entrada o salida
                                         
#byte portb = 6            //    se definen las direcciones de memoria
#byte portc = 7



void main(void)
{
while(true)                       // Bucle infinito
{
   set_tris_b(0xff);            // se configura el puerto A como entrada
   set_tris_c(0x00);          // se configura el puerto B como salida
   port_b_pullups(true);    // activa las resistencias de pull-up
   portc=portb;
   
}
}                                    // fin de programa










y por supuesto la simulacion en proteus
http://img405.imageshack.us/my.php?image=practica1dz2.swf



Si tienen alguna duda con respecto a los programas por favor haganmelo saber, tal vez no les conteste enseguida pero lo voy a hacer lo mas rapido que pueda hasta pronto
"Desde muy chico tuve que interrumpir mis estudios para ir a la escuela"  Gabriel García Márquez