Buton problemi...

Başlatan arma_engin, 08 Ocak 2006, 20:14:49

arma_engin

Arkadaşlar PicBasic te yeniyim sizden şöyle bir yardım rica edecektim.
Kullanacağım Pic 16F628A
Sorum; Devremde 2 adet buton 3 adet led olacak,1nci butona bastığımda 1nci led yanacak,2nci butona bastığımda 2nci led yanacak,iki butona aynı anda 5 saniye basılı tuttuğumda da 3ncü led yanacak bunu PicBasic te nasıl yapabilirim.
Teşekkürler...

arma_engin

arkadaşlar yardımcı olacak birisi yok mu oralarda yoksa herkez bayram tatilindemi :)

OG

Birşeyler yazıp başlarsanız buradakiler yardımcı olacaktır. Hatalarınızı düzeltirken öğrenmiş de olacaksınız.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

ete

Denenmemiş bir şeyler karaladım. Bak bakalım işine yararmı.
Ancak ledlerin yalnızca yanacağını belirtmişsin. Sönmeyi kim yapacak belirtmemişsin. O yüzden toggle koydum. Yani bir kere basınca yanacak tekrar basınca sönecek.

@ DEVICE pic16F628                      'işlemci 16F628                                
@ DEVICE pic16F628, WDT_ON              'Watch Dog timer açık
@ DEVICE pic16F628, PWRT_ON             'Power on timer açık
@ DEVICE pic16F628, PROTECT_OFF         'Kod Protek kapalı
@ DEVICE pic16F628, MCLR_off            'MCLR pini kullanılMIYOR.
@ DEVICE pic16F628, INTRC_OSC_NOCLKOUT  'Dahili osilatör kullanılacak 

CMCON=7
TRISA=0
TRISB=%00000011
PORTB=0

SAYI var byte
symbol tusa=porta.0
symbol tusb=porta.1
symbol LEDA=portA.0
Symbol LEDB=PortA.1
SYMBOL LEDC=PortA.2
sayI=0
basla:
      IF TUSA=0 & TUSB=0 THEN
      PAUSE 100
      SAYI=SAYI+1
      IF SAYI=50 then '5 sn=5000ms (100x50) olmuş ise
       SAYI=0
       TOGGLE LEDC
      endif
      goto basla
      endif
      if tusa=0 then
         PAUSE 100
          TOGGLE LEDA
      ENDIF
      
      IF TUSB=0 THEN
          Pause 100
          TOGGLE LEDB
       ENDIF
   
      goto basla
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

arma_engin

ete hocam teşekkürler ben senin verdiğin kodlarda ufak bir düzenleme yaptım kodlar aşağıda,şimdilik oldu gibi görünüyor.
Device 16F876
        XTAL = 20
        ALL_DIGITAL = TRUE
        TRISa = %11111111
        TRISB = %11001111
        Symbol Buton_A  = PORTA.0
        Symbol Buton_B  = PORTA.1
        Symbol Led_A    = PORTB.5
        Symbol Led_B    = PORTB.4
        Symbol Led_C    = PORTB.3
        DIM SAYI as byte
        SAYI=0
        Start:
        IF buton_a=0 and buton_B=0 THEN 
        SAYI=SAYI+1 
        IF SAYI=50 then '5 sn=5000ms (100x50) olmuş ise 
        SAYI=0
        delayms 50 
        TOGGLE LED_C 
        end if
        end if
        if buton_a=0 then
        delayms 50 
        TOGGLE led_a
        end if
        if buton_B=0 then
        delayms 50 
        TOGGLE led_B
        end if
        goto start