; **************** Definición de Constantes
;
********************** Correspondientes a registros del PIC
estado
portA
portB
TRISA
TRISB
EQU
EQU
EQU
EQU
EQU
0X03
0x05
0x06
0X05
0X06
;
;
;
;
;
La dirección del registro de estado es la 0x03
Puerto A
Puerto B
La dirección del registro TRISA en banco 1
y de TRISB en banco 1
; ********************** Correspondientes a bits de resgistros del PIC
banco
EQU
0X05
; Bit del registro de estado correspondiente
;
al banco de datos. En ESTADO
; ********************** Correspondecias de los pines con líneas hardware
LCD
LCDModo
LCDRW
LCDE
EQU
EQU
EQU
EQU
0x05
2
0
1
;
;
;
;
La LCD está en el puerto A
Selecciona Registro LCD
Lectura / Escritura LCD
Habilita LCD
; ********************** Comandos de Software para la LCD
LCDLinea1
LCDLinea2
LCDCLR
LCDCasa
LCDInc
LCDDec
LCDOn
LCDOff
CursOn
CursOff
CursBlink
LCDIzda
LCDDecha
LCDFuncion
LCDCGRAM
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
0x80
0x0C
0x01
0x02
0x06
0x04
0x0C
0x08
0x0E
0x0C
0x0F
0x10
0x14
0x38
0x40
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
Dirección comienzo línea1
Dirección comienzo línea2
Borra pantalla, cursor a casa
Cursor a casa, DDRAM sin cambios
Modo incrementa cursor
Modo decrementa cursor
Pantalla On
Pantalla Off
Pantalla On, cursor On
Pantalla On, cursor Off
Pantalla On, Cursor parpadeante
Mueve cursor a la izquierda
Mueve cursor a la derecha
Inicializa registro función
Dirección origen CGRAM
; ************************** RUTINAS *********************
ORG 0x05
; Empezamos aquí por seguridad.
; En la rutina principal del programa habrá que definir ORG 0
; El resto del programa irá a continuación de estas rutinas
LCD_Port
; ************************************************************************
; *** Inicializa los buffers triestado de la Puerta B como salidas ***
; *** para líneas de datos de la LCD. Coloca las líneas de la
***
; *** puerta A como salidas: I/D, E/S, En.
***
; ***********************************************************************
BSF estado,banco
MOVLW 0xF8
ANDWF TRISA
CLRF TRISB
BCF estado,banco
BCF LCD,LCDE
RETURN
LCD_Inic
;
;
;
;
;
;
;
;
;
;
;
;
Pasamos a la página 1
En binario 1111 1000, para poner RA2, RA1 y RA0
como salidas del puerto A
Y todo el puerto B como salidas de datos
Volvemos a la página 0, para poder tocar los puertos
Y deshabilitamos, por si las moscas, la LCDE
******************************************************************************
*** Inicialización de la LCD según el manual de datos de Optrex. ***
*** Configura funciones de LCD para pantalla DMC16207
***
*** Produce reset por software, borra la memoria y
***
*** activa la pantalla.
***
******************************************************************************
75