آموزش جامع avr جلسه اول-کار با پورت ها

در این جلسه در مورد طریقه ورودی و خروجی کردن پایه ها در میکروکنترلر های AVR به همراه یک مثال پرداخته می شود. پورت ها مجموعه ای از پایه ها می باشند که تحت یک نام قرار می گیرند. به طور کلی برای یک مجموعه همیشه یک اسم قرار داده می شود و در مورد پایه های میکروکنترلر نیز به همین منوال می باشد.


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

آموزش جامع avr جلسه اول-کار با پورت ها

رجیستر DDRx (ورودی و خروجی کردن پایه ها)

با استفاده از این رجیستر ما می توانیم ورودی و خروجی کردن پایه های میکروکنترلر را مشخص کنیم. این رجیستر 8 بیتی بوده و هر بیت از این رجیستر به پایه متناظر اشاره می کند. با نوشتن مقدار صفر در بیت مورد نظر آن پایه به صورت ورودی تنظیم می شود و با نوشتن مقدار یک در بیت مورد نظر آن پایه به صورت خروجی تنظیم خواهدشد.در شکل زیر می توانید شماره بیت رجیستر را که به پایه مورد نظر خود اشاره دارد و همچنین نحوه مقدار دهی را ببینید.

 

آموزش جامع avr جلسه اول-کار با پورت ها

نکته: در صورتی که تعداد پایه های میکروکنترلر کمتر از 8 عدد باشد نیز همین منوال بالا برای آنها نیز صادق می باشد با این تفاوت که ما برای بیت مورد نظر رجیستر پایه ای نداریم.

 

 


 

رجیستر PORTX (صفر و یک کردن پایه خروجی)

با استفاده از این رجیستر ما می توانیم پایه ای که به صورت خروجی توسط رجیستر DDRX تعیین شده است را صفر و یا یک کنیم. در صورت یک کردن پایه خروجی دارای ولتاژ مثبت 5 ولت خواهد شد و در صورت صفر کردن پایه دارای ولتاژ منفی 5 ولت خواهد شد.این رجیستر نیز مانند رجیستر DDRX از 8 بیت تشکیل شده است و هر بیت به پایه متناظر با خودش اشاره دارد.

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

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

 در کد زیر ما به یک پورت با 4 روش مقدار داده ایم که همه آنها نیز یک نتیجه را دربر خواهند داشت.

 

رجیستر PINX (خواندن اطلاعات ورودی)

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

 

 

کانال تلگرام ایده نگر