تبليغاتX
آموزش میکروکنترلر avr - (avr(6

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

خوب امروز (البته الان شبه) می خواهیم در مورد پیکره بندی امکانات avr در محیط Bascom صحبت کنیم.ببینید دوستان هر مدل از سری میکروکنترلر های Avr دارای امکانات داخلی می باشند مانند :تایمرها-کانترها و منابع وقفه و مبدل آنالوگ به دیجیتال و ارتباطات سریال می باشند که هر کدام به جای خود توضیح داده می شوند.ما برای استفاده از این امکانات ابتدا باید آن ها را پیکره بندی کنیم یعنی با استفاده از زبان برنامه نویسی به میکرو کنترلر بفهمانیم که از کدام امکانات آن می خواهیم استفاده کنیم بعد از آن باید با دستورات مختلف این امکانات را مدیریت کنیم. در این پست به نحوه پیکره بندی و استفاده از تایمر-کانترها و همچنین پیکره بندی صفحه کلید ماتریسی(Keypad) و استفاده از آن می پردازیم.

پیکره بندی صفحه کلید های ماتریسی

برای پیکره بندی این صفحه کلید ها از دستور زیر استفاده می شود که در آن portx می تواند یکی از پورت های میکروکنترلر باشد که صفحه کلید به آن وصل می شود (این صفحه کلید ها همانطور که در شکل می بینید دارای 8 پایه برای اتصال به میکروکنترلر هستند) و مقدار Debounce بر حسب میلی ثانیه مدت زمانی است که میکرو در تشخیص کلید فشرده شده صبر می کند و دوباره وضعیت پایه را بررسی می کند و اگر تغییری نکرده بود آن را به منزله فشرده شدن کلید در نظر می گیرد و  این به دلیل آن است که کلید هایی که به طور مکانیکی فشرده می شوند مدت زمانی در حدود 20 میلی ثانیه لرزش بین مقدار 0 و 1 ایجاد می کنند که این مسئله میکرو را در تشخیص کلید فشرده شده گمراه می کند که استفاده از مقدار 20 بر  حسب  میلی ثانیه برای Debounce این مشکل را حل می کند و مقدار اختیاری Delay زمانی استفاده می شود که صفحه کلید به طور مداوم اسکن می شود و مدت زمانی است بین فشرده شدن دو کلید که مقدار 100 میلی ثانیه برای آن ایده آل است.

[ config KBD=portx, Debounce=x,[Delay=x

عکس مربوط به اتصال keypad به atmega32

پس از اینکه توسط دستور بالا صفحه کلید را پیکره بندی کردیم نوبت به آن رسیده که توسط دستور زیر عدد فشرده شده از صفحه کلید را در یک متغیر بریزیم این دستور تا زمانی که کلیدی فشرده نشده باشد عدد 16 را در متغیر مربوطه قرار می دهد و در زمان فشرده شدن کلید عدد متناسب با آن را از بین 0 تا 15 در متغیر قرار می هد.

( )var=GETKBD

می گم خودمونیم دوستان الان آخر شبه منم خیلی خوابم  می آید میشه بقیشو فردا بنویسم......
آره؟ خیلی ممنون پس تا فردا..

یا حق

نوشته شده توسط فرزان شجاعی در جمعه شانزدهم شهریور 1386 ساعت 23:30 | لینک ثابت |