4575 Cushing Parkway
Fremont, CA 94538
155 'B' Avenue, Suite 200
Lake Oswego, OR 97034
503-675-6464
503-675-7554 (fax)
A standard asynchronous serial port connects your system's microcontroller to the serial LCD controller. Simple ASCII commands are used to draw images, text, controls, and other LCD interface elements, on the screen. The controls report back over the serial line when they are activated or changed. Images are stored on the serial LCD controller in flash memory.

All microcontrollers, and even some DSP, have a serial port. In an upgrade situation, if no free port is available, the SLCD's second serial port can be used in "pass-thru" mode to connect to the replaced device. Serial transmit and receive are easily interrupt- driven, and the received control packets are small, to minimize processor overhead.
This simple control panel (see image at right) sets the state of three relays and shows the status of three signals. It is implemented by the following code.
Get the Software Reference Manual from the Download Center. It contains a complete description of the "bdc" and "xi" commands used in this example.
// this code assumes bitmaps 1 and 2 are the buttons
// and 3 and 4 are the indicators
//
// main code loop or process calls drawScreen() to show the screen and
// updateScreen() to update it.
//
// define button #1 at x=20, y=20, type 2 (on/off), text for both
// undepressed and depressed states are the same, use bitmaps 1 and 2
// for the button images
void drawScreen(void)
{
printf("bdc 1 20 20 2 "RELAY 1" "RELAY 1" 1 2/r");
// create Relay 2 button at x=20, y=95
printf("bdc 2 20 95 2 "RELAY 2" "RELAY 2" 1 2/r");
// create Relay 3 button at x=20, y=170
printf("bdc 3 20 170 2 "RELAY 3" "RELAY 3" 1 2/r");
}
void drawIndicator(int num, int state)
{
if( 1 == num )
{
if(state == 0) printf("xi 3 130 20/r"); // draw bitmap #3 at(130,20)
else printf("xi 4 130 20/r"); // draw bitmap #4 at(130,20)
}
if( 2 == num )
{
if(state == 0) printf("xi 3 130 95/r");
else printf("xi 4 130 95/r");
}
if( 3 == num )
{
if(state == 0) printf("xi 3 130 170/r");
else printf("xi 4 130 170/r");
}
}
void updateScreen(void)
{
char inBuf[10];
unsigned int button;
enum {up, down} state;
// check for incoming control string in the form 's'<button>
if( EOF != gets(inBuf) )
{ // split control string to button and state
button = inBuf[1]-'0';
state = inBuf[2]-'0';
// handle the button pressed or released
if( button == 1 ) relay1Handler(state);
if( button == 2 ) relay2Handler(state);
if( button == 3 ) relay3Handler(state);
}
// update the display
if( relay1Sense() ) drawIndicator(1, 1);
else drawIndicator(1, 0);
if( relay2Sense() ) drawIndicator(2, 1);
else drawIndicator(2, 0);
if( relay3Sense() ) drawIndicator(3, 1);
else drawIndicator(3, 0);
}
No particular operating system required
Reach microcontroller displays work with any operating system, with or without a host OS. From full-blown, embedded systems running Windows, Linux, or QNX, to small RTOS, or a "bare metal" code, the LCD interface is the same.
The library is built into Reach microcontroller displays. Your embedded system does not require additional memory overhead for library code, and has more resources to perform its main tasks of controlling your product.
View a short video to see examples of what you can do with a Reach display module: on-board proportional and fixed width fonts, parameter, label and simple math macros, easy to use buttons, save/restore drawing state, dynamic labels, text in a box, relative touch, data visualization charts, slider controls (compass, gauge meters), animation, scroll and rotate, and drawing primitives.
Reach serial LCD displays come in these configurations:
Ready to go for applications requiring a NEMA 4 class case, or for any application where a completely enclosed unit is desirable... More
Completely assembled graphic-display units help you rapidly integrate an intelligent display system into your product... More
Our low-cost, low-risk development kits contain everything you need to get a color touchscreen up and running in a matter of days... More
You can do any, or all, of these:
Get more information about how Reach products work with your product. Call our research and development office at 503-675-6464 or email a microcontroller display engineer.
Make something very simple work from end-to-end, then build from there. 1:42 Min Video
See how to get a Development Kit up and running. 8:10 Min Video
Check out examples of how companies have incorporated Reach modules into products.
2:40 Min Slideshow
Within a week have something up and running. Development Kits start at $349 ... More
Reach gives engineers a jump start. They see lower development costs, reduced risk and decreased time-to-market... More
The answer is yes if your host microcontroller or microprocessor has an Asynchronous Serial port or a USB host port and you don't need to display video or movie clips.... More
Order a microcontroller LCD development kit which contains everything you need to get a touch interface up and running in a matter of days...More
Download the microcontroller display Software Reference Manual from the Download Center. The manual contains a complete description of the "bdc" and "xi" commands used in this example.
Call sales and customer service
at 510-770-1417 or email us.
Call technical support at 503-675-6464 or email a microcontroller display engineer.