Title: Industrial Reference Design Platform Vacuum Fluorescent
1Industrial Reference Design PlatformVacuum
Fluorescent Display (VFD) andLiquid Crystal
Display (LCD)
Release 2.0
2Industrial Reference Design PlatformVacuum
Fluorescent Display (VFD) and Liquid Crystal
Display (LCD)
- IRD board supports both a VFD and a LCD display
- One connection for either a VFD or a LCD display
- Software Auto-Detect
- No hardware or software configuration needed
- Main benefit of a VFD display
- Suitable for harsh environment
- Ruggedized
- Brightness and clarity
- Main benefit of a LCD display
- Low cost
- Low power consumption
3Industrial Reference Design PlatformVFD and LCD
Software Auto-Detect Function
- LCD_CHECK() function is called upon power up or
reset - Writes 0xA5 to address 0x40
- Only the LCD module has data RAM for storing
data - Reads data at address 0x40
- Data is stored into variable LCD_VFD
- If LCD_VFD 0xA5 then a LCD is connected
- Initialize LCD and all display commands are in
LCD mode - If LCD_VFD ! 0xA5 then a VFD is connected
- Initialize VFD and all display commands are in
VFD mode
4Noritake Vacuum Fluorescent Display(VFD)Function
al Overview
- P/N GU140X32F-7000-NXP
- 140x32 Dot Graphics
- 8 Levels of Brightness
- 11 Multi-sized Fonts
- High Brightness Blue Green Display
- 8 bit parallel/serial interface 5V TTL/CMOS
- The module includes the VFD glass, Drivers,
Microcontroller ICs with refresh RAM, Character
generator and Interface Logic - Works as 4x20 character display
- display defaults to 5x7 character set
- Windowing capability
5Lumex Liquid Crystal Display (LCD)Functional
Overview
- P/N LCD-S02004DSR
- 20 x 4 Character Modules
- 5 x 8 Dot Matrix
- HD44780 Compatible
- Contrast Controlled by Input
- 8 bit or 4 bit parallel interface 5V TTL/CMOS
- The module includes the LCD, Drivers,
Microcontroller ICs, data RAM, Character
generator and Interface Logic - Low Power Consumption
6Noritake VFDElectrical Specifications
7Lumex LCDElectrical Specifications
8Noritake VFDOptical and Environmental
Specifications
9Lumex LCDOptical and Environmental Specifications
10Noritake VFDParallel Interface
Can be PBUSY or /RESET (selectable by Jumper)
11Noritake VFDSerial Interface
12Lumex VFDParallel Interface
13Noritake VFDSoftware Commands
14Lumex LCDSoftware Commands
15Noritake VFD and Lumex LCDASCII Character Set
- Standard upper and lower case alphabet and
numeric characters are defined by the American
Standard Code for Information Interchange (ASCII) - Character codes between 20 Hex and 7F Hex
- Maintaining the same code for all equipment
ensures that most text messages will be
interpreted correctly - The symbolic characters are often modified to
suit design requirements
16IRD VFD and LCDConnections
- Support for both VFD and LCD parallel interface
- Connects to J_VFD 14 pin header
- LPC2468 GPIOs are used to interface with the
VFD/LCD Display -
17IRD VFD and LCDJumper Options
J_VDISP Jumper Settings
- Supports VFD and LCD parallel interface
- For the LCD displays, the contrast can be changed
using the VR2 (potentiometer)
J_LCD
18IRD VFD and LCDWriting a byte to the display
Source Code
19IRD VFDuC/OS-II RTOS uC/LCD Driver
IRD VFD and LCD
- Ported uC/LCD from the HD44780 command set to the
Noritake VFD - µC/LCD is thread safe
- Possible to invoke µC/LCD functions from multiple
tasks in a multitasking environment - Transparent to the user
- µC/LCD uses semaphore services for task-exclusive
access to the VFD display
Heartbeat
Keyboard
20IRD VFD and LCDµC/LCD Interface Functions
DispChar() DispClrLine() DispClrScr() DispHorBar()
DispHorBarInit() DispVertBarInit() DispVertBar()
DispInit() DispStr() DispInverse() DispImage() Dis
pCursorSet() DispDataWr()
DispDataWr() DispDefChar()
21IRD VFD and LCDImplementation Example Display
Initialization
void DispInit (CPU_INT08U maxrows, CPU_INT08U
maxcols) if (LCD_VFD 0xA5)
// If equal then LCD is plug-in
DispInitOS() //
Initialize the RTOS services DispMaxRows
maxrows DispMaxCols maxcols
// INITIALIZE THE
DISPLAY MODULE DispSel(DISP_SEL_CMD_REG)
// Select command register.
DispDly_uS(50000)
// Delay more than 15 mS after power up
DispDataWr(DISP_CMD_FNCT) //
Two lines, 1/16 duty cycle, 5x8 dots, Operation
Mode DispDly_uS(2000)
DispDataWr(DISP_CMD_ON_OFF) // Disp ON/OFF
Display ON, cursor OFF and no BLINK char
DispDly_uS(2000) //
Delay at least 2 mS
DispDataWr(DISP_CMD_CLS)
// Send command to LCD display to clear the
display DispDly_uS(2000)
// Delay at least 2 mS
DispDataWr(DISP_CMD_MODE) // Entry mode Inc.
display data address when writing
DispDly_uS(2000) //
Delay at least 2 mS
22IRD VFD and LCDImplementation Example Display
Initialization (Cont.)
else //VFD is plugged-in. Sent VFD
initialization command DispInitOS()
// Initialize the RTOS services
DispMaxRows maxrows DispMaxCols
maxcols
//INITIALIZE THE DISPLAY MODULE //Init the
Display DispLock() DispDataWr(0x1B)
DispDataWr(0x40) DispUnlock()
23IRD VFD and LCDImplementation Examples
DispStr(1,2,GPS") /Displays the string GPS
at second row, column 2/
DispVertBarInit() /Initialize the Vertical Bar
functionality/ DispVertBar(1,0,5) /Creates a
vertical bar at row 2, col 0, of value 5 /
DispHorBarInit() /Initialize the Horizontal
Bar functionality/ DispHorBar(2,0,10) /Creates
a horizontal at row 3, col 0, of 10 columns/
24IRD VFD and LCDMore Implementation Examples
DispClrLine(1) /Clears the second row/
DispClrScr() /Clears the screen/
DispCursorSet(2,0) /Set the cursor to the third
row, column 0./
25IRD VFDGraphics Mode
- Noritake VFD can display bit images up to 140 x
32 in monochrome - A 140 x 32 image is defined by an array of (140 x
32) / 8 560 bytes - 1st 8-bit value represents left-most pixel in 1st
row - MSB represents top pixel in column
- LSB represents bottom pixel in column
- 2nd 8-bit value represents first pixel column in
next row
26IRD VFDGraphics Mode Example
- What is the resolution of the image
- 15 x 16
- How many bytes define this image
- (15 x 16) / 8 30
- What is the value of the 1st two bytes
- 0111 1111 1111 1110
- 0x7F, 0xFE
- The complete array is
const unsigned char gra11300x7F, 0xFE, 0xBF,
0x01, 0xA1, 0x7D, 0xBF, 0x55, 0x80, 0x7D, 0xD8,
0x01, 0xE8, 0x7D, 0x80, 0x05, 0x80, 0x7D, 0x9E,
0x01, 0xBF, 0x75, 0xB3, 0x55, 0xA1, 0x5D, 0xB3,
0x01, 0x73, 0xFE
27IRD VFDGraphics Mode Example Displaying the
Image
- The command to display the image is
- DispImage(15, 2,(CPU_INT08U)gra110)
- The 1st argument indicates number of columns
- The 2nd argument indicates number of rows
- The 3rd argument is a pointer to the image
- The function displays the image at the current
cursor position
28IRD VFD Exercise 1Brightness Control
- Use the Up arrow and Down arrow to control the
contrast in the VFD display - Hint You could base your Brightness control
function on the DispInverse function - The function DispBrightness (in lcd.c) has been
created please include your code there - The variable Brightness_Global (in bsp_i2c.c)
has been created to hold the Brightness current
value. - CPU_INT08U Brightness_Global8
- The Brightness default value is 8
29IRD VFD Exercise 1Brightness Control
SolutionDispBrightness Function
Step 1 - Complete the DispBrightness function in
the lcd.c file
30IRD VFD Exercise 1Brightness Control Solution
Keypad_Map function
Step 2 Modify the function Keypad_Map(void)
31IRD VFD Exercise 2Graphics Mode
- Display the I2C image in the third row, first
column - Hint 1 The function DispCursorSet is used to
set the cursor position - Hint 2 You could include your code in the
DispRefresh function in app_ird1s.c
32IRD VFD Exercise 2Graphics Mode - Solution
const unsigned char gra11300x7F, 0xFE, 0xBF,
0x01, 0xA1, 0x7D, 0xBF, 0x55, 0x80, 0x7D, 0xD8,
0x01, 0xE8, 0x7D, 0x80, 0x05, 0x80, 0x7D, 0x9E,
0x01, 0xBF, 0x75, 0xB3, 0x55, 0xA1, 0x5D, 0xB3,
0x01, 0x73, 0xFE
33(No Transcript)