دسته‌بندی نشده

آموزش BASCOM AVR – بسکام – جلسه چهارم

 

📘 آموزش BASCOM AVR – بسکام – جلسه چهارم

 

کار با کی‌پد ماتریسی (Keypad)


۱. مقدمه

در جلسات قبل یاد گرفتیم چطور LED را کنترل کنیم و متن روی LCD نمایش دهیم. حالا نیاز داریم از کاربر ورودی‌های پیچیده‌تر بگیریم؛ مثلاً عدد یا رمز عبور. ساده‌ترین راه استفاده از کی‌پد ماتریسی است. این قطعه در پروژه‌هایی مثل ماشین حساب، قفل رمز دیجیتال و منوهای کنترلی استفاده می‌شود.


۲. معرفی کی‌پد ماتریسی

  • کی‌پد ماتریسی مجموعه‌ای از کلیدهاست که به صورت ردیف و ستون مرتب شده‌اند.
  • رایج‌ترین مدل: ۴×۴ (۱۶ کلید).
  • هر کلید در محل تقاطع یک ردیف و یک ستون قرار دارد.
  • به جای اتصال جداگانه هر کلید، فقط ۸ پایه (۴ ردیف + ۴ ستون) داریم.

۳. نحوه اتصال به میکرو

  • ۴ پایه ردیف به پورت مثلاً PortC.0 تا PortC.3
  • ۴ پایه ستون به پورت مثلاً PortC.4 تا PortC.7
  • هنگام اسکن، ردیف‌ها یکی‌یکی فعال می‌شوند و ستون‌ها خوانده می‌شوند.

۴. روش اسکن کی‌پد

  1. یک ردیف را فعال کنید (مثلاً صفر منطقی بدهید).
  2. ستون‌ها را بخوانید. اگر یکی از ستون‌ها صفر شد، یعنی کلید مربوطه فشرده شده است.
  3. همین کار را برای همه ردیف‌ها تکرار کنید.
  4. ترکیب ردیف و ستون مشخص می‌کند کدام کلید فشار داده شده است.

۵. کدنویسی در BASCOM

کد ساده:

' پروژه خواندن کلید از کی‌پد 4x4
$regfile = "m32def.dat"
$crystal = 1000000

Config Kbd = PortC

Do
   K = Getkbd()          ' خواندن کلید
   If K <> 0 Then
      Lcd K              ' نمایش کلید روی LCD
   End If
Loop
End

۶. توضیح خط‌به‌خط کد

  • Config Kbd = PortC → معرفی پورت C برای اتصال کی‌پد.
  • Getkbd() → تابع آماده در BASCOM برای خواندن کلید.
  • اگر کلیدی فشرده شود، مقدار آن در متغیر K ذخیره می‌شود.
  • سپس مقدار K روی LCD نمایش داده می‌شود.

۷. پروژه عملی: ماشین حساب ساده

کد:

Dim A As Byte , B As Byte , Result As Byte
Dim K As Byte

Do
   K = Getkbd()
   If K <> 0 Then
      If K >= 48 And K <= 57 Then   ' اگر عدد بود
         A = K - 48
         Lcd A
      End If

      If K = 43 Then                ' اگر کلید + بود
         B = Getkbd()
         Result = A + (B - 48)
         Lcd "Result=" ; Result
      End If
   End If
Loop
End

توضیح: این برنامه دو عدد را می‌گیرد و جمع آن‌ها را نمایش می‌دهد.


۸. نکات عملی

  • اگر کلیدها درست کار نکردند، ترتیب اتصال ردیف‌ها و ستون‌ها را بررسی کنید.
  • برای جلوگیری از نویز، می‌توانید دیبانس نرم‌افزاری اضافه کنید (مثل جلسه قبل).
  • می‌توانید کلیدها را به کاراکترهای خاص (مثل * یا #) نگاشت کنید.

۹. تمرین‌ها

  1. برنامه‌ای بنویسید که با فشار کلید خاص، LED روشن یا خاموش شود.
  2. یک رمز عبور ۴ رقمی تعریف کنید و با فشار کلیدها بررسی کنید درست وارد شده یا نه.
  3. یک منو طراحی کنید که با کلیدهای کی‌پد بین گزینه‌ها جابه‌جا شود.

نتیجه جلسه چهارم

در این جلسه یاد گرفتیم:

  • کی‌پد ماتریسی چیست و چگونه کار می‌کند.
  • روش اسکن ردیف و ستون‌ها.
  • استفاده از تابع آماده Getkbd() در BASCOM.
  • پروژه عملی ماشین حساب ساده.

🔹 جلسه پنجم: کار با LCD گرافیکی و نمایش متن و اشکال هندسی.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *