lcd.h File Reference

#include <inttypes.h>
#include <avr/pgmspace.h>

Functions

#define lcd_puts_P(__s)   lcd_puts_p(PSTR(__s))
 macros for automatically storing string constant in program memory
void lcd_init (uint8_t dispAttr)
 Initialize display and select type of cursor.
void lcd_clrscr (void)
 Clear display and set cursor to home position.
void lcd_home (void)
 Set cursor to home position.
void lcd_gotoxy (uint8_t x, uint8_t y)
 Set cursor to specified position.
void lcd_putc (char c)
 Display character at current cursor position.
void lcd_puts (const char *s)
 Display string without auto linefeed.
void lcd_puts_p (const char *progmem_s)
 Display string from program memory without auto linefeed.
void lcd_command (uint8_t cmd)
 Send LCD controller instruction command.
void lcd_data (uint8_t data)
 Send data byte to LCD controller.

Defines

Definitions for MCU Clock Frequency
Adapt the MCU clock frequency in Hz to your target.

#define XTAL   16000000
Definition for LCD controller type
Use 0 for HD44780 controller, change to 1 for displays with KS0073 controller.

#define LCD_CONTROLLER_KS0073   0
Definitions for Display Size
Change these definitions to adapt setting to your display

#define LCD_LINES   2
#define LCD_DISP_LENGTH   20
#define LCD_LINE_LENGTH   0x40
#define LCD_START_LINE1   0x00
#define LCD_START_LINE2   0x40
#define LCD_START_LINE3   0x14
#define LCD_START_LINE4   0x54
#define LCD_WRAP_LINES   0
#define LCD_IO_MODE   1
Definitions for 4-bit IO mode
Change LCD_PORT if you want to use a different port for the LCD pins.

The four LCD data lines and the three control lines RS, RW, E can be on the same port or on different ports. Change LCD_RS_PORT, LCD_RW_PORT, LCD_E_PORT if you want the control lines on different ports.

Normally the four data lines should be mapped to bit 0..3 on one port, but it is possible to connect these data lines in different order or even on different ports by adapting the LCD_DATAx_PORT and LCD_DATAx_PIN definitions.

#define LCD_PORT   PORTB
#define LCD_DATA0_PORT   LCD_PORT
#define LCD_DATA1_PORT   LCD_PORT
#define LCD_DATA2_PORT   LCD_PORT
#define LCD_DATA3_PORT   LCD_PORT
#define LCD_DATA0_PIN   3
#define LCD_DATA1_PIN   2
#define LCD_DATA2_PIN   1
#define LCD_DATA3_PIN   0
#define LCD_RS_PORT   LCD_PORT
#define LCD_RS_PIN   7
#define LCD_RW_PORT   LCD_PORT
#define LCD_RW_PIN   5
#define LCD_E_PORT   LCD_PORT
#define LCD_E_PIN   6
Definitions for LCD command instructions
The constants define the various LCD controller instructions which can be passed to the function lcd_command(), see HD44780 data sheet for a complete description.

#define LCD_CLR   0
#define LCD_HOME   1
#define LCD_ENTRY_MODE   2
#define LCD_ENTRY_INC   1
#define LCD_ENTRY_SHIFT   0
#define LCD_ON   3
#define LCD_ON_DISPLAY   2
#define LCD_ON_CURSOR   1
#define LCD_ON_BLINK   0
#define LCD_MOVE   4
#define LCD_MOVE_DISP   3
#define LCD_MOVE_RIGHT   2
#define LCD_FUNCTION   5
#define LCD_FUNCTION_8BIT   4
#define LCD_FUNCTION_2LINES   3
#define LCD_FUNCTION_10DOTS   2
#define LCD_CGRAM   6
#define LCD_DDRAM   7
#define LCD_BUSY   7
#define LCD_ENTRY_DEC   0x04
#define LCD_ENTRY_DEC_SHIFT   0x05
#define LCD_ENTRY_INC_   0x06
#define LCD_ENTRY_INC_SHIFT   0x07
#define LCD_DISP_OFF   0x08
#define LCD_DISP_ON   0x0C
#define LCD_DISP_ON_BLINK   0x0D
#define LCD_DISP_ON_CURSOR   0x0E
#define LCD_DISP_ON_CURSOR_BLINK   0x0F
#define LCD_MOVE_CURSOR_LEFT   0x10
#define LCD_MOVE_CURSOR_RIGHT   0x14
#define LCD_MOVE_DISP_LEFT   0x18
#define LCD_MOVE_DISP_RIGHT   0x1C
#define LCD_FUNCTION_4BIT_1LINE   0x20
#define LCD_FUNCTION_4BIT_2LINES   0x28
#define LCD_FUNCTION_8BIT_1LINE   0x30
#define LCD_FUNCTION_8BIT_2LINES   0x38
#define LCD_MODE_DEFAULT   ((1<<LCD_ENTRY_MODE) | (1<<LCD_ENTRY_INC) )

Generated on Sat Jun 9 13:19:03 2007 for Automatisk Guitartuner by  doxygen 1.5.2