C18 LaurTec Library  2.5
Open Source C Library for PIC18 Microcontrollers
LaurTec_c18_libraries_v_2.5/src/LCD_44780_I2C.c File Reference
#include "LCD_44780_I2C.h"
#include "PCF8574.h"
#include "delay.h"

Go to the source code of this file.

Functions

void Epulse (void)
void SendCommand (unsigned char data)
void Line2LCD (void)
void HomeLCD (void)
void ShiftLCD (char shift, char number_of_shift)
void ShiftCursorLCD (char shift, char number_of_shift)
void GotoLineLCD (char line)
void WriteCharLCD (unsigned char value)
void WriteStringLCD (const rom char *buffer)
void WriteVarLCD (unsigned char *buffer)
void WriteIntLCD (int value, char number_of_digits)
void ClearLCD (void)
void CursorLCD (char active, char blinking)
void BacklightLCD (char active)
void OpenLCD (unsigned char quartz_frequency)

Variables

unsigned char data_buffer = 0
unsigned char PCF8574_address = 0

Function Documentation

void BacklightLCD ( char  active)

This function controls the backligth LED.

Parameters:
activeActivate the LED backlight [TURN_ON_LED, TURN_OFF_LED]
blinkingLet the cursor blink [BLINK_ON,BLINK_OFF]
Note:
You must use the constant TURN_ON_LED, TURN_OFF_LED to ensure the compatibility with LCD_44780_I2C library.

Definition at line 252 of file LCD_44780_I2C.c.

References data_buffer, PCF8574_address, PCF8574_write_data(), and TURN_ON_LED.

void ClearLCD ( void  )

This Function cleans the LCD display.

Definition at line 234 of file LCD_44780_I2C.c.

References SendCommand().

void CursorLCD ( char  active,
char  blinking 
)

This function controls the cursor option (blinking, active)

Parameters:
activeActivate the cursor, showing it or not [TURN_ON_CURSOR, TURN_OFF_CURSOR]
blinkingLet the cursor blink [BLINK_ON,BLINK_OFF]
Note:
You must use the constant TURN_ON_CURSOR, TURN_OFF_CURSOR, BLINK_ON, BLINK_OFF to ensure the compatibility with LCD_44780_I2C library.

Definition at line 243 of file LCD_44780_I2C.c.

References SendCommand().

void Epulse ( 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 46 of file LCD_44780_I2C.c.

References data_buffer, delay_ms(), LCD_E, PCF8574_address, and PCF8574_write_data().

void GotoLineLCD ( char  line)

This function locates the LCD cursor on the selected line. Tested on 20x4 16x2 LCD displays.

Parameters:
lineSpecify the number of the line [1,2,3,4]
Warning:
It might not work with all the LCD Dipslays.

Definition at line 122 of file LCD_44780_I2C.c.

References SendCommand().

void HomeLCD ( void  )

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

Definition at line 85 of file LCD_44780_I2C.c.

References SendCommand().

void Line2LCD ( void  )

This function locates the cursor at the beginning of Line 2.

Definition at line 75 of file LCD_44780_I2C.c.

References SendCommand().

void OpenLCD ( unsigned char  quartz_frequency)

This funnction 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 265 of file LCD_44780_I2C.c.

References BLINK_OFF, ClearLCD(), CursorLCD(), data_buffer, delay_ms(), PCF8574_address, PCF8574_ADDRESS_H, PCF8574_ADDRESS_L, PCF8574_write_data(), SendCommand(), setQuartz(), and TURN_OFF_CURSOR.

void SendCommand ( 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 58 of file LCD_44780_I2C.c.

References data_buffer, Epulse(), PCF8574_address, and PCF8574_write_data().

void ShiftCursorLCD ( char  shift,
char  number_of_shift 
)

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

Parameters:
shiftSpecify where the shift should be [LEFT, 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 109 of file LCD_44780_I2C.c.

References SendCommand().

void ShiftLCD ( char  shift,
char  number_of_shift 
)

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

Parameters:
shiftSpecify where the shift should be [LEFT, 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 95 of file LCD_44780_I2C.c.

References SendCommand().

void WriteCharLCD ( unsigned char  value)

This function writes a char to the LCD display. (e.g WriteCharLCD ('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 146 of file LCD_44780_I2C.c.

References data_buffer, LCD_RS, PCF8574_address, PCF8574_write_data(), and SendCommand().

void WriteIntLCD ( int  value,
char  number_of_digits 
)

This function writes an integer to the LCD display. The integer is converted to string.

Parameters:
valueIt is integer that must be written to the LCD diplay.
numeber_of_digitsIt specifies the number of shown digit [0-5]. 0: Left Justified 1-5: Right Justified with n digit
Note:
If you set a number of digit less than required the digit will be lost starting from the less significant digit. Minus is like a digit.

Definition at line 201 of file LCD_44780_I2C.c.

References itoa(), and WriteVarLCD().

void WriteStringLCD ( const rom char *  buffer)

This function writes a const string to the LCD display, e.g WriteStringLCD("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 array refers the WriteVarLCD () function.

Definition at line 170 of file LCD_44780_I2C.c.

References WriteCharLCD().

void WriteVarLCD ( 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 rom use WriteStringLCD ().

Definition at line 185 of file LCD_44780_I2C.c.

References WriteCharLCD().


Variable Documentation

unsigned char data_buffer = 0

Definition at line 40 of file LCD_44780_I2C.c.

unsigned char PCF8574_address = 0

Definition at line 41 of file LCD_44780_I2C.c.

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines