avatar_KA

OR İŞLEMİNDE SET-RESET

Başlatan KA, 04 Nisan 2015, 13:18:44

KA

Merhaba;

Ekteki devrede PIC16F628A  a portundaki 3 girişi or(veya) işlemi yapıyorum B portunun herhangi bir pinindende çıkış alıcam. ama butona bastıkca  çıkış veriyor. Benim yapmak istediğim her hangi bir butona basılınca çıkışın sürekli aktif olmasıdır ve reset butonu ile çıkışı pasif yapmaktır bu konunda yardımcı olabilrimisiniz ?

burctankal

Sanırım sıkıntı kodlarınızda. Paylaşırsanız yardım alabilirsiniz.

KA

#2
Benim zaten sormak istediğim. Nasıl bir kod eklemem gerekiyor ?

TrisA=255
Trisb=0
'----------------------------------------------------------------
CMCON=7
'----------------------------------------------------------------

SYMBOL  SENSOR1=PORTA.2
SYMBOL  SENSOR2=PORTA.3
SYMBOL  SENSOR3=PORTA.4

SYMBOL  CIKIS=PORTB.0

BASLA:

IF      (SENSOR1=1) OR (SENSOR2=1) OR (SENSOR3=1) THEN
HIGH    CIKIS
ELSE   
LOW     CIKIS
ENDIF

GOTO BASLA

END

MS_59

@ DEVICE pic16F628A                      'işlemci 16F628                               
@ DEVICE pic16F628A, WDT_ON              'Watch Dog timer açık
@ DEVICE pic16F628A, PWRT_ON             'Power on timer açık
@ DEVICE pic16F628A, PROTECT_OFF         'Kod Protek kapalı
@ DEVICE pic16F628A, MCLR_off            'MCLR pini kullanılMIYOR.
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT  'Dahili osilatör kullanılacak
DEFINE OSC 4
TrisA=%00011101
Trisb=0
CMCON=7
SYMBOL  SENSOR1=PORTA.2
SYMBOL  SENSOR2=PORTA.3
SYMBOL  SENSOR3=PORTA.4
SYMBOL  CIKIS=PORTB.0
SYMBOL    CLR=PORTA.0
PAUSE 200

BASLA:

IF (SENSOR1=1) OR (SENSOR2=1) OR (SENSOR3=1) THEN CIKIS=1
IF CLR=0 THEN CIKIS=0

GOTO BASLA

END
mehmet

ete

Bence programda hata var. Hata aslında donanımdan kaynaklanıyor.
Butonlar Opto üzerinden çıkış veriyorlar. Her hangi bir opto nun butonuna basınca led iletime geçer ve karşısındaki transistörü tetikler ve iletime geçmesini sağlar. Normalde Opto transistöründen 10K pullup direnci nedeni ile HIGH çıkar iken butona basınca Collector'den LOW çıkar. Bu durumda Tuşa basılması konumunda pic pinlerine LOW uygulanır.
Programda HIGH uygulanmış.
Doğru şekil;
@ DEVICE PIC16F628A
@ DEVICE PIC16F628A, WDT_Off
@ DEVICE PIC16F628A, PWRT_ON
@ DEVICE PIC16F628A, PROTECT_OFF
@ DEVICE PIC16F628A, MCLR_OFF
@ DEVICE PIC16F628A, XT_OSC 'INTRC_OSC

TrisA=255
Trisb=0
'----------------------------------------------------------------
CMCON=7
'----------------------------------------------------------------

SYMBOL  SENSOR1=PORTA.2
SYMBOL  SENSOR2=PORTA.3
SYMBOL  SENSOR3=PORTA.4
symbol  RES=PORTA.0
SYMBOL  CIKIS=PORTB.0
pause 200
CIKIS=0
BASLA:

      IF (SENSOR1=0) OR (SENSOR2=0) OR (SENSOR3=0) THEN 
        CIKIS=1
        WHILE (SENSOR1=0) OR (SENSOR2=0) OR (SENSOR3=0):WEND
      ENDIF
   
     IF RES=0 THEN CIKIS=0
     PAUSE 50
     GOTO BASLA

END

KA

#5
Normalde kullandığım foto transistor ve led isiste bulamadığım için opto kuplor koydum buton ise led ve optokuplorun arasında bi engel olduğunu anlamak için buton basılı ise arada engel yok buton basılı değil ise arada engel var

Powered by EzPortal