میکروکنترلر atmega8

saalek110

Well-Known Member

میکروکنترلر ATmega8​

این یک میکروکنترلر مبتنی بر فناوری CMOS 8 بیتی است و از خانواده میکروکنترلر AVR است که در سال 1996 توسعه یافته است. این معماری بر اساس معماری RISC (Reduced Instruction Set Computer) ساخته شده است. مزیت اصلی آنها این است که این هیچ ثبت کننده جمع کننده ای ندارد و نتیجه هر عملیاتی را می توان در داخل هر ثبات ذخیره کرد ، که توسط یک دستورالعمل تعریف شده است.



معماری ATmega8:​

در نظر بگیرید نمودار بلوک نمایش پیکربندی معماری داخلی میکروکنترلر ATmega8 به شرح زیر است:

میکروکنترلر ATmega8


حافظه:​

میکروکنترلر ATmega8 شامل 1 کیلوبایت SRAM ، 8 کیلوبایت حافظه فلش و 512 بایت EEPROM است.

حافظه فلش 8KB به دو قسمت تقسیم می شود: -

  • قسمت فوقانی به عنوان بخش فلش برنامه استفاده می شود
  • قسمت پایین به عنوان بخش فلاش بوت استفاده می شود
در میکروکنترلر ATmega8 تمام ثبت ها مستقیماً با واحد منطق حساب (ALU) متصل می شوند. حافظه EEPROM برای ذخیره داده های تعریف شده توسط کاربر استفاده می شود.


پورت های ورودی / خروجی:​

میکروکنترلر ATmega8 از 3 پورت ورودی / خروجی تشکیل شده است که به عنوان B ، C و D با ترکیبی از 23 خط ورودی / خروجی نامگذاری شده اند. بندر D شامل 8 خط ورودی / خروجی ، بندر C شامل 7 خط ورودی / خروجی و بندر B شامل 8 خط ورودی / خروجی است.

ثبت های مربوط به درگاه ورودی / خروجی X (B ، C یا D) عبارتند از:

  • DDRX: ثبت جهت داده از پورت X
  • PORTX: ثبت داده بندر X
  • PINX: ثبت ورودی Port X

 

saalek110

Well-Known Member

نمودار پین ATmega8​

نمودار پین ATmega8 1


یکی از مهمترین ویژگیهای میکروکنترلر ATmega8 این است که به غیر از 5 پایه ، از سایر پین ها می توان برای پشتیبانی از دو سیگنال استفاده کرد.

  • پایه های 9،10،14،15،16،17،18،19 برای بندر B استفاده می شود ، در حالی که پایه های 23،24،25،26،27،28 و 1 برای بندر C و پایه های 2،3،4 ، 5،6،11،12 برای بندر D استفاده می شود.
  • پین 1 به عنوان پین تنظیم مجدد استفاده می شود و با استفاده از سیگنال سطح پایین برای مدت زمان طولانی تر از حداقل طول پالس ، سیگنال تنظیم مجدد ایجاد می شود.
  • پین های 3 و 2 همچنین می توانند در ارتباطات سریال USART (فرستنده همگام و گیرنده همگام جهانی) استفاده شوند.
  • پین 5 و 4 به عنوان وقفه های خارجی استفاده می شود.
  • پایه های 10 و 9 به عنوان نوسانگر شمارنده تایمر و همچنین نوسان ساز خارجی در جایی که کریستال مستقیماً بین پایه ها متصل است ، استفاده می شود.
  • پین 19 به عنوان ورودی ساعت برده یا خروجی ساعت اصلی برای کانال Serial Peripheral Interface (SPI) استفاده می شود.
  • پایه 18 به عنوان خروجی ساعت اسلاو یا ورودی ساعت اصلی استفاده می شود
  • پین های 23 تا 28 برای کانال های تبدیل آنالوگ به دیجیتال (ADC) استفاده می شوند.
  • پایه 12 و 13 به عنوان ورودی Analog Comparator استفاده می شود.
  • پایه های 6 و 11 به عنوان منابع شمارنده / تایمر استفاده می شوند.
از همان سایت.
 

saalek110

Well-Known Member

حالت های خواب میکروکنترلر ATmega8:​

میکروکنترلر به صورت زیر در 5 حالت خواب کار می کند:

  • حالت صرفه جویی در مصرف برق: هنگامی که شمارنده / تایمر به صورت غیرهمزمان کلاک می شود ، استفاده می شود. به طور کلی این حالت برای صرفه جویی در نیاز به توان عملیاتی میکروکنترلر استفاده می شود.
  • حالت Idle: عملکرد CPU را متوقف می کند ، اما اجازه می دهد تا ADC ، TWI ، SPI و سیستم وقفه و Watchdog را قطع کند. این با تنظیم SM0 به SM2 بیت پرچم ثبت واحد میکروکنترلر در صفر حاصل می شود.
  • حالت خاموش کردن: در هنگام غیرفعال کردن نوسان ساز خارجی ، وقفه های خارجی ، رابط سریال 2 سیمه و دیده بان را امکان پذیر می کند. همه ساعتهای تولید شده را متوقف می کند.
  • حالت کاهش سر و صدا ADC: واحد پردازش مرکزی را متوقف می کند اما عملکرد ADC ، تایمر / شمارنده و وقفه های خارجی را امکان پذیر می کند.
  • حالت Stand By: در این حالت ، فقط اسیلاتور مجاز است که با کند کردن تمام عملکردهای دیگر میکروکنترلر ، کار کند.
 

saalek110

Well-Known Member

برنامه نویسی پورت AVR I / O

در خانواده میکروکنترلر AVR ، بسته به انتخاب میکروکنترلر خانوادگی ، پورتهای زیادی برای انجام عملیات ورودی / خروجی در دسترس است. برای تراشه ATmega32 40 پین 32 پین برای عملکرد I / O در دسترس است. چهار پورت PORTA ، PORTB ، PORTC و PORTD برای انجام عملیات مورد نظر برنامه ریزی شده اند.

نمودار پین میکروکنترلر ATmega32 در زیر نشان داده شده است:

برنامه نویسی پورت AVR I / O


تعداد درگاه ها در خانواده AVR بسته به تعداد پین های موجود در تراشه متفاوت است. 8 پین AVR فقط دارای پورت B است ، در حالی که نسخه 64 پین دارای پورت A به پورت F است و 100 پین AVR دارای پورت A به پورت L است.

جدولی که تعداد پورت ها را در برخی از اعضای خانواده AVR نشان می دهد در زیر نشان داده شده است:

برنامه نویسی پورت AVR I / O2


توجه: X نشان دهنده در دسترس بودن درگاه است.

40 پین AVR دارای چهار پورت برای استفاده از هر یک از درگاه ها به عنوان درگاه ورودی یا خروجی است ، باید مطابق آن برنامه ریزی شود. در میکروکنترلر AVR همه پورت ها 8 پین ندارند. به عنوان مثال: -در ATmega8 ، پورت C دارای 7 پایه است.

آدرس های ثبت نام برای درگاه های ATmega32 در زیر آورده شده است:

برنامه نویسی پورت AVR I / O3


هر پورت در میکروکنترلر AVR دارای سه ثبت کننده ورودی / خروجی مرتبط با آن است. آنها به عنوان PORTx ، DDRx و PINx تعیین می شوند. به عنوان مثال: - در مورد Port B ما PORTB ، DDRB و PINB داریم. در اینجا DDR مخفف Data Direction Registers و PIN مخفف پین ورودی Port است.

هر رجیستر ورودی / خروجی 8 بیت عرض دارد و هر پورت حداکثر 8 پین دارد ، بنابراین هر بیت رجیستر ورودی / خروجی روی یکی از پین ها تأثیر می گذارد.

برای دسترسی به رجیسترهای ورودی / خروجی مرتبط با پورت ها از رابطه مشترک بین رجیسترها و پین های میکروکنترلر AVR استفاده می شود.

رابطه بین ثبت ها و پین های AVR در زیر نشان داده شده است:

برنامه نویسی پورت AVR I / O4
 

جدیدترین ارسال ها

بالا