Picproje Elektronik Sitesi

DERLEYİCİLER => Proton+ => Konuyu başlatan: elektroacemi - 06 Ocak 2022, 11:35:40

Başlık: 16*4 LCD Ekran Sorunu
Gönderen: elektroacemi - 06 Ocak 2022, 11:35:40
Merhabalar.

Proton Basic kullanarak 16*4 LCD Ekran kullanmaya çalışıyorum.
1. satırda sorun yok
2. satırda sorun yok
3. satır 5. karakterden yazmaya başlıyor (sorun)
4. satır 5. karakterden yazmaya başlıyor (sorun)

LDC Ekranı değiştirdim sorun düzelmedi.

Proton Basic Compiler Versiyon 3.5.7.7

Device = 18F4520OSCCON = %01110000     'Internal 8 MHz clock select,Xtal=8Config_Start   OSC = INTIO67 ; Internal oscillator block, port function on RA6 and RA7   PWRT = OFF ; PWRT disabled   BOREN = OFF ; Brown-out Reset disabled in hardware and software   BORV = 0 ; Maximum setting   WDT = OFF ; WDT disabled (control is placed on the SWDTEN bit)   MCLRE = OFF ; RE3 input pin enabled; MCLR disabled   PBADEN = OFF ; PORTB<4:0> pins are configured as digital I/O on Reset   LVP = OFF ; Single-Supply ICSP disabled   Cp0 = On ; Block 0 (000800-001FFFh) code-protected   CP1 = On ; Block 1 (002000-003FFFh) code-protected   CP2 = On ; Block 2 (004000-005FFFh) code-protected   CP3 = On ; Block 3 (006000-007FFFh) code-protected   CPB = On ; Boot block (000000-0007FFh) code-protected   WRTD = OFF ; Data EEPROM not write-protectedConfig_End'LCD TANIMLAMALARI,,,,,,,,,,,,,,,,,,,,Declare LCD_Type Alphanumeric        'Declare LCD_DTPin PORTD.0            'Declare LCD_ENPin PORTC.0      'e    'Declare LCD_RSPin PORTA.6     'rs    'Declare LCD_Interface 4              'Declare LCD_Lines 4                  ''''''''''''''''''''''''''''''''''''''''Port Tanımlamaları,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Symbol TUS_GERI PORTB.6      'GİRİŞ Symbol TUS_MENU PORTB.4      'GİRİŞ Symbol TUS_BOS PORTB.5       'GİRİŞ Symbol TUS_EKSI PORTB.3      'GİRİŞ Symbol TUS_ARTI PORTB.2      'GİRİŞ Symbol TUS_RESET PORTA.5     'GİRİŞ Symbol LED_Y PORTE.2         'ÇIKIŞSymbol LED_S PORTE.1         'ÇIKIŞSymbol LED_K PORTE.0         'ÇIKIŞSymbol BUZZER PORTA.7        'ÇIKIŞSymbol YOLLA_PIN PORTA.4    'ÇIKIŞSymbol INT0PIN PORTB.0    'girişSymbol SDA_IN PORTC.5   'ethernet 8Symbol SCL_IN PORTC.6   'ethernet 7Symbol SDA_OUT PORTA.1   'ethernet 6Symbol SCL_OUT PORTA.2   'ethernet 5TRISA.6=0 TRISC.0=0 TRISB.6=1  TRISB.5=1TRISB.4=1 TRISB.3=1 TRISB.2=1 TRISA.5=1 TRISB.0=1 TRISE.2=0 TRISE.1=0 TRISE.0=0 TRISA.7=0 TRISA.4=0 TRISC.5=1 TRISC.6=1 PORTA=0 :LATA=0PORTB=0 :LATB=0PORTC=0 :LATC=0PORTD=0 :LATD=0PORTE=0 :LATE=0Dim VOLT100 As WordDim GERCEK_DEGER As WordDim SAYI As Word   Dim DEGER_A As WordDim x As Byte Dim y As Byte Dim Address As WordDim ALINAN As Byte Dim ALINAN_VERI[10] As ByteINTCON2.7=0   'PULL UP AKTİFCMCON=07h''interrupt,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,On Interrupt GoTo KESMEINTCON=%11110000'timer,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,T0CON=%10000100INTCON.2=0 'TMR0 Kesme bayrağı sıfırlanıyor  TMR0L=15  'TMR0h=15'INT0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,INTCON2.6= 0INTCON.1=0 'INT Kesme bayrağı sıfırlanıyor DelayMS 1000Clear'SerIn SDA_IN\SCL_IN, 16468, [ALINAN]Basla:DelayMS 1000Print $fe,1Print At 1,1, "aaaaaaaaaaaaaaaa"Print At 2,1, "bbbbbbbbbbbbbbbb"Print At 3,1, "cccccccccccccccc"Print At 4,1, "dddddddddddddddd" GoTo BaslaKESME:    Disable           ' INT LERE İZİN VERME      INTCON.7 = 0 ' DİĞER TÜM KESMELERE İZİN VERME    If INTCON.2=1 Then        INTCON.2=0        'TMR0 Kesme bayrağı sıfırlanıyor                 TMR0L=15        'TMR0H=15      End If    If INTCON.1=1 Then        INTCON.1=0 'INT Kesme bayrağı sıfırlanıyor     End If            INTCON.7 = 1 ' DİĞER TÜM KESMELERE İZİN VER    Enable          ' INT LERE İZİN VER     ResumeEnd

Ekran Çıktısı:


"aaaaaaaaaaaaaaaa"
"bbbbbbbbbbbbbbbb"
"    cccccccccccc"
"    dddddddddddd"
Başlık: Ynt: 16*4 LCD Ekran Sorunu
Gönderen: sezgin05 - 06 Ocak 2022, 11:50:26
Declare LCD_Type Alphanumeric        yerine    Declare LCD_Type 0  yazmayı deneyin
Başlık: Ynt: 16*4 LCD Ekran Sorunu
Gönderen: yas - 06 Ocak 2022, 12:04:47
Sorunun nedeni grafik lcd yönergelerinin kullanılmasından kaynaklı, Protonun lcd örneklerini incelemenizi tavsiye ederim, ayrıca yardım dosyasının 274 üncü sayfası sizin sorunuzun cevabı.

$FE, 1 Clear display
$FE, 2 Return home (beginning of first line)
$FE, $0C Cursor off
$FE, $0E Underline cursor on
$FE, $0F Blinking cursor on
$FE, $10 Move cursor left one position
$FE, $14 Move cursor right one position
$FE, $C0 Move cursor to beginning of second line
$FE, $94 Move cursor to beginning of third line (if applicable)
$FE, $D4 Move cursor to beginning of fourth line (if applicable)
Başlık: Ynt: 16*4 LCD Ekran Sorunu
Gönderen: Maxim - 06 Ocak 2022, 13:05:17
yukardaki kodun ekran tarafında bir sorun yok denedim çalışıyor proteusta
şu olabilir daha önce çok başıma geldi, pic ve lcd ekranın besleme ayaklarında 100nf kondansator varmı?
Başlık: Ynt: 16*4 LCD Ekran Sorunu
Gönderen: elektroacemi - 06 Ocak 2022, 14:33:50
Alıntı yapılan: sezgin05 - 06 Ocak 2022, 11:50:26Declare LCD_Type Alphanumeric        yerine    Declare LCD_Type 0  yazmayı deneyin
Fark olmadı


Alıntı yapılan: Maxim - 06 Ocak 2022, 13:05:17yukardaki kodun ekran tarafında bir sorun yok denedim çalışıyor proteusta
şu olabilir daha önce çok başıma geldi, pic ve lcd ekranın besleme ayaklarında 100nf kondansator varmı?
Pic ve LCD de 100nF vardı ama soküp tekrar taktım. (Smd olduğu için karışma ihtimaline karşı) Gene düzelmedi
Besleme katındaki kondansatörleri değiştirdim. Gene düzelmedi.

Proteusta kontrol ettiğiniz HEX dosyasını yollayabilir misiniz. Aceba derleyici hatası mı diye kontrol edeceğim




Başlık: Ynt: 16*4 LCD Ekran Sorunu
Gönderen: elektroacemi - 06 Ocak 2022, 15:22:18
Alıntı yapılan: yas - 06 Ocak 2022, 12:04:47Sorunun nedeni grafik lcd yönergelerinin kullanılmasından kaynaklı, Protonun lcd örneklerini incelemenizi tavsiye ederim, ayrıca yardım dosyasının 274 üncü sayfası sizin sorunuzun cevabı.

$FE, 1 Clear display
$FE, 2 Return home (beginning of first line)
$FE, $0C Cursor off
$FE, $0E Underline cursor on
$FE, $0F Blinking cursor on
$FE, $10 Move cursor left one position
$FE, $14 Move cursor right one position
$FE, $C0 Move cursor to beginning of second line
$FE, $94 Move cursor to beginning of third line (if applicable)
$FE, $D4 Move cursor to beginning of fourth line (if applicable)

Buradaki MANUEL komutlar ile yapmaya çalıştım

Print $fe,1
Print $FE, 2 'Return home (beginning of first line)
Print $FE, $0F 'Blinking cursor on
Print $FE, $94 'Move cursor to beginning of third line (if applicable)
Print $FE, $10 'Move cursor left one position
Print $FE, $10 'Move cursor left one position
Print $FE, $10 'Move cursor left one position
Print $FE, $10 'Move cursor left one position


3. Satıra geçince 5. karakterden başlıyor. "Print $FE, $10" ile 4 kez sola alıca ilk karaktere geçiyor.
Başlık: Ynt: 16*4 LCD Ekran Sorunu
Gönderen: yas - 06 Ocak 2022, 15:33:27
@elektroacemi derleyici ile ilgili bir hata değil. Anladığım kadarıyla karakter lcd nin mantığını tam bilmiyorsunuz. Yukarıda belirtiğim öneriyi dikkate almadığınızdan bu kanıya varıyorum. Bu tarz lcd lerin neredeyse tamamı HD4470 yada birebir benzeri kontroller kullanırlar. Bu lcd lerin 80 bayt lık ram alanı vardır. Yani 1(satır)x80(karakter) lcd görsel oluşturulabilir. Fakat piyasadan satın aldığımız standart karakter lcd lerin boyutları genelde 4x20, 2x40, 2x20, 2x16, 1x16 gibi değerlerde bulunmakta.
Örneğin; 4x20 lik bir lcd 80 baylık alanın gösteriminin tamamı aşağıdaki gibi gerçekleşir.
01--------------20 (Birinci satır)
41--------------60 (İkinci satır)
21--------------40 (Üçüncü satır)
61--------------80 (Dördüncü satır)
Başka bir örnek; 2x40 lık bir lcd 80 baylık alanın gösteriminin tamamı aşağıdaki gibi gerçekleşir.
01--------------40 (Birinci satır)
41--------------80 (İkinci satır)

Sizin ekranınınız 4x16 olduğu için 4x20 ye göre birinci satırdan sonraki her satır için 4 karakter kayma olması normal.

"Print $FE,128" yada "Print $FE,$80" komutu ile imleç 1. satırın ilk başına konumlanır. 4x16 lık bir lcd nin üçüncü satırın başına konumlanmak isterseniz başlangıç adresine 16 ilave etmelisiniz yani 128+16=144 adresini seçmelisiniz.
"Print $FE,144" yada "Print $FE,$90" şeklinde.
Başlık: Ynt: 16*4 LCD Ekran Sorunu
Gönderen: yas - 06 Ocak 2022, 15:39:21
Alıntı yapılan: elektroacemi - 06 Ocak 2022, 15:22:183. Satıra geçince 5. karakterden başlıyor. "Print $FE, $10" ile 4 kez sola alıca ilk karaktere geçiyor.

Ayrıca bazı lcd üreticilerin 4 satır üretimlerinde farklılık olabiliyor. Kimisi birinci satırın devamını ikinci satırdan kimisi üçüncü satırdan devam ettirebiliyor. Elinizdeki lcd ye siz uyduracaksınız. Yapmanız gereken tek şey "Print $FE,???" komuttaki soru işaretli yerlerdeki sayıyı 128~208 arasında bir değer vererek görüntüyü oturtmak olmalı.
Başlık: Ynt: 16*4 LCD Ekran Sorunu
Gönderen: elektroacemi - 06 Ocak 2022, 15:52:18
Alıntı yapılan: yas - 06 Ocak 2022, 15:39:21Ayrıca bazı lcd üreticilerin 4 satır üretimlerinde farklılık olabiliyor. Kimisi birinci satırın devamını ikinci satırdan kimisi üçüncü satırdan devam ettirebiliyor. Elinizdeki lcd ye siz uyduracaksınız. Yapmanız gereken tek şey "Print $FE,???" komuttaki soru işaretli yerlerdeki sayıyı 128~208 arasında bir değer vererek görüntüyü oturtmak olmalı.

O şekilde yaptığımız zaman Proton Basic kullanmanın anlamı kalmıyor. ASM yazarken o şekilde yapıyordum eskiden.
Yeni denemeler yaptım. Aynı devreye ;
- 4*16 Winstar taktım; Sorun devam etti.
- 4*16 Farklı Marka taktım ; Sorun devam etti.
- 4*20 Winstar taktım; Sorun olmadı.
- 4*20 Farklı Marka taktım ; Sorun olmadı.
Başlık: Ynt: 16*4 LCD Ekran Sorunu
Gönderen: yas - 06 Ocak 2022, 16:24:21
Alıntı yapılan: elektroacemi - 06 Ocak 2022, 15:52:18- 4*20 Winstar taktım; Sorun olmadı.
- 4*20 Farklı Marka taktım ; Sorun olmadı.
Zaten yukarıdaki mesajlarımda 4x20 ile kayma olmayacağı anlaşılıyor.

Alıntı yapılan: elektroacemi - 06 Ocak 2022, 15:52:18O şekilde yaptığımız zaman Proton Basic kullanmanın anlamı kalmıyor.
:o  size kolay gelsin.

Başlık: Ynt: 16*4 LCD Ekran Sorunu
Gönderen: elektroacemi - 06 Ocak 2022, 16:48:24
Alıntı yapılan: yas - 06 Ocak 2022, 16:24:21Zaten yukarıdaki mesajlarımda 4x20 ile kayma olmayacağı anlaşılıyor.
 :o  size kolay gelsin.



Sizi kızdırdım. Galiba.

Temel sorun PROTON BASIC Print At 3,1, "cccccccccccccccc" komutunu $FE, $94 yapıp "cccccccccccccccc" yazıyor $FE, $90 yapıp yazsa sorun kalmayacak. Bununla ilgili bir ayar bulamadım. Yeni versiyonlarda vardır belki.

Print At 3,-3, "cccccccccccccccc" yazarak baştan yazması sağlanıyor ancak;
Print At 3, 0, "cccccccccccccccc" yazıldığı zaman derleyici hata veriyor...

Alıntı yapılan: Maxim - 06 Ocak 2022, 13:05:17yukardaki kodun ekran tarafında bir sorun yok denedim çalışıyor proteusta
şu olabilir daha önce çok başıma geldi, pic ve lcd ekranın besleme ayaklarında 100nf kondansator varmı?

Yazdığım kodu protousta denedim. LDC olarak LM041L seçersem aynı sorunu yapıyor.

İlginiz için teşekkür ederim.

Derleyicide bununla ilgili bir ayar var mı ?
Başlık: Ynt: 16*4 LCD Ekran Sorunu
Gönderen: yas - 06 Ocak 2022, 17:05:40
Derleyicinin böyle bir ayarı yok. Ama 4X16 lcd için şöylede kullanabilirsiniz.
Symbol SATIR1 = $80
Symbol SATIR2 = $A4
Symbol SATIR3 = $90
Symbol SATIR4 = $B8

PRINT $FE,SATIR1,"AAAAAAAAAAAAAAAA"
PRINT $FE,SATIR2,"BBBBBBBBBBBBBBBB"
PRINT $FE,SATIR3,"CCCCCCCCCCCCCCCC"
PRINT $FE,SATIR4,"DDDDDDDDDDDDDDDD"
Başlık: Ynt: 16*4 LCD Ekran Sorunu
Gönderen: elektroacemi - 06 Ocak 2022, 17:09:44
Alıntı yapılan: yas - 06 Ocak 2022, 17:05:40Derleyicinin böyle bir ayarı yok. Ama 4X16 lcd için şöylede kullanabilirsiniz.
Symbol SATIR1 = $80
Symbol SATIR2 = $A4
Symbol SATIR3 = $90
Symbol SATIR4 = $B8

PRINT $FE,SATIR1,"AAAAAAAAAAAAAAAA"
PRINT $FE,SATIR2,"BBBBBBBBBBBBBBBB"
PRINT $FE,SATIR3,"CCCCCCCCCCCCCCCC"
PRINT $FE,SATIR4,"DDDDDDDDDDDDDDDD"

Çok teşekkür ederim.
Başlık: Ynt: 16*4 LCD Ekran Sorunu
Gönderen: elektroacemi - 06 Ocak 2022, 17:11:44
Alıntı yapılan: yas - 06 Ocak 2022, 17:05:40Derleyicinin böyle bir ayarı yok. Ama 4X16 lcd için şöylede kullanabilirsiniz.
Symbol SATIR1 = $80
Symbol SATIR2 = $A4
Symbol SATIR3 = $90
Symbol SATIR4 = $B8

PRINT $FE,SATIR1,"AAAAAAAAAAAAAAAA"
PRINT $FE,SATIR2,"BBBBBBBBBBBBBBBB"
PRINT $FE,SATIR3,"CCCCCCCCCCCCCCCC"
PRINT $FE,SATIR4,"DDDDDDDDDDDDDDDD"

Symbol SATIR4 = $D0    OLACAK
Başlık: Ynt: 16*4 LCD Ekran Sorunu
Gönderen: yas - 06 Ocak 2022, 17:14:02
Tamam onu da sen düzelt :)  sonuçta deneyerek yapmıyorum mantığını anlatmaya çalıştım.  ::ok
Başlık: Ynt: 16*4 LCD Ekran Sorunu
Gönderen: elektroacemi - 06 Ocak 2022, 17:18:18
Alıntı yapılan: yas - 06 Ocak 2022, 17:14:02Tamam onu da sen düzelt :)  sonuçta deneyerek yapmıyorum mantığını anlatmaya çalıştım.  ::ok

Çok teşekkür ederim :)

Başlık: Ynt: 16*4 LCD Ekran Sorunu
Gönderen: serkan - 06 Ocak 2022, 19:05:28
xc8 de böyle yapılıyor.


#define      LCD_CLEAR              1
#define      LCD_CURSOR_OFF          12
#define      LCD_TURN_OFF            0
#define      LCD_TURN_ON            8
//////////////////////LCD  PORT AYATLARI///////////////////////////////////////////////////////////////////////////////////////
#define LCD_data7      PORTDbits.RD7      // D7
#define LCD_data6      PORTDbits.RD6      // D6
#define LCD_data5      PORTDbits.RD5      // D5
#define LCD_data4      PORTDbits.RD4      // D4
#define LCD_EN        PORTCbits.RC7      // EN
#define LCD_RS        PORTCbits.RC6      // RS
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Lcd_Init(void);
void Lcd_yazi(unsigned char y, unsigned char x, const char *buffer);
void Lcd_Char(char c);
void Lcd_komut(unsigned char c);
void print(unsigned char y, unsigned char x, char *buffer);
void ozel_karekter(char location, unsigned  char *ptr);
 void karekter_oku(unsigned char y, unsigned char x, char *buffer);
void MCU_Delayms(unsigned int time); 
int i;
float sayi;
unsigned char Temp[50];
char pil_seviye[8]={14,17,17,31,31,31,31,0};
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//==============================================================================
void Lcd_komut(unsigned char c){
LCD_EN = 0; LCD_RS = 0;
LCD_data7 = (c & 0x80)>>7;
LCD_data6 = (c & 0x40)>>6;
LCD_data5 = (c & 0x20)>>5;
LCD_data4 = (c & 0x10)>>4;
LCD_EN = 1;__delay_ms(2); LCD_EN = 0; __delay_ms(9); 
LCD_data7 = (c & 0x08)>>3;
LCD_data6 = (c & 0x04)>>2;
LCD_data5 = (c & 0x02)>>1;
LCD_data4 = (c & 0x01);
LCD_EN = 1;__delay_ms(2); LCD_EN = 0;__delay_ms(9); 

}

void Lcd_Init(void){
unsigned char data; __delay_ms(2);
LCD_data7 = 0;LCD_data6 = 0;LCD_data5 = 0;LCD_data4 = 0; 
LCD_EN = 0;LCD_RS = 0;__delay_ms(2);
for(data = 1; data < 4; data ++){
LCD_data7 = 0;LCD_data6 = 0;LCD_data5 = 1;LCD_data4 = 1;
LCD_EN = 0;LCD_RS = 0; __delay_ms(2);
LCD_data7 = 0;LCD_data6 = 0;LCD_data5 = 1;LCD_data4 = 1; 
LCD_EN = 1;LCD_RS = 0;__delay_ms(2); 
LCD_data7 = 0;LCD_data6 = 0;LCD_data5 = 1;LCD_data4 = 1; 
LCD_EN = 0;LCD_RS = 0;__delay_ms(2);
}
LCD_data7 = 0;LCD_data6 = 0;LCD_data5 = 1;LCD_data4 = 0;
LCD_EN = 0;LCD_RS = 0; __delay_ms(2); 
LCD_data7 = 0;LCD_data6 = 0;LCD_data5 = 1;LCD_data4 = 0; 
LCD_EN = 1;LCD_RS = 0;__delay_ms(2); 
LCD_data7 = 0;LCD_data6 = 0;LCD_data5 = 1;LCD_data4 = 0;
LCD_EN = 0;LCD_RS = 0;__delay_ms(9);
data = 40; Lcd_komut(data);
data = 16; Lcd_komut(data);
data = 1;  Lcd_komut(data);
data = 15; Lcd_komut(data);__delay_ms(2);
Lcd_komut(LCD_CURSOR_OFF);
}

//==============================================================================
void Lcd_Char(char c){
LCD_EN = 0; LCD_RS = 1;__delay_us(30);
LCD_data7 = (c & 0x80)>>7;
LCD_data6 = (c & 0x40)>>6;
LCD_data5 = (c & 0x20)>>5;
LCD_data4 = (c & 0x10)>>4;
__delay_us(30);
LCD_EN = 1;__delay_us(30);LCD_EN = 0; __delay_us(30);
LCD_data7 = (c & 0x08)>>3;
LCD_data6 = (c & 0x04)>>2;
LCD_data5 = (c & 0x02)>>1;
LCD_data4 = (c & 0x01);
__delay_us(30);
LCD_EN = 1;__delay_us(30);LCD_EN = 0; __delay_ms(9);
}
 
void print(unsigned char y, unsigned char x, char *buffer){
unsigned char data;
switch(y){
case 1: data = 127 + x; break; 
case 2: data = 191 + x; break;
case 3: data = 147 + x; break;
case 4: data = 211 + x; break;
default: break;}
Lcd_komut(data);
while(*buffer)             
    {
      Lcd_Char(*buffer);
      buffer++;           
    }
return;
}
 void karekter_oku(unsigned char y, unsigned char x, char *buffer){
unsigned char data;
switch(y){
case 1: data = 127 + x; break; 
case 2: data = 191 + x; break;
case 3: data = 147 + x; break;
case 4: data = 211 + x; break;
default: break;}
Lcd_komut(data);
Lcd_Char(*buffer);
}
void Lcd_yazi(unsigned char y, unsigned char x, const char *buffer){
unsigned char data;
switch(y){
case 1: data = 127 + x; break;
case 2: data = 191 + x; break;
case 3: data = 147 + x; break;
case 4: data = 211 + x; break;
default: break;}
Lcd_komut(data);
while(*buffer)           
    {
      Lcd_Char(*buffer);
      buffer++;         
    }
return;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void MCU_Delayms(unsigned int time){
    unsigned int acc;
    for(acc=0; acc<time; acc++){
        __delay_ms(1);
    }
}

void ozel_karekter(char location, unsigned  char *ptr)
{
 char i;
 unsigned  char *lkb;
  lkb=ptr;

    Lcd_komut(64+(location*8));
           for(i=0;i<8;i++)
               Lcd_Char(lkb[i]);
 
}

 
void  main( )  {

INTCON2bits.RBPU =0; //B portu direncleri aktif
CMCON = 0b00000111;  //karsilastirici iptal
TRISA=0x07;TRISB=0xFF;TRISC = 0x00;TRISD=0x00;  TRISE = 0x00; 
PORTA=0x00;PORTB=0x00; PORTC=0x00; PORTD=0x00;PORTE=0x00; 
MCU_Delayms(250);
Lcd_Init(); 
MCU_Delayms(1000);//0.5 saniye
sayi=15.026;
 sprintf(Temp,"%0.2f",sayi);
 print(1,1, &Temp[0]);
MCU_Delayms(1000);//0.5 saniye
i=1000;
 sprintf(Temp,"%4d",i);
 print(2,1, &Temp[0]);
MCU_Delayms(500);//1 saniye

Lcd_yazi(3,1,"789");MCU_Delayms(500);//0.5 saniye
Lcd_yazi(4,1,"aBc");MCU_Delayms(500);//0.5 saniye

ozel_karekter(0,pil_seviye);//karekteri 0 adresine kaydet
karekter_oku(1,10,0);//karekteri 0  adresineden oku 1. satir 10 nuncu sutuna yaz.

while(1) {      
 sayi+=0.1; MCU_Delayms(250);
 
 sprintf(Temp,"%0.2f",sayi);
 print(2,10, &Temp[0]);
 

      }
  } 






Başlık: Ynt: 16*4 LCD Ekran Sorunu
Gönderen: Maxim - 06 Ocak 2022, 21:01:35
:020000040000FA
:1000000000000000A2EF00F01200016A018E0A6EEB
:10001000FE0E53D80A5051D0A66AA68E0900F5509C
:1000200002E002D8FBD71200086E8B90899C949056
:10003000929CF00E9516085000B21ED03A0E046E37
:10004000980E4BD8330E076E29D8130E046E880E07
:1000500044D824D8640E40D821D8640E3DD8220E4E
:10006000076E1CD8280E07D80C0E05D8060E03D82C
:100070000082085001D00080076E00A009D0899C42
:1000800003080AE309D8070E046ED00E26D8120022
:100090000080FE0810E0898C073A00A000908B8059
:1000A000F00E831607500F0B83128B90073A00B0A7
:1000B000F5D7320E11D80850120001BEB5D7066A26
:1000C000056EFF0E0526062200D0D8A01200030EF2
:1000D000046EE30E02D8F5D7046AF50F036EFE0E28
:1000E00004E300D000000326FDE20000032604061E
:1000F000F9E203A002D000D000001200616161614A
:10010000616161616161616161616161000062629F
:100110006262626262626262626262626262000083
:10012000636363636363636363636363636363639F
:100130000000646464646464646464646464646447
:1001400064640000006A00010F0EC16E070EB46EF9
:10015000700ED36E929C9490938C938A938893861E
:100160009384928A9380969496929690929E929877
:10017000948A948C806A896A816A8A6A826A8B6AA4
:10018000836A8C6A846A8D6AF19E070EB46EF28E61
:1001900003D0F2BE120055D0FCDFFBDFF00EF26E92
:1001A000F8DFF7DF840ED56EF4DFF3DFF294F1DFD2
:1001B000F0DF0F0ED66EEDDFECDFF19CEADFE9DF5A
:1001C000F292E7DF030E066EE80E7ADFE2DF05EE5D
:1001D000FFF0ED6AE950EA10FCE1EF6ADADF030EA6
:1001E000066EE80E6DDFD5DFFE0E1EDF010E1CDF92
:1001F000D0DF800E016E09DF000EF76EFC0EF66E8A
:100200000BDFC7DF800E016EC00EFFDE010EF76E42
:100210000E0EF66E01DFBDDF800E016E940EF5DE70
:10022000010EF76E200EF66EF7DEB3DF800E016E64
:10023000D40EEBDE010EF76E320EF66EEDDEA9DFA8
:10024000CDD7F29EF2A403D0F2940F0ED66EF2B286
:0E025000F292F28E11009DDFFED79BDFFED7EB
:020000040030CA
:0300010008011ED5
:02000500018177
:0600080000800FE00F4034
:00000001FF