Subrutina Display LCD 16X2, AVR ensamblador (assembler)
LINK DE DESCARGA AL FINAL DEL POST
;***************************************************************************
; SUBRUTINA DE CONTROL Y ESCRITURA EN DISPLAY LCD 16X2 (1602), PARA DIFERENTES
; FRECUENCIAS DE OPERACION, EN LENGUAJE ENSAMBLADOR, COMPATIBLE PARA DIFERENTES
; FAMILIAS DE MICOCONTROLADORES AVR DE 8 BITS.
;
; REALIZADA POR ING. C.N. JOSUE NORBERTO MARTINEZ F. (OCTUBRE 2018)
; produccionesrek@gmail.com
; http://prdiagramasyelectronica.blogspot.com/
;***************************************************************************
;
;EL CODIGO DE ESTAS SUBRUTINAS PUEDE SER AGREGADO AL CODIGO DEL PROGRAMA
;PRINCIPAL O PUEDE SER INCLUIDO UTILIZANDO EL COMANDO ".INCLUDE"
;
; EJEMPLO:
; .INCLUDE "SUBRUTINA_LCD_16X2_4HILOS.INC"
;
;
;PARA EJECUTAR ESTA SUBRUTINA SE DEBEN SEGUIR LOS SIGUIENTES PASOS:
;1.- DEFINIR LAS CONSTANTES:
; FRECUENCIA_MHZ
; REFERENCIA_CERO
; DDRX_DISPLAY
; PORTX_DISPLAY
; DATA_BIT4
; DATA_BIT5
; DATA_BIT6
; DATA_BIT7
; REGISTER_SELECT
; ENABLE_PIN
;
;2.- INICIALIZAR EL DISPLAY EJECUTANDO LA SUBRUTINA:
; INICIAR_SUBRUTINA_LCD16X2_4HILOS
;
;3.- ENCENDER EL DISPLAY EJECUTANDO LA SUBRUTINA:
; ENCIENDE_DISPLAY
;
;4.- UTILIZAR EL COMANDO "RCALL" PARA EJECUTAR LA DIFERENTES SUBRUTINAS DE CONTROL
; Y ESCRITURA DISPONIBLES EN ESTE ARCHIVO
;
;
;5.- NO ES NECESARIO CONFIGURAR EL PUERTO DDR, YA QUE LA CONFIGURACION DE ENTRADAS Y SALIDAS
; PARA EL DISPLAY SE ENCUENTRA INCLUIDA EN ESTA SUBRUTINA.
;
;
;EJEMPLO DE IMPLEMENTACION:
;---------------------------------------------------------------------
;
; .EQU FRECUENCIA_MHZ = 4 ;FRECUENCIA DEL MICROCONTROLADOR (MHZ)
; .EQU REFERENCIA_CERO = 0 ;NO CAMBIAR
; .EQU DDRX_DISPLAY = DDRB ;DDRX (SELECCIONAR PUERTO DE SALIDA DEL AVR)
; .EQU PORTX_DISPLAY = PORTB ;PORTX (SELECCIONAR PUERTO DE SALIDA DEL AVR)
; .EQU DATA_BIT4 = 0 ;PX0 (PIN DE SALIDA)
; .EQU DATA_BIT5 = 1 ;PX1 (PIN DE SALIDA)
; .EQU DATA_BIT6 = 2 ;PX2 (PIN DE SALIDA)
; .EQU DATA_BIT7 = 3 ;PX3 (PIN DE SALIDA)
; .EQU REGISTER_SELECT = 4 ;PX4 (PIN DE SALIDA)
; .EQU ENABLE_PIN = 5 ;PX5 (PIN DE SALIDA)
;
; RCALL INICIAR_SUBRUTINA_LCD16X2_4HILOS ;CONFIGURACION INICIAL
; RCALL ENCIENDE_DISPLAY ;ENCIENDE DISPLAY, CURSOR EN PRIMERA LINEA
; RCALL H ;TEXTO EN PRIMER RENGLON "HOLA"
; RCALL O
; RCALL L
; RCALL A
; RCALL CURSOR_A_LINEA2 ;CURSOR EN 2DA LINEA
; RCALL M ;TEXTO EN SEGUNDO RENGLON "MUNDO"
; RCALL U
; RCALL N
; RCALL D
; RCALL O
;
; FIN: ;FIN
; RJMP FIN
;
; .INCLUDE "SUBRUTINA_LCD_16X2_4HILOS.INC"
;---------------------------------------------------------------------
;
;ESTA SUBRUTINA SOBREESCRIBE EL REGISTRO (R16) DURANTE LAS
;OPERACIONES QUE REALIZA
;
;NOTA: CON EL FIN DE DISMINUIR EL TAMAÑO DE MEMORIA UTILIZADO, LAS SUBRUTINAS DE LAS
;LETRAS Y SIMBOLOS QUE NO SE UTILICEN PUEDEN SER BORRADAS DE ESTE ARCHIVO (OPCIONAL).
;
;***************************************************************************
;LISTA DE SUBRUTINAS DISPONIBLES EN ESTE ARCHIVO
;***************************************************************************
;
;SUBRUTINA FUNCION
;
;RCALL INICIAR_SUBRUTINA_LCD16X2_4HILOS - - - - CONFIGURA LOS PUERTOS DEL MICROCONTROLADOR
; Y LOS AJUSTES GENERALES DEL DISPLAY, SE EJECUTA
; UNA SOLA VEZ AL ENCENDER EL DISPLAY
;RCALL APAGA_DISPLAY - - - - - - - - - - - - - APAGA EL DISPLAY
; (LOS DATOS DEL DISPLAY NO SE BORRAN)
;RCALL BORRA_MEMORIA_DISPLAY - - - - - - - - - BORRA LOS DATOS DEL DISPLAY
;RCALL ENCIENDE_DISPLAY - - - - - - - - - - - - ENCIENDE EL DISPLAY Y ACTIVA EL CURSOR
;RCALL ENCIENDE_DISPLAY_SIN_CURSOR - - - - - - ENCIENDE EL DISPLAY SIN CURSOR
;RCALL CURSOR_A_HOME - - - - - - - - - - - - - COLOCA EL CURSOR EN EL INICIO (IZQUIERDA)
; DEL PRIMER RENGLON DEL DISPLAY
;RCALL CURSOR_A_LINEA2 - - - - - - - - - - - - COLOCA EL CURSOR EN EL INICIO (IZQUIERDA)
; DEL SEGUNDO SENGLON
;RCALL CURSOR_A_LA_DERECHA - - - - - - - - - - MUEVE EL CURSOR UNA POSICION A LA DERECHA SIN
; MODIFICAR NINGUN TEXTO EN EL DISPLAY
;RCALL CURSOR_A_LA_IZQUIERDA - - - - - - - - - MUEVE EL CURSOR UNA POSICION A LA IZQUIERDA SIN
; MODIFICAR NINGUN TEXTO EN EL DISPLAY
;RCALL DISPLAY_A_LA_DERECHA - - - - - - - - - - MUEVE TODO EL TEXTO DEL DISPLAY UN ESPACIO A LA DERECHA
; (LA COLUMNA 16 VUELVE A APARECER EN LA COLUMNA 1
; DESPUES DE HABERSE DESPLAZADO 24 ESPACIOS A LA DERECHA)
;RCALL DISPLAY_A_LA_IZQUIERDA - - - - - - - - - MUEVE TODO EL TEXTO DEL DISPLAY UN ESPACIO A LA IZQUIERDA
; (LA COLUMNA 1 VUELVE A APARECER EN LA COLUMNA 16
; DESPUES DE HABERSE DESPLAZADO 24 ESPACIOS A LA IZQUIERDA)
;
;SUBRUTINA FUNCION
;
;RCALL A ;ESCRIBE "A" EN EL DISPLAY
;RCALL B ;ESCRIBE "B" EN EL DISPLAY
;RCALL C ;ESCRIBE "C" EN EL DISPLAY
;RCALL D ;ESCRIBE "D" EN EL DISPLAY
;RCALL E ;ESCRIBE "E" EN EL DISPLAY
; . .
; . .
; . .
;RCALL U ;ESCRIBE "U" EN EL DISPLAY
;RCALL V ;ESCRIBE "V" EN EL DISPLAY
;RCALL W ;ESCRIBE "W" EN EL DISPLAY
;RCALL XX ;ESCRIBE "X" EN EL DISPLAY
;RCALL YY ;ESCRIBE "Y" EN EL DISPLAY
;RCALL ZZ ;ESCRIBE "Z" EN EL DISPLAY
;RCALL CERO ;ESCRIBE "0" EN EL DISPLAY
;RCALL UNO ;ESCRIBE "1" EN EL DISPLAY
;RCALL DOS ;ESCRIBE "2" EN EL DISPLAY
; . .
; . .
; . .
;RCALL OCHO ;ESCRIBE "8" EN EL DISPLAY
;RCALL NUEVE ;ESCRIBE "9" EN EL DISPLAY
;RCALL ADMIRACION ;ESCRIBE "!" EN EL DISPLAY
;RCALL COMILLAS ;ESCRIBE " " " EN EL DISPLAY
;RCALL GATO ;ESCRIBE "#" EN EL DISPLAY
;RCALL MONEDA ;ESCRIBE "$" EN EL DISPLAY
;RCALL PORCENTAJE ;ESCRIBE "%" EN EL DISPLAY
;RCALL ABRE_PARENTESIS ;ESCRIBE "(" EN EL DISPLAY
;RCALL CIERRA_PARENTESIS ;ESCRIBE ")" EN EL DISPLAY
;RCALL MAS ;ESCRIBE "+" EN EL DISPLAY
;RCALL COMA ;ESCRIBE "," EN EL DISPLAY
;RCALL MENOS ;ESCRIBE "-" EN EL DISPLAY
;RCALL PUNTO ;ESCRIBE "." EN EL DISPLAY
;RCALL DIAGONAL ;ESCRIBE "/" EN EL DISPLAY
;RCALL DOS_PUNTOS ;ESCRIBE ":" EN EL DISPLAY
;RCALL PUNTO_Y_COMA ;ESCRIBE ";" EN EL DISPLAY
;RCALL MENOR_QUE ;ESCRIBE "<" EN EL DISPLAY
;RCALL IGUAL ;ESCRIBE "=" EN EL DISPLAY
;RCALL MAYOR_QUE ;ESCRIBE ">" EN EL DISPLAY
;RCALL INTERROGACION ;ESCRIBE "?" EN EL DISPLAY
;RCALL POTENCIA ;ESCRIBE SIMBOLO DE POTENCIA DE UN NUMERO
;RCALL GUION_BAJO ;ESCRIBE "_" EN EL DISPLAY
;RCALL FLECHA_DERECHA ;DIBUJA UNA FLECHA APUNTANDO A LA DERECHA
;RCALL FLECHA_IZQUIERDA ;DIBUJA UNA FLECHA APUNTANDO A LA IZQUIERDA
;RCALL GRADOS ;ESCRIBE "°" EN EL DISPLAY
;RCALL MIU ;ESCRIBE LA LETRA GRIEGA "MU", SUFIJO DE "MICRO-"
;RCALL RAIZ_CUADRADA ;ESCRIBE SIMBOLO DE "RAIZ CUADRADA"
;RCALL ENHE ;ESCRIBE "ñ" EN EL DISPLAY
;RCALL INFINITO ;ESCRIBE SIMBOLO DE "INFINITO"
;RCALL OHM ;ESCRIBE EL SIMBOLO DE "OHMS"
;RCALL PI ;ESCRIBE EL SIMBOLO "PI" EN EL DISPLAY
;RCALL ENTRE ;ESCRIBE EL SIMBOLO DE DIVISION EN EL DISPLAY
;RCALL ESPACIO ;DEJA UN ESPACIO VACIO Y AVANZA EL CURSOR
;RCALL RELLENO ;RELLENA UN ESPACIO Y AVANZA EL CURSOR
;***************************************************************************
LINK DE DESCARGA DEL CÓDIGO DE LA SUBRUTINA, EN LENGUAJE ENSAMBLADOR
Tamaño: 5KB
Tipo: Archivo comprimido en WinRar