کار با پورت ها در میکروکنترلرهای ARM

کار با پورت ها

در این پست از مبحث آموزش برنامه نویسی و راه اندازی میکروکنترلرهای ARM به کار با پورت های میکروکنترلرهای ARM در برنامه نویسی می پردازیم. در تمامی میکروکنترلرها پایه ها یا ورودی هستند یا خروجی مثلا اگر بخواهیم به پایه x میکرو یک کلید یا… متصل کنیم (یک وضعیت منطقی را به میکرو وارد کنیم) باید آن را به عنوان ورودی تعریف نماییم یا اگر بخواهیم به پایه x یک led متصل کنیم (یک وضعیت منطقی را از میکرو خارج کنیم) پایه مورد نظر باید به عنوان خروجی تعریف شود.

کار با پورت ها در میکروکنترلرهای ARM

تعریف پایه به عنوان خروجی

دستور بالا پایه y از پورت X را به عنوان خروجی تعریف می کند.

شما می توانیدبه جای AT91C-PIO-Pxy از آدرس پایه با پایه های مورد نظر استفاده کنید.

در دستور بالا پایه های y از پورت x به عنوان خروجی تعریف می شوند (برای درک بهتر موضوع مثال را مشاهده کنید)

مثال : پایه 12 از پورت b و پایه های 16,11,10,9 از پورت a میکرو کنترلر AT91SAM7X256 را به عنوان خروجی تعریف کنید.

روش اول :

پورت B

پورت A

روش دوم :

پورت B: برای پیدا کردن آدرس به پایه هایی که قرار است خروجی شوند رقم 1 و به سایر پایه ها رقم صفر تعلق می گیرد:

پیدا کردن آدرس پایه های میکروکنترلر arm به روش باینری

در تصویر بالا هر led نشانگر یک پایه از میکرو می باشد، در صورتی که اولین led از سمت راست (d5) پایه b.0 باشد. سیزدهیمن led نشانگر پورت b.12 است (تنها 17 پایه اول پورت در اینجا رسم شده است)

به led های روشن (پایه های که قرار است به عنوان خروجی تعریف شوند) رقم 1 و به led های خاموش (پایه های عادی) رقم صفر تعلق می گیرد. عدد به دست آمده آدرس پایه های مورد نظر در مبنای باینری است با بردن این عدد در مبنای هگز, آدرس پورت به دست می آید (در نرم افزار keil , آدرس ها باید در مبنای هگز باشند)

0x نمیانگر مبنای هگز می باشد, 0x1000 یعنی 1000 در مبنای هگز.

پورت A : برای پورت A نیز مراحل بالا را تکرار می کنیم:

پیدا کردن آدرس پایه های میکروکنترلر arm به روش باینری

با تبدیل عدد 10000111000000000 (در مبنای باینری) به مبنای هگز آدرس مورد نیاز keil برای پیکر بندی پایه های مورد نظر خروجی به دست می آید:

نکته : برای تبدیل مبناها (از باینری به هگز یا بر عکس) می توانید از ماشین حساب ویندوز استفاده کنید!

در مثال های بالا به کشیدن 17 پایه اول از هر پورت اکتفا کرده ایم، در مثال ها بر روی پایه های 17 تا 31 عملیاتی انجام نشده است بنابراین به آن ها رقم صفر تعلق می گیرد.

خاموش کردن پایه (Reset Pin)

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

شما می توانید به جای AT91C-PIO-Pxy از ادرس پایه یا پایه های مورد نظر استفاده کنید.

در دستور بالا پایه های y از پورت x صفر می شوند (برای درک بهتر موضوع مثال را مشاهده کنید).

روشن کردن پایه (Set Pin)

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

شما می توانید به جای AT91C-PIO-Pxy از ادرس پایه یا پایه های مورد نظر استفاده کنید.

در دستور بالا پایه های y از پورت x یک می شوند (برای درک بهتر موضوع مثال را مشاهده کنید).

مثال : برنامه ای بنویسید که پایه های B.15 , B.17 , B.18 , A.16 , A.11 را یک و پایه های B.1 , B.2 , B.9 , A.5 , A.6 را صفر کند (میکرو کنترلر AT91SAM7X256).

طبق آموزش های قبلی اقدام به نوشتن برنامه می کنیم:

اولین خطوط مربوط به فراخوانی هدرها (معرفی میکرو) می باشد:

در ادامه باید یک حلقه ایجاد کنیم (تمامی برنامه در زبان c به یک حلقه اصلی نیاز دارند):

اکنون باید پایه های مورد نظر را به عنوان خروجی پیکر بندی کنیم:

روشن کردن پایه های مورد نظر:

خاموش کردن پایه های مورد نظر:

پایان حلقه

توضیح تکمیلی

شما می توانید مقدار یک متغیر را در پورت بریزید :

در برنامه بالا مقدار 1024 (در مبنای دسیمال) در متغیر a قرار گرفته است، با دستور

عدد 1024 به هگز تبدیل شده و در پورت a ریخته می شود. با این عمل 10 پایه اول پورت a روشن خواهد شد.

پیکر بندی پایه به عنوان ورودی

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

شما می توانید به جای AT91C-PIO-Pxy از آدرس پایه یا پایه های مورد نظر استفاده کنید.

در دستور بالا پایه های y از پورت x به عنوان ورودی تعریف می شوند (برای درک بهتر موضوع مثال را مشاهده کنید)

مثال : پایه های B4 تا B7 و A5 و A0 را به عنوان ورودی پیکر بندی کنید:

روش اول :

روش دوم:

در روش دوم باید همانند پیکربندی به عنوان خروجی آدرس پایه های مورد نظر را به دست آورید (مانند مرحله قبل به پایه های ورودی رقم 1 و به سایر پایه ها رقم صفر تعلق می گیرد).

 اطلاعات پروژه

 رمز فایل : www.electronics98.com (این مطلب فاقد فایل جهت دانلود است)

 نویسنده : فرهاد اکبری

 تاریخ انتشار : 31 ژانویه 2015

2 دیدگاه

  1.  آقا دمت گرم شما که زحمت رو میکشید حداقل یه کلیپ درست کنید و همین ها رو عملی با نرم افزار انجام دهید فکر کنم بهتر باشه با تشکر

  2. خیلی ممنون.امیدوارم این اموزش ها همینطور ادامه داشته باشد

 شرایط و قوانین ثبت دیدگاه

 فارسی بنویسید و از کیبورد فارسی استفاده کنید.

 لطفاً بیش‌از‌حدِ معمول، شکلک یا ایموجی استفاده نکنید و از کشیدن حروف یا کلمات با صفحه‌کلید بپرهیزید.

 به کاربران و سایر اشخاص احترام بگذارید. پیام‌هایی که شامل محتوای توهین‌آمیز و کلمات نامناسب باشند، حذف می‌شوند.

 از ارسال لینک‌های سایت‌های دیگر و ارایه‌ی اطلاعات شخصی خودتان مثل شماره تماس، ایمیل و آی‌دی شبکه‌های اجتماعی پرهیز کنید.