AT klavye okuma

Başlatan efe1409, 19 Nisan 2007, 18:40:01

efe1409

mhk hocamızın yazdığı klavye okuma programındaki  ilgili tuşların okuma bölümündeki Lookup komutunun açılımı içindeki kodlar ne anlama geliyor acaba

if harf=1 then                                                                              
'************************************************************************************************************ 
'*****************************1111111111222222222233333333334444444444555555555566666666667777777777888888888 
'*******************01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678 
LOOKUP rx_byte-21,["q1   zsaw2  cxde43   vftr5  nbhgy6   mju78   k o09   .l p*=  i  -       ,   <"],kodcozdeg 
'Türkçe ı karakteri 
'if rx_byte=$43 then kodcozdeg=4 
'lcdout $FE,$C0+satir ,kodcozdeg','" " 
endif 

if harf=2 then                                                                              
'************************************************************************************************************ 
'*****************************1111111111222222222233333333334444444444555555555566666666667777777777888888888 
'*******************01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678 
LOOKUP rx_byte-21,["Q!   ZSAW'  CXDE+^   VFTR%  NBHGY&   MJU/(   KIO=)   :L P?=  I  _       ;   >"],kodcozdeg 

endif 

if harf=3 then                                                                              
'************************************************************************************************************ 
'*****************************1111111111222222222233333333334444444444555555555566666666667777777777888888888 
'*******************01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678 
LOOKUP rx_byte-21,["Q1   ZSAW2  CXDE43   VFTR5  NBHGY6   MJU78   KIO09   .L P*=  I  -       ,   <"],kodcozdeg 
endif 

if harf=4 then                                                                              
'************************************************************************************************************ 
'*****************************1111111111222222222233333333334444444444555555555566666666667777777777888888888 
'*******************01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678 
LOOKUP rx_byte-21,["q!   zsaw'  cxde+^   vftr%  nbhgy&   mju/(   k o=)   :l p?=  i  _       ;   >"],kodcozdeg 
endif 


if harf=5 then                                                                              
'***************************************************** 
'******************************11111111112222222222333 
'********************012345678901234567890123456789012 
LOOKUP rx_byte-105,["1 47   0,2568   +3-*9"],kodcozdeg 
endif 
return 

'*************** LCD GÖSTERME **************************** 
lcdgoster: 
lcdout $FE,2,"Kod= ",hex2 rx_byte," Satir=",dec2 satir 
'pause 5000
lcdout $FE,$C0+satir ,kodcozdeg','" " 
pause 1000
return 
'*************** EKRAN TEMİZLEME ALT PROGRAMI ************ 
ekransil: 
lcdout $FE,1 
return 

End
Vatanın bağrına düşman dayamış hançerini, Yok mudur kurtaracak bahtı kara maderini (Anasını)                                                                       Namık Kemal

XX_CİHAN_XX

Basic ten anlıyan arkadaşlar yada mhk hocamız istediğin cevabı verirler ancak bu iş için yeni başlık açman anlamsız aynı konudan devam etmen daha doğru olur.Mod arkadaşlar gerekli düzenlemyi yaparsa daha iyi olur.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

efe1409

Sorum anlaşılmamış herhalde ben lookup komutunun içersindeki indeksleri kastetmiştim.
Vatanın bağrına düşman dayamış hançerini, Yok mudur kurtaracak bahtı kara maderini (Anasını)                                                                       Namık Kemal

mhk

kod tablosunda , klavyede bulunan tüm harf ve rakam kombinasyonu kullanılmıştır. Dikkat edilirse büyük küçük harf ve rakam değerleri. Shift tuşu +klavye tuş basımı o an oluşan harf değerinin küçük yada büyük yazılması yada diğer karakter basılmasını sağlar.
"Ya olduğun gibi görün, Ya da göründüğün gibi ol..." Mevlana

efe1409

@mhk hocam,
Kusura bakmayın sizi yakalamışken birkaçsoru sormak istiyorum.

1.Sorum
rx_byte-21 veya
rx_byte-105 bunlar ne anlama geliyor rica etsem biraz açabilirmisiniz.

2.Sorum
harf=1 veya 5'e kadar olan tanımlamaların bir özelliğimi var.

3.Sorum
Lookup indekslerinin 4'erli veya 5'erli gruplar halinde  toplanmış olması bir şartmıdır.
4.Sorum
Lookup indekslerinin arasında bir ayraç olması gerekiyormu.

Cevaplarınız için teşekkür ederim.
Vatanın bağrına düşman dayamış hançerini, Yok mudur kurtaracak bahtı kara maderini (Anasını)                                                                       Namık Kemal

mhk

http://www.electronic-engineering.ch/microchip/projects/keyboard/v1xx/keyboard_v1xx.html#introduction

Linkteki klavye kod tablosuna bakıldığında ;
1. rx_byte-21 veya rx_byte-105 , Örneğin büyük Q harfine basıldığında bu tuşun kodu Hex 15 tir. Hex 15 ondalık olarak 21 dir. rx_byte-21 , 21-21= 0 olur bu durumda lookup tablosundaki ilk veri olan Q seçilmiş olur. Diğerleride aynı şekilde.

2. Harf= 1 den 5'e kadar olan tanımlamalar için programda gerekli olan açıklama yapılmıştı şöyleki;
'**************************** HARF ÇÖZME ********************** 
Harfbul: 
' Klavyaden alınan tuş bilgilerini çözmek için 
' kullanılan kod karşılık tablosu. 
' Klavyeden çözülen kodların karşılıkları ilgili 
' tablodan alınarak LCD ekranda yazdırılır. 

' caps = 0, shift = 0 ise harf=1  küçük harf modu , nümerik tuşlar normal 
' caps = 0, shift = 1 ise harf=2  büyük harf modu , nümerik tuşlar ikinci karakterde 
' Caps = 1, shift = 0 ise harf=3  büyük harf modu , nümerik tuşlar normal 
' Caps = 1, shift = 1 ise harf=4  küçük harf modu , nümerik tuşlar ikinci karakterde 
' Harf = 5 ise keypad tuşlarındaki kodlar tablodan alınır.  


3. Lookup indeksleri 4'erli veya 5'erli olma durumu ise yine yukardaki linkteki klavye kodları arasındaki farklardan meydana gelmektedir. Örneğin; Q tuşu kodu 21 di, Z tuşu kodu (Hex 1A) ondalık 26 dır. Arada kullanılan bir tuş kodu yoksa bu kısımlar boş geçilir. Gruplar bu şekilde oluşmuştur.

4. Bu soruyu anlayamadım.
"Ya olduğun gibi görün, Ya da göründüğün gibi ol..." Mevlana