بنام خداوند بخشنده و مهربان
با سلام
قبل از هر چیز،انشالله مسئله که گفتید به وقتش بررسی خواهیم کرد .
اما وضعیت پورت ها در AVR
پورت ها
همانجور که به خاطر دارید،در مبحث
IO ها گفتیم،تعداد زیادی از پایه هایی میکروکنترولر مخصوص
IO (
یا همان دریافت یا انتقال اطلاعات) هستن. حال می خواهیم این مبحث را باز تر کنیم.
همانجور که در تصویر بالا (
میکروکنترولر Atmega32) میکروکنترولر مورد نظر ما از 40 پایه تشکیل شده،که مجموعا
32 پایه ان برای
IO در نظر گرفته شده است . اما برای اینکه کارما راحتر باشد،شرکت سازنده،هر پایه را به یک اسم مشخصی، معین کرده است.
همانجور که در تصویر می ببینید، هر
8 پایه ، با یک نام مشخص شده که معمولا اول ان
PORT بعد به دسته بندی های
PORT B و
PORT C و
PORT D و
PORT A تقسیم شده اند. که هر دسته بندی شامل 8 پایه می باشند. که این پایه ها در هر دسته بندی از 0 تا 7 نام گذاری میشوند.(
در تصویر بالا به صورت مخفف نوشته شده PD وPCوPAوPB که P اول مخفف PORTمی باشد)
دلیل اصلی این نام گذاری ها،برای راحتی کار در برنامه نویسی می باشد. بعنوان مثال. اگر خواستیم دیتایی را به کمک پایه 1 میکروکنترولر ارسال کنیم. بگویم PORTB 0 دیتا را بفرست!
دلیل دیگر نیز، می توانیم به کمک یک دیتایی 8 بیتی (یا همان 1 بایتی) ، با یک دستور،به 8 پایه بدون دردسر،دستور دهیم! اما دلیل دیگری نیز وجود دارد،که انشالله در اینده به ان می شوید.
پس به طور کلی دسته بندیی ها در میکروکنترولر مد نظر:
دسته PORTB
تشکل شده از 8 پایه با نام هایی
PORTB 0
PORTB 1
PORTB 2
PORTB 3
PORTB 4
PORTB 5
PORTB 6
PORTB 7
دسته PORTC
تشکل شده از 8 پایه با نام هایی
PORTC 0
PORTC 1
PORTC 2
PORTC 3
PORTC 4
PORTC 5
PORTC 6
PORTC 7
دسته PORTA
تشکل شده از 8 پایه با نام هایی
PORTA 0
PORTA 1
PORTA 2
PORTA 3
PORTA 4
PORTA 5
PORTA 6
PORTA 7
دسته PORTD
تشکل شده از 8 پایه با نام هایی
PORTD 0
PORTD 1
PORTD 2
PORTD 3
PORTD 4
PORTD 5
PORTD 6
PORTD 7
در باقی میکروکنتروهای avr نیز بسته به تعداد پایه ها دسته بندهی ها کمتر و یا بیشتر می شوند.
وضعیت پورت در AVR
اما نکته بسیار مهم دیگر، وضعیت پورت در
AVR می باشد. هر پایه
IO در میکروکنترولر
AVR می تواند
4 وضعیت مختلف را درک کند!
همانجور که قبلا گفتیم پین ها
AVR را باید به دو صورت تعریف کنیم،یا به صورت ورودی ، یا به صورت خروجی . حالا
در وضعیت ورودی می تواند دو وضعیت مختلف را درک کند و
در حالت خروجی می تواند دو وضعیت مختلف را درک کند.
که جمعا 4 وضعیت مختلف را می تواند درک کند.
که در تصویر بالا می ببینید. یک پین میکروکنترولر، دو حالت مختلف دارد،
1- به صورت ورودی که به ان PIN می گویند.
2- به صورت خروجی که به ان PORT می گویند.
که ما به کمک
DDR (که در تصویر بالا مشخص است ) وضعیت ورودی و خروجی بودن پین را مشخص می کنیم (
که انشالله در اینده،با اشنا خواهید شد و خیلی زیاد با ان کار خواهید داشت)
که در تصویر بالا می ببینید،وقتی میکروکنترولر در وضعیت ورودی قرار بگیرد.می تواند ورودی ها 0 و 1 ارسالی به خودش را متوجه بشود و ان را برای میکروکنترولر بفرستد. وقتی در وضعیت ورودی باشد، می توان پایه را در دو حالت مختلف قرار داد،تا اطلاعات بهتر و دقیق تر خوانده شود !
1- در وضعیت معمولی 2- در وضعیت امپدانس بالا. وضعیت اول هیچ چیزی به پین اعمال نمی شود
اما در وضعیت دوم ، امپدانس بالا، می روید. این یعنی اینکه،سطح منطقی ایسی نه 0 است و نه 5 ولت! (وضعیت که میکرو نمی تواند چیزی را تشخص دهد ) و این برای زمانی که می خواهیم کارها دقیق تر و بهتر انجام شود و یا جلوی نویزها گرفته شود بسیار خوب و کارکشاست. در وضعیت خروجی هم به مانند ورودی،می توان دو وضعیت مختلف را به وجود اورد. که مقاومت پول اپ (
آشنایی به مقاومت پول آپ ) فعال شود،و زمانی که مقاومت پول اپ خاموش باشد. بازهم این کار برای دقت در کارها و جلوگیری از نویز و ... بسیار خوب و راهگشا می باشد.
انشالله در زمان کار کردن با میکرو بهتر این مسائل را درک خواهید کرد . . پشتیبان عکس ها(
[External Link Removed for Guests] [External Link Removed for Guests] [External Link Removed for Guests] [External Link Removed for Guests] )