fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

No consigo hacer funcionar un LCD 2x16

3 Respuestas
1 Usuarios
0 Reactions
1,248 Visitas
isotopo
Respuestas: 113
Topic starter
(@isotopo)
Estimable Member
Registrado: hace 18 años

(Aprovecho este mensaje que tengo aquí duplicado y que no vale, para poner uno nuevo)

Estoy intentando controlar un LCD con un BasicX-24. Pero por más que lo intento, no consigo nada.

Las conexiones creo que están bien, en el pin 3 he puesto una resistencia de 470 Ohmios y la he unido a los 5V del pin 2, que en teoría debería dejar un contraste adecuado. La retroiluminación no la he conectado porque no es necesaria, pero la probé y funciona, se ilumina. El resto también está conectado correctamente, tanto el bus de 8 pines, como las conexiones de RS, R/W y E.

Bien, pues enciendo y no hace nada, vale. Pero a partir de ahí por más que pruebo a ejecutar un programa de test, no consigo que salga nada, ni caracteres, ni el cursor, ni nada. Imagino que alguien que haya usado estos sabrá porqué es, a ver si me podéis ayudar porque estoy desesperado, miro y remiro el manual, miro tutoriales, guías, pero todos son para otros pics, aunque vienen a decir lo mismo. Para más detalle decir que el tipo es LCD ESTANDAR HD44780

Esto es lo que tengo de programa actualmente después de mil cambios. Intento enviar el código de encendido, también algún carácter. he cambiando el tiempo de espera, el orden de activación, y muchas combinaciones casi ya al azar, pero nada, por más que lo intento, nunca pasa nada ni sale nada. Y ya no sé si es que está estropeado o me falta algún detalle importante o que lo estoy haciendo mal todo el tema del envío de datos.


Option Explicit

Public Sub Main()

Const PinBus1 As Byte = 5
Const PinBus2 As Byte = 6
Const PinBus3 As Byte = 7
Const PinBus4 As Byte = 8
Const PinBus5 As Byte = 9
Const PinBus6 As Byte = 10
Const PinBus7 As Byte = 11
Const PinBus8 As Byte = 12

Const PinE As Byte = 14
Const PinRW As Byte = 15
Const PinRS As Byte = 16

Delay(0.5)

Call PutPin(PinE, bxOutputLow)
Call PutPin(PinRS, bxOutputLow)
Call PutPin(PinRW, bxOutputLow)

Call PutPin(PinBus1, bxOutputHigh)
Call PutPin(PinBus2, bxOutputHigh)
Call PutPin(PinBus3, bxOutputHigh)
Call PutPin(PinBus4, bxOutputHigh)

Call PutPin(PinBus5, bxOutputLow)
Call PutPin(PinBus6, bxOutputLow)
Call PutPin(PinBus7, bxOutputLow)
Call PutPin(PinBus8, bxOutputLow)

Delay(0.01)
Call PutPin(PinE, bxOutputHigh)
Delay(0.1)
Call PutPin(PinE, bxOutputLow)

Delay(0.5)

Call PutPin(PinE, bxOutputLow)
Call PutPin(PinRS, bxOutputHigh)
Call PutPin(PinRW, bxOutputLow)

Call PutPin(PinBus1, bxOutputLow)
Call PutPin(PinBus2, bxOutputLow)
Call PutPin(PinBus3, bxOutputLow)
Call PutPin(PinBus4, bxOutputLow)

Call PutPin(PinBus5, bxOutputLow)
Call PutPin(PinBus6, bxOutputHigh)
Call PutPin(PinBus7, bxOutputHigh)
Call PutPin(PinBus8, bxOutputLow)

Delay(0.01)
Call PutPin(PinE, bxOutputHigh)

Delay(0.1)
Call PutPin(PinE, bxOutputLow)

do
loop

End Sub

(esto es del manual)
FUNCIONAMIENTO:

El control del LCD se realiza mediante el envío de diversos códigos desde el
microcontrolador. En la tabla mostrada a continuación, se presentan todos los códigos y
acciones posibles a realizar. De esta manera, si se quiere borrar el display, la forma de
ejecutarlo es la siguiente:

- Poner E a 0, para desactivar el LCD mientras se coloca el código
- Poner RS a 0
- Poner R/W a 0
- Poner DB7-DB0 a 0
- Una vez colocado el código correspondiente, poner E a 1 para activar el
LCD y así ejecutará inmediatamente el borrado de la pantalla.

Responder
2 respuestas
isotopo
Respuestas: 113
Topic starter
(@isotopo)
Estimable Member
Registrado: hace 18 años

......................

Responder
isotopo
Respuestas: 113
Topic starter
(@isotopo)
Estimable Member
Registrado: hace 18 años

Si alguien me dice qué hay que hacer para ver algo en el LCD también me serviría, aunque sea el cursor. Con salir del atasco en el que estoy me conformo.

Parece no basta con darle corriente. ¿qué primera instrucción debería envíar?.

Responder
Compartir: