آموزش میکروکنترلر AVRمیکروکنترلر

اتصال صفحه کلید ۴*۴ به میکرو AVR – بسکام

با سلام خدمت شما دوستان عزیز و همراهان الکترولب
با توجه به سوالات شما دوستان از ما متوجه این موضوع شدیم که بسیاری از دوستان در مباحث مبتدی اشکالاتی دارند به همین خاطر توصیه من و اقای عزتی بر این هست که شما دوستان مباحث ساده ای مانند اتصال LCD کاراکتری و  صفحه کلید به میکرو راه اندازی بخش مبدل انالوگ به دیجیتال میکرو وخیلی از مباحث پایه رو که در الکترولب مورد بحث قرار میگیره رو به صورت جدی تری دنبال کنید. پس براین شدیم که دوستم آقای عزتی در قسمت برنامه نویسی به زبان C و من نیز در قسمت برنامه نویسی به زبان بسکام مباحث پایه رو به صورت ساده براتون بگیم پس شروع میکنیم.

برای دسترسی به  لیست کامل آموزش AVR به زبان C می توانید از صفحه زیر استفاده کنید:

آموزش AVR

با تکمیل شدن آموزش AVR با بسکام لیست کامل این آموزش ها نیز منتشر می شود.

اتصال صفحه کلید ۴*۴ به میکرو AVR :

ابتدا نحوه اتصال کیپد 4*4 به میکرو رو با هم یاد میگیریم برای شروع بهتره که یک کیپد تهیه کنید قیمتی در حدود 4تومن داره البته الان به این قیمت هست این کیپد از کلید های فشاری به نام پوش باتن به صورت ماتریسی به هم وصل شده اند تشکیل شده پس یه کیپد 4*4 از 16 تا دکمه تشکیل شده خب کیپدهای 3*3 و4*5 ویا بیشتر نیز وجود دارد در این آموزش ما از کیپد 4*4 استفاده میکنیم
4*4 یعنی 4 تا ستون و 4 تا سطر یعنی 8 تا سیم داریم که باید به میکرو وصل کنیم خوشبختانه میکرو کنترلر  AVR هشت بیتی هست پس یک پورت از میکرو رو این صفحه کلید استفاده میکنه که یک مسئله بزرگی هست البته با استفاده از قطعات جانبی میتوان تعداد سیم ها رو کاهش داد که هدف این اموزش این نیست
حالا میریم سراغ برنامه میکرو
طبق روال میکرو مورد نظر رو تعریف میکنیم و همچنین پشته های سخت افزاری و نرم افزاری متعادلی رو هم تعریف میکنم باود ریت رو هم 9600 در نظر میگیریم

$regfile = "M8def.dat"
$crystal = 8000000
$baud = 9600
$hwstack = 40
$swstack = 20
$framesize = 40

منظور از باود ریت نرخ ارسال داده به پورت سریال هست یعنی هر ثانیه 9600 بیت رو به پورت سریال ارسال میکنیم یاد آور شوم که در این اموزش برای نمایش اعدادخوانده شده از پورت سریال استفاده میکنیم در واقع توسط محیط ترمینال بسکام کد اسکی مربوط به هر کلید فشرده شده توسط شما .در این محیط نمایش داده میشود که عکس هایی از این محیط در آخر برای شما گذاشتم.
کد زیر نیز مربوط به تعریف وتعیین پورتی از میکروکه قرار است به کیپد وصل شود را نمایش میدهد:

 Config Kbd = Portb

البته این دستور ادامه نیز دارد که میتوان نوع کیپد را که6*4هست ویا … رو تعیین کرد که به طور پیش فرض 4*4 تعیین میشود اصل دستور به صورت زیر میباشد:

 Config kbd=portx , debounce=value,rows=6,row5=pinx.y,row6=pina.b

گفتیم که 8 پایه برای اتصال نیاز است اگر صفحه کلید 6*4 باشد دو پایه دیگر نیاز داریم که این دو پایه را با دستور بالا تعیین میکنیم که به کدام پایه های میکرو وصل شود
توسط دستور زیر 2 تا متغیر تعریف میکنیم که در یکی مقدار کد اسکی خوانده شده توسط میکرو از کیپد قرار میگیرد ودیگری برای مقایسه مقدار قبلی کد اسکی خوانده شده از کیپد که برای جلوگیری از فرستادن دوباره همان مقدار به پورت سریال

Dim A1 As Byte , A2 As Byte

دو دستور زیر نیز متنی را به پورت سریال میفرستد که میتوانید در عکس ها مشاهده کنید

Print "Keypad reader"
Print "press the key"

 اما کدهای اصلی برنامه اتصال صفحه کلید ۴*۴ به میکرو AVR :

توسط دستور زیر مقدار کد اسکی کیپد خوانده میشود و در متغیری که از جنس بایت میباشد قرار میگیرد اگر هیچ کلیدی فشرده نشده باشد مقدار 16 در متغییر قرار میگیرد در ضمن مقدار صفحه کلید 4*4 از 0 تا 15 میباشد اگر سطر وستون اشتباه وصل شود هیچ مشکلی پیش نمیاید فقط باید قبل از هر پروژه ای که میخواهید شروه کنید اول قلق گیری کنید و بدانید که کدام دکمه کدام کد اسکی را میفرستد.

 A2=getkbd()

اما کد نهایی که شامل حلقه بینهایت و بررسی اینکه اگر مقدار 16 ویا عددی تکراری باشد به پورت سریال نفرستد:

$regfile = "M8def.dat"
$crystal = 8000000
$baud = 9600
$hwstack = 40
$swstack = 20
$framesize = 40

Config Kbd = Portb

Dim A1 As Byte , A2 As Byte

Print "Keypad reader"
Print "press the key"
A2 = 0
A1 = 0
Do
Waitms 200
A2 = Getkbd()
If A2 <> A1 And A2 <> 16 Then
 Print A2
 A1 = A2
 End If
Loop
End                                                         'end program

 شماتیک مدار اتصال صفحه کلید ۴*۴ به میکرو AVR :

keypad electrolab

اما پورت سریال و محیط ترمینال:

ابتدا مدار را به پورت سریال وصل کنید اگر از مبدل USB به سریال استفاده میکنید مبدل را به پورت سریال وصل کنید در قسمت نوار ابزار ایکن زیر را انتخاب کنید و تنطیمات رو انجام بدبد

xc

پورتی را که مبدل به ان وصل است را انتخاب کنید و دکمه تایید را بزنید.

ffrw
سپس تغذیه ی مدار رو وصل کنید.
در این صورت دو سطر نوشته ظاهر میشود من با زدن دکمه هایی از کیپد اعداد در شکل به وجود اومده تصاویری از مدار را هم در زیر هست:

terminal

دانلود پروژه بسکام

دانلود

با ارزوی موفقیت برای شما : عباسزاده

 

Related Articles

3 Comments

  1. با عرض سلام خدمت دوست عزيز
    من برنامه بيسكام شمارو كامپايل كردم نشد
    خطا ميداد
    همه نوشته هاي مربوط به كيپد رو پاك كردم –فقط جمله هاي پرينت رو گذاشتم بمونه-نوشته روي ترمينال ظاهر شد اما هي تكرار ميشد
    ميشه راهنماييم كنين فقط يك بار نوشته بشه و تكرار نشه
    متشكرم

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

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

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.