Jump to content

Component: GLCD (ST7920) (Graphical Monochrome): Difference between revisions

From Flowcode Help
No edit summary
m Text replacement - "class="wikitable" style="width:60%; background-color:#FFFFFF;"" to "class="mtx-class-macrotable wikitable""
Line 79: Line 79:


===BPlot===
===BPlot===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
Line 103: Line 103:


===ClearDisplay===
===ClearDisplay===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
Line 117: Line 117:


===DrawArc===
===DrawArc===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
Line 171: Line 171:


===DrawBezier===
===DrawBezier===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
Line 220: Line 220:


===DrawCircle===
===DrawCircle===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
Line 259: Line 259:


===DrawEllipse===
===DrawEllipse===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
Line 303: Line 303:


===DrawLine===
===DrawLine===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
Line 337: Line 337:


===DrawRectangle===
===DrawRectangle===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
Line 381: Line 381:


===DrawRoundedRectangle===
===DrawRoundedRectangle===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
Line 430: Line 430:


===Initialise===
===Initialise===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
Line 444: Line 444:


===Plot===
===Plot===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
Line 468: Line 468:


===Print===
===Print===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
Line 507: Line 507:


===PrintNumber===
===PrintNumber===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
Line 546: Line 546:


===ReadFontStat===
===ReadFontStat===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
Line 570: Line 570:


===ReadFontWidth===
===ReadFontWidth===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
Line 594: Line 594:


===SetBackgroundColour===
===SetBackgroundColour===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
Line 613: Line 613:


===SetDisplayOrientation===
===SetDisplayOrientation===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
Line 632: Line 632:


===SetFontScaler===
===SetFontScaler===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
Line 656: Line 656:


===SetForegroundColour===
===SetForegroundColour===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
Line 675: Line 675:


===Write_Command===
===Write_Command===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
Line 694: Line 694:


===Write_Data===
===Write_Data===
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
Line 714: Line 714:
==Property reference==
==Property reference==


{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]

Revision as of 14:15, 13 July 2026

Author Matrix Ltd
Version 1.6
Category Graphical Monochrome


GLCD (ST7920) component

Graphical display component designed to work with the ST7920 type monochrome displays. Transfers data using an 8-bit/4-bit/SPI digital data bus.

Version information

Library Version, Component Version, Date, Author, Info
11, 1.0, 22-07-24, BR, Added DrawArc and DrawRoundedRectangle functions
Library Version, Component Version, Date, Author, Info
11, 1.4, 03-05-24, BR, Added SPI data mode to the component to work with serial displays
12, 1.4, 20-06-24, BR, Fixed a bug where read SPI pixel data was being repacked incorrectly
13, 1.5, 25-06-24, BR, Added an option to allow the pixel data to be buffer locally
14, 1.5, 25-06-24, BR, Fixed minor bug in pixel buffer addressing
15, 1.6, 25-06-24, BR, Allows buffer addressing to work better with variable pixel width/height
16, 1.6, 26-06-24, BR, Fixed minor bug in pixel buffer addressing

Detailed description

Click here for an in depth guide to graphical LCDs using Flowcode.

Information on the Fonts available for this component are available here. GLCD Font Subcomponent

Examples

No additional examples









Macro reference

BPlot

BPlot
Sets a pixel with the current background colour at pixel location X, Y.  
- UINT X1
 
- UINT Y1
 
- VOID Return


ClearDisplay

ClearDisplay
This macro clears the display of any previous output by overwriting the entire display with the background colour. 
- VOID Return


DrawArc

DrawArc
Draws an arc either as an outline or as a filled object. 
- UINT X
Center X coordinate 
- UINT Y
Center Y coordinate 
- UINT Radius
Radius, distance of edge from the centre coordinates 
- FLOAT StartAngle
Angle to start drawing, in degrees 
- FLOAT EndAngle
Angle to end drawing, in degrees 
- UINT Resolution
Number of lines to draw from the center to the outer edge, 0=Fill 
- BYTE Transparent
Chooses the transparency - 0 = Arc contains background colour, 1 = Arc contains previous pixel data. 
- BYTE Solid
Chooses to fill with colour - 0 = Arc transparency data, 1 = Arc contains foreground colour. 
- VOID Return


DrawBezier

DrawBezier
Draws a quadratic Bezier curve with the current foreground colour from pixel location X0, Y0 to pixel location X2, Y2 using control point CX, CY. 
- UINT X0
Start X coordinate 
- UINT Y0
Start Y coordinate 
- UINT CX
Control point X coordinate 
- UINT CY
Control point Y coordinate 
- UINT X2
End X coordinate 
- UINT Y2
End Y coordinate 
- UINT Resolution
Number of segments to approximate the curve, 0 chooses an automatic value based on curve size. 
- VOID Return


DrawCircle

DrawCircle
Draws a circle object on the display with the center of the circle at the location X,Y 
- UINT X
X Coordinate for the center of the circle 
- UINT Y
Y coordinate for the center of the circle 
- UINT Radius
Radius of the circle specified in pixels 
- BYTE Transparent
0=Fill inside circle using background colour / 1=Draw outer circle only 
- BYTE Solid
0=Use Transparent Setting / 1=Fill with foreground colour 
- VOID Return


DrawEllipse

DrawEllipse
Draws an ellipse object on the display with the center of the ellipse at the location X,Y 
- UINT X
X Coordinate for the center of the circle 
- UINT Y
Y coordinate for the center of the circle 
- UINT XRadius
Radius of the circle on the X axis specified in pixels 
- UINT YRadius
Radius of the circle on the Y axis specified in pixels 
- BYTE Transparent
0=Fill inside circle using background colour / 1=Draw outer circle only 
- BYTE Solid
0=Use Transparent Setting / 1=Fill with foreground colour 
- VOID Return


DrawLine

DrawLine
Draws a line with the current foreground colour from pixel location X1, Y1 to pixel location X2, Y2. 
- UINT X1
 
- UINT Y1
 
- UINT X2
 
- UINT Y2
 
- VOID Return


DrawRectangle

DrawRectangle
Draws a rectangle with the current foreground colour from pixel loaction X1, Y1 to pixel location X2, Y2 
- UINT X1
 
- UINT Y1
 
- UINT X2
 
- UINT Y2
 
- BYTE Transparent
Chooses the transparency of the box - 0 = Box contains background colour, 1 = Box contains previous pixel data. 
- BYTE Solid
Chooses to fill the box with colour - 0 = Box contains transparency data, 1 = Box contains foreground colour. 
- VOID Return


DrawRoundedRectangle

DrawRoundedRectangle
Draws a rectangle with rounded corners 
- UINT X1
 
- UINT Y1
 
- UINT X2
 
- UINT Y2
 
- UINT Radius
 
- BYTE Transparent
Chooses the transparency of the box - 0 = Box contains background colour, 1 = Box contains previous pixel data. 
- BYTE Solid
Chooses to fill the box with colour - 0 = Box contains transparency data, 1 = Box contains foreground colour. 
- VOID Return


Initialise

Initialise
The Init macro must be called once to initialise the Graphical LCD display before any other Graphical LCD component macros are called. 
- VOID Return


Plot

Plot
Sets a pixel with the current foreground colour at pixel location X, Y.  
- UINT X1
 
- UINT Y1
 
- VOID Return


Print

Print
This macro prints a string of characters to the Graphical LCD. 
- STRING Str
String of characters to send to the display. 
- UINT X1
X pixel coordinate to set the output string position. 
- UINT Y1
Y pixel coordinate to set the output string position. 
- BYTE Font
Selects which Font to use Range: 0 to Font Count 
- BYTE Transparent
Specifies if the background of the text is drawn - 0 = Background colour is drawn, 1 = Background colour not drawn. 
- VOID Return


PrintNumber

PrintNumber
This macro prints a decimal number to the Graphical LCD. 
- INT Number
Byte or Integer number to send to the display. 
- UINT X
X pixel coordinate to set the output string position. 
- UINT Y
Y pixel coordinate to set the output string position. 
- BYTE Font
Range: 0 to 31 - 0=5x8, 1=10x8, 2=10x16, 3=5x16, 4-31=Extended Sizes 
- BYTE Transparent
Specifies if the background of the text is drawn - 0 = Background colour is drawn, 1 = Background colour not drawn. 
- VOID Return


ReadFontStat

ReadFontStat
Gets a stat from the selected embedded ASCII font data. 
- BYTE Font
Font selection range: 0 to (NumFonts - 1) 
- BYTE Index
0=SpaceWidth, 1=PixelHeight 
- BYTE Return


ReadFontWidth

ReadFontWidth
Reads the number of pixel columns used in the selected font 
- BYTE Font
Font selection range: 0 to (NumFonts - 1) 
- BYTE Character
ASCII character to get the pixel width e.g. 'A' or 65 
- BYTE Return


SetBackgroundColour

SetBackgroundColour
Specifies the colour of the foreground 
- BYTE PixelColour
0=White, 1=Black 
- VOID Return


SetDisplayOrientation

SetDisplayOrientation
Controls the way data is printed out on the display allowing multiple different viewing orientations. Default is 0. 
- BYTE Orientation
0=Default, 1=90°CW, 2=180°CW, 3=270°CW 
- VOID Return


SetFontScaler

SetFontScaler
Allows the fonts to be scaled up by multiplying the number of pixels on the X and Y. 
- BYTE ScaleX
Sets the horizontal scale of the font, default 1 
- BYTE ScaleY
Sets the vertical scale of the font, default 1 
- VOID Return


SetForegroundColour

SetForegroundColour
Specifies the colour of the foreground.  
- BYTE PixelColour
0=White, 1=Black 
- VOID Return


Write_Command

Write_Command
 
- BYTE Command
 
- VOID Return


Write_Data

Write_Data
 
- BYTE data
 
- VOID Return


Property reference

Properties
Dimensions
Pixel Width
Width of gLCD canvas measured in pixels. 
Pixel Height
Heigt of gLCD canvas measured in pixels. 
Colour
Monochrome
Specifies if the display is capable of colour or monochrome only. 
Foreground Color
Specifies the initial foreground color. 
Background Color
Specifies the initial background color. 
Bit Depth
Color Bit Depth
Number of bits of colour depth available on the display 
Red Bit Depth
Number of bits of Red colour depth on the display 
Green Bit Depth
Number of bits of Green colour depth on the display 
Blue Bit Depth
Number of bits of Blue colour depth on the display 
Connections
Data Mode
 
Local Buffer
The display needs pixels to be assigned in blocks of 8 so for the display to function correctly we need to be able to know the value of pixels on the display to be able to draw without corruption. No - Use the display itself as a pixel buffer Yes - Use the local RAM as a pixel buffer 
Reset
Reset pin 
Parrallel Pins
Data0
Data Pin 0 
Data1
Data Pin 1 
Data2
Data Pin 2 
Data3
Data Pin 3 
Data4
Data Pin 4 
Data5
Data Pin 5 
Data6
Data Pin 6 
Data7
Data Pin 7 
RS
Address pin to tell the display if we are sending commands or data 
Enable
Enable pin used to clock data into the display 
RW
Read Write pin to set the display data mode 
Fonts
Font Count
Specifies the number of fonts available to use on the display. 
Font 0
Font
Font picker to decide which font to use on your display. 
Bytes Required
Number of bytes required in program memory to store the selected font. 
Character Spacing
Sets the number of blank pixels between each character when printing text. 
Space Width
Sets the number of horizontal pixels used to represent a space character. 
Simulation
Component Label
 
Component Label Scale
The label scale can be change if the amout of text is too wide for the display  
Physical Orientation
Rotates the simulated canvas to match the orientation of real world hardware. 

Component Source Code

Please click here to download the component source project: FC_Comp_Source_GLCD_ST7920.fcfx

Please click here to view the component source code (Beta): FC_Comp_Source_GLCD_ST7920.fcfx