keypad devremde sorun

Başlatan yucelcem, 18 Ekim 2010, 18:46:35

yucelcem

arkadaşlar keypadden basılan tuşu 7 segmentte gösteren bir program yaptım, sorun şu, 1 dışındaki diğer tuşlar basıldıktan sonra ekranda kalıyor ama 1e basıp bıraktıktan sonra 6 ya dönüşüyor, bunu çözebilecek birisi varmı

[IMG]http://pic1.resimupload.com/r9/thumb_164358601.JPG[/img]



Program kodları ise şu şekilde;


trisd=%11100000
portd=0
trisb=0
portb=0
tus var byte
tus=0

ortasut var portd.6
ilksut var portd.5
sonsut var portd.7

ilksatir var portd.0
ikincisatir var portd.1
ucuncusatir var portd.2
dorduncusatir var portd.3
tustarama:

high ilksatir
if ilksut=1 then tus=1
if ortasut=1 then tus=2
if sonsut=1 then tus=3
low ilksatir
'----------------------------
high ikincisatir
if ilksut=1 then tus=4
if ortasut=1 then tus=5
if sonsut=1 then tus=6
low ikincisatir
'----------------------------
high ucuncusatir
if ilksut=1 then tus=7
if ortasut=1 then tus=8
if sonsut=1 then tus=9
low ucuncusatir
'----------------------------
high dorduncusatir
if ortasut=1 then tus=0
low dorduncusatir
'----------------------------
call cevir
portb=tus
goto tustarama


cevir:
lookup tus, [$3F,$06,$5B,$4F,$66,$6D,$7c,$07,$7F,$6F],tus
return
end

justice_for_all

tus degerlerini kaydetmeden once biraz bekleme koy oyle denermisin bide 10 ms kadar... herbirine koy ama ok Kolay gelsin...
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

yucelcem

10 ms koyarsam tarama aksamaz mı?
10 tane tuş tarıyor ve 100 ms kesinti olur döngüye dönmesi için

justice_for_all

arkadasim if ile tus atamadan once koyacaksin her zaman sadece bi tusa girince sadece 10 ms gecikir onuda farkedemezsin zaten ....

yani soyle  if ilksut=1 then (belke(10ms)) tus=4

Iyi calismalar

Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay