10
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=16F84A INCLUDE <P16F84A.INC>  __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC CBLOCK 0x0C Contador ENDC ORG 0 Inicio call LCD_Inicializa ; Prepara la pantalla LCD. call CGRAM_EscribeDatos movlw MensajeCargando call LCD_Mensaje Principal clrf Contador VisualizaImagen call LCD_Linea1 ; Se sitúa al principio de  la línea 1. movf Contador,W call LCD_Caracter call Retardo_200ms incf Contador,F movlw .6 ; La bateria ani mada está compuesta por 6 imágenes. subwf Contador,W btfss STATUS,C goto VisualizaImagen goto 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 que va a escribir a partir de call LCD_EnviaComando ; la dirección de la CGRAM. clrf Contador CGRAM_EscribeOtro movf Contador,W call CGRAM_Escribe call LCD_Caracter incf Contador,F movlw CGRAM_NUM_IMAGENES * 8 ; Cada imagen ocupa 8 posiciones de CGRA M. subwf Contador,W btfss STATUS,C goto CGRAM_EscribeOtro call LCD_Borra return

PRACTICAS ANIMACIONES

Embed Size (px)

DESCRIPTION

practicas en lenguaje ensamblador para

Citation preview

Page 1: PRACTICAS ANIMACIONES

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

Page 2: PRACTICAS ANIMACIONES

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.

; ________ 

Page 3: PRACTICAS ANIMACIONES

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.

Page 4: PRACTICAS ANIMACIONES

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|

Page 5: PRACTICAS ANIMACIONES

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 ********************************************************************

Page 6: PRACTICAS ANIMACIONES

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

Page 7: PRACTICAS ANIMACIONES

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

Page 8: PRACTICAS ANIMACIONES

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

Page 9: PRACTICAS ANIMACIONES

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' ; | |

Page 10: PRACTICAS ANIMACIONES

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