58 programas en C para microcontroladores PIC.




Para aprender a programar microcontroladores en algún lenguaje de programación necesitaremos, además de una buena guía, un conjunto de programas que nos permita a través del análisis del mismo, entender mejor las características y funciones de nuestro microcontrolador.

Es así como, dándome a la tarea de buscar algunos programas escritos en C para los microcontroladores PIC de Microchip (utilizando el compilador PCW de CCS), me tope con una grandiosa colección de 58 programas escritos por Vszener de foros todopic. Una serie de programas que aunque, escritos para el 16F648A, son fácilmente implementables en otros modelos de PIC. Además, podremos descargar los archivos de código y de simulación en Isis Proteus para cada uno de ellos (previa registración en el foro).

A continuación, algunos de los programas que encontrarás:
- Parpadeo de un LED cada medio segundo.
- Contador ascendente de 0 a 9.
- Dado digital.
- Escribir y leer EEPROM interna del PIC.
- LCD y teclado matricial.

¿Que más se puede pedir para comenzar a programar microcontroladores PIC en C?

Ir a: 58 programas en C para el compilador PCW de CCS.

12 comentarios:

Anónimo dijo...

Gracias, es lo que necesitaba para seguir aprendiendo C para mi micro.

Anónimo dijo...

gracias vale mia te debo una

Anónimo dijo...

Gracias hermano... se te agradece...!!!

Anónimo dijo...

No puedo ver

Anónimo dijo...

Excelente y muy útil información. Mil gracias

Anónimo dijo...

holaaa

wilmer dijo...

Excelente aporte amigo, me sirvió muchísimo para poder practicar, espero que más adelante hagas más ejemplos

Nahuel Millan dijo...

Hola, una consulta estoy queriendo armar una condición if, pero cuando lo simulo en el proteus no me la reconoce.
if(PIN_B7==0){
for(i=0;i<10;i++){
PORTB=0b00000000;
delay_ms(350);
PORTB=0b00000001;
}
La idea es que el for se ejecute cuando la entrada RB7 del pic esta en 0. Pero no estaría funcionando.
Gracias

Anónimo dijo...

Hola, tengo una duda (soy nuevo en esto), esta programación, se hace en el programa C++

Anónimo dijo...

if(input(pin_b7==0) {

}

Anónimo dijo...

if(input(pin_b7==0)) {

}

Anónimo dijo...

if(PIN_B7==0){
for(i=0;i<10;i++){
PORTB=0b00000000;
delay_ms(350);
PORTB=0b00000001;
"}"
}
Vamos a ver, primero unos detalles.-
1ºFalta una llave de cierre del if o del for.
2ºCuidado dentro del for no defines i for(int i=0;i<10;i++)

Después de lo anterior ... el programa te funcionará pero no lo verás, porque el problema que tienes es que cada vez que se ejecuta una pasada del for, el PIN_B7 pasa inmediatamente de 1 a 0 porque no tienes un segundo retardo después PORTB=0b00000001, o sea en la salida del for.

Recomendaciones: si quieres evitar problemas siempre que ejecutes algo, actúa solo sobre lo imprescindible, en este caso sobre el PIN_B7 en vez de PORTB, ya que estás actuando sobre todo el puerto y quizás no haga falta, importante al terminar deja todo lo que has alterado como estaba, todo es todo, variables, salidas, pilas de datos, etc.

Prueba esto.-

if(!PIN_B7){
for(char i=0; i<10; i++){
PIN_B7=1; // empieza por cambiar algo lo imperscindible
delay_ms(500); // pon mas retardo para verlo mejor
PIN_B7=0; // siempre termina como empezaste
delay_ms(500); // imprescindible para ver el cambio
}
}

Publicar un comentario

Utiliza nuestro foro de electronica si tienes dudas no relacionadas con este tema.