Difference between revisions of "Unit HD44780"
Line 165: | Line 165: | ||
! '''Note''' | ! '''Note''' | ||
| None documented | | None documented | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | |||
+ | '''HD44780 helper functions''' | ||
+ | |||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function HD44780WriteChar(Console:PHD44780Console; Ch:Char):LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Write character data to the HD44780 device</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! '''Note''' | ||
+ | | Caller must hold the Console lock | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function HD44780WriteData(Console:PHD44780Console; Value:Byte):LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Write command data to the HD44780 device</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! '''Note''' | ||
+ | | Caller must hold the Console lock | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function HD44780PulseEnable(Console:PHD44780Console):LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Pulse the clock enable line off, on, off to send a command</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! '''Note''' | ||
+ | | Caller must hold the Console lock | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function HD44780CursorHome(Console:PHD44780Console):LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Return the cursor to the top left corner</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! '''Note''' | ||
+ | | Caller must hold the Console lock | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function HD44780CursorBlink(Console:PHD44780Console; Blink:Boolean):LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the cursor blinking to on or off</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! '''Note''' | ||
+ | | Caller must hold the Console lock | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function HD44780CursorVisible(Console:PHD44780Console; Visible:Boolean):LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the cursor to visible or not visible</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! '''Note''' | ||
+ | | Caller must hold the Console lock | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function HD44780CursorPosition(Console:PHD44780Console; Row,Col:Byte):LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the cursor position to Row, Col</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! '''Note''' | ||
+ | | Caller must hold the Console lock | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function HD44780DisplayEnabled(Console:PHD44780Console; Enabled:Boolean):LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Set the display state to on or off</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! '''Note''' | ||
+ | | Caller must hold the Console lock | ||
+ | |- | ||
+ | |} | ||
+ | </div></div> | ||
+ | <br /> | ||
+ | <div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;"> | ||
+ | <pre style="border: 0; padding-bottom:0px;">function HD44780AddCharacter(Console:PHD44780Console; Location:Byte; Character:THD44780Character):LongWord;</pre> | ||
+ | <div style="font-size: 14px; padding-left: 12px;">'''Description:''' Add a custom character to the display</div> | ||
+ | <div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;"> | ||
+ | {| class="wikitable" style="font-size: 14px; background: white;" | ||
+ | |- | ||
+ | ! '''Note''' | ||
+ | | Caller must hold the Console lock | ||
|- | |- | ||
|} | |} |
Revision as of 00:38, 14 October 2016
Return to Unit Reference
Contents
[hide]Description
The Hitachi HD44780 is a dot matrix liquid crystal display controller. It supports 5x8 or 5x10 characters and includes a 240 character font in ROM, 80 bytes of character RAM and 64 bytes of character generator RAM for custom characters.
The device support 4 bit or 8 bit modes, and has a range of standard functions for display clear, display on/off, cursor on/off, character blink, cursor shift etc.
This unit creates a Console device to represent the LCD and provides the standard console device functions (where appropriate) to draw text, clear the screen, scroll text and manage the cursor.
Currently only 4 bit mode is supported but extension to include 8 bit mode is possible with some additional setup and support functions.
Constants
To be documented
Type definitions
To be documented
Public variables
To be documented
Function declarations
HD44780 functions
function HD44780ConsoleCreate(GPIO:PGPIODevice; const Name:String; Width,Height,RS,RW,EN,D4,D5,D6,D7:LongWord):PConsoleDevice;
function HD44780ConsoleDestroy(Console:PConsoleDevice):LongWord;
HD44780 console functions
function HD44780ConsoleOpen(Console:PConsoleDevice):LongWord;
function HD44780ConsoleClose(Console:PConsoleDevice):LongWord;
function HD44780ConsoleClear(Console:PConsoleDevice; Color:LongWord):LongWord;
function HD44780ConsoleScroll(Console:PConsoleDevice; X1,Y1,X2,Y2,Count,Direction:LongWord):LongWord;
function HD44780ConsoleDrawChar(Console:PConsoleDevice; Handle:TFontHandle; Ch:Char; X,Y,Forecolor,Backcolor:LongWord):LongWord;
function HD44780ConsoleDrawText(Console:PConsoleDevice; Handle:TFontHandle; const Text:String; X,Y,Forecolor,Backcolor,Len:LongWord):LongWord;
function HD44780ConsoleDrawBlock(Console:PConsoleDevice; X1,Y1,X2,Y2,Color:LongWord):LongWord;
function HD44780ConsoleDrawWindow(Console:PConsoleDevice; Handle:TWindowHandle):LongWord;
function HD44780ConsoleGetPosition(Console:PConsoleDevice; Position:LongWord; var X1,Y1,X2,Y2:LongWord):LongWord;
HD44780 helper functions
function HD44780WriteChar(Console:PHD44780Console; Ch:Char):LongWord;
function HD44780WriteData(Console:PHD44780Console; Value:Byte):LongWord;
function HD44780PulseEnable(Console:PHD44780Console):LongWord;
function HD44780CursorHome(Console:PHD44780Console):LongWord;
function HD44780CursorBlink(Console:PHD44780Console; Blink:Boolean):LongWord;
function HD44780CursorVisible(Console:PHD44780Console; Visible:Boolean):LongWord;
function HD44780CursorPosition(Console:PHD44780Console; Row,Col:Byte):LongWord;
function HD44780DisplayEnabled(Console:PHD44780Console; Enabled:Boolean):LongWord;
function HD44780AddCharacter(Console:PHD44780Console; Location:Byte; Character:THD44780Character):LongWord;
Return to Unit Reference