Mensajes recientes

Páginas: 1 [2] 3 4 5 6 7 8 9 10
11
Lenguaje C para microcontroladores PIC / Re:Simbolos personalizados en LCD20X4 CGRAM
« Último mensaje por genti en 30 de Agosto de 2026, 17:32:41 »
programa funcionando con carita

Hola Jiha.

Por fin  :-/  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.

Comentarte también que ahora estoy mirando de poder realizar bootloader al pic18f2550, para poder cargar el código sin tener que sacar el pic del zócalo y programarlo en un programador. En el proyecto ya tengo implementado los pines D+ D- y un condensador en la pata(14) VUSB. He visto el programa PIC C COMPILER (que utilizo para compilar) tiene algo de bootloader. Si tienes alguna idea de como puedo hacerlo, te estaría agradecido.... Cuando tenia el windows7(32) incluso windows xp recuerdo que lo hacia con un programa que ahora no recuerdo el nombre pero lo podría buscar y exponerlo . Pero Cuando instale windows7(64) y posteriormente W10 y w11 .Dejo de funcionar porque las librerías se quedaron en w7(32) y wp. Y ahora por mucho que lo pruebe ni se entera el pic y no puedo ponerlo en modo Bootloader....
12
Lenguaje Basic para microcontroladores PIC / Re:Pasar de Bas a Hex
« Último mensaje por Jiha en 26 de Agosto de 2026, 16:17:08 »
demostracion en proteus usando compilador positron basic

Código: [Seleccionar]
;-------------------------------------------------------------------------------
;**** Added by Fuse Configurator ****
; Use the Fuse Configurator plug-in to change these settings

Device = 12F683

Config FOSC_INTOSCIO, WDTE_OFF, PWRTE_OFF, MCLRE_OFF, CP_OFF, CPD_OFF, BOREN_ON, IESO_OFF, FCMEN_OFF

;**** End of Fuse Configurator Settings ****
;-------------------------------------------------------------------------------
Declare Xtal = 4
Declare Optimiser_Level = 3
Declare Reminders Off
Declare Watchdog = Off
Declare Create_Coff On
'========================================================
' PIC12F683 - ROGER BEEP CB
'
' GP0 = PTT OUT
' GP1 = LED
' GP2 = AUDIO CCP1/PWM
' GP3 = PTT INPUT
' GP4 = SELECT TONE
'
' Oscilador interno 4 MHz
'========================================================

'--------------------------------------------------------
' CONFIGURACION DIGITAL
'--------------------------------------------------------


' GP3 y GP4 entradas
' GP0 GP1 GP2 salidas
TRISIO = %00011000

GPIO = 0


'--------------------------------------------------------
' SIMBOLOS
'--------------------------------------------------------

Symbol PTT_OUT = GPIO.0
Symbol LED     = GPIO.1
Symbol AUDIO   = GPIO.2
Symbol PTT_IN  = GPIO.3
Symbol SW_TONE = GPIO.4


'--------------------------------------------------------
' VARIABLES
'--------------------------------------------------------

Dim B1 As Byte
Dim B0 As Byte


'========================================================
' INICIO
'========================================================

Start:

    B1 = 1
   
'========================================================
' BUCLE PRINCIPAL
'========================================================

Main:

    DelayMS 10

    If PTT_IN = 0 Then GoTo Out

    DelayMS 10

    If SW_TONE = 0 Then GoTo SetTone

    GoTo Main


'========================================================
' ENTRAR EN PROGRAMACION
'========================================================

SetTone:

    High LED

    DelayMS 1500

    Low LED

    GoTo ToneSet1


'========================================================
ToneSet1:

    B1 = 1

    If SW_TONE = 1 Then GoTo ToneSet2

    GoTo ToneSet1


'========================================================
ToneSet2:

    If SW_TONE = 0 Then GoTo ToneSet

    If PTT_IN = 0 Then GoTo Main

    GoTo ToneSet2


'========================================================
' SIGUIENTE TONO
'========================================================

ToneSet:

    High LED

    DelayMS 400

    Inc B1

    Low LED

    If B1 > 11 Then GoTo LedFlash

    GoTo ToneSet2


'========================================================
' ERROR
'========================================================

LedFlash:

    DelayMS 500

    For B0 = 1 To 20

        High LED
        DelayMS 150

        Low LED
        DelayMS 150

    Next B0

    DelayMS 500

    GoTo Start


'========================================================
' PTT ACTIVADO
'========================================================

Out:

    High PTT_OUT
    High LED

    If PTT_IN = 1 Then GoTo Beep

    GoTo Out


'========================================================
' SELECCION DEL TONO
'========================================================

Beep:

    If B1 = 1 Then GoTo Play1
    If B1 = 2 Then GoTo Play2
    If B1 = 3 Then GoTo Play3
    If B1 = 4 Then GoTo Play4
    If B1 = 5 Then GoTo Play5
    If B1 = 6 Then GoTo Play6
    If B1 = 7 Then GoTo Play7
    If B1 = 8 Then GoTo Play8
    If B1 = 9 Then GoTo Play9
    If B1 = 10 Then GoTo Play10
    If B1 = 11 Then GoTo Play11

    GoTo Beep


'========================================================
' TONO 1 - SIN BEEP
'========================================================

Play1:

    GoTo OutTone


'========================================================
' TONO 2
' C#6 aproximadamente 554 Hz
'========================================================

Play2:

    Tone554
    GoTo OutTone


'========================================================
' TONO 3
' D7 aproximadamente 1175 Hz
'========================================================

Play3:

    Tone1175
    GoTo OutTone


'========================================================
' TONO 4
' F7 aproximadamente 1396 Hz
'========================================================

Play4:

    Tone1396
    GoTo OutTone


'========================================================
' TONO 5
' G7 aproximadamente 1568 Hz
'========================================================

Play5:

    Tone1568
    GoTo OutTone


'========================================================
' TONO 6
' A#7 aproximadamente 1865 Hz
'========================================================

Play6:

    Tone1865
    GoTo OutTone


'========================================================
' TONO 7 - DOBLE BEEP
' D7 - G7
'========================================================

Play7:

    Tone1175
    Tone1568

    GoTo OutTone


'========================================================
' TONO 8 - TRIPLE BEEP
' C7 - G7 - C7
'========================================================

Play8:

    Tone1047
    Tone1568
    Tone1047

    GoTo OutTone


'========================================================
' TONO 9
' G5 - G#5 - A#5 - D#5
'========================================================

Play9:

    Tone392
    Tone415
    Tone466
    Tone311

    GoTo OutTone


'========================================================
' TONO 10
'========================================================

Play10:

    Tone392
    Tone262
    Tone262
    Tone523
    Tone262
    Tone330
    Tone262

    GoTo OutTone


'========================================================
' TONO 11
'========================================================

Play11:

    Tone330
    Tone370
    Tone392
    Tone440
    Tone494
    Tone494
    Tone466
    Tone392
    Tone370

    GoTo OutTone


'========================================================
' GENERADORES DE TONO
'
' CCP1 -> GP2
' PWM 50 %
'========================================================


'--------------------------------------------------------
' 262 Hz
'--------------------------------------------------------

Sub Tone262

    PR2 = 238
    CCP1CON = %00101100
    CCPR1L = 119
    T2CON = %00000111

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 311 Hz
'--------------------------------------------------------

Sub Tone311

    PR2 = 200
    CCP1CON = %00101100
    CCPR1L = 100
    T2CON = %00000111

    DelayMS 259

    T2CON = 0
    Low AUDIO
EndSub



'--------------------------------------------------------
' 330 Hz
'--------------------------------------------------------

Sub Tone330

    PR2 = 188
    CCP1CON = %00101100
    CCPR1L = 94
    T2CON = %00000111

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 370 Hz
'--------------------------------------------------------

Sub Tone370

    PR2 = 168
    CCP1CON = %00101100
    CCPR1L = 84
    T2CON = %00000111

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 392 Hz
'--------------------------------------------------------

Sub Tone392

    PR2 = 158
    CCP1CON = %00101100
    CCPR1L = 79
    T2CON = %00000111

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 415 Hz
'--------------------------------------------------------

Sub Tone415

    PR2 = 150
    CCP1CON = %00101100
    CCPR1L = 75
    T2CON = %00000111

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 440 Hz
'--------------------------------------------------------

Sub Tone440

    PR2 = 141
    CCP1CON = %00101100
    CCPR1L = 71
    T2CON = %00000111

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 466 Hz
'--------------------------------------------------------

Sub Tone466

    PR2 = 133
    CCP1CON = %00101100
    CCPR1L = 67
    T2CON = %00000111

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 494 Hz
'--------------------------------------------------------

Sub Tone494

    PR2 = 126
    CCP1CON = %00101100
    CCPR1L = 63
    T2CON = %00000111

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 523 Hz
'--------------------------------------------------------

Sub Tone523

    PR2 = 119
    CCP1CON = %00101100
    CCPR1L = 60
    T2CON = %00000111

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 554 Hz
'--------------------------------------------------------

Sub Tone554

    PR2 = 112
    CCP1CON = %00101100
    CCPR1L = 56
    T2CON = %00000111

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 1047 Hz
'--------------------------------------------------------

Sub Tone1047

    PR2 = 238
    CCP1CON = %00101100
    CCPR1L = 119
    T2CON = %00000101

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 1175 Hz
'--------------------------------------------------------

Sub Tone1175

    PR2 = 212
    CCP1CON = %00101100
    CCPR1L = 106
    T2CON = %00000101

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 1396 Hz
'--------------------------------------------------------

Sub Tone1396

    PR2 = 178
    CCP1CON = %00101100
    CCPR1L = 89
    T2CON = %00000101

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 1568 Hz
'--------------------------------------------------------

Sub Tone1568

    PR2 = 158
    CCP1CON = %00101100
    CCPR1L = 79
    T2CON = %00000101

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'--------------------------------------------------------
' 1865 Hz
'--------------------------------------------------------

Sub Tone1865

    PR2 = 133
    CCP1CON = %00101100
    CCPR1L = 67
    T2CON = %00000101

    DelayMS 259

    T2CON = 0
    Low AUDIO

EndSub


'========================================================
' FIN DEL ROGER BEEP
'========================================================

OutTone:

    DelayMS 10

    T2CON = 0
    CCP1CON = 0

    Low AUDIO
    Low PTT_OUT
    Low LED

    GoTo Main
13
Lenguaje C para microcontroladores PIC / Re:Simbolos personalizados en LCD20X4 CGRAM
« Último mensaje por Eduardo2 en 26 de Agosto de 2026, 09:29:00 »
A la libreria LCD420_v2.C que incluia lcd_set_cgram_char() tenés que declararle que pines vas a usar, cosa que nunca hacias.
La última que usaste (no tiene lcd_set_cgram_char()) ya tiene una configuración por defecto, por eso funcionaba.
Esa correccion es la que te ha hecho Jiha.

Ah! cambiale el nombre a las librerias porque asi no se sabe cual es cual.
14
Lenguaje C para microcontroladores PIC / Re:Simbolos personalizados en LCD20X4 CGRAM
« Último mensaje por Jiha en 26 de Agosto de 2026, 09:10:36 »
programa funcionando con carita

15
Lenguaje C para microcontroladores PIC / Re:Simbolos personalizados en LCD20X4 CGRAM
« Último mensaje por genti en 26 de Agosto de 2026, 07:25:23 »
Esta es la conexión del lcd funcionando en proteus con el programa que adjunté anteriormente

Hola Jiha ,

Ya he podido averiguar que pasaba y porque no podía ver nada en lcd20x4 .Como le he comentado a Eduardo2 , estaba utilizando una librería errónea del lcd. he adjuntado fotos y el programa completo para poder compilarlo . Pero sigo sin poder integrar bien los símbolos CGRAM . Podrías  en Proteus simular los símbolos tal y como lo tengo programado ? Ya que no domino proteus y no sabría como hacerlo . Las fotos y el programa están añadidos al compañero Eduardo2. Para no repetir ficheros y fotos. La foto que tiene el circulo seria donde debería salir el símbolo CGRAM correcto. En la captura sin circulo se ve un símbolo con rallas. Gracias .Un saludo.
16
Lenguaje C para microcontroladores PIC / Re:Simbolos personalizados en LCD20X4 CGRAM
« Último mensaje por genti en 26 de Agosto de 2026, 07:13:58 »
...
Y ahora si compila bien  :mrgreen:  Pero ahora no se ve nada en display ...

No veo que hayas definido los pines usados por el display (LCD_ENABLE_PIN, LCD_RS_PIN,....,LCD_DATA7)
Tampoco sé cuales usaste, pero ojo si usaste RA6 porque con esos #FUSES y #use delay(crystal=4000000) no te va a andar.

Hola Eduardo2 ,
He estado realizando pruebas y el motivo de porque no veía nada en el LCD 20x4 era porque estaba utilizando una librería lcd20x4 que no estaba adaptada para la configuración del hardware que tengo montado. Ahora si se puede apreciar bien el menú .Adjunto fichero con el programa completo para poder compilar . Las líneas para poder visionar objetos en CGRAM las he puesto como comentario (//) y ahora compila correctamente pero sigo sin poder obtener el símbolo en CGRAM .Adjunto captura fotos del menú
* 18F2550_LCD-420.zip
(118.83 kB - descargado 18 veces)
   y de la zona redondeada donde debería salir el símbolo . He echo varias pruebas pero no consigo que salga el simbolo (en las fotos se ve el simbolo ,pero son rayas) y no se como puedo hacer que salga el simbolo.
17
Lenguaje C para microcontroladores PIC / Re:Simbolos personalizados en LCD20X4 CGRAM
« Último mensaje por Eduardo2 en 24 de Agosto de 2026, 09:24:18 »
...
Y ahora si compila bien  :mrgreen:  Pero ahora no se ve nada en display ...

No veo que hayas definido los pines usados por el display (LCD_ENABLE_PIN, LCD_RS_PIN,....,LCD_DATA7)
Tampoco sé cuales usaste, pero ojo si usaste RA6 porque con esos #FUSES y #use delay(crystal=4000000) no te va a andar.
18
Lenguaje C para microcontroladores PIC / Re:Simbolos personalizados en LCD20X4 CGRAM
« Último mensaje por Jiha en 20 de Agosto de 2026, 20:00:50 »
Esta es la conexión del lcd funcionando en proteus con el programa que adjunté anteriormente
19
Lenguaje C para microcontroladores PIC / Re:Simbolos personalizados en LCD20X4 CGRAM
« Último mensaje por genti en 20 de Agosto de 2026, 15:20:33 »
demo proteus

Hola Jiha ,  He probado el código ,pero no se ve nada en display ,adjunto captura foto ,me pasa lo mismo que lo que me recomendó (Eduardo2) el post de mas arriba ,parece que ejecuta parte del código ya que si pulso botón de iluminar lcd(temporizado) lo hace correctamente pero aparte de eso no puedo ver nada del menú .Por no repetir captura foto. mírate la que le puesto a EDUARDO2. ya que me pasa lo mismo. No se si al probarlo en Proteus ves algo porque en real no se ve nada. Ya me diréis . Gracias por echarme un cable a ti y a EDUARDO2.
20
Lenguaje C para microcontroladores PIC / Re:Simbolos personalizados en LCD20X4 CGRAM
« Último mensaje por genti en 20 de Agosto de 2026, 15:11:08 »
Olvidate del mensaje anterior.  Habia usado una version anterior del lcd420_v2.c.

El problema es que escribiste un:    #define lcd_set_cgram_char
lcd_set_cgram_char es una función declarada mas adelante, donde te da el error.

Eliminá esa línea por el amor del cielo.

Hola Eduardo2 ,   He eliminado la linea :  #define lcd_set_cgram_char .
Y ahora si compila bien  :mrgreen:  Pero ahora no se ve nada en display ,si que alguna función la hace ósea que parte del código creo que se esta ejecutando ya que la iluminación del lcd la hace y temporizada y luego se apaga . Pero nada mas no puedo tener acceso a nada del menú tocando botones . Adjunto captura foto del lcd ,de como queda al quitar linea y compilar.

Páginas: 1 [2] 3 4 5 6 7 8 9 10