sadoazb
Üye
- Katılım
- 26 Ara 2009
- Mesajlar
- 159
- Puanları
- 1
- Yaş
- 52
yapmaya çalıştığım şey keypad ile 1-200 arasında bir numara girilip
# tuşuna basınca goto ile ilgili kısma gitmesini istiyorum
keypad girişini yapıyorum ama girdiğim numaraları tespit edip goto kullanamıyorum..
mesela keypad ile 128 girip # tuşuna basınca
şeklinde git128: kısmındaki kodların çalışmasını istiyorum bu işlemi nasıl yaparız...
son durum bu daha ilerleyemedim...
teşekkürler
# tuşuna basınca goto ile ilgili kısma gitmesini istiyorum
keypad girişini yapıyorum ama girdiğim numaraları tespit edip goto kullanamıyorum..
mesela keypad ile 128 girip # tuşuna basınca
Kod:
gosub git128
git128:
'......
return
son durum bu daha ilerleyemedim...
Kod:
DEVICE 16F877
XTAL=4
ALL_DIGITAL=TRUE 'tüm çikislar djital acik
PORTB_PULLUPS=FALSE 'portb deki pull up kapali
'LCD TANITMA BOLÜMÜ.....................................................................................
DEFINE LCD_DREG PORTB 'LCD data bacaklari hangi porta bagli? portb
DEFINE LCD_DBIT PORTB.4 'LCD data bacaklari hangi bitten basliyor? portb.4 den itibaren
DECLARE LCD_ENPIN PORTB.1 'LCD "E" pin portb nin hangi bitine baglidir.
DECLARE LCD_RSPIN PORTB.0 'LCD "RS" pin portb nin hangi bitine baglidir.
DEFINE LCD_BITS 4 'LCD 4 bit olarak bağlı
TRISA=%00000000
TRISB=%00000000
TRISC=%00000000
TRISD=%00001110
portd=0
portc=0
'Y:SATIR_Atay
'D:dikey
Symbol SATIR_A= PORTD.4
Symbol SATIR_B= PORTD.5
Symbol SATIR_C= PORTD.6
Symbol SATIR_D= PORTD.7
Symbol SUTUN_1= PORTD.1
Symbol SUTUN_2= PORTD.2
Symbol SUTUN_3= PORTD.3
delayms 750 'lcd açilmasi için
dim sayi1 as byte
dim sayi2 as byte
dim sayi3 as byte
dim tsayi as byte
tus var word
dim sutun as byte
dim satir as byte
satir=1 '//ilk sayının ilk karakter olacağını belirler
sutun=1
print at 1,1,"PERIYODIK CETVEL UYGULAMASI"
print at 2,1,"8-A SINIFI"
print at 3,1,"HAZIRLAYAN:CEREN ACAR"
print at 4,1,"<<OGRETMEN:................ >>"
delayms 2000 : print $fe,1
tus="*"
BASLA:
tus="x" '//burda tus degerine x atıyoruzki döngü boş dönmeye devam etsin
gosub tus_oku
gosub goster
goto BASLA
'---------------------------------------------------------------------------
tus_oku:
high SATIR_A
high SATIR_B
high SATIR_C
high SATIR_D
low SATIR_A
if SATIR_A=0 and SUTUN_1=0 then tus=1
if SATIR_A=0 and SUTUN_2=0 then tus=2
if SATIR_A=0 and SUTUN_3=0 then tus=3
high SATIR_A
low SATIR_B
if SATIR_B=0 and SUTUN_1=0 then tus=4
if SATIR_B=0 and SUTUN_2=0 then tus=5
if SATIR_B=0 and SUTUN_3=0 then tus=6
high SATIR_B
low SATIR_C
if SATIR_C=0 and SUTUN_1=0 then tus=7
if SATIR_C=0 and SUTUN_2=0 then tus=8
if SATIR_C=0 and SUTUN_3=0 then tus=9
high SATIR_C
low SATIR_D
if SATIR_D=0 and SUTUN_1=0 then tus="*"
if SATIR_D=0 and SUTUN_2=0 then tus=0
if SATIR_D=0 and SUTUN_3=0 then tus="#"
high SATIR_D
return
goster:
if tus="#" then gosub sonuc endif
if tus="*" then gosub sil endif
if tus="x" or tus="a" or tus="b" or tus="c" or tus="d" then
return
endif
if sutun=0 then sutun=1
if sutun>3 then sutun=1
Print At satir,sutun, DEC1 tus
sutun=sutun+1
if sutun=1 then sayi1=tus
if sutun=2 then sayi2=tus
if sutun=3 then sayi3=tus
delayms 150
return
'goster2:
'tus="x"
'print at 1,1,"* veya # basildi"
'delayms 500 : print $fe,1 'bekle ekranı temizle
'sutun=0
'return
sil:
tus="x"
delayms 500 : print $fe,1 'bekle ekranı temizle
sutun=0
return
sonuc:
tus="x"
print $fe,1
print at 1,1,"sayi girildi"
print at 2,1, sayi1
print at 3,1, sayi2
'tsayi=sayi1+sayi2+sayi3
'if sayi1=6 then
'print at 1,1,"sayi girildi"
'endif
return
teşekkürler