T6963C Graphic Lcd Library

The mikroBasic PRO for PIC provides a library for working with Glcds based on TOSHIBA T6963C controller. The Toshiba T6963C is a very popular Lcd controller for the use in small graphics modules. It is capable of controlling displays with a resolution up to 240x128. Because of its low power and small outline it is most suitable for mobile applications such as PDAs, MP3 players or mobile measurement equipment. Although small, this contoller has a capability of displaying and merging text and graphics and it manages all the interfacing signals to the displays Row and Column drivers.

For creating a custom set of Glcd images use Glcd Bitmap Editor Tool.

  Important :

Some mikroElektronika's adapter boards have pinout different from T6369C datasheets. Appropriate relations between these labels are given in the table below :
Adapter Board T6369C datasheet
RS C/D
R/W /RD
E /WR

Library Dependency Tree

T6963C Library Dependency Tree

External dependencies of T6963C Graphic Lcd Library

The following variables must be defined in all projects using T6963C Graphic Lcd library: Description : Example :
dim T6963C_dataPort as byte sfr external T6963C Data Port. dim T6963C_dataPort as byte at PORTD
dim T6963C_ctrlwr as sbit sfr external Write signal. dim T6963C_ctrlwr as sbit at RC2_bit
dim T6963C_ctrlrd as sbit sfr external Read signal. dim T6963C_ctrlrd as sbit at RC1_bit
dim T6963C_ctrlcd as sbit sfr external Command/Data signal. dim T6963C_ctrlcd as sbit at RC0_bit
dim T6963C_ctrlrst as sbit sfr external Reset signal. dim T6963C_ctrlrst as sbit at RC4_bit
dim T6963C_ctrlwr_Direction as sbit sfr external Direction of the Write pin. dim T6963C_ctrlwr_Direction as sbit at TRISC2_bit
dim T6963C_ctrlrd_Direction as sbit sfr external Direction of the Read pin. dim T6963C_ctrlrd_Direction as sbit at TRISC1_bit
dim T6963C_ctrlcd_Direction as sbit sfr external Direction of the Command/Data pin. dim T6963C_ctrlcd_Direction as sbit at TRISC0_bit
dim T6963C_ctrlrst_Direction as sbit sfr external Direction of the Reset pin. dim T6963C_ctrlrst_Direction as sbit at TRISC4_bit

Library Routines

T6963C_Init

Prototype

sub procedure T6963C_Init(dim width, height, fntW as byte)

Returns

Nothing.

Description

Initializes T6963C Graphic Lcd controller.

Parameters :

  • width: width of the Glcd panel
  • height: height of the Glcd panel
  • fntW: font width

Display RAM organization:
The library cuts the RAM into panels : a complete panel is one graphics panel followed by a text panel (see schematic below).

schematic:
+---------------------+ /\
+ GRAPHICS PANEL #0   +  |
+                     +  |
+                     +  |
+                     +  |
+---------------------+  | PANEL 0
+ TEXT PANEL #0       +  |
+                     + \/
+---------------------+ /\
+ GRAPHICS PANEL #1   +  |
+                     +  |
+                     +  |
+                     +  |
+---------------------+  | PANEL 1
+ TEXT PANEL #1       +  |
+                     +  |
+---------------------+ \/            	
            
Requires

Global variables :

  • T6963C_dataPort: Data Port
  • T6963C_ctrlwr: Write signal pin
  • T6963C_ctrlrd: Read signal pin
  • T6963C_ctrlcd: Command/Data signal pin
  • T6963C_ctrlrst: Reset signal pin

  • T6963C_ctrlwr_Direction: Direction of Write signal pin
  • T6963C_ctrlrd_Direction: Direction of Read signal pin
  • T6963C_ctrlcd_Direction: Direction of Command/Data signal pin
  • T6963C_ctrlrst_Direction: Direction of Reset signal pin
must be defined before using this function.

Example
' T6963C module connections
dim T6963C_dataPort as byte at PORTD     
dim T6963C_ctrlwr as sbit at RC2_bit       
dim T6963C_ctrlrd as sbit at RC1_bit       
dim T6963C_ctrlcd as sbit at RC0_bit       
dim T6963C_ctrlrst as sbit at RC4_bit      
dim T6963C_ctrlwr_Direction as sbit at TRISC2_bit       
dim T6963C_ctrlrd_Direction as sbit at TRISC1_bit       
dim T6963C_ctrlcd_Direction as sbit at TRISC0_bit       
dim T6963C_ctrlrst_Direction as sbit at TRISC4_bit      
' End of T6963C module connections

...
' init display for 240 pixel width, 128 pixel height and 8 bits character width
T6963C_Init(240, 128, 8)

T6963C_WriteData

Prototype

sub procedure T6963C_WriteData(dim mydata as byte)

Returns

Nothing.

Description

Writes data to T6963C controller.

Parameters :

  • mydata: data to be written

Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
T6963C_WriteData(AddrL)

T6963C_WriteCommand

Prototype

sub procedure T6963C_WriteCommand(dim mydata as byte)

Returns

Nothing.

Description

Writes command to T6963C controller.

Parameters :

  • mydata: command to be written

Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
T6963C_WriteCommand(T6963C_CURSOR_POINTER_SET)

T6963C_SetPtr

Prototype

sub procedure T6963C_SetPtr(dim p as word, dim c as byte)

Returns

Nothing.

Description

Sets the memory pointer p for command c.

Parameters :

  • p: address where command should be written
  • c: command to be written

Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
T6963C_SetPtr(T6963C_grHomeAddr + start, T6963C_ADDRESS_POINTER_SET)

T6963C_Set_Ext_Buffer

Prototype

sub procedure T6963C_Set_Ext_Buffer(dim getExtDataPtr as ^TT6963C_Get_Ext_Data_Ptr)

Returns

Nothing.

Description

Function sets pointer to the user function which manipulates the external resource.

Parameters :

  • TT6963C_Get_Ext_Data_Ptr - pointer to the user function.

User function prototype should be in the following format: sub function External(dim offset as longword, dim count as longword, dim byref num as longword) as ^byte

Parameters used in the function have the following meaning :

  • offset - offset from the beginning of the resource from where the data is requested.
  • count - requested number of bytes.
  • num - variable for holding the returned number of bytes (less or equal to the number of acquired bytes).
Requires

Glcd module needs to be initialized. See the T6963C_Init routine.

Example
T6963C_Set_Ext_Buffer(@ReadExternalBuffer)

T6963C_WaitReady

Prototype

sub procedure T6963C_WaitReady()

Returns

Nothing.

Description

Pools the status byte, and loops until Toshiba Glcd module is ready.

Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
T6963C_WaitReady()

T6963C_Fill

Prototype

sub procedure T6963C_Fill(dim v as byte, dim start, len as word)

Returns

Nothing.

Description

Fills controller memory block with given byte.

Parameters :

  • v: byte to be written
  • start: starting address of the memory block
  • len: length of the memory block in bytes

Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
T6963C_Fill(0x33,0x00FF,0x000F)

T6963C_Dot

Prototype

sub procedure T6963C_Dot(dim x, y as integer, dim color as byte)

Returns

Nothing.

Description

Draws a dot in the current graphic panel of Glcd at coordinates (x, y).

Parameters :

  • x: dot position on x-axis
  • y: dot position on y-axis
  • color: color parameter. Valid values: T6963C_BLACK, T6963C_WHITE and T6963C_INVERT.

Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
T6963C_Dot(x0, y0, T6963C_WHITE)

T6963C_Set_Font_Adv

Prototype

sub procedure T6963C_Set_Font_Adv(dim activeFont as ^far const byte, dim font_color as word, dim font_orientation as byte)

Description

Sets font that will be used with T6963C_Write_Char_Adv and T6963C_Write_Text_Adv routines.

Parameters
  • activeFont: font to be set. Needs to be formatted as an array of char.
  • font_color: sets font color.
  • font_orientation: sets font orientation.
Returns

Nothing.

Requires

Glcd needs to be initialized, see T6963C_Init routine.

Example
T6963C_Set_Font_Adv(@myfont, 1, 0)
Notes

None.

T6963C_Set_Ext_Font_Adv

Prototype

sub procedure T6963C_Set_Ext_Font_Adv(dim activeFont as longword, dim font_color as word, dim font_orientation as word)

Description

Sets font that will be used with T6963C_Write_Char_Adv and T6963C_Write_Text_Adv routines. Font is located in an external resource.

Parameters
  • activeFont: font to be set. This parameter represents the address in the exteral resource from where the font data begins.
  • font_color: sets font color.
  • font_orientation: sets font orientation.
Returns

Nothing.

Requires

Glcd needs to be initialized, see T6963C_Init routine.

Example
T6963C_Set_Ext_Font_Adv(173296, 5, 7, 32)
Notes

None.

T6963C_Write_Char

Prototype

sub procedure T6963C_Write_Char(dim c, x, y, mode as byte)

Returns

Nothing.

Description

Writes a char in the current text panel of Glcd at coordinates (x, y).

Parameters :

  • c: char to be written
  • x: char position on x-axis
  • y: char position on y-axis
  • mode: mode parameter. Valid values: T6963C_ROM_MODE_OR, T6963C_ROM_MODE_XOR, T6963C_ROM_MODE_AND and T6963C_ROM_MODE_TEXT

Mode parameter explanation:

  • T6963C_ROM_MODE_OR Mode: In the OR-Mode, text and graphics can be displayed and the data is logically "OR-ed". This is the most common way of combining text and graphics for example labels on buttons.
  • T6963C_ROM_MODE_XOR Mode: In this mode, the text and graphics data are combined via the logical "exclusive OR". This can be useful to display text in the negative mode, i.e. white text on black background.
  • T6963C_ROM_MODE_AND Mode: The text and graphic data shown on display are combined via the logical "AND function".
  • T6963C_ROM_MODE_TEXT Mode: This option is only available when displaying just a text. The Text Attribute values are stored in the graphic area of display memory.
For more details see the T6963C datasheet.

Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
T6963C_Write_Char("A",22,23,T6963C_ROM_MODE_AND)

T6963C_write_char_adv

Prototype

sub procedure T6963C_write_char_adv(dim ch, x, y as word)

Description

Writes a char in the current text panel of Glcd at coordinates (x, y).

Parameters
  • c: char to be written
  • x: char position on x-axis
  • y: char position on y-axis
Returns

Nothing.

Requires

Toshiba Glcd module needs to be initialized. See the T6963C_init routine.

Example
T6963C_write_char_adv("A",22,23)
Notes

None.

T6963C_Write_Text

Prototype

sub procedure T6963C_Write_Text(dim byref str as string, dim x, y, mode as byte)

Returns

Nothing.

Description

Writes text in the current text panel of Glcd at coordinates (x, y).

Parameters :

  • str: text to be written
  • x: text position on x-axis
  • y: text position on y-axis
  • mode: mode parameter. Valid values: T6963C_ROM_MODE_OR, T6963C_ROM_MODE_XOR, T6963C_ROM_MODE_AND and T6963C_ROM_MODE_TEXT

Mode parameter explanation:

  • T6963C_ROM_MODE_OR Mode: In the OR-Mode, text and graphics can be displayed and the data is logically "OR-ed". This is the most common way of combining text and graphics for example labels on buttons.
  • T6963C_ROM_MODE_XOR Mode: In this mode, the text and graphics data are combined via the logical "exclusive OR". This can be useful to display text in the negative mode, i.e. white text on black background.
  • T6963C_ROM_MODE_AND Mode: The text and graphic data shown on display are combined via the logical "AND function".
  • T6963C_ROM_MODE_TEXT Mode: This option is only available when displaying just a text. The Text Attribute values are stored in the graphic area of display memory.
For more details see the T6963C datasheet.

Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
T6963C_Write_Text(" GLCD LIBRARY DEMO, WELCOME !", 0, 0, T6963C_ROM_MODE_XOR)

T6963C_Write_Text_Adv

Prototype

sub procedure T6963C_Write_Text_Adv(dim byref text as string, dim x, y as word)

Description

Writes text in the current text panel of Glcd at coordinates (x, y).

Parameters
  • str: text to be written
  • x: text position on x-axis
  • y: text position on y-axis
Returns

Nothing.

Requires

Toshiba Glcd module needs to be initialized. See the T6963C_init routine.

Example
T6963C_Write_Text_Adv("Glcd LIBRARY DEMO, WELCOME !", 0, 0)
Notes

None.

T6963C_Write_Const_Text_Adv

Prototype

sub procedure SPI_T6963C_Write_Const_Text_Adv(dim text as ^far const byte, dim x, y as word)

Description

Writes text located in the program memory on the glcd at coordinates (x, y).

Parameters
  • str: text to be written
  • x: text position on x-axis
  • y: text position on y-axis
Returns

Nothing.

Requires

Toshiba Glcd module needs to be initialized. See the T6963C_init routine.

Example
const ctext = "mikroElektronika"
...
SPI_T6963C_Write_Const_Text_Adv(@ctext, 0, 0)
Notes

None.

T6963C_Line

Prototype

sub procedure T6963C_Line(dim x0, y0, x1, y1 as integer, dim pcolor as byte)

Returns

Nothing.

Description

Draws a line from (x0, y0) to (x1, y1).

Parameters :

  • x0: x coordinate of the line start
  • y0: y coordinate of the line end
  • x1: x coordinate of the line start
  • y1: y coordinate of the line end
  • pcolor: color parameter. Valid values: T6963C_BLACK, T6963C_WHITE and T6963C_INVERT.

Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
T6963C_Line(0, 0, 239, 127, T6963C_WHITE)

T6963C_Rectangle

Prototype

sub procedure T6963C_Rectangle(dim x0, y0, x1, y1 as integer, dim pcolor as byte)

Returns

Nothing.

Description

Draws a rectangle on Glcd.

Parameters :

  • x0: x coordinate of the upper left rectangle corner
  • y0: y coordinate of the upper left rectangle corner
  • x1: x coordinate of the lower right rectangle corner
  • y1: y coordinate of the lower right rectangle corner
  • pcolor: color parameter. Valid values: T6963C_BLACK, T6963C_WHITE and T6963C_INVERT.

Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
T6963C_Rectangle(20, 20, 219, 107, T6963C_WHITE)

T6963C_rectangle_round_edges

Prototype

sub procedure T6963C_rectangle_round_edges(dim x0, y0, x1, y1, radius as integer, dim pcolor as byte)

Returns

Nothing.

Description

Draws a rounded edge rectangle on Glcd.

Parameters :

  • x0: x coordinate of the upper left rectangle corner
  • y0: y coordinate of the upper left rectangle corner
  • x1: x coordinate of the lower right rectangle corner
  • y1: y coordinate of the lower right rectangle corner
  • round_radius: radius of the rounded edge.
  • pcolor: color parameter. Valid values: T6963C_BLACK, T6963C_WHITE and T6963C_INVERT.

Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
T6963C_rectangle_round_edges(20, 20, 219, 107, 12, T6963C_WHITE)

T6963C_rectangle_round_edges_fill

Prototype

sub procedure T6963C_rectangle_round_edges_fill(dim x0, y0, x1, y1, radius as integer, dim pcolor as byte)

Returns

Nothing.

Description

Draws a filled rounded edge rectangle on Glcd.

Parameters :

  • x0: x coordinate of the upper left rectangle corner
  • y0: y coordinate of the upper left rectangle corner
  • x1: x coordinate of the lower right rectangle corner
  • y1: y coordinate of the lower right rectangle corner
  • round_radius: radius of the rounded edge
  • pcolor: color parameter. Valid values: T6963C_BLACK, T6963C_WHITE and T6963C_INVERT.

Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
T6963C_rectangle_round_edges_fill(20, 20, 219, 107, 12, T6963C_WHITE)

T6963C_Box

Prototype

sub procedure T6963C_Box(dim x0, y0, x1, y1 as integer, dim pcolor as byte)

Returns

Nothing.

Description

Draws a box on Glcd

Parameters :

  • x0: x coordinate of the upper left box corner
  • y0: y coordinate of the upper left box corner
  • x1: x coordinate of the lower right box corner
  • y1: y coordinate of the lower right box corner
  • pcolor: color parameter. Valid values: T6963C_BLACK, T6963C_WHITE and T6963C_INVERT.

Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
T6963C_Box(0, 119, 239, 127, T6963C_WHITE)

T6963C_Circle

Prototype

sub procedure T6963C_Circle(dim x, y as integer, dim r as longint, dim pcolor as byte)

Returns

Nothing.

Description

Draws a circle on Glcd.

Parameters :

  • x: x coordinate of the circle center
  • y: y coordinate of the circle center
  • r: radius size
  • pcolor: color parameter. Valid values: T6963C_BLACK, T6963C_WHITE and T6963C_INVERT.

Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
T6963C_Circle(120, 64, 110, T6963C_WHITE)

T6963C_circle_fill

Prototype

sub procedure T6963C_circle_fill(dim x, y as integer, dim r as longint, dim pcolor as byte)

Returns

Nothing.

Description

Draws a filled circle on Glcd.

Parameters :

  • x: x coordinate of the circle center
  • y: y coordinate of the circle center
  • r: radius size
  • pcolor: color parameter. Valid values: T6963C_BLACK, T6963C_WHITE and T6963C_INVERT.

Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
T6963C_circle_fill(120, 64, 110, T6963C_WHITE)

T6963C_Image

Prototype

sub procedure T6963C_Image(const pic as ^byte)

Returns

Nothing.

Description

Displays bitmap on Glcd.

Parameters :

  • image: image to be displayed. Bitmap array is located in code memory.

Use the integrated Glcd Bitmap Editor (menu option Tools › Glcd Bitmap Editor) to convert image to a constant array suitable for displaying on Glcd.

  Note : Image dimension must match the display dimension.
Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
T6963C_Image(@mc)

T6963C_Ext_Image

Prototype

sub procedureT6963C_Ext_Image(dim image as longword)

Description

Displays a bitmap from an external resource.

Parameters
  • pic: image to be displayed. This parameter represents the address in the exteral resource from where the image data begins.
Returns

Nothing.

Requires

Toshiba Glcd module needs to be initialized. See the T6963C_init routine.

Example
T6963C_Ext_image(153608)
Notes

Image dimension must match the display dimension.

Use the integrated Glcd Bitmap Editor (menu option Tools › Glcd Bitmap Editor) to convert image to a constant array suitable for displaying on Glcd.

T6963C_PartialImage

Prototype

sub procedure T6963C_PartialImage(dim x_left, y_top, width, height, picture_width, picture_height as word, const image as ^byte)

Returns

Nothing.

Description

Displays a partial area of the image on a desired location.

Parameters :

  • x_left: x coordinate of the desired location (upper left coordinate).
  • y_top: y coordinate of the desired location (upper left coordinate).
  • width: desired image width.
  • height: desired image height.
  • picture_width: width of the original image.
  • picture_height: height of the original image.
  • image: image to be displayed. Bitmap array is located in code memory.

Use the integrated Glcd Bitmap Editor (menu option Tools › Glcd Bitmap Editor) to convert image to a constant array suitable for displaying on Glcd.

  Note : Image dimension must match the display dimension.
Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
' Draws a 10x15 part of the image starting from the upper left corner on the coordinate (10,12). Original image size is 16x32. 
T6963C_PartialImage(10, 12, 10, 15, 16, 32, @image)

T6963C_Ext_PartialImage

Prototype

sub procedure T6963C_Ext_PartialImage(dim x_left, y_top, width, height, picture_width, picture_height as word, dim image as longword)

Description

Displays a partial area of the image on a desired location.

Parameters
  • x_left: x coordinate of the desired location (upper left coordinate).
  • y_top: y coordinate of the desired location (upper left coordinate).
  • width: desired image width.
  • height: desired image height.
  • picture_width: width of the original image.
  • picture_height: height of the original image.
  • image: image to be displayed. This parameter represents the address in the exteral resource from where the image data begins.
Returns

Nothing.

Requires

Toshiba Glcd module needs to be initialized. See T6963C_init routine.

Example
T6963C_Ext_PartialImage(10, 12, 10, 15, 16, 32, 0)
Notes

Image dimension must match the display dimension.

Use the integrated Glcd Bitmap Editor (menu option Tools › Glcd Bitmap Editor) to convert image to a constant array suitable for displaying on Glcd.

T6963C_Sprite

Prototype

sub procedure T6963C_Sprite(dim px, py as byte, const pic as ^byte, dim sx, sy as byte)

Returns

Nothing.

Description

Fills graphic rectangle area (px, py) to (px+sx, py+sy) with custom size picture.

Parameters :

  • px: x coordinate of the upper left picture corner. Valid values: multiples of the font width
  • py: y coordinate of the upper left picture corner
  • pic: picture to be displayed
  • sx: picture width. Valid values: multiples of the font width
  • sy: picture height
  Note : If px and sx parameters are not multiples of the font width they will be scaled to the nearest lower number that is a multiple of the font width.
Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
T6963C_Sprite(76, 4, einstein, 88, 119) ' draw a sprite

T6963C_Set_Cursor

Prototype

sub procedure T6963C_Set_Cursor(dim x, y as byte)

Returns

Nothing.

Description

Sets cursor to row x and column y.

Parameters :

  • x: cursor position row number
  • y: cursor position column number

Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
T6963C_Set_Cursor(cposx, cposy)

T6963C_DisplayGrPanel

Prototype

sub procedure T6963C_DisplayGrPanel(dim n as byte)

Returns

Nothing.

Description

Display selected graphic panel.

Parameters :

  • n: graphic panel number. Valid values: 0 and 1.
Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
' display graphic panel 1
T6963C_DisplayGrPanel(1)

T6963C_DisplayTxtPanel

Prototype

sub procedure T6963C_DisplayTxtPanel(dim n as byte)

Returns

Nothing.

Description

Display selected text panel.

Parameters :

  • n: text panel number. Valid values: 0 and 1.
Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
' display text panel 1
T6963C_DisplayTxtPanel(1)

T6963C_SetGrPanel

Prototype

sub procedure T6963C_SetGrPanel(dim n as byte)

Returns

Nothing.

Description

Computes start address for selected graphic panel and set appropriate internal pointers. All subsequent graphic operations will be preformed at this graphic panel.

Parameters :

  • n: graphic panel number. Valid values: 0 and 1.
Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
' set graphic panel 1 as current graphic panel. 
T6963C_SetGrPanel(1)

T6963C_SetTxtPanel

Prototype

sub procedure T6963C_SetTxtPanel(dim n as byte)

Returns

Nothing.

Description

Computes start address for selected text panel and set appropriate internal pointers. All subsequent text operations will be preformed at this text panel.

Parameters :

  • n: text panel number. Valid values: 0 and 1.
Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
' set text panel 1 as current text panel. 
T6963C_SetTxtPanel(1)

T6963C_PanelFill

Prototype

sub procedure T6963C_PanelFill(dim v as byte)

Returns

Nothing.

Description

Fill current panel in full (graphic+text) with appropriate value (0 to clear).

Parameters :

  • v: value to fill panel with.
Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
' clear current panel
T6963C_PanelFill(0)

T6963C_GrFill

Prototype

sub procedure T6963C_GrFill(dim v as byte)

Returns

Nothing.

Description

Fill current graphic panel with appropriate value (0 to clear).

Parameters :

  • v: value to fill graphic panel with.
Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
' clear current graphic panel 
T6963C_GrFill(0)

T6963C_TxtFill

Prototype

sub procedure T6963C_TxtFill(dim v as byte)

Returns

Nothing.

Description

Fill current text panel with appropriate value (0 to clear).

Parameters :

  • v: this value increased by 32 will be used to fill text panel.
Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
' clear current text panel
T6963C_TxtFill(0)

T6963C_Cursor_Height

Prototype

sub procedure T6963C_Cursor_Height(dim n as byte)

Returns

Nothing.

Description

Set cursor size.

Parameters :

  • n: cursor height. Valid values: 0..7.
Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
T6963C_Cursor_Height(7)

T6963C_Graphics

Prototype

sub procedure T6963C_Graphics(dim n as byte)

Returns

Nothing.

Description

Enable/disable graphic displaying.

Parameters :

  • n: on/off parameter. Valid values: 0 (disable graphic displaying) and 1 (enable graphic displaying).
Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
' enable graphic displaying
T6963C_Graphics(1)

T6963C_Text

Prototype

sub procedure T6963C_Text(dim n as byte)

Returns

Nothing.

Description

Enable/disable text displaying.

Parameters :

  • n: on/off parameter. Valid values: 0 (disable text displaying) and 1 (enable text displaying).
Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
' enable text displaying 
T6963C_Text(1)

T6963C_cursor

Prototype

sub procedure T6963C_Cursor(dim n as byte)

Returns

Nothing.

Description

Set cursor on/off.

Parameters :

  • n: on/off parameter. Valid values: 0 (set cursor off) and 1 (set cursor on).
Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
' set cursor on
T6963C_Cursor(1)
Prototype

sub procedure T6963C_Cursor_Blink(dim n as byte)

Returns

Nothing.

Description

Enable/disable cursor blinking.

Parameters :

  • n: on/off parameter. Valid values: 0 (disable cursor blinking) and 1 (enable cursor blinking).
Requires

Toshiba Glcd module needs to be initialized. See the T6963C_Init routine.

Example
' enable cursor blinking 
T6963C_Cursor_Blink(1)

Library Example

The following drawing demo tests advanced routines of the T6963C Glcd library. Hardware configurations in this example are made for the T6963C 240x128 display, EasyPIC6 board and PIC16F887.

Copy Code To ClipboardCopy Code To Clipboard
program T6963C_240x128

include __Lib_T6963C_Consts

' T6963C module connections
dim T6963C_dataPort as byte at PORTD                  ' DATA port

dim T6963C_ctrlwr as sbit at RC2_bit                 ' WR write signal
dim T6963C_ctrlrd as sbit at RC1_bit                 ' RD read signal
dim T6963C_ctrlcd as sbit at RC0_bit                 ' CD command/data signal
dim T6963C_ctrlrst as sbit at RC4_bit                ' RST reset signal
dim T6963C_ctrlwr_Direction as sbit at TRISC2_bit    ' WR write signal direction
dim T6963C_ctrlrd_Direction as sbit at TRISC1_bit    ' RD read signal direction
dim T6963C_ctrlcd_Direction as sbit at TRISC0_bit    ' CD command/data signal direction
dim T6963C_ctrlrst_Direction as sbit at TRISC4_bit   ' RST reset signal direction

' Signals not used by library, they are set in main sub function
dim T6963C_ctrlce as sbit at RC3_bit                 ' CE signal
dim T6963C_ctrlfs as sbit at RC6_bit                 ' FS signal
dim T6963C_ctrlmd as sbit at RC5_bit                 ' MD signal
dim T6963C_ctrlce_Direction as sbit at TRISC3_bit    ' CE signal direction
dim T6963C_ctrlfs_Direction as sbit at TRISC6_bit    ' FS signal direction
dim T6963C_ctrlmd_Direction as sbit at TRISC5_bit    ' MD signal direction
' End T6963C module connections

dim   panel as byte         ' current panel
          i as word         ' general purpose register
       curs as byte         ' cursor visibility
      cposx,
      cposy as word         ' cursor x-y position
      txtcols as byte       ' number of text coloms
      txt, txt1 as string[29]


main:
  txt1 = " EINSTEIN WOULD HAVE LIKED mE"
  txt  = " GLCD LIBRARY DEMO, WELCOME !"

  ANSEL  = 0                    ' Configure AN pins as digital I/O
  ANSELH = 0
  C1ON_bit = 0                  ' Disable comparators
  C2ON_bit = 0

  TRISB0_bit = 1                ' Set RB0 as input
  TRISB1_bit = 1                ' Set RB1 as input
  TRISB2_bit = 1                ' Set RB2 as input
  TRISB3_bit = 1                ' Set RB3 as input
  TRISB4_bit = 1                ' Set RB4 as input

  T6963C_ctrlce_Direction = 0
  T6963C_ctrlce = 0             ' Enable T6963C
  T6963C_ctrlfs_Direction = 0
  T6963C_ctrlfs = 0             ' Font Select 8x8
  T6963C_ctrlmd_Direction = 0
  T6963C_ctrlmd = 0             ' Column number select

  panel = 0
  i = 0
  curs = 0
  cposx = 0
  cposy = 0

  ' Initialize T6369C
  T6963C_Init(240, 128, 8)

'   *
'   * Enable both graphics and text display at the same time
'   *
  T6963C_graphics(1)
  T6963C_text(1)

'   *
'   * Text messages
'   *
  T6963C_write_text(txt, 0, 0, T6963C_ROM_MODE_XOR)
  T6963C_write_text(txt1, 0, 15, T6963C_ROM_MODE_XOR)


'   *
'   * Cursor
'   *
  T6963C_cursor_height(8)       ' 8 pixel height
  T6963C_set_cursor(0, 0)       ' Move cursor to top left
  T6963C_cursor(0)              ' Cursor off

'   *
'   * Draw rectangles
'   *
  T6963C_rectangle(0, 0, 239, 127, T6963C_WHITE)
  T6963C_rectangle(20, 20, 219, 107, T6963C_WHITE)
  T6963C_rectangle(40, 40, 199, 87, T6963C_WHITE)
  T6963C_rectangle(60, 60, 179, 67, T6963C_WHITE)

'   *
'   * Draw a cross
'   *
  T6963C_line(0, 0, 239, 127, T6963C_WHITE)
  T6963C_line(0, 127, 239, 0, T6963C_WHITE)

'   *
'   * Draw solid boxes
'   *
  T6963C_box(0, 0, 239, 8, T6963C_WHITE)
  T6963C_box(0, 119, 239, 127, T6963C_WHITE)

'   *
'   * Draw circles
'   *
  T6963C_circle(120, 64, 10, T6963C_WHITE)
  T6963C_circle(120, 64, 30, T6963C_WHITE)
  T6963C_circle(120, 64, 50, T6963C_WHITE)
  T6963C_circle(120, 64, 70, T6963C_WHITE)
  T6963C_circle(120, 64, 90, T6963C_WHITE)
  T6963C_circle(120, 64, 110, T6963C_WHITE)
  T6963C_circle(120, 64, 130, T6963C_WHITE)

  T6963C_sprite(76, 4, @einstein, 88, 119)      ' Draw a sprite

  T6963C_setGrPanel(1)                          ' Select other graphic panel

  T6963C_sprite(0, 0,  @mikroE_240x64_bmp, 240, 64)    ' 240x128 can"t be stored in most of PIC16 MCUs
  T6963C_sprite(0, 64, @mikroE_240x64_bmp, 240, 64)    '   it is replaced with smaller picture 240x64
                                                       '   Smaller picture is drawn two times

  while TRUE                                           ' Endless loop

    '*
    '* If PORTB_0 is pressed, toggle the display between graphic panel 0 and graphic 1
    '*

    if (RB0_bit <> 0) then
          T6963C_graphics(1)
          T6963C_text(0)
          Delay_ms(300)

    '*
    '* If PORTB_1 is pressed, display only graphic panel
    '*

    else
      if (RB1_bit <> 0) then
         Inc(panel)
         panel = panel and 1
         T6963C_setPtr((T6963C_grMemSize + T6963C_txtMemSize) * panel, T6963C_GRAPHIC_HOME_ADDRESS_SET)
         Delay_ms(300)

    '*
    '* If PORTB_2 is pressed, display only text panel
    '*
      else
        if (RB2_bit <> 0) then
          T6963C_graphics(0)
          T6963C_text(1)
          Delay_ms(300)

    '*
    '* If PORTB_3 is pressed, display text and graphic panels
    '*
        else
          if (RB3_bit <> 0) then
            T6963C_graphics(1)
            T6963C_text(1)
            Delay_ms(300)

    '*
    '*  If PORTB_4 is pressed, change cursor
    '*
          else
            if(RB4_bit <> 0) then
              Inc(curs)
              if (curs = 3) then
                curs = 0
              end if
              select case curs
                case 0
                       ' no cursor
                       T6963C_cursor(0)
                case 1
                       ' blinking cursor
                       T6963C_cursor(1)
                       T6963C_cursor_blink(1)
                case 2
                       ' non blinking cursor
                       T6963C_cursor(1)
                       T6963C_cursor_blink(0)
              end select  'case
                Delay_ms(300)

            end if
          end if
        end if
      end if
    end if

      '*
      '* Move cursor, even if not visible
      '*
      Inc(cposx)
      if (cposx = T6963C_txtCols) then
        cposx = 0
        Inc(cposy)
        if (cposy = T6963C_grHeight / T6963C_CHARACTER_HEIGHT) then
          cposy = 0
        end if
      end if
      T6963C_set_cursor(cposx, cposy)

      Delay_ms(100)
  wend
end.

HW Connection

T6963C Glcd HW connection

T6963C Glcd HW connection

Copyright (c) 2002-2012 mikroElektronika. All rights reserved.
What do you think about this topic ? Send us feedback!
Want more examples and libraries? 
Find them on LibStock - A place for the code