Autor Tema: 16F88 con LCD  (Leído 4637 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado perla

  • PIC16
  • ***
  • Mensajes: 107
16F88 con LCD
« en: 18 de Febrero de 2016, 21:16:14 »
Hola a todos. Tengo el Pic 16F84 conectado a un LCD en paralelo con 4 bis y funciona muy bien. Con el mismo programa del Pic anterior lo cargue en el Pic 16F88 y la pantalla LCD no se reinicia, solo se ven cuadros en el display, en cambio no es problema del Pic ni de la grabación, pues conecte un pin de salida a un led para que parpadease y lo ejecuta muy bien.
Aparte me gustaria preguntar como conectar el LCD en serie. En basic Stamp me sale muy bien pero en basic Pro no se como hacer el programa con el 74HC595 o alguno similar.
El programa que utilizo con el display en paralelo es este:

Define Osc 4

Pause 500
LCDOut $fe, 1
LCDOut $fe, 2
LCDOut

LCDOut  "* Pantalla LCD *"
stop
Desarrollador de vending.

Saludos desde Murcia (España).

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re:16F88 con LCD
« Respuesta #1 en: 20 de Febrero de 2016, 21:17:07 »
Desconozco como se puede realizar en tu lenguaje, pero en los lenguajes que conozco la configuración del Lcd es mucho más compleja.

1) Tipo de microcontrolador, ya sea en el mismo programa o en algún apartado del IDE.
2) Hay que configurar la palabra de configuración del micro o también llamados fuses.
En esta configuración entre otras se específica si se usará el oscilador externo o interno, en el caso del externo el tipo, también si tendremos pin MCLR o se usará como una simple entrada, entre otras opciones.
3) Indicación de la velocidad de trabajo del oscilador.
4) Este micro tiene entradas analógicas, estas entradas si no se indica lo contrario suelen estar seleccionadas por defecto y no trabajan como digitales.
5) Configuración del LCD, puerto, longitud del dato, etc.
Saludos desde Granada, España.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:16F88 con LCD
« Respuesta #2 en: 22 de Febrero de 2016, 12:01:34 »
Lo más problabe es que tienes algún periférico activado en algún pin que usa la LCD.

Deberías compartir tu código y esquemático para determinar que sucede.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado perla

  • PIC16
  • ***
  • Mensajes: 107
Re:16F88 con LCD
« Respuesta #3 en: 23 de Febrero de 2016, 16:18:32 »
Hola a los dos dogflu66 y DominusDRR.
Gracias por estar conectados. Mira lo que dice el manual de basic Pro que yo tengo

Nota Importante: PIC Basic asume por defecto que el conexionado entre un
módulo LCD alfanumérico y un microcontrolador, se ha realizado como se muestra
en el diagrama esquemático de la figura 6.6. En este caso no será necesario definir
estas conexiones en el programa; sin embargo, es conveniente saber que el
funcionamiento de un programa para el manejo de una pantalla LCD, no se verá
afectado si decidimos definir cada una de las conexiones como se muestran a
continuación:
DEFINE LCD_DREG PORTA ' Indica que el Bus de datos estará conectado
' en el Puerto A.
DEFINE LCD_BITS 4 ' El bus de datos de la LCD será de cuatro bits.
DEFINE LCD_DBIT 0 ' Selección del Bit de inicio del puerto en el uC para el
' bus de datos de la LCD
DEFINE LCD_RSREG PORTA ' Indica al uC que el pin “RS” estará en el Puerto A
DEFINE LCD_RSBIT 4 ' “RS” estará conectado en RA4
DEFINE LCD_EREG PORTB ' Indica al uC que el pin “E” estará en el Puerto B
DEFINE LCD_EBIT 3 ' “E” estará conectado en RB3





                                               
Desarrollador de vending.

Saludos desde Murcia (España).

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:16F88 con LCD
« Respuesta #4 en: 23 de Febrero de 2016, 16:46:42 »
Que tal perla, y el PIC

Creo que no estas siguiendo las recomendaciones de doglu66, y me inclino que tu problema son los puntos 2, 4. Ya que estas dos partes no son iguales en el PIC16F84 y el PIC16F88, simplemente para empezar el PIC16F88 tiene oscilador interno y el PIC16F84 no, asi que si no configuras los fuses correctamente el codigo no funcionara. POr otro lado el PIC16F84 no tiene canales analogicos pero el PIC16F88 si los tiene y estan asignados al puerto A, asi que si no los configuras como digitales no funcionara tu LCD.

Elreypic.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:16F88 con LCD
« Respuesta #5 en: 23 de Febrero de 2016, 16:48:16 »
No conosco al PICBasic, pero ¿Cómo configuras los pines de los puertos como I/Os? ¿Se configuran por defecto como entradas o salidas digitales? Posiblemente algunos pines que ocupas son del conversor AD y están configurados como entradas analógicas.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Stban

  • PIC12
  • **
  • Mensajes: 78
Re:16F88 con LCD
« Respuesta #6 en: 23 de Febrero de 2016, 23:04:08 »
Hola saludos,

Estoy de acuerdo con los dos colegas, la mayoría de los pics vienen configurados sus pines como salidas y habilitado el adc. Si estas usando la configuración por default del LCD como lo marca picbasic pro necesitas deshabilitar el adc del pic, esto se logra para este modelo colocando ANSEL = 0 y como también tiene comparadores poner CMCON = 7.
Espero que con esto resuelvas tu problema.

Desconectado perla

  • PIC16
  • ***
  • Mensajes: 107
Re:16F88 con LCD
« Respuesta #7 en: 24 de Febrero de 2016, 17:30:50 »
Hola de nuevo. Quería comentaros que yo estoy acostumbrado a programar en basic Stam y veo que hay bastante diferencias en relación a la configuración del código.

Este es el código que compilo para el 16F84A y 16F628A y en estos dos funciona bien, pero en el 16f88A no.
* aaa.pdf
(34.77 kB - descargado 279 veces)
Desarrollador de vending.

Saludos desde Murcia (España).

Desconectado perla

  • PIC16
  • ***
  • Mensajes: 107
Re:16F88 con LCD
« Respuesta #8 en: 24 de Febrero de 2016, 17:32:07 »
Programa en PIC Basic Pro
Define Osc 4 ' Define el Oscilador para un Cristal
' de 4 Mhz.
Pause 500
LCDOut $fe, 1 ' Limpia la pantalla
LCDOut $fe, 2 ' Posiciona el cursor en el inicio
LCDOut "* Pantalla LCD *"
LCDOut $fe,$C0, "* Alfanumerica *"
LCDOut $fe,$90, "* 1234567890 *"
LCDOut $fe,$D0, "* AaBbCcDdEeFf *"
Inicio:
GoTo Inicio ' Salta a la etiqueta inicio
End
Desarrollador de vending.

Saludos desde Murcia (España).

Desconectado perla

  • PIC16
  • ***
  • Mensajes: 107
Re:16F88 con LCD
« Respuesta #9 en: 24 de Febrero de 2016, 17:35:53 »
y una cosita mas. En Basic Stamp se puede saltar de hoja en hoja con RUN. y en Basic pro ¿como se hace?
¿cuantas hojas tiene esos pic que mencionaba antes?.
Desarrollador de vending.

Saludos desde Murcia (España).

Desconectado Stban

  • PIC12
  • **
  • Mensajes: 78
Re:16F88 con LCD
« Respuesta #10 en: 24 de Febrero de 2016, 19:20:13 »
El problema que tienes es por el ADC del PIC16f88; los Pic´s anteriores no tiene módulo ADC, entonces necesitas desactivarlo.
Tu programa quedaría mas o menos así:

Define Osc 4 ' Define el Oscilador para un Cristal
' de 4 Mhz.

ansel = 0 'desactiva el ADC
cmcon = 7 'desactiva los comparadores

Pause 500

Inicio:
LCDOut $fe, 1 ' Limpia la pantalla
LCDOut $fe, 2 ' Posiciona el cursor en el inicio
LCDOut "* Pantalla LCD *"
LCDOut $fe,$C0, "* Alfanumerica *"
LCDOut $fe,$90, "* 1234567890 *"
LCDOut $fe,$D0, "* AaBbCcDdEeFf *"

GoTo Inicio ' Salta a la etiqueta inicio
End

Otra observación es en cuanto al puerto A.4, en el pic16f84 es de colector abierto por eso en el diagrama tiene una resistencia pull up, y en el pic16f88 no es de colector abierto o sea no necesitas la resistencia.

Desconectado perla

  • PIC16
  • ***
  • Mensajes: 107
Re:16F88 con LCD
« Respuesta #11 en: 24 de Febrero de 2016, 20:13:12 »
Ok  Stban. Funciono, ya me gustaria saber como tu.
Un saludo a toda la comunidad
Desarrollador de vending.

Saludos desde Murcia (España).

Desconectado perla

  • PIC16
  • ***
  • Mensajes: 107
Re:16F88 con LCD
« Respuesta #12 en: 24 de Febrero de 2016, 20:15:15 »
creo que estos pic tienen varias paginas para escribir codigo. Si es asi como se hace?
Desarrollador de vending.

Saludos desde Murcia (España).

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:16F88 con LCD
« Respuesta #13 en: 24 de Febrero de 2016, 21:44:47 »
Siendo BASIC un programa de alto nivel no deberias preocuparte por las paginas de memoria flash, simplemente escribir el codigo


 

anything