Character LCD Interface for ez80acclaim! MCUs

Similar documents
Interfacing Z8 Encore! XP MCUs with an I 2 C-Based Character LCD

An Automatic Temperature Control System Using RZK

EEPROM Emulation with the ez80f91 MCU. Discussion

Set Up a PLL Loop Filter on the ez80f91 MCU

Flash Loader Utility for the Z8 Encore! XP MCU

Zilog Real-Time Kernel

An SPI Temperature Sensor Interface with the Z8 Encore! SPI Bus

High Resolution Digital Weigh-Scale Design Using Z8 Encore! Microcontrollers

Boot Loader for the Z51F6412 MCU

Z8 Encore! XP F1680 Series 8-Bit Flash Solution with Extended Peripherals

S3 Flash In-System Programmer

5x7 LED Matrix Display with Z8 Encore! XP

Z8 Encore! XP F0822 Series

Challenge. Hardware Circuit Details. Solution. Result. Features and Functions. Z8 Encore! MC

Getting Started with ESPI Interface Using the Z8 Encore! XP F1680

ez80f91 Modular Development Kit

Z8 Encore! XP/Z8 Encore! Development Kits

Universal Motor Control with Z8 Encore! XP 8-Pin Highly Integrated Microcontroller

ZiLOG Real-Time Kernel Version 1.2.0

Zilog TCP/IP Software Suite

ZLF645 Crimzon Flash Microcontroller with ZBase Database Industry Leading Universal Infrared Remote Control (UIR) Solution

ZCRMZNICE01ZEMG Crimzon In-Circuit Emulator

Using the Z8051 MCU s USI Peripheral as an SPI Interface

A Simple Console Application for Z8 Encore! XP MCUs

Zatara Series ARM ASSP High-Performance 32-bit Solution for Secure Transactions

Ethernet Smart Cable

LCD. Configuration and Programming

Lab 3 LCD Mar

Lab Experiment 9: LCD Display

S3F8S5A Development Kit

AN1745. Interfacing the HC705C8A to an LCD Module By Mark Glenewinkel Consumer Systems Group Austin, Texas. Introduction

Z8 Encore! XP Family of Microcontrollers Development Kits

Using an ez80 Flash Memory File System

Z8 Encore! XP 4K Series with extended Peripherals

CLCD1 Serial 1 wire RS232 LCD development board

High-Performance 8-Bit Microcontrollers. Up to 8 10-Bit ADC Channels. Two 16-Bit Timers/PWM. Internal Precision Oscillator

Z8 Encore! XP F0822 Series Development Kit

Parallel Display Specifications Revision 1.0

Engineer-to-Engineer Note

Embedded Systems and Software. LCD Displays

Lab Overview. Lab Details. ECEN 4613/5613 Embedded System Design Week #7 Spring 2005 Lab #4 2/23/2005

Serial Communication Controllers (SCC) MULTIPROTOCOL DATA COMMUNICATION SOLUTIONS

Z8 Encore! Z8F642 MCU Evaluation Kit

The modules in this lab room are 4 line by 16 character display modules. The data sheet/users manual for the module is posted on My.Seneca.

ez80 Family of Microprocessors Zilog File System User Manual UM Copyright 2007 by Zilog, Inc. All rights reserved.

ez80190 Development Kit Quick Start Guide

ZMOTION Detection Module Development Kit

INTRODUCTION. Mechanical Considerations APPLICATION NOTE Z86E21 THERMAL PRINTER CONTROLLER ZILOG

LCDs. Embedded Systems Interfacing. 20 September 2011

AVR42772: Data Logger Demo Application on XMEGA A1U Xplained Pro. Introduction. Features. AVR XMEGA Microcontrollers APPLICATION NOTE

EDE700 Serial LCD Interface IC

Application Note. Connecting standard LCD modules to. the MB90670/5 series. History 01 th Feb. 97 MM V1.0 started 28 th June 00 TKa V1.

HandsOn Technology -- HT-MC-02 MODEL: HT-MC-02

If the display shift operation is used on a 20 x 4 display, the addressing is shifted as follows:

ToolStick-EK TOOLSTICK USER S GUIDE. 1. Kit Contents. 2. ToolStick Overview. Green and Red LEDs. C8051F321 provides USB debug interface.

TN-192. Bar Graph shows analog trends on a dot-matrix character LCD module. Introduction. LCD Module Basics. Custom Characters

Product Update. Errata to Z8 Encore! 8K Series Silicon. Z8 Encore! 8K Series Silicon with Date Codes 0402 and Later

EMBEDDED HARDWARE DESIGN. Tutorial Interfacing LCD with Microcontroller /I

Demystifying Character Based LCDs

ezvision 200 Television Controllers with OSD

Digital UART Product Specification

USB I 2 C Interface Board Reference Manual

USB Debug Adapter. Power USB DEBUG ADAPTER. Silicon Laboratories. Stop. Run. Figure 1. Hardware Setup using a USB Debug Adapter

M16C/62 APPLICATION NOTE. Using the Expanded Memory Mode with the M16C/ Abstract. 2.0 Introduction. 3.0 Memory Expansion Mode

ECE 4510/5530 Microcontroller Applications Week 9

LCD Module with I2C / Serial Interface and Keypad Control «LCD I2C/Serial» User s Guide. Copyright 2008 IMS

Environmental Data Acquisition Using (ENC28J60)

SSD1803. Product Preview. 100 x 34 STN LCD Segment / Common Mono Driver with Controller

Common Flash Interface (CFI) and Command Sets

LCM NHD-0440CI-YTBL. User s Guide. (Liquid Crystal Display Module) RoHS Compliant. For product support, contact NHD CI- Y- T- B- L-

Figure 1. Proper Method of Holding the ToolStick. Figure 2. Improper Method of Holding the ToolStick

Figure 1. Proper Method of Holding the ToolStick. Figure 2. Improper Method of Holding the ToolStick

AN3281 Application note

e-pg Pathshala Subject: Computer Science Paper: Embedded System Module: Interfacing External Devices using Embedded C Module No: CS/ES/22

Figure 1. Proper Method of Holding the ToolStick. Figure 2. Improper Method of Holding the ToolStick


16COM / 40SEG DRIVER & CONTROLLER FOR DOT MATRIX LCD

AN LPC1700 secondary USB bootloader. Document information. LPC1700, Secondary USB Bootloader, ISP, IAP

AN3279 Application Note

LCD board. EB005

BOOST YOUR SYSTEM PERFORMANCE USING THE ZILOG ESCC CONTROLLER

Programming in the MAXQ environment

AN10210 Using the Philips 87LPC76x microcontroller as a remote control transmitter

ATAES132A Firmware Development Library. Introduction. Features. Atmel CryptoAuthentication USER GUIDE

Application Note, V1.0, Aug AP08064 XC866/886/888. Safeguarding the Microcontroller under Out-of-Spec Noise Conditions.

C8051F00x/01x-DK C8051F00X/01X DEVELOPMENT KIT USER S GUIDE. 1. Kit Contents. 2. Hardware Setup using a USB Debug Adapter

Figure 1. Proper Method of Holding the ToolStick. Figure 2. Improper Method of Holding the ToolStick

Real Time Embedded Systems. Lecture 1 January 17, 2012

USB / Ethernet Production Ready Module

Alphanumeric LCD display module 24 characters by 2 line. General description

USB Debug Adapter. Power USB DEBUG ADAPTER. Silicon Laboratories. Stop. Run. Figure 1. Hardware Setup using a USB Debug Adapter

EDBG. Description. Programmers and Debuggers USER GUIDE

Laboratory 3 Working with the LCD shield and the interrupt system

eip-10 Embedded TCP/IP 10-BaseT Network Module Features Description Applications

AN2792 Application note

AN3980 Application note

C8051F530A-DK C8051F530A DEVELOPMENT KIT USER S GUIDE. 1. Relevant Devices. 2. Kit Contents

16COM/40SEG DRIVER & CONTROLLER FOR DOT MATRIX LCD

DATA SHEET. PCF2113x LCD controller/driver INTEGRATED CIRCUITS Apr 04

JUL. 27, 2001 Version 1.0

Transcription:

Application Note Character LCD Interface for ez80acclaim! MCUs AN015902-0708 Abstract This Application Note provides Character LCD driver routines, coded in ANSI C, for Zilog s ez80acclaim! Flash microcontroller-based embedded software. The driver library is built for a generic 16x2 character LCD display that is fitted with a Hitachi HD44780 controller. This 16x2 character LCD uses the industry standard 4-bit data transfer mode. The driver APIs can also be used, with minor modifications, for other character LCD dimensions, such as 8x1, 16x1, and 20x2 in combination with different LCD controllers. The hardware interface between the LCD controller and an ez80acclaim! microcontroller unit (MCU) is built by using seven GPIO pins on a single port. Note: The source code file associated with this application note, AN0159- SC01.zip and AN0159- SC02.zip are available for download at www.zilog.com. The APIs in the Character LCD driver library provide services to: Set up and initialize the LCD controller specific to the type of display Turn display On and Off Display an ASCII character/symbol Display a null terminated string Display a character or symbol a specified number of times Read a character or symbol at a current location Clear the screen Home-position the cursor Backspace the cursor one position Insert one space at a current location Blink the cursor at a current position Turn off the cursor blink Read the current cursor position in DDRAM Set the print location at a line number and column number Scroll text from the bottom line to the top line Write a user-defined pixel map in an LCD CGRAM from a table Display user-defined character patterns ez80acclaim! Flash MCU Overview ez80acclaim! on-chip Flash MCUs are an exceptional value for you in designing high performance, 8-bit MCU-based systems. With speeds up to 50 MHz and an on-chip Ethernet MAC (for ez80f91 only), you have the performance necessary to execute complex applications quickly and efficiently. Combining Flash and SRAM, ez80acclaim! devices provide the memory required to implement communication protocol stacks and achieve flexibility when performing in-system updates of application firmware. The ez80acclaim! Flash MCU can operate in full 24-bit linear mode addressing 16 MB without a Memory Management Unit. Additionally, support for the Z80 -compatible mode allows Z80/Z180 customers to execute legacy code within multiple 64 KB memory blocks with minimum modification. With an external bus supporting ez80, Z80, Intel, and Motorola bus modes and a rich set of Copyright 2008 by Zilog, Inc. All rights reserved. www.zilog.com

serial communications peripherals, you have several options when interfacing to external devices. Some of the many applications suitable for ez80acclaim! devices include vending machines, point-of-sale terminals, security systems, automation, communications, industrial control and facility monitoring, and remote control. Discussion Liquid Crystal Display (LCD) is a very useful medium of communication in a variety of applications, especially in consumer goods such as washing machines, microwave appliances, and VCRs, to name a few. The number of lines displayed and the number of characters displayed per line characterize LCDs into 16x2, 40x2, and 40x4 dimensions. An LCD requires a controller to control various features of its display. An LCD with a controller is referred to as an LCD module. The following section describes one such LCD module. Character LCD Module The Character LCD Module used for demonstrating character LCD interfacing with the ez80acclaim! MCU is a 16x2 character LCD controlled by the HD44780 controller by Hitachi. It features the following main units: Pins DDRAM CGRAM CGROM Busy Flag Pin The Character LCD Module, with its on-board HD44780 controller, contains eleven signal pins for controlling the LCD, in addition to the power supply pins. These pins are listed in Table 1. Table 1. Pin s for a Typical HD44780-Based Character LCD Module Pin No LCD Pin Name 1 V SS GND (0 V) 2 V DD +V (5 V) 3 V L Pot. Wiper (Voltage between V SS & V DD ) 4 RS Register Select (1 = data input, 0 = instruction input) 5 RW Read/Write mode (1 = read data from LCD, 0 = write data) 6 E Enable pulse signal (High to Low pulse for short duration) 7 D 0 Data pin (unused in 4-bit mode) 8 D 1 Data pin (unused in 4-bit mode) 9 D 2 Data pin (unused in 4-bit mode) 10 D 3 Data pin (unused in 4-bit mode) 11 D 4 Data pin 12 D 5 Data pin 13 D 6 Data pin 14 D 7 Data pin The connector for a Character LCD Module can be arranged as 14x1 pin header or as a 7x2 pin header. In either case, the pin descriptions listed in Table 1 are valid. The LCD interface described in this Application Note utilizes a 4-bit data bus to communicate with the HD44780 controller. The interface therefore uses four GPIO pins less than in 8-bit data transfer mode. For a 4-bit wide interface, data is transferred via the D4 D7 pins only, leaving the D0 D3 pins unused. AN015902-0708 Page 2 of 15

Data in the higher nibble is transferred first, followed by data in the lower nibble. For a 4-bit wide interface, one complete data transfer between the HD44780 controller and the ez80acclaim! MCU requires 4-bit data to be transferred twice. Conversely, when the bus is 8-bits wide, data is transferred using the entire range of D0 D7 pins. Display Data RAM The display data RAM (DDRAM) of the Character LCD Module stores the data to be displayed, and is represented by 8-bit ASCII character codes. In the HD44780 controller, the capacity of the DDRAM is 80 x 8 bits, for a total of 80 characters. DDRAM can also be used as a scratch data area, if specified by the manufacturer. The correspondence between DDRAM addresses and positions on the display module for a 16-character x 2-line LCD are displayed in Figure 1. The DDRAM address is available in the Address Counter, which is an 8-bit wide register that stores the address value of the currently accessed memory location. Line 1 Line 2 1 2 3 Character Place on Display 15 16 00 01 02 DDRAM HEX Address 0E 0F 40 41 42 4E 4F Figure 1. Display Position and Related DDRAM Address for a 16x2 LCD Character Generator ROM The LCD Module s HD44780 controller contains a Character Generator ROM (CGROM) that stores 5 x 8 dot or 5 x 10 dot character patterns in an 8-bit addressable space. In all, the CGROM contains 208 5 x 8 dot character patterns and 32 5 x 10 dot character patterns. The various mask versions have different capacities. Busy Flag The Busy Flag is the eighth bit in the Address Counter. It indicates that the HD44780 controller is busy processing internal data or is ready to accept new commands. Note: These character patterns are programmed at the factory and cannot be altered. Character Generator RAM The Character Generator RAM (CGRAM) of the LCD Module s HD44780 controller contains userdefined character patterns. Eight user-defined character patterns in the 5 x 8 format and four userdefined character patterns in the 5 x 10 format (using 11 bytes per character) can be stored in CGRAM. AN015902-0708 Page 3 of 15

Interfacing a Character LCD to the ez80acclaim! MCU start-up code can be modified to accommodate the attached peripherals. Hardware Overview A block-level scheme of the LCD Interface with an ez80acclaim! MCU is displayed in Figure 2. The interface utilizes the HD44780 controller s 4-bit mode; therefore only seven GPIO pins are required for connecting to the LCD s signal and data pins. Write Data User Application Layer LCD Device Driver API layer Physical Hardware (ez80acclaim! Interface to LCD Module) Read Data Figure 3. Software Layer Arrangement Character LCD ez80acclaim! GPIO 1 GPIO 2 GPIO 3 GPIO 4-7 E RS RW D 4 - D 7 4-bit bi-directional Data Bus Figure 2. An LCD Interface with the ez80acclaim! MCU Software Implementation As displayed in Figure 3, the LCD device driver is the lowest software layer; the user application is built above that layer. The device driver layer interacts directly with the ez80acclaim! MCU hardware registers and port pins. The API services are utilized by the user application to read and write data to and from the Character LCD Module. The startup.asm start-up module is written with suitable allocation for the ez80acclaim! Module s memory maps. This code provides appropriate boot-up of the ez80acclaim! Module as per the RAM and Flash peripherals available on the ez80 Development Platform. For a standalone design using an ez80acclaim! MCU, this Using LCD Device Driver APIs The software developed for this application implements driver API code for a 16x2 LCD Module with appropriate initialization of the LCD controller. The service APIs featured in this Application Note (refer to the LCD_API_port.c file in AN0159-SC01) is built for a generic HD44780- based LCD module. However, the LCD_init() routine contains instructions to specifically initialize a 16x2 LCD module. The LCD_init() routine is called before any other API. The sequence of start-up events for the LCD module with the ez80acclaim! MCU is listed below: 1. Initialize the microcontroller s GPIO pins using LCD_gpio_set(). 2. Initialize Timer0 for a 1ms delay in CONTINUOUS mode using init_timer0. 3. Enable interrupts using the EI macro. 4. Provide a power-on delay, minimum 15ms, for LCD warm up using delayms(). 5. Write instructions sequentially to the LCD module using LCD_init. For more information, see flowchart displayed in Appendix A Flowchart on page 8. 6. Turn off the cursor blink function using LCD_blink_off. AN015902-0708 Page 4 of 15

The GPIO pins used for the LCD interface are defined in the LCD_API.h header file (refer to, AN0159-SC01). The timer, Timer0, is used in CONTINUOUS mode with a timeout of 1 ms to provide the required delay. Displayed bits 0x1F 1st Byte Upon initialization, displaying text on the LCD Module is achieved by performing the following instructions. To print the ASCII character Z to the fifth column of the first row of the LCD Module: 1. Use LCD_setposition(0,5) to set the print location as the fifth column of the first row. 2. Using LCD_printc( Z ), call the print API with the Z character as the argument. To print the ASCII character string Zilog: 1. Use LCD_clear to clear the screen. 2. Print the string using LCD_prints( Zilog ). To print a user-defined character: 1. Define the format of special characters in defchar.h header file as 8 bytes per character. 2. The HD44780 controller s CGRAM can hold a maximum of 64 bytes, which limits the number of characters to 8. Figure 4 displays a construction pattern for a sample character. The character is formed using 7 rows containing 5 pixels each. The bottom row represents the underline cursor. 3. Copy the character pattern table to a CGRAM location using LCD_copymap(). For example: 0x03. 4. Print the special character using LCD_printc_user(0x03). Columns Rows 0x11 0x1F 0x04 0x04 0x04 0x04 0x00 Underline Cursor Figure 4. Construction Pattern for a Sample Character To replace the character before the current cursor position with a new character: 1. Delete the character using LCD_backspace. 2. Print a new character in its location using LCD_printc. To insert a character in the middle of a string: 1. Relocate the cursor to the new position using LCD_setposition. 2. Print a new character in the location using LCD_printc. To scroll a long line of text across the screen: 1. Define the long line as: text[] = "A long line of text..."; 2. Call the scroll API using LCD_scroll(text). AN015902-0708 Page 5 of 15

Project Build for Interfacing the LCD Module To implement the software for a project utilizing an ez80acclaim! GPIO port, add the following files to a new ZDS II project: LCD_API_port.c (for API function definitions using port access) LCD_API.h (for API prototype declarations for port access) LCD_test.c (for a main routine that contains a user application) defchar.h (for special user-defined character patterns) ez80f91.h (for ZDS II, available with the ZDS II Compiler definitions) A typical initialization routine flow for the HD44780 controller on a 16x2 LCD Module is displayed in Figure 5 on page 8. Initialization routines are usually specified in the LCD manufacturer s data sheets. In addition to the driver APIs, the software implementation contains support routines that are used to read or write data to and from the LCD controller. These routines are utilized by the APIs only. A listing of these support routines appears in Appendix B Software Device Driver API on page 9. Testing Equipment Used The following equipment are used for testing: Zilog's ez80acclaim Development Kit (ez80f910200zco) Zilog's ez80acclaimplus! Development Kit (ez80f910300zcog) Zilog's ez80acclaim Module (ez80f915050modg) Zilog's ez80acclaimplus! Module (ez80f916050modg) ZDS II IDE for ez80acclaim! v4.11.0 The LCD Module is connected to the ez80acclaim! MCU as displayed in Figure 2 on page 4. The GPIO pins are set up as per the configuration in the LCD_API.h header file. Note: It is important to apply proper voltage to the GND, V CC, and V L (pins 1, 2, and 3, respectively, as in Table 1 on page 2) of the LCD Module. The results are as expected and the program operates in stable fashion, with the LCD displaying the text messages at appropriate locations with timed delays in between. Summary There are different ways to implement a Character LCD interface using microcontrollers available in the market today. This Application Note demonstrates signal and data pin interfacing between ez80acclaim! MCUs and a HD44780-based Character LCD Module, using the accompanying driver software. The driver software is a ready-to-use library of APIs that enables a you to successfully integrate a general character LCD Module with the ez80acclaim! family of microcontrollers. References The documents associated with ZDS II and ez80f91 available on www.zilog.com are provided below: HD44780U (LCD II); www.hitachi.com ez80f91 MCU Product Specification (PS0192) ez80f91 Module Product Specification (PS0193) ez80f91 ASSP Product Specification (PS0270) AN015902-0708 Page 6 of 15

Zilog Developer Studio II ez80acclaim! User Manual (UM0144) ez80 CPU User Manual (UM0077) AN015902-0708 Page 7 of 15

Appendix A Flowchart Figure 5 displays the flowchart for Initializing HD44780 Controller of a 16x2 LCD Module. LCD Power On Wait for 15 milliseconds Write function set command (4-bit, 2 lines, 5x10 dots) Write function set command (8-bit, 1 line) Put Off Display Wait for 5 milliseconds Clear Display Write function set command (8-bit, 1 line) Put On Display Wait for 100 microseconds Write Home command (0x02) Write function set command (8-bit, 1 line) Put LCD Blink On Write function set command (8-bit, 1 line) LCD Init complete Figure 5. Initializing the HD44780 Controller on a 16x2 LCD Module AN015902-0708 Page 8 of 15

Appendix B Software Device Driver API This appendix lists descriptions for each device driver API and the API support functions. Device Driver APIs The tables that follow provide brief descriptions of each of the Device Driver APIs. LCD_init Initializes LCD as per manufacturer s specifications. None LCD_init(); LCD_on Enables printing on the display. None LCD_on(); LCD_off Disables display. None LCD_off(); LCD_printc Prints an ASCII symbol at current cursor position. LCD_printc( A ); AN015902-0708 Page 9 of 15

LCD_prints Prints a string of ASCII symbols at current cursor position. * LCD_prints( A String ); LCD_fillchar Prints ASCII symbol at current cursor position a specified number of times., LCD_fillchar( A,5); LCD_readchar HEX value of ASCII symbol at current cursor position. if (LCD_readchar() == A ) { ; } LCD_clear Clears the display screen. LCD_clear(); LCD_home Brings cursor to first position of first line without changing contents in DDRAM. LCD_prints( A String ); AN015902-0708 Page 10 of 15

LCD_backspace Relocates the cursor to one place before current cursor position and deletes the content there. LCD_backspace(); LCD_insert Prints an ASCII space symbol at current cursor position & shifts the rest of the contents one place towards right. LCD_insert(); LCD_blink Blinks the symbol at current cursor position. LCD_blink(); LCD_blink_off Stops cursor blinking. LCD_blink_off(); LCD_curpos Reads the value of DDRAM address at current cursor position. current_position = LCD_cursor(); AN015902-0708 Page 11 of 15

LCD_setposition Relocates the cursor to specified position on display., LCD_setposition(0,7); // Middle of 1 st line on 16x2 LCD LCD_scroll Prints the specified string, then moves the contents of lower lines to one line above and repeats till end of string. * * long_line = A very long line of text ; LCD_scroll(long_line); LCD_copymap Copies eight data patterns from specified RAM location to CGRAM addresses 0x00 to 0x07. * table[64] = {... 8x8 data table...} ; LCD_copymap(table); LCD_delay Provides fixed delay between commands during Initialization routine. LCD_delay(); LCD_checkbusy Checks whether LCD controller is busy. (1=LCD is busy, 0 = LCD is not busy) while (LCD_checkbusy); // Wait till LCD is busy AN015902-0708 Page 12 of 15

LCD_printc_user Displays a user defined Character from CGRAM location to current cursor position. LCD_printc_user(5); // Display the fifth user defined symbol API Support s The tables that follow list brief descriptions of each of the Device Driver support functions. Routine LCD_command Writes a command word to the LCD controller. LCD_command(0x01); // Clear display command Routine LCD_writedata Writes a data word to the LCD controller. This API should be preceded by an instruction to set DDRAM or CGRAM address to where the data is to be written. LCD_writedata(0x20); // Write data word 0x20 Routine LCD_set_cgram Sets CGRAM address to specified value. LCD_set_cgram(0x00); // Point to 1 st address of CGRAM AN015902-0708 Page 13 of 15

Routine LCD_set_ddram Sets DDRAM address to specified value. LCD_set_ddram(0x00); // Point to 1 st address of DDRAM AN015902-0708 Page 14 of 15

Warning: DO NOT USE IN LIFE SUPPORT LIFE SUPPORT POLICY ZILOG'S PRODUCTS ARE NOT AUTHORIZED FOR USE AS CRITICAL COMPONENTS IN LIFE SUPPORT DEVICES OR SYSTEMS WITHOUT THE EXPRESS PRIOR WRITTEN APPROVAL OF THE PRESIDENT AND GENERAL COUNSEL OF ZILOG CORPORATION. As used herein Life support devices or systems are devices which (a) are intended for surgical implant into the body, or (b) support or sustain life and whose failure to perform when properly used in accordance with instructions for use provided in the labeling can be reasonably expected to result in a significant injury to the user. A critical component is any component in a life support device or system whose failure to perform can be reasonably expected to cause the failure of the life support device or system or to affect its safety or effectiveness. Document Disclaimer 2008 by Zilog, Inc. All rights reserved. Information in this publication concerning the devices, applications, or technology described is intended to suggest possible uses and may be superseded. ZILOG, INC. DOES NOT ASSUME LIABILITY FOR OR PROVIDE A REPRESENTATION OF ACCURACY OF THE INFORMATION, DEVICES, OR TECHNOLOGY DESCRIBED IN THIS DOCUMENT. ZILOG ALSO DOES NOT ASSUME LIABILITY FOR INTELLECTUAL PROPERTY INFRINGEMENT RELATED IN ANY MANNER TO USE OF INFORMATION, DEVICES, OR TECHNOLOGY DESCRIBED HEREIN OR OTHERWISE. The information contained within this document has been verified according to the general principles of electrical and mechanical engineering. ez80, Z80, ez80acclaim, and ez80acclaimplus! are trademarks or registered trademarks of Zilog, Inc. All other product or service names are the property of their respective owners. AN015902-0708 Page 15 of 15