ChipCenter Questlink
SEARCH CHIPCENTER
Search Type:
Search for:




Knowledge Centers
Product Reviews
Data Sheets
Guides & Experts
News
International
Ask Us
Circuit Cellar Online
App Notes
NetSeminars
Careers
Resources
FAQ
EE Times Network
Electronics Group Sites

Looking Good


Circuit Cellar Online
THE MAGAZINE FOR COMPUTER APPLICATIONS
Circuit Cellar Online offers articles illustrating creative solutions
and unique applications through complete projects, practical
tutorials, and useful design techniques.

LOOKING GOOD

Silicon Online Using a Graphics-Based LCD
Module with C

by Bob Perrin and Tak Auyeung

Start ý Software Overview ý The Bottom Layer ý Initializing the LCD Display ý Shadow Display ý Drawing Dots and Lines ý Printing Text ý Extensions ý Sources and PDF

SOFTWARE OVERVIEW

The software referenced in this article can be downloaded, the zip contains two files glcd.c and glcd.h. You can also download them from www.mobots.com.

The C code in glcd.c implements the API level functions as shown in Table 1. These functions constituted a minimally functional API for a graphics-based display. Because the code is written completely in ANSI C, it should be portable to your target system and easily modified to suit your application.

Function Description
lcdInit() initialize the LCD
scrSetBrush() set the global paintbrush
scrDrawDot() draw a pixel
scrDrawLine() draw a line
scrFillBox() draw and fill a rectangle
scrFill() fill the screen
fntLoad() load a font
fntUnload() unload a font
scrDrawChar() draw a single character
scrDrawString() draw a string
Table 1ýThe API level functions are implemented by the C code in glcd.c.

The HDG12864F-1 COG module uses an Epson SED1565 LCD controller. If you want to modify the drivers, get Epsonýs SED1565 Technical Manual. [3] There is also a datasheet for the SED1565, but the Technical Manual is much more useful.

If you want to do additional software modifications specifically for the JK Microsystems V25+ Flashlite, get the V25+ and V35+ Users Manual from NEC. [4] Unfortunately, this publication is only available in print (not PDF), so you need to request it from NEC directly. You may be able to do this over the Internet, but we had better luck with the literature request phone line at (800) 366-9782.

OBJECTIVES AND SPECIFICATIONS

The main objective of the software driver of the graphics LCD is to provide an application programming interface (API) to isolate the application software from the details of the LCD hardware. With the proper API, any change to the graphics LCD hardware should not significantly affect the application program.

With a graphics LCD, an application can display both graphics and text. Therefore, it is important to supply methods to display text and graphics. For emphasis (or to save screen space), it is helpful to be able to use fonts of multiple sizes and shapes. The basic graphics primitives include dot plotting, line drawing, as well as filled rectangles.

Want MORE...unique applications, complete projects, practical tutorials, and useful design techniques?

Subscribe to Circuit Cellar magazine

 

Other useful methods include the ability to display bitmaps from a file and capture bitmaps to a file. However, these methods are not necessary to illustrate how to use a graphics LCD.

The driver software referred to in this article is developed using Borland C++ 4.52 and mostly ANSI-C compliant constructs with no "C++ only" constructs. The FAR keyword is not ANSI compliant, but is required by the Borland compiler to access the special function registers in the V25+. [1] The intentional avoidance of C++ constructs allows more developers to use the sample code.

PREVIOUSNEXT


Circuit Cellar provides up-to-date information for engineers. Visit www.circuitcellar.com for more information and additional articles.
For subscription information, call (860) 875-2199, subscribe@circuitcellar.com or subscribe online. ýCircuit Cellar, the Magazine for Computer Applications. Posted with permission.

Click here to get your listing up.

Copyright © 2003 ChipCenter-QuestLink
About ChipCenter-Questlink  Contact Us  Privacy Statement   Advertising Information  FAQ