ايران ويج

نسخه‌ی کامل: سوال در مورد Getatkbd()
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستان.

عنوان تاپيك رو به فرم قديمي نزدم ، كه يه نگاه بندازيد Whistle
براي اتصال كيبرد به ميكرو (در قسمت تئوري كار ) مشكل دارم !
كتاب 1nafar رو خوندم ( قسمتي كه توضيح داده بود )
help بسكام هم خوندم ...
مشكل اينه كد هايي رو كه در lable اي كه بعد از end مي ياد رو ، ترتيبشون رو نمي تونم درك كنم !

يه سري جدول هاي تبديل hex به ascii هم ديدم ( عكس هاي پايين )
در محيط بسكام هم insert ascii داره كه ترتيبشون به هم مي خونه ...
اما اين ترتيبي كه در برنامه استفاده شده رو در ك نمي كنم ، مي شه يكي توضيح بده ...
اين لينك زير هم مربوط به تاپيكي هست كه قبلا زده شده ...
باز ترتيبش تا حدودي فرق مي كنه ...

http://www.iranled.com/forum/thread-7752...l#pid48698

اين هم سايت جدول ها :

http://www.jimprice.com/jim-asc.shtml#controlcodes

اينم عكس هاش

کد:
[align=center][align=right][align=justify][align=right][align=left][align=center]My ASCII Chart

    0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
0  NUL SOH STX ETX EOT ENQ ACK BEL BS  HT  LF  VT  FF  CR  SO  SI
1  DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM  SUB ESC FS  GS  RS  US
2   SP  !   "   #   $   %   &   '   (   )   *   +   ,   -   .   /
3   0   1   2   3   4   5   6   7   8   9   :   ;   <   =   >   ?
4   @   A   B   C   D   E   F   G   H   I   J   K   L   M   N   O
5   P   Q   R   S   T   U   V   W   X   Y   Z   [   \   ]   ^   _
6   `   a   b   c   d   e   f   g   h   i   j   k   l   m   n   o
7   p   q   r   s   t   u   v   w   x   y   z   {   |   }   ~ DEL
[/align][/align][/align][/align][/align][/align]

حروف كوچك :
[تصویر:  ascii-dos.gif]

حروف بزرگ:
[تصویر:  ascii-win.gif]

اين هم مربوط به مثال help بسكام هست :

کد:
'This is the key translation table



Keydata:

'normal keys lower case

Data 0 , 0 , 0 , 0 , 0 , 200 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , &H5E , 0

Data 0 , 0 , 0 , 0 , 0 , 113 , 49 , 0 , 0 , 0 , 122 , 115 , 97 , 119 , 50 , 0

Data 0 , 99 , 120 , 100 , 101 , 52 , 51 , 0 , 0 , 32 , 118 , 102 , 116 , 114 , 53 , 0

Data 0 , 110 , 98 , 104 , 103 , 121 , 54 , 7 , 8 , 44 , 109 , 106 , 117 , 55 , 56 , 0

Data 0 , 44 , 107 , 105 , 111 , 48 , 57 , 0 , 0 , 46 , 45 , 108 , 48 , 112 , 43 , 0

Data 0 , 0 , 0 , 0 , 0 , 92 , 0 , 0 , 0 , 0 , 13 , 0 , 0 , 92 , 0 , 0

Data 0 , 60 , 0 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0

Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0



'shifted keys UPPER case

Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0

Data 0 , 0 , 0 , 0 , 0 , 81 , 33 , 0 , 0 , 0 , 90 , 83 , 65 , 87 , 34 , 0

Data 0 , 67 , 88 , 68 , 69 , 0 , 35 , 0 , 0 , 32 , 86 , 70 , 84 , 82 , 37 , 0

Data 0 , 78 , 66 , 72 , 71 , 89 , 38 , 0 , 0 , 76 , 77 , 74 , 85 , 47 , 40 , 0

Data 0 , 59 , 75 , 73 , 79 , 61 , 41 , 0 , 0 , 58 , 95 , 76 , 48 , 80 , 63 , 0

Data 0 , 0 , 0 , 0 , 0 , 96 , 0 , 0 , 0 , 0 , 13 , 94 , 0 , 42 , 0 , 0

Data 0 , 62 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0 , 0

Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0

آخرش كدوم درسته ...
در واقع خودم ترتيب رو مي خوام بدونم. ( اينجاهايي كه صفر گذاشته يعني از اون دكمه ها استفاده نكرده ... )

تعدادشون كلا 256 تاست ، ستون ها از 0 تا F و رديف ها هم از 0 تا F .

بعد يه مفهوم ديگه ي scan code هم هست ، ربطي داره به اين يا ... ؟!
خلاصه كلي از وقتم رو گرفت و آخرش هم به نتيجه اي نرسيدم ، ممنون مي شم كمكم كنيد ...


يا علي.
سلام
منم همين مشكل رو دارم ولي تا اونجايي كه خودم خبر دارم اساس كار اين هست كه ابتدا شماره كليد خارج ميشه بعد توسط شماره كليد به عبارت يا عدد متناظر كه توسط ما توي برچسپ نوشته شده رجوع ميشه .
من ميخواستم يه دماسنج با قابليت تنظيم شدن دما با دماي دلخواه بسازم. ابتدا دما با صفحه كليد وارد ميشد بعد تا رسيدن به دماي مورد نظر بخاري يا كولر كنترل ميشد.
مدار با8051 و برنامه توسط اسمبلي پياده ميشد.
من براي نشون دادن اعداد روي سگمنت بايد يك برچسپ تعريف ميكردم و اعداد متناظر رو از اون استخراج ميكردم. به اين صورت بود كه عدد متناظر عدد صفر ، اولين عدد برچسپ بود عدد متناظر عدد 1 در جايگاه دوم و الي اخر .... با فشرده شدن هر عدد اول شماره كليد وارد يك متغيير ميشد بع با دستور بعدي به برچسپ رجوع ميشد و عدد متناظر كه در جايگاه خودش قرار داشت خارج ميكرد و در نهايت بر روي سگمنت نمايش داده ميشد. به هر حال جاي اين اعداد متناظر با توجه به اينكه صفحه كليد 4*4 ما چجور پيكربندي ميشد(من سطر ها را به پايه هاي P0 تاP3 و ستونها را به P4 تا P7 وصل كردم كه عكس اين كار رو هم ميشه انجام داد) فرق مي كرد .
خوب من فكر ميكنم كه توي كيبرد هم همينجوري باشه او لبايد به مهيت سخت افزاري كيبرد پي برديم تا راهتر بتونيم با اون كار كنيم . در ضمن به نظر من بايد بدونيم كه هر كليد در صفحه ماتريسي خودش كليد شماره چندم حساب ميشه. يه نگاه به صفحه 380 كتاب كاهه و اعداد موجود در برچسپ بنداز. متوجه ميشي.
سلام. ممنون.

دقيقا منم مي خوام بدونم كه هر كليد ، در اون برچسبي كه تعريف مي كنيم ، جاش كجاست ...
طبق اون جدول ها كه گذاشتم مشخصه ... ، اما اون ترتيبي رو كه تو help استفاده كرده متوجه نشدم .
داستان اينه كه خروجي كيبرد hex هست و ما براي اينكه بتونيم روي lLCD ببينيمش ، بايد اون رو تبديل به كد ASCII كنيم ...

متاسفانه كتاب كاهه رو ندارم ...
مي شه يه عكسي ،‌چيزي يكي لطف كنه بذاره ...
ممنون مي شم.

يا علي.
عكس زير رو نگاه كن كد هر كدوم از كليد ها با رنگ قرمز روش نوشته . با مطابقت كد روي هر كليد و محل قرار گرفتن اون در برچسپ يه چيزايي دستگيرت ميشه.
ممنون دوست من .

اين عكسي كه گذاشتيد ، مربوط به همون SCAN CODE ها مي شه ، كه استفادش براي نمونه اي هست كه از avr بخواهيم به عنوان كيبرد كامپيوتر استفاده كنيم ...
يعني برعكس حالتي كه مورد نظرم هست ( البته تقريبا )

جدولش هم در help هست كه كد هاي make و break اشون رو هم گذاشته ...
در پيوست گذاشتمش ...

در كل باز هم اين به ترتيب ها نمي خونه ... ( يه چيز ديگست )

دوستان اگر كسي مي دونه بگه ، ممنون مي شم...

يا علي.
سلام در حال حاضر كتاب كاهه رو كه خودم دارم، كتاب مرجع كامل AVR و ميكروكنترلر 8051 رو از كتاب خونه گرفتم دارم مبحث اتصال كيبرد رو توي سه زبون basic ،اسمبلي و C رو چك ميكنم(جالبه) به نتيجه رسيدم خبر ميدم. موفق باشي
ممنون دوست من ...
پس منتظريم ...

يا علي.
سلام
در مورد كد اسكي هر كدوم از كليدهاي كيبورد به صفحه زير برخوردم هر عدد يا كاركتر براي تبديل شدن هر عدد يا كاركتر اول اعداد اونو تفكيك كرده بعد با عدد 30 جمع ميكنيم توي لينك زير جدول كد اسكي هر كاركتر و عدد در صفحه كليد رو داده كه اعداد معادل دسيمال ،هگزادسيمال و اوكتال كد اسكي رو هم اورده.
http://fa.wikipedia.org/wiki/روشهاي_كدگذاري_در_رايانه
چيزي كه توي اين برچسپ ها ديده ميشه قسمت اول مجموعه كاركترها و اعداد كوچيك هست و قسمت دوم با گرفتن كليد shift كد اسكي كاركترهاي بزرگ قرار گرفته.
ولي هر چي جدول رو با كدهاي اسكي و كدهاي اسكن چك كردم چيزسي نفهميدمAngry چيدمانش گنگ يه جاهايي فكر ميكنم طبق كدهاي اسكن پيش رفته ولي يه جاي ديگه اينطوري نيست يا بعضي كاركترها يا اعداد رو تكرار كرده درضمن يه جاهايي توي جدول يه كدهاي نوشته كه اصلا شامل كد اسكي نميشه مثال كد 222 يا 223 كه تا اونجايي كه من ميدونم وتوي لينك بالا نوشته ما تا كد اسكي 127 بيشتر نداريم.
سلام.
مرسي كه دنبال كردي ...
لينكه خالي بود .
اسكن كد و كد هگز ، ترتيبشون با هم فرق مي كنه ، ام طبق چيزايي كه گفتم ما به همون ترتيب كدهاي هگز نياز داريم.
128 تاي اول مربوط به حروف كوچك و 128 تاي دوم مربوط به حروف بزگ هست ( همونطور كه گفتيد ) ، منتها چون از صفر شروع مي شه ، در مجموع 255 تا مي شه ...
كد هگز 222 و ... هم وجود داره ...
در همون صفحه اي در بسكام كه كد را به زبان بيسيك مي نويسيد ، كليك راست كنيد و insert ascii رو بزنيد ،‌ اون ستون رو هم چك كنيد ...

فكر كنم بايد عملي تست كنيم با آزمون و خطا تا يه حدوديش رو بدست بياريم ، چون واقعا كد ها به هم نمي خورا !!

باز اگر كسي مي دونه دريغ نكنه ...

ممنون.
يا علي.