CONFIG GRAPHLCD

Top  Previous  Next

Action

Configures the Graphical LCD display.

 

 

Syntax

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

 

 

Remarks

Type

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

Dataport

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

 

PORTA for example.

Controlport

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

Ce

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

Cd

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

WR

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

RD

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

FS

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

 

Not needed for SED based displays.

RESET

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

MODE

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.

CS1

Chip select for EADOG128x64

A0

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

SI

This is the serial input pin for the EADOG128x64.

SCLK

This is the clock pin for the EADOG128x64.


ST7565R parallel data mode

A 128x64 graphical display which supports all graphic commands

dataport

The data port  connected to the display. For example portJ

CS1

the chip enabled line

A0

the chip data/command mode pin

RST

the reset pin of the chip

WR

The /WR line of the chip

RD

The /RD line of the chip

C86

This pin selects the transfer mode.

PM

Some displays have this PM pin which sets the parallel mode

example

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 www.conrad.de 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 LCD

Color displays were always relatively expensive. The mobile phone market changed that. And Display3000.com , 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

Controlport

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

CS

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

RS

The RESET pin of the display

SCL

The clock pin of the display

SDA

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

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

LCDAT

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

CIRCLE

Circle(30 , 30) , 10 , Blue

PSET

32 , 110 , Black

BOX

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

 

 

See also

SHOWPIC , PSET , $BGF , LINE , LCD , BOX , BOXFILL

 

 

Example

'-----------------------------------------------------------------------------------------

'name                     : t6963_240_128.bas

'copyright                : (c) 1995-2016, 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

Cls

'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 on.off 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

Next

 

For X = 0 To 140

Pset X , 127 , 255                                       ' set the pixel

Next

 

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

Next

 

Wait 2

 

For X = 1 To 10

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

Waitms 200

Next

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

Test:

Showpic 0 , 0 , Plaatje

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

Wait 2

Cls Text                                                   ' clear the text

End

 

 

 

'This label holds the mage data

Plaatje:

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

$bgf "mcs.bgf"

 

'You could insert other picture data here