Вы находитесь на странице: 1из 13

Experimente para convertir el módulo de cristal líquido estándar SC1602B- D en una conexión I2C con PIC

↑ SC1602D Conexión en paralelo LCD

Intentando hacer un LCD de 8 bits conectado en paralelo en una conexión I2C

Esta es una placa de conversión de interfaz diseñada para kits PIC.


Conecte la interfaz paralela SC1602B / D a I2C.

Hay una pantalla LCD de 16 dígitos y 2 líneas con conexión I2C en Akizuki, etc. Básicamente, es una especificación de 3.3V,
PIC funciona a 3.3V, por lo que no hay un gran problema, pero
5V y 3 El uso de dos fuentes de alimentación de 3 V
es necesario para la operación de 5 V que debe evitarse si es posible. La placa de conversión es necesaria y problemática, la
pantalla LCD es un poco costosa
y hay muchos SC1602D comprados a bajo costo en el inventario oficial. Hay una razón
para usarlo con el módulo de CPU de 14 pines del kit PIC
.
Esta vez usé SC1602D, pero funciona con SC1602B.
Sin embargo, es necesario prestar atención a la diferencia en los pines de la fuente de alimentación.

Referencias
PIC16F Manual de utilización para el trabajo electrónico Tetsuya
Gokan Revisor técnico AE-AQM1602A Documento Akizuki Denshi

SC1602D Ánodo
visto desde la parte posterior de la disposición de pines

⑮ ⑯ Cathode
DB6 ⑬ DB DB7
DB4 ⑪ DB DB5
DB2 ⑨ DB DB3
DB0 ⑦ DB DB1
R/W⑤⑥E
VO ③ ④ RS
VSS ① ② VDD ↑ La imagen de comparación LCD es SC1602D, A continuación se muestra SC1602B

Descripción general del hardware del módulo LCD SC1602D

Asignación de
pines de interfaz Núm. De pin Símbolo Nivel Descripción
01 VSS 0V Conectado a tierra (Nota 1)
02 VDD 5V Fuente de alimentación + (Nota 1)
03 Ajuste de contraste de voz
04 RS H / L Selección de registro
H = Datos Registro
L = Registro de control
05 R / W H / L Selección R / W (para módulo)
H = Lectura
L = Escritura
06 E H / L Activación de señal (0.22us / plus) El
lado del módulo ordena L → H → L Leer y ejecutar
07 DB0 H / L datos bit 0
08 DB1 H / L datos bit 1
09 DB2 H / L datos bit 2
10 DB3 H / L bit de datos 3
11 DB4 H / L bit de datos 4
12 DB5 H / L bit de datos 5
13 DB6 H / L bit de datos 6
14 DB7 H / L bit de datos 7 Para el
modo de 4 bits, se utilizan DB4 a DB7 a
Además, DB0 ~ DB3 es ajeno
15 una fuente de luz de fondo LED 4,2 V + (Nota (140 mA estándar)
de potencia 2) 16 K 0V retroiluminación LED - (Nota 2)

número Nota 1) pin de alimentación


SC1602B 1
Nota: Los pines son VDD, 2 pines son VSS y nota 2) SC1602B no tiene estos 15 y 16 pines, por lo que este pin no se
usa esta vez.
La alimentación se suministra desde el VDD al LED de la placa. Consulte el siguiente método.

↑ parte posterior de la SC1602B


izquierda borde de la imagen y el procesamiento de retroiluminación de LED con ↑ SC1602D de la parte posterior realización
de la J3 como la imagen como R9, soldar el 4.7Ω Como resultado, el pasador 15 y 16 no se puede utilizar ↑ conector SC1602D
parte de conexión Los pines 15 y 16 no están conectados. Conecte SC1602B tal como está.
Procesamiento de la fuente de alimentación de luz de fondo SC1602B / D

Este proceso se puede compartir con la fuente de alimentación en el lado de la pantalla LCD.

En el caso de
SC1602B Hay una parte de cableado del LED de luz de fondo en el lado izquierdo del lado posterior de SC1602B.
Por favor, consulte la imagen de la izquierda.
Aquí, haga que J3 sea conductivo
con soldadura. Suelde alrededor de 10Ω a R9. (Nota 1) En

el caso de SC1602D,
este módulo tiene pines LED, por lo que se puede suministrar energía desde allí, pero
se puede usar de la misma manera que SC1602B mediante el siguiente procesamiento.
Sin embargo, los pines 15 y 16 no se pueden usar. Déjalo desconectado.

Hay una parte de cableado del LED de retroiluminación en el lado izquierdo de la parte posterior del SC1602D.
Aquí, haga que J3 sea conductivo
con soldadura. Suelde alrededor de 10Ω a R9. (Nota 2)
Si es posible, es seguro quitar el R8 adyacente.

Nota 1) En
el manual adjunto de Akizuki, R9 está conectado a 10Ω a 100Ω, y
dos resistencias de 100Ω están conectadas.
Cuando se usa esta resistencia, hay poca corriente y está oscura ...
Nota 2)
Escribí
10Ω, pero esto es un poco oscuro a aproximadamente 70 mA de corriente LED. Las autoridades usan 4.7Ω para R9, y fluye
aproximadamente 100 mA (5V).

Descripción general del software del módulo LCD SC1602


(1) Comando de control LCD
1) Borrar pantalla
RS R / W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0000000001
2) Volver a casa
RS R / W DB7 DB4 DB5 DB5 DB5 DB5 DB2 DB1 DB0
000000001x
3) Modo de entrada Establecer dirección de incremento del cursor, ajuste de cambio de pantalla
RS R / W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
000000000000000000000000000000000000S
I / D: Incremento / disminución de la dirección DDRAM (cursor o parpadeo)
I / D = 1: Derecha, I / D = 0: Izquierda
S: Desplazamiento de la pantalla completa
S = 1: Desplazamiento de la pantalla ON, S = 0: Visualización cambiar OFF
4) Visualizar ON / OFF pantalla de cristal y el cursor de la
ON / OFF RS R / W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 1 DC B
D: Pantalla ON / OFF bit de control
D = 1: Pantalla ON, D = 0: Pantalla OFF
C: Cursor ON / OFF control bit
C = 1: Cursor ON
B: Cursor Blink ON / Bit de control OFF
B = 1:
Parpadeo del cursor ON 5) Curor o Desplazamiento de pantalla
RS R / W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0000000S/CR/Lxx
S / C: pantalla / cursor seleccione bit
S / C = 1: Desplazamiento de pantalla por R / L bit
S / C = 0: Movimiento del cursor por R / L bit
R / L: Derecha / Izquierda
R / L = 1: Movimiento derecho
R / L = 0: Izquierda Movimiento
7) Conjunto de funciones
RS R / W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 1 DL N DH x x
DL: bit de control de longitud de datos de interfaz
DL = 1: modo de bus de 8 bits
DL = 0: modo de bus de 4 bits
N: bit de control del número de línea de visualización
N = 1: modo de visualización de 2 líneas
N = 0: modo de visualización de 1 línea
DH: doble altura bit de control de tipo de fuente
DH = 1: cuando N = 0, el tamaño de fuente es 5 × 16 puntos (N = 1 no es posible)
DH = 0: se utiliza el tamaño normal (5 × 8 puntos)
8) Establecer dirección CGRAM
RS R W DB7 DB6 DB5 DB4 DB3 DB2 /
DB1 DB0 0 0 0 1 AC5 AC4 AC3 AC2
AC1 AC0
9) Establecer dirección DDRAM RS R / W DB7 DB6
DB5 DB4 DB3 DB2 DB1 DB0 0 0 1 seleccionado del grupo que consiste en AC6 AC5 AC4 AC3 AC2 AC1
AC0 10 ) escribir datos
RS R W DB7 DB6 DB5 DB4 DB3 DB2 DB1 /
DB 0. 1 0 D D6 D5 D4 D3 D2 D1 D0
11)
un leer datos RS R / W DB7 DB 6 DB 5 DB4
DB3 DB2 DB1 DB0 1 1 D7 D6 D5 D4
D3 D2 D1 D0
12) una bandera y Dirección Ocupado Leer RS R / W DB7 DB 6 DB 5 DB4 DB3
DB2 DB1 DB0 0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0
BF = 1: Ocupado
BF = 0: Inactivo

(2) Inicialización (modo de 8 bits)

1) Espera de encendido 40 ms o más

2) Conjunto de funciones
RS R / W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0011010xx
modo de bus de 8 bits, el modo de dos líneas, la fuente normal

3) 37US espera o

4) Función
Set RS R / W DB7 DB 6 D DB4 DB3 DB2 5 DB1 DB0
00001110xx

5) 37US esperar o

6) Visualizar ON / OFF la pantalla de cristal líquido y el cursor ON / OFF


RS R / W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
00000001 DC
Pantalla apagada, cursor apagado, cursor parpadeante apagado

7) Peso 37us o más

8) Borrar pantalla
RS R / W DB7 DB6 DB5 DB2 DB3 DB1 DB0
00000000011

) Espere 1.52 ms o más

9) Modo de entrada Establecer dirección de incremento del cursor, ajuste de desplazamiento de pantalla
RS R / W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
000000110
Incremento a la derecha, sin desplazamiento de pantalla

↑ Diagrama del circuito de la placa de conversión ↑ Placa de conversión


Acabo de instalar pines de E / S en la placa A del circuito de placa de conversión de interfaz Akizuki que hice esta vez e interviní
PIC16F1828.
Los pines del lado de entrada son 3 pines de I2C + RDY.
Los pines de salida son paralelos de 8 bits, 3 pines para control y 2 pines para contraste.
Hay otros pines de alimentación.
Comunicación de datos paralelos de 8 bits con el módulo LCD.
El circuito en sí mismo es un simple trabajo de cableado, y no hay una parte interesante ... Aunque
no está en el diagrama del circuito, la placa de circuito tiene un circuito ICSP y sus pines.
La pantalla LCD utilizada fue SC1602D y la resistencia LED se conectó al módulo, por lo que los
pines 15 y 16 de SC1602D no están conectados.
Por el contrario, no hay pin de salida de placa.
SC1602B está bien si cambia el pin de la fuente de alimentación es lo contrario.

PIC16F1828 Mapa de uso del pin de E / S


RA0: sin usar
RA1: sin usar
RA2: SC1602 Pin RS
RA3: pin de puente
RA4: SC1602 Pin R / W
RA5: SC1602 Pin E
RB4: Pin I2C SDA, levantado
RB5: pin RDY, salida digital
RB6: pin I2C SCL, levantado
RB7: salida del controlador LED, la luz se emite cuando se recibe la dirección del esclavo y se apaga cuando se recibe la parada.
RC0-7: SC1602 pin DB0-DB7 utilizado como bus de 8 bits

Programa de interfaz I2C del lado de entrada

Este es el puerto B de E / S, que utiliza el módulo MSSP dentro de PIC.


Esto se configura en modo esclavo I2C.
Es fácil porque el procesamiento de la recepción, incluida la ocurrencia de una interrupción, lo realiza el hardware.
El pin RDY no se usa actualmente. Los
datos transmitidos se procesan en la misma secuencia que "AQM1602".
En otras palabras, los datos de LCD de 1 byte y los comandos de instrucción se
transmiten como datos de 2 bytes llamados palabras de comando.
La palabra de comando consta de un byte de control y un byte de datos.

Procesamiento de recepción I2C


Todo esto se procesa en la rutina de interrupción.
La causa de la interrupción se confirma y se recibe, pero el resultado se refleja en el indicador "MODE".
Además, el LED de RB7 se enciende cuando se recibe la dirección I2C y se apaga cuando se recibe I2C_STOP.
La interrupción de recepción de dirección I3C ,
la interrupción de recepción de datos I2C , la interrupción de
detección I2C_STOP y los
tres tipos de interrupciones anteriores se utilizan y se reflejan en el indicador MODE.

Programa principal
Aquí, normalmente se marca la bandera "MODE".
Confíe en el cambio de bandera y comience a procesar los datos I2C recibidos.
La palabra de comando recibida se separa en comando LCD y datos LCD y se envía a LCD respectivamente.
Como configuración básica, la pantalla LCD se configura inicialmente en modo de 2 líneas y 16 dígitos.
Si esto es aceptable, no es necesario inicializar la pantalla LCD desde la CPU del host.
Sin embargo, la CPU del host debe esperar hasta que se complete la secuencia de inicio de esta placa de conversión.

El procesamiento de la línea de comando de recepción se realiza


una palabra de comando a la vez, y los comandos no se almacenan incluso si son comandos continuos.
Espere después de que se elimine la transmisión del comando a la pantalla LCD.
Por lo tanto, el lado de la CPU del host está diseñado para tener en cuenta las esperas entre los comandos LCD necesarios.
Inicialmente atrapamiento los comandos LCD y los datos recibidos en la memoria intermedia FIFO,
ser una transmisión continua de la libre-peso, por lo que había pensado para ser capaz de hacer frente a
estos ... fue detenido porque es engorroso
de usar el AQM1602 Incluso si se envía como si fuera, parece estar bien ahora.
O, parece ignorar el comando extendido.

Programación rutinaria de la pantalla LCD del lado de salida

(1) Byte de comando y byte de datos


Cada comando y datos a LCD se compone de 1 byte.

1) Bit de control Bit


RS: 1 byte a transmitir
se determina como comando de control LCD cuando RS = 0, y bit R / W de datos : transmisión / recepción cuando RS =
1, pero generalmente es solo “0” porque solo se escribe. Aunque
está conectado a PIC en el diagrama del circuito tal como está, está bien incluso si se deja caer a
GND
E bit: genera un pulso para enganchar la cadena de bits (8 o 4) que actualmente se presenta al
pulso Latch LCD es 220 ns con lógica positiva más si hay una longitud OK

2) el código de transmisión real (extracto) (Nota 2)


a) clara comando de control de pantalla único código de 1 byte de
transmisión de mando de presentación clara: 01H, RS =
0 16 dígitos dos líneas todo 20H ( lo reemplazó en el SP)
código de 2 bytes de b) Control de pantalla de caracteres de comando + datos de visualización
①Set DDRAM dirección de coma De la transmisión: 80H ~ 8FH: RS = 1 ( Nota 3)
de dirección DDRAM comando especifica la (posición de visualización)
después de esta instrucción, el RS = 0, transmitir el código ASCII para mostrar
dirección de segunda línea C0H ~ CFH ( (En modo de 2 líneas)
② la transmisión de datos: XXII, RS = 1, el código ASCII para enviar pantalla
20H ~ código de carácter 7FH Ying, A1H ~ DFH es código de carácter Kana,
otras direcciones diferentes ...

Nota 2) Estos datos el comando de control el ver


después de los dos códigos se aplican esta rutina de inicialización del LCD,
son dos de las últimas informaciones.
Nota 3) 80H es el lado más a la derecha de la primera fila, 8FH es el lado más a la izquierda de la primera fila,
C0H es el lado más a la derecha de la segunda fila y CFH es el lado más a la izquierda de la segunda fila.

3) Escriba 1 byte en modo de 4 bits


①Enable = 0, RS = 0 (selección de registro de control), R / W = 0 (escritura) (
2 ) Establezca los 4 bits superiores de datos en DB4 a DB7
(3) RS = 1 (selección de registro de datos), RS = 0 para comandos ( 4 )
Latch para habilitar la línea Pulso (ancho de pulso 220ns o más) ⑤ Establecer
datos de 4 bits más bajos en DB4-DB7
⑥ Bloquear pulso en la línea de habilitación (ancho de pulso
220ns o más) aEsperar

4 en lugar de Ocupado comprobar 4) Escribir en modo de 8


bits (Nota 4) ①Habilitar = 0 , RS = 0 (selección de registro de control), R / W = 0 (escritura) (
2 ) Establezca el comando en DB4-DB7, naturalmente baja 4 bits No se puede establecer y el valor no está definido
(3) Dado que solo se usa el comando, RS permanece en 0.
( 4) Bloqueo de pulso en la línea de habilitación (ancho de pulso
220ns o más) (

5) Nota de espera 4 en lugar de Ocupado ) Esto se usa solo en

(2) (3) y ( 4) de la rutina de inicialización de LCD (2) Rutina de visualización

1) INIT_LCD : Inicialización de LCD Proceso en el siguiente orden Referencia de fuente (

1) Espera de encendido Espere 15 ms o más, inicialmente en modo de 8 bits (


2) Transmisión de comando: 30H, la longitud de datos especifica el modo de 8 bits (
3) Transmisión de comando: 30H, la longitud de datos es Especificación de modo de 8 bits
④ Transmisión de comando: 20H, el modo de 8 bits sigue siendo especificación de modo de 4 bits
⑤ Transmisión de comando: 28H, modo de 4 bits, pantalla de 2 líneas, 5 × 8 puntos
⑥ Transmisión de comando: 0CH, pantalla LCD encendida, cursor apagado, cursor abrir y cerrar OFF
⑦ transmisión de comando: 01H, pantalla clara
⑧ coma De la transmisión: 02H, INC / DEC dirección correcta, no DDRAM acceso automático INC / DEC
2) CLRLCD: Claro pantalla

3) putw: mostrar el carácter de código ASCII en la pantalla del registro W


dirección de posición de visualización, establezca la variable "DSP_ADR"

4 ) PUTL1: muestra la cadena de caracteres especificada por LABEL en la primera línea (Nota 3)
LABELLa dirección de se almacena en las variables MSAD0 y MSAD1.
Ejemplo de llamada )
MOVLW LOW LABEL (Nota 4)
MOVWF MSAD0
MOVLW HIGH LABEL (Nota 4)
MOVWF MSAD1
CALL PUTL1
----
LABEL DT "ABCDEF"
DW 00H

5) PUTL2: LABEL La cadena de caracteres especificada se muestra en la segunda línea (Nota 3)

Nota 3) Para LABEL , la


cadena de caracteres está limitada a 16 caracteres, y 00H se agrega al final de la cadena de caracteres (código final)

Nota 4) ALTO y BAJO son No es una instrucción PIC sino una pseudoinstrucción de ensamblador

↑ Durante la ejecución de la prueba, la

imagen
debajo de la placa del experimento de transmisión I2C
es una simple conexión I2C entre las placas de la placa de conversión , pero la conexión entre la
placa de conversión y la pantalla LCD es ...

Programa de placa de conversión

PIC16F1828_SC1602_I2C_01.asm
PIC16F1828_SC1602_I2C_01.hex

Cómo usar Ver1.0

Básicamente, es un método de control basado en el método de operación de AQM1602.


Para la transmisión maestra I2C, consulte la otra sección “Intenté usar AQM1602 con PIC”, etc. Consulte
el manual de operación AQM1602 de AQM 1602, etc.
Debido a las diferencias en la pantalla LCD, los comandos dedicados AQM1602 no se pueden ejecutar.
Es necesario tener en cuenta que el control de transmisión es AQM1602 y la pantalla LCD de ejecución es SC1602.
Actualmente, la transmisión desde esta placa de conversión (respuesta al maestro) no es compatible.
Le responderemos en el futuro.

VDD es de 5V, y las líneas SDA y SCL se levantan con 10KΩ en el tablero.
Como la luz de fondo consume más de 100 mA, se requiere una fuente de alimentación de aproximadamente 200 mA.
El contraste se ajusta mediante VR en el tablero y no es compatible con los comandos.
Cuando se inicia la placa, la pantalla LCD se configura inicialmente.
La configuración predeterminada es 16 dígitos, 2 líneas, fuente de tamaño normal.
Además, dado que está en modo de bus de 8 bits, no cambie esta configuración.
El lado maestro debe esperar la transmisión hasta que finalice el tiempo de configuración inicial de esta placa.
No hemos verificado el tiempo de espera con precisión, pero está bien si espera aproximadamente 1 segundo.

Método de transmisión de datos y comandos en el lado de la CPU maestra La


palabra de comando que sigue a la dirección del esclavo se compone de "byte de control + byte de datos". Configuración del
byte de control
bit7 CO
CO = 1: palabra de comando continuo
CO = 0: palabra de comando final
bit6 R / S
R / S = 1: El siguiente byte de datos es la pantalla LCD
R / S = 0: El siguiente byte de datos es el código de instrucción LCD
bit5 = 0
bit4 = 0
bit3 = 0
bit2 = 0
bit1 = 0
bit0 = 0

Ejemplo 1) Comando LCD Enviar "Borrar pantalla"

①I2C_START ②Enviar
dirección I2C "7CH" ③Enviar
byte de control "00H" ④Enviar
byte de datos "01H"
⑤I2C_STOP

Ejemplo 2) Mostrar "CQ" en el lado izquierdo de la línea


LCD1
①I2C_START ②Enviar dirección I2C "7CH"
③ Enviar el byte de control "80H" (CO = 1, RS = 0)
④ Enviar el byte de datos "80H" (Establecer dirección DDRAM)
⑤ Enviar el byte de control "C0H" (CO = 1, RS = 1)
⑥ Byte de datos "43H" Transmisión (código de carácter C)
⑦ Transmisión de byte de control “00H” (CO = 0, RS = 0)
transmission Transmisión de byte de datos “81H” (Establecer dirección DDRAM) Vestir
Transmisión de byte de control “40H” (CO = 0, RS = 1) 送信 Transmisión
de bytes de datos [51H] (código de caracteres Q)
⑪I2C_STOP

Impresiones El

blogramming de la CPU principal no es necesario para la configuración inicial, por lo que tiene una operabilidad moderada.
El uso con el kit PIC es bueno porque ahorra la cantidad de pines utilizados en la placa de la CPU.
También tiene el significado de que puede usarse como unos pocos módulos I2C de 5V.

Sin embargo, cuando se usa un PIC para el control LCD e I2C, el LCD objetivo es SC1602, pero las
autoridades están un poco insatisfechas ... En otras palabras, parece ser satisfactorio para LCD gráficas.
Bueno, esta vez es experimental, por lo que la comprobación del funcionamiento del esclavo I2C está bien.
Solo estaba pensando en la operación esclava cuando planificaba el programa.

El coste de producción es baja circuito también pero sencilla, ya que el cableado es grande, sigue siendo problemático para la
devolución de Kana es
, después de todo, sólo un 16 dígitos LCD de 2 líneas ···
y este barrio es una gráfica LCD y engorroso conciencia se mejora Yo pienso

El programa en sí parece una versión provisional, por lo que lo mejoraré poco a poco.
Los cambios de programa se agregarán a esta página.

Postscript 2017 octubre

es disculparse
<m (__) m> diferencia de SC1602D / B no es sólo libre con el perno de LED,
el número pin de alimentación + - se ... fue inverso
el cuerpo sólo en ella es cosa Ha sido modificado.
Siento que entiendo la razón por la cual SC1602D no se vende