E

1 button 4 led

Başlatan EYT, 16 Şubat 2016, 21:21:42

EYT

Arkadaşlar bu proje Pic basic pro ile yazılmıştır buna bir button ile 5 led kontrolü nasıl eklerim.

RB0 :BUTTON


RC3
RC4
RC5
RC6
RC7  : İSE LED ÇIKIŞ OLACAK

ete

Bu gibi sorulara şema eklenmesi gerekir.
4 adet led seri mi bağlı yoksa paralel mi bağlı belli değil. Neye göre cevap vereceğiz?
En azından detay vermek lazım şöyle bağlı diye.

Bir buton basınca Port pininden bir HIGH çıkartır onunla bir transistörü sürer ve transistörlede 4 adet ledi yakarım.
Böyle soruya bu kadar cevap olur ancak.
Ete

EYT

#2
Kod ilk mesaja ek olarak ilave edilmiştir .

ete

#3
Öncelikle işe PORTB.0 pinini giriş pini yapmakla başlanır. Bunun için iki alternatifin var;
- INPUT PORTB.0   veya
- TRISB.0=1  şeklinde yapılabilir. Tabiiki PORTB nin tamamına TRISB=%00000001 şeklinde de değer vermek mümkün ama bu durumda B0 pini hariç diğerlerini çıkış yapmış olursun. AMa yukardaki iki komut yalnızca B0 pinini etkiler.

- PORTB de her hangi bir pin giriş yapılınca ona dahili pullup verilebilir. Bunun için OPTION_REG.7=0  komutunu vermek yeterlidir. Böylece dahili pullup çalışır ve bu durumda butona basınca PORTB.0 pinine LOW vermelidir. Zira HIGH da bekleyecek o pin. Bu nedenle butonun diğer ucu GND ye bağlanır.

- Sonra program içinde;
   IF PORTB.0=0  THEN
      PORTC=PORTC | %11111000
   ENDIF
şeklinde komut verirsen 5 adet led tek komutla yakılır. Burada görülen "|" operatörü OR işlemi yapar. 0 OR 1=1 veya 1 OR 0=1 veya 1 OR 1=1 dir daima. Dolayısıyla C portunun 3-4-5-6-7 nolu bitlerini 1 ile OR işlemine sokup hepsini bir anda yakabiliyoruz bu şekilde.
Aynı ledleri söndürmek için AND (&) operatörünü kullanmak gerekir. PORTC=PORTC & %11100000 şeklinde o bitler 0 ile AND işlemine sokulursa aktif olan ledler sönecektir.

Ete

EYT

Arkadaşlar ete hocamın anlattığı şekide yapamadım yapıp gönderebilcek biri var mı aceba

Burak

#5
İşlemcin 876'mı yoksa 876A' mı ?

Burak
Ω Gens Una Sumus Ω

EYT


Burak

#7
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2016 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 2/19/2016                                         *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
#header
  errorlevel -303  ; suppress Program word too large
#ENDHEADER

#header
  errorlevel -306  ; Crossing page boundry
#ENDHEADER

#config
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
#endconfig

define OSC 4
'===============================================================================================
OPTION_REG.7=0
ADCON1=%00000111

PORTA=%000000   :   PORTB=%00000000   :   PORTC=%00000000
TRISA=%000000   :   TRISB=%00000001   :   TRISC=%00000000
'===============================================================================================

BUT     VAR PORTB.0
F       VAR BIT :   F=0 'INITIAL STATE OF FLAG VARIABLE

MAIN:

IF BUT=0 THEN
    WHILE BUT=0 :   PAUSE 100   :   WEND
    IF F=0  THEN
        F=1
        goto jump
    endif
   
    IF F=1  THEN
        F=0
        goto jump
    endif
ENDIF
jump:

IF F=0  THEN    PORTC=%00000000
IF F=1  THEN    PORTC=%11111000

GOTO MAIN


Burak
Ω Gens Una Sumus Ω

EYT

#8
Hocam eline sağlıkta benim sıkıntım kodu ekteki koda eklemekte sana zahmet ekleyipte gönderemezmisiniz?

Burak

#9
Hayır gönderemem maalesef ... Ayrıca forumda bir daha büyük harfle mesaj yazma .. Bağırmak anlamına gelir ...

Burak
Ω Gens Una Sumus Ω

EYT

#10
Hocam sana zahmet göndersen hemde hatamı düzeltsem ben denedim eklemeyi ama çalışmadı benim için önemlide...

Burak

Birincisi hatamı düzeltsem diyosun kod Ferhat'ın yazdığı kod ... İkinciside nereye ekleneceği belli olmayan , tamamen ne olduğu belirsiz bir istek görüyorum .. Üçüncüsüde , hazırdan elini suya sabuna dokundurmadan yol almaya çalışıyor olman ..

Ben bu yardımı yapmayacağım , yapana saygı duyarım ama ben daha fazla yardımda bulunmayacağım ...

Burak
Ω Gens Una Sumus Ω

Powered by EzPortal