Diapositiva 1
Transcripción
Diapositiva 1
Microcontroladores PIC Registros SFR vistos hasta ahora: Microcontroladores PIC: Timer Características del Timer TMR0: • Cumple básicamente la función de contador de eventos (o divisor de frecuencia). • El contador (de 8 bits) se accede a través del registro TMR0 (01h de la RAM). • Es posible seleccionar entre dos fuentes de clock: - Interna: frecuencia del procesador (ciclos de instrucción). - Externa (a través de RA4, seteado como entrada). • El valor de cuenta puede ser escrito o leído en todo momento. • Permite seleccionar el flanco del clock (en el caso de clock externo). • Genera una interrupción al final de cuenta. • A la entrada de clock se le puede intercalar (o no) un módulo divisor de frecuencia (llamado prescaler). Microcontroladores PIC: Timer Registros SFR asociados al Timer: Microcontroladores PIC: Timer Timer: registro de configuración: Microcontroladores PIC: Programación El proceso de programación: • Para transferir el código desde una PC al PIC se usa un dispositivo llamado programador. • La mayoría de PICs actuales incorporan funciones que permiten realizar la programación directamente en el circuito donde están destinados a trabajar: - ICSP (In Circuit Serial Programming, programación serie en el circuito). - LVP (Low Voltage Programming, programación a bajo voltaje). • Para la función ICSP se usan generalmente los pines RB6 y RB7 como reloj y datos, y /MCLR para activar el modo programación aplicando un voltaje de 13 voltios. • Existen muchos modelos de programadores de PICs, desde los más simples (que dejan al software los detalles de comunicaciones), a los más complejos (que pueden verificar el dispositivo a diversas tensiones de alimentación e implementan en hardware casi todas las funcionalidades). • Muchos de estos programadores complejos incluyen ellos mismos PICs preprogramados como interfaz para enviar las órdenes al PIC que se desea programar. Microcontroladores PIC: Programación La Palabra de configuración: • Durante el proceso de programación, además de escribirse el programa en la memoria tipo flash correspondiente, también se escribe la llamada palabra de configuración del PIC. • Sirve para activar, desactivar o configurar funciones especiales del µC, tales como: – El tipo de oscilador a usar (cristal, RC, etc.) – WDT activado/desactivado – Protección de código – Etc… • Puede ser modificada solo en el momento de la programación (grabación del programa). Microcontroladores PIC: Programación Programadores: ejemplos: Uno de los mas simples, el JDM: Microcontroladores PIC: Programación Programadores: uno mas avanzado, el PicKit2: Microcontroladores PIC: Programación Algunos clones simplificados del PicKit2: Microcontroladores PIC: Programación Software básico para grabadores: Funciones necesarias que debe llevar a cabo: - Borrado inicial de la memoria Flash del PIC. - Leer, Grabar y Verificar el código de máquina (provisto en formato *.hex). - Escribir la palabra de configuración. Algunos ejemplos: - Pickit2 (www.microchip.com): gratuito, para el programador del mismo nombre (y sus clones). - Icprog (www.ic-prog.com): de distribución libre, muy popular, sirve para el JDM y otros. - etc. Microcontroladores PIC Herramientas de desarrollo (para µC): • Tareas necesarias: - Compilar / Ensamblar. - Depurar. - Simular / Emular. - Programar. • Microchip ofrece de forma gratuita el entorno de desarrollo llamado MPLAB (www.microchip.com). • MPLAB incluye: - Un editor para el código fuente (en C o assembler). - Ensamblador. - Compilador de C. - Simulador. - También es posible realizar la programación del PIC (con ciertos programadores). Microcontroladores PIC • Ejemplos de programas: STATUS TRISB PORTB RP0 EQU EQU EQU EQU 3 6 6 5 ; ; ; ; ORG GOTO 0000 INICIO ; comienzo del Programa ORG RETIF 0004 INICIO BSF MOVLW MOVWF BCF STATUS,RP0 B’00000000’ TRISB STATUS,RP0 ; ; ; ; LOOP MOVLW MOVWF CALL B’11110000’ PORTB DELAY ; carga W con el dato a sacar por la puerta B ; saca por PUERTA B el valor del registro W ; demora 0.1 segundos MOVLW MOVWF CALL B’00001111’ PORTB DELAY GOTO LOOP END registro de ESTADO sentido del PORTB dato del PORTB bit de STATUS para cambiar de banco entramos al bank 1 movemos 00000000b a W configuramos el puerto B como salida volvemos al bank 0 Microcontroladores PIC • Ejemplos de Delays: CUENTA1 CUENTA2 EQU EQU 0C 0D ; primer posicion de la RAM (GPR) ; ; esta subrutina demora ~100 milisegundos ; DELAY MOVLW D’100’ ; 1c MOVWF CUENTA2 ; 1c SAL2 CALL D1MS ; 1c+1ms DECFSZ CUENTA2 ; 1c/2c GOTO SAL2 ; 2c RETURN ; 2c ; ; esta subrutina demora 1 milisegundo (con un cristal de 4MHz) ; D1MS MOVLW D’249’ ; 1c MOVWF CUENTA1 ; 1c SAL1 NOP ; 1c DECFSZ CUENTA1 ; 1c/2c GOTO SAL1 ; 2c RETURN ; 2c Microcontroladores PIC Algunos circuitos simples: Circuito básico: Pulsadores: Diodos LED: