dartagnanmath's picture
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0




Toshiba T6963C Display Drive made in C++



Click Here to see a Video Demo

Click Here to see T6963C Manual in PDF

Click Here to Download Program Documentation in HTML(Click in Index.html to start documentation view)

Click Here to Download Complete Code and Resouces in Zip File


The T6963C chip is an old display driver with already 19 years of existence, used by microprocessors 8080.8088, z80,6502, etc., but that is still used and a few implementations for Atmel AVR microcontrollers  already they were made,indeed was the first thing I did when I met AVR assembler i did the drive to T6963C as learning exercise and occurred everything ok on the first run. Despite being a driver for monochrome displays the controller has some interesting features, such as simultaneous display of text and graphics may even make logical operation between the text and graphic such OR, AND, EXOR also allowing the use of attributes for text, usually This controller has enough memory to hold pages of text and video also it has commands to set Pixel and writing and reading rapid with possibility of increment, decrement or no change in the memory position after reading or writing.


This Version 1.41 that I'm releasing was done in C ++ using the Atmel Studio 7.0 in order to provide migration to Arduino boards with little change in the code. The Demo need to at least 160x128 pixels but the drive is generic and can be used for any resolution. This drive during startup uses its interface to check if there is memory, thus allowing to drive implementation of two text and graphic pages if available memory allows, and if there is not enough memory the drive uses minimal of one text and graphic page.



This drive is designed to operate in microcontrollers from Atmel AVR ATmega and the current Demo operates in AVRs ATMega8,64,128,162,328P that is easily converted to the others ATMega. With little change at the code is possible to use on Arduino.This limitation refers only to the Demo, having no limitation for any MegaAVR. The demo was done using an ATmega128 with 16Mhz crystal, follow.


This Version 1.41 has some interesting features, as


  • Check presence of the LDC - Usually LCD drivers are initialized, assuming that it is present on the ports or at microcontroller bus in use or microprocessor and can thus cause problems, such as locking, incorrect printing characters, etc. With this check, the drive is responsible for returning the state of their presence, hence enabling an error processing with eg warning through a beep, an LED flash etc. This drive allow the presence of LED  that it will blink if in the interface occur any problems during startup.


  • Start with checking the memory - During startup the drive calculates the amount of memory and configures the set to contain one page of text and graphics or 2 pages of text or graphic, when the existence of two pages this facilitates in the case of ha graphics make animations with reducing shake at animation.


Initialization Screen


  • Use texts in native or  mode graphics. The T6963c has an internal character generator which is used in Text mode for text functions and also graphic text generated by software, when in graphical mode there is a possibility scale the text expanding its size by 2, 3, 4 etc. times


Text generated by hardware and  Software

Graphics Text may be  Line, Solid Inverted

text graphic wit  scales 1,2,3 and 4


  • String Functions display that accept CR and LF - To Facilitating the use at the functions (putc, puts, PutSF, GPutC, GPutS, GPutSF) since it can generate a single String and one write command to producing two or more lines.


  • BitMap of Use  - Functions for handling bitmap with size until 32k bytes sizes are admitted into this drive even if the graphic display be smaller than the Bitmap and may even draw bitmaps that are not fully inserted in the display screen, allowing animations where a bitmap enters through the right side, left side, above or below the display.


Maximum size for BitMap 32K bytes


  • Line Drawing, squares and circles. These functions have the ability to be fill with patterns (boxes and circles) with or without borders and types of pens for drawing lines. All these functions were very optimized for speed.


Filled circles with patterns

Boxes filled with patterns

Lines with pen types.


  • Quick Horizontal Line Drawing.- The Horizontal lines draw, use hardware features that allows drawing of fast horizontal lines.


  • Drawing in defined window. Drawing functions will be used only within the defined window, allowing the isolation of the graphic to a particular region of the screen.