microcontroladores picpmp/archivos/teoria15_pic_2014.pdf · 2014. 11. 11. · microcontroladores...
TRANSCRIPT
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: