Вы находитесь на странице: 1из 18

INTERRUPCIÓN CON EL TIMER

Ya se ha utilizado el Timer para generar retardos con precisión, sin


embargo aún no se ha trabajado con la interrupción del Tmer.
Esta se usa en la mayoria de los casos en temporizadores, o relojes, y es
utíl ya que el Uc puede estar realizando cualquier rutina, pero cada vez
que se desborde el timer (Se cumpla la temporización ) está genera una
interrupción y realiza otra acción la cual se programa con antarioridad.
Como se vío en documentos antariores el timer seconfigura mediante el
registro OPTION, Ahí se carga el valor del prescalador en los Bits 2-0,
y se le dice que se incrementa por instruciones en el birt 5=0
Bits del preescalador (0-2)

Bit 5
Además si se quiere trabajar con la INT del Timer sew debe configurar
el registro INTCON, primero habilitanto todas las INT (Bit 7=1), y la
Int del Timer (Bit 5=1). El otro Bit de interés en este registro es el bit
2, cuando este bit se coloca en uno es porque la Int del timer; si está
habilitada ha ocurrido.

Habilita Habilita Se coloca en 1 cada vez que


Todas las INT La INT del Timer el timer se deborda

Cabe destacar que si el Bit7= 0 no se prodece la INT aunque el Bit5=1,


ya que el bit 7 actúa como habilitador de interrupciones globales.
Antes de continuar cabe recordar que el tiempo que tarda el Timer en
desbordarse está dado por la formula:

T=(256 – TMR0)*PRES*c
Donde PRES es el valor del preescalador, el cual se rige por la
siguiente tabla.
La utilización del la INT del timer es muy usad en las llamadas
multitareas, es decir, que el Uc podría realizar dos labores al mismo
tiempo.
Para explicar un poco mejor esta idea, supongase que se quiere que el
Uc este encendiendo y apagando un led a determinada frecuencia pero
cada 65.5 ms a la vez suene una alarma.
•Lo primero que se debe hacer es configurar el timer para que dure
65.5m, esto se logra con un preescalador de 256 (Bits 2-0 111) y
cargando el timer con el valor de cero.
MOVLW B’00000111’
MOVWF OPTION_REG
•Luego hay en el INTCON que habilitar las INT globales BIT7=1 y la
del timer BIT5=1
MOVLW B’10100000’
Después se carga el Timer con el valor (Cero en este caso)
CLRF TMR0
El programa que tendrá el siguiente formato.
Programa BSF PORTB,7
CALL DELAY
BCF PORTB,7
CALL DELAY
GOTO PROGRAMA
La rutina de interrupción tendrá el siguiente esquema.
INT BCF INTCON,7 ;Deshabilita las INT
CALL GUARDA ; Llama rutina de guardar W y STATUS
BTFSS INTCON,2 ; Mira si la INT es por TIMER
GOTO INT_TMR0 ; si lo es salta a INT_TMR
SAL_INT
CALL RECUPERA ;Recupera W y STATUS
BCF INTON,2 ; Limpia bandera de INT
BSF INTOCN,7 ; Vuelve a Hab las INT
RETFIE ; Sale de la INT

INT_TMR0
CALL ALARMA ;Activa la alarma o realiza la 2° tarea
GOTO SAL_INT
Cabe destacar que en sí las tareas no se realizan al mismo tiempo pero
debido a la velocidad del Uc es como si lo hicieran, ya que el retardo
de una y otra son solo microsegundo.
Sin embargo la Tarea que poseea mayor prioridad es aquella que debe
ir dentro de la rutina de INT y la otra en el programa principal.

CIRCUITO PARA LA MULTIPLEXACIÓN DE


VARIOS DISPLAY

A continuación se muestra un circuito que sirve para mostrar numeros


en unos display utilizando la técnica de multiplexación
•En el anterior circuito el bus de datos es igual para los displays y está
formado por los pines RB0 a RB6, pero los pines RA0 a RA4 son los
encargados de decir en que display se mostrará el dato, y esto se
realiza mediante multiplexación.
•Además hay que notar que el pin RA4 posee una resistencia PULL UP
(Conectada a 5V) ya que este pin actúa como tal al ser configurado
como salida.
•Para realizar la multiplexación se debe tener encuenta que cada vez
que se active un display debe permanecer habilitado por un pequeño
retardo, yesto contribuye a dar más luminosidad a los display, es decir
no se debe deshabilitar enseguida.
•Antes de sacar un nuevo dato primero se deben deshabilitar todos los
display, luego se coloca el dato y por último se habilita el display
deseado.
El procedimiento será:
DISPLAY1
MOVLW B’11111’
MOVWF PORTA ; deshabilita todos
MOVF DISP1,W
MOVWF PORTB ; carga el dato1
MOVLW B’11110’
MOVWF PORTA ; habilita el primero
CALL RETARDO ; llama retardo de visualización
DISPLAY2
MOVLW B’11111’
MOVWF PORTA ; deshabilita todos
MOVF DISP2,W
MOVWF PORTB ; carga el dato2
MOVLW B’11101’
MOVWF PORTA ;habilita el segundo
CALL RETARDO ; llama retardo de visualización
Y así para los demás hasta el quinto y luego se repite el ciclo, logrando el efecto de ver
todos encendidos a la vez con difrentes numeros.
RUTINAS MATEMATICAS
En muchas ocasiones es necesario desarrollar con el Uc operaciones
mátemáticas, como se ha estudiado el Uc cuenta con instrucciones de
suma y resta, pero no de multiplicación y división.
A continuación se presenta una rutina de división y multiplicación que
pueden ser utilizadas en muchas aplicaciones.
RUTINA DE DIVISION
PARA UTILIZARLA SE DEBE DEFINIR NUM1, NUM2,RESIDUO Y
CONTAUX
LOS NUMEROS SE CARGAN EN NUM1(DIVIDENDO) Y
NUM2(DIVISOR)
Y EL RESULTADO QUEDA EN NUM1(COCIENTE) Y
RESIDUO(EL RESIDUO)
DIVIDE
CLRF RESIDUO
MOVLW 8
MOVWF CONTAUX
LAZO
RLF NUM1,W
RLF RESIDUO, F
MOVF NUM2,W
SUBWF RESIDUO, F
BTFSC STATUS,C
GOTO SALTO
ADDWF RESIDUO, F
BCF STATUS,C
SALTO
RLF NUM1, F
DECFSZ CONTAUX, F
GOTO LAZO
RETURN
Explicar la división binaria es algo complejo, de ahí lo que en realidad
interesa de la anterior rutina es saber que podemos dividir dos
numeros, cargados previamente en (NUM1 y NUM2), y que el
resultado de la división queda (El cociente en NUM1) y el residuo en
(RESIDUO). Se llama con la instrucción CALL DIVIDE
Está rutina es utíl por ejemplo si un registro contiene un número por
ejemplo 56, y queremos mostrar esto en dos display.
Entonces cargamos NUM1=56 y NUM2=10, se divide por Diez para
obtener las unidades. Después de la rutinay el cociente es 5 y el
residuo 6, y estos valores lo cargamos a los respectivos displays. Y ya
pueden ser vizualizados.
•La rutina de multiplecación trabaja de forma similar.
•PARA UTILIZARLA SE DEBE DEFINIR NUM1,
NUM2,ACUM1,ACUM2 Y CONTAUX
•LOS NÚMEROS SE CARGAN EN (NUM1 Y NUM2) Y EL
RESULTADO QUEDA
• EN ACUM1 Y ACUM2, SIENDO ACUM1 EL BYTE BAJO Y
ACUM2 EL ALTO
Como se observa el resultado es de 16 Bits, pero si se sabe que no
supera a 255 se puede leer directamente del Byte bajo o ACUM1
MULTIPLICA
MOVLW .8
MOVWF CONTAUX
BCF STATUS,C
CLRF ACUM1
CLRF ACUM2

MULT
MOVF NUM1,W
RRF NUM2,F
BTFSC STATUS,C
ADDWF ACUM2,F
BCF STATUS,C
RRF ACUM2,F
RRF ACUM1,F
DECFSZ CONTAUX
GOTO MULT
RETURN
Está rutina se puede utilizar por ejemplo: si se leen 2 numero en
forma separada de un teclado (sean 5 y 6) y se quiere representar
como un solo numero (56); entonces se debe.
•Leer el primer numero
•Multiplicarlo por 10.
•Sumarle el segundo.
EXTENDER LA CAPACIDAD DEL PIC

Se sabe que este Uc cuenta con 13 pines de entrada o salida 5 en


el puertoA y 8 en el puertoB.
Sin embargo por ejemplo es posible utilizar un pin como entrada
y salida al tiempo, y esto se debe a la velocidad del uC.
De ahí que se puede hacer la siguiente rutina para configurar
como entra los pines del puertoB.
ENTRADA
BSF STATUS,RP0
MOVLW B‘11111111‘
MOVWF TRISB
BCF STATUS,RP0
RETURN
Y la siguiente cuando se quiere que sea salida.
SALIDA
BSF STATUS,RP0
MOVLW B'00000000‘
MOVWF TRISB
BCF STATUS,RP0
RETURN
Estas rutinas serán llamadas durante el programa cada vez que se
necesite una situación específica, ya sea de entrada o salida.

Вам также может понравиться

  • Tema 11
    Tema 11
    Документ32 страницы
    Tema 11
    api-27535945
    100% (1)
  • Tema 5
    Tema 5
    Документ57 страниц
    Tema 5
    api-27535945
    100% (2)
  • Tema 15
    Tema 15
    Документ54 страницы
    Tema 15
    api-27535945
    100% (1)
  • Libro Final v1 29102009 555
    Libro Final v1 29102009 555
    Документ94 страницы
    Libro Final v1 29102009 555
    api-27535945
    Оценок пока нет
  • Tema 15
    Tema 15
    Документ24 страницы
    Tema 15
    api-27535945
    100% (3)
  • Tema 13
    Tema 13
    Документ32 страницы
    Tema 13
    api-27535945
    Оценок пока нет
  • Tema 5a
    Tema 5a
    Документ4 страницы
    Tema 5a
    api-27535945
    Оценок пока нет
  • Tema 4
    Tema 4
    Документ27 страниц
    Tema 4
    api-27535945
    100% (2)
  • Tema 3
    Tema 3
    Документ11 страниц
    Tema 3
    api-27535945
    Оценок пока нет
  • Tema 9
    Tema 9
    Документ31 страница
    Tema 9
    api-27535945
    Оценок пока нет
  • Tema 16
    Tema 16
    Документ34 страницы
    Tema 16
    api-27535945
    Оценок пока нет
  • Amplificador Logartmico
    Amplificador Logartmico
    Документ4 страницы
    Amplificador Logartmico
    Jeyson David Giraldo
    Оценок пока нет
  • Lab Oratorio Fusion
    Lab Oratorio Fusion
    Документ3 страницы
    Lab Oratorio Fusion
    api-27535945
    Оценок пока нет
  • Arquitecturas Redes Catv
    Arquitecturas Redes Catv
    Документ54 страницы
    Arquitecturas Redes Catv
    api-27535945
    100% (3)
  • Circuitos Integrados Elementales
    Circuitos Integrados Elementales
    Документ26 страниц
    Circuitos Integrados Elementales
    marioromo
    100% (2)
  • Tema 1
    Tema 1
    Документ61 страница
    Tema 1
    api-27535945
    100% (2)
  • Tema 2
    Tema 2
    Документ56 страниц
    Tema 2
    api-27535945
    100% (1)
  • Tema V VI
    Tema V VI
    Документ4 страницы
    Tema V VI
    api-27535945
    Оценок пока нет
  • Transparencias de Filtros
    Transparencias de Filtros
    Документ37 страниц
    Transparencias de Filtros
    api-27535945
    100% (1)
  • Practica
    Practica
    Документ5 страниц
    Practica
    api-27535945
    100% (1)
  • Amplificador Operacional Fundamentos
    Amplificador Operacional Fundamentos
    Документ14 страниц
    Amplificador Operacional Fundamentos
    Jorge A. Perez Yebra
    Оценок пока нет
  • Tema5 Amplificadores Operacionales
    Tema5 Amplificadores Operacionales
    Документ25 страниц
    Tema5 Amplificadores Operacionales
    api-27535945
    Оценок пока нет
  • Filtros Activos
    Filtros Activos
    Документ26 страниц
    Filtros Activos
    api-27535945
    80% (5)
  • Microsoft Word - Pract4
    Microsoft Word - Pract4
    Документ12 страниц
    Microsoft Word - Pract4
    api-27535945
    Оценок пока нет
  • Amplificadores LogarÍtmicos y AntilogarÍtmicos
    Amplificadores LogarÍtmicos y AntilogarÍtmicos
    Документ8 страниц
    Amplificadores LogarÍtmicos y AntilogarÍtmicos
    api-27535945
    100% (2)
  • Amplificadores Operacionales
    Amplificadores Operacionales
    Документ14 страниц
    Amplificadores Operacionales
    api-27535945
    Оценок пока нет
  • Bjtyfeta 3
    Bjtyfeta 3
    Документ18 страниц
    Bjtyfeta 3
    api-27535945
    Оценок пока нет
  • Rtafrec
    Rtafrec
    Документ43 страницы
    Rtafrec
    buyesyohan
    Оценок пока нет
  • Respuesta en Frecuencia de Los Circuitos Amplificadores
    Respuesta en Frecuencia de Los Circuitos Amplificadores
    Документ17 страниц
    Respuesta en Frecuencia de Los Circuitos Amplificadores
    api-27535945
    100% (1)
  • Amplifica Operacional y Tiristores
    Amplifica Operacional y Tiristores
    Документ39 страниц
    Amplifica Operacional y Tiristores
    api-27535945
    100% (1)