ج) SRAM
این حافظه یه نوع حافظه موقت هستش.
با قطع منبع تغذیه ، محتوای این حافظه پاک میشه.
اگر در تعریف متغیری از eeprom و یا flash استفاده نشود ، اون متغیر در این حافظه ذخیره میشه. @Micro_Controllers
این حافظه یه نوع حافظه موقت هستش.
با قطع منبع تغذیه ، محتوای این حافظه پاک میشه.
اگر در تعریف متغیری از eeprom و یا flash استفاده نشود ، اون متغیر در این حافظه ذخیره میشه. @Micro_Controllers
۴) پورت های ورودی و خروجی (I/O Ports):
میکرو توسط این قسمت با دنیای بیرونی خود ارتباط برقرار میکند.(همون پایه های میکرو) @Micro_Controllers
میکرو توسط این قسمت با دنیای بیرونی خود ارتباط برقرار میکند.(همون پایه های میکرو) @Micro_Controllers
۵) تایمرها و شمارنده ها (Timers and Counter)
با یه مثال لپ کلوم رو میگیم ! :
تایمر در ساعت برای شمارش و محاسبه زمان به کار میره»>یعنی در هر ثانیه یه واحد زیاد میشه.
کانتر برای مثال برای شمارش تعداد ماشین های عبوری از خیابان استفاده میشود»> لذا به اذای عبور هر ماشین یه واحد زیاد میشه. @Micro_Controllers
با یه مثال لپ کلوم رو میگیم ! :
تایمر در ساعت برای شمارش و محاسبه زمان به کار میره»>یعنی در هر ثانیه یه واحد زیاد میشه.
کانتر برای مثال برای شمارش تعداد ماشین های عبوری از خیابان استفاده میشود»> لذا به اذای عبور هر ماشین یه واحد زیاد میشه. @Micro_Controllers
۶) کنترلر های وقفه
گاهی اوقات لازمه که برنامه جاری رو متوقف و قطع کنیم تا به وسیله تابع وقفه چیزی رو برسی کنیم یا کاری رو انجام بدیم. @Micro_Controllers
گاهی اوقات لازمه که برنامه جاری رو متوقف و قطع کنیم تا به وسیله تابع وقفه چیزی رو برسی کنیم یا کاری رو انجام بدیم. @Micro_Controllers
۷ و ۸) ADC & DAC
این هم دیگه معلومه ، نیاز به توضیح خاصی نداره ؛ تبدیل سیگنال های آنالوگ و دیجیتال به همدیگه. @Micro_Controllers
این هم دیگه معلومه ، نیاز به توضیح خاصی نداره ؛ تبدیل سیگنال های آنالوگ و دیجیتال به همدیگه. @Micro_Controllers
انواع میکروکنترلر از لحاظ شکل ظاهری:
پکیج DIP :
از جمله ویژگی های اون اینه که :
۱) نسبت به پکیج های مشابه استحکام بیشتری داره.
۲) لحیم کاری آسان
۳) قابلیت جدا کردن آسان و راحت در صورت استفاده از سوکت بر روی برد
۴) قابلیت برنامه ریزی آسان با استفاده از پروگرامر
عیب اصلیش هم اینه که فضای نسبتا زیادی رو روی برد اشغال میکنه ! @Micro_Controllers
پکیج DIP :
از جمله ویژگی های اون اینه که :
۱) نسبت به پکیج های مشابه استحکام بیشتری داره.
۲) لحیم کاری آسان
۳) قابلیت جدا کردن آسان و راحت در صورت استفاده از سوکت بر روی برد
۴) قابلیت برنامه ریزی آسان با استفاده از پروگرامر
عیب اصلیش هم اینه که فضای نسبتا زیادی رو روی برد اشغال میکنه ! @Micro_Controllers
انواع میکروکنترلر از لحاظ شکل ظاهری:
پکیج SMD :
سطحی کاملا مسطح دارند و ضخامتی میلی متری !
در این پکیج نیز تعداد پایه ها در طرفین مساوی بوده و الزاما هم از چهار طرف پایه ندارند !
ویژگی اصلی اون اینه که فضای بسیار کمی را در مقایسه با پکیج DIP اشغال میکند.(این که دیگه تابلو هستش)
عیوب اصلی هم عبارتند از :
۱) لحیم کاری دشوار
۲) حساسیت بسیار بالا به گرما در لحیم کاری
۳) جداسازی دشوار از روی برد
۴) عدم امکان برنامه ریزی مستقیم از طریق پروگرامر
توجه : البته لازم بذکره که این پکیج ها تنها مختص به میکروکنترلر AVR نمیشوند و اکثر قطعات نیز در پکیج های مختلف ساخته میشوند.
@Micro_Controllers
پکیج SMD :
سطحی کاملا مسطح دارند و ضخامتی میلی متری !
در این پکیج نیز تعداد پایه ها در طرفین مساوی بوده و الزاما هم از چهار طرف پایه ندارند !
ویژگی اصلی اون اینه که فضای بسیار کمی را در مقایسه با پکیج DIP اشغال میکند.(این که دیگه تابلو هستش)
عیوب اصلی هم عبارتند از :
۱) لحیم کاری دشوار
۲) حساسیت بسیار بالا به گرما در لحیم کاری
۳) جداسازی دشوار از روی برد
۴) عدم امکان برنامه ریزی مستقیم از طریق پروگرامر
توجه : البته لازم بذکره که این پکیج ها تنها مختص به میکروکنترلر AVR نمیشوند و اکثر قطعات نیز در پکیج های مختلف ساخته میشوند.
@Micro_Controllers
معرفی پایه های میکروکنترلر ATmega32:
پایه های GND به زمین متصل میشوند.
پایه VCC و AVCC به +۵ ولت متصل میشوند .
پایه های PA0-PA7 مربوط به پورت A
پایه های PB0-PB7 مربوط به پورت B
پایه های PC0-PC7 مربوط به پورت C
پایه های PD0-PD7 مربوط به پورت D
پایه های XTAL1 و XTAL2 هم جهت اتصال به کریستال میباشند.
پایه AREF هم جهت استفاده در مقایسه کننده آنالوگ کاربرد دارد.
اینو تو جلسه مبدل آنالوگ به دیجیتال در میکروکنترلرهای AVR توضیح میدم.
@Micro_Controllers
پایه های GND به زمین متصل میشوند.
پایه VCC و AVCC به +۵ ولت متصل میشوند .
پایه های PA0-PA7 مربوط به پورت A
پایه های PB0-PB7 مربوط به پورت B
پایه های PC0-PC7 مربوط به پورت C
پایه های PD0-PD7 مربوط به پورت D
پایه های XTAL1 و XTAL2 هم جهت اتصال به کریستال میباشند.
پایه AREF هم جهت استفاده در مقایسه کننده آنالوگ کاربرد دارد.
اینو تو جلسه مبدل آنالوگ به دیجیتال در میکروکنترلرهای AVR توضیح میدم.
@Micro_Controllers
رجیسترها:
از نون شب واجبتره-حتما خوب بخونیدش-البته اگه نفهمیدید ، تو قسمت پروژها خودتون یاد میگیرید...
۱) رجیستر DDRx
این رجیستر دارای ۸ بیت است که مقدار هر بیت تعیین کننده ورودی یا خروجی بودن همان بیت در پورت مورد نظر است.
اگر مقدار بیت مورد نظر ۰ باشد»»»پین ورودی تعریف میشود.(یعنی اطلاعات میگیره از خارج!!!)
اگر مقدار بیت مورد نظر ۱ باشد»»»پین خروجی تعریف میشود.(یعنی اطلاعات میده!!!)
برای DDRD داریم : 👇👇👇
@Micro_Controllers
از نون شب واجبتره-حتما خوب بخونیدش-البته اگه نفهمیدید ، تو قسمت پروژها خودتون یاد میگیرید...
۱) رجیستر DDRx
این رجیستر دارای ۸ بیت است که مقدار هر بیت تعیین کننده ورودی یا خروجی بودن همان بیت در پورت مورد نظر است.
اگر مقدار بیت مورد نظر ۰ باشد»»»پین ورودی تعریف میشود.(یعنی اطلاعات میگیره از خارج!!!)
اگر مقدار بیت مورد نظر ۱ باشد»»»پین خروجی تعریف میشود.(یعنی اطلاعات میده!!!)
برای DDRD داریم : 👇👇👇
@Micro_Controllers
رجیسترها:
همونطور که ملاحظه میکنید ۸ تا بیت داریم که از شماره های ۰-۷ شماره گذاری شده اند.ترتیب هم از راست به چپه !
برای مثال میخوایم پین سوم از پورت D رو بعنوان ورودی و پین ششم از همین پورت رو بعنوان خروجی تعریف کنیم.باید چه مقادیری رو به پین ها بدیم ؟!
پین سوم یعنی شماره ۲ یعنی DDRD.2 (توجه : شمارش پایه های هر پورت از ۰ شروع میشه)
پین ششم هم یعنی شماره ۵ یعنی DDRS.5
پس مقدار رجیستر DDRD=00100000 میباشد.
@Micro_Controllers
همونطور که ملاحظه میکنید ۸ تا بیت داریم که از شماره های ۰-۷ شماره گذاری شده اند.ترتیب هم از راست به چپه !
برای مثال میخوایم پین سوم از پورت D رو بعنوان ورودی و پین ششم از همین پورت رو بعنوان خروجی تعریف کنیم.باید چه مقادیری رو به پین ها بدیم ؟!
پین سوم یعنی شماره ۲ یعنی DDRD.2 (توجه : شمارش پایه های هر پورت از ۰ شروع میشه)
پین ششم هم یعنی شماره ۵ یعنی DDRS.5
پس مقدار رجیستر DDRD=00100000 میباشد.
@Micro_Controllers
رجیسترها:
۲) رجیستر PORTx
مقدار هریک از بیت های این رجیستر تعیین کننده High یا Low بودن پین متناظر است.
از این رجیستر تنها هنگام نوشتن در پورت استفاده میشود.
توضیح :
فرض کنید که در نظر داریم یه LED رو به یکی از پین های میکرو وصل کنیم و فرمان بدیم که اون LED روشن بشه !
میایم چیکار میکنیم ؟! خوب دقت کنید !
ما با DDRx میگیم که فلان پین (یا پایه یا بیت !!! ) رو یک کن (یعنی خروجی کن—یعنی این پایه باید اطلاعات بفرسته یعنی ….)
حالا باید بگیم که ولتاژ هم اعمال کن که این کار به کمک این ریجستر انجام میشه.
حالا اگه بیت متناظر همون پین رو در رجیستر PORTx برابر مقدار ۱ قرار بدیم،وضعیت اون بیت(پین) به حالت High میرود و ولتاژ به پین مورد نظر وارد میشود.
توجه : این رجیستر دارای ۸ بیت است که مقدار هر بیت تعیین کننده High یا Low بودن همان بیت در پورت مورد نظر است.
اگر مقدار بیت ۰ باشد»»»وضعیت LOW
اگر مقدار بیت ۱ باشد»»»وضعیت HIGH
برای PORTD داریم :👇👇👇
@Micro_Controllers
۲) رجیستر PORTx
مقدار هریک از بیت های این رجیستر تعیین کننده High یا Low بودن پین متناظر است.
از این رجیستر تنها هنگام نوشتن در پورت استفاده میشود.
توضیح :
فرض کنید که در نظر داریم یه LED رو به یکی از پین های میکرو وصل کنیم و فرمان بدیم که اون LED روشن بشه !
میایم چیکار میکنیم ؟! خوب دقت کنید !
ما با DDRx میگیم که فلان پین (یا پایه یا بیت !!! ) رو یک کن (یعنی خروجی کن—یعنی این پایه باید اطلاعات بفرسته یعنی ….)
حالا باید بگیم که ولتاژ هم اعمال کن که این کار به کمک این ریجستر انجام میشه.
حالا اگه بیت متناظر همون پین رو در رجیستر PORTx برابر مقدار ۱ قرار بدیم،وضعیت اون بیت(پین) به حالت High میرود و ولتاژ به پین مورد نظر وارد میشود.
توجه : این رجیستر دارای ۸ بیت است که مقدار هر بیت تعیین کننده High یا Low بودن همان بیت در پورت مورد نظر است.
اگر مقدار بیت ۰ باشد»»»وضعیت LOW
اگر مقدار بیت ۱ باشد»»»وضعیت HIGH
برای PORTD داریم :👇👇👇
@Micro_Controllers
رجیسترها:
۳) رجیستر PINx
این رجیستر تعیین کننده وضعیت فیزیکی بیت(پین) مورد نظر برای CPU است.
از این رجیستر تنها هنگام خواندن از پورت استفاده میشود.
اگر پین مورد نظر بعنوان ورودی در نظر گرفته شده باشد،بیت متناظر با آن در رجیسترPINx ،حاوی اطلاعات دریافتی از همان پین مورد نظر در میکرو است.
توضیح : همونطور که گفتم فقط هنگامی که میخوایم از پایه اطلاعات رو بخونیم یا به عبارتی پایه(پین) موردنظرمون رو ورودی تعریف کرده باشیم از این رجیستر استفاده میکنیم.
فرض کنید یه سنسور رو به یکی از پایه های میکرو وصل کرده ایم و این سنسور در شرایط مختلف مقدار ۰ یا ۱ را برمیگرداند.
حتما میدونید که چون سنسور داره اطلاعات رو به سمت میکرو میفرسته و میکرو هم باید اون اطلاعات رو دریافت کنه،در نتیجه پین مورد نظر باید در حالت ورودی تنظیم شده باشه !
اون موقع اگه خواستیم متوجه بشیم که الان سنسور مقدارش ۱ هست یا ۰ میایم و مقدار بیت متناظر در رجیستر PINx رو قرائت میکنیم.
پس :👇👇👇👇
@Micro_Controllers
۳) رجیستر PINx
این رجیستر تعیین کننده وضعیت فیزیکی بیت(پین) مورد نظر برای CPU است.
از این رجیستر تنها هنگام خواندن از پورت استفاده میشود.
اگر پین مورد نظر بعنوان ورودی در نظر گرفته شده باشد،بیت متناظر با آن در رجیسترPINx ،حاوی اطلاعات دریافتی از همان پین مورد نظر در میکرو است.
توضیح : همونطور که گفتم فقط هنگامی که میخوایم از پایه اطلاعات رو بخونیم یا به عبارتی پایه(پین) موردنظرمون رو ورودی تعریف کرده باشیم از این رجیستر استفاده میکنیم.
فرض کنید یه سنسور رو به یکی از پایه های میکرو وصل کرده ایم و این سنسور در شرایط مختلف مقدار ۰ یا ۱ را برمیگرداند.
حتما میدونید که چون سنسور داره اطلاعات رو به سمت میکرو میفرسته و میکرو هم باید اون اطلاعات رو دریافت کنه،در نتیجه پین مورد نظر باید در حالت ورودی تنظیم شده باشه !
اون موقع اگه خواستیم متوجه بشیم که الان سنسور مقدارش ۱ هست یا ۰ میایم و مقدار بیت متناظر در رجیستر PINx رو قرائت میکنیم.
پس :👇👇👇👇
@Micro_Controllers
رجیسترها:
این رجیستر👆👆👆 دارای ۸ بیت است که مقدار هر بیت تعیین کننده High یا Low بودن همان بیت در پورت مورد نظر است.
اگر مقدار بیت ۰ باشد»»»»وضعیت LOW
اگر مقدار بیت ۱ باشد»»»»وضعیت HIGH
@Micro_Controllers
این رجیستر👆👆👆 دارای ۸ بیت است که مقدار هر بیت تعیین کننده High یا Low بودن همان بیت در پورت مورد نظر است.
اگر مقدار بیت ۰ باشد»»»»وضعیت LOW
اگر مقدار بیت ۱ باشد»»»»وضعیت HIGH
@Micro_Controllers