خواندن از پورت AVR

هر سیستم کامپیوتری ( در اینجا سیستم میکروکنترولری ) شامل ابزارهای جانبی برای ارتباط با انسانها به علاوه برنامه هایی برای پردازش داده هاست . بدون ابزارهای جانبی , سیستمهای کامپیوتری به ماشین های درونگرایی تبدیل میشوند که استفاده ای برای کاربران خود ندارند .

در موارد زیادی از کاربرد میکروکنترولر , در ابتدا یا در هنگام کار با سیستم نیاز است مقادیری به نام داده برای تعیین روند عملیات به سیستم داده شود . یک مثال از سیستم های میکروکنترولری همان اجاقهای ماکروفر یا حتی ماشینهای لباسشویی هستند که مود کارکرد یا مدت زمان کارکرد را کنترول میکنند .استفاده کنندگان از این فراورده ها اغلب از وجود میکروکنترولرها بی خبر هستند از دید آنها اجزای داخلی وجود دارند اما جزو جزئیات کم اهمیت طراحی به حساب می آیند .قسمتهای الکترونیکی این فراورده ها عموما شامل ارتباط میکروکنترولر با کلیدهای فشاری ,سوئیچ ها,وسایل هشدار دهنده و لامپهای روی یک تابلو میباشند .میکروکنترولر ها به طور مرموز و زیرکانه ای در اغلب وسایل مصرفی و صنعتی نفوذ کرده اند و خیلی آرام به انجام وظایف خود یعنی «کنترول در ارتباط با ذنیای واقعی» می پردازند . ابزارهای I/O یا «ابزارهای جانبی کامپیوتر» مسیری برای ارتباط بین سیستم کامپیوتری و دنیای واقعی فراهم میکنند .

ساده ترین نوع ورودی اتصال مستقیم یک سوئیچ یا کلید ON/OFF به یکی از پایه هایI/O است .

در این روش یک پایه کلید به AVR و پایه دیگر به Ground وصل میشود از آنجایی که در داخل خود AVR مقاومت Pullup وجود دارد کافیست رجیستر DDR را به صورت خروجی تنظیم کرد و رجیستر PORT را Pullup کرد به همین راحتی و بدون هیچ قطعه اضافی و یا مقاومت خارجی.

با کمی تغییر در برنامه Blinking کاری میکنیم با ON شدن کلیدی که به PORTB متصل است , بیت متناظر با آن در PORTD یک شود و LED را روشن کند .

//*****************************************
//* Input/Output *
//* https://tjs87.wordpress.com * 
//*****************************************
 #include <mega8.h>
 #include <delay.h>
 void main ( void )
 {
 //Declaring Variable
 char temp = 0x00;
 //Initialize PORTs Direction
 DDRB = 0x00; //PORTB as Input
 PORTB = 0xFF; //Pullup
 DDRD = 0xFF; //PORTD as Output
 while (1)
 {
 temp = ~PINB;
 delay_us(50); //Debouncing Delay
 PORTD = temp;
 }
 } 

البته این روش معایبی هم دارد مثلا تعداد خطوط I/O در mega8 بیشتر از 23تا نیست و اگر بخواهیم تعداد بیشتری کلید به mega8 وصل کنیم به مشکل بر خواهیم خورد .

پایان !

<<بعدی          قبلی>>

Advertisements

دربارهٔ DeltaCode

Somewhere near the sky Far away from people Far away from noise Somewhere near yourself

Posted on ژانویه 15, 2011, in AVR. Bookmark the permalink. ۱ دیدگاه.

  1. چقدر از میکرو این دفعه تعریف کردی!

پاسخی بگذارید

در پایین مشخصات خود را پر کنید یا برای ورود روی شمایل‌ها کلیک نمایید:

نشان‌وارهٔ وردپرس.کام

شما در حال بیان دیدگاه با حساب کاربری WordPress.com خود هستید. بیرون رفتن / تغییر دادن )

تصویر توییتر

شما در حال بیان دیدگاه با حساب کاربری Twitter خود هستید. بیرون رفتن / تغییر دادن )

عکس فیسبوک

شما در حال بیان دیدگاه با حساب کاربری Facebook خود هستید. بیرون رفتن / تغییر دادن )

عکس گوگل+

شما در حال بیان دیدگاه با حساب کاربری Google+ خود هستید. بیرون رفتن / تغییر دادن )

درحال اتصال به %s

%d وب‌نوشت‌نویس این را دوست دارند: