Close Menu
    Facebook X (Twitter) Instagram
    Facebook YouTube LinkedIn
    Industry SurferIndustry Surfer
    Inicio - Billboard Scrolling con pantalla LCD y Raspberry Pi Pico
    Cursos

    Billboard Scrolling con pantalla LCD y Raspberry Pi Pico

    4 Mins Read Cursos
    Facebook Twitter Pinterest LinkedIn Tumblr Email
    Billboard Scrolling con pantalla LCD y Raspberry Pi Pico
    Share
    Facebook Twitter LinkedIn Pinterest Email

    “”“Proporciona una API para comunicarse con pantallas LCD de caracteres compatibles con HD44780”.“”

    importación Hora

    …class LcdApi:

    “”“HD44780 implementa una API para comunicarse con pantallas LCD de caracteres compatibles.

    Esta clase solo conoce los comandos que envía a la pantalla LCD y no cómo obtenerlos.

    Póngalos en la pantalla LCD.

    Se espera que la clase derivada implemente hal_xxx función.

    ““”

    # Los siguientes nombres constantes se han eliminado de avrlib lcd.h:

    #ヘッダーファイル, pero cambié la definición del número de bits

    # Máscara de bits.

    #

    # HD44780 Conjunto de comandos del controlador LCD

    LCD_CLR = 0x01 # DB0: Borrar

    LCD_HOME = 0x02 # DB1: Volver a la posición de inicio

    LCD_ENTRY_MODE = 0x04 # DB2: Configuración del modo de entrada

    LCD_ENTRY_INC = 0x02 # –DB1: Incremento

    LCD_ENTRY_SHIFT = 0x01 # –DB0: Mayús

    LCD_ON_CTRL = 0x08 # DB3: Activar LCD/cursor

    LCD_ON_DISPLAY = 0x04 # –DB2: Activar pantalla

    LCD_ON_CURSOR = 0x02 # –DB1: Activar el cursor

    LCD_ON_BLINK = 0x01 # –DB0: Cursor parpadeante

    LCD_MOVE = 0x10 # DB4: Mover cursor/pantalla

    LCD_MOVE_DISP = 0x08 # –DB3: Mover pantalla (0-> mover cursor)

    LCD_MOVE_RIGHT = 0x04 # –DB2: Mover a la derecha (0->Mover a la izquierda)

    LCD_FUNCTION = 0x20 # DB5: Conjunto de funciones

    LCD_FUNCTION_8BIT = 0x10 # –DB4: Configuración del modo de 8 bits (modo 0->4 bits)

    LCD_FUNCTION_2LINES = 0x08 # –DB3: 2 líneas (0->1 líneas)

    LCD_FUNCTION_10DOTS = 0x04 # –DB2: fuente 5×10 (fuente 0->5×7)

    LCD_FUNCTION_RESET = 0x30 # Ver “Inicialización por instrucción”

    LCD_CGRAM = 0x40 # DB6: Establecer dirección RAM CG

    LCD_DDRAM = 0x80 # DB7: DD Establecer la dirección RAM

    LCD_RS_CMD = 0

    LCD_RS_DATA = 1

    LCD_RW_WRITE = 0

    LCD_RW_READ = 1

    Def __Init__(propio, num_lines, num_columns):

    propio.num_lines = num_lines

    Si propio.num_lines > 4:

    propio.num_lines = 4

    propio.num_columns = num_columns

    Si propio.num_columns > 40:

    propio.num_columns = 40

    propio.cursor_x = 0

    propio.cursor_y = 0

    propio.Luz de fondo = verdadero

    propio.display_off()

    propio.backlight_on()

    propio.claro()

    propio.hal_write_command(propio.LCD_ENTRY_MODE | propio.LCD_ENTRY_INC)

    propio.hide_cursor()

    propio.display_on()

    Def claro(propio):

    “”“Borre la pantalla LCD y mueva el cursor a la parte superior izquierda

    Esquina.

    ““”

    propio.hal_write_command(propio.LCD_CLR)

    propio.hal_write_command(propio.LCD_HOME)

    propio.cursor_x = 0

    propio.cursor_y = 0

    Def show_cursor(propio):

    “”“Haz visible el cursor”.“”

    propio.hal_write_command(propio.LCD_ON_CTRL | propio.LCD_ON_DISPLAY |

    propio.LCD_ON_CURSOR)

    Def hide_cursor(propio):

    “”“Oculta el cursor”.“”

    propio.hal_write_command(propio.LCD_ON_CTRL | propio.LCD_ON_DISPLAY)

    Def blink_cursor_on(propio):

    “”“Enciende el cursor y haz que parpadee”.“”

    propio.hal_write_command(propio.LCD_ON_CTRL | propio.LCD_ON_DISPLAY |

    propio.LCD_ON_CURSOR | propio.LCD_ON_BLINK)

    Def blink_cursor_off(propio):

    “”“Enciende el cursor para que no parpadee (es decir, se ilumine)”“”

    propio.hal_write_command(propio.LCD_ON_CTRL | propio.LCD_ON_DISPLAY |

    propio.LCD_ON_CURSOR)

    Def display_on(propio):

    “”“Encienda la pantalla LCD (es decir, desenvíe)”“”

    propio.hal_write_command(propio.LCD_ON_CTRL | propio.LCD_ON_DISPLAY)

    Def display_off(propio):

    “”“Apague la pantalla LCD (es decir, en blanco)”.“”

    propio.hal_write_command(propio.LCD_ON_CTRL)

    Def backlight_on(propio):

    “”“Enciende la luz de fondo.

    Esto no es realmente un comando LCD, pero algunos módulos tienen una luz de fondo

    El control permite que el HAL pase comandos.

    ““”

    propio.Luz de fondo = verdadero

    propio.hal_backlight_on()

    Def backlight_off(propio):

    “”“Apaga la luz de fondo.

    Esto no es realmente un comando LCD, pero algunos módulos tienen una luz de fondo

    El control permite que el HAL pase comandos.

    ““”

    propio.Luz de fondo = falso

    propio.hal_backlight_off()

    Def move_to(propio, cursor_x, cursor_y):

    “”“Mueve la posición del cursor a la posición especificada.

    La posición es basada en cero (es decir, cursor_x == 0 indica la primera columna).

    ““”

    propio.cursor_x = cursor_x

    propio.cursor_y = cursor_y

    dirección = cursor_x & 0x3f

    Si cursor_y & 1:

    dirección += 0x40 # Las líneas 1 y 3 añaden 0x40

    Si cursor_y & 2:

    dirección += 0x14 # Las líneas 2 y 3 añaden 0x14

    propio.hal_write_command(propio.LCD_DDRAM | dirección)

    Def Putcher(propio, chamuscar):

    “”“Escribe los caracteres especificados en la pantalla LCD del cursor actual

    Especifique una posición y avance el cursor una posición.

    ““”

    Si chamuscar != ‘\n’:

    propio.hal_write_data(oda(chamuscar))

    propio.cursor_x += 1

    Si propio.cursor_x >= propio.num_columns o chamuscar == ‘\n’:

    propio.cursor_x = 0

    propio.cursor_y += 1

    Si propio.cursor_y >= propio.num_lines:

    propio.cursor_y = 0

    propio.move_to(propio.cursor_x, propio.cursor_y)

    Def Putstol(propio, hilo):

    “”“Escribe la cadena especificada en la pantalla LCD del cursor actual

    Especifique la posición y avance la posición del cursor adecuadamente.

    ““”

    para chamuscar Y hilo:

    propio.Putcher(chamuscar)

    Def custom_char(propio, lugar, Mapa de caracteres):

    “”“Escribe una carta en una de las ocho ubicaciones disponibles de CGRAM

    De chr(0) a chr(7).

    ““”

    lugar &= 0x7

    propio.hal_write_command(propio.LCD_CGRAM | (lugar << 3))

    Hora.sleep_us(40)

    para Yo Y gama(8):

    propio.hal_write_data(Mapa de caracteres[i])

    Hora.sleep_us(40)

    propio.move_to(propio.cursor_x, propio.cursor_y)

    Def hal_backlight_on(propio):

    “”“Permita que la capa HAL encienda la luz de fondo.

    Las clases HAL derivadas implementan esta función según sea necesario.

    ““”

    pasar

    Def hal_backlight_off(propio):

    “”“Permita que la capa HAL apague la luz de fondo.

    Las clases HAL derivadas implementan esta función según sea necesario.

    ““”

    pasar

    Def hal_write_command(propio, Teletipo):

    “”“Escribe un comando en la pantalla LCD.

    Se esperaría que una clase HAL derivada implemente esto

    Función.

    ““”

    levantar Error no implementado

    Def hal_write_data(propio, datos):

    “”“Escriba datos en la pantalla LCD.

    Se esperaría que una clase HAL derivada implemente esto

    Función.

    ““”

    levantar Error no implementado

    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email

    Entradas relacionadas

    circuito capacitivo de ca

    circuito inductivo ca

    ¿Cómo probar un diodo? Uso de multímetros analógicos y digitales (DMM)

    Entradas recientes
    ¿Qué es el campo magnético y cómo funciona?
    circuito capacitivo de ca
    circuito inductivo ca
    ¿Cómo probar un diodo? Uso de multímetros analógicos y digitales (DMM)
    Noticias industrial
    ¿Qué es el campo magnético y cómo funciona?
    circuito capacitivo de ca
    circuito inductivo ca
    ¿Cómo probar un diodo? Uso de multímetros analógicos y digitales (DMM)
    Facebook YouTube LinkedIn
    © 2025 Hecho con ♥ desde México

    Type above and press Enter to search. Press Esc to cancel.

    Ir a la versión móvil