cursada_mc2
Base de control de temperatura para EDU-CIAA-NXP
Loading...
Searching...
No Matches
lcd_driver.c File Reference

Implementacion del driver para LCD alfanumerico. More...

#include "lcd_driver.h"
#include "delay_driver.h"
+ Include dependency graph for lcd_driver.c:

Go to the source code of this file.

Macros

#define LCD_PORT   4
 
#define LCD4   10
 LCD4 = D7 on lcd pinout.
 
#define LCD3   6
 LCD3 = D6 on lcd pinout.
 
#define LCD2   5
 LCD2 = D5 on lcd pinout.
 
#define LCD1   4
 LCD1 = D4 on lcd pinout.
 
#define LCD_RS   8
 
#define LCD_EN   9
 
#define LCD_IS_DATA   1
 
#define LCD_IS_COMMAND   0
 

Functions

void lcd_send (uint8_t nibble, bool is_data)
 
void send_byte (uint8_t payload, bool data_type)
 
void driver_lcd_init_port ()
 
void driver_lcd_init (void)
 Inicializa el LCD y ejecuta la secuencia de arranque.
 
void driver_lcd_set_position (uint8_t x, uint8_t y)
 Posiciona el cursor dentro de la matriz visible del LCD.
 
void driver_lcd_write_char (char C)
 Escribe un caracter en la posicion actual del LCD.
 
void driver_lcd_printf (const char *string)
 Escribe una cadena a partir de la posicion actual del cursor.
 

Macro Definition Documentation

◆ LCD1

#define LCD1   4

Definition at line 13 of file lcd_driver.c.

◆ LCD2

#define LCD2   5

Definition at line 12 of file lcd_driver.c.

◆ LCD3

#define LCD3   6

Definition at line 11 of file lcd_driver.c.

◆ LCD4

#define LCD4   10

Definition at line 10 of file lcd_driver.c.

◆ LCD_EN

#define LCD_EN   9

Definition at line 15 of file lcd_driver.c.

◆ LCD_IS_COMMAND

#define LCD_IS_COMMAND   0

Definition at line 18 of file lcd_driver.c.

◆ LCD_IS_DATA

#define LCD_IS_DATA   1

Definition at line 17 of file lcd_driver.c.

◆ LCD_PORT

#define LCD_PORT   4

Definition at line 9 of file lcd_driver.c.

◆ LCD_RS

#define LCD_RS   8

Definition at line 14 of file lcd_driver.c.

Function Documentation

◆ driver_lcd_init()

void driver_lcd_init ( void  )

Secuencia estandar de arranque HD44780 en modo 4 bits.

Las escrituras repetidas de 0x03 fuerzan al controlador a un estado conocido antes de conmutar definitivamente a 0x02.

Definition at line 94 of file lcd_driver.c.

References driver_delay_init(), driver_delay_ms(), driver_lcd_init_port(), LCD_IS_COMMAND, lcd_send(), and send_byte().

Referenced by app_init().

◆ driver_lcd_init_port()

void driver_lcd_init_port ( )

Definition at line 65 of file lcd_driver.c.

References LCD1, LCD2, LCD3, LCD4, LCD_EN, LCD_PORT, and LCD_RS.

Referenced by driver_lcd_init().

◆ driver_lcd_printf()

void driver_lcd_printf ( const char *  string)
Parameters
stringCadena a imprimir.

Definition at line 157 of file lcd_driver.c.

References driver_lcd_write_char().

Referenced by hmi_escribir_linea().

◆ driver_lcd_set_position()

void driver_lcd_set_position ( uint8_t  x,
uint8_t  y 
)
Parameters
xColumna, en el rango 1 a 16.
yFila, en el rango 1 a 2.

Definition at line 128 of file lcd_driver.c.

References LCD_IS_COMMAND, and send_byte().

Referenced by hmi_escribir_linea().

◆ driver_lcd_write_char()

void driver_lcd_write_char ( char  c)
Parameters
cCaracter a escribir o caracter de control soportado por el driver.

Definition at line 139 of file lcd_driver.c.

References driver_delay_ms(), LCD_IS_COMMAND, LCD_IS_DATA, and send_byte().

Referenced by driver_lcd_printf(), and hmi_init().

◆ lcd_send()

void lcd_send ( uint8_t  nibble,
bool  is_data 
)

El controlador toma el nibble en el flanco de EN.

Por eso el ancho del pulso y el retardo posterior son parte del protocolo del LCD, no esperas opcionales.

Definition at line 20 of file lcd_driver.c.

References driver_delay_us(), LCD1, LCD2, LCD3, LCD4, LCD_EN, and LCD_RS.

Referenced by driver_lcd_init(), and send_byte().

◆ send_byte()

void send_byte ( uint8_t  payload,
bool  data_type 
)

El LCD esta cableado en modo de 4 bits.

Cada byte se transmite en dos pasos: primero el nibble alto y luego el nibble bajo.

Definition at line 50 of file lcd_driver.c.

References lcd_send().

Referenced by driver_lcd_init(), driver_lcd_set_position(), and driver_lcd_write_char().