Curso Micro Tema 3 2
Upcoming SlideShare
Loading in...5
×
 

Curso Micro Tema 3 2

on

  • 5,839 views

Tema 3 complementario de Microcontroladores I del IUT Cumaná

Tema 3 complementario de Microcontroladores I del IUT Cumaná

Statistics

Views

Total Views
5,839
Views on SlideShare
4,064
Embed Views
1,775

Actions

Likes
1
Downloads
325
Comments
0

16 Embeds 1,775

http://iutcumanamicro1.blogspot.com 946
http://www.iutcumanamicro1.blogspot.com 566
http://uptoscrmicro1.blogspot.com 142
http://www.uptoscrmicro1.blogspot.com 66
http://www.slideshare.net 16
http://iutcumanamicro1.blogspot.mx 9
http://iutcumanamicro1.blogspot.com.es 7
http://www.iutcumanamicro1.blogspot.mx 6
http://uptoscrmicro1.blogspot.mx 5
http://www.iutcumanamicro1.blogspot.com.es 4
http://uptoscrmicro1.blogspot.com.ar 2
http://uptoscrmicro1.blogspot.com.es 2
http://www.iutcumanamicro1.blogspot.com.ar 1
http://iutcumanamicro1.blogspot.com.ar 1
http://www.iutcumanamicro.blogspot.com 1
http://iutcumanamicro.blogspot.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Curso Micro Tema 3 2 Curso Micro Tema 3 2 Presentation Transcript

  • TEMA 3. RUTINAS INTERMEDIAS Prof. Luis Zurita Microcontroladores IUT Cumaná
  • SUBRUTINA MIENTRAS SE PRESIONA UNA TECLA Prof. Luis Zurita Microcontroladores IUT Cumaná TECLA PRESIONADA? NO SI DELAY 10 ms PROCESO A
  • PRESIONAR TECLA Y ESPERAR A QUE SE SUELTE PARA EJECUTAR SUBRUTINA Prof. Luis Zurita Microcontroladores IUT Cumaná Tecla Presionada? Retardo 10 ms NO SI Tecla Soltada? NO SI Retardo 10 ms Proceso A
  • ENMASCARAMIENTO Este proceso es muy utilizado cuando se desea segmentar ó separar un registro en dos nibbles (4 bits) y luego en registros de 8 bits. La instrucción ideal para este es la “and” Prof. Luis Zurita Microcontroladores IUT Cumaná
  • ENMASCARAMIENTO
    • DatoA equ 12H
    • DatoL equ 23H
    • DatoH equ 4EH
    • movlw 4CH ; Cargamos a w con 4CH
    • movwf DatoA ; Transferimos 4CH a w
    • movlw 0FH
    • andwf DatoA,0 ; Neutralizamos el nibble
    • ; más significativo de DatoA y lo
    • ; guardamos en w para no alterar el
    • ; contenido de DatoA
    • movwf DatoL ; Lo guardamos en éste
    • movlw F0H
    • andwf DatoA,0 ; Neutralizamos el nibble menos ; significativo de DatoA
    • movwf DatoH
    • swapf DatoH ; Intercambiamos nibbles
    • ; en DatoH para ordenarlo.
    Prof. Luis Zurita Microcontroladores IUT Cumaná
  • ENMASCARAMIENTO
    • También se puede neutralizar un bit o varios bits, selectivamente, según sea nuestra conveniencia.
    Prof. Luis Zurita Microcontroladores IUT Cumaná
  • CALL K PCL 27H 28H 29H 2AH 2BH Prof. Luis Zurita Microcontroladores PROGRAMA PRINCIPAL SUBRUTINA INICIO INSTRUCC A INSTRUCC B INSTRUCC C CALL PROX INSTRUCC D FIN PROX INSTRUCC 1 INSTRUCC 2 RETURN ó RETLW K IUT Cumaná
  • CALL K
    • El llamado a una Subrutina K, desvía el flujo normal del programa, hacia donde se encuentra la etiqueta K.
    • El valor del contador del programa (PC) es guardado en la pila (STACK), que es una memoria tipo FIFO (First In First Out).
    • La familia de la gama media (PIC16FXXX) posee 8 niveles de STACK. Si se sobrepasa de este valor, se pierde la información del contador de programa y el microcontrolador no puede determinar el retorno correcto.
    • Esto ocurre si existen 8 subrutinas anidadas (Subrutinas dentro de subrutinas).
    • Ciertamente, este problema se puede presentar en programas medianos o grandes, pero debe tenerse en cuenta al momento de la programación y elaboración de un diseño.
    Prof. Luis Zurita Microcontroladores IUT Cumaná
  • CALL K Prof. Luis Zurita Microcontroladores M (09H) N (1FH) O (2AH) L (05H) K (03H) P (2EH) Q (30H) R (3CH) T (40H) PILA (STACK) (PCL) IUT Cumaná
  • TEMPORIZANDO SIN EL USO DEL TMR0
    • La temporización sin el uso del temporizador TMR0 se basa en “hacer perder el tiempo” al microcontrolador mientras las ejecuta en lazos o bucles, logrando un retardo (delay) que puede variar según sean las necesidades del programa.
    • Con estos retardos inducidos, podemos generar tiempos para funciones específicas, como la de eliminar rebotes de un pulsador o interruptor por software, lo que nos permite simplificar el hardware que esto acarrea en nuestro circuito aplicado al microcontrolador, dejando el uso del temporizador TMR0, para otros usos.
    Prof. Luis Zurita IUT Cumaná
  • EJEMPLO DE UN RETARDO POR SOFTWARE SIN TMR0
    • RETARDO movlw d’16’ ; (1 ciclo)
    • movwf REG2 ; Cargamos REG1 con 16 (1 ciclo)
    • DOS movlw d’14’ ; (1 ciclo)
    • movwf REG1 ; Cargamos REG2 con 14 (1 ciclo)
    • UNO decfsz REG1,1 ; Dec REG2 (13 veces*1 ciclo + 1*2 ciclos)
    • goto UNO ; Se mantiene dec. REG2 (2 ciclos)
    • TRES decfsz REG2,1 ; Dec REG1 (16 veces * 1ciclo)
    • goto DOS ; Va a recargar REG2 (2 ciclos)
    • return ; (2 ciclos)
    • La subrutina UNO, tarda 3 ciclos que se repite 13 veces hasta que REG2 se hace cero y salta (2 ciclos)= (3*13 ciclos)= 39 ciclos.
    • La subrutina DOS consume 2 ciclos + 3 ciclos que consume la subrutina TRES= 5 ciclos, y ambas se repiten al igual que la UNO, por 16 veces = [39 ciclos (de la rutina UNO)+ 5 ciclos (de las rutinas DOS y TRES)*16 ]= 704 ciclos
    • Pero, cada vez que se salta de la subrutina UNO a la TRES se consumen 2 ciclos y esto se repite por 16 veces: 2 ciclos *16 = 32 ciclos
    • Adicional a esto, al iniciarse la rutina de retardo, han transcurrido 4 ciclos (hasta que empieza la subrutina UNO)
    • En total= 704 ciclos + 32 ciclos + 4 ciclos + 2 ciclos (al ejecutarse “return”) = 742 ciclos.
    Prof. Luis Zurita IUT Cumaná
  • RUTINA DE CONVERSIÓN BINARIO A BCD (8 BITS) Prof. Luis Zurita Microcontroladores INICIO DATOX ->W W ->RESP U=0 D=0 C=0 RESP= RESP-100 C=0? incf C,1 incf D,1 MOSTRAR EN DISPLAY FIN RESP= RESP+100 RESP= RESP-10 C=0? RESP= RESP+10 RESP= RESP-1 C=0? incf U,1 NO SI SI SI NO NO IUT Cumaná
  • RUTINA DE CONVERSIÓN DE BCD A BINARIO (8 BITS) Prof. Luis Zurita Microcontroladores INICIO DAT=0 UNI=X DEC=Y CEN=Z CEN=CEN-1 C=0? DAT=DAT+100 DAT=DAT+10 RETURN DEC=DEC-1 C=0? UNI=UNI-1 C=0? DAT=DAT+1 NO SI NO NO SI SI IUT Cumaná
  • TABLAS
    • Las tablas nos permiten extraer valores para ser utilizados en otras tareas, tales como la visualización de datos, linealización de valores, conversión de códigos, etc.
    • Su funcionamiento se basa en la manipulación del contador de programa (PC) mediante la suma de un puntero de tabla (registro) y la parte baja del contador de programa (PCL).
    • Para un rango máximo de 256 valores, se manipula directamente el PCL. En caso de valores superiores, se debe manipular adicionalmente el PCLATH, que amplia la capacidad de datos en una tabla.
    • La instrucción RETLW K, está muy asociada a las tablas, ya que cuando se llama a una subrutina “tabla”, esta instrucción extrae el valor de la misma previamente seleccionada por el puntero de tabla.
    Prof. Luis Zurita Microcontroladores IUT Cumaná
  • TABLAS
    • Normalmente, cuando se llama a una subrutina “tabla”, previamente se carga el valor del puntero.
    • Dentro de la subrutina “tabla”, el puntero se suma al PCL, “saltando” al valor correspondiente indicado por el puntero.
    • Veamos el siguiente programa:
    movf CONTADOR,0 call TABLA movwf PORTB Prof. Luis Zurita Microcontroladores TABLA addwf PCL,1 retlw ‘Valor0’ retlw ‘Valor1’ retlw ‘Valor2’ … … … retlw ‘ValorN’ Puntero + PCL IUT Cumaná
  • VARIAS OPCIONES Prof. Luis Zurita Microcontroladores TECLA1 ACT? NO SI Proceso B TECLA2 ACT? NO SI TECLA2 ACT? Proceso D Proceso A Proceso C NO SI TECLA3 ACT? SI NO IUT Cumaná
  • MULTIPLEXACIÓN DE DISPLAYS
    • La multiplexación de displays, consiste en la activación secuencial de varios displays. Se activa un display y se desactiva el resto, mientras el dato que se desea mostrar es colocado inmediatamente por el puerto correspondiente.
    • Seguidamente, se desactiva este display, se activa el display siguiente y se desactivan los restantes y se coloca el dato correspondiente. Y así sucesivamente.
    • Se recomienda que entre activación y desactivación de displays se utilice un tiempo menor a 5 ms.
    • El efecto óptico percibido por el ojo humano es el de una cifra fija.
    Prof. Luis Zurita Microcontroladores IUT Cumaná
  • MULTIPLEXACIÓN DE DISPLAYS
    • Paso a paso: (Asumamos que tenemos tres displays)
      • Se activa display de UNIDAD
      • Se desactiva el resto de los displays
      • Se muestra el dato de UNIDAD
      • 4) Se desactiva los displays de UNIDAD y CENTENA
      • 5) Se activa el display de DECENA
      • 6) Se muestra el dato de DECENA
      • 7) Se desactivan los displays de UNIDAD y DECENA
      • 8) Se activa el display de CENTENA
      • 9) Se muestra el dato de CENTENA
    Prof. Luis Zurita Microcontroladores IUT Cumaná
  • MULTIPLEXACIÓN DE DISPLAYS Prof. Luis Zurita Microcontroladores MOSTRAR DIG1 ->W W->PORTA HABI DISP1 RETARDO 1ms HABI DISP2 DIG2->W W->PORTA RETARDO 1ms RETURN IUT Cumaná
  • ESTRUCTURA DE CONTADORES CONTADOR ASCENDENTE SIMPLE INICIO CONTADOR=0 MOSTRAR CONTADOR=0 MOSTRAR MOSTRAR INCF CONTADOR,1 CONTADOR =9? 1 1 NO SI
  • CONTADOR ASCENDENTE COMPLEJO INICIO UNI=0 DEC=0 RETARDO UNI=0 MOSTRAR INCF DEC,1 RA0=1? 1 1 NO SI MOSTRAR UNI=9? MOSTRAR INCF UNI,1 NO SI NO SI DEC=9? MOSTRAR DEC=0
  • ESTRUCTURA DE CONTADORES CONTADOR DESCENDENTE SIMPLE INICIO CONTADOR=0 MOSTRAR CONTADOR=9 MOSTRAR MOSTRAR DECF CONTADOR,1 CONTADOR =0? 1 1 NO SI
  • CONTADOR DESCENDENTE COMPLEJO INICIO UNI=0 DEC=0 RETARDO UNI=9 MOSTRAR DECF DEC,1 RA0=1? 1 1 NO SI MOSTRAR UNI=0? MOSTRAR DECF UNI,1 NO SI NO SI DEC=0? MOSTRAR DEC=9
  • DE LA IDEA AL PROGRAMA (PARTE I)
    • Delimitar / Diseñar el Hardware
    • Diagrama de Flujo para establecer el funcionamiento lógico
    • Realizar programa en lenguaje ensamblador.
    • Ejercicios propuestos:
      • Leer el valor del puerto A y visualizarlo por el Puerto B
      • Taladro / Torno
      • Manipular Display
      • Estacionamiento Local Comercial
      • Doble interruptor
    Prof. Luis Zurita Microcontroladores IUT Cumaná