Microcontroladores PIC - unsl.edu.arpmp/archivos/teoria15_pic_2014.pdf · Microcontroladores PIC:...

14
Microcontroladores PIC Registros SFR vistos hasta ahora:

Transcript of Microcontroladores PIC - unsl.edu.arpmp/archivos/teoria15_pic_2014.pdf · Microcontroladores PIC:...

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

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.

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.

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).

• Ejemplos de programas:

Microcontroladores PIC

STATUS EQU 3 ; registro de ESTADO TRISB EQU 6 ; sentido del PORTB PORTB EQU 6 ; dato del PORTB RP0 EQU 5 ; bit de STATUS para cambiar de banco ORG 0000 ; comienzo del Programa GOTO INICIO ORG 0004 RETIF INICIO BSF STATUS,RP0 ; entramos al bank 1 MOVLW B’00000000’ ; movemos 00000000b a W MOVWF TRISB ; configuramos el puerto B como salida BCF STATUS,RP0 ; volvemos al bank 0 LOOP MOVLW B’11110000’ ; carga W con el dato a sacar por la puerta B MOVWF PORTB ; saca por PUERTA B el valor del registro W CALL DELAY ; demora 0.1 segundos MOVLW B’00001111’ MOVWF PORTB CALL DELAY GOTO LOOP END

Microcontroladores PIC

CUENTA1 EQU 0C ; primer posicion de la RAM (GPR) CUENTA2 EQU 0D ; ; 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

• Ejemplos de Delays:

Algunos circuitos simples:

Microcontroladores PIC

Pulsadores:

Diodos LED:

Circuito básico: