پنج شنبه 26 تیر 1399 | Thursday 16 th of July 2020 صفحه اصلی گروه الکترونیکی کامپیوتر
تنظیمات رجیستر های I/O

هر یک از چهار پورت A,B,Cو Dقطعه ATMmega16دارای سه رجیستر PORT x, DDR x         وPIN xبوده که xحرف مربوط به پورت می باشد.به عنوان  مثال رجیستر های اولین پورت DDRA,PORTAو PINAبوده که وظایف هر یک در ذیل امده است:

رجیستر Data Direction:

این رجیستر همان طور که از نامش مشخص است رجیستر جهت داده پورت بوده و تعیین می کند که پورت ورودی است یا خروجی.بدین صورت که اگر روی هرکدام از بیت های این رجیستر یک نوشته شود پین متناظر ان خروجی بوده و در غیر این صورت ورودی می باشد.به عنوان مثال با اجرای عبارتDDRA=0b10111101 وضعیت پین های این رجیستر و پین های مربوطه به صورت زیر می باشد:

0

1

2

3

4

5

6

7

DDRA

1

0

1

1

1

1

0

1

نام بیت

خروجی

ورودی

خروجی

خروجی

خروجی

خروجی

ورودی

خروجی

جهت داده

رجیستر PORT x:

عملکرد این رجیستر بستگی به جهت داده پورت دارد.در صورتی که به عنوان  خروجی پیکربندی شده باشد.انچه روی پورت نوشته می شود سطح منطقی ان را تعیین می کند و در صورتی که ورودی باشد با یک کردن هر بیت مقاومت Pull_ Upداخلی مربوط به ان پین فعال می شود.به عنوان نمونه در ادامه مثال قبل در صورتی که عبارت PORTA=0b11010100اجرا شود وضعیت پورت به صورت جدول صفحه بعد خواهد بود:

0

1

2

3

4

5

6

7

شماره بیت

1

0

1

1

1

1

0

1

DDRA

0

0

1

0

1

0

1

1

PORTA

خروجی با سطح منطقی صفر

ورودی بدون مقاومت

Pull Up

خروجی با سطح منطقی یک

خروجی با سطح منطقی صفر

خروجی با سطح منطقی یک

خروجی با سطح منطقی صفر

ورودی با مقاومت

Pull Up

خروجی با سطح منطقی یک

جهت داده

رجیستر PIN x:

برای خواندن مقدار هر پین  باید محتویات این رجیستر خوانده شود.به عنوان مثال چنانچه PORTC را قبلا به صورت ورودی پیکربندی کرده باشیم  و مقدار رجیستر PINCبرابر  0b11010000باشد سطح منطقی اعمال شده به پین به صورت زیر می باشد:

0

1

2

3

4

5

6

7

PINC

0

0

0

0

1

0

1

1

نام بیت

صفر

صفر

صفر

صفر

یک

صفر

یک

یک

جهت داده

 
Compatability by:
آخرین به روز رسانی سایت: سه شنبه, 22 اسفند 1391 - 00:26