Difference between revisions of "LCD"
m |
|||
(59 intermediate revisions by 2 users not shown) | |||
Line 8: | Line 8: | ||
{{#Widget:LibTable}} | {{#Widget:LibTable}} | ||
|- | |- | ||
− | |Defination ||void LCD_Init ( uint8_t | + | |Defination ||void LCD_Init ( uint8_t var_lcdMode_u8, uint8_t var_lcdNoOfLines_u8, uint8_t var_MaxCharsPerLine_u8) |
|- | |- | ||
− | | Input Arguments || *uint8_t: required Mode 4/8-bit<br /> *uint8_t: Number of lines of LCD<br /> *uint8_t: Number of Chars per line | + | | Input Arguments ||<br /> |
+ | *uint8_t: required Mode 4/8-bit <br /> | ||
+ | *uint8_t: Number of lines of LCD<br /> | ||
+ | *uint8_t: Number of Chars per line | ||
|- | |- | ||
| Return Value|| none | | Return Value|| none | ||
|- | |- | ||
| Description ||This function is used to initialize the lcd.<br />It initializes the LCD for selected mode(4/8-bit) and Type(16x2/16x1 etc) | | Description ||This function is used to initialize the lcd.<br />It initializes the LCD for selected mode(4/8-bit) and Type(16x2/16x1 etc) | ||
+ | |- | ||
+ | | Usage ||LCD_Init(8,2,16) //Initialize 2x16 LCD in 8-bit Mode<br />LCD_Init(4,2,16) //Initialize 2x16 LCD in 4-bit Mode<br />LCD_Init(4,4,16) //Initialize 4x16 LCD in 8-bit Mode | ||
+ | |} | ||
+ | |||
+ | ==LCD_CmdWrite== | ||
+ | {|{{Widget:LibCol}} | ||
+ | {{#Widget:LibTable}} | ||
+ | |- | ||
+ | |Defination || void LCD_CmdWrite( uint8_t var_lcdCmd_u8) | ||
+ | |- | ||
+ | | Input Arguments || 8-bit command supported by LCD. | ||
+ | |- | ||
+ | | Return Value|| none | ||
+ | |- | ||
+ | | Description ||This function sends a command to LCD.<br />Some of the commonly used commands are defined in lcd.h.<br />For more commands refer the data sheet.<br />The behaviour is undefined if unsupported commands are sent. | ||
|- | |- | ||
| Usage || | | Usage || | ||
+ | LCD_CmdWrite(0x0c); //Sets display On and Cursor Off<br /> | ||
+ | LCD_CmdWrite(CMD_DISPLAY_ON_CURSOR_OFF); //Recommended | ||
|} | |} | ||
Line 31: | Line 51: | ||
| Description ||This function clears the LCD and moves the cursor to beginning of first line | | Description ||This function clears the LCD and moves the cursor to beginning of first line | ||
|- | |- | ||
− | | Usage || | + | | Usage || |
+ | LCD_Clear(); // Clears the lcd and sets the cursor to beginning of the first line. | ||
|} | |} | ||
− | |||
− | |||
Line 42: | Line 61: | ||
{{#Widget:LibTable}} | {{#Widget:LibTable}} | ||
|- | |- | ||
− | |Defination || void LCD_GoToLine(uint8_t | + | |Defination || void LCD_GoToLine(uint8_t var_lineNumber_u8) |
|- | |- | ||
− | | Input Arguments || uint8_t: Line number. | + | | Input Arguments || uint8_t: Line number to move the cursor. |
|- | |- | ||
| Return Value|| none | | Return Value|| none | ||
|- | |- | ||
− | | Description ||This function moves the Cursor to beginning of the specified line. If the requested line number is out of range, it will not move the cursor. | + | | Description ||This function moves the Cursor to beginning of the specified line. If the requested line number is out of range, it will not move the cursor.<br /> |
− | + | Note: The line numbers run from 1 to Maxlines.<br />To avoid the confusion the below enums has to be used for selecting lines.<br />For four line LCD the enums are as below:<br /> | |
− | + | *E_LcdLineOne<br /> | |
− | + | *E_LcdLineTwo<br /> | |
− | + | *E_LcdLineThree<br /> | |
− | + | *E_LcdLineFour | |
− | + | ||
− | + | ||
|- | |- | ||
| Usage || | | Usage || | ||
+ | LCD_GoToLine(1); //Moves the cursor to beginning of first line | ||
+ | LCD_GoToLine(E_LcdLineOne); //Recommended usage | ||
|} | |} | ||
Line 73: | Line 92: | ||
| Return Value|| none | | Return Value|| none | ||
|- | |- | ||
− | | Description || This function moves the Cursor to beginning of the next line. If the cursor is on last line and NextLine command is issued then | + | | Description || This function moves the Cursor to beginning of the next line. If the cursor is on last line and NextLine command is issued then it will move the cursor to first line. |
|- | |- | ||
| Usage || | | Usage || | ||
+ | LCD_GoToNextline(); //Moves the cursor to beginning of next line. | ||
|} | |} | ||
− | |||
Line 86: | Line 105: | ||
{{#Widget:LibTable}} | {{#Widget:LibTable}} | ||
|- | |- | ||
− | |Defination || void LCD_SetCursor(char | + | |Defination || void LCD_SetCursor(char var_lineNumber_u8,char var_charNumber_u8) |
|- | |- | ||
− | | Input Arguments || *row: line number(line1=1, line2=2) | + | | Input Arguments ||<br /> |
− | + | *row: line number(line1=1, line2=2)<br />For 2line LCD the I/P argument should be either 1 or 2.<br /> | |
− | + | *col: char number.<br />For 16-char LCD the I/P argument should be between 0-15. | |
− | + | ||
|- | |- | ||
| Return Value|| none | | Return Value|| none | ||
|- | |- | ||
− | | Description || This function moves the Cursor to specified position | + | | Description || This function moves the Cursor to specified position.<br /> |
− | + | *Note:If the Input(Line/Char number) are out of range then no action will be taken | |
|- | |- | ||
− | | Usage || | + | | Usage || |
+ | LCD_SetCursor(1,10); //Moves the cursor to 1st line 11th char. | ||
+ | LCD_SetCursor(5,10); //No action taken as line 5 is out of range | ||
|} | |} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==LCD_DisplayChar== | ==LCD_DisplayChar== | ||
Line 127: | Line 125: | ||
{{#Widget:LibTable}} | {{#Widget:LibTable}} | ||
|- | |- | ||
− | |Defination || void LCD_DisplayChar( char | + | |Defination || void LCD_DisplayChar( char var_lcdData_u8) |
|- | |- | ||
| Input Arguments || uint8_t: ASCII value of the char to be displayed. | | Input Arguments || uint8_t: ASCII value of the char to be displayed. | ||
Line 133: | Line 131: | ||
| Return Value|| none | | Return Value|| none | ||
|- | |- | ||
− | | Description ||This function sends a character to be displayed on LCD. | + | | Description ||This function sends a character to be displayed on LCD.<br />Any valid ascii value can be passed to display the respective character |
− | + | ||
|- | |- | ||
− | | Usage || | + | | Usage || |
+ | LCD_DisplayChar(65); //Displays 'A' on LCD<br /> | ||
+ | LCD_DisplayChar(0x41); //Displays 'A' on LCD <br /> | ||
+ | LCD_DisplayChar('A'); //Recommended usage | ||
|} | |} | ||
− | |||
Line 147: | Line 146: | ||
{{#Widget:LibTable}} | {{#Widget:LibTable}} | ||
|- | |- | ||
− | |Defination || void LCD_DisplayString(char * | + | |Defination || void LCD_DisplayString(char *ptr_stringPointer_u8) |
|- | |- | ||
| Input Arguments || char*:String(Address of the string) to be displayed. | | Input Arguments || char*:String(Address of the string) to be displayed. | ||
Line 155: | Line 154: | ||
| Description ||This function is used to display the ASCII string on the lcd. | | Description ||This function is used to display the ASCII string on the lcd. | ||
|- | |- | ||
− | | Usage || | + | | Usage || |
+ | <syntaxhighlight> | ||
+ | void main() | ||
+ | { | ||
+ | char myString[]={"hello, world"}; | ||
+ | LCD_DisplayString(myString); | ||
+ | LCD_DisplayString("good morning"); | ||
+ | } | ||
+ | </syntaxhighlight> | ||
|} | |} | ||
− | |||
− | |||
− | |||
− | |||
==LCD_ScrollMessage== | ==LCD_ScrollMessage== | ||
Line 166: | Line 169: | ||
{{#Widget:LibTable}} | {{#Widget:LibTable}} | ||
|- | |- | ||
− | |Defination || void LCD_ScrollMessage(uint8_t | + | |Defination || void LCD_ScrollMessage(uint8_t var_lineNumber_u8, char *ptr_msgPointer_u8) |
|- | |- | ||
| Input Arguments || | | Input Arguments || | ||
Line 174: | Line 177: | ||
| Return Value|| none | | Return Value|| none | ||
|- | |- | ||
− | | Description ||This function scrolls the given message on the specified line. | + | | Description || This function scrolls the given message on the specified line.<br />If the specified line number is out of range then the message will be scrolled on first line.<br /> |
+ | *Note: Leave 7-8 spaces at the beginning and 1 space at the end of the message to be scrolled. | ||
|- | |- | ||
− | | Usage || | + | | Usage || |
+ | LCD_ScrollMessage(" Welcome to embedded programming "); | ||
|} | |} | ||
Line 182: | Line 187: | ||
− | == | + | ==LCD_DisplayNumber== |
{|{{Widget:LibCol}} | {|{{Widget:LibCol}} | ||
{{#Widget:LibTable}} | {{#Widget:LibTable}} | ||
|- | |- | ||
− | |Defination || void | + | |Defination || void LCD_DisplayNumber(NumericSystem_et e_typeOfNum_e8, uint32_t var_number_u32, uint8_t var_numOfDigitsToDisplay_u8) |
|- | |- | ||
| Input Arguments || | | Input Arguments || | ||
+ | *NumericSystem_et: Specifies type of number ENUM_BINARY(2),ENUM_DECIMAL(10), ENUM_Hex(16) | ||
*uint32_t: Number to be displayed on the LCD. | *uint32_t: Number to be displayed on the LCD. | ||
*uint8_t : Number of digits to be displayed | *uint8_t : Number of digits to be displayed | ||
Line 194: | Line 200: | ||
| Return Value|| none | | Return Value|| none | ||
|- | |- | ||
− | | Description ||This function is used to display a max of 10digit decimal number. | + | | Description || |
− | + | This function is used to display a max of 10digit decimal/Hex number OR specified number of bits for binary number.<br> | |
− | + | 1st parameter specifies type of number ENUM_BINARY(2),ENUM_DECIMAL(10), ENUM_Hex(16).<br> | |
− | + | 3rd parameter specifies the number of digits from the right side to be displayed.<br> | |
− | + | The output for the input combinations is as below<br> | |
− | + | Binary: | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | The output for the input combinations is as below | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
*(10,4) then 4-LSB will be displayed ie. 1010 | *(10,4) then 4-LSB will be displayed ie. 1010 | ||
*(10,8) then 8-LSB will be displayed ie. 00001010 | *(10,8) then 8-LSB will be displayed ie. 00001010 | ||
*(10,2) then 2-LSB will be displayed ie. 10 | *(10,2) then 2-LSB will be displayed ie. 10 | ||
+ | |||
+ | Decimal: | ||
+ | *(10,12345,4) then 4-digits ie. 2345 will be displayed | ||
+ | *(ENUM_DECIMAL,12345,6) then 6-digits ie. 012345 will be displayed | ||
+ | *(10,12345,C_DisplayDefaultDigits_U8) then 12345 will be displayed.\ | ||
+ | |||
+ | Hex: | ||
+ | *(16,0x12AB,3) then 3-digits ie. 2AB will be displayed | ||
+ | *(ENUM_Hex,0x12AB,6) then 6-digits ie. 0012AB will be displayed | ||
+ | *(ENUM_Hex,0x12AB,C_DisplayDefaultDigits_U8) then 12AB will be displayed. | ||
|- | |- | ||
− | | Usage || | + | | Usage || |
+ | uint32_t decNumber = 123456;<br /> | ||
+ | LCD_DisplayDecimalNumber(decNumber,5); //Display last 5-digits of Number<br /> | ||
+ | LCD_DisplayDecimalNumber(12345,4); //Display last 4-digits of number | ||
|} | |} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==LCD_Printf== | ==LCD_Printf== | ||
Line 280: | Line 230: | ||
{{#Widget:LibTable}} | {{#Widget:LibTable}} | ||
|- | |- | ||
− | |Defination || | + | |Defination || void LCD_Printf(const char *argList, ...) |
|- | |- | ||
− | | Input Arguments || | + | | Input Arguments || variable length arguments similar to printf |
|- | |- | ||
| Return Value|| none | | Return Value|| none | ||
|- | |- | ||
− | | Description ||This function is similar to printf function in C. It takes the arguments with specified format and | + | | Description ||This function is similar to printf function in C. It takes the arguments with specified format and displays accordingly . |
The supported format specifiers are as below. | The supported format specifiers are as below. | ||
*%c: character | *%c: character | ||
Line 303: | Line 253: | ||
|- | |- | ||
− | | Usage || | + | | Usage || |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
<syntaxhighlight> | <syntaxhighlight> | ||
− | + | void main() | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
{ | { | ||
− | + | uint16_t decNum=1234;//16-bit | |
− | + | uint32_t longDec=12345678;//32-bit | |
− | + | float floatNum=1234.5678; | |
+ | uint16_t hexNum=0xABCD; | ||
+ | char myString[]={"hello, world}; | ||
+ | LCD_Printf("%d %l %f %x %b %s",decNum,longDec,floatNum,hexNum,hexNum,myString); | ||
+ | LCD_Printf("D:%d,L:%l,F=%f,H:%x,Str:%s",1234,12345678,123.456,0xAB,"hello"); | ||
+ | } | ||
− | + | </syntaxhighlight> | |
− | + | |} | |
+ | ==Usage Guide== | ||
+ | <html> | ||
+ | <script src="https://gist.github.com/Amritach/f6623a13490f16d1ff6a.js"></script> | ||
+ | </html> | ||
− | + | {{DISQUS}} | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + |
Latest revision as of 18:08, 30 May 2015
Contents
LCD
LCD_Init
Defination | void LCD_Init ( uint8_t var_lcdMode_u8, uint8_t var_lcdNoOfLines_u8, uint8_t var_MaxCharsPerLine_u8) |
Input Arguments |
|
Return Value | none |
Description | This function is used to initialize the lcd. It initializes the LCD for selected mode(4/8-bit) and Type(16x2/16x1 etc) |
Usage | LCD_Init(8,2,16) //Initialize 2x16 LCD in 8-bit Mode LCD_Init(4,2,16) //Initialize 2x16 LCD in 4-bit Mode LCD_Init(4,4,16) //Initialize 4x16 LCD in 8-bit Mode |
LCD_CmdWrite
Defination | void LCD_CmdWrite( uint8_t var_lcdCmd_u8) |
Input Arguments | 8-bit command supported by LCD. |
Return Value | none |
Description | This function sends a command to LCD. Some of the commonly used commands are defined in lcd.h. For more commands refer the data sheet. The behaviour is undefined if unsupported commands are sent. |
Usage |
LCD_CmdWrite(0x0c); //Sets display On and Cursor Off |
LCD_Clear
Defination | void LCD_Clear() |
Input Arguments | none. |
Return Value | none. |
Description | This function clears the LCD and moves the cursor to beginning of first line |
Usage |
LCD_Clear(); // Clears the lcd and sets the cursor to beginning of the first line. |
LCD_GoToLine
Defination | void LCD_GoToLine(uint8_t var_lineNumber_u8) |
Input Arguments | uint8_t: Line number to move the cursor. |
Return Value | none |
Description | This function moves the Cursor to beginning of the specified line. If the requested line number is out of range, it will not move the cursor. Note: The line numbers run from 1 to Maxlines.
|
Usage |
LCD_GoToLine(1); //Moves the cursor to beginning of first line LCD_GoToLine(E_LcdLineOne); //Recommended usage |
LCD_GoToNextline
Defination | void LCD_GoToNextLine() |
Input Arguments | none |
Return Value | none |
Description | This function moves the Cursor to beginning of the next line. If the cursor is on last line and NextLine command is issued then it will move the cursor to first line. |
Usage |
LCD_GoToNextline(); //Moves the cursor to beginning of next line. |
LCD_SetCursor
Defination | void LCD_SetCursor(char var_lineNumber_u8,char var_charNumber_u8) |
Input Arguments |
|
Return Value | none |
Description | This function moves the Cursor to specified position.
|
Usage |
LCD_SetCursor(1,10); //Moves the cursor to 1st line 11th char. LCD_SetCursor(5,10); //No action taken as line 5 is out of range |
LCD_DisplayChar
Defination | void LCD_DisplayChar( char var_lcdData_u8) |
Input Arguments | uint8_t: ASCII value of the char to be displayed. |
Return Value | none |
Description | This function sends a character to be displayed on LCD. Any valid ascii value can be passed to display the respective character |
Usage |
LCD_DisplayChar(65); //Displays 'A' on LCD |
LCD_DisplayString
Defination | void LCD_DisplayString(char *ptr_stringPointer_u8) |
Input Arguments | char*:String(Address of the string) to be displayed. |
Return Value | none |
Description | This function is used to display the ASCII string on the lcd. |
Usage |
void main() { char myString[]={"hello, world"}; LCD_DisplayString(myString); LCD_DisplayString("good morning"); } |
LCD_ScrollMessage
Defination | void LCD_ScrollMessage(uint8_t var_lineNumber_u8, char *ptr_msgPointer_u8) |
Input Arguments |
|
Return Value | none |
Description | This function scrolls the given message on the specified line. If the specified line number is out of range then the message will be scrolled on first line.
|
Usage |
LCD_ScrollMessage(" Welcome to embedded programming "); |
LCD_DisplayNumber
Defination | void LCD_DisplayNumber(NumericSystem_et e_typeOfNum_e8, uint32_t var_number_u32, uint8_t var_numOfDigitsToDisplay_u8) |
Input Arguments |
|
Return Value | none |
Description |
This function is used to display a max of 10digit decimal/Hex number OR specified number of bits for binary number.
Decimal:
Hex:
|
Usage |
uint32_t decNumber = 123456; |
LCD_Printf
Defination | void LCD_Printf(const char *argList, ...) |
Input Arguments | variable length arguments similar to printf |
Return Value | none |
Description | This function is similar to printf function in C. It takes the arguments with specified format and displays accordingly .
The supported format specifiers are as below.
|
Usage |
void main() { uint16_t decNum=1234;//16-bit uint32_t longDec=12345678;//32-bit float floatNum=1234.5678; uint16_t hexNum=0xABCD; char myString[]={"hello, world}; LCD_Printf("%d %l %f %x %b %s",decNum,longDec,floatNum,hexNum,hexNum,myString); LCD_Printf("D:%d,L:%l,F=%f,H:%x,Str:%s",1234,12345678,123.456,0xAB,"hello"); } |
Usage Guide