Top  Previous  Next


Configures the Graphical LCD display.




Config GRAPHLCD = type , DATAPORT = port, CONTROLPORT=port , CE = pin , CD = pin , WR = pin, RD=pin, RESET= pin, FS=pin, MODE = mode





This must be 240X64, 128X128, 128X64 , 160X48 , 240X128, 192X64 , SED180X32 or 192X64SED.


For SED displays use 128X64sed or 120X64SED or SED180X32

For 132x132 color displays, use COLOR

For EADOG128x64 use 128X64EADOGM

For SSD1325 96x64 use   96X64SSD1325. See SSD1325lib.

For custom libs : CUSTOM.

The following options are optional for custom LCD:

- cols= num of cols in pixels

- rows= num of rows in pixels

- kind= any number to specify the lcd

- lcdname="somename"  , an optional name to identify the LCD


The name of the port that is used to put the data on the LCD data pins db0-db7.


PORTA for example.


This is the name of the port that is used to control the LCD control pins. PORTC for example


The pin number that is used to enable the chip on the LCD.


The pin number that is used to control the CD pin of the display.


The pin number that is used to control the /WR pin of the display.


The pin number that is used to control the /RD pin of the display.


The pin number that is used to control the FS pin of the display.


Not needed for SED based displays.


The pin number that is used to control the RESET pin of the display.


The number of columns for use as text display. Use 8 for X-pixels / 8 = 30 columns for a 240 pixel screen. When you specify 6, 240 / 6 = 40 columns can be used.

EADOG128M pins for SPI mode.

This display only can write data. As a result, a number of graphical commands are not supported.


Chip select for EADOG128x64


A0 line for EADOG128x64. This is the line that controls data/command


This is the serial input pin for the EADOG128x64.


This is the clock pin for the EADOG128x64.

ST7565R parallel data mode

A 128x64 graphical display which supports all graphic commands


The data port  connected to the display. For example portJ


the chip enabled line


the chip data/command mode pin


the reset pin of the chip


The /WR line of the chip


The /RD line of the chip


This pin selects the transfer mode.


Some displays have this PM pin which sets the parallel mode


Config Graphlcd = 128 * 64eadogm ,dataport=portj,  Cs1 = Porth.0 , A0 = Porth.2 , rst= Porth.1 , wr = Porth.3 , Rd = Porth.4,c86=porth.6


The first graphical LCD chip supported was T6963C. There are also drivers for other LCD's such as SED and KS0108. The most popular LCD's will be supported with a custom driver.


The following connections were used for the T6963C:


PORTA.0 to PORTA.7 to DB0-DB7 of the LCD

PORTC.5 to FS, font select of LCD

PORTC.2 to CE, chip enable of LCD

PORTC.3 to CD, code/data select of LCD

PORTC.0 to WR of LCD, write

PORTC.1 to RD of LCD, read

PORTC.4 to RESET of LCD, reset LCD




The LCD used from needs a negative voltage for the contrast.


Two 9V batteries were used with a pot meter.

Some displays have a Vout that can be used for the contrast(Vo)


The T6963C displays have both a graphical area and a text area. They can be used together. The routines use the XOR mode to display both text and graphics layered over each other.



The statements that can be used with the graphical LCD are :


CLS, will clear the graphic display and the text display

CLS GRAPH will clear only the graphic part of the display

CLS TEXT will only clear the text part of the display


LOCATE row,column : Will place the cursor at the specified row and column

The row may vary from 1 to 16 and the column from 1 to 40. This depends on the size and mode of the display.


CURSOR ON/OFF BLINK/NOBLINK can be used the same way as for text displays.


LCD : can be handled the same way as for text displays.


SHOWPIC X, Y , Label  : Show image where X and Y are the column and row and Label is the label where the picture info is placed.


PSET X, Y , color :  Will set or reset a pixel. X can range from 0-239 and Y from 9-63. When color is 0 the pixel will turned off. When it is 1 the pixel will be set on.


$BGF "file.bgf"  : inserts a BGF file at the current location


LINE(x0,y0) – (x1,y1) , color : Will draw a line from the coordinate x0,y0 to x1,y1.

Color must be 0 to clear the line and 255 for a black line.


BOX(x0,y0)-(x1,y1), color  : Will draw a box from x0,y0 to x1,y1. Color must be 0 to clear the box and 255 for a black line.


BOXFILL(x0,y0)-(x1,y1), color  : Will draw a filled box from x0,y0 to x1,y1. Color must be 0 or 255.


The Graphic routines are located in the glib.lib or glib.lbx files.

You can hard wire the FS and RESET and change the code from the glib.lib file so these pins can be used for other tasks.



Color displays were always relatively expensive. The mobile phone market changed that. And , sorted out how to connect these small nice colorful displays.

You can buy brand new Color displays from Display3000. MCS Electronics offers the same displays.

There are two different chip sets used. One chipset is from EPSON and the other from Philips. For this reason there are two different libraries. When you select the wrong one it will not work, but you will not damage anything.

LCD-EPSON.LBX need to be used with the EPSON chipset.

LCD-PCF8833.LBX need to be used with the Philihps chipset.


Config Graphlcd = Color , Controlport = Portc , Cs = 1 , Rs = 0 , Scl = 3 , Sda = 2


The port that is used to control the pins. PORTA, PORTB, etc.


The chip select pin of the display screen. Specify the pin number. 1 will mean PORTC.1


The RESET pin of the display


The clock pin of the display


The data pin of the display


As the color display does not have a built in font, you need to generate the fonts yourself.

You can use the Fonteditor for this task.


A number of statements accept a color parameter. See the samples below in bold.


Line(0 , 0) -(130 , 130) , Blue


Lcdat 100 , 0 , "12345678" , Blue , Yellow


Circle(30 , 30) , 10 , Blue


32 , 110 , Black


Box(10 , 30) -(60 , 100) , Red



See also






'name                     : t6963_240_128.bas

'copyright                : (c) 1995-2021, MCS Electronics

'purpose                  : T6963C graphic display support demo 240 * 128

'micro                    : Mega8535

'suited for demo          : yes

'commercial addon needed  : no



$regfile = "m8535.dat"                                     ' specify the used micro

$crystal = 8000000                                         ' used crystal frequency

$baud = 19200                                               ' use baud rate

$hwstack = 32                                               ' default use 32 for the hardware stack

$swstack = 10                                               ' default use 10 for the SW stack

$framesize = 40                                             ' default use 40 for the frame space



'                     (c) 2001-2016 MCS Electronics

'                 T6963C graphic display support demo 240 * 128



'The connections of the LCD used in this demo

'LCD pin                  connected to

' 1        GND            GND

'2        GND            GND

'3        +5V            +5V

'4        -9V            -9V potmeter

'5        /WR            PORTC.0

'6        /RD            PORTC.1

'7        /CE            PORTC.2

'8        C/D            PORTC.3

'9        NC             not conneted

'10       RESET          PORTC.4

'11-18    D0-D7           PA

'19       FS             PORTC.5

'20       NC             not connected


'First we define that we use a graphic LCD

' Only 240*64 supported yet

Config Graphlcd = 240 * 128 , Dataport = Porta , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8

'The dataport is the portname that is connected to the data lines of the LCD

'The controlport is the portname which pins are used to control the lcd

'CE, CD etc. are the pin number of the CONTROLPORT.

' For example CE =2 because it is connected to PORTC.2

'mode 8 gives 240 / 8 = 30 columns , mode=6 gives 240 / 6 = 40 columns


'Dim variables (y not used)

Dim X As Byte , Y As Byte



'Clear the screen will both clear text and graph display


'Other options are :

' CLS TEXT   to clear only the text display

' CLS GRAPH  to clear only the graphical part


Cursor Off


Wait 1

'locate works like the normal LCD locate statement

' LOCATE LINE,COLUMN LINE can be 1-8 and column 0-30



Locate 1 , 1


'Show some text

Lcd "MCS Electronics"

'And some othe text on line 2

Locate 2 , 1 : Lcd "T6963c support"

Locate 3 , 1 : Lcd "1234567890123456789012345678901234567890"

Locate 16 , 1 : Lcd "write this to the lower line"


Wait 2


Cls Text



'use the new LINE statement to create a box

'LINE(X0,Y0) - (X1,Y1), on/off

Line(0 , 0) -(239 , 127) , 255                             ' diagonal line

Line(0 , 127) -(239 , 0) , 255                             ' diagonal line

Line(0 , 0) -(240 , 0) , 255                               ' horizontal upper line

Line(0 , 127) -(239 , 127) , 255                           'horizontal lower line

Line(0 , 0) -(0 , 127) , 255                               ' vertical left line

Line(239 , 0) -(239 , 127) , 255                           ' vertical right line



Wait 2

' draw a line using PSET X,Y, ON/OFF

' PSET param is 0 to clear a pixel and any other value to turn it on

For X = 0 To 140

Pset X , 20 , 255                                       ' set the pixel



For X = 0 To 140

Pset X , 127 , 255                                       ' set the pixel



Wait 2


'circle time

'circle(X,Y), radius, color

'X,y is the middle of the circle,color must be 255 to show a pixel and 0 to clear a pixel

For X = 1 To 10

Circle(20 , 20) , X , 255                                 ' show circle

Wait 1

Circle(20 , 20) , X , 0                                   'remove circle

Wait 1



Wait 2


For X = 1 To 10

Circle(20 , 20) , X , 255                                 ' show circle

Waitms 200


Wait 2

'Now it is time to show a picture

'SHOWPIC X,Y,label

'The label points to a label that holds the image data


Showpic 0 , 0 , Plaatje

Showpic 0 , 64 , Plaatje                                   ' show 2 since we have a big display

Wait 2

Cls Text                                                   ' clear the text





'This label holds the mage data


'$BGF will put the bitmap into the program at this location

$bgf "mcs.bgf"


'You could insert other picture data here