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...
arkadaşlar yardımcı olacak birisi yok mu oralarda yoksa herkez bayram tatilindemi :)
Birşeyler yazıp başlarsanız buradakiler yardımcı olacaktır. Hatalarınızı düzeltirken öğrenmiş de olacaksınız.
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
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