| Yazar | Mesaj |
trash_ | | Tarih: 25.07.2006, 10:03 Mesaj konusu: lcd problemi | |
| Arkadlar Doğan İbrahim'in Pic C ile Pic Programlama kitabını aldım. Kitaptaki programları kurdum ve bir lcd devresi yaptım. HI_TECH firmasının PICC LITE programını kullanarak basit bir program yazdım.
program şu şekide:
Kod:
#include <pic.h>
#include <lcd.c>
main(void)
{
TRISB = 0;
TRISA = 0;
lcd_init();
lcd_clear();
lcd_put("Merhaba");
for(;;)
{
}
}
ama programı derlemeye çalıştığım zaman "lcd.c bulunamadı diyor".
internette araştırdım ama bir türlü işime yarayan bir lcd.c bulamadım. yardımcı olursanız sevinirim.
|
|
|
|
volga | | Tarih: 25.07.2006, 12:54 Mesaj konusu: | |
| arkadaşım kolay gelsin.
gördüğüm kadarıyla cevabı uzun zamadır bekliyorsun.
şimdi.
pic lite programının kurulduğu dosya içinde Samples diye bir dosya olması lazım.
örnek olarak gönderilen dosyalar bunlar.
bu örneklerin biride lcd ile ilgili bu klasörün içinde lcd.c lcd.h ve time dosyarı bulunuyor.
bu iki dosyayıda alıp ana klasör altında bulunanan içinde *.c ve *.h dosyalarının bulunduğu dosyaya kayıt et.
umarım problemin çözülür.
unutmadan:bir sonuca ulaşamazsan kullandığın pıc lite programının yeni demoları çıktı onların samples dosyasından bulabilirsin.hala çözemezsen bana tekrara cevap yaz.
tekrara kolay gelsin.başarılar.
|
|
trash_ | | Tarih: 25.07.2006, 18:19 Mesaj konusu: | |
| cevabın için teşekkür ederim ama lcd.c dosyası açılamıyor hatası veriyor. oysaki lcd.c ve lcd.h dosyası orda var. peki aynı problem niye pic.h ta meydana gelmiyor. lcd kullanmadan bir program yazınca problem yaşanmıyor. sanırım problem lcd.c dosyasında.
lcd.c
Kod: /*
* LCD interface example
* Uses routines from delay.c
* This code will interface to a standard LCD controller
* like the Hitachi HD44780. It uses it in 4 bit mode, with
* the hardware connected as follows (the standard 14 pin
* LCD connector is used):
*
* PORTB bits 0-3 are connected to the LCD data bits 4-7 (high nibble)
* PORTA bit 2 is connected to the LCD RS input (register select)
* PORTA bit 3 is connected to the LCD EN bit (enable)
*
* To use these routines, set up the port I/O (TRISA, TRISB) then
* call lcd_init(), then other routines as required.
*
*/
#include <pic.h>
#include "lcd.h"
#include "delay.h"
static bit LCD_RS @ ((unsigned)&PORTA*8+2); // Register select
static bit LCD_EN @ ((unsigned)&PORTA*8+3); // Enable
#define LCD_STROBE ((LCD_EN = 1),(LCD_EN=0))
/* write a byte to the LCD in 4 bit mode */
void
lcd_write(unsigned char c)
{
PORTB = (PORTB & 0xF0) | (c >> 4);
LCD_STROBE;
PORTB = (PORTB & 0xF0) | (c & 0x0F);
LCD_STROBE;
DelayUs(40);
}
/*
* Clear and home the LCD
*/
void
lcd_clear(void)
{
LCD_RS = 0;
lcd_write(0x1);
DelayMs(2);
}
/* write a string of chars to the LCD */
void
lcd_puts(const char * s)
{
LCD_RS = 1; // write characters
while(*s)
lcd_write(*s++);
}
/* write one character to the LCD */
void
lcd_putch(char c)
{
LCD_RS = 1; // write characters
PORTB = (PORTB & 0xF0) | (c >> 4);
LCD_STROBE;
PORTB = (PORTB & 0xF0) | (c & 0x0F);
LCD_STROBE;
DelayUs(40);
}
/*
* Go to the specified position
*/
void
lcd_goto(unsigned char pos)
{
LCD_RS = 0;
lcd_write(0x80+pos);
}
/* initialise the LCD - put into 4 bit mode */
void
lcd_init(void)
{
LCD_RS = 0; // write control bytes
DelayMs(15); // power on delay
PORTB = 0x3; // attention!
LCD_STROBE;
DelayMs(5);
LCD_STROBE;
DelayUs(100);
LCD_STROBE;
DelayMs(5);
PORTB = 0x2; // set 4 bit mode
LCD_STROBE;
DelayUs(40);
lcd_write(0x28); // 4 bit mode, 1/16 duty, 5x8 font
lcd_write(0x08); // display off
lcd_write(0x0F); // display on, blink curson on
lcd_write(0x06); // entry mode
}
|
|
arnavutyk | | Tarih: 31.07.2006, 17:05 Mesaj konusu: parsic programi.....! | |
| arkadasim,
parsic programini proje olusturmak icin bir dene internetten kırek olarak bulabilirsin.......
|
|
coshkun | | Tarih: 03.08.2006, 12:42 Mesaj konusu: | |
| Arkadaşlar #include deyimiyle kullandığınız başlık dosyalarının uzantıları her zaman .h olmalıdır.Dolayısıyla doğru şekil:
#include <pic.h>
#include <lcd.h>
olmalı.lcd.c otomatik olarak programınıza eklenecektir zaten.
|
|
blackhawk22 | | Tarih: 30.09.2006, 16:46 Mesaj konusu: | |
| Selam.Problemin büyük ihtimalle lcd.c dosyasındaki "delay.h" dan kaynaklanıyor.Ben de aynı sarunu yaşamıştım."delay.h" yerine "delay.c" yaz olur. olmazsa prodigy_last@yahoo.com
|
|
erolokumus | | Tarih: 04.02.2007, 04:06 Mesaj konusu: | |
| lcd.h dosyasını ınternetten bulup dosya ıcıne eklemen gereklı sanırım
|
|
|