;****************************
;*							*
;* Comandos					*
;*							*
;****************************

; clear display						00000001
LCD_CLEAR_DISPLAY	equ	0x01

; return home						0000001x
LCD_RETURN_HOME		equ	0x02

; entry mode set					000001is
;	i decrement/increment DDRAM address (0/1)
;	s scroll (1)
LCD_ENTRY_MODE_SET	equ 0x04
LCD_NO_SCROLL		equ 0x00
LCD_SCROLL			equ 0x01
LCD_DEC_CURSOR_POS	equ 0x00
LCD_INC_CURSOR_POS	equ 0x02

; display on/off control			00001dcb
;	d display on/off (1/0)
;	c cursor on/off (1/0)
;	b blinking on/off (1/0)
LCD_DISPLAY_CONTROL	equ	0x08
LCD_BLINKING_OFF	equ	0x00
LCD_BLINKING_ON		equ	0x01
LCD_CURSOR_OFF		equ	0x00
LCD_CURSOR_ON		equ	0x02
LCD_DISPLAY_OFF		equ	0x00
LCD_DISPLAY_ON		equ	0x04

; cursor display/shift				0001srxx
;	s move cursor/display shift (0/1)
;	r shift left/shift right (0/1)
LCD_SHIFT			equ 0x10
LCD_SHIFT_LEFT		equ 0x00
LCD_SHIFT_RIGHT		equ 0x04
LCD_MOVE_CURSOR		equ 0x00
LCD_SHIFT_DISPLAY	equ 0x08

; function set 						001dnfxx
;	d 4/8 bit interface (0/1)
;	n 1/2 lines (0/1)
;	f font size 5x8/5x11 (0/1)
LCD_FUNCTION_SET	equ 0x20
LCD_SMALL_FONT		equ	0x00
LCD_BIG_FONT		equ	0x04
LCD_1_LINE			equ	0x00
LCD_2_LINES			equ	0x08
LCD_4BIT_INTERFACE	equ	0x00
LCD_8BIT_INTERFACE	equ	0x10

; set cgram address					01000000
LCD_SET_CGRAM		equ 0x40

; set display data ram address		10000000
LCD_SET_DDRAM		equ 0x80
LCD_ROW_0			equ 0x00
LCD_ROW_1			equ 0x40
LCD_ROW_2			equ 0x14
LCD_ROW_3			equ 0x54
LCD_COL_0			equ 0x00
LCD_COL_1			equ 0x01
LCD_COL_2			equ 0x02
LCD_COL_3			equ 0x03
LCD_COL_4			equ 0x04
LCD_COL_5			equ 0x05
LCD_COL_6			equ 0x06
LCD_COL_7			equ 0x07
LCD_COL_8			equ 0x08
LCD_COL_9			equ 0x09
LCD_COL_10			equ 0x0a
LCD_COL_11			equ 0x0b
LCD_COL_12			equ 0x0c
LCD_COL_13			equ 0x0d
LCD_COL_14			equ 0x0e
LCD_COL_15			equ 0x0f
LCD_COL_16			equ 0x10
LCD_COL_17			equ 0x11
LCD_COL_18			equ 0x12
LCD_COL_19			equ 0x13

;****************************
;*							*
;* Definiciones auxiliares	*
;*							*
;****************************
;Dev_Tcyc			equ	250		; 20Mhz
Dev_Tcyc			equ	1250	; 4 Mhz
Inner_delay			equ	(256*3 + 3)*Dev_Tcyc
LCD_INIT_DELAY		equ	15000000/Inner_delay

LCD_Eb				equ (1<<LCD_E)

LCD_CONTROL_MASK	equ (1<<LCD_E) | (1<<LCD_RW) | (1<<LCD_RS)

LCD_DATA_MASK		equ 0xf0

	if LCD_DATA_MASK == 0x0f
LCD_DATA_SHIFT 	equ 4
	else
LCD_DATA_SHIFT 	equ 0
	endif

;LCD_CONTROL_TRIS	equ	LCD_CONTROL_PORT
LCD_DATA_TRIS		equ	LCD_DATA_PORT

