pıc basıc pro bilenler yardım...

h7587

Üye
Katılım
14 Haz 2011
Mesajlar
8
Puanları
1
slm abiler benim bi projemvar cok basit ancak ben çözemedim.pbp az cok biliyorum ama içinden cıkamadım.sorunum şu:

3 dügme ile 3 led kontrolü.1. butona basınca 1. led.2. butona basınca 2. led.3. butona basınca 3. led yanacak.ve aynı tuslarla sönecek ve 1. tusa 18sn içinde basılmas ,2. tusa 10sn içinde basılmas,3. tusa 8 sn içinde basılmas ise led lerden hangisi yanıyorsa o sönecek.Ama bu butonlar ve led ler birbirinden farklı çalısacak mesela 1 led yanıyorken,3 tusa basılınca 3. led de yanacak,2. tusa basınca 2. ledde yanacak ama
işte 3. tusa 8sn basmayınca sönecek ama diğerleri kendi sn sinde sönecek.


cook acil lasım lütfen yardım edin.şimdiden tşkler
 
Son düzenleme:
lütfen yardım edin kimse anlamıyormu pbp'dan
 
pıc 16f628 de yapılmış hacım 3 button 3 tane led var pbp da olsunda önemli değil
 
@ DEVICE pic16F628a 'işlemci 16F628a
@ DEVICE pic16F628a, WDT_OFF 'Watch Dog timer KAPALI
@ DEVICE pic16F628a, PWRT_OFF 'Power on timer açık
@ DEVICE pic16F628a, PROTECT_ON'Kod Protek AÇIK
@ DEVICE pic16F628a, MCLR_OFF 'MCLR pini kullanılıyor.
@ DEVICE pic16F628a, BOD_OFF
@ DEVICE pic16F628a, LVP_OFF
@ DEVICE pic16F628a, INTRC_OSC_NOCLKOUT 'Dahili osilatör kullanılacak
'----------------------
OPTION_REG.7=1 'portB deki dahili PULL-UP lar iptal edildi.
CMCON=7
TRISA=%11111111 'PORTA Giriş olarak ayarlandı..!
TRISB=%00000000 'PORTB Çıkış olarak ayarlandı..!
SAY var byte
SYMBOL TUS1= PORTA.0 ' Porta.3 pinine sembol ismi olarak TUS1 adı verildi.
SYMBOL TUS2= PORTA.1 ' PortA.4 pinine sembol ismi olarak TUS2 adı verildi.
SYMBOL TUS3= PORTA.2 ' PortA.5 pinine sembol ismi olarak TUS3 adı verildi.
SYMBOL LED1= PORTB.0 ' PortB.0 pinine sembol ismi olarak LED1 adı verildi.
SYMBOL LED2= PORTB.1 ' PortB.1 pinine sembol ismi olarak LED2 adı verildi.
SYMBOL LED3= PORTB.2 ' PortB.2 pinine sembol ismi olarak LED3 adı verildi.
PORTB=0
SAY=0
BASLA:

PAUSE 20
IF TUS1=1 THEN say=1
PAUSE 20
IF TUS2=1 THEN say=2
PAUSE 20
IF TUS3=1 THEN say=3
KONTROL:
IF SAY=0 THEN SIFIR
IF SAY=1 THEN BIR
IF SAY=2 THEN IKI
IF SAY=3 THEN UC
GOTO KONTROL
SIFIR:
LED1=0
LED2=0
LED3=0
GOTO BASLA
BIR:
TOGGLE LED1
PAUSE 1800
GOTO KONTROL
IKI:
TOGGLE LED2
PAUSE 1000
GOTO KONTROL
UC:
TOGGLE LED3
PAUSE 800
GOTO KONTROL
END


Bu kodları bir dene kardeş muhtemelen istediğin gibi çalışıyor....
 
hocam 1.tusa basınca 1.led yanarken.yardından 2.tusa basınca 2.led de işlem yapacak ve her 2 side aryrı ayrı sn sayacak mesela 1. led 10 sn 2. led 20 sn sonra sönecek.ve 10 sn içinde aynı tusa basılırsa sönecek.basılmas ise 10 sn sonra otomatik sönecek ve yanmayacak.
 
trisa=1
trisb=0


TUS1 VAR PORTA.0
TUS2 VAR PORTA.1
TUS3 VAR PORTA.2


YLED VAR PORTB.0
SLED VAR PORTB.1
KLED VAR PORTB.2


SAY1 VAR BYTE
SAY2 VAR BYTE
SAY3 VAR BYTE




PORTB=0
PORTA.0=1
PORTA.1=1
PORTA.2=1


SAY1=81
SAY2=181
SAY3=201


LED1:


IF TUS1=0 and yled=0 THEN SAY1=0
IF TUS2=0 and sled=0 THEN SAY2=0
IF TUS3=0 and kled=0 THEN SAY3=0


PAUSE 200
SAY1=SAY1+1
SAY2=SAY2+1
SAY3=SAY3+1


IF TUS1=0 AND yled=1 THEN GOTO SIFIR1
IF TUS2=0 and sled=1 THEN GOTO SIFIR2
IF TUS3=0 and kled=1 THEN GOTO SIFIR3


IF SAY1>80 THEN SAY1=81
IF SAY2>180 THEN SAY2=181
IF SAY3>200 THEN SAY3=201


IF SAY3>200 THEN LOW KLED
IF SAY3<199 THEN HIGH KLED


IF SAY2>180 THEN LOW SLED
IF SAY2<179 THEN HIGH SLED


IF SAY1>80 THEN LOW YLED
IF SAY1<79 THEN HIGH YLED






GOTO LED1




SIFIR1:


IF TUS1=0 THEN GOTO SIFIR1
PAUSE 100
SAY1=81
GOTO LED1




SIFIR2:
IF TUS2=0 THEN GOTO SIFIR2
PAUSE 100
SAY2=181
GOTO LED1




SIFIR3:
IF TUS3=0 THEN GOTO SIFIR3
PAUSE 100
SAY3=201
GOTO LED1








bunun gibi ben yaptım :D ama tuslar tam oturaklı değil hata verir gibi burda ,pbp de button komutu ne işlev yapıyor acaba işime yararsa o komutu kullanıyım.
 

Forum istatistikleri

Konular
127,952
Mesajlar
913,880
Kullanıcılar
449,599
Son üye
Gksn

Yeni konular

Geri
Üst