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

جهت اتصال میکرو به کیبورد در محیط بسکام از نمونه برنامه و مداری که شرکت Atmel پیشنهاد کرده باید استفاده نمود و بسکام نیز بر اساس همین توصیه توابع کیبورد را عملی ساخته. در مدار پیشنهادی Atmel خواسته شده که پین Clock کیبورد را به یکی از پایه های وقفه های خارجی INT0 یا INT1 متصل نمود و پین Data را به یکی دیگر از پایه های ورودی میکرو متصل شود. البته در بسکام فقط مجاز به اتصال پین دیتا کیبورد به یکی از پینهای پورت D هستید و سپس توسط دستور Config پایه های مربوطه را در برنامه تعریف میکنید.
همانطور که میدانید زمانی که کلیدی از صفحه کلید فشار داده میشود کدی از سوی کیبورد ارسال میشود و این کد به اسکن کد معروف است و البته این کد هیچ ارتباطی با عمل کلید زده شده و یا کد اسکی کاراکتر تایپ شده ندارد. لذا باید ما توسط یک جدول کد دریافتی از سوی میکرو را به کد اسکی تبدیل کنیم و یا در مورد کلید های کنترلی، تابع کلید را تشخیص دهیم. به این نکته هم توجه داشته باشید که زمانی که کلیدی فشار داده میشود یک کد ارسال میشود و در زمان رها کردن هم کد دیگری ارسال میگردد که ۱۲۸ واحد از کد فشردن کلید بزرگتر است. مثلا اگر کد فشردن کلیدی ۳ باشد کد رها کردن آن ۱۳۱=۳+۱۲۸ خواهد بود.
از طرفی برخلاف تصور عامه فرقی بین کلید ها در هنگام نگه داشتن دکمه Shift و یا فعال کردن Caps Lock نیست و کامپیوتر و یا میکرو خود با توجه به کدهای ارسالی ، تعابیر مختلفی از یک کلید با توجه به کدهای ارسالی قبلی دارند.
اما در این برنامه برای راحتی هر چه بیشتر ما دستورات Input و  Print را که بصورت استاندارد برای کار بر روی پورت سریال استفاده میشوند را به LCD بعنوان خروجی و کیبورد به عنوان ورودی ارتباط داده ایم. برای اینکه بتوان چنین کاری انجام داد باید حتما روالی را که به صورت پیش فرض برای این دستورات اجرا میشود را تغییر داده و خودمان بنویسیم که من در این برنامه از همان روال پیشنهادی بسکام استفاده کردم که متن روال به زبان اسمبلی در انتهای برنامه آمده است.
از طرفی هم برای تعریف این روالها به کمپایلر بسکام حتما باید دستور serialinput = Kbdinput$ برای تعریف روال کیبورد بعنوان ورودی بکار برد. البته نام روال کاملا اختباری است. و همچنین برای اینکه خروجی این دستورات بر روی LCD باشد باید دستور serialinput2lcd$ را بکار برد.
بله با همین چند ترفند ساده بدون نیاز به برنامه نویسی پیچیده شما میتوانید کیبورد و LCD را به مدار خود اضافه کنید. ادامه برنامه از دستورات ساده ای تشکیل شده که من از توضیح آنها خودداری میکنم و به شما می سپارم.

برای دریافت فایل برنامه به همراه نقشه مدار از لینک زیر استفاده نمایید . . .

 



دانلود دانلود مستقيم
tag حجم فايل : 50 کیلوبایت
پسورد پسورد فايل : پسورد ندارد
منبع لینک منبع

الکترونيک دانلود

 

icon برچسب ها: , , , , , , , , , , , , , , , , , , , , ,


تاريخ: ۱۲ فروردین ۱۳۸۹ ۹ نظر