Microcontroladores - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

Microcontroladores

Description:

Cuando lleguemos a 125 en el registro extra, ha pasado exactamente un segundo. ... Para reconocer que algo ha pasado, se usan las interrupciones, por ejemplo para ... – PowerPoint PPT presentation

Number of Views:305
Avg rating:3.0/5.0
Slides: 27
Provided by: sebastian78
Category:

less

Transcript and Presenter's Notes

Title: Microcontroladores


1
Microcontroladores
  • PIC16F84A

2
Conociendo al PIC16F84A
  • Posee 18 pines, de los cuales 13 son de I/O
  • Memoria para guardar programas
  • Timer/Contador interno
  • 4 fuentes de interrupciones a la CPU
  • Memoria EEPROM

3
Diagrama del PIC16F84A
4
Memoria
5
Registros
  • Para configurar al PIC, debemos modificar algunos
    registros especiales STATUS, OPTION_REG, INTCON,
    TRISA, TRISB
  • Para manejar el I/O están los registros PORTA,
    PORTB
  • Todo registro es de 8 bits (1 Byte)

6
Timer
  • Qué cuenta el Timer?
  • El timer puede ser configurado de distintas
    maneras para que vaya más rápido o más lento,
    pero con ciertos límites.
  • Un segundo para el timer es mucho tiempo, aún
    cuando esté configurado para ir lo más lento
    posible.

7
Componentes del Timer
  • Prescaler Acá podemos seleccionar que el tiempo
    se vaya incrementando a la misma velocidad que se
    leen las instrucciones (si tiene el valor 1) o si
    queremos configurarlo a nuestra medida (si tiene
    el valor 0).
  • Prescaler Rate Select (P.R.S.) Si el prescaler
    queda configurado con valor 0, acá podemos
    seleccionar la velocidad a la cual queremos que
    se mueva el timer.

El prescaler y el prescaler rate select se
configuran en el registro OPTION_REG
8
Cómo contar 1 segundo?
  • La frecuencia original que le llega al timer es
    de 1Mhz.
  • 1Mz 1000000 Hz
  • Si elegimos un P.R.S de 64, entonces la
    frecuencia que le estaría llegando al timer será
    de
  • F 1000000 / 64 15625 Hz
  • Como F 1 / T, entonces T 0.000064 segundos
  • Cada 0.000064 segundos se aumenta en uno el
    timer.
  • Entonces si queremos saber cuántas veces tiene
    que aumentar para que demore 1 segundo tenemos
  • 0.000064 x 1 segundo
  • x 15625
  • Se necesita que el timer aumente 15625 veces

9
Cómo contar 1 segundo?
  • Pero este timer es un registro igual que todos
    los otros, por lo tanto tiene sólo 8 bits con lo
    que solamente puede contar hasta 255.

Qué se puede hacer?
10
Cómo contar 1 segundo?
Contar 15625 es lo mismo que contar 125 veces
125, con la diferencia de que el número 125 sí
cabe en el registro del timer. Entonces la idea
es contar hasta 125 en el timer y ocupar un
registro extra para ir contando las veces que
hacemos eso. Cuando lleguemos a 125 en el
registro extra, ha pasado exactamente un segundo.
11
Cómo contar 1 segundo?

Para que el timer sólo cuente 125, tenemos que
hacer que su valor inicial sea 130 (de 130 a 255
hay 125)
Asimismo, al registro extra lo tenemos que
inicializar con 125, para ir restándole 1 cada
vez y cuando el registro llegue a 0, sabemos que
ya pasó un segundo.
Pero Cómo sabemos que el timer dio una vuelta?
12
Interrupciones
  • Para reconocer que algo ha pasado, se usan las
    interrupciones, por ejemplo para cuando el timer
    se da la vuelta.
  • - Interrupción de Timer- Interrupción de
    RB0/int- Interrupción de RB4-gtRB7
  • - Interrupción de EE Write Complete

13
Un ejemplo Interrupción de Timer
  • Hay que activarla con el bit 5 del registro
    INTCON (poner un 1)
  • El bit 2 del registro INTCON nos dice si hay (se
    lee un 1) o no hay (se lee un 0) interrupción de
    timer.
  • Después de que se leyó un 1 (hay interrupción de
    timer), se debe escribir un cero con el programa

14
Funcionamiento
  • Un PIC nuevo viene vacío, no hace nada
  • Para decirle al microcontrolador lo que queremos
    que haga, necesitamos escribir un programa en el
    computador y grabárselo en la memoria
  • Se puede grabar y volver a grabar muchas veces
    distintos programas en el mismo PIC16F84A

15
Pasos para grabar un programa
  • Ir a un PC y escribir el código en ASSEMBLER
  • Compilar el archivo
  • Conectar el PIC a un programador de PICs que se
    conecta al PC
  • Grabar el archivo compilado al PIC

16
Funcionamiento
  • Ahora que ya tenemos el programa en el PIC,
    podemos sacarlo y ponerlo en el circuito
  • Al alimentar con corriente al PIC, veremos cómo
    ejecuta las acciones que le dijimos que hiciera
    en el programa
  • Con esto se ahorra mucho trabajo

17
Instrucciones en ASSEMBLER

BCF f,b Coloca en Cero un determinado Bit. Este
comando pone en Cero el Bit "b" del registro
"f". BSF f,b Coloca en uno determinado Bit. Este
comando Pone en 1 el Bit "b" del registro "f".
18
Instrucciones en ASSEMBLER

BTFSC f,b Prueba el Bit b del registro f . Este
comando prueba el Bit "b" del registro "f" y
salta una linea si f,b está en 0. BTFSS
f,b Prueba el Bit b del registro f. Este comando
prueba el Bit "b" del registro "f" y salta una
linea si está en 1.
19
Instrucciones en ASSEMBLER

GOTO k El programa salta a una dirección con el
nombre "k". (etiqueta) CALL k Llamada de una
Subrutina con el nombre k. (requiere un RETURN al
final de la subrutina)
20
Instrucciones en ASSEMBLER

RETFIE Retorno de llamado a interrupción. RETURN
Retorno desde una subrutina
21
Instrucciones en ASSEMBLER

MOVLW k Se carga el registro "W" con el contenido
del literal "k MOVWF f Copia el contenido del
registro "W" al registro f
22
Instrucciones en ASSEMBLER

CLRF f Borra el registro f. Esta instrucción
borra un registro especifico. CLRW Borra el
registro W. Esta instrucción borra el registro
"W" solamente.
23
Instrucciones en ASSEMBLER

DECFSZ f,d Esta instrucción decrementa en una
sola unidad el registro "f" en la cual si el
registro "f" queda igual a cero entonces salta
una línea
INCFSZ f,d Esta instrucción incrementa en una
sola unidad el registro "f" en la cual si el
registro "f" queda igual a cero entonces salta a
una línea
24
Registros

STATUSOPTION_REGINTCONTRISATRISBPORTAPORTBT
IMER0
25
Registros

Por ejemplo, si queremos tener interrupciones de
timer debemos configurar el registro INTCON de la
siguiente manera 1 0 1
0 0 0 0 0
Eso se consigue con el siguiente código
MOVLW 10100000MOVWF INTCON
26
Registros Extra

Se pueden crear registros adicionales que pueden
ser usados libremente por el usuario. Éstos son
de 8 bits al igual que todos los que hemos visto
hasta ahora.Se tienen que definir en la parte
inicial del programa de la siguiente forma
REGA equ h0C registro extra A
REGB equ h0D registro extra B
REGC equ h0E registro extra C
REGD equ h0F registro extra D
REGE equ h10 registro extra E
... ... ... ...
Write a Comment
User Comments (0)
About PowerShow.com