میکروکنترلرها – Telegram
میکروکنترلرها
4.94K subscribers
472 photos
39 videos
58 files
40 links
آموزش AVR , ARM , PIC

پیام به ادمین👈 @Ali_Kazemi87

تبلیغ در کانال👈 https://news.1rj.ru/str/mic_ads

فروشگاه👈 https://news.1rj.ru/str/iranshop99

وب سایت👈 www.ClockPulse.ir

ایمیل👈 iri.micro@gmail.com

❌️تبادل نداریم❌️
Download Telegram
۱) واحد پردازش مرکزی (CPU): بطور خلاصه وظیفه CPU ها Fetch کردن (خواندن یا گرفتن) و Execute میباشد.

تمامی اطلاعاتی که در میکروکنترلر ذخیره میشود به فرماندهی Clock توسط CPU خوانده شده و آنها را اجرا میکند. @Micro_Controllers
۲ و ۳) انواع حافظه در میکروکنترلر های:

الف) Flash

بعد از این که کد های برنامه خودمون رو نوشتیم و توسط کامپایلر ، آن را کامپایل کردیم و به زبان قابل فهم برای میکرو تبدیل کردیم
باید این کد ها که در فایل hex.* ذخیره شدن رو داخل میکرو قرار بدیم که این کد ها در این حافظه قرار میگیرند.

توجه : برای تعریف یه چیز (آرایه-رشته-کاراکتر و…) در این حافظه باید اول آن کلمه flash قرار بدیم. @Micro_Controllers
ب) EEPROM

این حافظه به عنوان حافظه پایدار(ماندگار) تلقی میشود و نوشتن در آن بصورت ارادی و اختیاری و پاک کردن آن توسط اشعه ماوراء بنفش امکان پذیر است.

اطلاعاتی که در جریان برنامه تولید میشوند ، در صورت نیاز به حفظ آنها میتوان آنها را بر روی حافظه EEPROM ذخیره کرد و با قطع منبع تغذیه اطلاعات حفظ خواهند شد.
(مثلا یه ساعت درست کردی که و میخوای وقتی ساعت رو خاموش روشن کردی دوباره همون ساعت رو نشون بده و شروع به کار کنه ، نه این که ساعت reset بشه و دوباره مجبور باشی زمان ساعتت رو تنظیم کنی.)

توجه : برای تعریف یه چیز (آرایه-رشته-کاراکتر و…) در این حافظه باید اول آن کلمه eeprom قرار بدیم. @Micro_Controllers
ج) SRAM

این حافظه یه نوع حافظه موقت هستش.

با قطع منبع تغذیه ، محتوای این حافظه پاک میشه.

اگر در تعریف متغیری از eeprom و یا flash استفاده نشود ، اون متغیر در این حافظه ذخیره میشه. @Micro_Controllers
۴) پورت های ورودی و خروجی (I/O Ports):

میکرو توسط این قسمت با دنیای بیرونی خود ارتباط برقرار میکند.(همون پایه های میکرو) @Micro_Controllers
۵) تایمرها و شمارنده ها (Timers and Counter)
با یه مثال لپ کلوم رو میگیم ! :
تایمر در ساعت برای شمارش و محاسبه زمان به کار میره»>یعنی در هر ثانیه یه واحد زیاد میشه.
کانتر برای مثال برای شمارش تعداد ماشین های عبوری از خیابان استفاده میشود»> لذا به اذای عبور هر ماشین یه واحد زیاد میشه. @Micro_Controllers
۶) کنترلر های وقفه

گاهی اوقات لازمه که برنامه جاری رو متوقف و قطع کنیم تا به وسیله تابع وقفه چیزی رو برسی کنیم یا کاری رو انجام بدیم. @Micro_Controllers
۷ و ۸) ADC & DAC

این هم دیگه معلومه ، نیاز به توضیح خاصی نداره ؛ تبدیل سیگنال های آنالوگ و دیجیتال به همدیگه. @Micro_Controllers
انواع میکروکنترلر از لحاظ شکل ظاهری:
پکیج DIP :
از جمله ویژگی های اون اینه که :
۱) نسبت به پکیج های مشابه استحکام بیشتری داره.
۲) لحیم کاری آسان
۳) قابلیت جدا کردن آسان و راحت در صورت استفاده از سوکت بر روی برد
۴) قابلیت برنامه ریزی آسان با استفاده از پروگرامر
عیب اصلیش هم اینه که فضای نسبتا زیادی رو روی برد اشغال میکنه ! @Micro_Controllers
انواع میکروکنترلر از لحاظ شکل ظاهری:
پکیج SMD :
سطحی کاملا مسطح دارند و ضخامتی میلی متری !
در این پکیج نیز تعداد پایه ها در طرفین مساوی بوده و الزاما هم از چهار طرف پایه ندارند !
ویژگی اصلی اون اینه که فضای بسیار کمی را در مقایسه با پکیج DIP اشغال میکند.(این که دیگه تابلو هستش)
عیوب اصلی هم عبارتند از :
۱) لحیم کاری دشوار
۲) حساسیت بسیار بالا به گرما در لحیم کاری
۳) جداسازی دشوار از روی برد
۴) عدم امکان برنامه ریزی مستقیم از طریق پروگرامر

توجه : البته لازم بذکره که این پکیج ها تنها مختص به میکروکنترلر AVR نمیشوند و اکثر قطعات نیز در پکیج های مختلف ساخته میشوند.
@Micro_Controllers
پکیج SMD : 👆👆👆👆👆

@Micro_Controllers
پکیج DIP : 👆👆👆👆👆

@Micro_Controllers
معرفی پایه های میکروکنترلر ATmega32:
پایه های 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
رجیسترها:
همونطور که ملاحظه میکنید ۸ تا بیت داریم که از شماره های ۰-۷ شماره گذاری شده اند.ترتیب هم از راست به چپه !
برای مثال میخوایم پین سوم از پورت D رو بعنوان ورودی و پین ششم از همین پورت رو بعنوان خروجی تعریف کنیم.باید چه مقادیری رو به پین ها بدیم ؟!
پین سوم یعنی شماره ۲ یعنی DDRD.2 (توجه : شمارش پایه های هر پورت از ۰ شروع میشه)
پین ششم هم یعنی شماره ۵ یعنی DDRS.5
پس مقدار رجیستر DDRD=00100000 میباشد.
@Micro_Controllers
رجیسترها:
۲) رجیستر PORTx
مقدار هریک از بیت های این رجیستر تعیین کننده High یا Low بودن پین متناظر است.
از این رجیستر تنها هنگام نوشتن در پورت استفاده میشود.
توضیح :
فرض کنید که در نظر داریم یه LED رو به یکی از پین های میکرو وصل کنیم و فرمان بدیم که اون LED روشن بشه !
میایم چیکار میکنیم ؟! خوب دقت کنید !
ما با DDRx میگیم که فلان پین (یا پایه یا بیت !!! ) رو یک کن (یعنی خروجی کن—یعنی این پایه باید اطلاعات بفرسته یعنی ….)
حالا باید بگیم که ولتاژ هم اعمال کن که این کار به کمک این ریجستر انجام میشه.
حالا اگه بیت متناظر همون پین رو در رجیستر PORTx برابر مقدار ۱ قرار بدیم،وضعیت اون بیت(پین) به حالت High میرود و ولتاژ به پین مورد نظر وارد میشود.
توجه : این رجیستر دارای ۸ بیت است که مقدار هر بیت تعیین کننده High یا Low بودن همان بیت در پورت مورد نظر است.
اگر مقدار بیت ۰ باشد»»»وضعیت LOW
اگر مقدار بیت ۱ باشد»»»وضعیت HIGH
برای PORTD داریم :👇👇👇
@Micro_Controllers