میکروکنترلرها – Telegram
میکروکنترلرها
4.95K 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
مبدل آنالوگ به دیجیتال
تصویر بالا کاملا گویاست ! 👆👆👆
در حالت گفته شده 0 ولت برابر عدد 0 دیجیتال و 5 ولت برابر عدد 1023 دیجیتال میباشد.
و هر ولتاژی بین 0 تا 5 ولت با همون نسبتی که گفتم خدمتتون به مقدار دیجیتالش تبدیل میشه.
برای مثال ولتاژ 2.5 ولت معادل دیجیتالش در این حالت برابر با عدد 512 میباشد.
کاملا مشخص است که هرچقدر این درجه دقت (n) بالاتر باشد،مقدار دیجیتال بدست آمده نیز به مقدار آنالوگ آن نزدیکتر است.
@Micro_Controllers
مبدل آنالوگ به دیجیتال
در مورد ولتاژ مرجع( Vref )
واحد ADC برای اینکه عملیات تبدیل رو انجام بده نیاز به یه ولتاژ مرجع داره تا ولتاژ وارد شده رو با اون مقایسه کنه.
در واقع اگر ولتاژ مرجع رو مثلا 3 ولت انتخاب کردیم،بازه 0 تا 3 ولت به 1024 قسمت تبدیل میشه و همون ماجرای بالا …
@Micro_Controllers
وقفه در AVR :
توجه مهم : وقفه به معنی تاخیر زمانی نیست.
بزارید با یه مثال توضیح بدم،
مثال : ما میخایم یه LED رو با یه کلید روشن و خاموش کنیم ؟
@Micro_Controllers
وقفه در AVR :
1) روش سرکشی (Polling)
ما تو تابع MAIN میایم و میگیم هر موقع که ما کلید رو زدیم فلان پایه ی میکرو فعال شد (یا همون 1منطقی شد) ، اون وقت جنابعالی (منظور میکروکنترلر هستش) هم فلان پایه میکرو رو فعال کن تا LED روشن بشه. حالا مشکل زمانی هستش که ما هنوز کلید رو نزدیم و جناب میکروکنترلر مجبوره که هی بره و ببینه که آیا فلان پایه فعال شده یا نه و هی میره و هی برمیگرده (بیچاره خسته نمیشه این همه راه رو میره !!! ) 😰😰😰
@Micro_Controllers
وقفه در AVR :
2) روش وقفه ( Interrupt )
تو این روش برخلاف روش قبلی به جای این که ما هی بریم و برگردیم تا بفهمیم که آیا فلان پایه فعال شده یا نه میاییم یه کاری میکنیم : یه موبایل برا دو طرف میخریم و هر موقع که اون پایه هه فعال شد زنگ میزنه به میکرو و میگه دادا بدو بیا که فعال شدم !!! لپ کلوم ای که تو این روش اگه پایه فعال شد خودش ما رو خبر میکنه و دیگه لازم نیس که هی بریم و هی برگردیم و هی بریم و هی … حالا چطور میاد ما رو خبر میکنه رو بعدا یا در ادامه میگم … 😜😜😜
@Micro_Controllers
وقفه در AVR :
-انواع وقفه:

1) وقفه داخلی
2) وقفه خارجی
@Micro_Controllers
وقفه در AVR :
1) وقفه داخلی : تقریبا تمام امکانات داخلی میکرو دارای وقفه بوده مانند تایمر–کانترها و پروتکل های ارتباطی و مقایسه کننده ها و مبدل آنالوگ به دیجیتال .
@Micro_Controllers
وقفه در AVR :
2) وقفه خارجی : در میکرو پایه هایی به نام INTx وجود دارد که زمانی تحریک شوند ، میکرو به زیر برنامه وقفه پرش می کند و کار تعیین شده را انجام می دهد.این وقفه ها می توانند با یک لبه بالا رونده یا پایین رونده و یا یک منطقی تحریک شوند.
@Micro_Controllers
وقفه در AVR :
نکته :👇👇👇
هنگامی که یک پایه به عنوان وقفه استفاده شود دیگر نمی توانیم از آن پایه به عنوان ورودی یا خروجی استفاده کنیم.
@Micro_Controllers
وقفه در AVR :
این یه میکرو کنترلر avr از نوع Atmega16 هستش که توش پایه های وقفه صفر- وقفه1 و وقفه 2 رو مشخص کردم. 👇👇👇
@Micro_Controllers
وقفه در AVR :
ریجستر ها در وقفه (بازم ریجستر های دوست داشتنی خودمون !!!)
1) ریجستر SREG
2) ریجستر GICR
3) ریجستر GIFR
4) ریجستر MCUCR
5) ریجستر MCUCSR
@Micro_Controllers
وقفه در AVR :
1) ریجستر SREG
بیت 7 ( I ) : با یک کردن این بیت ، وقفه سراسری یا کلی فعال میشود.(یعنی میتونیم از وقفه استفاده کنیم.)👇👇👇
@Micro_Controllers
وقفه در AVR :
2) ریجستر GICR
تو این ریجستر ما فقط با 3 بیت آخرش کار داریم (البته فعلا ! )
بیت 7 (INT1 ) : با یک کردن این بیت وقفه 1 فعال میشود. متناظر با پایه PORTD.3 میباشد.
بیت 6 (INT0 ) : با یک کردن این بیت وقفه 0 فعال میشود. متناظر با پایه PORTD.2 میباشد.
بیت 5 (INT2 ) : با یک کردن این بیت وقفه 2 فعال میشود. متناظر با پایه PORTB.2 میباشد.👇👇👇

@Micro_Controllers
وقفه در AVR :
3) ریجستر GIFR
لپ کلوم رو بگم و گیجتون نکنم :
اگه وقفه مورد نظر(وقفه صفر- یک یا دو) و وقفه سراسری فعال بود و در صورت تحریک شدن (فعال شدن/غیر فعال شدن ) این ریجستر با توجه به شرایط موجود تصمیم میگیره که دستور اجرای وقفه رو بده یا نده.
برای این که این قدرت تصمیم گیری رو به این ریجستر بدیم باید بیت های لازم و مورد نیازمون از این ریجستر رو یک کنیم.
مثلا اگه دارید از وقفه صفر استفاده میکنید باید بیت 6 رو یک کنید.
بیت 5 این ریجستر مربوط به وقفه 2 ، بیت 6 این ریجستر مربوط به وقفه 0 و بیت 7 این ریجستر مربوط به وقفه 1 است. 👇👇👇
@Micro_Controllers
وقفه در AVR :
4) ریجستر MCUCR
این ریجستر هم ریجستر مهمی هستش O_o
ما با نحوه مقدار دهی این ریجستر میتونیم نحوه فعال و غیر فعال شدن (نحوه تحریک شدن) وقفه رو تعیین کنیم.
مثلا طوری تعیین کنیم که اگه صفر منطقی شد(0 ولت) فعال بشه (Falling Edge)
یا طوری تعین کنیم که با یک منطقی (5 ولت) فعال بشه (Rising Edge) 👇👇👇
@Micro_Controllers