Datasheet
© 2007 Microchip Technology Inc. DS41250F-page 143
PIC16F913/914/916/917/946
10.0 LIQUID CRYSTAL DISPLAY
(LCD) DRIVER MODULE
The Liquid Crystal Display (LCD) driver module
generates the timing control to drive a static or
multiplexed LCD panel. In the PIC16F913/916 devices,
the module drives the panels of up to four commons
and up to 16 segments. In the PIC16F914/917 devices,
the module drives the panels of up to four commons
and up to 24 segments. In the PIC16F946 device, the
module drives the panels of up to four commons and up
to 42 segments. The LCD module also provides control
of the LCD pixel data.
The LCD driver module supports:
• Direct driving of LCD panel
• Three LCD clock sources with selectable prescaler
• Up to four commons:
- Static (1 common)
- 1/2 multiplex (2 commons)
- 1/3 multiplex (3 commons)
- 1/4 multiplex (4 commons)
• Segments up to:
- 16 (PIC16F913/916)
- 24 (PIC16F914/917)
- 42 (PIC16F946)
• Static, 1/2 or 1/3 LCD Bias
10.1 LCD Registers
The module contains the following registers:
• LCD Control Register (LCDCON)
• LCD Phase Register (LCDPS)
• Up to 6 LCD Segment Enable Registers (LCDSEn)
• Up to 24 LCD Data Registers (LCDDATA)
TABLE 10-1: LCD SEGMENT AND DATA
REGISTERS
The LCDCON register (Register 10-1) controls the
operation of the LCD driver module. The LCDPS
register (Register 10-2) configures the LCD clock
source prescaler and the type of waveform; Type-A or
Type-B. The LCDSE registers (Register 10-3)
configure the functions of the port pins.
The following LCDSE registers are available:
• LCDSE0 SE<7:0>
• LCDSE1 SE<15:8>
• LCDSE2 SE<23:16>
(1)
• LCDSE3 SE<31:24>
(2)
• LCDSE4 SE<39:32>
(2)
• LCDSE5 SE<41:40>
(2)
Once the module is initialized for the LCD panel, the
individual bits of the LCDDATA<11:0> registers are
cleared/set to represent a clear/dark pixel, respectively:
• LCDDATA0 SEG<7:0>COM0
• LCDDATA1 SEG<15:8>COM0
• LCDDATA2 SEG<23:16>COM0
• LCDDATA3 SEG<7:0>COM1
• LCDDATA4 SEG<15:8>COM1
• LCDDATA5 SEG<23:16>COM1
• LCDDATA6 SEG<7:0>COM2
• LCDDATA7 SEG<15:8>COM2
• LCDDATA8 SEG<23:16>COM2
• LCDDATA9 SEG<7:0>COM3
• LCDDATA10 SEG<15:8>COM3
• LCDDATA11 SEG<23:16>COM3
The following additional registers are available on the
PIC16F946 only:
• LCDDATA12 SEG<31:24>COM0
• LCDDATA13 SEG<39:32>COM0
• LCDDATA14 SEG<41:40>COM0
• LCDDATA15 SEG<31:24>COM1
• LCDDATA16 SEG<39:32>COM1
• LCDDATA17 SEG<41:40>COM1
• LCDDATA18 SEG<31:24>COM2
• LCDDATA19 SEG<39:32>COM2
• LCDDATA20 SEG<41:40>COM2
• LCDDATA21 SEG<31:24>COM3
• LCDDATA22 SEG<39:32>COM3
• LCDDATA23 SEG<41:40>COM3
As an example, LCDDATAx is detailed in
Register 10-4.
Once the module is configured, the LCDEN bit of the
LCDCON register is used to enable or disable the LCD
module. The LCD panel can also operate during Sleep
by clearing the SLPEN
bit of the LCDCON register.
Note: COM3 and SEG15 share the same
physical pin on the PIC16F913/916,
therefore SEG15 is not available when
using 1/4 multiplex displays.
Device
# of LCD Registers
Segment Enable
Data
PIC16F913/916 2 8
PIC16F914/917 3 12
PIC16F946 6 24
Note 1: PIC16F914/917 and PIC16F946 only.
2: PIC16F946 only.
Note: The LCDDATA2, LCDDATA5, LCDDATA8
and LCDDATA11 registers are not
implemented in the PIC16F913/916
devices.