میکروکنترلرها – 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
رجیسترها:
این رجیستر👆👆👆 دارای ۸ بیت است که مقدار هر بیت تعیین کننده High یا Low بودن همان بیت در پورت مورد نظر است.
اگر مقدار بیت ۰ باشد»»»»وضعیت LOW
اگر مقدار بیت ۱ باشد»»»»وضعیت HIGH
@Micro_Controllers
رجیسترها:
اما در حالت ورودی منظور از HIGH یا LOW بودن چیست ؟!
به این زیاد گیر ندید بعدا به حسابش میرسیم (^_^)
@Micro_Controllers
رجیسترها:
اگر بیت مورد نظر در حالت ورودی تنظیم شده باشد و بیت مورد نظر آن در رجیستر PORTx بصورت High تعریف شده باشد،مقاومت پول آپ داخلی فعال میشود.
در صورتیکه بیت مورد نظر در رجیستر PORTx بصورت LOW تعریف شود،پین مورد نظر به صورت Tri-State یا Hi-z در آمده که معنای آن این است که پین موردنظر وضعیت مشخصی ندارد.همانند هنگامی که برای پین هیج مقداری در رجیسترهای DDRx و PORTx و RINx تعریف نکرده باشیم(حالت پیشفرض).
@Micro_Controllers
ابزار مورد نیاز برای کار با میکروکنترلر avr:
خیلی خوب ، رسیدیم به بهترین قسمت این مطلب–برا کار با avr باید یک زبان برنامه نویسی و یک نرم افزار شبیه ساز رو انتخاب کنید.
برای برنامه نویسی ۲ راه وجود دارد:
(این نرم افزاره که در زیر میگم کارش اینه که کدهای ما رو به زبون ماشین تبدیل میکنه. )
۱) زبان برنامه نویسی بیسیک به کمک نرم افزار بسکام
۲) زبان برنامه نویسی سی به کمک نرم افزار کدویژن
تا اونجایی که من میدونم بیسیک آسون تره ولی سی قویتره.
من خودم با زبون سی کار میکنم.😊😊
برای شبیه سازی مدار تو کامپیوتر دو راه وجود دارد:
۱) نرم افزار پروتئوس یا ISIS
۲) نرم افزار اورکد یا Capture
من خودم تقریبا با جفتشون کار کردم ؛ به نظر من پروتئوس بهتر از اورکد هست هم از نظر ظاهر و هم از نظر راحتی باهاش!!!👍
البته اگه یکیش رو یاد بگیری یاد گرفتن اون یکی زیاد کاری نداره.
@Micro_Controllers
مبدل آنالوگ به دیجیتال
اگر به PORTA.0 تا PORTA.7 نگاه کرده باشید کنارشون یه کلماتی هست : ADC0 تا ADC7 که با استفاده از این پورت( PORTA ) میتونیم سیگنال آنالوگ رو دیجیتال کنیم.
@Micro_Controllers
مبدل آنالوگ به دیجیتال
معمولا در یک میکرو AVR چندین کانال ADC وجود داره ؛ مثلا در مدل ATMEGA16 تعداد 8 عدد کانال ADC وجود داره !
توجه داشته باشید که در میکروکنترلر AVR تنها یک مبدل آنالوگ به دیجیتال وجود دارد و برای هر کانال از یک مبدل جدا استفاده نشده است.
یعنی اگر میبینید 8 تا کانال ADC در میکرو ATmega32 داریم ،
معناش این نیست که 8 تا مبدل داریم بلکه این 8 کانال با یکدیگر مالتی پلکس شدند و در نهایت اون که مورد نیازه به مبدل وصل میشه.
مثال خودمونی : تو خونتون 8 تا تلوزیون هست(چه شود ^_^) !!! حالا بابات میره یه آنتن میخره برا همشون و همشون مجبورن از این آنتن استفاده کنن.
@Micro_Controllers
مبدل آنالوگ به دیجیتال
میکروکنترلرهای AVR دقت 10 بیتی دارند . یعنی مقدار سیگنال تبدیل شده با دقت 10 بیت ذخیره میشود. (البته لازم بذکره که میشه با دقت 8 بیت نیز ازشون استفاده کرد)
ببینید دوستان ، بنده گفتم درجه دقت 10 بیتی این یعنی چه ؟
ما وقتی به یکی از کانال های ADC میکرو ولتاژی بین 0 تا 5 ولت میدیم و انتظار داریم که میکرو هم برامون نسبت بگیره و اونو تبدیل به سیگنال دیجیتال کنه ، روش کار بدین صورته که در دقت 10 بیت،میکرو بازه بین 0 تا 5 ولت رو به 1024 واحد تقسیم میکنه : 👇👇👇
@Micro_Controllers
مبدل آنالوگ به دیجیتال
تصویر بالا کاملا گویاست ! 👆👆👆
در حالت گفته شده 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