Registros SFR vistos hasta ahora: Microcontroladores PIC

Microcontroladores PIC Registros SFR vistos hasta ahora: Microcontroladores PIC: Timer Características del Timer TMR0: • Cumple básicamente la funci...
32 downloads 1 Views 1MB Size
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: