Foros | Webinarios | Blogs
 

Como conectar un LCD HK333 94V0 a pic 16f 84a

Seguir
PINES DEL LCD HK333 94V0 PINES Pic 16f84a


El LCD es de un antiguo fax, los pines se cuentan de frente de izquierda aderecha

1 (-) 5V
2 (+) 5V
3 potenciómetro variable que puede oscilar entre 10 K y 20 K indiferentemente.
4 17 (RA0)
5 1 (RA2)
6 18(RA1)
7 6 (RB0)
8 7
9 8
10 9
11 10
12 11
13 12
14 13


*Este es el código en basic compiler ( .bas) de PIC Simulator IDE – The hive
AllDigital
Define LCD_BITS = 8
Define LCD_DREG = PORTB
Define LCD_DBIT = 0
Define LCD_RSREG = PORTA
Define LCD_RSBIT = 0
Define LCD_EREG = PORTA
Define LCD_EBIT = 1
Define LCD_RWREG = PORTA
Define LCD_RWBIT = 2

Lcdinit LcdCurBlink
loop:
Lcdout "HOLA PROFEJOEL"
WaitMs 1000
Lcdcmdout LcdClear
WaitMs 1000
Goto loop


*Contador

AllDigital
Define LCD_BITS = 8
Define LCD_DREG = PORTB
Define LCD_DBIT = 0
Define LCD_RSREG = PORTA
Define LCD_RSBIT = 0
Define LCD_EREG = PORTA
Define LCD_EBIT = 1
Define LCD_RWREG = PORTA
Define LCD_RWBIT = 2


Dim x As Word
x = 100
Lcdinit 3
WaitMs 1000
loop:
Lcdout "Autodestrucción en:"
Lcdcmdout LcdLine2Home
Lcdout #x
x = x - 1
WaitMs 250
Lcdcmdout LcdClear
Goto loopContar inverso


*Usando las dos líneas del LCD


AllDigital
Define LCD_BITS = 8
Define LCD_DREG = PORTB
Define LCD_DBIT = 0
Define LCD_RSREG = PORTA
Define LCD_RSBIT = 0
Define LCD_EREG = PORTA
Define LCD_EBIT = 1
Define LCD_RWREG = PORTA
Define LCD_RWBIT = 2

Lcdinit LcdCurBlink
loop:
Lcdout "Feliz Dia"
Lcdcmdout LcdLine2Home
Lcdout "internacional"

WaitMs 3000
Lcdcmdout LcdClear
Lcdout "de la mujer, mi"
Lcdcmdout LcdLine2Home
Lcdout "Gina preciosa"

WaitMs 3000
Lcdcmdout LcdClear
Lcdout "te super ama"
Lcdcmdout LcdLine2Home
Lcdout "tu joel"

WaitMs 3000
Lcdcmdout LcdClear
Goto loop


3 Soluciones propuestas

Mira, vamos a ver cual de estas dos posibilidades te funciona...encontre un par de errores, pero me quede con una duda... Yo soy mas ducho con PicBasic Pro..son similares, asi que vamos a ver si te puedo ayudar...
Para arrancar, si vos configuras el display asi:

Define LCD_BITS = 4
Define LCD_DREG = PORTB ;puerto donde va a ir el bus de datos
Define LCD_DBIT = 0 ;este valor define el bit del puerto donde comienza el bus
Define LCD_RSREG = PORTA ;Pin RS --->PORTA.0
Define LCD_RSBIT = 0
Define LCD_EREG = PORTA ;Pin E ---->PORTA.1
Define LCD_EBIT = 1
Define LCD_RWREG = PORTA ;Pin RW---->PORTA.2
Define LCD_RWBIT = 2

Las conexiones en el display serian asi:

LCD-Funcion---PIC
1 ---- GND----->(-5V)
2 ---- Vcc----->(GND)
3 ---- Contrate (el pote de 10k es ideal).
4 ---- RS------> RA0
5 ---- RW------> RA2
6 ---- E-------> RA1
7 ---- D0------> N/C
8 ---- D1------> N/C
9 ---- D2------> N/C
10 --- D3------> N/C
11 --- D4------> RB0
12 --- D5------> RB1
13 --- D6------> RB2
14 --- D7------> RB3

Ahora, lo que creo que esta mal...es la manera en que vos configuras el display LCD... Yo la manera en que configuraria y las coneciones serian asi en PBP:
DEFINE LCD_BITS 4 ; define comunicación a 4 bits con el LCD
DEFINE LCD_LINES 2 ; define un LCD de 2 líneas
DEFINE LCD_DREG PORTB ; define pines del LCD B4 a B7
DEFINE LCD_DBIT 4 ; empezando desde el Puerto B4 hasta el B7
DEFINE LCD_RSREG PORTB ;define el puerto B para conectar el bit RS
DEFINE LCD_RSBIT 3 ;este es el puerto B3
DEFINE LCD_EREG PORTB ;define el puerto B para conectar el bit Enable
DEFINE LCD_EBIT 2 ;este es el puerto B2

LCD Funcion PIC
1 GND----->(GND)
2 Vcc----->(+5V)
3 Contrate (el pote de 10k es ideal).
4 RS------> RB3
5 RW------> (GND)
6 E-------> RB2
7 D0------> N/C
8 D1------> N/C
9 D2------> N/C
10 D3------> N/C
11 D4------> RB4
12 D5------> RB5
13 D6------> RB6
14 D7------> RB7

O sea... RW, yo lo mando a GND ya que no requiero leer nada del display... solo escribir e imprimir en este... Ahora, si queres cambiar RB3(RS) y RB2(E) en este ultimo ejemplo que cito, tenes que cambiar el valor acá:

DEFINE LCD_BITS 4 ; define comunicación a 4 bits con el LCD
DEFINE LCD_LINES 2 ; define un LCD de 2 líneas
DEFINE LCD_DREG PORTB ; define pines del LCD B4 a B7
DEFINE LCD_DBIT 4 ; empezando desde el Puerto B4 hasta el B7
DEFINE LCD_RSREG PORTA ;define el puerto A para conectar el bit RS
DEFINE LCD_RSBIT 3 ;este es el puerto A3
DEFINE LCD_EREG PORTA ;define el puerto A para conectar el bit Enable
DEFINE LCD_EBIT 2 ;este es el puerto A2

quedandote las conexiones asi:
LCD Funcion PIC
1 GND----->(GND)
2 Vcc----->(+5V)
3 Contrate (el pote de 10k es ideal).
4 RS------> RA3
5 RW------> (GND)
6 E-------> RA2
7 D0------> N/C
8 D1------> N/C
9 D2------> N/C
10 D3------> N/C
11 D4------> RB4
12 D5------> RB5
13 D6------> RB6
14 D7------> RB7

Con mi conexion (la que cito), puedo hasta graficar en la CGRAM del display...mirá, acá te dejo un ejemplo del curso con la placa entrenadora que yo vendo por mercado libre:



Como veras, me tome mi tiempo para contestarte lo mas completo posible...trata de dar señales de vida y comentar como te fue...saludos

SOLUCIÓN ACEPTADA
rolleyes aaaaaaaaaaaaaaaaaaaaaaaaa Shock perdonnnnnnnnnnnnnnnnnn
no lei el titulooooo Tenes razon tongue smile ... no estas con un HD44780 o sus pares similares...estas trabajando con un LCD HK333 94V0...ahora me cierra...perdonnnnnn hace de cuenta que no dije nada teeth smile teeth smile
Que bolaaaaa, jajaja, que ganas de perder el tiempoque tengo juajua... teeth smile teeth smile