SlideShare una empresa de Scribd logo
SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1
                               Página 1


EJERCICIOS DE CONFIGURACIÓN DEL TIMER1
 PARA UTILIZAR LAS INTERRUPCIONES QUE
                GENERA
ENUNCIADO DEL EJERCICIO 1:
Modificar al programa del reloj digital que se muestra en seis displays de cátodo
común; de manera que se reemplace al lazo de repetición que sirve para el incremento
de los segundos por interrupciones generadas cada segundo mediante el Timer1,
configurado en el Modo CTC.
Las modificaciones que sea realizan en el programa principal son:
   1. Adicionar el Vector de Interrupciones por emparejamiento del Timer1 con el
      Registro A de Comparación.
   2. Incluir en el programa principal la programación del Timer1 y habilitación de las
      interrupciones para que se generen cada segundo.
   3. Modificación en el programa principal el lazo de repetición donde se muestra el
      reloj digital en los displays, eliminando los incrementos cada segundo.
Las modificaciones que sea realizan en las rutinas de interrupción son:
   4. En rutina de la Interrupción Externa 2 incluir el cambio de estado del Timer1,
      entre detenido y corriendo.
   5. Modificar las rutinas de las Interrupciones Externa 1 y Externa 0 para que se
      encarguen solo de los incrementos de los contadores; ya que el programa
      principal se encarga de publicarlos.
   6. Incorporación de la rutina de Interrupción del Timer1 por emparejamiento con el
      Registro A de Comparación, que incrementa en un segundo al reloj digital para
      ser publicado por programa principal.

ANÁLISIS PARA CONFIGURAR AL TIMER1, A FIN DE INCREMENTAR
LOS CONTADORES CADA SEGUNDO MEDIANTE INTERRUPCIONES:

La configuración del Timer1 que conviene para esta aplicación es la de Borrar el Timer
al emparejar con el Comprador o CTC. Se debe mantener desactivada la salida del
Timer, porque no se va a generar una señal. Y se necesita establecer el valor del registro
de comparación OCR1A, con el fin de generar interrupciones cada segundo.

Para que transcurra un segundo, considerando que el Timer tiene el mismo reloj que el
microcontrolador (sin pre escalamiento) e igual a 1MHz, es necesario contar 1´000.000
de pulsos lo que no se puede hacer con 16 bits. La siguiente alternativa es que el Timer
tenga como reloj el del microcontrolador divido para 8 (con pre escalamiento de 8), lo
que significa que se deben contar 125.000 pulsos, que tampoco se puede contar con 16
bits. Como tercera opción es alimentar al Timer con el reloj del microcontrolador divido
para 64 (con pre escalamiento de 64), lo que significa que se deben contar 15.265
pulsos, que si se puede contar con 16 bits; por lo tanto, está será la configuración para el
escalamiento del reloj del Timer y el valor para el registro OCR1A.

Finalmente se debe habilitar las interrupciones por emparejamiento con el OCR1A y
reservar el respectivo vector.

Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes
de Información
SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1
                               Página 2

CODIFICACIÓN DEL PROGRAMA PRINCIPAL Y DE LAS RUTINAS DE
INTERRUPCIÓN
.NOLIST
.INCLUDE "m164pdef.inc"
.LIST
; DEFINICIÓN DE ETIQUETAS PARA LOS REGISTROS
.DEF     AUX1 = R16           ; REGISTRO AUXILIAR1
.DEF     AUX2 = R17           ; REGISTRO AUXILIAR2
.DEF     AUX3 = R18           ; REGISTRO AUXILIAR3
.DEF     HORAS = R19          ; REGISTRO PARA LAS HORAS
.DEF     MINUT = R20          ; REGISTRO PARA LAS MINUTOS
.DEF     SEGUN = R21          ; REGISTRO PARA LOS SEGUNDOS
.DEF     AUXI1 = R23          ; REGISTRO AUXILIAR 1 INTERRUPCIONES
.DEF     AUXI2 = R24          ; REGISTRO AUXILIAR 2 INTERRUPCIONES
; SEGMENTO DE CÓDIGO o MEMORIA FLASH
.CSEG
         JMP      PROGP
.ORG $02                      ; RUTINA DE LA INTERRUPCIÓN EXTERNA 0
         JMP      RUTINT0
.ORG $04                      ; RUTINA DE LA INTERRUPCIÓN EXTERNA 1
         JMP      RUTINT1
.ORG $06                      ; RUTINA DE LA INTERRUPCIÓN EXTERNA 2
         JMP      RUTINT2
.ORG $1A                      ; RUTINA DE LA INTERRUPCIÓN DEL TIMER1
         JMP RUTTIM1
; INICIALIZACIÓN DEL PUNTERO DEL STACK Y DE LOS PÓRTICOSM0DIFICACIÓN 1
PROGP: LDI        AUX1,LOW(RAMEND)
         OUT      SPL,AUX1
         LDI      AUX1,HIGH(RAMEND)
         OUT      SPH,AUX1
         LDI      AUX1,0B00000100
         OUT      PORTB,AUX1        ; PULL-UP INT2 = PB2
         LDI      AUX1,0B00001100
         OUT      PORTD,AUX1        ; PULL-UP INT0/1 = PD2/3
; PROGRAMACIÓN DE LAS INTERRUPCIONES EXTERNAS
         LDI      AUX1,0B000101111
         STS      EICRA,AUX1        ; INT2 T. NEGAT. INT1/0 T. POS.
         LDI      AUX1,0B00000100
         OUT      EIMSK,AUX1        ; INT2 HABILITADA
         LDI      AUX1,0B00000111
         OUT      EIFR,AUX1         ; BORRAR LAS BANDERAS
; PROGRAMACIÓN DEL TIMER1
; COM1A1:0=00 DESCONECTADA DE LA SALIDA OC1A (PD5)     M0DIFICACIÓN 2
; COM1B1:0=00 DESCONECTADA DE LA SALIDA OC1B (PD4)
; DOS BITS RESERVADOS = 00
; WGM11:0=00 CONFIGURACIÓN CTC (MODO 4)
         LDI      AUX1,0B00000000
         STS      TCCR1A,AUX1
; ICNC1=0 DESHABILITA CANCELACIÓN DE RUIDO
; ICES1=0 TRANSICIÓN NEGATIVA PARA LA ENTRADA DE CAPTURA
; BIT RESERVADO = 0
; WGM13:2=01 CONFIGURACIÓN CTC (MODO 4)
; CS12:0=011 RELOJ IGUAL A Fosc/64
         LDI      AUX1,0B00001011 ; Fosc/64
         STS      TCCR1B,AUX1
; VALOR A COMPARAR EN OCR1A (ESCRITURA DE 16 BITS)
         LDI      AUX1,HIGH(15625)
         LDI      AUX2,LOW(15625)
         STS      OCR1AH,AUX1
         STS      OCR1AL,AUX2


Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes
de Información
SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1
                               Página 3

; HABILITA INTERRUPCIÓN POR EMPAREJAMIENTO EN COMPARACIÓN A
         LDI      AUX1,0B00000010
         STS      TIMSK1,AUX1
; VALORES INICIALES DE HH:MM:SS
         LDI      HORAS,23
         LDI      MINUT,59
         LDI      SEGUN,49
; HABILITACIÓN GLOBAL DE INTERRUPCIONES
         SEI
; TRANSFORMACIÓN A BCD DE LOS CONTADORES
RELOJ: LDI        XL,LOW(DIGIT)                        M0DIFICACIÓN 3
         LDI      XH,HIGH(DIGIT)
         MOV      AUX2,HORAS
         RCALL    BINBCD
         MOV      AUX2,MINUT
         RCALL    BINBCD
         MOV      AUX2,SEGUN
         RCALL    BINBCD
; TRANSFORMACIÓN A 7 SEGMENTOS
         RCALL    ASEG
; MOSTRAR EN EL DISPLAY EL RELOJ DIGITAL
         RCALL    SCAN
         RJMP     RELOJ
; TRANSFORMACIÓN DE BINARIO A BCD Y ALMACENAMIENTO
BINBCD: CLR       AUX1
BINBCD1:SUBI      AUX2,10
         BRCS     BINBCD2
         INC      AUX1
         RJMP     BINBCD1
BINBCD2:LDI       AUX3,10
         ADD      AUX2,AUX3
         ST       X+,AUX1
         ST       X+,AUX2
         RET
; ARRANCAR - DETENER EL RELOJ
RUTINT2:
         IN       AUXI1,EIMSK
         LDI      AUXI2,0B00000011
         EOR      AUXI1,AUXI2       ; COMPLEMENTAR LOS 2 BITS
         OUT      EIMSK,AUXI1       ; CAMBIAR HABILITACIÓN
         OUT      EIFR,AUXI2        ; BORRA INTF0 y INTF1
         LDS      AUXI1,TIMSK1                          M0DIFICACIÓN 4
         LDI      AUXI2,0B00000010
         EOR      AUXI1,AUXI2       ; COMPLEMENTAR EL 2 BIT
         STS      TIMSK1,AUXI1      ; CAMBIAR HABILITACIÓN
FINR2: RETI
; IGUALAR MINUTOS
RUTINT1:
         INC      MINUT
         CPI      MINUT,60
         BRNE     RUT11
         CLR      MINUT
RUT11: RETI
; IGUALAR HORAS                   M0DIFICACIÓN 5
RUTINT0:
         INC      HORAS
         CPI      HORAS,24
         BRNE     RUT01
         CLR      HORAS
                                   M0DIFICACIÓN 5
RUT01: RETI



Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes
de Información
SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1
                               Página 4

; INCREMENTO DE SEGUNDOS
RUTTIM1:
         INC       SEGUN                         M0DIFICACIÓN 6
         CPI       SEGUN,60
         BRNE      FINRT1
         CLR       SEGUN
         INC       MINUT
         CPI       MINUT,60
         BRNE      FINRT1
         CLR       MINUT
         INC       HORAS
         CPI       HORAS,24
         BRNE      FINRT1
         CLR       HORAS
FINRT1: RETI
;
.INCLUDE "SUBCC.ASM"
;
.EXIT        ; FIN DEL MODULO FUENTE

COMPROBACIÓN DEL RELOJ DE 24 HORAS CON INTERRUPCIONES
PRODUCIDAS POR EL TIMER1




ENUNCIADO DEL EJERCICIO 2:
Modificar al programa anterior, correspondiente al reloj digital para convertirlo en un
Cronómetro Digital Ascendente, que muestre Minutos, Segundos y Centésimas de
Segundos. El control del cronómetro se realiza mediante tres teclas:
    La tecla CLEAR conectada a la Interrupción Externa 2 pone el cronómetro en
     cero, solo cuando está detenido.
    La tecla STOP conectada a la Interrupción Externa 0 detiene el cronómetro.
    La tecla START conectada a la Interrupción Externa 1 arranca el cronómetro.
Además de la redefinición de los Contadores para el Cronómetro y de las funciones que
realizan las Rutinas de las Interrupciones Externas, el Timer1 debe ser configurado para
producir interrupciones cada 10 milisegundos en lugar de cada segundo.


Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes
de Información
SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1
                               Página 5

ANÁLISIS PARA CONFIGURAR AL TIMER1, A FIN DE INCREMENTAR
LOS CONTADORES CADA CENTÉSIMA DE SEGUNDO:
Para producir interrupciones cada centésima de segundo con el Timer teniendo el
mismo reloj que el microcontrolador, igual a 1MHz, es necesario contar 10.000 pulsos
que si se puede hacer con 16 bits. Esto significa que el reloj del Timer es sin
escalamiento y 10.000 es el valor que se carga en el registro de comparación OCR1A.
CODIFICACIÓN DEL PROGRAMA PRINCIPAL Y DE LAS RUTINAS DE
INTERRUPCIÓN CON LAS MODIFICACIONES PARA CONVERTIR EL
RELOJ DIGITAL EN CRONÓMETRO ASCENDENTE
.NOLIST
.INCLUDE "m164pdef.inc"
.LIST
; DEFINICIÓN DE ETIQUETAS PARA LOS REGISTROS
.DEF     AUX1 = R16           ; REGISTRO AUXILIAR1
.DEF     AUX2 = R17           ; REGISTRO AUXILIAR2
.DEF     AUX3 = R18           ; REGISTRO AUXILIAR3
.DEF     MINUT = R19          ; REGISTRO PARA LAS MINUTOS
.DEF     SEGUN = R20          ; REGISTRO PARA LAS SEGUNDOS
.DEF     CENTI = R21          ; REGISTRO PARA LAS CENTÉSIMAS DE SEGUNDO
.DEF     AUXI1 = R23          ; REGISTRO AUXILIAR 1 INTERRUPCIONES
.DEF     AUXI2 = R24          ; REGISTRO AUXILIAR 2 INTERRUPCIONES
; SEGMENTO DE CÓDIGO o MEMORIA FLASH
.CSEG
         JMP      PROGP
.ORG $02                      ; RUTINA DE LA INTERRUPCIÓN EXTERNA 0
         JMP      RUTINT0
.ORG $04                      ; RUTINA DE LA INTERRUPCIÓN EXTERNA 1
         JMP      RUTINT1
.ORG $06                      ; RUTINA DE LA INTERRUPCIÓN EXTERNA 2
         JMP      RUTINT2
.ORG $1A                      ; INTERRUPCIÓN POR EMPAREJAMIENTO TIMER 1
         JMP      RUTTIM1
; INICIALIZACIÓN DEL PUNTERO DEL STACK Y DE LOS PÓRTICOS
PROGP: LDI        AUX1,LOW(RAMEND)
         OUT      SPL,AUX1
         LDI      AUX1,HIGH(RAMEND)
         OUT      SPH,AUX1
         LDI      AUX1,0B00000100
         OUT      PORTB,AUX1        ; PULL-UP INT2 = PB2
         LDI      AUX1,0B00001100
         OUT      PORTD,AUX1        ; PULL-UP INT0/1 = PD2/3
; PROGRAMACIÓN DE LAS INTERRUPCIONES EXTERNAS
         LDI      AUX1,0B000101010
         STS      EICRA,AUX1        ; INT2/1/0 TRANSICIÓN NEGAT.
         LDI      AUX1,0B00000010
         OUT      EIMSK,AUX1        ; INT1 HABILITADA (ARRANCAR)
         LDI      AUX1,0B00000111
         OUT      EIFR,AUX1         ; BORRAR LAS BANDERAS
; PROGRAMACIÓN DEL TIMER1
; COM1A1:0=00 DESCONECTADA DE LA SALIDA OC1A (PD5)
; COM1B1:0=00 DESCONECTADA DE LA SALIDA OC1B (PD4)
; DOS BITS RESERVADOS = 00
; WGM11:0=00 CONFIGURACIÓN CTC (MODO 4)
         LDI      AUX1,0B00000000
         STS      TCCR1A,AUX1
; ICNC1=0 DESHABILITA CANCELACIÓN DE RUIDO
; ICES1=0 TRANSICIÓN NEGATIVA PARA LA ENTRADA DE CAPTURA

Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes
de Información
SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1
                               Página 6

; BIT RESERVADO = 0
; WGM13:2=01 CONFIGURACIÓN CTC (MODO 4)
; CS12:0=000 SIN RELOJ
         LDI      AUX1,0B00001000  ; TIMER DETENIDO
         STS      TCCR1B,AUX1
; VALOR A COMPARAR EN OCR1A (ESCRITURA DE 16 BITS)
         LDI      AUX1,HIGH(10000)
         LDI      AUX2,LOW(10000)
         STS      OCR1AH,AUX1
         STS      OCR1AL,AUX2
; HABILITA INTERRUPCIÓN POR EMPAREJAMIENTO EN COMPARACIÓN A
         LDI      AUX1,0B00000010
         STS      TIMSK1,AUX1
; VALORES INICIALES DE MM:SS:CS
         LDI      MINUT,0
         LDI      SEGUN,0
         LDI      CENTI,0
; HABILITACIÓN GLOBAL DE INTERRUPCIONES
         SEI
; TRANSFORMACIÓN A BCD DE LOS CONTADORES
CRONO: LDI        XL,LOW(DIGIT)
         LDI      XH,HIGH(DIGIT)
         MOV      AUX2,MINUT
         RCALL    BINBCD
         MOV      AUX2,SEGUN
         RCALL    BINBCD
         MOV      AUX2,CENTI
         RCALL    BINBCD
; TRANSFORMACIÓN A 7 SEGMENTOS
         RCALL    ASEG
; MOSTRAR EN EL DISPLAY EL CRONOMETRO
         RCALL    SCAN
         RJMP     CRONO
; TRANSFORMACIÓN DE BINARIO A BCD Y ALMACENAMIENTO
BINBCD: CLR       AUX1
BINBCD1:SUBI      AUX2,10
         BRCS     BINBCD2
         INC      AUX1
         RJMP     BINBCD1
BINBCD2:LDI       AUX3,10
         ADD      AUX2,AUX3
         ST       X+,AUX1
         ST       X+,AUX2
         RET
; PONER CEROS EN EL CRONÓMETRO
RUTINT2:
         LDI      MINUT,0
         LDI      SEGUN,0
         LDI      CENTI,0
         RETI
; DETENER EL CRONÓMETRO
RUTINT0:
; CS12:0=000 SIN RELOJ
         LDI      AUX1,0B00001000  ; TIMER DETENIDO
         STS      TCCR1B,AUX1
         LDI      AUX1,0B00000111
         OUT      EIFR,AUX1        ; BORRAR LAS BANDERAS
         LDI      AUX1,0B00000110
         OUT      EIMSK,AUX1 ; INT2/1 HABILITADAS (ENCERAR - ARRANCAR)
         RETI



Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes
de Información
SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1
                               Página 7

; ARRANCAR EL CRONÓMETRO
RUTINT1:
; CS12:0=001 RELOJ IGUAL A Fosc/1
         LDI       AUX1,0B00001001   ; TIMER CONTANDO
         STS       TCCR1B,AUX1
         LDI       AUX1,0B00000111
         OUT       EIFR,AUX1         ; BORRAR LAS BANDERAS
         LDI       AUX1,0B00000001
         OUT       EIMSK,AUX1        ; INT0 HABILITADA (DETENER)
         RETI
; INCREMENTO DE CENTÉSIMAS DE SEGUNDO
RUTTIM1:INC        CENTI
         CPI       CENTI,100
         BRNE      FINRT1
         CLR       CENTI
         INC       SEGUN
         CPI       SEGUN,60
         BRNE      FINRT1
         CLR       SEGUN
         INC       MINUT
         CPI       MINUT,60
         BRNE      FINRT1
         CLR       MINUT
FINRT1: RETI
;
.INCLUDE "SUBCC.ASM"
;
.EXIT        ; FIN DEL MODULO FUENTE

COMPROBACIÓN     DEL   CRONÓMETRO       ASCENDENTE                             CON
INTERRUPCIONES PRODUCIDAS POR EL TIMER1




ENUNCIADO DEL EJERCICIO 3:
Elaborar el programa de control para un DIMMER de 19 pasos, que se pueden cambiar
mediante dos teclas, una para subir y otra para bajar. El DIMMER es un dispositivo
electrónico que permite controlar la intensidad de iluminación de lámparas
incandescentes, controlando el ángulo de disparo del TRIAC que alimenta a la lámpara;


Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes
de Información
SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1
                               Página 8

por lo tanto, este programa tiene como objetivo escoger el ángulo de disparo del TRIAC
cada 10º, entre 0º y 180º de los semiciclos de la señal de 110 Vac.

ANÁLISIS Y ALGORITMO DE LA SOLUCIÓN:
Se necesita producir pulsos al inicio de los semiciclos de la señal de 110 Vac, mediante
un circuito externo al microcontrolador (detector de cruce por cero) y el programa se
encarga de generar los pulsos de disparo con un retardo de acuerdo al ángulo escogido,
tal como se muestra a continuación para el caso de 100º como ángulo de disparo.

                                                                               Señal de
                                                                               110 Vac

                                                                              Corriente
                                                                                en la
                                                                              lámpara


                                                                                Señal de
                                                                                 6 Vac,
                                                                               rectificada


                                                                               Pulsos al
                                                                                inicio

                                                                              Pulsos de
                                                                               disparo
CIRCUITO DEL DIMMER:



                      Pulsos al
                       inicio

           Pulsos de
            disparo




                                      Señal de
                                       6 Vac,
                                     rectificada

Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes
de Información
SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1
                               Página 9

Los pulsos al inicio de los semiciclos se obtienen mediante el colector del transistor
NPN, conectado en el terminal de entrada de la Interrupción Externa 2, que tiene
activada la resistencia interna de pull-up. El transistor trabaja en corte y saturación,
controlado por la señal que ingresa por la resistencia de la base y que corresponde a una
señal de 6 Vac rectificada en onda completa.
La rutina de la Interrupción Externa 2 se encarga de arrancar al contador del Timmer1;
el cual, mediante la interrupción por emparejamiento con el valor del registro de
comparación OCR1A, controla el retardo del pulso de disparo del TRIAC. Los valores
de comparación se obtienen desde la tabla de constantes, que han sido calculadas para
tener ángulos de disparo cada 10 grados con señales de 60 Hz, considerando que el
Timer1 tiene el mismo reloj que el microcontrolador e igual a 1MHz.

               Paso del        Angulo en            Tiempo en
               Dimmer           grados            microsegundos
                       1                 0º                           0
                       2                10º                        463
                       3                20º                        926
                       4                30º                      1389
                       5                40º                      1852
                       6                50º                      2315
                       7                60º                      2778
                       8                70º                      3241
                       9                80º                      3704
                      10                90º                      4167
                      11              100º                       4630
                      12              110º                       5093
                      13              120º                       5556
                      14              130º                       6019
                      15              140º                       6481
                      16              150º                       6944
                      17              160º                       7407
                      18              170º                       7870
                      19              180º                       8333

CODIFICACIÓN DEL PROGRAMA PRINCIPAL Y DE LAS RUTINAS DE
INTERRUPCIÓN PARA EL CONTROL DEL DIMMER
.NOLIST
.INCLUDE "m164pdef.inc"
.LIST
;
.DEF    AUX1 = R16
.DEF    AUX2 = R17
.DEF    AUX3 = R18
;
.CSEG
        JMP       PROGP

Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes
de Información
SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1
                              Página 10

         JMP        INTE0
         JMP        INTE1
         JMP        INTE2
.ORG     $1A                ; INTERRUPCIÓN POR EMPAREJAMIENTO ATMEGA164P
         JMP        INTT1
;
PROGP:
; UBICACIÓN DEL STACK AL FINAL DE LA SRAM
        LDI       AUX1,LOW(RAMEND)
        OUT       SPL,AUX1
        LDI       AUX1,HIGH(RAMEND)
        OUT       SPH,AUX1
; CONFIGURACIÓN COMO SALIDA (PA3)
        LDI       AUX1,0B00001000
        OUT       DDRA,AUX1
; PULL-UP EN LAS ENTRADAS INT0 e INT1 (PD2 y PD3)
        LDI       AUX1,0B00001100
        OUT       PORTD,AUX1
; PULL-UP EN LA ENTRADA INT2 (PB2)
        LDI       AUX1,0B00000100
        OUT       PORTB,AUX1
; PROGRAMACION DEL TIMER1
; COM1A1:0=00 DESCONECTADA DE LA SALIDA OC1A (PD5)
; COM1B1:0=00 DESCONECTADA DE LA SALIDA OC1B (PD4)
; FOC1A:0=1 OBLIGA A COMPARACIÓN CON OCR1A
; FOC1B:0=0 NO OBLIGA A COMPARACIÓN CON OCR1B
; WGM11:0=00 CONFIGURACIÓN CTC (MODO 4)
        LDI       AUX1,0B00001000
        STS       TCCR1A,AUX1
; ICNC1=0 DESHABILITA CANCELACIÓN DE
; ICES1=0 TRANSICIÓN NEGATIVA PARA LA ENTRADA DE CAPTURA
; BIT5=0 BITS RESERVADO
; WGM13:2=01 CONFIGURACIÓN CTC (MODO 4)
; CS12:0=001 RELOJ DETENIDO
        LDI       AUX1,0B00001000
        STS       TCCR1B,AUX1
; VALOR A COMPARAR EN OCR1A (ESCRITURA DE 16 BITS)
        LDI       ZL,LOW((TBLK+9)<<1)
        LDI       ZH,HIGH((TBLK+9)<<1)
        LPM       AUX3,Z+
        LPM       AUX2,Z+
        STS       OCR1AH,AUX2
        STS       OCR1AL,AUX3
; HABILITA INTERRUPCIÓN POR EMPAREJAMIENTO EN COMPARACIÓN A
        LDI       AUX1,0B00000010
        STS       TIMSK1,AUX1
; SEÑALES PARA INTERRUPCIONES EXTERNAS
; ISC11:0=10 INTERRUPCIÓN EXTERNA 1 TRANSICIÓN NEGATIVA
; ISC01:0=10 INTERRUPCIÓN EXTERNA 0 TRANSICIÓN NEGATIVA
; ISC21:0=10 INTERRUPCIÓN EXTERNA 2 TRANSICIÓN NEGATIVA
        LDI       AUX1,0B00101010
        STS       EICRA,AUX1
; HABILITACIÓN INTERRUPCIONES EXTERNAS
; INT1=1 INTERRUPCIÓN EXTERNA 1 DESHABILITADA
; INT0=1 INTERRUPCIÓN EXTERNA 0 DESHABILITADA
; INT2=0 INTERRUPCIÓN EXTERNA 2 HABILITADA
        LDI       AUX1,0B00000111
        OUT       EIMSK,AUX1
        SEI       ; HABILITACIÓN GLOBAL DE INTERRUPCIONES
; LAZO INFINITO
LOOP:   RJMP      LOOP


Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes
de Información
SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1
                              Página 11

; RUTINA DE INTERRUPCIÓN DEL TIMER1
INTT1: LDI        AUX1,0B00001000
        STS       TCCR1B,AUX1
        LDI       AUX1,0B00001000
        OUT       PORTA,AUX1
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        LDI       AUX1,0B00000000
        OUT       PORTA,AUX1
        RETI
; RUTINA DE LA INTERRUPCIÓN EXTERNA 2
INTE2: LDI        AUX1,0B00001001
        STS       TCCR1B,AUX1
        RETI
; RUTINA DE LA INTERRUPCIÓN EXTERNA 1
INTE1: CPI        ZL,LOW((TBLK+1)<<1)
        BREQ      END1
        DEC       ZL
        DEC       ZL
        DEC       ZL
        DEC       ZL
        LPM       AUX3,Z+
        LPM       AUX2,Z+
        STS       OCR1AH,AUX2
        STS       OCR1AL,AUX3
END1:   RETI
; RUTINA DE LA INTERRUPCIÓN EXTERNA 0
INTE0: CPI        ZL,LOW((TBLK+19)<<1)
        BREQ      END0
        LPM       AUX3,Z+
        LPM       AUX2,Z+
        STS       OCR1AH,AUX2
        STS       OCR1AL,AUX3
END0:   RETI
;
;CONSTANTES DE LOS TIEMPOS EN MICROSEGUNDOS PARA CADA 10 GRADOS
TBLK:   .DW       0,463,926,1389,1852
        .DW       2315,2778,3241,3704,4167
        .DW       4630,5093,5556,6019,6481
        .DW       6944,7407,7870,8333
.EXIT             ; FIN DEL MODULO FUENTE

COMPROBACIÓN MEDIANTE EL SIMULADOR DEL PROTEUS
Para la comprobación se utiliza el osciloscopio de cuatro canales, con el que se observa:

      CANAL A: el voltaje sobre la carga.
      CANAL B: la señal de 6 Vac rectificada.
      CANAL C: pulsos de inicio del semiciclo, para producir transiciones en la
       entrada de la Interrupción Externa 2.
      CANAL D: pulsos de disparo del TRIAC, que genera la Interrupción del Timer1
       por el emparejamiento con el valor del OCR1A.
NOTA: Únicamente para la comprobación mediante el simulador, se ha incluido la
referencia de GND en el terminal común de la carga con el generador de 110 Vac y el

Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes
de Información
SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1
                              Página 12

primario del transformador; en el circuito real no existe, para mantener el aislamiento
entre las secciones de corriente alterna y de corriente continua.




                 Solo para comprobar
                 mediante el Simulador




                  SEÑALES CON ÁNGULO DE DISPARO DE 0º




Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes
de Información
SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1
                              Página 13




                SEÑALES CON ÁNGULO DE DISPARO DE 60º




                SEÑALES CON ÁNGULO DE DISPARO DE 90º


Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes
de Información
SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1
                              Página 14




                SEÑALES CON ÁNGULO DE DISPARO DE 100º




                SEÑALES CON ÁNGULO DE DISPARO DE 140º


Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes
de Información
SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1
                              Página 15




                SEÑALES CON ÁNGULO DE DISPARO DE 180º




Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes
de Información

Más contenido relacionado

La actualidad más candente

Ejercicio 03 Porticos
Ejercicio 03 PorticosEjercicio 03 Porticos
Ejercicio 03 Porticos
Jaime E. Velarde
 
Funcionamiento del USART
Funcionamiento del USARTFuncionamiento del USART
Funcionamiento del USART
Jaime E. Velarde
 
Ejercicio 07 adicionales de Interrupciones
Ejercicio 07 adicionales de InterrupcionesEjercicio 07 adicionales de Interrupciones
Ejercicio 07 adicionales de Interrupciones
Jaime E. Velarde
 
Ejercicio 05 Subrutinas
Ejercicio 05 SubrutinasEjercicio 05 Subrutinas
Ejercicio 05 Subrutinas
Jaime E. Velarde
 
19 Conversor A/D
19 Conversor A/D19 Conversor A/D
19 Conversor A/D
Jaime E. Velarde
 
12 Pórticos de los Atmega
12 Pórticos de los Atmega12 Pórticos de los Atmega
12 Pórticos de los Atmega
Jaime E. Velarde
 
Ejercicio 04 Calculos
Ejercicio 04 CalculosEjercicio 04 Calculos
Ejercicio 04 Calculos
Jaime E. Velarde
 
18 Timers
18 Timers18 Timers
18 Timers
Jaime E. Velarde
 
Ejercicio 01 Llenar
Ejercicio 01 LlenarEjercicio 01 Llenar
Ejercicio 01 Llenar
Jaime E. Velarde
 
Ejercicio 02 Tablas
Ejercicio 02 TablasEjercicio 02 Tablas
Ejercicio 02 Tablas
Jaime E. Velarde
 
Ejercicios 04 cálculo continuación
Ejercicios 04 cálculo continuaciónEjercicios 04 cálculo continuación
Ejercicios 04 cálculo continuación
Jaime E. Velarde
 
17 Interrupciones
17 Interrupciones17 Interrupciones
17 Interrupciones
Jaime E. Velarde
 
Conversor ADC
Conversor ADCConversor ADC
Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06
Hamiltonn Casallas
 
Equipo transpondedor 2
Equipo transpondedor 2Equipo transpondedor 2
Equipo transpondedor 2
jose javier barragán santiago
 
Frecuencimetro receptor hall esquema y programa pbp 28 pag
Frecuencimetro receptor hall esquema y programa pbp 28 pagFrecuencimetro receptor hall esquema y programa pbp 28 pag
Frecuencimetro receptor hall esquema y programa pbp 28 pag
joaquinin1
 
Módulo EUSART del PIC16F887
Módulo EUSART del PIC16F887Módulo EUSART del PIC16F887
Módulo EUSART del PIC16F887
Fernando Aparicio Urbano Molano
 

La actualidad más candente (20)

Ejercicio 03 Porticos
Ejercicio 03 PorticosEjercicio 03 Porticos
Ejercicio 03 Porticos
 
Funcionamiento del USART
Funcionamiento del USARTFuncionamiento del USART
Funcionamiento del USART
 
Ejercicio 07 adicionales de Interrupciones
Ejercicio 07 adicionales de InterrupcionesEjercicio 07 adicionales de Interrupciones
Ejercicio 07 adicionales de Interrupciones
 
Ejercicio 05 Subrutinas
Ejercicio 05 SubrutinasEjercicio 05 Subrutinas
Ejercicio 05 Subrutinas
 
19 Conversor A/D
19 Conversor A/D19 Conversor A/D
19 Conversor A/D
 
12 Pórticos de los Atmega
12 Pórticos de los Atmega12 Pórticos de los Atmega
12 Pórticos de los Atmega
 
Ejercicio 04 Calculos
Ejercicio 04 CalculosEjercicio 04 Calculos
Ejercicio 04 Calculos
 
18 Timers
18 Timers18 Timers
18 Timers
 
Ejercicio 01 Llenar
Ejercicio 01 LlenarEjercicio 01 Llenar
Ejercicio 01 Llenar
 
Ejercicio 02 Tablas
Ejercicio 02 TablasEjercicio 02 Tablas
Ejercicio 02 Tablas
 
Ejercicios 04 cálculo continuación
Ejercicios 04 cálculo continuaciónEjercicios 04 cálculo continuación
Ejercicios 04 cálculo continuación
 
17 Interrupciones
17 Interrupciones17 Interrupciones
17 Interrupciones
 
Sistemas Microprocesados I
Sistemas Microprocesados ISistemas Microprocesados I
Sistemas Microprocesados I
 
Conversor ADC
Conversor ADCConversor ADC
Conversor ADC
 
Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06Curso de microcontroladores capitulo 06
Curso de microcontroladores capitulo 06
 
Equipo transpondedor 2
Equipo transpondedor 2Equipo transpondedor 2
Equipo transpondedor 2
 
Conexión serial
Conexión serialConexión serial
Conexión serial
 
Frecuencimetro receptor hall esquema y programa pbp 28 pag
Frecuencimetro receptor hall esquema y programa pbp 28 pagFrecuencimetro receptor hall esquema y programa pbp 28 pag
Frecuencimetro receptor hall esquema y programa pbp 28 pag
 
Módulo EUSART del PIC16F887
Módulo EUSART del PIC16F887Módulo EUSART del PIC16F887
Módulo EUSART del PIC16F887
 
Cables
CablesCables
Cables
 

Destacado

Microcontroladores ASM
Microcontroladores ASMMicrocontroladores ASM
Microcontroladores ASM
dave
 
Practicas De Lab Micro Parte I
Practicas De Lab Micro Parte IPracticas De Lab Micro Parte I
Practicas De Lab Micro Parte I
Luis Zurita
 
Manejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84aManejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84axeleta
 
Microcontroladores PIC
Microcontroladores PICMicrocontroladores PIC
Microcontroladores PIC
Sohar Carr
 
Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesLuis Zurita
 
Los tiristores y sus métodos de disparo para el blog
Los tiristores y sus métodos de disparo para el blogLos tiristores y sus métodos de disparo para el blog
Los tiristores y sus métodos de disparo para el blogvillalbastalin
 
Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2Luis Zurita
 
programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84
guestf09168b
 
Tiristores, características, aplicaciones y funcionamiento.
Tiristores, características, aplicaciones y funcionamiento.Tiristores, características, aplicaciones y funcionamiento.
Tiristores, características, aplicaciones y funcionamiento.
J Luis Salguero Fioratti
 

Destacado (13)

Microcontroladores ASM
Microcontroladores ASMMicrocontroladores ASM
Microcontroladores ASM
 
Practicas De Lab Micro Parte I
Practicas De Lab Micro Parte IPracticas De Lab Micro Parte I
Practicas De Lab Micro Parte I
 
Diapos de pic
Diapos de picDiapos de pic
Diapos de pic
 
Manejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84aManejo de teclado 4x4 con pic 16 f84a
Manejo de teclado 4x4 con pic 16 f84a
 
El PIC16F84
El PIC16F84El PIC16F84
El PIC16F84
 
Microcontroladores PIC
Microcontroladores PICMicrocontroladores PIC
Microcontroladores PIC
 
UNIDAD IV
UNIDAD IVUNIDAD IV
UNIDAD IV
 
Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupciones
 
SCR, DIAC y TRIAC
SCR, DIAC y TRIACSCR, DIAC y TRIAC
SCR, DIAC y TRIAC
 
Los tiristores y sus métodos de disparo para el blog
Los tiristores y sus métodos de disparo para el blogLos tiristores y sus métodos de disparo para el blog
Los tiristores y sus métodos de disparo para el blog
 
Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2
 
programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84
 
Tiristores, características, aplicaciones y funcionamiento.
Tiristores, características, aplicaciones y funcionamiento.Tiristores, características, aplicaciones y funcionamiento.
Tiristores, características, aplicaciones y funcionamiento.
 

Similar a Ejercicio 07 Timers

Ccp2009170309
Ccp2009170309Ccp2009170309
Ccp2009170309
Luis Zurita
 
Clase Timer 1
Clase Timer 1Clase Timer 1
Módulo Timer 1 del PIC16F887
Módulo Timer 1 del PIC16F887Módulo Timer 1 del PIC16F887
Módulo Timer 1 del PIC16F887
Fernando Aparicio Urbano Molano
 
Módulos ccp pic 16f887
Módulos ccp pic 16f887Módulos ccp pic 16f887
Módulos ccp pic 16f887
whendygarcia
 
Interrupciones y Temporizadores pucesi
Interrupciones y Temporizadores   pucesiInterrupciones y Temporizadores   pucesi
Interrupciones y Temporizadores pucesi
David Narváez
 
Microprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersMicroprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timers
marco calderon layme
 
TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"
Diego Rojas Ruiz
 
PWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros InvolucradosPWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros Involucrados
Eduardo Henriquez
 
Curso de microcontroladores capitulo 07
Curso de microcontroladores capitulo 07Curso de microcontroladores capitulo 07
Curso de microcontroladores capitulo 07
Hamiltonn Casallas
 
Enunciación
EnunciaciónEnunciación
Enunciación
Amaury Méndez
 
Control nivel luz
Control nivel luzControl nivel luz
Control nivel luz
Fernando Venegas Riera
 
Informe N°3-Microcontroladores
Informe N°3-MicrocontroladoresInforme N°3-Microcontroladores
Informe N°3-Microcontroladores
Omar Ruiz
 
Curso de microcontroladores capitulo 05
Curso de microcontroladores capitulo 05Curso de microcontroladores capitulo 05
Curso de microcontroladores capitulo 05
Hamiltonn Casallas
 

Similar a Ejercicio 07 Timers (20)

Ccp2009170309
Ccp2009170309Ccp2009170309
Ccp2009170309
 
Clase Timer 1
Clase Timer 1Clase Timer 1
Clase Timer 1
 
Módulo Timer 1 del PIC16F887
Módulo Timer 1 del PIC16F887Módulo Timer 1 del PIC16F887
Módulo Timer 1 del PIC16F887
 
Micro2 tema 2
Micro2 tema 2Micro2 tema 2
Micro2 tema 2
 
Micro2 tema 3
Micro2 tema 3Micro2 tema 3
Micro2 tema 3
 
Módulos ccp pic 16f887
Módulos ccp pic 16f887Módulos ccp pic 16f887
Módulos ccp pic 16f887
 
Interrupciones y Temporizadores pucesi
Interrupciones y Temporizadores   pucesiInterrupciones y Temporizadores   pucesi
Interrupciones y Temporizadores pucesi
 
Microprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersMicroprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timers
 
TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"
 
Ccpx
CcpxCcpx
Ccpx
 
Timers
TimersTimers
Timers
 
PWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros InvolucradosPWM con PIC16F877A: Modulos y Registros Involucrados
PWM con PIC16F877A: Modulos y Registros Involucrados
 
In terrupciones pic
In terrupciones picIn terrupciones pic
In terrupciones pic
 
Curso de microcontroladores capitulo 07
Curso de microcontroladores capitulo 07Curso de microcontroladores capitulo 07
Curso de microcontroladores capitulo 07
 
Enunciación
EnunciaciónEnunciación
Enunciación
 
Enunciación
EnunciaciónEnunciación
Enunciación
 
Control nivel luz
Control nivel luzControl nivel luz
Control nivel luz
 
Informe N°3-Microcontroladores
Informe N°3-MicrocontroladoresInforme N°3-Microcontroladores
Informe N°3-Microcontroladores
 
Uso del tmr0
Uso del tmr0Uso del tmr0
Uso del tmr0
 
Curso de microcontroladores capitulo 05
Curso de microcontroladores capitulo 05Curso de microcontroladores capitulo 05
Curso de microcontroladores capitulo 05
 

Más de Jaime E. Velarde

20 Portico Serial
20 Portico Serial20 Portico Serial
20 Portico Serial
Jaime E. Velarde
 
16 Instrucciones de Subrutinas
16 Instrucciones de Subrutinas16 Instrucciones de Subrutinas
16 Instrucciones de Subrutinas
Jaime E. Velarde
 
15 Instrucciones Aritmeticas y Logicas
15 Instrucciones Aritmeticas y Logicas15 Instrucciones Aritmeticas y Logicas
15 Instrucciones Aritmeticas y Logicas
Jaime E. Velarde
 
13 Instrucciones de manejo de bits
13  Instrucciones de manejo de bits13  Instrucciones de manejo de bits
13 Instrucciones de manejo de bits
Jaime E. Velarde
 
14 Fusibles Programables
14 Fusibles Programables14 Fusibles Programables
14 Fusibles Programables
Jaime E. Velarde
 
11 Instrucciones de Salto de los Atmega
11  Instrucciones de Salto  de los Atmega11  Instrucciones de Salto  de los Atmega
11 Instrucciones de Salto de los Atmega
Jaime E. Velarde
 
10 Instrucciones de Transferencia
10  Instrucciones  de Transferencia10  Instrucciones  de Transferencia
10 Instrucciones de Transferencia
Jaime E. Velarde
 
09 Conjunto de Instrucciones de los Atmega
09 Conjunto de Instrucciones  de los Atmega09 Conjunto de Instrucciones  de los Atmega
09 Conjunto de Instrucciones de los Atmega
Jaime E. Velarde
 
08 Memoria de los Atmega164P
08 Memoria de los Atmega164P08 Memoria de los Atmega164P
08 Memoria de los Atmega164P
Jaime E. Velarde
 
07 Familia Atmega
07 Familia Atmega07 Familia Atmega
07 Familia Atmega
Jaime E. Velarde
 

Más de Jaime E. Velarde (10)

20 Portico Serial
20 Portico Serial20 Portico Serial
20 Portico Serial
 
16 Instrucciones de Subrutinas
16 Instrucciones de Subrutinas16 Instrucciones de Subrutinas
16 Instrucciones de Subrutinas
 
15 Instrucciones Aritmeticas y Logicas
15 Instrucciones Aritmeticas y Logicas15 Instrucciones Aritmeticas y Logicas
15 Instrucciones Aritmeticas y Logicas
 
13 Instrucciones de manejo de bits
13  Instrucciones de manejo de bits13  Instrucciones de manejo de bits
13 Instrucciones de manejo de bits
 
14 Fusibles Programables
14 Fusibles Programables14 Fusibles Programables
14 Fusibles Programables
 
11 Instrucciones de Salto de los Atmega
11  Instrucciones de Salto  de los Atmega11  Instrucciones de Salto  de los Atmega
11 Instrucciones de Salto de los Atmega
 
10 Instrucciones de Transferencia
10  Instrucciones  de Transferencia10  Instrucciones  de Transferencia
10 Instrucciones de Transferencia
 
09 Conjunto de Instrucciones de los Atmega
09 Conjunto de Instrucciones  de los Atmega09 Conjunto de Instrucciones  de los Atmega
09 Conjunto de Instrucciones de los Atmega
 
08 Memoria de los Atmega164P
08 Memoria de los Atmega164P08 Memoria de los Atmega164P
08 Memoria de los Atmega164P
 
07 Familia Atmega
07 Familia Atmega07 Familia Atmega
07 Familia Atmega
 

Último

Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
sandradianelly
 
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docxENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
SandraPiza2
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
cintiat3400
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
Demetrio Ccesa Rayme
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
Martín Ramírez
 
Sesión: El fundamento del gobierno de Dios.pdf
Sesión: El fundamento del gobierno de Dios.pdfSesión: El fundamento del gobierno de Dios.pdf
Sesión: El fundamento del gobierno de Dios.pdf
https://gramadal.wordpress.com/
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
JAVIER SOLIS NOYOLA
 
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
HuallpaSamaniegoSeba
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
El Fortí
 
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
FelixCamachoGuzman
 
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
rosannatasaycoyactay
 
El lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libroEl lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libro
Distea V región
 
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdfTestimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Txema Gs
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
20minutos
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Demetrio Ccesa Rayme
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
YasneidyGonzalez
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Demetrio Ccesa Rayme
 
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
UNIDAD DE APRENDIZAJE DEL MES  Junio 2024UNIDAD DE APRENDIZAJE DEL MES  Junio 2024
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
EdwardYumbato1
 
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIALCUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
DivinoNioJess885
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
Alejandrino Halire Ccahuana
 

Último (20)

Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
 
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docxENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
 
Sesión: El fundamento del gobierno de Dios.pdf
Sesión: El fundamento del gobierno de Dios.pdfSesión: El fundamento del gobierno de Dios.pdf
Sesión: El fundamento del gobierno de Dios.pdf
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
 
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
 
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
 
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
 
El lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libroEl lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libro
 
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdfTestimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdf
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
 
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
UNIDAD DE APRENDIZAJE DEL MES  Junio 2024UNIDAD DE APRENDIZAJE DEL MES  Junio 2024
UNIDAD DE APRENDIZAJE DEL MES Junio 2024
 
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIALCUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
 

Ejercicio 07 Timers

  • 1. SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1 Página 1 EJERCICIOS DE CONFIGURACIÓN DEL TIMER1 PARA UTILIZAR LAS INTERRUPCIONES QUE GENERA ENUNCIADO DEL EJERCICIO 1: Modificar al programa del reloj digital que se muestra en seis displays de cátodo común; de manera que se reemplace al lazo de repetición que sirve para el incremento de los segundos por interrupciones generadas cada segundo mediante el Timer1, configurado en el Modo CTC. Las modificaciones que sea realizan en el programa principal son: 1. Adicionar el Vector de Interrupciones por emparejamiento del Timer1 con el Registro A de Comparación. 2. Incluir en el programa principal la programación del Timer1 y habilitación de las interrupciones para que se generen cada segundo. 3. Modificación en el programa principal el lazo de repetición donde se muestra el reloj digital en los displays, eliminando los incrementos cada segundo. Las modificaciones que sea realizan en las rutinas de interrupción son: 4. En rutina de la Interrupción Externa 2 incluir el cambio de estado del Timer1, entre detenido y corriendo. 5. Modificar las rutinas de las Interrupciones Externa 1 y Externa 0 para que se encarguen solo de los incrementos de los contadores; ya que el programa principal se encarga de publicarlos. 6. Incorporación de la rutina de Interrupción del Timer1 por emparejamiento con el Registro A de Comparación, que incrementa en un segundo al reloj digital para ser publicado por programa principal. ANÁLISIS PARA CONFIGURAR AL TIMER1, A FIN DE INCREMENTAR LOS CONTADORES CADA SEGUNDO MEDIANTE INTERRUPCIONES: La configuración del Timer1 que conviene para esta aplicación es la de Borrar el Timer al emparejar con el Comprador o CTC. Se debe mantener desactivada la salida del Timer, porque no se va a generar una señal. Y se necesita establecer el valor del registro de comparación OCR1A, con el fin de generar interrupciones cada segundo. Para que transcurra un segundo, considerando que el Timer tiene el mismo reloj que el microcontrolador (sin pre escalamiento) e igual a 1MHz, es necesario contar 1´000.000 de pulsos lo que no se puede hacer con 16 bits. La siguiente alternativa es que el Timer tenga como reloj el del microcontrolador divido para 8 (con pre escalamiento de 8), lo que significa que se deben contar 125.000 pulsos, que tampoco se puede contar con 16 bits. Como tercera opción es alimentar al Timer con el reloj del microcontrolador divido para 64 (con pre escalamiento de 64), lo que significa que se deben contar 15.265 pulsos, que si se puede contar con 16 bits; por lo tanto, está será la configuración para el escalamiento del reloj del Timer y el valor para el registro OCR1A. Finalmente se debe habilitar las interrupciones por emparejamiento con el OCR1A y reservar el respectivo vector. Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes de Información
  • 2. SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1 Página 2 CODIFICACIÓN DEL PROGRAMA PRINCIPAL Y DE LAS RUTINAS DE INTERRUPCIÓN .NOLIST .INCLUDE "m164pdef.inc" .LIST ; DEFINICIÓN DE ETIQUETAS PARA LOS REGISTROS .DEF AUX1 = R16 ; REGISTRO AUXILIAR1 .DEF AUX2 = R17 ; REGISTRO AUXILIAR2 .DEF AUX3 = R18 ; REGISTRO AUXILIAR3 .DEF HORAS = R19 ; REGISTRO PARA LAS HORAS .DEF MINUT = R20 ; REGISTRO PARA LAS MINUTOS .DEF SEGUN = R21 ; REGISTRO PARA LOS SEGUNDOS .DEF AUXI1 = R23 ; REGISTRO AUXILIAR 1 INTERRUPCIONES .DEF AUXI2 = R24 ; REGISTRO AUXILIAR 2 INTERRUPCIONES ; SEGMENTO DE CÓDIGO o MEMORIA FLASH .CSEG JMP PROGP .ORG $02 ; RUTINA DE LA INTERRUPCIÓN EXTERNA 0 JMP RUTINT0 .ORG $04 ; RUTINA DE LA INTERRUPCIÓN EXTERNA 1 JMP RUTINT1 .ORG $06 ; RUTINA DE LA INTERRUPCIÓN EXTERNA 2 JMP RUTINT2 .ORG $1A ; RUTINA DE LA INTERRUPCIÓN DEL TIMER1 JMP RUTTIM1 ; INICIALIZACIÓN DEL PUNTERO DEL STACK Y DE LOS PÓRTICOSM0DIFICACIÓN 1 PROGP: LDI AUX1,LOW(RAMEND) OUT SPL,AUX1 LDI AUX1,HIGH(RAMEND) OUT SPH,AUX1 LDI AUX1,0B00000100 OUT PORTB,AUX1 ; PULL-UP INT2 = PB2 LDI AUX1,0B00001100 OUT PORTD,AUX1 ; PULL-UP INT0/1 = PD2/3 ; PROGRAMACIÓN DE LAS INTERRUPCIONES EXTERNAS LDI AUX1,0B000101111 STS EICRA,AUX1 ; INT2 T. NEGAT. INT1/0 T. POS. LDI AUX1,0B00000100 OUT EIMSK,AUX1 ; INT2 HABILITADA LDI AUX1,0B00000111 OUT EIFR,AUX1 ; BORRAR LAS BANDERAS ; PROGRAMACIÓN DEL TIMER1 ; COM1A1:0=00 DESCONECTADA DE LA SALIDA OC1A (PD5) M0DIFICACIÓN 2 ; COM1B1:0=00 DESCONECTADA DE LA SALIDA OC1B (PD4) ; DOS BITS RESERVADOS = 00 ; WGM11:0=00 CONFIGURACIÓN CTC (MODO 4) LDI AUX1,0B00000000 STS TCCR1A,AUX1 ; ICNC1=0 DESHABILITA CANCELACIÓN DE RUIDO ; ICES1=0 TRANSICIÓN NEGATIVA PARA LA ENTRADA DE CAPTURA ; BIT RESERVADO = 0 ; WGM13:2=01 CONFIGURACIÓN CTC (MODO 4) ; CS12:0=011 RELOJ IGUAL A Fosc/64 LDI AUX1,0B00001011 ; Fosc/64 STS TCCR1B,AUX1 ; VALOR A COMPARAR EN OCR1A (ESCRITURA DE 16 BITS) LDI AUX1,HIGH(15625) LDI AUX2,LOW(15625) STS OCR1AH,AUX1 STS OCR1AL,AUX2 Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes de Información
  • 3. SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1 Página 3 ; HABILITA INTERRUPCIÓN POR EMPAREJAMIENTO EN COMPARACIÓN A LDI AUX1,0B00000010 STS TIMSK1,AUX1 ; VALORES INICIALES DE HH:MM:SS LDI HORAS,23 LDI MINUT,59 LDI SEGUN,49 ; HABILITACIÓN GLOBAL DE INTERRUPCIONES SEI ; TRANSFORMACIÓN A BCD DE LOS CONTADORES RELOJ: LDI XL,LOW(DIGIT) M0DIFICACIÓN 3 LDI XH,HIGH(DIGIT) MOV AUX2,HORAS RCALL BINBCD MOV AUX2,MINUT RCALL BINBCD MOV AUX2,SEGUN RCALL BINBCD ; TRANSFORMACIÓN A 7 SEGMENTOS RCALL ASEG ; MOSTRAR EN EL DISPLAY EL RELOJ DIGITAL RCALL SCAN RJMP RELOJ ; TRANSFORMACIÓN DE BINARIO A BCD Y ALMACENAMIENTO BINBCD: CLR AUX1 BINBCD1:SUBI AUX2,10 BRCS BINBCD2 INC AUX1 RJMP BINBCD1 BINBCD2:LDI AUX3,10 ADD AUX2,AUX3 ST X+,AUX1 ST X+,AUX2 RET ; ARRANCAR - DETENER EL RELOJ RUTINT2: IN AUXI1,EIMSK LDI AUXI2,0B00000011 EOR AUXI1,AUXI2 ; COMPLEMENTAR LOS 2 BITS OUT EIMSK,AUXI1 ; CAMBIAR HABILITACIÓN OUT EIFR,AUXI2 ; BORRA INTF0 y INTF1 LDS AUXI1,TIMSK1 M0DIFICACIÓN 4 LDI AUXI2,0B00000010 EOR AUXI1,AUXI2 ; COMPLEMENTAR EL 2 BIT STS TIMSK1,AUXI1 ; CAMBIAR HABILITACIÓN FINR2: RETI ; IGUALAR MINUTOS RUTINT1: INC MINUT CPI MINUT,60 BRNE RUT11 CLR MINUT RUT11: RETI ; IGUALAR HORAS M0DIFICACIÓN 5 RUTINT0: INC HORAS CPI HORAS,24 BRNE RUT01 CLR HORAS M0DIFICACIÓN 5 RUT01: RETI Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes de Información
  • 4. SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1 Página 4 ; INCREMENTO DE SEGUNDOS RUTTIM1: INC SEGUN M0DIFICACIÓN 6 CPI SEGUN,60 BRNE FINRT1 CLR SEGUN INC MINUT CPI MINUT,60 BRNE FINRT1 CLR MINUT INC HORAS CPI HORAS,24 BRNE FINRT1 CLR HORAS FINRT1: RETI ; .INCLUDE "SUBCC.ASM" ; .EXIT ; FIN DEL MODULO FUENTE COMPROBACIÓN DEL RELOJ DE 24 HORAS CON INTERRUPCIONES PRODUCIDAS POR EL TIMER1 ENUNCIADO DEL EJERCICIO 2: Modificar al programa anterior, correspondiente al reloj digital para convertirlo en un Cronómetro Digital Ascendente, que muestre Minutos, Segundos y Centésimas de Segundos. El control del cronómetro se realiza mediante tres teclas:  La tecla CLEAR conectada a la Interrupción Externa 2 pone el cronómetro en cero, solo cuando está detenido.  La tecla STOP conectada a la Interrupción Externa 0 detiene el cronómetro.  La tecla START conectada a la Interrupción Externa 1 arranca el cronómetro. Además de la redefinición de los Contadores para el Cronómetro y de las funciones que realizan las Rutinas de las Interrupciones Externas, el Timer1 debe ser configurado para producir interrupciones cada 10 milisegundos en lugar de cada segundo. Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes de Información
  • 5. SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1 Página 5 ANÁLISIS PARA CONFIGURAR AL TIMER1, A FIN DE INCREMENTAR LOS CONTADORES CADA CENTÉSIMA DE SEGUNDO: Para producir interrupciones cada centésima de segundo con el Timer teniendo el mismo reloj que el microcontrolador, igual a 1MHz, es necesario contar 10.000 pulsos que si se puede hacer con 16 bits. Esto significa que el reloj del Timer es sin escalamiento y 10.000 es el valor que se carga en el registro de comparación OCR1A. CODIFICACIÓN DEL PROGRAMA PRINCIPAL Y DE LAS RUTINAS DE INTERRUPCIÓN CON LAS MODIFICACIONES PARA CONVERTIR EL RELOJ DIGITAL EN CRONÓMETRO ASCENDENTE .NOLIST .INCLUDE "m164pdef.inc" .LIST ; DEFINICIÓN DE ETIQUETAS PARA LOS REGISTROS .DEF AUX1 = R16 ; REGISTRO AUXILIAR1 .DEF AUX2 = R17 ; REGISTRO AUXILIAR2 .DEF AUX3 = R18 ; REGISTRO AUXILIAR3 .DEF MINUT = R19 ; REGISTRO PARA LAS MINUTOS .DEF SEGUN = R20 ; REGISTRO PARA LAS SEGUNDOS .DEF CENTI = R21 ; REGISTRO PARA LAS CENTÉSIMAS DE SEGUNDO .DEF AUXI1 = R23 ; REGISTRO AUXILIAR 1 INTERRUPCIONES .DEF AUXI2 = R24 ; REGISTRO AUXILIAR 2 INTERRUPCIONES ; SEGMENTO DE CÓDIGO o MEMORIA FLASH .CSEG JMP PROGP .ORG $02 ; RUTINA DE LA INTERRUPCIÓN EXTERNA 0 JMP RUTINT0 .ORG $04 ; RUTINA DE LA INTERRUPCIÓN EXTERNA 1 JMP RUTINT1 .ORG $06 ; RUTINA DE LA INTERRUPCIÓN EXTERNA 2 JMP RUTINT2 .ORG $1A ; INTERRUPCIÓN POR EMPAREJAMIENTO TIMER 1 JMP RUTTIM1 ; INICIALIZACIÓN DEL PUNTERO DEL STACK Y DE LOS PÓRTICOS PROGP: LDI AUX1,LOW(RAMEND) OUT SPL,AUX1 LDI AUX1,HIGH(RAMEND) OUT SPH,AUX1 LDI AUX1,0B00000100 OUT PORTB,AUX1 ; PULL-UP INT2 = PB2 LDI AUX1,0B00001100 OUT PORTD,AUX1 ; PULL-UP INT0/1 = PD2/3 ; PROGRAMACIÓN DE LAS INTERRUPCIONES EXTERNAS LDI AUX1,0B000101010 STS EICRA,AUX1 ; INT2/1/0 TRANSICIÓN NEGAT. LDI AUX1,0B00000010 OUT EIMSK,AUX1 ; INT1 HABILITADA (ARRANCAR) LDI AUX1,0B00000111 OUT EIFR,AUX1 ; BORRAR LAS BANDERAS ; PROGRAMACIÓN DEL TIMER1 ; COM1A1:0=00 DESCONECTADA DE LA SALIDA OC1A (PD5) ; COM1B1:0=00 DESCONECTADA DE LA SALIDA OC1B (PD4) ; DOS BITS RESERVADOS = 00 ; WGM11:0=00 CONFIGURACIÓN CTC (MODO 4) LDI AUX1,0B00000000 STS TCCR1A,AUX1 ; ICNC1=0 DESHABILITA CANCELACIÓN DE RUIDO ; ICES1=0 TRANSICIÓN NEGATIVA PARA LA ENTRADA DE CAPTURA Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes de Información
  • 6. SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1 Página 6 ; BIT RESERVADO = 0 ; WGM13:2=01 CONFIGURACIÓN CTC (MODO 4) ; CS12:0=000 SIN RELOJ LDI AUX1,0B00001000 ; TIMER DETENIDO STS TCCR1B,AUX1 ; VALOR A COMPARAR EN OCR1A (ESCRITURA DE 16 BITS) LDI AUX1,HIGH(10000) LDI AUX2,LOW(10000) STS OCR1AH,AUX1 STS OCR1AL,AUX2 ; HABILITA INTERRUPCIÓN POR EMPAREJAMIENTO EN COMPARACIÓN A LDI AUX1,0B00000010 STS TIMSK1,AUX1 ; VALORES INICIALES DE MM:SS:CS LDI MINUT,0 LDI SEGUN,0 LDI CENTI,0 ; HABILITACIÓN GLOBAL DE INTERRUPCIONES SEI ; TRANSFORMACIÓN A BCD DE LOS CONTADORES CRONO: LDI XL,LOW(DIGIT) LDI XH,HIGH(DIGIT) MOV AUX2,MINUT RCALL BINBCD MOV AUX2,SEGUN RCALL BINBCD MOV AUX2,CENTI RCALL BINBCD ; TRANSFORMACIÓN A 7 SEGMENTOS RCALL ASEG ; MOSTRAR EN EL DISPLAY EL CRONOMETRO RCALL SCAN RJMP CRONO ; TRANSFORMACIÓN DE BINARIO A BCD Y ALMACENAMIENTO BINBCD: CLR AUX1 BINBCD1:SUBI AUX2,10 BRCS BINBCD2 INC AUX1 RJMP BINBCD1 BINBCD2:LDI AUX3,10 ADD AUX2,AUX3 ST X+,AUX1 ST X+,AUX2 RET ; PONER CEROS EN EL CRONÓMETRO RUTINT2: LDI MINUT,0 LDI SEGUN,0 LDI CENTI,0 RETI ; DETENER EL CRONÓMETRO RUTINT0: ; CS12:0=000 SIN RELOJ LDI AUX1,0B00001000 ; TIMER DETENIDO STS TCCR1B,AUX1 LDI AUX1,0B00000111 OUT EIFR,AUX1 ; BORRAR LAS BANDERAS LDI AUX1,0B00000110 OUT EIMSK,AUX1 ; INT2/1 HABILITADAS (ENCERAR - ARRANCAR) RETI Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes de Información
  • 7. SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1 Página 7 ; ARRANCAR EL CRONÓMETRO RUTINT1: ; CS12:0=001 RELOJ IGUAL A Fosc/1 LDI AUX1,0B00001001 ; TIMER CONTANDO STS TCCR1B,AUX1 LDI AUX1,0B00000111 OUT EIFR,AUX1 ; BORRAR LAS BANDERAS LDI AUX1,0B00000001 OUT EIMSK,AUX1 ; INT0 HABILITADA (DETENER) RETI ; INCREMENTO DE CENTÉSIMAS DE SEGUNDO RUTTIM1:INC CENTI CPI CENTI,100 BRNE FINRT1 CLR CENTI INC SEGUN CPI SEGUN,60 BRNE FINRT1 CLR SEGUN INC MINUT CPI MINUT,60 BRNE FINRT1 CLR MINUT FINRT1: RETI ; .INCLUDE "SUBCC.ASM" ; .EXIT ; FIN DEL MODULO FUENTE COMPROBACIÓN DEL CRONÓMETRO ASCENDENTE CON INTERRUPCIONES PRODUCIDAS POR EL TIMER1 ENUNCIADO DEL EJERCICIO 3: Elaborar el programa de control para un DIMMER de 19 pasos, que se pueden cambiar mediante dos teclas, una para subir y otra para bajar. El DIMMER es un dispositivo electrónico que permite controlar la intensidad de iluminación de lámparas incandescentes, controlando el ángulo de disparo del TRIAC que alimenta a la lámpara; Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes de Información
  • 8. SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1 Página 8 por lo tanto, este programa tiene como objetivo escoger el ángulo de disparo del TRIAC cada 10º, entre 0º y 180º de los semiciclos de la señal de 110 Vac. ANÁLISIS Y ALGORITMO DE LA SOLUCIÓN: Se necesita producir pulsos al inicio de los semiciclos de la señal de 110 Vac, mediante un circuito externo al microcontrolador (detector de cruce por cero) y el programa se encarga de generar los pulsos de disparo con un retardo de acuerdo al ángulo escogido, tal como se muestra a continuación para el caso de 100º como ángulo de disparo. Señal de 110 Vac Corriente en la lámpara Señal de 6 Vac, rectificada Pulsos al inicio Pulsos de disparo CIRCUITO DEL DIMMER: Pulsos al inicio Pulsos de disparo Señal de 6 Vac, rectificada Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes de Información
  • 9. SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1 Página 9 Los pulsos al inicio de los semiciclos se obtienen mediante el colector del transistor NPN, conectado en el terminal de entrada de la Interrupción Externa 2, que tiene activada la resistencia interna de pull-up. El transistor trabaja en corte y saturación, controlado por la señal que ingresa por la resistencia de la base y que corresponde a una señal de 6 Vac rectificada en onda completa. La rutina de la Interrupción Externa 2 se encarga de arrancar al contador del Timmer1; el cual, mediante la interrupción por emparejamiento con el valor del registro de comparación OCR1A, controla el retardo del pulso de disparo del TRIAC. Los valores de comparación se obtienen desde la tabla de constantes, que han sido calculadas para tener ángulos de disparo cada 10 grados con señales de 60 Hz, considerando que el Timer1 tiene el mismo reloj que el microcontrolador e igual a 1MHz. Paso del Angulo en Tiempo en Dimmer grados microsegundos 1 0º 0 2 10º 463 3 20º 926 4 30º 1389 5 40º 1852 6 50º 2315 7 60º 2778 8 70º 3241 9 80º 3704 10 90º 4167 11 100º 4630 12 110º 5093 13 120º 5556 14 130º 6019 15 140º 6481 16 150º 6944 17 160º 7407 18 170º 7870 19 180º 8333 CODIFICACIÓN DEL PROGRAMA PRINCIPAL Y DE LAS RUTINAS DE INTERRUPCIÓN PARA EL CONTROL DEL DIMMER .NOLIST .INCLUDE "m164pdef.inc" .LIST ; .DEF AUX1 = R16 .DEF AUX2 = R17 .DEF AUX3 = R18 ; .CSEG JMP PROGP Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes de Información
  • 10. SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1 Página 10 JMP INTE0 JMP INTE1 JMP INTE2 .ORG $1A ; INTERRUPCIÓN POR EMPAREJAMIENTO ATMEGA164P JMP INTT1 ; PROGP: ; UBICACIÓN DEL STACK AL FINAL DE LA SRAM LDI AUX1,LOW(RAMEND) OUT SPL,AUX1 LDI AUX1,HIGH(RAMEND) OUT SPH,AUX1 ; CONFIGURACIÓN COMO SALIDA (PA3) LDI AUX1,0B00001000 OUT DDRA,AUX1 ; PULL-UP EN LAS ENTRADAS INT0 e INT1 (PD2 y PD3) LDI AUX1,0B00001100 OUT PORTD,AUX1 ; PULL-UP EN LA ENTRADA INT2 (PB2) LDI AUX1,0B00000100 OUT PORTB,AUX1 ; PROGRAMACION DEL TIMER1 ; COM1A1:0=00 DESCONECTADA DE LA SALIDA OC1A (PD5) ; COM1B1:0=00 DESCONECTADA DE LA SALIDA OC1B (PD4) ; FOC1A:0=1 OBLIGA A COMPARACIÓN CON OCR1A ; FOC1B:0=0 NO OBLIGA A COMPARACIÓN CON OCR1B ; WGM11:0=00 CONFIGURACIÓN CTC (MODO 4) LDI AUX1,0B00001000 STS TCCR1A,AUX1 ; ICNC1=0 DESHABILITA CANCELACIÓN DE ; ICES1=0 TRANSICIÓN NEGATIVA PARA LA ENTRADA DE CAPTURA ; BIT5=0 BITS RESERVADO ; WGM13:2=01 CONFIGURACIÓN CTC (MODO 4) ; CS12:0=001 RELOJ DETENIDO LDI AUX1,0B00001000 STS TCCR1B,AUX1 ; VALOR A COMPARAR EN OCR1A (ESCRITURA DE 16 BITS) LDI ZL,LOW((TBLK+9)<<1) LDI ZH,HIGH((TBLK+9)<<1) LPM AUX3,Z+ LPM AUX2,Z+ STS OCR1AH,AUX2 STS OCR1AL,AUX3 ; HABILITA INTERRUPCIÓN POR EMPAREJAMIENTO EN COMPARACIÓN A LDI AUX1,0B00000010 STS TIMSK1,AUX1 ; SEÑALES PARA INTERRUPCIONES EXTERNAS ; ISC11:0=10 INTERRUPCIÓN EXTERNA 1 TRANSICIÓN NEGATIVA ; ISC01:0=10 INTERRUPCIÓN EXTERNA 0 TRANSICIÓN NEGATIVA ; ISC21:0=10 INTERRUPCIÓN EXTERNA 2 TRANSICIÓN NEGATIVA LDI AUX1,0B00101010 STS EICRA,AUX1 ; HABILITACIÓN INTERRUPCIONES EXTERNAS ; INT1=1 INTERRUPCIÓN EXTERNA 1 DESHABILITADA ; INT0=1 INTERRUPCIÓN EXTERNA 0 DESHABILITADA ; INT2=0 INTERRUPCIÓN EXTERNA 2 HABILITADA LDI AUX1,0B00000111 OUT EIMSK,AUX1 SEI ; HABILITACIÓN GLOBAL DE INTERRUPCIONES ; LAZO INFINITO LOOP: RJMP LOOP Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes de Información
  • 11. SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1 Página 11 ; RUTINA DE INTERRUPCIÓN DEL TIMER1 INTT1: LDI AUX1,0B00001000 STS TCCR1B,AUX1 LDI AUX1,0B00001000 OUT PORTA,AUX1 NOP NOP NOP NOP NOP NOP LDI AUX1,0B00000000 OUT PORTA,AUX1 RETI ; RUTINA DE LA INTERRUPCIÓN EXTERNA 2 INTE2: LDI AUX1,0B00001001 STS TCCR1B,AUX1 RETI ; RUTINA DE LA INTERRUPCIÓN EXTERNA 1 INTE1: CPI ZL,LOW((TBLK+1)<<1) BREQ END1 DEC ZL DEC ZL DEC ZL DEC ZL LPM AUX3,Z+ LPM AUX2,Z+ STS OCR1AH,AUX2 STS OCR1AL,AUX3 END1: RETI ; RUTINA DE LA INTERRUPCIÓN EXTERNA 0 INTE0: CPI ZL,LOW((TBLK+19)<<1) BREQ END0 LPM AUX3,Z+ LPM AUX2,Z+ STS OCR1AH,AUX2 STS OCR1AL,AUX3 END0: RETI ; ;CONSTANTES DE LOS TIEMPOS EN MICROSEGUNDOS PARA CADA 10 GRADOS TBLK: .DW 0,463,926,1389,1852 .DW 2315,2778,3241,3704,4167 .DW 4630,5093,5556,6019,6481 .DW 6944,7407,7870,8333 .EXIT ; FIN DEL MODULO FUENTE COMPROBACIÓN MEDIANTE EL SIMULADOR DEL PROTEUS Para la comprobación se utiliza el osciloscopio de cuatro canales, con el que se observa:  CANAL A: el voltaje sobre la carga.  CANAL B: la señal de 6 Vac rectificada.  CANAL C: pulsos de inicio del semiciclo, para producir transiciones en la entrada de la Interrupción Externa 2.  CANAL D: pulsos de disparo del TRIAC, que genera la Interrupción del Timer1 por el emparejamiento con el valor del OCR1A. NOTA: Únicamente para la comprobación mediante el simulador, se ha incluido la referencia de GND en el terminal común de la carga con el generador de 110 Vac y el Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes de Información
  • 12. SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1 Página 12 primario del transformador; en el circuito real no existe, para mantener el aislamiento entre las secciones de corriente alterna y de corriente continua. Solo para comprobar mediante el Simulador SEÑALES CON ÁNGULO DE DISPARO DE 0º Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes de Información
  • 13. SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1 Página 13 SEÑALES CON ÁNGULO DE DISPARO DE 60º SEÑALES CON ÁNGULO DE DISPARO DE 90º Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes de Información
  • 14. SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1 Página 14 SEÑALES CON ÁNGULO DE DISPARO DE 100º SEÑALES CON ÁNGULO DE DISPARO DE 140º Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes de Información
  • 15. SISTEMAS MICROPROCESADOS: Uso de interrupciones generadas por el Timer1 Página 15 SEÑALES CON ÁNGULO DE DISPARO DE 180º Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes de Información