vista frontal |
vista trasera |
;Es un estandar que tengan 14 pines, aunque algunos tienen dos mas para el control de la luz (back litgh) los pines 15 y 16
NOMBRE DE LOS PINES
; Vss VDD contraste R/S R/W enable DO D1 D2 D3 D4
; 1 2 3 4 5 6 7 8 9 10 11
12 13 14
D5 D6 D7
DESCRIPCION DE LOS PINES
; Vss GND
; VDD +5v
;CONTRASTE Aumenta o disminuye el contraste del modulo, se puede conectar un potenciometro de 10K, los extremos a +5v y GND y el centro al este PIN
;R/S Se indica si es un dato o una orden lo que se le quiere enviar al modulo
0 = instruccion, 1 = dato
;R/W Se indica la operacion es de escritura o de lectura.
0 = escritura, 1 = lectura
normalmente lo mantenemos con un cero '0'
;ENABLE Habilita el modulo para cualquier operacion.
;DO....D7 Se escribe el dato o el comando que se quiere dar al modulo.
UTILIZACION
Entre las ordenes y los datos que se le envian al modulo es necesario agregar
retardos, segun los fabricantes son del orden de los microsegundos, yo voy usar
retardos de 1ms para todo el programa.
INICIALIZACION
Para el funcionamiento es necesario primero inicializar el modulo.
Se deben seguir los siguientes pasos:
1 RS = 0
2 E = 0
3 cargar el comando para configurar el modo de funcionamiento en 0..D7
comunicacion a 8 bits
usar las dos lineas del modulo
tamano del caracter 7x5
4 E = 1
5 espera un tiempo ( 1ms)
6 E = 0
7 cargo comando
enciendo el LCD
enciendo el cursor
cursor intermitente
8 E = 1
9 espera un tiempo ( 1ms)
10 E = 0
revisar el manual para mas comandos
y todo listo
este es el pedazo de codigo que hace lo indicado
BCF PORTA,0 ;RS = 0
BCF PORTA,1 ;E = 0
MOVLW B'00111000' ;8 BITS 2 LINEAS 7X5
MOVWF PORTB
BCF PORTA,0 ;RS=0
BSF PORTA,1 ;E=1 HABILITO ESCRITURA
CALL RET_1MS
BCF PORTA,1 ;E = 0
CALL RET_1MS
MOVLW B'00001111' ;ON LCD, ON CURSOR, ON INTER
MOVWF PORTB
BCF PORTA,0 ;RS=0
BSF PORTA,1 ;E=1 HABILITO ESCRITURA
CALL RET_1MS
BCF PORTA,1 ;E = 0
CALL RET_1MS
ESCRIBIR UN DATO
1 Cargo el dato en D0 a D7
2 RS = 1
3 E = 1
4 espero un momento
5 E = 0
ejemplo visualizando la letra E
MOVLW A'E'
MOVWF PORTB
BSF PORTA,0
BSF PORTA,1
CALL RET_10MS
BCF PORTA,1
CALL RET_10MS
circuito de prueba click para ver grande |
CODIGO DE PRUEBA COMPLETO
LIST P=16F88
INCLUDE P16F88.INC
ERRORLEVEL -302
CBLOCK 0X20
PDel0 , PDel1
ENDC
ORG 00
GOTO CONFIGURACION
;Retardo geneerado con el PCIDEL, agradezco a su autor
;
RET_10MS movlw .8 ; 1 set number of repetitions (B)
movwf PDel0 ; 1 |
PLoop1 movlw .249 ; 1 set number of repetitions (A)
movwf PDel1 ; 1 |
PLoop2 clrwdt ; 1 clear watchdog
clrwdt ; 1 cycle delay
decfsz PDel1, 1 ; 1 + (1) is the time over? (A)
goto PLoop2 ; 2 no, loop
decfsz PDel0, 1 ; 1 + (1) is the time over? (B)
goto PLoop1 ; 2 no, loop
PDelL1 goto PDelL2 ; 2 cycles delay
PDelL2 clrwdt ; 1 cycle delay
return ; 2+2 Done
RET_1MS movlw .248 ; 1 set number of repetitions
movwf PDel0 ; 1 |
PLoop01 clrwdt ; 1 clear watchdog
decfsz PDel0, 1 ; 1 + (1) is the time over?
goto PLoop01 ; 2 no, loop
PDelL11 goto PDelL21 ; 2 cycles delay
PDelL21 clrwdt ; 1 cycle delay
return ; 2+2 Done
CONFIGURACION NOP
BANKSEL ADCON1
CLRF ANSEL
CLRF TRISA
CLRF TRISB
BANKSEL ADCON0
CLRF PORTA
CLRF PORTB
CALL RET_1MS
BCF PORTA,0 ;RS = 0
BCF PORTA,1 ;E = 0
MOVLW B'00111000' ;8 BITS 2 LINEAS 7X5
MOVWF PORTB
BCF PORTA,0 ;RS=0
BSF PORTA,1 ;E=1 HABILITO ESCRITURA
CALL RET_1MS
BCF PORTA,1 ;E = 0
CALL RET_1MS
MOVLW B'00001111' ;ON LCD, ON CURSOR, ON INTER
MOVWF PORTB
BCF PORTA,0 ;RS=0
BSF PORTA,1 ;E=1 HABILITO ESCRITURA
CALL RET_1MS
BCF PORTA,1 ;E = 0
CALL RET_1MS
MOVLW A'E' ; Cargo el ASCII de la E
MOVWF PORTB ;Envio la E al puerto
BSF PORTA,0
BSF PORTA,1
CALL RET_10MS
BCF PORTA,1
CALL RET_10MS
INICIO NOP
GOTO INICIO
END
Copyright 2010 EDWIN ESPINOSA
Este DOCUMENTO es un DOCUMENTO LIBRE, usted puede redistribuirlo y/o modificarlo bajo los terminos de la GNU FDL tal y como es publicada por la fundacion de software libre; bajo la version 1.3 de la licencia, o una version superior.
Leer la licencia GNU gpl para mas detalles.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".