Hola juanma2468 si probé con lcd.c pero no me funciono tampoco.
Gracias
Gracias
Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
#include <16F877A.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP,NODEBUG,NOBROWNOUT,NOPUT,NOCPD,NODEBUG
#use delay(crystal = 20Mhz)
#include <flex_lcd.c>
#use fast_io(D)
#use fast_io(c)
#use fast_io(b)
void main(){
set_tris_c(0b00000000);
set_tris_b(0b00000000);
lcd_init(); // Inicializa el lcd
lcd_putc('\f'); // Borra el lcd
while(TRUE){
delay_ms(100);
lcd_gotoxy(6, 1); // Va a la columna 5, fila 1
printf(lcd_putc,"Hola");
}
}
Actualiza el compilador de CCS.En MikroC a la primera funcionando, en CCs no encuentro manera y llevo semanas haciendo pruebas.
aver intenta asi:
#include <16F877A.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP,NODEBUG,NOBROWNOUT,NOPUT,NOCPD,NODEBUG
#use delay(crystal = 20Mhz)
#include <flex_lcd.c>
void main(){
lcd_init(); // Inicializa el lcd
lcd_putc('\f'); // Borra el lcd
lcd_gotoxy(1, 1);
printf(lcd_putc,"Hola");
while(TRUE){
}
}
#include <16F877A.h>
#fuses INTRC_IO,NOWDT,NOMCLR
#Use delay (clock=8M)
#include <flex_lcd.c>
void main(){
lcd_init(); // Inicializa el lcd
lcd_putc('\f'); // Borra el lcd
lcd_gotoxy(1, 1);
printf(lcd_putc,"Hola");
while(TRUE)
{
}
}
ami no me gusta la libreria de CCS hise la mia
bueno veo que usas un crsital por que no intentas usar el oscilador interno y quitas el master reset y vez que pasa intentalo asi:
ahora omite el boton reset y omite el cristal en la simulacion configuralo a 8Mhz aver que sucede
Así es, el PIC16F877A no tiene oscilador interno.Me parece que el 16f877a no tiene oscilador interno.
Eso es normal, porque en el PIC16F877A el pin de reset no puede ser usado como entrada.Me da error el Pic C Compiler si le pongo el fuse NOMCLR.
Es un PIC16F877AD@rkbytes, ¿Qué microcontrolador usas en la imagen?
Posiblemente, pero no lo creo. La capacitancia parásita del protoboard, los hace innecesarios.Veo que no usas condensadores. ¿Los lleva internos el cristal?
Claro. Adjunto programa y esquema.¿Puedes poner el código que has usado?
Revisa bien tus conexiones. Algunos protoboard muchas veces suelen tener falsos contactos.
No me funciona.
No muestra nada la pantalla.
Voy a probar en MikroC, a configurar la lcd para funcionar en el puerto D, para comprobar si funciona.
sbit LCD_RS at RD1_bit;
sbit LCD_EN at RD0_bit;
sbit LCD_D4 at RD4_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D7 at RD7_bit;
sbit LCD_RS_Direction at TRISD1_bit;
sbit LCD_EN_Direction at TRISD0_bit;
sbit LCD_D4_Direction at TRISD4_bit;
sbit LCD_D5_Direction at TRISD5_bit;
sbit LCD_D6_Direction at TRISD6_bit;
sbit LCD_D7_Direction at TRISD7_bit;
// Fin de declaración de variables de conexión.
char contador=0,estado=1,texto1[]="Hola", texto2[4];
void main(){
Lcd_Init(); //Inicializa el LCD.
Lcd_Cmd(_LCD_CLEAR); //Borra el display.
Lcd_Cmd(_LCD_CURSOR_OFF); //Apaga el cursor.
Lcd_Out(1,6,texto1); //Escribe el texto1.
{
if (Button(&PORTA,4,1,0)) estado=0; //Si se pulsa.
if (estado==0 && Button(&PORTA,4,1,1)) //Si se pulsa y se libera.
{
contador++; //"contador" contiene el número de pulsaciones.
if (contador>100) contador=0;
estado=1;
}
ByteToStr(contador,texto2); //Convierte a texto el contenido de la variable contador
//y lo guarda en texto2.
Lcd_Out(2,6,"MikroC"); //Muestra el texto2.
}
}
No se si viene al caso, pero alguna vez tuve un problema similar cuando utilizaba un crystal de 20 mhz(salia caracteres raros en el lcd), prueba con uno de 4 mhz.
PD: Nunca supe del porque funcionaba con el de 4mhz y no con el 20 mhz (solo soy un hobbista ).
/*******************************************************************************
* Programa: LCD16x2 Test.c
* Versión: 1.0
* Autor: D@rkbytes
* Compañia: Digitek
* Notas:
* Prueba simple de un LCD 16x2
*******************************************************************************/
#include <16F877A.H>
#use delay(crystal = 4 MHz)
#define LCD_DB4 PIN_D4
#define LCD_DB5 PIN_D5
#define LCD_DB6 PIN_D6
#define LCD_DB7 PIN_D7
//
#define LCD_RS PIN_D1
#define LCD_RW PIN_D2
#define LCD_E PIN_D0
#define LCD_DATA_PORT getenv("SFR:PORTD")
#include <lcd.c>
void main (void)
{
lcd_init(); // Inicializar la pantalla.
lcd_putc("\fHola Mundo"); // Escribe en la primer línea.
lcd_putc("\nHello World"); // Escribe en la segunda línea.
while (true);
}
Pregunta básica son con el procesador ese Hitachi no el LCD no tiene otro no? Osea el HD44780 digo! Porque hay otros