طراحی کنترلر، مدارت دلخواه، پروژه ها و تمرینات درس میکروکنترلرها
در صورتی که برق شهر از حداقل تعریف شده کمتر، یا از حداکثر بیشتر شود رله خروجی قطع خواهد شد و از طریق بازر بوق هشدار پخش می شود. ولتاژ فعلی، زمان باقیمانده تا اتصال رله و پیغام ها روی نمایشگر نشان داده می شود.این پروژه یک مدار واسط I/O می باشد که دارای 4 خروجی رله است. توسط نرم افزار کنترلی که قابل نصب بروی ویندوز های XP, Win7, Win8, Win10 می باشد می توان هر چهار رله را به صورت مجزا فعال و غیر فعال کرد.با استفاده از میکروکنترلر Atmega8‌، سنسور دیجیتال دما DS18B20 و LCD‌ متنی شما به راحتی می توانید کولر خانه تان را توسط کنترل تلویزیون و کلید های تعبیه شده، در مد های مختلفی برنامه ریزی کنید، از ویژگی آن می توان به کاهش مصرف انرژی در کولرها آبی اشاره نمود.کنترل زاویه ای 0 تا 180 درجه؛ قابلیت تعریف بیش 100 برنامه مجزا توسط کاربر؛ تعیین زاویه برای هر پله حرکت سروو موتور؛ تعیین سرعت حرکت سروو موتور؛ تعیین مدت زمان کارکرد در هر برنامه از 1 تا 255 دقیقه. منوی کاربری بسیار آسان برای تعریف برنامه ها.این پروژه یک مدار واسط I/O می باشد که دارای 12 خروجی رله است. توسط نرم افزار کنترلی که قابل نصب بروی ویندوز های XP, Win7, Win8, Win10 می باشد می توان هر 12 رله را به صورت مجزا فعال و غیر فعال کرد.
پروژه محافظ لوازم برقی با avr و نمایشگر LCD

MCP-23

پروژه محافظ لوازم برقی با avr و نمایشگر LCD
پروژه کنترل رله توسط پورت USB با AVR و C شارپ

MCP-31

پروژه کنترل رله توسط پورت USB با AVR و C شارپ
پروژه کنترل اتوماتیک کولرهای آبی با ریموت کنترل و avr

MCP-4

پروژه کنترل اتوماتیک کولرهای آبی با ریموت کنترل و avr
پروژه کنترل سروو موتور از 0 تا 180 درجه با avr

MCP-2

پروژه کنترل سروو موتور از 0 تا 180 درجه با avr
پروژه کنترل رله توسط پورت USB با AVR و C شارپ 12 کاناله

MCP-39

پروژه کنترل رله توسط پورت USB با AVR و C شارپ 12 کاناله

دستورات break و switch و goto و continue و ... قسمت 4

در این قسمت به معرفی دستورات break و switch و goto و continue همراه با مثالهای آموزشی می پردازیم.

از این 4 دستور بالا دستور switch کاربرد زیادی دارند البته بقیه هم کاربرد دارند که در ادامه به بحث و گفتگو خواهیم پرداخت.

 

از بخش سفارش طراحی هم اکنون درخواست خود را ثبت کنید
حل و تشریح کلیه تمرینات درس میکروکنترلر AVR
طراحی و ساخت مدارات دلخواه شما با میکروکنترلر AVR


دستور break :

کلمه کلیدی break به معنی شکستن می باشد، که در زبان سی همان معنی شکستن حلقه یا خارج شدن از حلقه می باشد. وقتی برنامه به این دستور برسد از ساختار حلقه خارج می شود و دستورات بعدی را اجرا می کند. منظور دستورات داخل  {} می باشد از این دستور بیشتر در حلقه switch استفاده می شود که در ادامه توضیح کامل می دهیم. ابتدا یک مثال از break :

char i,b;
while (1) {
 i++;
 if (i==23) break;
}
b=i+6;

در این مثال دو متغییر i , b تعریف شده و بعد یک حلقه بی نهایت نوشتیم که در هر بار اجرای حلقه یک واحد به متغییر i اضافه می شود و بعد از آن یک دستور شرطی نوشتیم و گفتیم که اگر متغییر i برابر با 23 شد دستور break را اجرا کن که بعد از اجرا شدن آن برنامه از حلقه بیرون می آید و اولین دستور بعد از { را اجرا می کند که در اینجا متغییر i را با عدد 6 جمع می کند در متغییر b ذخیره می کند. که حاصل اون هم بابر با 29 می باشد.

دستور switch :

از این دستور برای انتخاب کردن یک متغییر استفاده می شوده و حالت های مختلفی را با توجه به محتوای آن متغییر تعریف می کنیم. یا به عبارت دیگر یک گروه از دستورات بین چندین گروه از دستورات انتخاب می شود. ساختار کلی این دستور به صورت زیر می باشد:

switch (متغییر) {
 case مقدار1 :
  { مجموعه دستورات1 };
 case مقدار2 :
  { مجموعه دستورات2 };
 case مقدار3 :
  { مجموعه دستورات3 };

default:
  { مجموعه دستورات };
}

برای روشن تر شدون موضوع به مثال زیر توجه کنید:

switch (i) {
 case 3:
  b=5; break;
 case 6:
  b=7; break;
 case 2:
  b=7; break;
default:
 b=55;
}

در این مثال ابتدا متغییر i انتخاب می شود و بعد 3 حالت یا کیس مختلف براش در نظر گرفتیم. نوشتیم که اگر توی متغییر i مقدار 3 هست بیا و عدد 6 را توی متغییر b قرار بده و از حلقه خارج شو یعنی حالت های بعدی رو دیگه امتحان نکن. خوب اگر در این مرحله i برابر با 3 نبود دستور break اجرا نخواهد شد و حالت بعدی امتحان می شود. و این کار همین طور ادامه دارد تا مقدار یکی از حالت ها با مقدار متغییر i برابر باشد، که در این صورت دستور break هم اجرار خواهد شد و دیگه حالت های بعدی امتحان نمی شوند و برنامه از حلقه خارج می شود. حال ممکن که هیج یک از حالت ها با مقدار متغییر برابر نباشد!! در این صورت دستور default اجرا می شود (به معنی مقدار پیش فرض) و متغییر b مقدار پیش فرض 55 را می گیرد. البته نوشتن دستور default اختیاری می باشد و شما می توانید ننویسید.

 نکته:

  1. در جلوی دستور case فقط می توانیم مقدار ثابت قرار دهیم یعنی نمی توانیم یک متغییر قرار دهیم.
  2. اگر در یکی از حالت ها یا همون case دستور break را قرار ندهیم با مقدار حالت بعدی OR می شود.

دستور goto :

از این دستور برای رفتن به یا به عبارتی پرش به یک لیبل یا برچسب می باشد. فرم کلی آن به صورت زیر می باشد:

goto  نام برچسب ;
نام برچسب:

مثال:

while (1) {
 i++;
  if (i==56) goto picpars;
}
picpars:
دستورات;

 ابتدا تشکیل یک حلقه بی نهایت و یعد هم افزایش یک واحدی به متغییر i و بعد تست یک شرط که اگر متغییر i برابر با 56 باشد از حلقه خارج می شود و به لیبل picpars پرش می کند و دستورات بعد از آن اجرا می شود.

 دستور continue :

این دستور بر خلاف دستور break از حلقه خارج نمی شود بلکه به ابتدای حلقه می رود. یعنی به ابتدای } می رود و مجددا دستورات داخل حلقه رو اجرا میکنه. به مثال زیر برای روشن تر شدن موضوع توجه کنید:

while (1) {
 i++;
  if (i==9) continue;
 i=i+2;
}

در این مثال ما یک حلقه بی نهایت تشکیل دادیم که در آن ابتدا افزایش یک واحدی به متغییر i اجرا می شود و بعد شرطی تست می شود که اگر محتوای متغییر i برابر با 9 بود دستور بعدی یعنی اضافه کردن عدد 2 به متغییر i اجرا نمی شود. دستور i=i+2 در حلقه همیشه اجرا می شود به جزء یک بار اون هم اگر i برابر با 9 بود این اتفاق می افتد.

توضیحات این دستورات به پایان رسید منتظر پست های بعدی باشید.

  منبع: www.picpars.com

  لطفا مقالات، آموزش‌ها و پروژه های خود را به آدرس ایمیل ارتباطی ایمیل نمائید تا آن را با نام خودتان در سایت منتشر کنیم.

به این مطلب امتیاز دهید

برچسب ها:
تاریخ ارسال يكشنبه، 8 فروردين ماه، 1389    نویسندهنویسنده: مدیریت    نظرات 16 نظر    بازدید بازدید [ 55648 ]   پرینتنسخه چاپی
فایل پی دی اف فایل پی دی اف   ارسال به دوستان ارسال به دوستان   

ساعت آنالوگ با AVR و lcd گرافیکی به زبان c
کد پروژه: MCP-36
عنوان: ساعت آنالوگ با AVR و lcd گرافیکی به زبان c
میکروکنترلر: AVR ==> زبان سی C (کدویژن)
قیمت: به جزئیات پروژه مراجعه نمایید
جزئیات سفارش خرید
این پروژه یک ساعت آنالوگ، تاریخ شمسی و روزه هفته به زبان فارسی به همراه ساعت دیجیتال می باشد. قابلیت تنظیم ساعت و تاریخ توسط سه عدد میکروسوئچ
پروژه ماشین حساب مهندسی با السیدی گرافیکی و avr
کد پروژه: MCP-11
عنوان: پروژه ماشین حساب مهندسی با السیدی گرافیکی و avr
میکروکنترلر: AVR ==> زبان سی C (کدویژن)
قیمت: به جزئیات پروژه مراجعه نمایید
جزئیات سفارش خرید
این پروژه یک ماشین حساب مهندسی می باشد که تمامی کلید ها و توابع به صورت گرافیگی بر روی LCD نمایش داده می شود و با فشردن هر کلید روی کیپد کلید متناظر آن بر روی السیدی نیز تغییر حالت می دهد. نمای کلی و توابع قابل انجام توسط این ماشین حساب در تصاویر نمایش داده شده است. همچنین قابلیت رسم نمودار را دارد.

مرتبط باموضوع :          مطالب بیشتر در این موضوع

 پروژه آموزشی تابلون روان 8.8 به زبان سی همراه با سورس C  [ پنجشنبه، 29 تير ماه، 1391 ] 20868 مشاهده
 اتصال کیبورد 4*4 به میکروکنترلر AVR  [ پنجشنبه، 16 ارديبهشت ماه، 1389 ] 99320 مشاهده
 کار با تایمر کانتر صفر AVR در حالت PWM سریع به زبان سی کدویژن CodeVision  [ جمعه، 8 بهمن ماه، 1389 ] 29067 مشاهده
 آموزش سریع میکروکنترلر AVR  [ پنجشنبه، 7 مرداد ماه، 1389 ] 17609 مشاهده
 اندازه گیری ولتاژ با مبدل آنالوگ به دیجیتال ADC به زبان سی  [ شنبه، 6 خرداد ماه، 1391 ] 27397 مشاهده
نام شما:
ایمیل شما:
در مورخه : سه شنبه، 24 فروردين ماه، 1389
آموزش تون خوب بود با تشکر
ارسال جوابیه

نام شما:
ایمیل شما:
در مورخه : شنبه، 30 بهمن ماه، 1389توسط
(مشخصات کاربر acmohsen | ارسال پیغام شخصی)
به نام خدا با عرض سلام می تونید من را برای چگونگی کار با آی سی ds1307 با استفاده از atmega و به زبان سی راهنمایی کنید؟
ارسال جوابیه

نام شما:
ایمیل شما:
در مورخه : جمعه، 6 اسفند ماه، 1389
باسلام : باتشکر فراوان از نوع اموزشتون اگه لطف کنین در مورد دستورات رشته ها و ارسال و دریافت انها مثل جند کلمه ویا چند کلمه به صورت سریال همراه با فایل پروتوس توضیح بدین ممنون میشم .
ارسال جوابیه

نام شما:
ایمیل شما:
در مورخه : جمعه، 6 اسفند ماه، 1389توسط
(مشخصات کاربر AHMADO | ارسال پیغام شخصی)
باسلام : باتشکر فراوان از نوع اموزشتون اگه لطف کنین در مورد دستورات رشته ها و ارسال و دریافت انها مثل جند کلمه ویا چند کلمه به صورت سریال همراه با فایل پروتوس توضیح بدین ممنون میشم .
ارسال جوابیه

نام شما: meiisam
ایمیل شما: meisam_ir@yahoo.com
در مورخه : دوشنبه، 21 آذر ماه، 1390

salam

kheili khob bod.

movafagh bashid.

ارسال جوابیه

نام شما: مسعود
ایمیل شما: m_dehghan_fakhrodin@yahoo.com
در مورخه : دوشنبه، 10 تير ماه، 1392

داداش شماها خیلی مردین که وقت میزارین و رایگان آموزش میدین

دمتون گرم

ارسال جوابیه

نام شما: مسعود
ایمیل شما: m_dehghan_fakhrodin@yahoo.com
در مورخه : چهارشنبه، 12 تير ماه، 1392

آقا سلام، خدا قوت.

داداش این دستور goto رو دقیقا باید کجا گذاشت؟

بیرون حلقه while یا توش؟

من هرجا میذارم برنامه ارور نمیده اما جوابهای عجیب غریب میده!!!!

جوابیه ها

نام شما: سید محسن قاسمیان
ایمیل شما:
در مورخه : چهارشنبه، 12 تير ماه، 1392توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی)

جای خاصی نداره!! این بستگی به برنامه نویسی که میکرو رو چگونه تحت کنترل خودش قرار بده. داخل حلقه یا خارج حلقه مهم نیست مهم این است که شما شرط یا شرایطی را تعیین کنید و آنگاه دستور ذکر شده را فراخوانی کنید.

ارسال جوابیه

ارسال جوابیه

نام شما: mojtaba
ایمیل شما: mojtabasasaedi2yahoo.com
در مورخه : سه شنبه، 26 آذر ماه، 1392

آموزش بسیار خوبی بود میشه تابع را هم آموزش بدین حتی مختصر با تشکر فراوان

ارسال جوابیه

نام شما: omid
ایمیل شما:
در مورخه : سه شنبه، 27 اسفند ماه، 1392

سلامی به گرمی کویر...

ممنون، خیلی خوب بود.

ارسال جوابیه

نام شما: شاهين
ایمیل شما: respinamahmudi@yahoo.com
در مورخه : شنبه، 13 ارديبهشت ماه، 1393

عالي بود . وري ور ي گود. اينم يه نوع ايثاره كه شما انجام ميديد.

ارسال جوابیه

نام شما: سعیده
ایمیل شما:
در مورخه : شنبه، 20 ارديبهشت ماه، 1393

سلام. من می خواهم در c++ برنامه ای بنویسم که در صورتی که  مجموع دو متغیر برابر 100 شد از برنامه خارج بشه. می شه راهنماییم کنید!       کمک

جوابیه ها

نام شما: admin
ایمیل شما:
در مورخه : شنبه، 20 ارديبهشت ماه، 1393توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی)
int a,b;
if((a+b)>100) break;
ارسال جوابیه

ارسال جوابیه

نام شما: mmohadese
ایمیل شما: arabi.mohadese@yahoo.com
در مورخه : دوشنبه، 12 آبان ماه، 1393توسط
(مشخصات کاربر mmohadese | ارسال پیغام شخصی)

salam bebakhshid mann yebarname be zabane c neveshtam mitonam inja bezaram eshkalesho behem begid

ارسال جوابیه

نام شما: سامان
ایمیل شما: hadad.saman@gmail.com
در مورخه : يكشنبه، 14 دي ماه، 1393
دمتون گرم خیلی عالی توضیح دادین مطلب اموزشی حرف نداشت با توضیحاتش
ارسال جوابیه

نام شما: arash
ایمیل شما:
در مورخه : دوشنبه، 22 دي ماه، 1393

خیلی ممنون از توضیحات مفیدتون

ارسال جوابیه

 
نام شما: [ کاربر جدید ]

نام شما (ضروری): 
ایمیل شما : 
نظر:
کد امنیتی
کد امنیتی

  [ بازگشت ]