miércoles, 4 de abril de 2012

PICBASIC PRO

Antes de comenzar con esta primera parte del tutorial, se recomienda buscar información acerca de los microcontroladores PIC, En este primer tutorial se comenzara a trabajar con el PIC16F628A, en el siguiente link veremos su hoja de datos: http://ww1.microchip.com/downloads/en/devicedoc/40044f.pdf 
Todos los tutorales, tendran un video al final del capitulo, con la simulacion en proteus.
 CARACTERISTICAS GENERALES DE ESTE MICROCONTROLADOR

• Velocidad de operación hasta 20 MHZ con oscilador externo.
• Oscilador interno RC (resistencia condensador) de 4 MHZ calibrado de fábrica al ±1 %.
• Admite 8 configuraciones de oscilador.
• 8 niveles de PILA.
• Procesador con arquitectura HARVARD.
• Conjunto reducido de instrucciones RISC (35) gama media.
• Instrucciones de un ciclo excepto los saltos (200nS por instrucción a 20 MHZ).
• Resistencias PULL-UP programables en el puerto B.
• Pin RA5 MCLR programable como reset externo o pin de entrada.
• Rango de operación desde 3V. hasta 5.5V.
• 15 pines de I/O y 1 sólo de entrada (RA5).
• Temporizador Perro guardián WDT independiente del oscilador.
• Programable con bajo voltaje LPV (5V.).
• Programación serial en Circuito ICSP por 2 pines: RB6 reloj y RB7 datos.
• Código de protección programable por sectores.
• Memoria de programa FLASH 2048K. de 100.000 ciclos escritura/borrado.
• Memoria de datos EEPROM de 1.000.000 ciclos escritura/borrado de 100 años retención.
• 2 circuitos comparadores análogos con entradas multiplexadas.
• 3 Timers, Timer 0 a 8 bits, Timer 1 a 16 bits y Timer 2 a 8 bits.
• Módulos CCP, Captura compara 16 bits, y PWM, modulación de ancho de pulso 10 bits.
• 10 fuentes de interrupción.
• Módulo de comunicación serial USART/SCI.
• Capacidad de corriente para encender leds directamente (25 mA I/O) por cada pin.


En la hoja de datos nos muestra la funcion de cada pin, pero la mayoria de ellos opera como I/O( entrada o salida) , En la siguiente imagen veremo como alimentar a un PIC.
Como nos indica la hoja de datos, el pin 5 y el pin 14 son Vss y Vdd respectivamente, se pone un regulador  7805, porque el PIC se alimenta con  5V y un capacitor en paralelo de 1uF para evitar el mal funcionamiento del PIC cuando se trabaje con teclados matriciales. En esta imagen no se a colocado oscilador externo, por que el PIC tiene uno interno, pero para trabajos que se requieran precision( comunicación serial ) se pone un cristal oscilador externo de  4MHz.

Antes de empezar a programar,  en el siguente link les dejare el link del compilador PBP, el programa microcode y el simulador  isis proteus. 


Todo nuestros programas lo compilaremos en  MicroCode Studio y al iniciar este programa no aparecera una pantalla al igual que la imagen de arriba, donde dice microcontrolador, seleccionamos el tipo de micrcontrolador que utilizaremos, en este caso PIC16F628A. Compilaremos el programa precionando F9, o haciendo clic en la opcion compile.

 * FORMATO DE VALORES

- Decimal: Podemos poner este valor sin antes anteponer ninguna caracter: A=20 , dato=20.
- Hexadecimal: Antes de poner un valor hexadecimal, tenemos que anteponer el simbolo "$" : A=$F0 
- binario: Antes de poner un valor binario, debemos anteponer el simbolo "%": A=%11110000

* COMENTARIO  

Para poner un comentario en  PBP(PICBASIC PRO), devebemos anteponer el signo ";" y todo lo demas el compilador lo considera como un comentario y no le toma importancia. 

* DEMORAS

Para generar una demoraa o un pause en el programa se utiliza la instruccion "PAUSE A" donde A biene ser el tiempo de la demora, ejemplo: A=500 (retraso de medio segundo), A=1000( 1segundo).

*TRIS
Esta instruccion se utiliza para configurar todo el puerto como entrada o salida, en este caso el PIC16F628A tiene dos puertos, A y B. Ejemplo:
TRISB = 0  ; configura a todo el puerto como salida.
TRISB = 1  ; configura a todo el puerto como entrada.
Tambien se puede configurar el puerto con codigo binario o hexadecimal.
TRISB =001111 ; los pines 0,1,2,3 del puerto B estan configurados como entrada, los demas como salida.
El siguiente programa es muy sencilla y nos da una idea acerca de la programacion de micocontroladores, este programa se puede escribir de varias maneras. 

****************************PRIMER PROGRAMA ***********************************

TRISB=000000 ; CONFIGURA TODO EL PUETO B COMO SALIDA, codigo binario

INICIO:                    ; INICIAMOS EL PROGRAMA
    PORTB.0 = 1       ;  EL PIN B0 DEL PUERTO B SE COLOCA A UN ESTADO LOGICO 1 (5V)
    PAUSE 500         ; UN RETARDO DE MEDIO SEGUNDO
    PORTB.0 = 0       ; COLOCA AL PIN A 0V
    PAUSE 500         ; RETARDO DE MEDIO SEGUNDO
    GOTO INICIO     ; GOTO SIGNIFICA "IR", EN ESTE CASO, IR  A INICIO, ASI QUE REGRESA  A
                              ;
INICIO Y HACE QUE SE VUELVA UN CICLO INFINITO  

********************************************************************************* 
TRISB=0               ; CONFIGURA TODO EL PUETO B COMO SALIDA, codigo decimal

INICIO:                 ; INICIAMOS EL PROGRAMA    
    high  portb.0   ; COLOCA A UN NIVEL ALTO EL PIN B0 ( 5V)
    PAUSE 500      ; UN RETARDO DE MEDIO SEGUNDO
    low   portb.0   ; COLOCA A UN NIVEL BAJO EL PIN B0 (0V)
    PAUSE 500       ; RETARDO DE MEDIO SEGUNDO
    GOTO INICIO   ; GOTO SIGNIFICA "IR", EN ESTE CASO, IR  A INICIO, ASI QUE REGRESA  A INICIO
                            ; Y HACE QUE SE VUELVA UN CICLO INFINITO    
**********************************************************************************

TRISB=0      
INICIO:     
    PORTB=000001 
; SELECCIONA EL PUERTO B Y COLOCA AL PIN B0 A 1 LOGICO (5V) 
                                      ; Y AL RESTO A 0 LOGICO(0V)
    PAUSE 500                ; RETARDO DE MEDIO SEGUNDO
    PORTB=000000  ; COLOCA TODO EL PUERTO B A 0 LOGICO
    PAUSE 500               
; RETARDO DE MEDIO SEGUNDO
    GOTO INICIO          
************************************************************************************
Los tres programas hacen el mismo trabajo, notamos que ai diferentes formas de programar y todas llegan al mismo resultado, recuerden que cuando ponemos un pin a 1 logico, por este pin salen 5V., ponemos una resistencia de 330ohm, para limitar la corriente por el pin del PIC, recuerden que si por ese pin pasan mas de 25mA, PIC se daña.         


En la salida del pin B0, no solo podemos poner un led, tmb podemos hacer parpadear a un foco de 220V, como muestra la imagen.
          
Ahora se coloca un transitor en modo de saturacion, un diodo para que protegear al transitor, cuando se descargue la bobina del relé, un relé de 12V un foco de 240V y un generedaor que funciona como un tomacorriente. En sgte link, un video del tutorial numero 1.


DE: F.Q.T.