LCD ledini nasıl ayarlarim..?

Başlatan bkrtncr, 26 Ekim 2005, 01:12:12

bkrtncr

arkadaslar bu hafta uc baslik acmis oldum ama bi ise baslayinca sorunlarda bitmiyor.. neyseki bu site var :roll:

yapmak istedigim şey şu:
4x20 lcd kullandigim bir program yazdim. fakat lcd ledini, programda herhangi bir tusa bastiktan sonra 5saniye boyunca yakıp, sure bittikten sonrada sonmesini istiyorum. tabi yanik kaldigi sure boyunca kendi islemlerimi engellemeyecek sekilde.. (cep tlflarindaki gibi...)

programi pbp da yazmaya calisiyorum.. fakat bilgimde sınırlı oldugu icin biturlu cozum bulamadim. donanim kismi bisekilde halledilir herhalde ama yazilim husunda hicbirsey aklima gelmedi...

yardimci olabilirseniz cook sevinirim...
Bildigini paylaşan, ALİM'dir...

stlg

Sevgili bkrtncr
Arkadasların sana yardımcı olabilmesi icin sisteminden biraz bahsetmelisin
mesala tusların durumu kesmeleri biliyormusun ornegin portb kesmesini bilmiyorsan ve problemini cabuk halletmek istiyorsan bu işlemi donanımla halletmeni oneriyorum daha onceki baslıga bir gozat istersen

             ALLAHA EMANET OLUNUZ
ALLAHA EMANET OLUNUZ Hoştur bana senden gelen,  Ya gonca gül yahut diken,  Ya kaftandır yahut kefen,  Kereminde hoş lütfunda hoş.

CaFFeiNe

timer kesmesi kullanırsan çok kolay bir şekilde yapabilirsin herhangi bir tuşa basıldığında ledi yakarsın sonra timer kesmesinde led yanıyorsa bir süre değişkenini arttırırsın mesela LEDSURE = LEDSURE + 1 gibi sonra kesmede bu değişkeni kontrol edersin IF LEDSURE >= 200 THEN ledi kapa gibi tabiki burada timer ın saniyede kaç kesme yapıyorsa ona göre hesap yapıp değeri bulucan 200 ü örnek yazdım

kesme kullanmadan yapılır belki ama bu kadar kolay yol varken tırmalamaya gerek yok

bkrtncr

teşekkür ederim caffeine..

programimda porta'ya, 5 tuşu basildiginda gnd olacak sekilde 16f877e bagladim.. cikis icinse portbyi lcdye.. portd yine baska bir cikis olarak kullandim..

mumkunse timer'in programini biraz daha ayrintili bir sekilde yazabilirmisin? (mesela 5sn icin).

kendi programim su sekilde:

TRISA=%11111
TRISB=0
TRISD=0
TRISC=0
'---------------------------------

@ DEVICE PIC16F877A
@ DEVICE PIC16F877A, WDT_ON
@ DEVICE PIC16F877A, PWRT_ON
@ DEVICE PIC16F877A, PROTECT_OFF
@ DEVICE PIC16F877A, XT_OSC
'----------------------------------

DEFINE LCD_DREG     PORTB
DEFINE LCD_DBIT     4
DEFINE LCD_EREG     PORTB
DEFINE LCD_EBIT     3
DEFINE LCD_RWREG    PORTB
DEFINE LCD_RWBIT    2
DEFINE LCD_RSREG    PORTB
DEFINE LCD_RSBIT    1
DEFINE LCD_BITS     4
DEFINE LCD_LINES    4
'----------------------------------
CMCON=7
OPTION_REG.7=1
ADCON1=7

TIMER   VAR BYTE
MLTRE   VAR BYTE

ONOFF     VAR PORTA.0
GUP        VAR PORTA.1
GDOWN   VAR PORTA.2
TUP         VAR PORTA.3
TDOWN   VAR PORTA.4
'----------------------------------

    CLEAR
    MLTRE=50
    PAUSE 200
'----------------------------------

START:

    LCDOUT  $FE,1,  "   BEKIR TUNCER"
    LCDOUT  $FE,$C0,"  DENEME PROGRAMI"
    LCDOUT  $FE,$94,"  BASLAMAK ICIN"
    LCDOUT  $FE,$D4,"   ON/OFF'A BAS"
    PAUSE   200

BIR:    
    IF      ONOFF=0 THEN MENU
    GOTO    BIR
    
MENU:
    LCDOUT  $FE,1,  "   BEKIR TUNCER"
    LCDOUT  $FE,$C0,"  DENEME PROGRAMI"
    LCDOUT  $FE,$94,"VOLUME SET  TIME SET"
    LCDOUT  $FE,$D4,DEC3 MLTRE,"mlt        ",DEC2 TIMER,"min"
    PAUSE   200
        
CONTROL:
    IF      ONOFF=0 THEN START
    IF      GUP=0   THEN GINC
    IF      GDOWN=0 THEN GDEC
    IF      TUP=0   THEN TINC
    IF      TDOWN=0 THEN TDEC
    GOTO CONTROL
'-----------------------------------------------------------------

GINC:
     MLTRE=MLTRE+10
     IF     MLTRE=110 THEN MLTRE=0
     LCDOUT $FE,$D4,DEC3 MLTRE
     PAUSE  100
     GOTO   CONTROL
     
GDEC:
    IF      MLTRE=50 THEN MLTRE=100
    MLTRE=MLTRE-10
    LCDOUT  $FE,$D4,DEC3 MLTRE
    PAUSE   100
    GOTO    CONTROL
    
TINC:
    TIMER=TIMER+1
    IF      TIMER=100 THEN TIMER=0
    LCDOUT  $FE,$E4,DEC2 TIMER
    PAUSE   100
    GOTO    CONTROL
    
TDEC:
    IF      TIMER=0 THEN TIMER=99
    TIMER=TIMER-1
    LCDOUT  $FE,$E4,DEC2 TIMER
    PAUSE   100
    GOTO    CONTROL
'-----------------------------------------------------------------
                                
    
    END
Bildigini paylaşan, ALİM'dir...

CaFFeiNe

ben sana oltayı verdim balığı sen tutacaksın :)
forumda veya pbp help te araştır bakalım kesmeler nasıl kullanılıyor

bkrtncr

ARKADASLAR BASARDİM... TESEKKUR EDİYORUM YARDİMLARİNİZ İCİN...

yalniz simdi ufak bir problem kaldi sadece..
simdi pic'in cikisini lcd ledini yakabilmesi icin transistorle nasil lcdye baglayacagim...

bu konuda da yardimci olursaniz cook sevinirim...
Bildigini paylaşan, ALİM'dir...

CaFFeiNe

pic çıkışını 1K direnç ile BC337 gibi NPN bir trans. beyzine gir emiteri GND ye bağla kollektörü aydınlatmanın eksi ucuna bağla aydınlatmanın artı ucunu ise bir direnç ile beslemenin artı ucuna bağla besleme voltajına göre direncin değerini ve geçen akıma görede gücünü hesaplarsın


bkrtncr

arkadaslar hepinize teşekkür ediyorum..
soylediginiz baglantilari yapmadim ama nasil olsa siz denemissiniz.. yarin bunuda yarin hallederim insallah..

ilgi ve alakaniz icin sag olun...

allah razi olsun...   :D ...
Bildigini paylaşan, ALİM'dir...