TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: quèquè led en 10 de Enero de 2015, 17:09:52
-
Hola soy nuevo en el foro :)... tengo una duda es que estoy aprediendo a como usar una pantalla lcd 16x02 y lo estoy asiendo con la libreria flex_lcd en ccs funciona bien pude escribir "hola" pero el problema es cuando quiero mover la palabra es decir yo pongo lcd_gotoxy(5,2); compilono hay error y al momento de simularlo en proteus la palabra aparece en la fila y colunma uno. porfavor ayudenme si pueden y gracias
-
Yo no tengo idea de CCS, pero creo que si pones el codigo que estas usando y como conectaste el LCD deberia ser mucho mas facil de encontrar el problema, seguro que alguno que esta acostumbrado a CCS te ayuda.
-
Gracias cuabdo pueda lo subo al codigo y al esque. Solo que nose como jaja.. como te comente soy nuevo XD.
-
el codigo lo pones aca , fijate que tenes un boton cuando escribis que parece un numeral #
Si presionas eso te aparece algo asi (code)(/code) en realidad aparece con corchetes, pero lo pongo asi por que sino el foro lo transforma en algo asi:
En el medio de eso pones tu codigo
es decir entre code y /code pones el codigo.
Para el esquematico podes sacar una imagen y cortarla con el paint, guardarla en jpeg y si no pesa mucho podes subirlo al foro, sino vas a tener que buscar un servidor gratuito que permita subir imagenes. tinypics etc.
Pero por ahora el codigo, si no ven nada malo entonces puede que te pidan el esquematico.
-
este es el código
#include <16f628a.h>
#fuses XT,NOWDT,NOPUT
#use delay(clock=4000000)
#define LCD_DB4 PIN_B4
#define LCD_DB5 PIN_B5
#define LCD_DB6 PIN_B6
#define LCD_DB7 PIN_B7
#define LCD_RS PIN_B1
#define LCD_RW PIN_B2
#define LCD_E PIN_B0
#include <Mylcd.c>
void main()
{
lcd_init();
while(1){
lcd_gotoxy(2,2);
lcd_putc("\f hola ");
delay_ms(200);
}
}
el esquema todabia nose subirlo jeje ya averiguare como. saludos
-
lcd_putc() creo que es para una sola letra, aunque lei para mas, lo que vi que usan en CCS es
printf (lcd_putc,"Aca el texto").
Tambien lo vi usandose con lcd.c y no Mylcd.c ( a no ser que hayas hecho vos la libreria ) Aca un ejemplo con lcd.c para otro micro, pero que imagino lo podes aplicar
#include <18f4550.h>
#device ADC=8
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay(clock=48000000)
#define LCD_ENABLE_PIN PIN_C2
#define LCD_RS_PIN PIN_C1
#define LCD_RW_PIN PIN_C0
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
#include <lcd.c>
void main()
{
set_tris_d(0x00);
set_tris_c(0x00);
output_d(0x00);
lcd_init();
Delay_ms(100);
lcd_gotoxy(3,1);
Delay_ms(1000);
lcd_putc("EMBEDDED LAB!");
lcd_gotoxy(4,2);
lcd_putc("LCD EXAMPLE");
while(1);
}
Tambien fijate que hay un delay y ahi usan lcd_putc.
-
Exactamente descarge una libria que se llama flex_ lcd lo unico que ise fue cambiarle el nombre...
Si esta bien lo que vos desis ya probe imprimir la palabra hola en el lcd con lcd_ putc() y con printf y con las dos funciona pero con ninguna piedo cambiar de lugar la palabra... nose si lo comente pero yo no tengo grabadora de pic y ago la simulacion en proteus prodra ser un error del proteus y no del codigo.
-
si descargaste una liberia puede que sea ese el problema. probaste usar lcd.c ? Creo que esa libreria ya viene por defecto en el CCS sino seguro que lo conseguis por ahi al codigo.
-
Hola
Te dejo un enlace que te puede servir sobre el manejo de un LCD, te lo explica todo y puedes bajar un ejemplo.
http://meninoelectronico.blogspot.com.ar/2013/06/modulos-lcd.html
-
El problema en el programa es el operador \f
while(1){
lcd_gotoxy(2,2); //en esta linea se posiciona el la columna 2 renglon 2
lcd_putc("\f hola "); //y aqui con \f limpia la panttalla y se mueve a la pocision 1,1 e imprime hola
// el operador \f no deve usarese en todas las funcione lcd_putc porque te ubica en pocision 1,1