Mis primeros pinitos con Microcontroladores
En esta página poco a poco voy a ir mostrando y comentando los avances que vaya teniendo en este maravilloso mundo de los microcontroladores.
Estoy estudiando la programación de los microcontroladores de la familia ®microchip porque son los más económicos y comerciales en mi localidad, e intentado programar en assembler pero para ser sincero me ha parecido bastante dificil, sin contar con que el programa que se haga con este programa sólo sirve para el pic especifico que fué creado, por lo tanto estoy aprendiendo a programar en picbasic y en lenguaje c que permiten ver con mayor rapidez los avances con estos mpc, el assembler lo dejamos para despues para no perder de pronto el entusiasmo con estos magnificos integrados.
Para hacer las practicas es necesario adquirir una herramienta fundamental como es el programador de pics, pero mejor aun es construir uno mismo su propio programador y tener doble satisfación; en la web hay infinidad de programadores, yo me decidí a hacer el ®pickit2 clone de suky porque está muy bien documentado, aprovecho para dar las gracias a él y a todas las personas que comparten sus conocimientos en la web.
Para programar el pic 18f2550 tuve que hacer el programador serial ®JDM PLUs el cual funciona a la perfección y con el cual pude programar sin problemas el firmware con extension .hex en el pic con la ayuda del ®winpic800 el cual es gratuito y muy facil de manejar.
El pickit2 original es fabricado por microchip y su diagrama a si como su firmware se pueden descargar gratis de la página del fabricante, una vez programado por primera vez se puede actualizar facilmente ya que el pickit2 tiene un bootloader (gestor de arranque) que lo hace posible, este programador es denomidado in-circuit-programmer (icsp) lo que quiere decir que no tiene zócalo para insertar el pic, si no que tiene un conector de 6 pines por medio del cual se conecta directamente al circuito donde está montado el pic a programar; se debe tener precaución al conectarlo porque se puede dañar el pickit2, pero a su vez es muy facil si se tiene a mano el datasheet del pic.
Subo algunas fotos para que vean mi progreso y se animen a construir el suyo:)
Ejemplos:
BLINK LEDS PUERTO B CON EL 18F2550
/**PARPADEA LEDS EN EL PUERTO B CON EL PIC 18F2550**/
#include <p18f2550.h>
#include <delays.h>
#include "18F2550BOLT.h" // configura el valor del xtal, los pines de entrada y salida para que corra en mi entrenadora
extern void _startup( void ); // Ver c018i.c en su C18 compiler dir
#pragma code _RESET_INTERRUPT_VECTOR = 0x000800 // a partir de esta dirección se empieza a grabar el código, de otro modo puede borrar el bootloader del pic
void _reset( void )
{
_asm goto _startup _endasm
}
#pragma code
/*********************FUSES **************************/
#pragma config FOSC = XTPLL_XT//Oscilador externo XT (4mhz) con PLL
#pragma config PLLDIV = 1//Pll sin divisor, es decir, crystal de 4Mhz.
#pragma config CPUDIV = OSC1_PLL2//PLL/2 es decir, el cpu trabajara a 48Mhz.
#pragma config PWRT = OFF// Power-up timer desactivado.
#pragma config BOR = OFF//Brownout reset desactivado.
#pragma config VREGEN = OFF//Regulador de voltaje usb desactivado
#pragma config WDT = OFF//Watchdog timer desactivado
#pragma config MCLRE = ON//Master Clear activado.
#pragma config LPT1OSC = OFF//Timer 1 condigurada para operacion con//máxima potencia.
#pragma config PBADEN = OFF//Entradas A/D del puerto B <4:0>//condiguradas como digitales.
#pragma config STVREN = OFF//Desboradamiento del Stack no causará reset.
#pragma config LVP = OFF//Soporte para una sola fuente de voltaje para//programacion ICSP desactivada
#pragma config XINST = OFF//Set de instrucciones extendidas desactivado.
#pragma config DEBUG = OFF//Debug desactivado por lo tanto B7 y B6 sirven//para pines de proposito general.
#pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF//Proteccion de bloques//desactivada
#pragma config CPB = OFF//Proteccion del código del boot desactivada
#pragma config CPD = OFF//Protección del código de memoria EEPROM//desativada.
#pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF//Proteccion de//escritura de los bloques// de memoria desactivada
#pragma config WRTD = OFF//Proteccion de escritura de la memoria EEPROM//desactivada.
/****************************************** PROGRAMA PRINCIPAL ***********************************************************************/
void main(void)
{
TRISB = 0X00; // configura el puerto B como salida, 0 = salida, 1 = entrada
while (1)
{
PORTB=0X00; // apaga los leds
Delay10KTCYx(255); // retardo
PORTB=0XFF; // prende los leds
Delay10KTCYx(255); // retardo
}
}
(1) El lazo do-while con el Pic 18F4550
/*prende y apaga un led en el pin_d0 hasta que se cumpla la condición dentro del parentesis del while*/
#include <18f4550.h>
#fuses xt,nowdt,nomclr
#use delay(clock=4Mhz)
int cont=0;//declara la variable cont entera y la inicializa
void main()
{
do
{
set_tris_d(0b11111110); //declara el bit0 del puerto d como salida
output_high(pin_d0);
delay_ms(1000);
output_low(pin_d0);
delay_ms(1000);
cont++;
}
while(cont<6);
}
PRACTICAS CON MICROCONTROLADORES:
código en lenguaje C de microC para pic y simulación en proteus
PICAXE
Empiezo por decir que las personas que saben bastante de programación menosprecian estos integrados lo mismo que hacen con el Basic, pero para personas como yo que apenas estamos aprendiendo son una muy buena alternativa para aprender a programar los microcontroladores, que dicho de paso los picaxe tambien son microcontroladores, sólo que ya vienen preprogramados con un bootloader que nos facilita la vida y nos permite rapidamente ver resultados practicos, el pequeño inconveniente con el que me he encontrado es que no se consiguen en el mercado local y es necesario comprarlos en linea y por esto se hacen un poco mas costosos que los otros pics, tienen la ventaja que el software de programación se consigue facilmente en internet y su manejo es muy sencillo, se pueden programar una y otra vez con diagramas de flujo y/o en basic, descargar el código es aun mucho mas fácil y no necesita comprar ningun programador de pics, basta con armar un sencillo cable de tres hilos que se conecta al puerto serial del pc y desde el mismo software de programación se puede descargar el código al picaxe, mejor aun sin necesidad de desconectarlo del circuito. La mayoria de estos integrados vienen con varias entradas ADC las cuales son muy útiles al momento de trabajar con sensores para monitorear variables analogicas, tales como la temperatura, humedad, presion, etc estos sensores se consiguen muy economicos en el mercado.....
CABLE DE PROGRAMACION POR EL PUERTO SERIAL
Plug estereo de 3.5 mm y un conector DB9 hembra
PEQUEÑA TARJETA DE DESARROLLO PICAXE 08M
Trae una parte del circuito impreso libre para implementar cualquier circuito que se nos ocurra o mejor aun colocarle varias hileras de headers hembras para recibir componentes pequeños que se puedan intercambiar facilmente de acuerdo al diseño
Estamos en la era de la información y el conocimiento el cual avanza a pasos agigantados y todo gracias a la NUBE. El conocimiento nos hace libres y nos permite adaptarnos a este mundo que segundo a segundo permanece en constante cambio.
La información suministrada en este sitio web se hace con el ánimo de compartir los conocimientos que he ido adquiriendo de a poco
en este mundo maravilloso de la electrónica y los computadores, de todas maneras si mis apuntes son desarcetados o estoy rompiendo alguna norma por favor comunicarse via e-mail que con gusto lo voy a corregir.
Gracias por visitar tu página
Vuelve Pronto