pic Jul. 2016 | Page 77

; **************** 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