11
Lenguaje Basic para microcontroladores PIC / Re:PIC BASIC del PIC Simulator IDE Oshonsoft (Índice en página 1)
« Último mensaje por dogflu66 en 15 de Septiembre de 2026, 11:33:41 »Utilidad para crear máscaras de 16 segmentos para TM1622
Pequeña utilidad para facilitar la creación de las máscaras de caracteres utilizadas en el LCD con TM1622 anterior.
El resultado, tanto en formato hexadecimal como binario, se envía por el puerto serie RS232.
Máscaras de bits de segmento para el módulo LCD TM1622:
Cada segmento está definido mediante una constante.
Cada constante representa el bit asignado a un segmento físico de un
carácter de 16 segmentos.
Const _G1 = 0x8000
Const _F = 0x4000
Const _H = 0x2000
Const _A1 = 0x1000
Const _D1 = 0x0800
Const _E = 0x0400
Const _M = 0x0200
Const _N = 0x0100
Const _K = 0x0080
Const _B = 0x0040
Const _J = 0x0020
Const _A2 = 0x0010
Const _D2 = 0x0008
Const _C = 0x0004
Const _L = 0x0002
Const _G2 = 0x0001
Asignación de segmentos a bits para el panel LCD, con el
correspondiente orden físico de los bits del bit 15 al bit 0:
Bit: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Segmento: G1 F H A1 D1 E M N K B J A2 D2 C L G2
En formato compacto:
G1-F-H-A1-D1-E-M-N-K-B-J-A2-D2-C-L-G2
A1 A2
******* *******
* * * * *
* * J * *
F * H * K * B
* * * * *
* * * * *
**G1*** ***G2**
* * * * *
* * * * *
E * N * L * C
* * M * *
* * * * *
******* ******* * DP
D1 D2
De esta forma, como en el ejemplo anterior, para crear un carácter solamente
hay que combinar los segmentos deseados mediante Or o |.
Por ejemplo, para representar el carácter "8":
mask = _A1 | _A2 | _B | _C | _D2 | _D1 | _E | _F | _G1 | _G2
En la siguiente imagen se puede ver el resultado obtenido para el carácter "8".
Archivos:
TM1622_SegsMask.bas: programa.
CLib.bas: librería compatibilidad C.
Pequeña utilidad para facilitar la creación de las máscaras de caracteres utilizadas en el LCD con TM1622 anterior.
El resultado, tanto en formato hexadecimal como binario, se envía por el puerto serie RS232.
Máscaras de bits de segmento para el módulo LCD TM1622:
Cada segmento está definido mediante una constante.
Cada constante representa el bit asignado a un segmento físico de un
carácter de 16 segmentos.
Const _G1 = 0x8000
Const _F = 0x4000
Const _H = 0x2000
Const _A1 = 0x1000
Const _D1 = 0x0800
Const _E = 0x0400
Const _M = 0x0200
Const _N = 0x0100
Const _K = 0x0080
Const _B = 0x0040
Const _J = 0x0020
Const _A2 = 0x0010
Const _D2 = 0x0008
Const _C = 0x0004
Const _L = 0x0002
Const _G2 = 0x0001
Asignación de segmentos a bits para el panel LCD, con el
correspondiente orden físico de los bits del bit 15 al bit 0:
Bit: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Segmento: G1 F H A1 D1 E M N K B J A2 D2 C L G2
En formato compacto:
G1-F-H-A1-D1-E-M-N-K-B-J-A2-D2-C-L-G2
A1 A2
******* *******
* * * * *
* * J * *
F * H * K * B
* * * * *
* * * * *
**G1*** ***G2**
* * * * *
* * * * *
E * N * L * C
* * M * *
* * * * *
******* ******* * DP
D1 D2
De esta forma, como en el ejemplo anterior, para crear un carácter solamente
hay que combinar los segmentos deseados mediante Or o |.
Por ejemplo, para representar el carácter "8":
mask = _A1 | _A2 | _B | _C | _D2 | _D1 | _E | _F | _G1 | _G2
En la siguiente imagen se puede ver el resultado obtenido para el carácter "8".
Archivos:
TM1622_SegsMask.bas: programa.
CLib.bas: librería compatibilidad C.

Mensajes recientes
ahora si se que se puede ver el objeto creado , en este caso una cara sonriendo . Por lo que veo y que has podido corregir era que no tenia declarado los pines del LCD20X4 . La cuestión era que al utilizar una librería del lcd20x4 adaptada al proyecto que tengo en esa librería ya tenia los pines declarados y no en el programa principal . Pues estaba trabajando de esta manera desde el principio del proyecto. Y ahora al corregirme tu esta declaración de variables ahora se ve perfecto aun utilizando la librería distinta del LCD20X4 ,que venia utilizando hasta ahora yo. Desde mi desconocimiento y siendo novato en el tema de la programación , ahora ya lo tendré en cuenta . Darte las gracias ... He estado mirándome la librería del lcd 20x4 y he visto la parte de CGRAM ... Bueno añado foto de como se ve la cara en el proyecto y añado captura de la declaración de las variables (pines) que utilizo en la configuración lcd del proyecto. Un saludo.