
Selamlar arkadaşlar lcd bar uygulamalarının C ile yazılmışını paylaşıyorum daha öncesinde proton basic ile yaptığım uygulamayı bu sefer hitech C ile gerçekleştirdim.
Kodlar fonksiyonlar halinde olduğu için rahatlıkla uygulamalara adapte edilebilir.
Ayrıca ufak değişikliklerle diğer pic c derleyiciler içinde kullanılabilir. Linklerden hem basic hemde C ile yapılmış uygulamaları indirebilirsiniz.
Hitech-C Lcd bar uygulamaları balanslı, 32, 48, 80

Örnek bir yazılım içeriği
/***************************************************************
* Name : LCD Bar uygulaması (32li) *
* Author : Erhan YILMAZ (tekniker_erhan *
* Notice : *
* : All Rights Reserved *
* Date : 19.08.2009 *
* Version : 1.0 *
* Notes : *
* : *
'**************************************************************/
#include <htc.h>
#include <stdio.h>
#include "delay.h"
#include "lcd.h"
#include <pic16f87.h> // 16F88 veya 16F87 içn başlık dosyası ekle
__CONFIG(UNPROTECT & CCPRB0 & DEBUGDIS & UNPROTECT & UNPROTECT & LVPDIS & BORDIS & MCLRDIS & PWRTEN & WDTDIS & XT & FCMDIS & IESODIS);
extern void bar_init(void);
extern void bar_goster(char);
void main(void)
{ unsigned char ekrandagoster[10];
char bar;
ANSEL=0x00;
lcd_init(); //Lcd hazırlanır.
bar_init(); //Lcdye özel karakterler yüklenir.
TRISB=0XC0;
while(1){
lcd_goto(0); // 1. satıra gec
sprintf(ekrandagoster,"Deger=%2d",bar);
lcd_puts(ekrandagoster);
if (RB7==0){
bar++;
if (bar>32)
{bar=32;}
bar_goster(bar);
}
if (RB6==0){
bar--;
if (bar==255)
{bar=0;}
bar_goster(bar);
}
DelayMs(250);
}
}
void bar_init(void)
{ lcd_write(0x40); //özel karakter cgram adresi başlangıcı
lcd_putch(0XFB); //İlk 8 tanesi tam bar için
lcd_putch(0XFB);
lcd_putch(0XFB);
lcd_putch(0XFB);
lcd_putch(0XFB);
lcd_putch(0XFB);
lcd_putch(0XFB);
lcd_putch(0XFB);
lcd_putch(0XF8); //Kalan 8 taneside yarım bar için
lcd_putch(0XF8);
lcd_putch(0XF8);
lcd_putch(0XF8);
lcd_putch(0XF8);
lcd_putch(0XF8);
lcd_putch(0XF8);
lcd_putch(0XF8);}
void bar_goster (char bar)
{
char yarim_bar,tam_bar,bos,i;
tam_bar=bar/2; //bar sayısı ikiye bölünerek tam bar sayısı elde edilir.
yarim_bar=bar%2; //bar sayısının ikiye bölümünden kalan yarım bar sayısını verir.
bos=16-tam_bar; //16 dan bar sayısı çıkartılarak boşluk sayısı bulunur.
lcd_goto(0x40); //2. satıra geç
for (i=0;i<tam_bar;i++) //Tam bar sayısı kadar bar lcd 2. satırda görüntülenir.
{lcd_putch(0);}
if (yarim_bar==1) //Bar bölümünden kalan bir ise yarım bar göösterilir.
lcd_putch(1);
for (i=0;i<bos;i++) //bar görüntülenmeyecek sütünlara boşluk karakteri gönderilir.
{lcd_putch (0X20);}
}
</pre>
<strong>Proton Basic Lcd bar uygulamaları 32, 48, 80</strong>
<img src="https://320volt.com/wp-content/uploads/2009/10/Proton-Basic-Lcd-bar.png" alt="Proton Basic Lcd bar" title="Proton Basic Lcd bar" width="533" height="423" class="alignnone size-full wp-image-8326" />
<strong>Örnek bir yazılım içeriği</strong>
<pre>
'****************************************************************
'* Name : LCD Bar uygulaması (32li) *
'* Author : Erhan YILMAZ *
'* Notice : *
'* : All Rights Reserved *
'* Date : 22.12.2008 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
Device = 16F628A
Declare LCD_DTPIN PORTB.4
Declare LCD_ENPIN PORTB.3
Declare LCD_RSPIN PORTB.2
Declare LCD_INTERFACE 4
Declare LCD_LINES 2
Cls
Print $FE,$40,$F8,$F8,$F8,$F8,$F8,$F8,$F8,$F8
Print $FE,$48,$FB,$FB,$FB,$FB,$FB,$FB,$FB,$FB
Config INTRC_OSC_NOCLKOUT, CP_OFF, WDT_OFF, PWRTE_ON, LVP_OFF
TRISA=%11111111
TRISB=%00000000
Dim barval As Byte
Dim bar1 As Byte
Dim bar2 As Byte
Dim pad As Byte
Symbol azbut = PORTA.0
Symbol artbut = PORTA.1
CMCON=7
ana:
If artbut=0 Then barval=barval+1
If barval>32 Then barval=32
If azbut=0 Then barval=barval-1
If barval=255 Then barval=0
GoSub lcd_bar
DelayMS 200
GoTo ana
lcd_bar:
bar1 = barval/2
bar2 = barval // 2
pad = 16-bar2
Print At 1,1, "DEGER=",DEC2 barval
Print At 2,1, Rep $01bar1,Rep $00bar2,Rep " "pad+1
Return
End
Kod ve proteus dosyaları;
lcd-bar-uygulamalari-pic-micro-hitech-c-proton-basic ZIP Dosyası Şifre-Pass: 320volt.com
Tekrar rapid harici bir siteye yükleyebilirmiyiz ?
Teşekkürler.
Alternatif link: http://www.4shared.com/file/202345282/c1582a9/lcd-bar.html