Graphic screens look impressive and allow you to display images that a simple character based screen can’t provide. However this improvement comes at the cost of a great deal of complexity. Once configured for your screen, this driver removes that complexity for you and allows you to simply display bitmaps of any size and ASCII text strings using user adjustable fonts anywhere on a screen. Monospace or proportional width text with left, centre or right alignment and scrolling functions provides the complete toolbox of text display capabilities. Once you have these capabilities using a graphic screen is easy and it’s a simple matter to add any special user interface features you require for your application, such as menus, animated graphics, graphs and more. One of the great advantages of this driver is that it provides you with very simple but very powerful control over everything you display on the screen, allowing you to implement your display, and any user interface, exactly as you want it down to the individual pixel.
This driver provides complete bitmap and string display capabilities on any standard mono graphic display with a built in or external 8 bit display controller IC. It may also be used with virtually any mono pixel display system, such as LCD, E Ink, LED, OLED, Vacuum Fluorescent, or others. Once configured, the driver removes you from all of the problems of byte updating of displays. The driver can optionally use the display controller IC memory buffer for the display data rather than processor memory, resulting in a very small RAM memory requirement for the driver for screens which provide read as well as write access.
The included bitmap converter PC application will read all of your source monochrome .bmp bitmap files, created in a standard graphics application, and convert them into the selected format ready for use in your application. It will also convert special font bitmap files to be used to display ASCII text strings. Options allow you to rotate your bitmap images and fonts before converting, allowing you to use a screen in any of the 4 possible orientations.
As well as displaying ASCII text strings in standard ‘monospace’ fixed pitch mode (each character takes the same horizontal space regardless of its actual width), this driver also allows you to display text in proportional mode. This makes lines of text much more attractive and natural to read and typically allows you to fit additional characters across a screen as each character only uses as much width as is required to display it. Left, centre and right text alignment options remove you from the pain of having to manually calculate text offsets to make your text appear where you want it on the screen. Scrolling text lets you create impressive effects or display more information on a small display than would fit as a static line.
This driver can’t quite remove all of the complexity for you as you will need to configure the basic screen access functions to suit the particular screen / display controller IC you’re using. This has been made as simple as possible, and some sample screen models are included for you to copy and modify as required.
The driver code has been designed using ANSI compliant C compliers. Using the driver with other ANSI compliant C compliers and with other processors / microcontrollers should not present significant problems, but you should ensure that you have sufficient programming expertise to carry out any modifications that may be required to the source code. Embedded-code.com source code is written to be very easy to understand by programmers of all levels. The code is very highly commented with no lazy programming techniques. All function, variable and constant names are fully descriptive to help you modify and expand the code with ease.
The driver and associated files are provided under a licence agreement. Please see www.embedded-code.com/licence.php for full details.
The remainder of this manual provides a wealth of technical information about the driver as well as useful guides to get you going. We welcome any feedback on this manual and the driver.


