practicas animaciones
Post on 05-Mar-2016
251 Views
Preview:
DESCRIPTION
TRANSCRIPT
7/21/2019 PRACTICAS ANIMACIONES
http://slidepdf.com/reader/full/practicas-animaciones 1/10
PRACTICAS ANIMACIONES EN LCD
PRACTICA 1:Muestra la animación de la carga de una bateria desde 0% a 100%
LIST P=16F84AINCLUDE <P16F84A.INC> __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
CBLOCK 0x0CContadorENDC
ORG 0Inicio
call LCD_Inicializa ; Prepara la pantalla LCD.call CGRAM_EscribeDatosmovlw MensajeCargandocall LCD_Mensaje
Principalclrf Contador
VisualizaImagencall LCD_Linea1 ; Se sitúa al principio de
la línea 1.
movf Contador,Wcall LCD_Caractercall Retardo_200msincf Contador,Fmovlw .6 ; La bateria ani
mada está compuesta por 6 imágenes.subwf Contador,Wbtfss STATUS,Cgoto VisualizaImagengoto Principal
; Subrutina LCD_Escribe CGRAM -----------------------------------------------------------
;; Escribe en la CGRAM los símbolos de la bateria para la animación.;CGRAM_NUM_IMAGENES EQU 6;CGRAM_EscribeDatos
movlw b'01000000' ; Comando indicando queva a escribir a partir de
call LCD_EnviaComando ; la dirección de la CGRAM.clrf Contador
CGRAM_EscribeOtromovf Contador,Wcall CGRAM_Escribe
call LCD_Caracterincf Contador,Fmovlw CGRAM_NUM_IMAGENES * 8 ; Cada imagen ocupa 8 posiciones de CGRA
M.subwf Contador,Wbtfss STATUS,Cgoto CGRAM_EscribeOtrocall LCD_Borrareturn
7/21/2019 PRACTICAS ANIMACIONES
http://slidepdf.com/reader/full/practicas-animaciones 2/10
CGRAM_Escribeaddwf PCL,F
; Bateria al 0%, byte 0 de la CGRAM.; ________
retlw b'00001110' ; | xxx |retlw b'00001010' ; | x x |retlw b'00010001' ; | x x|retlw b'00010001' ; | x x|retlw b'00010001' ; | x x|retlw b'00010001' ; | x x|retlw b'00010001' ; | x x|retlw b'00011111' ; | xxxxx|
; --------; Bateria al 20%, byte 1 de la CGRAM.
; ________ retlw b'00001110' ; | xxx |retlw b'00001010' ; | x x |retlw b'00010001' ; | x x|retlw b'00010001' ; | x x|retlw b'00010001' ; | x x|retlw b'00010001' ; | x x|retlw b'00011111' ; | xxxxx|retlw b'00011111' ; | xxxxx|
; --------; Bateria al 40%, byte 2 de la CGRAM.; ________
retlw b'00001110' ; | xxx |retlw b'00001010' ; | x x |retlw b'00010001' ; | x x|retlw b'00010001' ; | x x|retlw b'00010001' ; | x x|retlw b'00011111' ; | xxxxx|retlw b'00011111' ; | xxxxx|retlw b'00011111' ; | xxxxx|
; --------; Bateria al 60%, byte 3 de la CGRAM.
; ________ retlw b'00001110' ; | xxx |retlw b'00001010' ; | x x |retlw b'00010001' ; | x x|retlw b'00010001' ; | x x|retlw b'00011111' ; | xxxxx|retlw b'00011111' ; | xxxxx|retlw b'00011111' ; | xxxxx|retlw b'00011111' ; | xxxxx|
; --------; Bateria al 80%, byte 4 de la CGRAM.
; ________ retlw b'00001110' ; | xxx |
retlw b'00001010' ; | x x |retlw b'00010001' ; | x x|retlw b'00011111' ; | xxxxx|retlw b'00011111' ; | xxxxx|retlw b'00011111' ; | xxxxx|retlw b'00011111' ; | xxxxx|retlw b'00011111' ; | xxxxx|
; --------; Bateria al 100%, byte 5 de la CGRAM.
; ________
7/21/2019 PRACTICAS ANIMACIONES
http://slidepdf.com/reader/full/practicas-animaciones 3/10
retlw b'00001110' ; | xxx |retlw b'00001010' ; | x x |retlw b'00011111' ; | xxxxx|retlw b'00011111' ; | xxxxx|retlw b'00011111' ; | xxxxx|retlw b'00011111' ; | xxxxx|retlw b'00011111' ; | xxxxx|retlw b'00011111' ; | xxxxx|
; --------
; "Mensajes" ----------------------------------------------------------------------------;Mensajes
addwf PCL,FMensajeCargando
DT " Cargando", 0x00
INCLUDE <RETARDOS.INC>INCLUDE <LCD_4BIT.INC>INCLUDE <LCD_MENS.INC>END
PRACTICA 2 :Muestra en la primera línea de la pantalla del LCD los siguientes símbolos:teléfono colgado, teléfono descolgado, y un comecocos en diferentes fases de apertura de la boca.
LIST P=16F84INCLUDE <P16F84A.INC> __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
CBLOCK 0x0CContadorENDC
ORG 0x0Inicio
call LCD_Inicializacall CGRAM_EscribeDatos ;Escribe en la CGRAM los simbolos de la
bateria para la animaciónPrincipal
clrf Contador ; Primero apunta a la imagen situada en el byte 0 de CGRAM.VisualizaImagen
movf Contador,W ; Visualiza la imagen apuntada por Contador de la CGRAM.call LCD_Caracterincf Contador,F ; Apunta a la siguiente imagen.movf Contador,Wsublw CGRAM_NUM_IMAGENES ; (W) = CGRAM_NUM_IMAGENES - (Contador)btfsc STATUS,C ; ¿Ha terminado de imprimir todas
las imagenes?goto VisualizaImagensleep ; Pasa a bajo consumo.
7/21/2019 PRACTICAS ANIMACIONES
http://slidepdf.com/reader/full/practicas-animaciones 4/10
goto Principal
; Subrutina LCD_Escribe CGRAM -----------------------------------------------------------;; Escribe en la CGRAM los símbolos.;CGRAM_NUM_IMAGENES EQU 6;CGRAM_EscribeDatos
movlw b'01000000' ; Comando indicando queva a escribir a partir de
call LCD_EnviaComando ; la dirección de la CGRAM.clrf Contador
CGRAM_EscribeOtromovf Contador,Wcall CGRAM_Escribecall LCD_Caracterincf Contador,Fmovlw CGRAM_NUM_IMAGENES * 8 ; Cada imagen ocupa 8 posiciones de CGRA
M.subwf Contador,Wbtfss STATUS,Cgoto CGRAM_EscribeOtro
call LCD_Borrareturn
CGRAM_Escribeaddwf PCL,F
; Simbolo teléfono colgado, byte 0 de la CGRAM.; ________
retlw b'00000000' ; | |retlw b'00000000' ; | |retlw b'00000000' ; | |retlw b'00000000' ; | |retlw b'00001110' ; | xxx |
retlw b'00010101' ; | x x x|retlw b'00001110' ; | xxx |retlw b'00011111' ; | xxxxx|
; --------; Simbolo teléfono descolgado, byte 1 de la CGRAM.
; ________ retlw b'00000000' ; | |retlw b'00001110' ; | xxx |retlw b'00010001' ; | x x|retlw b'00000000' ; | |retlw b'00000100' ; | x |retlw b'00000100' ; | x |retlw b'00001110' ; | xxx |
retlw b'00011111' ; | xxxxx| ; --------; Simbolo comecoco_1, byte 2 de la CGRAM.
; ________ retlw b'00000000' ; | |retlw b'00000000' ; | |retlw b'00000000' ; | |retlw b'00001110' ; | xxx |retlw b'00010001' ; | x x|retlw b'00010111' ; | x xxx|
7/21/2019 PRACTICAS ANIMACIONES
http://slidepdf.com/reader/full/practicas-animaciones 5/10
retlw b'00010001' ; | x x|retlw b'00001110' ; | xxx |
; --------; Simbolo comecoco_2, byte 3 de la CGRAM.
; ________ retlw b'00000000' ; | |retlw b'00000000' ; | |retlw b'00000000' ; | |retlw b'00001110' ; | xxx |retlw b'00010010' ; | x x |retlw b'00010100' ; | x x |retlw b'00010010' ; | x x |retlw b'00001110' ; | xxx |
; --------; Simbolo comecoco_3, byte 4 de la CGRAM.
; ________ retlw b'00000000' ; | |retlw b'00000000' ; | |retlw b'00000000' ; | |retlw b'00001110' ; | xxx |retlw b'00010100' ; | x x |retlw b'00011000' ; | xx |retlw b'00010100' ; | x x |retlw b'00001110' ; | xxx |
; --------; Simbolo comecoco_4, byte 5 de la CGRAM.; ________
retlw b'00000000' ; | |retlw b'00000000' ; | |retlw b'00000000' ; | |retlw b'00001110' ; | xxx |retlw b'00011111' ; | xxxxx|retlw b'00011111' ; | xxxxx|retlw b'00011111' ; | xxxxx|retlw b'00001110' ; | xxx |
; --------
INCLUDE <RETARDOS.INC>INCLUDE <LCD_4BIT.INC>
END
;PRACTICA 3: Muestra la simbolo de un comecocos abriendo y cerrando la boca detrás de un coco, ambos;inmóviles en el mismo sitio del LCD.
LIST P=16F84A
INCLUDE <P16F84A.INC> __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
CBLOCK 0x0CContadorENDC
; ZONA DE CÓDIGOS ********************************************************************
7/21/2019 PRACTICAS ANIMACIONES
http://slidepdf.com/reader/full/practicas-animaciones 6/10
ORG 0Inicio
call LCD_Inicializa ; Prepara la pantalla.call CGRAM_EscribeDatos ; Escribe en la CGRAM los simbol
os de la animaciónmovlw 0x02 ; En la posición 2 de la lín
ea 2 dibuja el coco.call LCD_PosicionLinea1movlw 0x03 ; El símbolo del coco está e
n esta posición de lacall LCD_Caracter ; CGRAM.
Principalmovlw 0x01 ; En la posición 1 de la lín
ea 1 dibuja el comecocos.call LCD_PosicionLinea1 ; en las diferentes fases de la
animación.movlw 0x00 ; En el byte 0 de la CGR
AM está el comecocos con lacall LCD_Caracter ; boca cerrada.call Retardo_200msmovlw 0x01call LCD_PosicionLinea1movlw 0x01 ; En el byte 1 de la CGR
AM está el comecocos con la
call LCD_Caracter ; boca entreabierta.call Retardo_200msmovlw 0x01call LCD_PosicionLinea1movlw 0x02 ; En el byte 2 de la CGR
AM está el comecocos con lacall LCD_Caracter ; boca abierta.call Retardo_200msgoto Principal
; Subrutina LCD_Escribe CGRAM -----------------------------------------------------------;
; Escribe en la CGRAM los símbolos de los comecocos.;CGRAM_NUM_IMAGENES EQU 4;CGRAM_EscribeDatos
movlw b'01000000' ; Comando indicando queva a escribir a partir de
call LCD_EnviaComando ; la dirección de la CGRAM.clrf Contador
CGRAM_EscribeOtromovf Contador,Wcall CGRAM_Escribecall LCD_Caracter
incf Contador,Fmovlw CGRAM_NUM_IMAGENES * 8 ; Cada imagen ocupa 8 posiciones de CGRAM.
subwf Contador,Wbtfss STATUS,Cgoto CGRAM_EscribeOtrocall LCD_Borrareturn
CGRAM_Escribe
7/21/2019 PRACTICAS ANIMACIONES
http://slidepdf.com/reader/full/practicas-animaciones 7/10
addwf PCL,F
; Símbolo comecoco boca cerrada, byte 0 de la CGRAM.; ________
retlw b'00000000' ; | |retlw b'00000000' ; | |retlw b'00001110' ; | xxx |retlw b'00010001' ; | x x|retlw b'00010111' ; | x xxx|retlw b'00010001' ; | x x|retlw b'00001110' ; | xxx |retlw b'00000000' ; | |
; --------
; Símbolo comecoco boca entreabierta, byte 1 de la CGRAM.; ________
retlw b'00000000' ; | |retlw b'00000000' ; | |retlw b'00001110' ; | xxx |retlw b'00010010' ; | x x |retlw b'00010100' ; | x x |retlw b'00010010' ; | x x |retlw b'00001110' ; | xxx |retlw b'00000000' ; | |
; --------; Símbolo comecoco boca abierta, byte 2 de la CGRAM.
; ________ retlw b'00000000' ; | |retlw b'00000000' ; | |retlw b'00001110' ; | xxx |retlw b'00010100' ; | x x |retlw b'00011000' ; | xx |retlw b'00010100' ; | x x |retlw b'00001110' ; | xxx |retlw b'00000000' ; | |
; --------
; Símbolo del coco, byte 3 de la CGRAM.; ________
retlw b'00000000' ; | |retlw b'00000000' ; | |retlw b'00001110' ; | xxx |retlw b'00011111' ; | xxxxx|retlw b'00011111' ; | xxxxx|retlw b'00011111' ; | xxxxx|retlw b'00001110' ; | xxx |retlw b'00000000' ; | |
; --------
INCLUDE <RETARDOS.INC>INCLUDE <LCD_4BIT.INC>
END
PRACTICA 4
Muestra la animación de un comecocos que persigue a un coco a lo largo de la prime
7/21/2019 PRACTICAS ANIMACIONES
http://slidepdf.com/reader/full/practicas-animaciones 8/10
ra línea de la pantalla del LCD.
LIST P=16F84AINCLUDE <P16F84A.INC> __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
CBLOCK 0x0CContadorPosicion_xENDC
LONGITUD_LINEA EQU .16
; ZONA DE CÓDIGOS ********************************************************************
ORG 0Inicio
call LCD_Inicializa ; Prepara la pantalla.call CGRAM_EscribeDatos ; Escribe en la CGRAM los símbolos
de los comecocos.Principal
movlw 0x03 ; Representa el coco que está en el byte 3 de la
call LCD_Caracter ; CGRAM.call Retardo_500msmovlw LONGITUD_LINEA+1movwf Contadorclrf Posicion_x
DesplazaDerechacall LCD_Borraincf Posicion_x,Wcall LCD_PosicionLinea1movlw 0x03call LCD_Caractercall ComecocosDerechaincf Posicion_x,F
decfsz Contador,fgoto DesplazaDerechacall LCD_Borragoto Principal
; Subrutina ComecocosDerecha -----------------------------------------------------------;; Visualiza el comecocos animado hacia la derecha en la línea 1.;ComecocosDerecha
movf Posicion_x,Wcall LCD_PosicionLinea1
movlw 0x00call LCD_Caractercall Retardo_200msmovf Posicion_x,Wcall LCD_PosicionLinea1movlw 0x01call LCD_Caractercall Retardo_200msmovf Posicion_x,Wcall LCD_PosicionLinea1
7/21/2019 PRACTICAS ANIMACIONES
http://slidepdf.com/reader/full/practicas-animaciones 9/10
movlw 0x02call LCD_Caractercall Retardo_200msreturn
; Subrutina LCD_Escribe CGRAM -----------------------------------------------------------;; Escribe en la CGRAM los símbolos de los comecocos.;CGRAM_NUM_IMAGENES EQU 8;CGRAM_EscribeDatos
movlw b'01000000' ; Comando indicando queva a escribir a partir de
call LCD_EnviaComando ; la dirección de la CGRAM.clrf Contador
CGRAM_EscribeOtromovf Contador,Wcall CGRAM_Escribecall LCD_Caracterincf Contador,Fmovlw CGRAM_NUM_IMAGENES * 8 ; Cada imagen ocupa 8 posiciones de CGRA
M.
subwf Contador,Wbtfss STATUS,Cgoto CGRAM_EscribeOtrocall LCD_Borrareturn
CGRAM_Escribeaddwf PCL,F
; Símbolo comecoco, byte 0 de la CGRAM.; ________
retlw b'00000000' ; | |retlw b'00000000' ; | |
retlw b'00001110' ; | xxx |retlw b'00010001' ; | x x|retlw b'00010111' ; | x xxx|retlw b'00010001' ; | x x|retlw b'00001110' ; | xxx |retlw b'00000000' ; | |
; --------
; Símbolo comecoco, byte 1 de la CGRAM.; ________
retlw b'00000000' ; | |retlw b'00000000' ; | |retlw b'00001110' ; | xxx |
retlw b'00010010' ; | x x |retlw b'00010100' ; | x x |retlw b'00010010' ; | x x |retlw b'00001110' ; | xxx |retlw b'00000000' ; | |
; --------
; Símbolo comecoco, byte 2 de la CGRAM.; ________
retlw b'00000000' ; | |
7/21/2019 PRACTICAS ANIMACIONES
http://slidepdf.com/reader/full/practicas-animaciones 10/10
retlw b'00000000' ; | |retlw b'00001110' ; | xxx |retlw b'00010100' ; | x x |retlw b'00011000' ; | xx |retlw b'00010100' ; | x x |retlw b'00001110' ; | xxx |retlw b'00000000' ; | |
; --------
; Símbolo comecoco, byte 3 de la CGRAM.; ________
retlw b'00000000' ; | |retlw b'00000000' ; | |retlw b'00001110' ; | xxx |retlw b'00011111' ; | xxxxx|retlw b'00011111' ; | xxxxx|retlw b'00011111' ; | xxxxx|retlw b'00001110' ; | xxx |retlw b'00000000' ; | |
; --------
INCLUDE <RETARDOS.INC>INCLUDE <LCD_4BIT.INC>
END
EJERCICIOS
EJERCICIO 1: GENERAR UNA ANIMACION PERSONALIZADA.
EJERCICIO 2: GENERAR UNA ANIMACION, SIMILAR A LA PRACTICA 3 Y 4.
NOTA: ES IMPORTANTE EMPLEAR SU CREATIVIDAD E INGENIO.
ATTE. M. en C. M. ALEJANDRO OJEDA MISSES
top related