SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
GUÍA DE EJERCICIOS RESUELTOS

                     TEMA 5:

             TIMER 0 E INTERRUPCIONES




Prof. Luis Zurita       1        Microcontroladores I
1. Genere una señal cuadrada de 200 Hz. Diseño libre.

Paso 1. Enunciado y delimitación del problema:

       Como no se ha especificado por cual pin del microcontrolador saldrá la
señal, asumiremos RB0.

      Cuando se trabaja con el Timer 0, se deben incluir los cálculos que se
hayan realizado para generar el retardo deseado.



                         1            1   1
       Para una frecuencia de 200 Hz, tendremos un período de:

                    ‫=ܨ‬     ‫= = ܶ݁ݑݍ ݈ݎ݋݌‬
                              ‫݋‬                = 5݉‫ݏ‬
                         ܶ            ‫ݖܪ 002 ܨ‬
       Como no se ha especificado el ciclo de trabajo, asumiremos el 50 %, por
lo que el período en alto y en bajo serán iguales, es decir 2,5 ms

       Hagamos los cálculos para 2,5 ms:

       De la fórmula proporcionada en la Unidad IV, despejando nos quedará:

                                       ܶ݁݉ ‫ ݅ݎ݋݌‬ó݊
                                               ‫݅ܿܽݖ‬
                      ்ܸெ ோை =
                                 4 ∗ ܶ‫0ܴ ܯܶݎ݋ݏ ݅݀݁ݎܲ ∗ܿݏ݋‬
                                                ‫݅ݒ‬
      Sustituyendo los valores (Como no se nos especificó el oscilador,


                                    2,5 ݉ ‫ݏ‬
asumiremos el estándar de 4 MHz:

                    ்ܸெ ோை =                   = 39,0625 ≅ 39
                                      1
                               4 ∗ ቀ4‫ݖܪ ܯ‬ቁ∗ 64


 ்ܸெ ோை = 256 − ܸ݈ܽ
                  ‫݈ܸܽ → 0ܴ ܯ݈ܴܶܽ݁ݎ݋‬
                                  ‫்ܸ − 652 = 0ܴ ܯ݈ܴܶܽ݁ݎ݋‬ெ ோை = 256 − 39 = 217

       Por lo que el valor a cargar en el TMR0= 217




Prof. Luis Zurita                        2                      Microcontroladores I
Paso 2. Diagrama de Flujo:



                                    FORMA A
                      INICIO                        DELAY5MS


                     Configurar               Cargamos valor calculado
                     Puerto B                      en el TIMER0


                 Configurar                        Borramos el
                OPTION_REG                       Señalizador TOIF


                    Inicializamos
                       PORTB
                                                                    NO
                                                     ¿TOIF=1?

                       RB0=1
                                                           SI

                                                       return
                    DELAY5MS



                       RB0=0



                    DELAY5MS




Prof. Luis Zurita                     3                  Microcontroladores I
Paso 3. Lenguaje ensamblador:

FORMA A. POR EXPLORACIÓN (POLLING) DEL BIT TOIF:

              list      P=16F84A
              include   P16F84A.inc

              org       00H
              goto      INICIO

;***************************
;***PROGRAMA PRINCIPAL***
;***************************
INICIO      bsf        STATUS,5           ;Zona de configuraciones
            clrf       TRISB
            movlw      B'00010101'        ;Predivisor= 128
            movwf      OPTION_REG

Prof. Luis Zurita                     4                  Microcontroladores I
bcf      STATUS,5
              clrf     PORTB            ;Inicializamos el Puerto B
              nop

CICLO         bsf      PORTB,0          ;Señal a nivel alto
              call     DELAY2_5MS       ;Llamamos subrutina 2,5 ms
              bcf      PORTB,0          ;Señal a nivel bajo
              call     DELAY2_5MS       ;Llamamos subrutina 2,5 ms
              goto     CICLO            ;Repetimos ciclo

DELAY2_5MS     movlw      .217          ;Cargamos TMR0 con valor
         movwf       TMR0               ;calculado previamente
         bcf         INTCON,2           ;Borramos el señalizador
ESPERA   btfss       INTCON,2           ;Se desbordó el TMR0?
         goto        ESPERA             ;No. Seguimos esperamos
         return                         ;Si, han transcurrido 2,5 ms
         end

FORMA B. POR INTERRUPCIÓN
          list     P=16F84A
          include  P16F84A.inc

              org      00H
              goto     INICIO
              org      04H
              goto     RSI

;********************************
;***RUTINA DE INTERRUPCIÓN***
;********************************
RSI         bcf        INTCON,7 ;Deshabilitamos las interrupciones
            btfss      INTCON,2 ;La causa de la interrupción es desborde
                                  ;del TIMER0 TOIF=1?
            goto       SALIR      ;No, Salimos
            bcf        INTCON,2 ;Si, borramos el señalizador TOIF
            movlw      .01
            xorwf      PORTB,1
            movlw      .217       ;Cargamos el valor del TMR0


Prof. Luis Zurita                  5                   Microcontroladores I
movwf      TMR0     ;Para una nueva temporización
SALIR         bsf        INTCON,7 ;Habilitamos las interrupciones
              retfie

;***************************
;***PROGRAMA PRINCIPAL***
;***************************
INICIO       bsf         STATUS,5
             clrf        TRISB
             movlw       B'00010101'        ;Predivisor= 128
             movwf       OPTION_REG
             movlw       B'10100000'        ; Habilitamos las interrupciones
             movwf       INTCON             ;Con GIE=1 y TOIE=1
             bcf         STATUS,5
             clrf        PORTB              ;Inicializamos el Puerto B
             movlw       .217               ;Cargamos el TMR0 con el
             movwf       TMR0               ;valor previamente calculado
SINFIN       clrwdt                         ;Usamos esta instrucción para
             goto        SINFIN             ;evitar reinicio del programa
;De resto, el programa se queda en este bucle sin fin esperando el desborde
;del TMR0, que ocurrirá según sea el tiempo calculado.
             end

Nota: Generalmente cuando los puertos A y/o B pueden sufrir modificaciones
dentro de la rutina de interrupción, se salva el entorno (Se verán en los
ejemplos 3, 4 y 5), sin embargo para este ejemplo, no se modifican otros bits
de los puertos, por lo que no es necesario salvar el entorno.




Prof. Luis Zurita                      6                   Microcontroladores I
2. Genera la siguiente señal. (Use Timer 0 e interrupción)




        100 ms
                    2 segundos


Paso 1. Enunciado y delimitación del problema:

       Como no se ha especificado por cual pin del microcontrolador saldrá la
señal, asumiremos RB0.

      Cuando se trabaja con el Timer 0, se deben incluir los cálculos que se
hayan realizado para generar el retardo deseado.

       En la gráfica, podemos extraer el período de la señal cuadrada cuyo
valor es de 100 ms, y asumiendo un ciclo de trabajo del 50 %, tendremos que la
señal en alto es igual a la señal en bajo, por lo tanto su duración o período será
de 50 ms.

       Hagamos los cálculos para 50 ms:

       De la fórmula proporcionada en la Unidad IV, despejando nos quedará:

                                           ܶ݁݉ ‫ ݅ݎ݋݌‬ó݊
                                                   ‫݅ܿܽݖ‬
                          ்ܸெ ோை =
                                     4 ∗ ܶ‫0ܴ ܯܶݎ݋ݏ ݅݀݁ݎܲ ∗ܿݏ݋‬
                                                    ‫݅ݒ‬
      Sustituyendo los valores (Como no se nos especificó el oscilador),


                                        50 ݉ ‫ݏ‬
asumiremos el estándar de 4 MHz:

                       ்ܸெ ோை =                    = 195,31 ≅ 195
                                         1
                                  4 ∗ ቀ4‫ݖܪ ܯ‬ቁ∗ 256


்ܸெ ோை = 256 − ܸ݈ܽ‫݈ܸܽ → 0ܴ ܯ݈ܴܶܽ݁ݎ݋‬
                                  ‫்ܸ − 652 = 0ܴ ܯ݈ܴܶܽ݁ݎ݋‬ெ ோை = 256 − 195
             = 61

       Por lo que el valor a cargar en el TMR0= 61




Prof. Luis Zurita                            7                  Microcontroladores I
¿Por qué el predivisor de 256?

      Sencillo, repasando la teoría, recordaremos que el valor del Timer 0 a
cargar no podrá exceder bajo ningún concepto 256. Si colocamos otro
predivisor del rango disponible, el resultado será mayor a 256.

                         ¿Cómo encaro el problema?

       En esta señal solicitada, si nos damos cuenta, la señal cuadrada se
genera 10 veces, dando un tiempo de 1 segundo, si la señal entera, antes de que
se repita el ciclo nuevamente, es de 2 segundos, vale decir que durante 10
veces el tiempo de 100 ms, la señal no bascula u oscila, por lo que podemos
utilizar un contador de temporización para determinar si la señal oscilará o no.

       Durante las primeras 20 temporizaciones de 50 ms, la señal de salida
oscilará, durante las siguientes 20 temporizaciones de 50 ms, la señal de salida
no oscilará, utilizando el contador resolveremos este problema.

                        ¿Y dónde utilizo el contador?

      El desarrollo de la señal se fundamenta en una interrupción por desborde
del Timer0 para los 50 ms calculados, por lo tanto el contador se utilizará
dentro de la rutina de servicio de la interrupción. Veamos el Diagrama de flujo
para entenderlo mejor:




Prof. Luis Zurita                      8                    Microcontroladores I
Paso 2. Diagrama de Flujo:

                    INICIO                                         RSI



                  Declarar                                     Deshabilitar
                 CONTADOR                                     Interrupciones


                 Configurar                                                     NO
                Puerto A y B                                    ¿TOIF=1?             SALIR

                                                                       SI
                Configurar
          INTCON y OPTION_REG                                  Borramos el
                                                             Señalizador TOIF

               Inicializamos
            CONTADOR y PORTB
                                                                ¿Contador       NO            ¿Contador
                                                                  >20?                          >40?
          Cargamos valor calculado
               en el TIMER0                                            SI

                                                              Bascular RB0                   CONTADOR=0

      Para evitar un reinicio del programa
        Limpiamos el Perro Guardián                       CONTADOR=CONTADOR+1
                                              SALIR

                                                                 Habilitar
                                                              Interrupciones


                                                                  retfie




Paso 3. Lenguaje ensamblador:


                list                P=16F84A
                include             P16F84A.inc

CONTADOR                  equ                20H              ;Declaramos el registro

                org                 00H
                goto                INICIO
                org                 04H
                goto                RSI




Prof. Luis Zurita                                     9                              Microcontroladores I
;********************************
;***RUTINA DE INTERRUPCIÓN***
;********************************
RSI         bcf        INTCON,7          ;Deshabilitamos las interrupciones
            btfss      INTCON,2          ;La causa de la interrupción es
                                         ;desborde del TIMER0 TOIF=1?
          goto        SALIR              ;No, Salimos
          bcf         INTCON,2           ;Si, borramos el señalizador TOIF
          movlw       .20
          subwf       CONTADOR,0         ;Contador-20.
          btfsc       STATUS,0           ;C=0? ó Contador < 20?
          goto        NOBASCULA          ;No.
BASCULA movlw         .01                ;Si.
          xorwf       PORTB,1            ;Basculamos (Toggle) RB0
          goto        SUBECONT
NOBASCULA movlw       .40
          subwf       CONTADOR,0         ;Contador-40. Contador>40?
          btfsc       STATUS,0           ;C=0?
          goto        LIMPIAR
SUBECONT incf         CONTADOR,1         ;Contador=Contador+1
          movlw       .61                ;Cargamos el valor del TMR0
          movwf       TMR0               ;Para una nueva temporización
          bsf         INTCON,7           ;Habilitamos las interrupciones
          retfie                         ;Salimos de la RSI
LIMPIAR clrf          CONTADOR           ;Limpiamos el contador
SALIR     bsf         INTCON,7           ;Habilitamos las interrupciones
          retfie                         ;Salimos de la RSI

;***************************
;***PROGRAMA PRINCIPAL***
;***************************
INICIO      bsf        STATUS,5          ;Zona de configuraciones
            clrf       TRISB
            movlw      B'00010111'       ;Predivisor=256
            movwf      OPTION_REG
            movlw      B'10100000'       ;Habilitamos las interrupciones
            movwf      INTCON            ;Con GIE=1 y TOIE=1
            bcf        STATUS,5


Prof. Luis Zurita                   10                  Microcontroladores I
clrf            PORTB
               clrf            CONTADOR
               bcf             PORTB,0
               movlw           .61                                  ;Cargamos el valor del TMRO
               movwf           TMR0                                 ;Previamente calculado
SINFIN         clrwdt
               goto            SINFIN
               end



                                                                                      A
        C1
                                                                                      B
                                    U1
                                                                                      C
        22p                    16                              17
                     X1        15
                                     OSC1/CLKIN          RA0
                                                               18
                     CRYSTAL         OSC2/CLKOUT         RA1                          D
         C2                                                    1
                                                         RA2
                               4                               2
                                     MCLR                RA3
                                                               3
                    VDD                            RA4/T0CKI
         22p                                                           R1
                                                               6
                                                     RB0/INT
 VSS                                                           7
                                                        RB1            330R
                                                               8
                                                        RB2
                                                               9
                                                        RB3
                                                               10
                                                        RB4
                                                               11
                                                                                    D1
                                                        RB5                         LED-GREEN
                                                               12
                                                        RB6
                                                               13
                                                        RB7
                                    PIC16F84A



                                                                              VSS




       Señal en el osciloscopio del Proteus




Prof. Luis Zurita                                        11                         Microcontroladores I
3. Diseñe un control de nivel para un tanque.
   Se tiene un interruptor selector de “MODO”
    Si “MODO” es manual, las bombas se activan sin importar el nivel del
      tanque subterráneo.
    Si “MODO” es automático, la activación de las bombas dependerá de:
       Si el nivel del agua está por debajo del nivel mínimo, se activará la
         bomba 1 hasta que se alcance el nivel Máximo, y procederá a
         apagarse.
       Si el nivel del agua está por encima del nivel mínimo, pero por debajo
         del nivel máximo, se activará la bomba 2 hasta que se alcance el nivel
         Máximo y procederá a apagarse.
       Se debe monitorear si ha cambiado el “MODO”.
       Importante: Si no hay agua en el tanque subterráneo, se deben
         apagar las bombas hasta que el nivel del tanque de trabajo alcance al
         sensor de operación

           MODO
                Manual
               Auto




                                OPERACIÓN
              PARADA




                                  SOLUCIÓN:


Paso 1. Enunciado y delimitación del Hardware: Tenemos el enunciado, sin
embargo debemos delimitar el hardware.
       Para lograr esta tarea debemos asignar los pines de control de Entrada y
de salida, con la finalidad de saber qué vamos a controlar y quién nos dará la
información.
       Como el sensor de parada se va a utilizar por interrupción de cambio de
nivel de RB0, este será configurado como entrada




Prof. Luis Zurita                      12                  Microcontroladores I
Debemos identificar cuales elementos son entrada y cuales salida:

                     ENTRADA
                           ¿Qué    pin SALIDA                                                                                             ¿Qué    pin
                           Asignamos?                                                                                                     Asignamos?
      Interruptor “INICIO” RA0         Bomba B1                                                                                           RB3
      Sensor Máximo        RA1         Bomba B2                                                                                           RB1
      Sensor Mínimo                                       RA2                                      Indicador                              RB2
                                                                                                   Manual
      Sensor Parada                                       RB0                                      Indicador Auto                         RB3
      Sensor Operación                                    RA3


          ¿Y si quiero asignar otros pines? Perfecto, queda a libre elección.

                                              VDD

                                                                                                                      MANUAL
                                                    R1                                             RB4
                                                    1k                                                                AUTO
                                                                                                   RB2
                                                         RA0



                                  VSS
                                         MODO
                                                                                                                           VSS



                                                                                                                                       SENSOR NIVEL ALTO
                                                                                                                                              VDD

                                                                                                                                                          NIVEL MÁXIMO
                                                                                                                                                    R2
                                                                                                                                                    1k

                                                                                                                                        RA1


                                                                                                             TANQUE                                      VSS
                      RB3




                                                               RB1




                                                                          VDD
                                                                                                             PRINCIPAL
            M1              B1           B2              M2                                                                            SENSOR NIVEL BAJO
                                                                                                                                              VDD
          VDD
                                                                                R1B
                                                                                1k    OPERACIÓN
                R1A                                                                                                                                 R3
 PARADA                                                                                                                                             1k
                1k                                        VSS
                     VSS                                              RA3
                                                                                                                                        RA2
                                                                                           VSS
          RB0
                            TANQUE SUBTERRÁNEO
                                                                                                                                                         VSS
VSS
                                         C1
                                          22p                                              U1
                                                                     X1               16
                                                                                            OSC1/CLKIN          RA0
                                                                                                                      17
                                                                                                                                 RA0
                                                                                      15                              18
                                          C2                                                OSC2/CLKOUT         RA1              RA1
                                                                                                                      1
                                                                                                                RA2              RA2
                                                                                      4                               2
                                                                                            MCLR                RA3              RA3
                                                                                                                      3
                                   VSS                               VDD                                  RA4/T0CKI
                                          22p
                                                                                                                      6
                                                                                                            RB0/INT                    RB0
                                                                                                                      7
                                                                                                               RB1                     RB1
                                                                                                                      8
                                                                                                               RB2                     RB2
                                                                                                                      9
                                                                                                               RB3                     RB3
                                                                                                                      10
                                                                                                               RB4                     RB4
                                                                                                                      11
                                                                                                               RB5
                                                                                                                      12
                                                                                                               RB6
                                                                                                                      13
                                                                                                               RB7
                                                                                           PIC16F84A




Prof. Luis Zurita                                                                      13                                              Microcontroladores I
Paso 2. Diagrama de Flujo:




          INICIO                                                      RSI



         Configurar                                               Deshabilitar
          INTCON                                                 Interrupciones


                                                                 Salvar entorno
         Configurar
        Puerto A y B

                                                                                    NO
       Bomba 1= OFF                                                ¿INTF=1?              SALIR
       Bomba 2=OFF
                                                                           SI
   M
                                                                Bomba 1= OFF
                        SI      Bomba 1= ON                     Bomba 2= OFF
         ¿Manual?
                                Bomba 2= ON

       Auto       NO                                                                NO
                                                                   ¿Llegó a
                                                                  Noperación?
           ¿Nivel      NO       ¿Nivel        NO
                                                   M                       SI
          Mínimo?              Máximo?
                                                        SALIR
                  SI                SI                          Restaurar entorno

                             Bomba 1= OFF
       Bomba 1= ON                                                  INTF=0
                             Bomba 2= ON
       Bomba 2= OFF

                                                                    Habilitar
                                                                 Interrupciones
           ¿Nivel      NO
          Máximo?                                                     retfie
                  SI


       Bomba 1= OFF
       Bomba 2= OFF




              M




Prof. Luis Zurita                                  14               Microcontroladores I
Paso 3. Del Diagrama de Flujo al Lenguaje Ensamblador:

              list      P=16F84A
              include   P16F84A.INC
WTEMP         equ       20H                 ;Declaramos registros para
PBTEMP        equ       21H                 ;Utilizarse para salvar y restaurar
STATEMP       equ       22H                 ;El entorno

            org           00H               ;Vector de Inicio
            goto          INICIO
            org           04H               ;Vector de Interrupción
            goto          RSI
;*************************************
;***Rutina de servicio de Interrupción***
;*************************************
RSI         bcf           INTCON,7          ;Interrupciones deshabilitadas
PUSH        movwf         WTEMP             ;Salvamos el entorno
            movf          STATUS,0
            movwf         STATEMP
            movf          PORTB,0
            movwf         PBTEMP
            btfss         INTCON,1          ;INTF=1? Fue por RB0/INT?
            goto          PULL              ;No. Salimos de la RSI
SI          bcf           PORTB,2
            bcf           PORTB,3           ;Bomba 1= OFF
            bcf           PORTB,1           ;Bomba 2= OFF
OPER        btfsc         PORTA,3           ;Nivel de Operación?
            goto          OPER              ;No. Esperamos a que se alcance el
                                            ;nivel de operación
PULL          movf      PBTEMP,0            ;Restauramos el entorno
              movwf     PORTB
              movf      STATEMP,0
              movwf     STATUS
              movf      WTEMP,0
              bcf       INTCON,1            ;Borramos el señalizador
              bsf       INTCON,7            ;Interrupciones habilitadas
              retfie                        ;Salimos de las interrupciones



Prof. Luis Zurita                   15                     Microcontroladores I
;***********************
;***Programa Principal***
;***********************
INICIO      bsf          STATUS,5      ;Vamos al banco 1 a configurar
            movlw        1FH
            movwf        TRISA
            movlw        B'00000001'   ;RB0= Entrada, Resto Salidas
            movwf        TRISB
            movlw        B'10010000'   ;Habilitamos las interrupciones
            movwf        INTCON        ;Con GIE=1 y INTE=1
            movlw        B'01000000'   ;Configuramos el tipo de flanco
            movwf        OPTION_REG    ;De activación de RB0/INT
            bcf          STATUS,5      ;Vamos al banco 0 a trabajar
            clrf         TRISB         ;Bombas=OFF
MODO        btfsc        PORTA,0       ;MODO AUTO?
            goto         AUTO
MANUAL bsf               PORTB,2       ;No. Modo manual= ON
            bcf          PORTB,4       ;Modo Auto=OFF
            bsf          PORTB,3       ;Bomba 1=ON
            bsf          PORTB,1       ;Bomba 2=ON
            goto         MODO
AUTO        btfsc        PORTA,2       ;MÍNIMO?
            goto         DOS           ;Hay Agua
            bsf          PORTB,2       ; Modo Auto=ON
            bcf          PORTB,4       ;Modo Manual=OFF
            bsf          PORTB,3       ;Bomba 1=ON
            bcf          PORTB,1       ;Bomba 2=OFF
CERR        btfss        PORTA,1       ;(NHA)MÁXIMO?
            goto         CERR          ;No Hay Agua
MODO2       bcf          PORTB,2       ; Modo Auto=OFF
            bcf          PORTB,3       ;Bomba 1=ON
            bcf          PORTB,1       ;Bomba 2=OFF
            goto         MODO
DOS         btfsc        PORTA,1       ;(NHA)MÁXIMO?
            goto         MODO          ;HA
MODO1       bcf          PORTB,2       ; Modo Auto=OFF
            bcf          PORTB,3       ;Bomba 1=OFF
            bsf          PORTB,1       ;Bomba 2=ON
            goto         CERR
            end

Prof. Luis Zurita                 16                  Microcontroladores I
4. Realice la automatización de la mezcladora de pinturas, mostrada en la
   figura siguiente, bajo la siguiente secuencia de funcionamiento:

      El sistema de mezclado se inicia al pulsarse “MARCHA”, mediante el cual,
       se activa B1, por espacio de por espacio de 10 minutos. B2, MM, VD, MA
       deben estar apagados. Se enciende un led verde que indica que el
       sistema esta en marcha.
      Transcurrido este tiempo, se enciende B2. B1, MM, VD, MA, deben estar
       apagados.
      B2 se mantiene encendido hasta que el sensor “Nivel alto” se activa,
       mediante el cual se detiene B2, se activa MM. B1, VD, MA, se mantienen
       apagados.
      MM se mantiene encendido por espacio de 2 minutos. B1, B2, VD, MA se
       mantienen apagados. Una vez transcurrido este tiempo, se detiene MM.
      Se activa VD, hasta que se activa el sensor “Nivel bajo”, mediante el
       cual se cierra VD y se activa MA por espacio de 7,5 minutos,
       reiniciándose el proceso nuevamente.
      El sistema cuenta con un pulsador de “PARE”, que al activarse en
       cualquier momento detiene todo el proceso, apagando B1, B2, VD, MM y
       MA, activando un led rojo y apagando al led verde, indicando que existe
       una parada del proceso.
      Para reiniciar el proceso nuevamente en donde se quedó al momento de
       detenerlo, se debe pulsar “REINICIO”.


Nota: Utilice el TMR0 para generar la rutina de 1 segundo.




Prof. Luis Zurita                     17                   Microcontroladores I
MEZCLADORA DE PINTURAS




        PINTURA 1                                        PINTURA 2
                         B1                       B2




                                                        Nivel Alto




                              TANQUE MEZCLADOR
                                                        Nivel Bajo




                                    MM
                                                 VD



              PINTURA                                  PINTURA

               LISTA                                    LISTA


MA




     Prof. Luis Zurita                   18            Microcontroladores I
Nomenclaturas:
B1: Bomba 1
B2: Bomba 2
MM: Motor de Mezclado
VD: Válvula de Desagüe
MA: Motor de Avance

Paso 1. Enunciado y delimitación del Hardware: Tenemos el enunciado, sin
embargo debemos delimitar el hardware.

       Debemos identificar cuales elementos son entrada y cuales salida:

            ENTRADA           ¿Qué    pin   SALIDA        ¿Qué       pin
                              Asignamos?                  Asignamos?
     Pulsador “MARCHA”        RA0           Led Marcha    RB1
     Pulsador “REINICIO”      RA1           Led PARE      RB2
     Sensor Nivel Alto        RA2           Válvula       RB3
                                            Pintura 1
     Sensor Nivel Bajo        RA3           Válvula       RB4
                                            Pintura 2
     Sensor “PARE”            RB0           Motor         RB5
                                            Mezclado
                                            Válvula       RB6
                                            Desagüe
                                            Motor         RB7
                                            Avance




Prof. Luis Zurita                     19                   Microcontroladores I
El circuito quedaría de la siguiente manera:




                                                                         RB3




                                                                                                                RB4
                        VDD

                                                            PINTURA 1                                                       PINTURA 2
                VDD
                                                                                                                              VDD
                              CAJA DE CONTROL                                                                         VSS
                                                                        VSS
                                           MARCHA                                                       NIVEL ALTO
                      RA0
        VDD                                                RB1                        TANQUE                                         RA2

                                           PARE
              RB0
                                                           RB2
                                                                                     MEZCLADOR
                                                                                                                              VDD


                                           REINICIO




                                                                                          RB5
       RA1

                                                                                                        NIVEL BAJO
                                     VSS                                                        RB6
                                                                                                                                    RA3


                                                                         MOTOR MZ                         VÁLVULA DESAGUE

                                                                                                VSS       VSS



                                                          PINTURA                                     PINTURA
                                               RB7




                                                           LISTA                                       LISTA



                                                            MOTOR AVANCE
                                                                               RB7




Prof. Luis Zurita                                    20                 Microcontroladores I
Paso 2. Diagramas de Flujo:
                 INICIO                                   1                                      RSI


          Declarar Registros de                                                              Deshabilitar
                 trabajo                               VD=ON                                Interrupciones


              Configurar                                                                    Salvar entorno
                                              NO
        INTCON y OPTION_REG                           ¿NBAJO
                                                        =0?
               Configurar                                      SI                                              NO
              Puerto A y B                                                                    ¿INTF=1?              SALIR

   A
                                                      VD=OFF                                         SI
       Limpiar Registros en general                   MA=ON
                                                                                              B1=OFF
                y Puerto B                                                                    B2=OFF
                                                                                              MM=OFF
                                                      RET7_5S                                 VD=OFF
                                                                                              MA=OFF
                               NO                                                          LMARCHA=OFF
               ¿MARCHA                                MA=OFF                                 LPARE=ON
                 =0?

                          SI
                                                          1
                 B1=ON                                                                        ¿REINICIO        NO
                B2=OFF                                                                          =0?
               MM=OFF
                VD=OFF                               LEYENDA:                                          SI
               MA=OFF                          VD=Válvula de Desagüe
             LMARCHA=ON                   B1= Válvula de Llenado Pintura 1                   LPARE=OFF
              LPARE=OFF                   B2= Válvula de Llenado Pintura 2
                                               LMARCHA= Led Marcha
                                                  LPARE= Led Pare                          Restaurar entorno
                                              NALTO= Sensor Nivel Alto
               RET13SEG                       NBAJO=Sensor Nivel Bajo
                                                                                               INTF=0
                                                MM= Motor Mezclado
                                                MA= Motor de Avance                SALIR
                B1=OFF                      MARCHA= Pulsador de inicio
                B2=ON                                                                          Habilitar
                                             PARE= Pulsador de parada
             LMARCHA=ON                                                                     Interrupciones
                                      REINICIO= Pulsador de reinicio del proceso
              LPARE=OFF                        Lógica de los sensores=
                                                     0=Activado                                  retfie
                                                   1= Desactivado
       NO       ¿NALTO
                  =0?

                        SI

                B2=OFF
                MM=ON


                 RET1M


                MM=OFF



                    1




Prof. Luis Zurita                                             21                           Microcontroladores I
Paso 3. Lenguaje Ensamblador:
           list       P=16F84A
           include    p16F84A.inc

W_TEMP   equ              20H               ;Declaramos los registros
ESTADO_TEMP         equ   21H               ;A utilizar para salvar y restaurar
PB_TEMP equ               22H               ;El entorno
REGAUX1 equ               23H               ;Registros para generar retardos
REGAUX2 equ               24H               ;Por Software

            org          00H
            goto         INICIO
            org          04H
            goto         RSI
;***********************************
;***Rutina de Servicio de Interrupción***
;***********************************
RSI         btfss        INTCON,1           ;INTF=1?
            goto         SALIR              ;No. Salimos de la Interrupción
            movwf        W_TEMP             ;Salvamos el entorno
            swapf        W_TEMP,1
            movf         STATUS,0
            movwf        ESTADO_TEMP
            movf         PORTB,0
            movwf        PB_TEMP
            movlw        b'00000100'        ;Si. Todo OFF. LPARE= ON
            movwf        PORTB              ;(ROJO=ON)
REINI       btfsc        PORTA,1            ;Se pulsó REINICIO?
            goto         REINI              ;Esperamos
            bcf          INTCON,1           ;Borramos señalizador INTF
            movf         PB_TEMP,0          ;Restauramos el entorno
            movwf        PORTB
            movf         ESTADO_TEMP,0
            movwf        STATUS
            swapf        W_TEMP,0
SALIR       bsf          INTCON,7           ;Habilitamos las interrupciones
            retfie                          ;Salimos de la RSI



Prof. Luis Zurita                   22                     Microcontroladores I
;**********************
;***Programa Principal ***
;**********************
INICIO      bsf          STATUS,5      ;Configuramos los Puertos
            movlw        01FH
            movwf        TRISA         ;PA como entrada
            movlw        b'00000001'
            movwf        TRISB         ;PB como entrada/salida
            movlw        b'01000111'   ;Prescaler= 256
            movwf        OPTION_REG    ;Y configuramos el flanco de RBO/INT
            movlw        b'10010000'   ;GIE= 1 y INTE=1
            movwf        INTCON
            bcf          STATUS,5
            clrf         PORTB         ;Limpiamos el Puerto B
EMPIEZA btfsc            PORTA,0       ;Se pulsó “INICIO”
            goto         EMPIEZA       ;No. Esperamos
REPITE      bsf          PORTB,3       ;B1= ON
            bsf          PORTB,1       ;Led Marcha=ON (Verde= ON)
            bcf          PORTB,2       ;Led PARE=OFF
            bcf          PORTB,4       ;B1=OFF
            bcf          PORTB,5       ;MM=OFF
            bcf          PORTB,6       ;VD=OFF
            bcf          PORTB,7       ;MA=OFF
            call         RET13         ;Llamamos a Subrutina de 13 seg.
            bcf          PORTB,3       ;B1= OFF
            bsf          PORTB,4       ;B2= ON
NAOK        btfsc        PORTA,2       ;Nivel Alto= 0?
            goto         NAOK          ;No. Esperamos
            bcf          PORTB,4       ;B2= OFF
            bsf          PORTB,5       ;MM= ON
            call         RET1M         ;Llamamos subrutina de 1 minuto.
            bcf          PORTB,5       ;MM= OFF
            bsf          PORTB,6       ;VD= ON
NBOK        btfsc        PORTA,3       ;Nivel Bajo= 0?
            goto         NBOK          ;No. Esperamos
            bcf          PORTB,6       ;VD= OFF
            bsf          PORTB,7       ;MA= ON
            call         RET7_5        ;Subrutina de 7,5 seg


Prof. Luis Zurita                 23                   Microcontroladores I
bcf          PORTB,7
            goto         REPITE
;**************************
;***Rutina de 7,5 segundos***
;**************************
RET7_5      bcf          INTCON,2
            movlw        d'114'
            movwf        REGAUX1
RECAR75 bcf              INTCON,2
            clrf         TMR0
ESPERA1     btfss        INTCON,2
            goto         ESPERA1
            decfsz       REGAUX1,1
            goto         RECAR75
            return
;**************************
;***Rutina de 13 segundos***
;**************************
RET13       bcf          INTCON,2
            movlw        d'198'
            movwf        REGAUX1
RECAR13     bcf          INTCON,2
            clrf         TMR0
ESPERA2 btfss            INTCON,2
            goto         ESPERA2
            decfsz       REGAUX1,1
            goto         RECAR13
            return
;**********************
;***Rutina de 1 minuto***
;**********************
RET1M       movlw        d'30' ;Original= 60, se cambió para la simulación
            movwf        REGAUX2
RECAR4      movlw        d'15'
            movwf        REGAUX1
RECAR5      bcf          INTCON,2
            clrf         TMR0
ESPERA4 btfss            INTCON,2


Prof. Luis Zurita                     24                   Microcontroladores I
goto     ESPERA4
              decfsz   REGAUX1,1
              goto     RECAR5
              decfsz   REGAUX2,1
              goto     RECAR4
              return
              end                       ;Fin del programa




Prof. Luis Zurita                  25                 Microcontroladores I
5. Se desea automatizar una lavadora “CHACACHACA” bajo dos modos de
   lavado (uno de Lavado Rápido de 30 minutos de duración y otro de
   Lavado Lento de 50 minutos de duración), el sistema constará de un
   pulsador de “INICIO” y un interruptor selector de modo de lavado.
   Automatice bajo las siguientes condiciones:

      Se elige entre lavado rápido ó lento
      Se presiona “INICIO” y realiza lo siguiente:
      Se llena la CHACACHACA hasta el nivel de agua máximo; lava ó “bate”
       por la mitad del tiempo; se detiene; se vacía; se llena otra vez de agua;
       lava ó “bate” hasta que falten tres minutos; se detiene; se vacía; se llena
       otra vez de agua; lava ó “bate” por el resto del tiempo; se vacía
       nuevamente y emite una alarma sonora por espacio de 10 segundos; y se
       detiene a la espera de un nuevo proceso de lavado.
      Si no hay agua en el depósito de agua, se detiene el lavado, se cierra la
       válvula de llenado y se emite una alarma sonora hasta que se solucione el
       problema agregando agua al depósito hasta el nivel mínimo de lavado.
      ML: Motor de Lavadora. VD: Válvula de Desagüe. VLL: Válvula de
       Llenado.
      Nmínimo, Nmáximo, Nmínimo de lavado, Nivel de alarma: Sensores
       de nivel.




Prof. Luis Zurita                      26                    Microcontroladores I
Nota: Utilice el TMR0 para generar la rutina de 1 segundo.

Paso 1. Enunciado y delimitación del Hardware: Tenemos el enunciado, sin
embargo debemos delimitar el hardware.

       Debemos identificar cuales elementos son entrada y cuales salida:

            ENTRADA        ¿Qué    pin SALIDA             ¿Qué       pin
                           Asignamos?                     Asignamos?
     Interruptor “MODO” RA0            Motor    de        RB1
     de Lavado                         Lavadora
     Pulsador “INICIO”     RA1         Válvula de         RB2
                                       Desagüe
     Sensor Nivel Mínimo   RA2         Válvula de         RB3
                                       Llenado
     Sensor Nivel Máximo   RA3         Led                RB4
                                       “INICIO”
     Sensor Nivel Mínimo RA4           Led                RB5
     de lavado                         “Rápido”
     Sensor     Nivel   de RB0         Led “Lento”        RB6
     Alarma
                                       ALARMA             RB7


      Como podemos observar, de manera común, se asignan las entradas al
puerto A y las salidas al puerto B.




Prof. Luis Zurita                     27                   Microcontroladores I
El circuito del hardware a simular quedaría de la siguiente manera:

                                                                                                                          VDD




                                                                    RB7
                                                                                                                   RA4
                                                                                                                                      VSS



                                                     ALARMA                                                         NMÍNIMO DE LAVADO
                                                                                                                                VDD
                                                                                                   DEPÓSITO
                                                               VSS                                 DE AGUA




                                                                                       RB3
                                                                                                                    RB0
                                                                                                                                        VSS
                                                     VÁLVULA DE LLENADO
                                                                                                                    NIVEL DE ALARMA
                          PANEL DE CONTROL
                                                                                                      VDD
                            VDD
                                                                                             VSS


                                   ON                                            NIVEL ALTO
                      RA1
          INICIO                           RB4          LAVADORA                                             RA3

                            VDD   RÁPIDO
                                           RB5
                                                                                                      VDD
                                  LENTO
          LAVADO    RA0
                                           RB6
                                                              RB1




                                                                                 NIVEL BAJO
                                                                      RB2
                                                                                                            RA2


                                                 MOTOR MZ                         VÁLVULA DESAGUE

                                                                     VSS         VSS




Prof. Luis Zurita                          28                               Microcontroladores I
Paso 2. Diagramas de Flujo:

                    INICIO                                   LEYENDA:                              1
                                                      VD=Válvula de Desagüe
                                                      VLL= Válvula de Llenado
             Declarar Registros de                  NMAX= Sensor Nivel Máximo
                    trabajo                          NMIN=Sensor Nivel Mínimo                   VLL=OFF
                                               NMINLAV=Sensor Nivel Mínimo de Lavado           MotorL=OFF
                                                      MotorL= Motor Lavadora                     VD=ON
                  Configurar
                                                    CONTA=Contador de minutos
            INTCON y OPTION_REG
                                               CONTAMEDIO=Contador precargado con la
                                                          mitad del tiempo
                  Configurar                    CONTALAV=Contador precargado con el     NO
                 Puerto A y B                          tiempo total de lavada                  ¿NMIN=0?
                                                      Lógica de los sensores=
   A
                                                             0=Activado                                SI
        Limpiar Registros en general                      1= Desactivado
                 y Puerto B                                                                     VD=OFF
                                                                                                VLL=ON
                                (Lento)        Led Rápido=OFF
                                  NO            Led Lento=ON
                   ¿INTLAV?
                                                ContaMed=12                             NO
                                                 ContaLav=25                                   ¿NMAX=0?
              (Rápido)   SI
                                                                                                       SI
               Led Rápido=ON
               Led Lento=OFF                                                                   VLL=OFF
                ContaMed=22                                                                    MotorL=ON
                ContaLav=45

                               SI
              NO                                                                        CONTALAV=CONTALAV-3
                    ¿INICIO?

                                                                                                RET1MIN


                  VD=OFF
                Led Inicio=ON                                                                CONTA=CONTA+1
                  VLL=ON


                                                                                       NO       ¿CONTA=
        NO                                                                                     CONTALAV?
                   ¿NMAX=0?

                         SI                                                                            SI

                   VLL=OFF                                                                      VLL=OFF
                   MotorL=ON                                                                   MotorL=OFF
                                                                                                 VD=ON

                   RET1MIN

                                                                                        NO
                                                                                                ¿NMIN=0?
              CONTA=CONTA+1

                                                                                                        SI

       NO        ¿CONTA=                  SI
                                                   1                                               2
               CONTAMEDIO?




Prof. Luis Zurita                                               29                          Microcontroladores I
2                                        RSI

                        SI
                                                         Deshabilitar
             VD=OFF                                     Interrupciones
             VLL=ON
                                                        Salvar entorno


     NO
            ¿NMAX=0?                                                       NO
                                                          ¿INTF=1?              SALIR
                        SI
                                                                 SI
            VLL=OFF                                     ALARMA=ON
            MotorL=ON                                   MotorL= OFF
                                                         VLL= OFF
                                                          VD=OFF
             RET1MIN


                                                           ¿Llegó a        NO
             RET1MIN                                      NMINLAV?

                                                                  SI

             RET1MIN                                    ALARMA=OFF
                                               SALIR

             VLL=OFF                                   Restaurar entorno
            MotorL=OFF
              VD=ON
                                                           INTF=0


                                                           Habilitar
      NO                                                Interrupciones
             ¿NMIN=0?

                        SI                                   retfie

            RET10SEG
                             Vamos al Inicio
                              del programa
                             para una nueva
                    A             lavada




Prof. Luis Zurita                      30                        Microcontroladores I
Paso 3. Lenguaje Ensamblador:
              LIST       P=16F84A
              INCLUDE    P16F84A.INC
                                           ;Declaraciones de registros:
RET4     EQU             2DH               ;Registros para generar
RET5     EQU             2EH               ;Rutinas de retardo
RET6     EQU             2FH
W_TEMP               EQU       30H         ;Registros para salvar el
STATUS_TEMP          EQU       31H         ;Entorno durante la interrupción
PA_TEMP              EQU       32H
PB_TEMP              EQU       33H
PC_TEMP              EQU       34H
CONTA                EQU       35H          ;Registro contador de comparación
CONTAMED             EQU 20H         ;Registro que se cargará con el tiempo
                                     ;medio de la duración del lavado
CONTALAV             EQU 21H         ;Registro que posee el tiempo total de
                                     ;lavado
CONTASEG             EQU 22H         ;Registro contador de segundos

            ORG          00H
            GOTO         INICIO
            ORG          04H
            GOTO         RUTIN
;***********************************
;***Rutina de Servicio de Interrupción***
;***********************************
RUTIN       BCF          INTCON,7 ;Deshabilitamos las interrupciones
            BTFSS        INTCON,5
            GOTO         SALIR
            MOVWF        W_TEMP           ;Salvamos el entorno durante la
            SWAPF        W_TEMP,1 ;Interrupción al modificarse el Puerto B
            MOVF         STATUS,0         ;dentro de la RSI
            MOVWF        STATUS_TEMP
            MOVF         PORTA,0
            MOVWF        PA_TEMP
            MOVF         PORTB,0
            MOVWF        PB_TEMP
ESPERA      BSF          PORTB,7          ;SSONORA=ON

Prof. Luis Zurita                    31                   Microcontroladores I
BCF       PORTB,1         ;ML=OFF
              BCF       PORTB,2         ;VD=OFF
              BCF       PORTB,3         ;VLL=OFF
              BTFSC     PORTA,4         ;NMINLAV?
              GOTO      ESPERA
              BCF       PORTB,7         ;SSONORA=OFF
POP           MOVF      PB_TEMP,0
              MOVWF     PORTB
              MOVF      PA_TEMP,0
              MOVWF     PORTA
              MOVF      STATUS_TEMP,0
              MOVWF     STATUS
              SWAPF     W_TEMP,1
              MOVF      W_TEMP,0
              BCF       INTCON,1        ;INTF=0
SALIR         BSF       INTCON,7        ;GIE=1
              RETFIE

;*********************
;***Programa Principal***
;*********************

INICIO   BSF            STATUS,5        ;Configuramos los Puertos A y B
         MOVLW          1FH
         MOVWF          TRISA
         MOVLW          B'00000001'     ;RB0 como entrada
         MOVWF          TRISB
         BCF            OPTION_REG,6    ;Configuramos el flanco de RB0/INT
         MOVLW          B'10010000'     ;Activamos GIE y INTE
         MOVWF          INTCON
         BCF            STATUS,5
NUEVOLAV CLRF           CONTASEG        ;Inicializamos los registros
         CLRF           CONTA           ;Y el Puerto B
         CLRF           PORTB
MODO     BTFSS          PORTA,0         ;¿Qué MODO es?
         GOTO           MODOLENTO       ;Ir al modo lento
         BSF            PORTB,5         ;Modo RÁPIDO= ON
         BCF            PORTB,6         ;LENTO OFF


Prof. Luis Zurita                32                    Microcontroladores I
MOVLW      D'12'           ;Precargamos los valores
         MOVWF      CONTAMED        ;Para el lavado rápido
         MOVLW      D'25'
         MOVWF      CONTALAV
         GOTO       MARCHA   ;Va a preguntar si se pulsó INICIO
MODOLENTO BCF       PORTB,5         ;Activamos el MODO lento
         BSF        PORTB,6
         MOVLW      D'22'           ;Y precargamos los valores
         MOVWF      CONTAMED        ;de este modo
         MOVLW      D'45'
         MOVWF      CONTALAV
         GOTO       MARCHA
MARCHA   BTFSC      PORTA,1         ;¿INICIO?
         GOTO       MODO            ;No, vamos a explorar el MODO
ESPLL1   BSF        PORTB,4         ;LEDINI=ON
         BSF        PORTB,3         ;VLL ON
         BTFSC      PORTA,3         ;NMAX?
         GOTO       ESPLL1
         BCF        PORTB,3         ;VLL OFF
         BSF        PORTB,1         ;ML ON
SUBEMIN1
         CALL       RET1s    ;PARA SIMULACION, ES UN MINUTO
         INCF       CONTA,1
         MOVF       CONTAMED,0
         SUBWF      CONTA,0        ;CONTA=CONTAMED?
         BTFSS      STATUS,2 ;Z=1?
         GOTO       SUBEMIN1
ESPVAC   BCF        PORTB,3        ;VLL OFF
         BCF        PORTB,1        ;ML OFF
         BSF        PORTB,2        ;VD ON
         BTFSC      PORTA,2        ;NMIN?
         GOTO       ESPVAC
ESPLL2   BCF        PORTB,2        ;VD OFF
         BSF        PORTB,3        ;VLL ON
         BTFSC      PORTA,3        ;NMAX=0?
         GOTO       ESPLL2
         BCF        PORTB,3        ;VLL OFF
         BSF        PORTB,1        ;ML ON


Prof. Luis Zurita              33                 Microcontroladores I
DECF       CONTALAV,1
         DECF       CONTALAV,1
         DECF       CONTALAV,1     ;A FALTA DE 3 MINUTOS
SUBEMIN2 CALL       RET1s    ;PARA SIMULACION, ES UN MINUTO
         INCF       CONTA,1
         MOVF       CONTALAV,0
         SUBWF      CONTA,0        ;CONTA=CONTALAV?
         BTFSS      STATUS,2       ;Z=1?
         GOTO       SUBEMIN2
ESPVAC2 BCF         PORTB,3        ;VLL OFF
         BCF        PORTB,1        ;ML OFF
         BSF        PORTB,2        ;VD ON
         BTFSC      PORTA,2        ;NMIN?
         GOTO       ESPVAC2
ESPLL3   BCF        PORTB,2        ;VD OFF
         BSF        PORTB,3        ;VLL ON
         BTFSC      PORTA,3        ;NMAX?
         GOTO       ESPLL3
         BCF        PORTB,3        ;VLL OFF
         BSF        PORTB,1        ;ML ON
         CALL       RET1s
         CALL       RET1s    ;ESPERA 3 MINUTOS FINALES
         CALL       RET1s    ;(SE SIMULA CON 1 SEG)
ESPVAC3 BCF         PORTB,3        ;VLL OFF
         BCF        PORTB,1        ;ML OFF
         BSF        PORTB,2        ;VD ON
         BTFSC      PORTA,2        ;NMIN?
         GOTO       ESPVAC3
         BCF        PORTB,2        ;VD OFF
PITAZO   BSF        PORTB,7        ;ALARMA SONORA ON
         CALL       RET1s
         INCF       CONTASEG,1
         MOVLW      D'10'
         SUBWF      CONTASEG,0
         BTFSS      STATUS,2       ;10 SEG?
         GOTO       PITAZO
         BCF        PORTB,7        ;ALARMA SONORA OFF
         GOTO       NUEVOLAV


Prof. Luis Zurita            34              Microcontroladores I
;***************************************
;***Rutina de 1 segundo. Generada por PDEL***
;***************************************
RET1s         movlw     .14         ;   1 set numero de repeticion (C)
               movwf    RET4        ;   1|
PLoop0        movlw     .72         ;   1 set numero de repeticion (B)
              movwf     RET5        ;   1|
PLoop1        movlw     .247        ;   1 set numero de repeticion (A)
              movwf     RET6        ;   1|
PLoop2        clrwdt                ;   1 clear watchdog
              decfsz    RET6, 1     ;   1 + (1) es el tiempo 0 ? (A)
              goto      PLoop2      ;   2 no, loop
              decfsz    RET5, 1     ;   1 + (1) es el tiempo 0 ? (B)
              goto      PLoop1      ;   2 no, loop
              decfsz    RET4, 1     ;   1 + (1) es el tiempo 0 ? (C)
              goto      PLoop0      ;   2 no, loop
PDelL1        goto      PDelL2      ;   2 ciclos delay
PDelL2        clrwdt                ;   1 ciclo delay
              return                ;   2+2 Fin.

              END




Prof. Luis Zurita                   35                     Microcontroladores I

Weitere ähnliche Inhalte

Was ist angesagt?

Pic16f877 guia detallada parte2
Pic16f877 guia detallada parte2Pic16f877 guia detallada parte2
Pic16f877 guia detallada parte2Alejandro Garcia
 
Amplificadores multiplicadores
Amplificadores multiplicadoresAmplificadores multiplicadores
Amplificadores multiplicadoresZaiida Lozano
 
El transistor bjt
El transistor bjtEl transistor bjt
El transistor bjtFenix Alome
 
Ejercicios resueltos con diodos
Ejercicios resueltos con diodosEjercicios resueltos con diodos
Ejercicios resueltos con diodosvstiven18
 
6 aplicaciones del transistor bjt
6 aplicaciones  del transistor bjt6 aplicaciones  del transistor bjt
6 aplicaciones del transistor bjtAndresChaparroC
 
Tema 7:Amplificador Diferencial
Tema 7:Amplificador DiferencialTema 7:Amplificador Diferencial
Tema 7:Amplificador DiferencialHéctor
 
Configuración de polarización fija y la auto polarización en el JFET
Configuración de polarización fija y la auto polarización en el JFETConfiguración de polarización fija y la auto polarización en el JFET
Configuración de polarización fija y la auto polarización en el JFETVidalia Montserrat Colunga Ramirez
 
Examen micros t1_06_solucion
Examen micros t1_06_solucionExamen micros t1_06_solucion
Examen micros t1_06_solucionJair BG
 
TRANSFORMADA DE LAPLACE PARA CIRCUITOS ELÉCTRICOS
TRANSFORMADA DE LAPLACE PARA CIRCUITOS ELÉCTRICOSTRANSFORMADA DE LAPLACE PARA CIRCUITOS ELÉCTRICOS
TRANSFORMADA DE LAPLACE PARA CIRCUITOS ELÉCTRICOSIsrael Magaña
 

Was ist angesagt? (20)

Pic16f877 guia detallada parte2
Pic16f877 guia detallada parte2Pic16f877 guia detallada parte2
Pic16f877 guia detallada parte2
 
Sesión 6: Teoría Básica de Transistores BJT
Sesión 6: Teoría Básica de Transistores BJTSesión 6: Teoría Básica de Transistores BJT
Sesión 6: Teoría Básica de Transistores BJT
 
Amplificadores multiplicadores
Amplificadores multiplicadoresAmplificadores multiplicadores
Amplificadores multiplicadores
 
El PIC16F84
El PIC16F84El PIC16F84
El PIC16F84
 
El transistor bjt
El transistor bjtEl transistor bjt
El transistor bjt
 
Ejercicios resueltos con diodos
Ejercicios resueltos con diodosEjercicios resueltos con diodos
Ejercicios resueltos con diodos
 
Sesion 7 S Dbos
Sesion 7 S DbosSesion 7 S Dbos
Sesion 7 S Dbos
 
Temp555
Temp555Temp555
Temp555
 
Practica 7 Flip Flop
Practica 7 Flip FlopPractica 7 Flip Flop
Practica 7 Flip Flop
 
Ac ac monofasicos
Ac ac monofasicosAc ac monofasicos
Ac ac monofasicos
 
6 aplicaciones del transistor bjt
6 aplicaciones  del transistor bjt6 aplicaciones  del transistor bjt
6 aplicaciones del transistor bjt
 
2.7. Recortadores con Diodos
2.7. Recortadores con Diodos2.7. Recortadores con Diodos
2.7. Recortadores con Diodos
 
Función de transferencia
Función de transferenciaFunción de transferencia
Función de transferencia
 
Informe 4 digitales
Informe 4 digitalesInforme 4 digitales
Informe 4 digitales
 
Tema 7:Amplificador Diferencial
Tema 7:Amplificador DiferencialTema 7:Amplificador Diferencial
Tema 7:Amplificador Diferencial
 
Configuración de polarización fija y la auto polarización en el JFET
Configuración de polarización fija y la auto polarización en el JFETConfiguración de polarización fija y la auto polarización en el JFET
Configuración de polarización fija y la auto polarización en el JFET
 
Examen micros t1_06_solucion
Examen micros t1_06_solucionExamen micros t1_06_solucion
Examen micros t1_06_solucion
 
Guia osciladores pic18f4550
Guia osciladores pic18f4550Guia osciladores pic18f4550
Guia osciladores pic18f4550
 
TRANSFORMADA DE LAPLACE PARA CIRCUITOS ELÉCTRICOS
TRANSFORMADA DE LAPLACE PARA CIRCUITOS ELÉCTRICOSTRANSFORMADA DE LAPLACE PARA CIRCUITOS ELÉCTRICOS
TRANSFORMADA DE LAPLACE PARA CIRCUITOS ELÉCTRICOS
 
Timer 0 - Pic16F877A
Timer 0 - Pic16F877ATimer 0 - Pic16F877A
Timer 0 - Pic16F877A
 

Andere mochten auch

Procesos de fabricación de baldosas
Procesos de fabricación de baldosasProcesos de fabricación de baldosas
Procesos de fabricación de baldosasCarlos0601
 
Sesion n°1 a introd. a los procesos industriales
Sesion n°1 a introd. a los procesos industrialesSesion n°1 a introd. a los procesos industriales
Sesion n°1 a introd. a los procesos industrialesPamela Ramos
 
Proteus isis -manual pt
Proteus   isis -manual ptProteus   isis -manual pt
Proteus isis -manual ptayeshakanwal
 
Manual del proteus
Manual del proteusManual del proteus
Manual del proteusayreonmx
 
Pcb design using proteus
Pcb design using proteusPcb design using proteus
Pcb design using proteusMashood
 

Andere mochten auch (6)

Procesos de fabricación de baldosas
Procesos de fabricación de baldosasProcesos de fabricación de baldosas
Procesos de fabricación de baldosas
 
Sesion n°1 a introd. a los procesos industriales
Sesion n°1 a introd. a los procesos industrialesSesion n°1 a introd. a los procesos industriales
Sesion n°1 a introd. a los procesos industriales
 
Proteus c01
Proteus c01Proteus c01
Proteus c01
 
Proteus isis -manual pt
Proteus   isis -manual ptProteus   isis -manual pt
Proteus isis -manual pt
 
Manual del proteus
Manual del proteusManual del proteus
Manual del proteus
 
Pcb design using proteus
Pcb design using proteusPcb design using proteus
Pcb design using proteus
 

Ähnlich wie GUÍA DE EJERCICIOS RESUELTOS TEMA 4

Examen 4 intensivo micro
Examen 4 intensivo microExamen 4 intensivo micro
Examen 4 intensivo microLuis Zurita
 
Ejemplos De Timer E Interrupcion
Ejemplos De Timer E InterrupcionEjemplos De Timer E Interrupcion
Ejemplos De Timer E InterrupcionLuis Zurita
 
Ejemplo varias interrupciones
Ejemplo varias interrupcionesEjemplo varias interrupciones
Ejemplo varias interrupcionesLuis Zurita
 
Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador
Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizadorLab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador
Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizadorDaniel Pardo
 
Curso Micro Tema 3
Curso Micro Tema 3Curso Micro Tema 3
Curso Micro Tema 3Luis Zurita
 
Microcontroladores Registro Timer_0
Microcontroladores Registro Timer_0 Microcontroladores Registro Timer_0
Microcontroladores Registro Timer_0 electro_pic
 
Curso Micro Tema 4
Curso Micro Tema 4Curso Micro Tema 4
Curso Micro Tema 4Luis Zurita
 
TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"Diego Rojas Ruiz
 
Microprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersMicroprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersmarco calderon layme
 
Interrupciones y Temporizadores pucesi
Interrupciones y Temporizadores   pucesiInterrupciones y Temporizadores   pucesi
Interrupciones y Temporizadores pucesiDavid Narváez
 
Lab# 2 - Temporizador.pdf
Lab# 2 - Temporizador.pdfLab# 2 - Temporizador.pdf
Lab# 2 - Temporizador.pdfsopitamani1
 
Proyectos con el pic16 f84 cekit
Proyectos con el pic16 f84 cekitProyectos con el pic16 f84 cekit
Proyectos con el pic16 f84 cekitEnrique Trascastro
 
Arduino: Reporte de diseño controlador acuario con Arduino
Arduino: Reporte de diseño controlador acuario con ArduinoArduino: Reporte de diseño controlador acuario con Arduino
Arduino: Reporte de diseño controlador acuario con ArduinoSANTIAGO PABLO ALBERTO
 
Ejercicio pic assembler
Ejercicio pic assemblerEjercicio pic assembler
Ejercicio pic assemblerAlexis Rivera
 

Ähnlich wie GUÍA DE EJERCICIOS RESUELTOS TEMA 4 (20)

Examen 4 intensivo micro
Examen 4 intensivo microExamen 4 intensivo micro
Examen 4 intensivo micro
 
In terrupciones pic
In terrupciones picIn terrupciones pic
In terrupciones pic
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Uso del tmr0
Uso del tmr0Uso del tmr0
Uso del tmr0
 
Ejemplos De Timer E Interrupcion
Ejemplos De Timer E InterrupcionEjemplos De Timer E Interrupcion
Ejemplos De Timer E Interrupcion
 
Ejemplo varias interrupciones
Ejemplo varias interrupcionesEjemplo varias interrupciones
Ejemplo varias interrupciones
 
Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador
Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizadorLab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador
Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador
 
Curso Micro Tema 3
Curso Micro Tema 3Curso Micro Tema 3
Curso Micro Tema 3
 
Temporizador timer0
Temporizador timer0Temporizador timer0
Temporizador timer0
 
Microcontroladores Registro Timer_0
Microcontroladores Registro Timer_0 Microcontroladores Registro Timer_0
Microcontroladores Registro Timer_0
 
Curso Micro Tema 4
Curso Micro Tema 4Curso Micro Tema 4
Curso Micro Tema 4
 
TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"
 
Microprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersMicroprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timers
 
Interrupciones y Temporizadores pucesi
Interrupciones y Temporizadores   pucesiInterrupciones y Temporizadores   pucesi
Interrupciones y Temporizadores pucesi
 
Lab# 2 - Temporizador.pdf
Lab# 2 - Temporizador.pdfLab# 2 - Temporizador.pdf
Lab# 2 - Temporizador.pdf
 
PROYECTOS CON PIC 16F84
PROYECTOS CON PIC 16F84PROYECTOS CON PIC 16F84
PROYECTOS CON PIC 16F84
 
Proyectos con el pic16 f84 cekit
Proyectos con el pic16 f84 cekitProyectos con el pic16 f84 cekit
Proyectos con el pic16 f84 cekit
 
Proye84
Proye84Proye84
Proye84
 
Arduino: Reporte de diseño controlador acuario con Arduino
Arduino: Reporte de diseño controlador acuario con ArduinoArduino: Reporte de diseño controlador acuario con Arduino
Arduino: Reporte de diseño controlador acuario con Arduino
 
Ejercicio pic assembler
Ejercicio pic assemblerEjercicio pic assembler
Ejercicio pic assembler
 

Mehr von Luis Zurita

TALLER NORMAS APA
TALLER NORMAS APATALLER NORMAS APA
TALLER NORMAS APALuis Zurita
 
PROTOCOLO MODBUS
PROTOCOLO MODBUSPROTOCOLO MODBUS
PROTOCOLO MODBUSLuis Zurita
 
Guía rápidalcd y teclado
Guía rápidalcd y tecladoGuía rápidalcd y teclado
Guía rápidalcd y tecladoLuis Zurita
 
Grupos micro2 13
Grupos micro2 13Grupos micro2 13
Grupos micro2 13Luis Zurita
 
Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreLuis Zurita
 
Notas def electronica
Notas def electronicaNotas def electronica
Notas def electronicaLuis Zurita
 
Notas proyecto3 iyc
Notas proyecto3 iycNotas proyecto3 iyc
Notas proyecto3 iycLuis Zurita
 
Notas definitivas iyc2013
Notas definitivas iyc2013Notas definitivas iyc2013
Notas definitivas iyc2013Luis Zurita
 
Proyecto 2 electronica
Proyecto 2 electronicaProyecto 2 electronica
Proyecto 2 electronicaLuis Zurita
 

Mehr von Luis Zurita (20)

TALLER NORMAS APA
TALLER NORMAS APATALLER NORMAS APA
TALLER NORMAS APA
 
PROTOCOLO MODBUS
PROTOCOLO MODBUSPROTOCOLO MODBUS
PROTOCOLO MODBUS
 
Guía rápidalcd y teclado
Guía rápidalcd y tecladoGuía rápidalcd y teclado
Guía rápidalcd y teclado
 
Pevmicroi ieo
Pevmicroi ieoPevmicroi ieo
Pevmicroi ieo
 
Pevmicroii13 2
Pevmicroii13 2Pevmicroii13 2
Pevmicroii13 2
 
Pevmicro1 t2 13
Pevmicro1 t2 13Pevmicro1 t2 13
Pevmicro1 t2 13
 
Pev electronica
Pev electronicaPev electronica
Pev electronica
 
Grupos micro2 13
Grupos micro2 13Grupos micro2 13
Grupos micro2 13
 
Pevmicro1 t2 13
Pevmicro1 t2 13Pevmicro1 t2 13
Pevmicro1 t2 13
 
Micro2 tema 5
Micro2 tema 5Micro2 tema 5
Micro2 tema 5
 
Micro2 tema 4
Micro2 tema 4Micro2 tema 4
Micro2 tema 4
 
Micro2 tema 3
Micro2 tema 3Micro2 tema 3
Micro2 tema 3
 
Micro2 tema 2
Micro2 tema 2Micro2 tema 2
Micro2 tema 2
 
Micro2 tema 1
Micro2 tema 1Micro2 tema 1
Micro2 tema 1
 
Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladore
 
Pevmicroii13 2
Pevmicroii13 2Pevmicroii13 2
Pevmicroii13 2
 
Notas def electronica
Notas def electronicaNotas def electronica
Notas def electronica
 
Notas proyecto3 iyc
Notas proyecto3 iycNotas proyecto3 iyc
Notas proyecto3 iyc
 
Notas definitivas iyc2013
Notas definitivas iyc2013Notas definitivas iyc2013
Notas definitivas iyc2013
 
Proyecto 2 electronica
Proyecto 2 electronicaProyecto 2 electronica
Proyecto 2 electronica
 

Kürzlich hochgeladen

EL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLA
EL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLAEL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLA
EL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
UNIDAD DE APRENDIZAJE MARZO 2024.docx para educacion
UNIDAD DE APRENDIZAJE MARZO 2024.docx para educacionUNIDAD DE APRENDIZAJE MARZO 2024.docx para educacion
UNIDAD DE APRENDIZAJE MARZO 2024.docx para educacionCarolVigo1
 
Kirpi-el-erizo libro descargar pdf 1 link
Kirpi-el-erizo libro descargar pdf 1 linkKirpi-el-erizo libro descargar pdf 1 link
Kirpi-el-erizo libro descargar pdf 1 linkMaximilianoMaldonado17
 
plan espacios inspiradores para nivel primaria
plan espacios inspiradores para nivel primariaplan espacios inspiradores para nivel primaria
plan espacios inspiradores para nivel primariaElizabeth252489
 
Adoración sin fin al Dios Creador por sus bendiciones
Adoración sin fin al Dios Creador por sus bendicionesAdoración sin fin al Dios Creador por sus bendiciones
Adoración sin fin al Dios Creador por sus bendicionesAlejandrino Halire Ccahuana
 
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didáctica
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didácticaLa poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didáctica
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didácticaIGNACIO BALLESTER PARDO
 
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdf
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdfGUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdf
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdfNELLYKATTY
 
Programación Anual 2024 - CIENCIAS SOCIALES.docx
Programación Anual 2024  - CIENCIAS SOCIALES.docxProgramación Anual 2024  - CIENCIAS SOCIALES.docx
Programación Anual 2024 - CIENCIAS SOCIALES.docxJhordanBenitesSanche1
 
la forma de los objetos expresión gráfica preescolar
la forma de los objetos expresión gráfica preescolarla forma de los objetos expresión gráfica preescolar
la forma de los objetos expresión gráfica preescolarCa Ut
 
Escrito administrativo técnico y comerciales
Escrito administrativo técnico y comercialesEscrito administrativo técnico y comerciales
Escrito administrativo técnico y comercialesmelanieteresacontrer
 
Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023Ivie
 
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLA
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLAEL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLA
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Recursos Tecnológicos, página AIP-CRT 2 0 2 4.pdf
Recursos Tecnológicos, página  AIP-CRT 2 0 2 4.pdfRecursos Tecnológicos, página  AIP-CRT 2 0 2 4.pdf
Recursos Tecnológicos, página AIP-CRT 2 0 2 4.pdfNELLYKATTY
 
PPT Protocolo de desregulación emocional.pptx
PPT Protocolo de desregulación emocional.pptxPPT Protocolo de desregulación emocional.pptx
PPT Protocolo de desregulación emocional.pptxKarenSepulveda23
 
U2_EA1_descargable TIC 2 SEM VIR PRE.pdf
U2_EA1_descargable TIC 2 SEM VIR PRE.pdfU2_EA1_descargable TIC 2 SEM VIR PRE.pdf
U2_EA1_descargable TIC 2 SEM VIR PRE.pdfJavier Correa
 
1° GRADO UNIDAD DE APRENDIZAJE 0 - 2024.pdf
1° GRADO UNIDAD DE APRENDIZAJE 0 - 2024.pdf1° GRADO UNIDAD DE APRENDIZAJE 0 - 2024.pdf
1° GRADO UNIDAD DE APRENDIZAJE 0 - 2024.pdfdiana593621
 
Los escritos administrativos, técnicos y comerciales
Los escritos administrativos, técnicos y comercialesLos escritos administrativos, técnicos y comerciales
Los escritos administrativos, técnicos y comercialeshanda210618
 
5°-CARPETA PEDAGÓGICA 2024-MAESTRAS DE PRIMARIA PERÚ-978387435.doc
5°-CARPETA PEDAGÓGICA 2024-MAESTRAS DE PRIMARIA PERÚ-978387435.doc5°-CARPETA PEDAGÓGICA 2024-MAESTRAS DE PRIMARIA PERÚ-978387435.doc
5°-CARPETA PEDAGÓGICA 2024-MAESTRAS DE PRIMARIA PERÚ-978387435.docGLADYSPASTOR
 
PROGRAMACIÓN CURRICULAR ANUAL DE CIENCIA Y TECNOLOGÍA
PROGRAMACIÓN CURRICULAR ANUAL DE CIENCIA Y TECNOLOGÍAPROGRAMACIÓN CURRICULAR ANUAL DE CIENCIA Y TECNOLOGÍA
PROGRAMACIÓN CURRICULAR ANUAL DE CIENCIA Y TECNOLOGÍAJoaqunSolrzano
 

Kürzlich hochgeladen (20)

Actividad de bienestar docente 2016 Pereira
Actividad de bienestar docente 2016 PereiraActividad de bienestar docente 2016 Pereira
Actividad de bienestar docente 2016 Pereira
 
EL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLA
EL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLAEL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLA
EL ECLIPSE DE LA PAZ (cuento literario). Autor y diseñador JAVIER SOLIS NOYOLA
 
UNIDAD DE APRENDIZAJE MARZO 2024.docx para educacion
UNIDAD DE APRENDIZAJE MARZO 2024.docx para educacionUNIDAD DE APRENDIZAJE MARZO 2024.docx para educacion
UNIDAD DE APRENDIZAJE MARZO 2024.docx para educacion
 
Kirpi-el-erizo libro descargar pdf 1 link
Kirpi-el-erizo libro descargar pdf 1 linkKirpi-el-erizo libro descargar pdf 1 link
Kirpi-el-erizo libro descargar pdf 1 link
 
plan espacios inspiradores para nivel primaria
plan espacios inspiradores para nivel primariaplan espacios inspiradores para nivel primaria
plan espacios inspiradores para nivel primaria
 
Adoración sin fin al Dios Creador por sus bendiciones
Adoración sin fin al Dios Creador por sus bendicionesAdoración sin fin al Dios Creador por sus bendiciones
Adoración sin fin al Dios Creador por sus bendiciones
 
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didáctica
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didácticaLa poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didáctica
La poesía del encarcelamiento de Raúl Zurita en el aula: una propuesta didáctica
 
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdf
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdfGUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdf
GUÍA SIANET - Agenda - Tareas - Archivos - Participaciones - Notas.pdf
 
Programación Anual 2024 - CIENCIAS SOCIALES.docx
Programación Anual 2024  - CIENCIAS SOCIALES.docxProgramación Anual 2024  - CIENCIAS SOCIALES.docx
Programación Anual 2024 - CIENCIAS SOCIALES.docx
 
la forma de los objetos expresión gráfica preescolar
la forma de los objetos expresión gráfica preescolarla forma de los objetos expresión gráfica preescolar
la forma de los objetos expresión gráfica preescolar
 
Escrito administrativo técnico y comerciales
Escrito administrativo técnico y comercialesEscrito administrativo técnico y comerciales
Escrito administrativo técnico y comerciales
 
Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023Presentación contribuciones socioeconómicas del SUPV 2023
Presentación contribuciones socioeconómicas del SUPV 2023
 
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLA
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLAEL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLA
EL BRILLO DEL ECLIPSE (CUENTO LITERARIO). Autor y diseñador JAVIER SOLIS NOYOLA
 
Recursos Tecnológicos, página AIP-CRT 2 0 2 4.pdf
Recursos Tecnológicos, página  AIP-CRT 2 0 2 4.pdfRecursos Tecnológicos, página  AIP-CRT 2 0 2 4.pdf
Recursos Tecnológicos, página AIP-CRT 2 0 2 4.pdf
 
PPT Protocolo de desregulación emocional.pptx
PPT Protocolo de desregulación emocional.pptxPPT Protocolo de desregulación emocional.pptx
PPT Protocolo de desregulación emocional.pptx
 
U2_EA1_descargable TIC 2 SEM VIR PRE.pdf
U2_EA1_descargable TIC 2 SEM VIR PRE.pdfU2_EA1_descargable TIC 2 SEM VIR PRE.pdf
U2_EA1_descargable TIC 2 SEM VIR PRE.pdf
 
1° GRADO UNIDAD DE APRENDIZAJE 0 - 2024.pdf
1° GRADO UNIDAD DE APRENDIZAJE 0 - 2024.pdf1° GRADO UNIDAD DE APRENDIZAJE 0 - 2024.pdf
1° GRADO UNIDAD DE APRENDIZAJE 0 - 2024.pdf
 
Los escritos administrativos, técnicos y comerciales
Los escritos administrativos, técnicos y comercialesLos escritos administrativos, técnicos y comerciales
Los escritos administrativos, técnicos y comerciales
 
5°-CARPETA PEDAGÓGICA 2024-MAESTRAS DE PRIMARIA PERÚ-978387435.doc
5°-CARPETA PEDAGÓGICA 2024-MAESTRAS DE PRIMARIA PERÚ-978387435.doc5°-CARPETA PEDAGÓGICA 2024-MAESTRAS DE PRIMARIA PERÚ-978387435.doc
5°-CARPETA PEDAGÓGICA 2024-MAESTRAS DE PRIMARIA PERÚ-978387435.doc
 
PROGRAMACIÓN CURRICULAR ANUAL DE CIENCIA Y TECNOLOGÍA
PROGRAMACIÓN CURRICULAR ANUAL DE CIENCIA Y TECNOLOGÍAPROGRAMACIÓN CURRICULAR ANUAL DE CIENCIA Y TECNOLOGÍA
PROGRAMACIÓN CURRICULAR ANUAL DE CIENCIA Y TECNOLOGÍA
 

GUÍA DE EJERCICIOS RESUELTOS TEMA 4

  • 1. GUÍA DE EJERCICIOS RESUELTOS TEMA 5: TIMER 0 E INTERRUPCIONES Prof. Luis Zurita 1 Microcontroladores I
  • 2. 1. Genere una señal cuadrada de 200 Hz. Diseño libre. Paso 1. Enunciado y delimitación del problema: Como no se ha especificado por cual pin del microcontrolador saldrá la señal, asumiremos RB0. Cuando se trabaja con el Timer 0, se deben incluir los cálculos que se hayan realizado para generar el retardo deseado. 1 1 1 Para una frecuencia de 200 Hz, tendremos un período de: ‫=ܨ‬ ‫= = ܶ݁ݑݍ ݈ݎ݋݌‬ ‫݋‬ = 5݉‫ݏ‬ ܶ ‫ݖܪ 002 ܨ‬ Como no se ha especificado el ciclo de trabajo, asumiremos el 50 %, por lo que el período en alto y en bajo serán iguales, es decir 2,5 ms Hagamos los cálculos para 2,5 ms: De la fórmula proporcionada en la Unidad IV, despejando nos quedará: ܶ݁݉ ‫ ݅ݎ݋݌‬ó݊ ‫݅ܿܽݖ‬ ்ܸெ ோை = 4 ∗ ܶ‫0ܴ ܯܶݎ݋ݏ ݅݀݁ݎܲ ∗ܿݏ݋‬ ‫݅ݒ‬ Sustituyendo los valores (Como no se nos especificó el oscilador, 2,5 ݉ ‫ݏ‬ asumiremos el estándar de 4 MHz: ்ܸெ ோை = = 39,0625 ≅ 39 1 4 ∗ ቀ4‫ݖܪ ܯ‬ቁ∗ 64 ்ܸெ ோை = 256 − ܸ݈ܽ ‫݈ܸܽ → 0ܴ ܯ݈ܴܶܽ݁ݎ݋‬ ‫்ܸ − 652 = 0ܴ ܯ݈ܴܶܽ݁ݎ݋‬ெ ோை = 256 − 39 = 217 Por lo que el valor a cargar en el TMR0= 217 Prof. Luis Zurita 2 Microcontroladores I
  • 3. Paso 2. Diagrama de Flujo: FORMA A INICIO DELAY5MS Configurar Cargamos valor calculado Puerto B en el TIMER0 Configurar Borramos el OPTION_REG Señalizador TOIF Inicializamos PORTB NO ¿TOIF=1? RB0=1 SI return DELAY5MS RB0=0 DELAY5MS Prof. Luis Zurita 3 Microcontroladores I
  • 4. Paso 3. Lenguaje ensamblador: FORMA A. POR EXPLORACIÓN (POLLING) DEL BIT TOIF: list P=16F84A include P16F84A.inc org 00H goto INICIO ;*************************** ;***PROGRAMA PRINCIPAL*** ;*************************** INICIO bsf STATUS,5 ;Zona de configuraciones clrf TRISB movlw B'00010101' ;Predivisor= 128 movwf OPTION_REG Prof. Luis Zurita 4 Microcontroladores I
  • 5. bcf STATUS,5 clrf PORTB ;Inicializamos el Puerto B nop CICLO bsf PORTB,0 ;Señal a nivel alto call DELAY2_5MS ;Llamamos subrutina 2,5 ms bcf PORTB,0 ;Señal a nivel bajo call DELAY2_5MS ;Llamamos subrutina 2,5 ms goto CICLO ;Repetimos ciclo DELAY2_5MS movlw .217 ;Cargamos TMR0 con valor movwf TMR0 ;calculado previamente bcf INTCON,2 ;Borramos el señalizador ESPERA btfss INTCON,2 ;Se desbordó el TMR0? goto ESPERA ;No. Seguimos esperamos return ;Si, han transcurrido 2,5 ms end FORMA B. POR INTERRUPCIÓN list P=16F84A include P16F84A.inc org 00H goto INICIO org 04H goto RSI ;******************************** ;***RUTINA DE INTERRUPCIÓN*** ;******************************** RSI bcf INTCON,7 ;Deshabilitamos las interrupciones btfss INTCON,2 ;La causa de la interrupción es desborde ;del TIMER0 TOIF=1? goto SALIR ;No, Salimos bcf INTCON,2 ;Si, borramos el señalizador TOIF movlw .01 xorwf PORTB,1 movlw .217 ;Cargamos el valor del TMR0 Prof. Luis Zurita 5 Microcontroladores I
  • 6. movwf TMR0 ;Para una nueva temporización SALIR bsf INTCON,7 ;Habilitamos las interrupciones retfie ;*************************** ;***PROGRAMA PRINCIPAL*** ;*************************** INICIO bsf STATUS,5 clrf TRISB movlw B'00010101' ;Predivisor= 128 movwf OPTION_REG movlw B'10100000' ; Habilitamos las interrupciones movwf INTCON ;Con GIE=1 y TOIE=1 bcf STATUS,5 clrf PORTB ;Inicializamos el Puerto B movlw .217 ;Cargamos el TMR0 con el movwf TMR0 ;valor previamente calculado SINFIN clrwdt ;Usamos esta instrucción para goto SINFIN ;evitar reinicio del programa ;De resto, el programa se queda en este bucle sin fin esperando el desborde ;del TMR0, que ocurrirá según sea el tiempo calculado. end Nota: Generalmente cuando los puertos A y/o B pueden sufrir modificaciones dentro de la rutina de interrupción, se salva el entorno (Se verán en los ejemplos 3, 4 y 5), sin embargo para este ejemplo, no se modifican otros bits de los puertos, por lo que no es necesario salvar el entorno. Prof. Luis Zurita 6 Microcontroladores I
  • 7. 2. Genera la siguiente señal. (Use Timer 0 e interrupción) 100 ms 2 segundos Paso 1. Enunciado y delimitación del problema: Como no se ha especificado por cual pin del microcontrolador saldrá la señal, asumiremos RB0. Cuando se trabaja con el Timer 0, se deben incluir los cálculos que se hayan realizado para generar el retardo deseado. En la gráfica, podemos extraer el período de la señal cuadrada cuyo valor es de 100 ms, y asumiendo un ciclo de trabajo del 50 %, tendremos que la señal en alto es igual a la señal en bajo, por lo tanto su duración o período será de 50 ms. Hagamos los cálculos para 50 ms: De la fórmula proporcionada en la Unidad IV, despejando nos quedará: ܶ݁݉ ‫ ݅ݎ݋݌‬ó݊ ‫݅ܿܽݖ‬ ்ܸெ ோை = 4 ∗ ܶ‫0ܴ ܯܶݎ݋ݏ ݅݀݁ݎܲ ∗ܿݏ݋‬ ‫݅ݒ‬ Sustituyendo los valores (Como no se nos especificó el oscilador), 50 ݉ ‫ݏ‬ asumiremos el estándar de 4 MHz: ்ܸெ ோை = = 195,31 ≅ 195 1 4 ∗ ቀ4‫ݖܪ ܯ‬ቁ∗ 256 ்ܸெ ோை = 256 − ܸ݈ܽ‫݈ܸܽ → 0ܴ ܯ݈ܴܶܽ݁ݎ݋‬ ‫்ܸ − 652 = 0ܴ ܯ݈ܴܶܽ݁ݎ݋‬ெ ோை = 256 − 195 = 61 Por lo que el valor a cargar en el TMR0= 61 Prof. Luis Zurita 7 Microcontroladores I
  • 8. ¿Por qué el predivisor de 256? Sencillo, repasando la teoría, recordaremos que el valor del Timer 0 a cargar no podrá exceder bajo ningún concepto 256. Si colocamos otro predivisor del rango disponible, el resultado será mayor a 256. ¿Cómo encaro el problema? En esta señal solicitada, si nos damos cuenta, la señal cuadrada se genera 10 veces, dando un tiempo de 1 segundo, si la señal entera, antes de que se repita el ciclo nuevamente, es de 2 segundos, vale decir que durante 10 veces el tiempo de 100 ms, la señal no bascula u oscila, por lo que podemos utilizar un contador de temporización para determinar si la señal oscilará o no. Durante las primeras 20 temporizaciones de 50 ms, la señal de salida oscilará, durante las siguientes 20 temporizaciones de 50 ms, la señal de salida no oscilará, utilizando el contador resolveremos este problema. ¿Y dónde utilizo el contador? El desarrollo de la señal se fundamenta en una interrupción por desborde del Timer0 para los 50 ms calculados, por lo tanto el contador se utilizará dentro de la rutina de servicio de la interrupción. Veamos el Diagrama de flujo para entenderlo mejor: Prof. Luis Zurita 8 Microcontroladores I
  • 9. Paso 2. Diagrama de Flujo: INICIO RSI Declarar Deshabilitar CONTADOR Interrupciones Configurar NO Puerto A y B ¿TOIF=1? SALIR SI Configurar INTCON y OPTION_REG Borramos el Señalizador TOIF Inicializamos CONTADOR y PORTB ¿Contador NO ¿Contador >20? >40? Cargamos valor calculado en el TIMER0 SI Bascular RB0 CONTADOR=0 Para evitar un reinicio del programa Limpiamos el Perro Guardián CONTADOR=CONTADOR+1 SALIR Habilitar Interrupciones retfie Paso 3. Lenguaje ensamblador: list P=16F84A include P16F84A.inc CONTADOR equ 20H ;Declaramos el registro org 00H goto INICIO org 04H goto RSI Prof. Luis Zurita 9 Microcontroladores I
  • 10. ;******************************** ;***RUTINA DE INTERRUPCIÓN*** ;******************************** RSI bcf INTCON,7 ;Deshabilitamos las interrupciones btfss INTCON,2 ;La causa de la interrupción es ;desborde del TIMER0 TOIF=1? goto SALIR ;No, Salimos bcf INTCON,2 ;Si, borramos el señalizador TOIF movlw .20 subwf CONTADOR,0 ;Contador-20. btfsc STATUS,0 ;C=0? ó Contador < 20? goto NOBASCULA ;No. BASCULA movlw .01 ;Si. xorwf PORTB,1 ;Basculamos (Toggle) RB0 goto SUBECONT NOBASCULA movlw .40 subwf CONTADOR,0 ;Contador-40. Contador>40? btfsc STATUS,0 ;C=0? goto LIMPIAR SUBECONT incf CONTADOR,1 ;Contador=Contador+1 movlw .61 ;Cargamos el valor del TMR0 movwf TMR0 ;Para una nueva temporización bsf INTCON,7 ;Habilitamos las interrupciones retfie ;Salimos de la RSI LIMPIAR clrf CONTADOR ;Limpiamos el contador SALIR bsf INTCON,7 ;Habilitamos las interrupciones retfie ;Salimos de la RSI ;*************************** ;***PROGRAMA PRINCIPAL*** ;*************************** INICIO bsf STATUS,5 ;Zona de configuraciones clrf TRISB movlw B'00010111' ;Predivisor=256 movwf OPTION_REG movlw B'10100000' ;Habilitamos las interrupciones movwf INTCON ;Con GIE=1 y TOIE=1 bcf STATUS,5 Prof. Luis Zurita 10 Microcontroladores I
  • 11. clrf PORTB clrf CONTADOR bcf PORTB,0 movlw .61 ;Cargamos el valor del TMRO movwf TMR0 ;Previamente calculado SINFIN clrwdt goto SINFIN end A C1 B U1 C 22p 16 17 X1 15 OSC1/CLKIN RA0 18 CRYSTAL OSC2/CLKOUT RA1 D C2 1 RA2 4 2 MCLR RA3 3 VDD RA4/T0CKI 22p R1 6 RB0/INT VSS 7 RB1 330R 8 RB2 9 RB3 10 RB4 11 D1 RB5 LED-GREEN 12 RB6 13 RB7 PIC16F84A VSS Señal en el osciloscopio del Proteus Prof. Luis Zurita 11 Microcontroladores I
  • 12. 3. Diseñe un control de nivel para un tanque. Se tiene un interruptor selector de “MODO”  Si “MODO” es manual, las bombas se activan sin importar el nivel del tanque subterráneo.  Si “MODO” es automático, la activación de las bombas dependerá de:  Si el nivel del agua está por debajo del nivel mínimo, se activará la bomba 1 hasta que se alcance el nivel Máximo, y procederá a apagarse.  Si el nivel del agua está por encima del nivel mínimo, pero por debajo del nivel máximo, se activará la bomba 2 hasta que se alcance el nivel Máximo y procederá a apagarse.  Se debe monitorear si ha cambiado el “MODO”.  Importante: Si no hay agua en el tanque subterráneo, se deben apagar las bombas hasta que el nivel del tanque de trabajo alcance al sensor de operación MODO Manual Auto OPERACIÓN PARADA SOLUCIÓN: Paso 1. Enunciado y delimitación del Hardware: Tenemos el enunciado, sin embargo debemos delimitar el hardware. Para lograr esta tarea debemos asignar los pines de control de Entrada y de salida, con la finalidad de saber qué vamos a controlar y quién nos dará la información. Como el sensor de parada se va a utilizar por interrupción de cambio de nivel de RB0, este será configurado como entrada Prof. Luis Zurita 12 Microcontroladores I
  • 13. Debemos identificar cuales elementos son entrada y cuales salida: ENTRADA ¿Qué pin SALIDA ¿Qué pin Asignamos? Asignamos? Interruptor “INICIO” RA0 Bomba B1 RB3 Sensor Máximo RA1 Bomba B2 RB1 Sensor Mínimo RA2 Indicador RB2 Manual Sensor Parada RB0 Indicador Auto RB3 Sensor Operación RA3 ¿Y si quiero asignar otros pines? Perfecto, queda a libre elección. VDD MANUAL R1 RB4 1k AUTO RB2 RA0 VSS MODO VSS SENSOR NIVEL ALTO VDD NIVEL MÁXIMO R2 1k RA1 TANQUE VSS RB3 RB1 VDD PRINCIPAL M1 B1 B2 M2 SENSOR NIVEL BAJO VDD VDD R1B 1k OPERACIÓN R1A R3 PARADA 1k 1k VSS VSS RA3 RA2 VSS RB0 TANQUE SUBTERRÁNEO VSS VSS C1 22p U1 X1 16 OSC1/CLKIN RA0 17 RA0 15 18 C2 OSC2/CLKOUT RA1 RA1 1 RA2 RA2 4 2 MCLR RA3 RA3 3 VSS VDD RA4/T0CKI 22p 6 RB0/INT RB0 7 RB1 RB1 8 RB2 RB2 9 RB3 RB3 10 RB4 RB4 11 RB5 12 RB6 13 RB7 PIC16F84A Prof. Luis Zurita 13 Microcontroladores I
  • 14. Paso 2. Diagrama de Flujo: INICIO RSI Configurar Deshabilitar INTCON Interrupciones Salvar entorno Configurar Puerto A y B NO Bomba 1= OFF ¿INTF=1? SALIR Bomba 2=OFF SI M Bomba 1= OFF SI Bomba 1= ON Bomba 2= OFF ¿Manual? Bomba 2= ON Auto NO NO ¿Llegó a Noperación? ¿Nivel NO ¿Nivel NO M SI Mínimo? Máximo? SALIR SI SI Restaurar entorno Bomba 1= OFF Bomba 1= ON INTF=0 Bomba 2= ON Bomba 2= OFF Habilitar Interrupciones ¿Nivel NO Máximo? retfie SI Bomba 1= OFF Bomba 2= OFF M Prof. Luis Zurita 14 Microcontroladores I
  • 15. Paso 3. Del Diagrama de Flujo al Lenguaje Ensamblador: list P=16F84A include P16F84A.INC WTEMP equ 20H ;Declaramos registros para PBTEMP equ 21H ;Utilizarse para salvar y restaurar STATEMP equ 22H ;El entorno org 00H ;Vector de Inicio goto INICIO org 04H ;Vector de Interrupción goto RSI ;************************************* ;***Rutina de servicio de Interrupción*** ;************************************* RSI bcf INTCON,7 ;Interrupciones deshabilitadas PUSH movwf WTEMP ;Salvamos el entorno movf STATUS,0 movwf STATEMP movf PORTB,0 movwf PBTEMP btfss INTCON,1 ;INTF=1? Fue por RB0/INT? goto PULL ;No. Salimos de la RSI SI bcf PORTB,2 bcf PORTB,3 ;Bomba 1= OFF bcf PORTB,1 ;Bomba 2= OFF OPER btfsc PORTA,3 ;Nivel de Operación? goto OPER ;No. Esperamos a que se alcance el ;nivel de operación PULL movf PBTEMP,0 ;Restauramos el entorno movwf PORTB movf STATEMP,0 movwf STATUS movf WTEMP,0 bcf INTCON,1 ;Borramos el señalizador bsf INTCON,7 ;Interrupciones habilitadas retfie ;Salimos de las interrupciones Prof. Luis Zurita 15 Microcontroladores I
  • 16. ;*********************** ;***Programa Principal*** ;*********************** INICIO bsf STATUS,5 ;Vamos al banco 1 a configurar movlw 1FH movwf TRISA movlw B'00000001' ;RB0= Entrada, Resto Salidas movwf TRISB movlw B'10010000' ;Habilitamos las interrupciones movwf INTCON ;Con GIE=1 y INTE=1 movlw B'01000000' ;Configuramos el tipo de flanco movwf OPTION_REG ;De activación de RB0/INT bcf STATUS,5 ;Vamos al banco 0 a trabajar clrf TRISB ;Bombas=OFF MODO btfsc PORTA,0 ;MODO AUTO? goto AUTO MANUAL bsf PORTB,2 ;No. Modo manual= ON bcf PORTB,4 ;Modo Auto=OFF bsf PORTB,3 ;Bomba 1=ON bsf PORTB,1 ;Bomba 2=ON goto MODO AUTO btfsc PORTA,2 ;MÍNIMO? goto DOS ;Hay Agua bsf PORTB,2 ; Modo Auto=ON bcf PORTB,4 ;Modo Manual=OFF bsf PORTB,3 ;Bomba 1=ON bcf PORTB,1 ;Bomba 2=OFF CERR btfss PORTA,1 ;(NHA)MÁXIMO? goto CERR ;No Hay Agua MODO2 bcf PORTB,2 ; Modo Auto=OFF bcf PORTB,3 ;Bomba 1=ON bcf PORTB,1 ;Bomba 2=OFF goto MODO DOS btfsc PORTA,1 ;(NHA)MÁXIMO? goto MODO ;HA MODO1 bcf PORTB,2 ; Modo Auto=OFF bcf PORTB,3 ;Bomba 1=OFF bsf PORTB,1 ;Bomba 2=ON goto CERR end Prof. Luis Zurita 16 Microcontroladores I
  • 17. 4. Realice la automatización de la mezcladora de pinturas, mostrada en la figura siguiente, bajo la siguiente secuencia de funcionamiento:  El sistema de mezclado se inicia al pulsarse “MARCHA”, mediante el cual, se activa B1, por espacio de por espacio de 10 minutos. B2, MM, VD, MA deben estar apagados. Se enciende un led verde que indica que el sistema esta en marcha.  Transcurrido este tiempo, se enciende B2. B1, MM, VD, MA, deben estar apagados.  B2 se mantiene encendido hasta que el sensor “Nivel alto” se activa, mediante el cual se detiene B2, se activa MM. B1, VD, MA, se mantienen apagados.  MM se mantiene encendido por espacio de 2 minutos. B1, B2, VD, MA se mantienen apagados. Una vez transcurrido este tiempo, se detiene MM.  Se activa VD, hasta que se activa el sensor “Nivel bajo”, mediante el cual se cierra VD y se activa MA por espacio de 7,5 minutos, reiniciándose el proceso nuevamente.  El sistema cuenta con un pulsador de “PARE”, que al activarse en cualquier momento detiene todo el proceso, apagando B1, B2, VD, MM y MA, activando un led rojo y apagando al led verde, indicando que existe una parada del proceso.  Para reiniciar el proceso nuevamente en donde se quedó al momento de detenerlo, se debe pulsar “REINICIO”. Nota: Utilice el TMR0 para generar la rutina de 1 segundo. Prof. Luis Zurita 17 Microcontroladores I
  • 18. MEZCLADORA DE PINTURAS PINTURA 1 PINTURA 2 B1 B2 Nivel Alto TANQUE MEZCLADOR Nivel Bajo MM VD PINTURA PINTURA LISTA LISTA MA Prof. Luis Zurita 18 Microcontroladores I
  • 19. Nomenclaturas: B1: Bomba 1 B2: Bomba 2 MM: Motor de Mezclado VD: Válvula de Desagüe MA: Motor de Avance Paso 1. Enunciado y delimitación del Hardware: Tenemos el enunciado, sin embargo debemos delimitar el hardware. Debemos identificar cuales elementos son entrada y cuales salida: ENTRADA ¿Qué pin SALIDA ¿Qué pin Asignamos? Asignamos? Pulsador “MARCHA” RA0 Led Marcha RB1 Pulsador “REINICIO” RA1 Led PARE RB2 Sensor Nivel Alto RA2 Válvula RB3 Pintura 1 Sensor Nivel Bajo RA3 Válvula RB4 Pintura 2 Sensor “PARE” RB0 Motor RB5 Mezclado Válvula RB6 Desagüe Motor RB7 Avance Prof. Luis Zurita 19 Microcontroladores I
  • 20. El circuito quedaría de la siguiente manera: RB3 RB4 VDD PINTURA 1 PINTURA 2 VDD VDD CAJA DE CONTROL VSS VSS MARCHA NIVEL ALTO RA0 VDD RB1 TANQUE RA2 PARE RB0 RB2 MEZCLADOR VDD REINICIO RB5 RA1 NIVEL BAJO VSS RB6 RA3 MOTOR MZ VÁLVULA DESAGUE VSS VSS PINTURA PINTURA RB7 LISTA LISTA MOTOR AVANCE RB7 Prof. Luis Zurita 20 Microcontroladores I
  • 21. Paso 2. Diagramas de Flujo: INICIO 1 RSI Declarar Registros de Deshabilitar trabajo VD=ON Interrupciones Configurar Salvar entorno NO INTCON y OPTION_REG ¿NBAJO =0? Configurar SI NO Puerto A y B ¿INTF=1? SALIR A VD=OFF SI Limpiar Registros en general MA=ON B1=OFF y Puerto B B2=OFF MM=OFF RET7_5S VD=OFF MA=OFF NO LMARCHA=OFF ¿MARCHA MA=OFF LPARE=ON =0? SI 1 B1=ON ¿REINICIO NO B2=OFF =0? MM=OFF VD=OFF LEYENDA: SI MA=OFF VD=Válvula de Desagüe LMARCHA=ON B1= Válvula de Llenado Pintura 1 LPARE=OFF LPARE=OFF B2= Válvula de Llenado Pintura 2 LMARCHA= Led Marcha LPARE= Led Pare Restaurar entorno NALTO= Sensor Nivel Alto RET13SEG NBAJO=Sensor Nivel Bajo INTF=0 MM= Motor Mezclado MA= Motor de Avance SALIR B1=OFF MARCHA= Pulsador de inicio B2=ON Habilitar PARE= Pulsador de parada LMARCHA=ON Interrupciones REINICIO= Pulsador de reinicio del proceso LPARE=OFF Lógica de los sensores= 0=Activado retfie 1= Desactivado NO ¿NALTO =0? SI B2=OFF MM=ON RET1M MM=OFF 1 Prof. Luis Zurita 21 Microcontroladores I
  • 22. Paso 3. Lenguaje Ensamblador: list P=16F84A include p16F84A.inc W_TEMP equ 20H ;Declaramos los registros ESTADO_TEMP equ 21H ;A utilizar para salvar y restaurar PB_TEMP equ 22H ;El entorno REGAUX1 equ 23H ;Registros para generar retardos REGAUX2 equ 24H ;Por Software org 00H goto INICIO org 04H goto RSI ;*********************************** ;***Rutina de Servicio de Interrupción*** ;*********************************** RSI btfss INTCON,1 ;INTF=1? goto SALIR ;No. Salimos de la Interrupción movwf W_TEMP ;Salvamos el entorno swapf W_TEMP,1 movf STATUS,0 movwf ESTADO_TEMP movf PORTB,0 movwf PB_TEMP movlw b'00000100' ;Si. Todo OFF. LPARE= ON movwf PORTB ;(ROJO=ON) REINI btfsc PORTA,1 ;Se pulsó REINICIO? goto REINI ;Esperamos bcf INTCON,1 ;Borramos señalizador INTF movf PB_TEMP,0 ;Restauramos el entorno movwf PORTB movf ESTADO_TEMP,0 movwf STATUS swapf W_TEMP,0 SALIR bsf INTCON,7 ;Habilitamos las interrupciones retfie ;Salimos de la RSI Prof. Luis Zurita 22 Microcontroladores I
  • 23. ;********************** ;***Programa Principal *** ;********************** INICIO bsf STATUS,5 ;Configuramos los Puertos movlw 01FH movwf TRISA ;PA como entrada movlw b'00000001' movwf TRISB ;PB como entrada/salida movlw b'01000111' ;Prescaler= 256 movwf OPTION_REG ;Y configuramos el flanco de RBO/INT movlw b'10010000' ;GIE= 1 y INTE=1 movwf INTCON bcf STATUS,5 clrf PORTB ;Limpiamos el Puerto B EMPIEZA btfsc PORTA,0 ;Se pulsó “INICIO” goto EMPIEZA ;No. Esperamos REPITE bsf PORTB,3 ;B1= ON bsf PORTB,1 ;Led Marcha=ON (Verde= ON) bcf PORTB,2 ;Led PARE=OFF bcf PORTB,4 ;B1=OFF bcf PORTB,5 ;MM=OFF bcf PORTB,6 ;VD=OFF bcf PORTB,7 ;MA=OFF call RET13 ;Llamamos a Subrutina de 13 seg. bcf PORTB,3 ;B1= OFF bsf PORTB,4 ;B2= ON NAOK btfsc PORTA,2 ;Nivel Alto= 0? goto NAOK ;No. Esperamos bcf PORTB,4 ;B2= OFF bsf PORTB,5 ;MM= ON call RET1M ;Llamamos subrutina de 1 minuto. bcf PORTB,5 ;MM= OFF bsf PORTB,6 ;VD= ON NBOK btfsc PORTA,3 ;Nivel Bajo= 0? goto NBOK ;No. Esperamos bcf PORTB,6 ;VD= OFF bsf PORTB,7 ;MA= ON call RET7_5 ;Subrutina de 7,5 seg Prof. Luis Zurita 23 Microcontroladores I
  • 24. bcf PORTB,7 goto REPITE ;************************** ;***Rutina de 7,5 segundos*** ;************************** RET7_5 bcf INTCON,2 movlw d'114' movwf REGAUX1 RECAR75 bcf INTCON,2 clrf TMR0 ESPERA1 btfss INTCON,2 goto ESPERA1 decfsz REGAUX1,1 goto RECAR75 return ;************************** ;***Rutina de 13 segundos*** ;************************** RET13 bcf INTCON,2 movlw d'198' movwf REGAUX1 RECAR13 bcf INTCON,2 clrf TMR0 ESPERA2 btfss INTCON,2 goto ESPERA2 decfsz REGAUX1,1 goto RECAR13 return ;********************** ;***Rutina de 1 minuto*** ;********************** RET1M movlw d'30' ;Original= 60, se cambió para la simulación movwf REGAUX2 RECAR4 movlw d'15' movwf REGAUX1 RECAR5 bcf INTCON,2 clrf TMR0 ESPERA4 btfss INTCON,2 Prof. Luis Zurita 24 Microcontroladores I
  • 25. goto ESPERA4 decfsz REGAUX1,1 goto RECAR5 decfsz REGAUX2,1 goto RECAR4 return end ;Fin del programa Prof. Luis Zurita 25 Microcontroladores I
  • 26. 5. Se desea automatizar una lavadora “CHACACHACA” bajo dos modos de lavado (uno de Lavado Rápido de 30 minutos de duración y otro de Lavado Lento de 50 minutos de duración), el sistema constará de un pulsador de “INICIO” y un interruptor selector de modo de lavado. Automatice bajo las siguientes condiciones:  Se elige entre lavado rápido ó lento  Se presiona “INICIO” y realiza lo siguiente:  Se llena la CHACACHACA hasta el nivel de agua máximo; lava ó “bate” por la mitad del tiempo; se detiene; se vacía; se llena otra vez de agua; lava ó “bate” hasta que falten tres minutos; se detiene; se vacía; se llena otra vez de agua; lava ó “bate” por el resto del tiempo; se vacía nuevamente y emite una alarma sonora por espacio de 10 segundos; y se detiene a la espera de un nuevo proceso de lavado.  Si no hay agua en el depósito de agua, se detiene el lavado, se cierra la válvula de llenado y se emite una alarma sonora hasta que se solucione el problema agregando agua al depósito hasta el nivel mínimo de lavado.  ML: Motor de Lavadora. VD: Válvula de Desagüe. VLL: Válvula de Llenado.  Nmínimo, Nmáximo, Nmínimo de lavado, Nivel de alarma: Sensores de nivel. Prof. Luis Zurita 26 Microcontroladores I
  • 27. Nota: Utilice el TMR0 para generar la rutina de 1 segundo. Paso 1. Enunciado y delimitación del Hardware: Tenemos el enunciado, sin embargo debemos delimitar el hardware. Debemos identificar cuales elementos son entrada y cuales salida: ENTRADA ¿Qué pin SALIDA ¿Qué pin Asignamos? Asignamos? Interruptor “MODO” RA0 Motor de RB1 de Lavado Lavadora Pulsador “INICIO” RA1 Válvula de RB2 Desagüe Sensor Nivel Mínimo RA2 Válvula de RB3 Llenado Sensor Nivel Máximo RA3 Led RB4 “INICIO” Sensor Nivel Mínimo RA4 Led RB5 de lavado “Rápido” Sensor Nivel de RB0 Led “Lento” RB6 Alarma ALARMA RB7 Como podemos observar, de manera común, se asignan las entradas al puerto A y las salidas al puerto B. Prof. Luis Zurita 27 Microcontroladores I
  • 28. El circuito del hardware a simular quedaría de la siguiente manera: VDD RB7 RA4 VSS ALARMA NMÍNIMO DE LAVADO VDD DEPÓSITO VSS DE AGUA RB3 RB0 VSS VÁLVULA DE LLENADO NIVEL DE ALARMA PANEL DE CONTROL VDD VDD VSS ON NIVEL ALTO RA1 INICIO RB4 LAVADORA RA3 VDD RÁPIDO RB5 VDD LENTO LAVADO RA0 RB6 RB1 NIVEL BAJO RB2 RA2 MOTOR MZ VÁLVULA DESAGUE VSS VSS Prof. Luis Zurita 28 Microcontroladores I
  • 29. Paso 2. Diagramas de Flujo: INICIO LEYENDA: 1 VD=Válvula de Desagüe VLL= Válvula de Llenado Declarar Registros de NMAX= Sensor Nivel Máximo trabajo NMIN=Sensor Nivel Mínimo VLL=OFF NMINLAV=Sensor Nivel Mínimo de Lavado MotorL=OFF MotorL= Motor Lavadora VD=ON Configurar CONTA=Contador de minutos INTCON y OPTION_REG CONTAMEDIO=Contador precargado con la mitad del tiempo Configurar CONTALAV=Contador precargado con el NO Puerto A y B tiempo total de lavada ¿NMIN=0? Lógica de los sensores= A 0=Activado SI Limpiar Registros en general 1= Desactivado y Puerto B VD=OFF VLL=ON (Lento) Led Rápido=OFF NO Led Lento=ON ¿INTLAV? ContaMed=12 NO ContaLav=25 ¿NMAX=0? (Rápido) SI SI Led Rápido=ON Led Lento=OFF VLL=OFF ContaMed=22 MotorL=ON ContaLav=45 SI NO CONTALAV=CONTALAV-3 ¿INICIO? RET1MIN VD=OFF Led Inicio=ON CONTA=CONTA+1 VLL=ON NO ¿CONTA= NO CONTALAV? ¿NMAX=0? SI SI VLL=OFF VLL=OFF MotorL=ON MotorL=OFF VD=ON RET1MIN NO ¿NMIN=0? CONTA=CONTA+1 SI NO ¿CONTA= SI 1 2 CONTAMEDIO? Prof. Luis Zurita 29 Microcontroladores I
  • 30. 2 RSI SI Deshabilitar VD=OFF Interrupciones VLL=ON Salvar entorno NO ¿NMAX=0? NO ¿INTF=1? SALIR SI SI VLL=OFF ALARMA=ON MotorL=ON MotorL= OFF VLL= OFF VD=OFF RET1MIN ¿Llegó a NO RET1MIN NMINLAV? SI RET1MIN ALARMA=OFF SALIR VLL=OFF Restaurar entorno MotorL=OFF VD=ON INTF=0 Habilitar NO Interrupciones ¿NMIN=0? SI retfie RET10SEG Vamos al Inicio del programa para una nueva A lavada Prof. Luis Zurita 30 Microcontroladores I
  • 31. Paso 3. Lenguaje Ensamblador: LIST P=16F84A INCLUDE P16F84A.INC ;Declaraciones de registros: RET4 EQU 2DH ;Registros para generar RET5 EQU 2EH ;Rutinas de retardo RET6 EQU 2FH W_TEMP EQU 30H ;Registros para salvar el STATUS_TEMP EQU 31H ;Entorno durante la interrupción PA_TEMP EQU 32H PB_TEMP EQU 33H PC_TEMP EQU 34H CONTA EQU 35H ;Registro contador de comparación CONTAMED EQU 20H ;Registro que se cargará con el tiempo ;medio de la duración del lavado CONTALAV EQU 21H ;Registro que posee el tiempo total de ;lavado CONTASEG EQU 22H ;Registro contador de segundos ORG 00H GOTO INICIO ORG 04H GOTO RUTIN ;*********************************** ;***Rutina de Servicio de Interrupción*** ;*********************************** RUTIN BCF INTCON,7 ;Deshabilitamos las interrupciones BTFSS INTCON,5 GOTO SALIR MOVWF W_TEMP ;Salvamos el entorno durante la SWAPF W_TEMP,1 ;Interrupción al modificarse el Puerto B MOVF STATUS,0 ;dentro de la RSI MOVWF STATUS_TEMP MOVF PORTA,0 MOVWF PA_TEMP MOVF PORTB,0 MOVWF PB_TEMP ESPERA BSF PORTB,7 ;SSONORA=ON Prof. Luis Zurita 31 Microcontroladores I
  • 32. BCF PORTB,1 ;ML=OFF BCF PORTB,2 ;VD=OFF BCF PORTB,3 ;VLL=OFF BTFSC PORTA,4 ;NMINLAV? GOTO ESPERA BCF PORTB,7 ;SSONORA=OFF POP MOVF PB_TEMP,0 MOVWF PORTB MOVF PA_TEMP,0 MOVWF PORTA MOVF STATUS_TEMP,0 MOVWF STATUS SWAPF W_TEMP,1 MOVF W_TEMP,0 BCF INTCON,1 ;INTF=0 SALIR BSF INTCON,7 ;GIE=1 RETFIE ;********************* ;***Programa Principal*** ;********************* INICIO BSF STATUS,5 ;Configuramos los Puertos A y B MOVLW 1FH MOVWF TRISA MOVLW B'00000001' ;RB0 como entrada MOVWF TRISB BCF OPTION_REG,6 ;Configuramos el flanco de RB0/INT MOVLW B'10010000' ;Activamos GIE y INTE MOVWF INTCON BCF STATUS,5 NUEVOLAV CLRF CONTASEG ;Inicializamos los registros CLRF CONTA ;Y el Puerto B CLRF PORTB MODO BTFSS PORTA,0 ;¿Qué MODO es? GOTO MODOLENTO ;Ir al modo lento BSF PORTB,5 ;Modo RÁPIDO= ON BCF PORTB,6 ;LENTO OFF Prof. Luis Zurita 32 Microcontroladores I
  • 33. MOVLW D'12' ;Precargamos los valores MOVWF CONTAMED ;Para el lavado rápido MOVLW D'25' MOVWF CONTALAV GOTO MARCHA ;Va a preguntar si se pulsó INICIO MODOLENTO BCF PORTB,5 ;Activamos el MODO lento BSF PORTB,6 MOVLW D'22' ;Y precargamos los valores MOVWF CONTAMED ;de este modo MOVLW D'45' MOVWF CONTALAV GOTO MARCHA MARCHA BTFSC PORTA,1 ;¿INICIO? GOTO MODO ;No, vamos a explorar el MODO ESPLL1 BSF PORTB,4 ;LEDINI=ON BSF PORTB,3 ;VLL ON BTFSC PORTA,3 ;NMAX? GOTO ESPLL1 BCF PORTB,3 ;VLL OFF BSF PORTB,1 ;ML ON SUBEMIN1 CALL RET1s ;PARA SIMULACION, ES UN MINUTO INCF CONTA,1 MOVF CONTAMED,0 SUBWF CONTA,0 ;CONTA=CONTAMED? BTFSS STATUS,2 ;Z=1? GOTO SUBEMIN1 ESPVAC BCF PORTB,3 ;VLL OFF BCF PORTB,1 ;ML OFF BSF PORTB,2 ;VD ON BTFSC PORTA,2 ;NMIN? GOTO ESPVAC ESPLL2 BCF PORTB,2 ;VD OFF BSF PORTB,3 ;VLL ON BTFSC PORTA,3 ;NMAX=0? GOTO ESPLL2 BCF PORTB,3 ;VLL OFF BSF PORTB,1 ;ML ON Prof. Luis Zurita 33 Microcontroladores I
  • 34. DECF CONTALAV,1 DECF CONTALAV,1 DECF CONTALAV,1 ;A FALTA DE 3 MINUTOS SUBEMIN2 CALL RET1s ;PARA SIMULACION, ES UN MINUTO INCF CONTA,1 MOVF CONTALAV,0 SUBWF CONTA,0 ;CONTA=CONTALAV? BTFSS STATUS,2 ;Z=1? GOTO SUBEMIN2 ESPVAC2 BCF PORTB,3 ;VLL OFF BCF PORTB,1 ;ML OFF BSF PORTB,2 ;VD ON BTFSC PORTA,2 ;NMIN? GOTO ESPVAC2 ESPLL3 BCF PORTB,2 ;VD OFF BSF PORTB,3 ;VLL ON BTFSC PORTA,3 ;NMAX? GOTO ESPLL3 BCF PORTB,3 ;VLL OFF BSF PORTB,1 ;ML ON CALL RET1s CALL RET1s ;ESPERA 3 MINUTOS FINALES CALL RET1s ;(SE SIMULA CON 1 SEG) ESPVAC3 BCF PORTB,3 ;VLL OFF BCF PORTB,1 ;ML OFF BSF PORTB,2 ;VD ON BTFSC PORTA,2 ;NMIN? GOTO ESPVAC3 BCF PORTB,2 ;VD OFF PITAZO BSF PORTB,7 ;ALARMA SONORA ON CALL RET1s INCF CONTASEG,1 MOVLW D'10' SUBWF CONTASEG,0 BTFSS STATUS,2 ;10 SEG? GOTO PITAZO BCF PORTB,7 ;ALARMA SONORA OFF GOTO NUEVOLAV Prof. Luis Zurita 34 Microcontroladores I
  • 35. ;*************************************** ;***Rutina de 1 segundo. Generada por PDEL*** ;*************************************** RET1s movlw .14 ; 1 set numero de repeticion (C) movwf RET4 ; 1| PLoop0 movlw .72 ; 1 set numero de repeticion (B) movwf RET5 ; 1| PLoop1 movlw .247 ; 1 set numero de repeticion (A) movwf RET6 ; 1| PLoop2 clrwdt ; 1 clear watchdog decfsz RET6, 1 ; 1 + (1) es el tiempo 0 ? (A) goto PLoop2 ; 2 no, loop decfsz RET5, 1 ; 1 + (1) es el tiempo 0 ? (B) goto PLoop1 ; 2 no, loop decfsz RET4, 1 ; 1 + (1) es el tiempo 0 ? (C) goto PLoop0 ; 2 no, loop PDelL1 goto PDelL2 ; 2 ciclos delay PDelL2 clrwdt ; 1 ciclo delay return ; 2+2 Fin. END Prof. Luis Zurita 35 Microcontroladores I