lcd_dog_m_4
control for DOG-M (ST7036 based) LCD's
|
Author
|
Richard Zengerink, Copyright © 2008, all rights reserved
|
|
Adapted-by
|
|
|
Compiler
|
=2.4
|
Description
Simple interface for DOG-M (st7036) alphanumeric LCD screens.
Screens can range from 1x8 (1 lines, 8 chars), 2x16 and 3x16.
Uses 4 bit wide datapath + 2 handshake lines (total 6 PIC pins).
Expects: - 2 pins for handshake: 'lcd_rs' and 'lcd_en'
- 1 port nibble for data: 'lcd_dataport'
.
Directions for use of this library in application programs
(in this sequence):
1. Declare the following constants:
const byte LCD_ROWS = 2 -- 1, 2 or 3 lines
const byte LCD_CHARS = 16 -- 8, 16 chars per line
and variables (aliases):
var byte lcd_dataport is portA_low -- 4 data pins
var bit lcd_en is pin_A4 -- trigger
var bit lcd_rs is pin_A5 -- cmd/data select
2. Include this library.
and somewhere before actually using the lcd:
3. Set the chosen LCD dataport and handshake pins to output:
portA_low_direction = all_output
pin_A4_direction = output
pin_A5_direction = output
4. Call lcd_init() to initialize the lcd controller.
Above is an example for a 2x16 LCD:
Bits 0..3 of portA are used for data, pins 4 and 5 of portA are
used for handshake. Any other available nibble and handshake pins
could be used (provided these are configurable for output).
.
Available functions for application programs:
.
__lcd_write() sends byte from value to
register of the lcd and
shift cursor position 1 right
.
_lcd_write_data() write data to lcd using
__lcd_write() lcd_rs high
.
_lcd_write_data() write command to lcd using
__lcd_write() lcd_rs low
.
lcd_init() initialize the LCD controller
Dependencies
Private
Private
No sample found