پیکربندی کیپد
کیپد (KeyPad) دارای کلیدهایی بوده که اکثرا در بازار 16 کلید هستند. این کلید ها به صورت ماتریسی به یکدیگر در ارتباط هستند.
در شکل بالا دو نوع کیپد (KeyPad) معمولی و کی پد (KeyPad) موبایل را مشاهده می کنید. همانطور که مشاهده می کنید کیپدها دارای دو نوع ردیف خروجی هستند که در آن خروجی هایی که با حروف a b c d نمایش داده شده اند. نمایانگر سطر و خروجی هایی که با اعداد مشخص شده اند نمایانگر ستون های کلیدی کیپد (KeyPad) هستند. برای مثال a1 نمایانگر کلید 1 در کیپد (KeyPad) موبایل و کلید 7 در کی پد (KeyPad) معمولی می باشد.
دستورات پیکر بندی کیپد در زبان بیسیک BASIC
1 |
Config kbd = port x [ debounce = var ] [ delay = t ] |
توسط این دستور پورت متصل شده به کیپد و میزان زمان سرکشی میکرو به کیپد و حتی عمل نویز گری در زمان خواند توسط یک تاخیر تنظیم می شود.
Var = میزان زمان سرکشی بر حسب میلی ثانیه
T : میزان تاخیر در زمان خوانده شدن کلید فشرده شده برای جلوگیری از پارازیت احتمالی بر حسب میلی ثانیه ( اختیاری )
نکته : هر دو گزینه بالا در صورت نوشته نشدن مقدار 20ms را دارا می باشند.
نکته : برای اتصال کیپد باید حتما به صورت شکل بالا عمود نمود و اولین سطر به پایه 0 پورت مربوطه متصل و اولین ستون به پایه 7 پورت مربوطه متصل شود.
نکته : این دستور برای کیپدهای 4*4 می باشد و در صورت استفاده از کیپدی با کلیدهای بیشتر برای مثال افزایش سطر را برای میکرو معرفی کنیم و به پایه های پورتی دیگر متصل کنیم. برای معرفی سطر از row استفاده می شود.
دستور پیکر بندی کیپد با سطر بیشتر در زبان بیسیک BASIC
1 |
Config kbd = portx , debounce = var , rows = n , row6 = pinx.y, _ row7 = pinx1, y1 ,…….. |
N : مشخص کننده تعداد سطر اضافه شده
مثال :
1 2 3 |
Config kbd = portc , debounce = 40 , rows = 6 , row6 = pind.0,_ Row7 = pind.1 |
نکته : معمولا که در شکل بالا مشاهده می کنید. در حقیقت تعداد ستون ها افزایش داشته است و ولی باید ترفند معکوس کردن می توان آن را به افزایش تعداد سطرها نسبت داد.
خواندن کیپد در زبان بیسیک BASIC
1 |
Var = getkbd () |
با این دستور در برنامه نویسی، کیپد خوانده شده و عدد متناظر با کلید فشرده شده که به صورت شکل زیر است در متغیر var قرار می گیرد. در صورتی که کلیدی فشرده نشده باشد در متغیر var عدد بیشتر از عدد آخر کیپد قرار می گیرد. برای مثال کیپد سمت راست عدد 24 و سمت چپ عدد 16 را زمان فشرده نشدن کیپد در متغیر var قرار می گیرد.
مثال :
1 2 3 4 5 6 7 8 9 10 11 |
Config kbd = portc , debounce = 40 Dim a as byte Do A =getkbd () If a < 16 then Cls Lcd a end if Loop End |
سلام
یکم دقیق تر کد بزار افرد تازه کار هنوز نو پا هستند
یه end if رو یادت رفته
Config kbd = portc , debounce = 40
Dim a as byte
Do
A =getkbd ()
If a < 16 then
Cls
Lcd a
اینجا=end if
Loop
End
سلام دوست عزیز
ممنون از اطلاع شما مطلب اصلاح شد.
سلام خسته نباشین
مهندس من یک برنامه درب بازکن رمزی نوشتم در محیط بسکام مدار رو بستم
پروژه خیلی خوب کار میکنه فقط یک مشکلی که هست این هست که بعضی از مواقع کلید های کیپد رو که تند تند میزنیم مدار کار نمیکنه یعنی atmega استپ میشه و برای کار کردنش باید تغذیه رو قطع و وصل کرد
کیپد ۴×۴ هستش
ممنون از سایت خوبتون
ممنون میشم راهنماییم کنین