LTlib LaurTec Library  4.0.0 Beta
Open Source C Library for Microchip Microcontrollers based on XC8 Compiler
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
LCD_44780_I2C.c File Reference
#include "LCD_44780_I2C.h"

Go to the source code of this file.

Functions

void LCD_enable_pulse (void)
 
void LCD_send_command (unsigned char data)
 
void LCD_home (void)
 
void LCD_shift (unsigned char shift, unsigned char number_of_shift)
 
void LCD_shift_cursor (unsigned char shift, unsigned char number_of_shift)
 
void LCD_goto_line (unsigned char line)
 
void LCD_goto_xy (unsigned char x, unsigned char y)
 
void LCD_write_char (unsigned char value)
 
void LCD_write_message (const rom unsigned char *buffer)
 
void LCD_write_string (unsigned char *buffer)
 
void LCD_write_integer (signed int value, unsigned char number_of_digits, unsigned char zero_cleaning)
 
void LCD_clear (void)
 
void LCD_cursor (unsigned char active, unsigned char blinking)
 
void LCD_backlight (unsigned char active)
 
void LCD_initialize (unsigned char quartz_frequency)
 

Variables

unsigned char data_buffer = 0
 
unsigned char I2C_device_address = 0
 

Function Documentation

void LCD_backlight ( unsigned char  active)

This function controls the backligth LED.

Parameters
activeActivate the LED backlight [LCD_TURN_ON_LED, LCD_TURN_OFF_LED]
blinkingLet the cursor blink [LCD_BLINKING_ON, LCD_BLINKING_OFF]
Note
You must use the constant LCD_TURN_ON_LED, LCD_TURN_OFF_LED to ensure the compatibility with LCD_44780_I2C library.

Definition at line 311 of file LCD_44780_I2C.c.

References data_buffer, I2C_device_address, LCD_TURN_ON_LED, MCP2300x_set_port_value(), and PCF8574_write_data().

void LCD_clear ( void  )

This Function cleans the LCD display.

Definition at line 293 of file LCD_44780_I2C.c.

References LCD_send_command().

void LCD_cursor ( unsigned char  active,
unsigned char  blinking 
)

This function controls the cursor option (blinking, active)

Parameters
activeActivate the cursor, showing it or not [LCD_TURN_ON_CURSOR, LCD_TURN_OFF_CURSOR]
blinkingLet the cursor blink [LCD_BLINKING_ON, LCD_BLINKING_OFF]
Note
You must use the constant LCD_TURN_ON_CURSOR, LCD_TURN_OFF_CURSOR, LCD_BLINKING_ON, LCD_BLINKING_OFF to ensure the compatibility with LCD_44780_I2C library.

Definition at line 302 of file LCD_44780_I2C.c.

References LCD_send_command().

void LCD_enable_pulse ( void  )

This function generates the Enable pulse.

Warning
This function is a Private one. It should not be used by the user.

Definition at line 49 of file LCD_44780_I2C.c.

References data_buffer, delay_ms(), I2C_device_address, LCD_E, MCP2300x_set_port_value(), and PCF8574_write_data().

void LCD_goto_line ( unsigned char  line)

This function locates the LCD cursor on the selected line.

Parameters
lineSpecify the number of the line [1,2,3,4]
Warning
It might not work with all the LCD Displays. Tested on 20x4 16x2 LCD displays.

Definition at line 139 of file LCD_44780_I2C.c.

References LCD_send_command().

void LCD_goto_xy ( unsigned char  x,
unsigned char  y 
)

This function locates the LCD cursor to an arbitrary X Y location. Y represents the line number from top.

Parameters
xIt Specifies horizontal position
yIt Specifies vertical position (line number)
Warning
It might not work with all the LCD Displays. Tested on 20x4 16x2 LCD displays.

Definition at line 164 of file LCD_44780_I2C.c.

References LCD_goto_line(), LCD_shift_cursor(), and RIGHT.

void LCD_home ( void  )

This function locates the cursor at home location. First line first character.

Definition at line 102 of file LCD_44780_I2C.c.

References LCD_send_command().

void LCD_initialize ( unsigned char  quartz_frequency)

This function initializes the LCD to work in 4 bit modality.

Parameters
quartz_frequencyQuartz freq. expressed in MHz used to run the CPU.
Note
You must properly set the microcontroller pins using the TRISx registers The library requires the delay library to be included.

Definition at line 331 of file LCD_44780_I2C.c.

References data_buffer, delay_ms(), delay_set_quartz(), DEVICE_ADDRESS_H, DEVICE_ADDRESS_L, I2C_device_address, LCD_BLINKING_OFF, LCD_BUS_DATA_RATE, LCD_clear(), LCD_cursor(), LCD_send_command(), LCD_TURN_OFF_CURSOR, MCP2300x_initialize(), MCP2300x_set_port_direction(), MCP2300x_set_port_value(), PCF8574_initialize(), and PCF8574_write_data().

void LCD_send_command ( unsigned char  data)

This function generates the Enable pulse.

Parameters
dataData to be sent [0..255]
Warning
This function is a Private one. It should not be used by the user.

Definition at line 78 of file LCD_44780_I2C.c.

References data_buffer, I2C_device_address, LCD_enable_pulse(), MCP2300x_set_port_value(), and PCF8574_write_data().

void LCD_shift ( unsigned char  shift,
unsigned char  number_of_shift 
)

This function shifts the LCD screen on the left or right.

Parameters
shiftSpecify where the shift should be [LCD_LEFT, LCD_RIGHT].
number_of_shiftSpecify the number of times the shift is executed.
Note
Use the constants LEFT, RIGHT to specify the direction to ensure the compatibility with LCD_44780_I2C library.

Definition at line 112 of file LCD_44780_I2C.c.

References LCD_send_command().

void LCD_shift_cursor ( unsigned char  shift,
unsigned char  number_of_shift 
)

This function shifts the LCD cursor on the left or right. The position of the cursor is where the next writing will be performed.

Parameters
shiftSpecify where the shift should be [LCD_LEFT, LCD_RIGHT].
number_of_shiftSpecify the number of times the shift is executed.
Note
Use the constants LEFT, RIGHT to specify the direction to ensure the compatibility with LCD_44780_I2C library.

Definition at line 126 of file LCD_44780_I2C.c.

References LCD_send_command().

void LCD_write_char ( unsigned char  value)

This function writes a char to the LCD display. (e.g LCD_write_char ('a'); )

Parameters
valueSpecify the character to be sent [0-128 ASCII code].
Note
The function accept ASCII integer or constants 'a'..'z'.

Definition at line 174 of file LCD_44780_I2C.c.

References data_buffer, I2C_device_address, LCD_RS, LCD_send_command(), MCP2300x_set_port_value(), and PCF8574_write_data().

void LCD_write_integer ( signed int  value,
unsigned char  number_of_digits,
unsigned char  zero_cleaning 
)

Definition at line 249 of file LCD_44780_I2C.c.

References LCD_write_string(), and ZERO_CLEANING_ON.

void LCD_write_message ( const rom unsigned char *  buffer)

This function writes a const string to the LCD display, e.g LCD_write_message("Hello"); .

Parameters
bufferIs a const string written in rom (is not an array).
Note
The function accepts strings written in rom (constant), it does not accept array. To write arrays refers the LCD_write_string () function.

Definition at line 213 of file LCD_44780_I2C.c.

References LCD_write_char(), and LCD_write_message().

void LCD_write_string ( unsigned char *  buffer)

This function writes an array of char to the LCD display, terminated with /0 .

Parameters
bufferIt is an array of char terminated with /0 .
Note
The function accepts strings within an array. To use const array within flash use LCD_write_message ().

Definition at line 233 of file LCD_44780_I2C.c.

References LCD_write_char().

Variable Documentation

unsigned char data_buffer = 0

Definition at line 43 of file LCD_44780_I2C.c.

unsigned char I2C_device_address = 0

Definition at line 44 of file LCD_44780_I2C.c.