Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

Pic input okuma yardımı

Başlatan elanamaze2003, 13 Mayıs 2010, 15:58:54

elanamaze2003

Arkadaşlar, pic'te yeniyim. Girişteki portların 4 tanesine buton koyarak 4 butonun oluşturuğu durumlarla 16 adet fonskiyon yaratmak istiyorum. Benim sorunum şu girişteki 4 inputu nasıl kodlamalıyım yani tek buton için  if A.0=1 demem yeterli oluyo buton sayısı 4'e çıktığında kodum nasıl olmallı mesela 4 butondan 0101 verisinde B.1'i 1 yap komutunu nasıl vermeliyim

izzethoca

konuyu tam anlamadım
sanırım  1. butona basınca girişler 1000  2. butona basınca 1100  3 butana basınca 1110 4. butona basınca1111
1. butona 1 daha basınca 0111 gibimi olmasını istiyorsunuz

elanamaze2003

yok hayır öyle değil girişte 4 buton var şimdi bu dört buton 16 durum oluşturur.
0000
0001
0010
0011
0100
0101
0110vs... mesela birinci buton kapalı dğerleri açıkken şunu yap. 1 ve 3 kapalı diğerleri açıkken şunu yap diye 16 input durumu olacak

chailuck

#3
Alıntı yapılan: elanamaze2003 - 13 Mayıs 2010, 15:58:54
mesela 4 butondan 0101 verisinde B.1'i 1 yap komutunu nasıl vermeliyim

IF PORTB=%0000101 THEN PORTB.1=1
yazman gerekiyor.


Alıntı yapılan: chailuck - 13 Mayıs 2010, 16:33:00
Alıntı yapılan: elanamaze2003 - 13 Mayıs 2010, 15:58:54
mesela 4 butondan 0101 verisinde B.1'i 1 yap komutunu nasıl vermeliyim

IF PORTB=%0000101 THEN PORTB.1=1
yazman gerekiyor.


şimdi biri cıkar portb aynı anda ınput output olurmu der bıde ona bunun nasıl yapıldıgını anlatmayayım

IF PORTB=%0000101 THEN PORTA.1=1

seklınde kullan yanı
İmkanın sınırlarını görmek için imkansızı denemek lazım. (Fatih Sultan Mehmet)  Ayıplarını gördüğünüz komşuyu kınamayınız. Sırlarını açıklamayınız.Çünkü gördüğünüz bu sır size emanettir, emanete hıyanet kötü ve çirkin bir filldir. (Hacı Bayramı Veli )  meyve veren ağacın taşlanması çok hoş ;)

izzethoca

ama dostum sizin yazdığınız durumda buton değilde  anahtar kullanması gerekmezmi

chailuck

Alıntı yapılan: izzethoca - 13 Mayıs 2010, 16:36:32
ama dostum sizin yazdığınız durumda buton değilde  anahtar kullanması gerekmezmi
hocam sımdı soruyu soran arkadas buton demıs ama aynı anda basmayacaksa eger zaten işi programcılıgın derınıne ınıyor aynı anda anahtar gıbı calıstırmak bu arkadas ıcın kolay olurdu onu dusunerek yazdım.

EEPROM 0,[20]
'****************************************************************
ADCON1 = 7
Define  LCD_DREG        PORTD       'DATA PORTU PORTD
Define  LCD_DBIT        4           'D4,D5,D6,D7 DEN DATALARI GÖNDER
Define  LCD_RSREG       PORTE       'LCD REGISTER SEÇME PORTU
Define  LCD_RSBIT       0           'LCD REGISTER SEÇME BİTİNİ BELİRLER
Define  LCD_EREG        PORTE       'LCD ENABLE PORTUNU BELİRLER
Define  LCD_EBIT        1           'LCD ENABLE BİTİNİ BELİRLER
        Low PORTE.2                 ' LCD YAZMA MODUNA GEÇİRİLDİ
        Pause 100
'****************************************************************
TRISB=%11110000
OPTION_REG.7=0
SATA    VAR PORTB.0
SATB    VAR PORTB.1
SATC    VAr PORTB.2
SATD    var PORTB.3
SUTA    VAR PORTB.4
SUTB    VAR PORTB.5
SUTC    VAr PORTB.6
SUTD    var PORTB.7
TUS VAR BYTE
'****************************************************************
A VAR BYTE : READ 0,A : PAUSE 20
LCDOUT $FE,1
'****************************************************************
ANA:
GOSUB TUSAL
IF TUS=1 THEN A=A+1
IF TUS=2 THEN A=A-1
IF TUS<>50 THEN
LCDOUT $FE,$80,"TUS=",DEC2 TUS
ENDIF
LCDOUT $FE,$C0,"SAYI=",DEC3 A
IF TUS=3  THEN WRITE 0,A : PAUSE 20
GOTO ANA
'****************************************************************
TUSAL:
;PAUSE 1000
TUS=50
SATA=0 : SATB=1 : SATC=1 : SATD=1
S1:
IF SUTA=0 THEN TUS=1 : GOTO S1
S2:
IF SUTB=0 THEN TUS=2 : GOTO S2
S3:
IF SUTC=0 THEN TUS=3 : GOTO S3
S4:
IF SUTD=0 THEN TUS=4 : GOTO S4
'****************************************************************
SATA=1 : SATB=0 : SATC=1 : SATD=1
S5:
IF SUTA=0 THEN TUS=5 : GOTO S5
S6:
IF SUTB=0 THEN TUS=6 : GOTO S6
S7:
IF SUTC=0 THEN TUS=7 : GOTO S7
S8:
IF SUTD=0 THEN TUS=8 : GOTO S8
'****************************************************************
SATA=1 : SATB=1 : SATC=0 : SATD=1
S9:
IF SUTA=0 THEN TUS=9  : GOTO S9
S10:
IF SUTB=0 THEN TUS=10 : GOTO S10
S11:
IF SUTC=0 THEN TUS=11 : GOTO S11
S12:
IF SUTD=0 THEN TUS=12 : GOTO S12
'****************************************************************
SATA=1 : SATB=1 : SATC=1 : SATD=0
S13:
IF SUTA=0 THEN TUS=13 : GOTO S13
S14:
IF SUTB=0 THEN TUS=14 : GOTO S14
S15:                   
IF SUTC=0 THEN TUS=15 : GOTO S15
S16:
IF SUTD=0 THEN TUS=16 : GOTO S16
'****************************************************************
RETURN
'****************************************************************
END

su kodlarını verdıgım programcık ısıne yarar bu durumda tabı ınceleyıp degıstırmesı lazım
uygun hale getırmesı lazım

butonlara aynı anda basması pıcte yenı olan bırı ıcın daha uygundur bence hocam =)
İmkanın sınırlarını görmek için imkansızı denemek lazım. (Fatih Sultan Mehmet)  Ayıplarını gördüğünüz komşuyu kınamayınız. Sırlarını açıklamayınız.Çünkü gördüğünüz bu sır size emanettir, emanete hıyanet kötü ve çirkin bir filldir. (Hacı Bayramı Veli )  meyve veren ağacın taşlanması çok hoş ;)

izzethoca

ellerine sağlık güzel olmuş