طراحی کنترلر، مدارت دلخواه، پروژه ها و تمرینات درس میکروکنترلرها
این پروژه در اصل یک شمارنده می باشد که می توان عبور مرور افراد از یک گیت را شمارش کرد، شمارنده هم می تواند به صورت بالا شمار و هم پایین شمار کار کند. همچنین توسط شدت نور یک عدد LED می‌توان سنسور فرستنده و گیرنده را در یک راستای مستقیم تنظیم کرد. سنسورها ار نوع مادون قرمز با برد تقریبی 120cm می باشد.در صورتی که برق شهر از حداقل تعریف شده کمتر، یا از حداکثر بیشتر شود رله خروجی قطع خواهد شد و از طریق بازر بوق هشدار پخش می شود. ولتاژ فعلی، زمان باقیمانده تا اتصال رله و پیغام ها روی نمایشگر نشان داده می شود.این پروژه یک دماسنج ساده می باشد که توانایی اندازه گیری دما از منفی 40 تا مثبت 120 درجه سانتی گراد با دقت دو رقم اعشار را دارد.این پروژه یک ماشین حساب مهندسی می باشد که تمامی کلید ها و توابع به صورت گرافیگی بر روی LCD نمایش داده می شود و با فشردن هر کلید روی کیپد کلید متناظر آن بر روی السیدی نیز تغییر حالت می دهد. نمای کلی و توابع قابل انجام توسط این ماشین حساب در تصاویر نمایش داده شده است. همچنین قابلیت رسم نمودار را دارد.این پروژه یک مدار گیرنده رادیویی 433 یا 315 مگاهرتز می باشد که قابلیت تعریف و ذخیره سازی انواع ریموت کنترل هایی از قبیل (ریموت دزدگیر ماشین، پارکینگ، بالابر و ...) را دارد. می توان رله مربوطه را روی هر کلید دلخواه تعریف نمود.
پروژه شمارش افراد با سنسور مادون قرمز و avr

MCP-6

پروژه شمارش افراد با سنسور مادون قرمز و avr
پروژه محافظ لوازم برقی با avr و نمایشگر LCD

MCP-23

پروژه محافظ لوازم برقی با avr و نمایشگر LCD
پروژه دماسنج ساده با avr

MCP-29

پروژه دماسنج ساده با avr
پروژه ماشین حساب مهندسی با السیدی گرافیکی و avr

MCP-11

پروژه ماشین حساب مهندسی با السیدی گرافیکی و avr
پروژه ریموت کنترل 433-315 مگاهرتز تک کاناله با قابلیت لرنینگ

MCP-30

پروژه ریموت کنترل 433-315 مگاهرتز تک کاناله با قابلیت لرنینگ

دستورات 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    نویسندهنویسنده: مدیریت    نظرات 17 نظر    بازدید بازدید [ 60071 ]   پرینتنسخه چاپی
فایل پی دی اف فایل پی دی اف   ارسال به دوستان ارسال به دوستان