توصیه شده

آموزش زبان C (زبان سی) برای میکروکنترلرها

آموزش زبان سی C
همه‌ی ما، حداقل از سال اول دانشگاه، تجربه‌ی کار کردن با زبان C را داریم و یک سری برنامه‌ها با این زبان نوشتیم. اما آیا چنین تجربه‌ای از زبان C برای برنامه‌نویسی میکروکنترلرها کافی است؟ در ادامه به این سوال پاسخ خواهیم داد. البته ناگفته نماند که درخواست مکرر شما عزیزان از سیسوگ انگیزه‌ای بود تا ما یک مجموعه آموزشی را برای شما فراهم کنیم که از لحاظ کیفیت و کارایی بی‌نظیر باشد. پاسخ ما به سوال بالا این خواهد بود که تجربه‌ای که شما از زبان C در دانشگاه داشتید هم ‌می‌تواند کافی باشد و هم می‌تواند کافی نباشد! اینکه می‌گوییم هم می‌تواند کافی باشد و هم می‌تواند کافی نباشد به دلایل زیادی بستگی دارد، اما این موضوع یک دلیل عمده دارد که اتفاقا ما قصد داریم در این مقاله همین دلیل را مورد بررسی قرار دهیم. اینکه شما از آن دسته افرادی بوده‌اید که فقط دستورات یک زبان برنامه‌نویسی را یاد می‌گرفتید و یک سری تمرین حل می‌کردید و در نهایت هم انتظار داشتید که در امتحان نهایی همان تمرین‌ها از شما خواسته شود، یا اینکه شما از آن دسته افرادی بوده‌اید که فرای اینکه با چه زبان برنامه‌نویسی کار می‌کردید، تفکر برنامه‌نویسی داشتید و ذهنی الگوریتمیک را در خود تقویت کرده بودید، خود تفاوت ایجاد خواهد کرد. حقیقتا چیزی که در دنیای واقعی از ما خواسته می‌شود، به احتمال خیلی زیاد آن چیزی نیست که ما قبلا انجام داده باشیم، و حتی در بعضی از اوقات، کاری که از ما خواسته می‌شود، قبلا توسط کسی انجام نشده است. این‌جور مواقع تنها افرادی قادر به انجام چنین پروژه‌هایی هستند که صرفا برنامه‌نویسی را به دید یک زبان خاص نمی‌بینند و با رویکردی متفاوت به آن می‌نگرند. اجازه بدهید موضوع را کمی بازتر کنیم و در مورد اینکه تفکر برنا‌مه نویسی چیست و باید با چه رویکردی به آن نگاه کرد کمی توضیح بدهیم. به عنوان یک پیشنهاد بر روی تصویر یا لینک زیر کلیک کنید: معرفی برنامه‌نویسی C برای میکروکنترلرها مطابق سبک NASA آموزش برنامه نویسی C برای میکروکنترلرها مطابق سبک NASA

تفکر برنامه‌نویسی

یاد گرفتن تفکر و ذات برنامه‌نویسی با یادگرفتن زبان برنامه‌نویسی اگرچه ارتباط تنگاتنگی باهم دارند، ولی دو مقوله‌ی کاملا جدا از هم هستند. زمان زیادی طول نمی‌کشد تا شما با دستورات یک زبان برنامه‌نویسی آشنا شوید و شروع به برنامه‌نویسی کنید، اما زمان زیادی را باید صرف کنید تا تفکر برنامه‌نویسی در شما تقویت شود. فقط قبل از صرف کردن این زمان باید یک موضوع را در نظر بگیرید که در ادامه به این موضوع اشاره خواهیم کرد.

منطق در برنامه‌نویسی

افراد مختلف، نظرهای متفاوتی در مورد برنامه‌نویس‌های موفق و حرفه‌ای دارند، کسی برنامه‌نویسی را خوب درک می‌کند و حرفه‌ای خواهد شد که منطقی فکر کند. واقعا جمله‌ی زیبایی است‌، نه تنها در برنامه‌نویسی، بلکه در هر کاری منطقی فکر کردن به آن مسئله، خود نیمی از پاسخ آن مسئله می‌باشد. پس قبل از هر کاری از جمله برنامه‌نویسی، منطقی فکر کردن را در خود تقویت کنید. برنامه‌نویسی چیزی خارج از منطق و البته ریاضیات نیست.

ریاضیات در برنامه‌نویسی

تا اینجا شما یک پیش‌شرط مهم یعنی منطقی فکر کردن را پشت سر گذاشته‌اید، حال وقت آن است که با کسب یک سری مهارت دیگر، قدرت برنامه‌نویسی را در خود تقویت کنید. یکی از مهارت‌هایی که می‌تواند شما را به یک برنامه‌نویس خوب تبدیل کند، ریاضیات است. استفاده از ریاضیات در برنامه‌نویسی به قدری مهم است که گاها می‌تواند تعداد خطوط کد شما را حتی بیشتر از 50 درصد کاهش دهد (لزوما استفاده از این مورد حجم کد را کاهش نمی‌دهد). نگران نباشید، نیازی نیست که شما برای اینکه برنامه‌نویس خوبی شوید با حل معادلات با مشتقات جزئی آشنا باشید، بلکه ریاضیاتی در حد دبیرستان مانند دانستن نظریه اعداد، نظریه گراف، قضیه همنهشتی، تئوری آمار و احتمال کفایت می‌کند و شما با درک این مفاهیم و همچنین با تمرین و ممارست خواهید توانست به یک کدنویس حرفه‌ای تبدیل شوید. اگر شمایی که در حال خواندن این مقاله هستید و به صورت منطقی فکر می‌کنید که با تمامی موارد بالا آشنا هستید و با خواندن این مقاله البته تا به اینجا، به این نتیجه رسیدید که یک برنامه‌نویس خبره هستید، کاملا در اشتباه هستید، چرا؟ آشنایی یا حتی اشراف بر تمامی مواردی که در بالا ذکر کردیم شرط لازم برای برنامه‌نویسی هستند اما شرط کافی نه! شاید شما بتوانید برای حل یک مسئله یا نوشتن یک برنامه یک ایده‌ی خوب بدهید، اما خودتان نتوانید به طرز صحیحی آن برنامه را بنویسید، دلیل آن چیست؟ دلیل این موضوع چیزی نیست جز ساختار یک زبان برنامه‌نویسی.

ساختار زبان‌های برنامه‌نویسی

ساختار زبان‌های برنامه‌نویسی فرای از دستورات زبان برنامه‌نویسی از اهمیت بسیار بالایی برخوردار هستند و دقیقا همین موضوع هست که مشخص می‌کند چه کاری را با چه زبان برنامه‌نویسی انجام بدهیم و ساختار هر زبان برنامه‌نویسی برای چه کاری توسعه داده شده است. مثلا اگر قرار باشد ما کد یک معادله‌ی درجه‌ی 2، یا یک دنباله فیبوناچی را بنویسیم فرقی ندارد با چه زبانی این کار را انجام بدهیم و تفاوت کد مربوطه در زبان‌های مختلف تفاوت جزئی در سینتکس‌ها می‌باشد، اما اگر قرار باشد مستقیما برای یک سخت‌افزار خاص برنامه بنویسیم آن‌گاه قضیه فرق دارد و تازه ویژگی‌های خاص یک زبان مشخص می‌شود. همانطور که گفتیم اگر شما شخصی هستید که به صورت منطقی به کارها فکر می‌کنید و با ریاضیات نیز آشنایی کافی را دارید ولی ساختار یک زبان را به خوبی نمی‌شناسید، نمی‌توانید یک برنامه را به طرز صحیحی بنویسید. در ادامه ما در مورد ساختار یکی از زبان‌های برنامه‌نویسی صحبت خواهیم کرد، همچنین خواهیم گفت که این زبان برنامه‌نویسی دقیقا برای چه کاری توسعه داده شده است. به عنوان یک پیشنهاد بر روی تصویر یا لینک زیر کلیک کنید: آموزش برنامه‌نویسی C برای میکروکنترلرها مطابق سبک NASA آموزش برنامه نویسی C برای میکروکنترلرها مطابق سبک NASA

سطوح زبان‌های برنامه‌نویسی

زبان‌های برنامه‌نویسی از جهات مختلفی قابل دسته‌بندی هستند، یکی از این دسته‌بندی‌ها به سطح زبان‌های برنامه‌نویسی اشاره دارد که در این مقاله قصد داریم به این موضوع بپردازیم. با توجه به اینکه زبان‌های برنامه‌نویسی تا چه اندازه به زبان انسان نزدیک هستند آن‌ها را به سه دسته تقسیم می‌کنند. از آن‌جا که  قرار است این مجموعه آموزشی به صورت کاربردی ارائه شود و همچنین در این رابطه مطالب زیادی در سطح اینترنت موجود می‌باشد، پس به صورت خیلی مختصر به این موضوع می‌پردازیم. زبان‌های برنامه‌نویسی به سه سطح زیر تقسیم می‌شوند:
  • سطح پایین
  • سطح میانی
  • سطح بالا
زبان سطح پایین زبانی است که کمترین مشابهت به زبان انسان را دارد و بیشتر با داده‌های دیجیتال (0 و 1) در ارتباط است. همچنین زبان سطح بالا زبانی است که بیشترین مشابهت به زبان انسان را دارد و خیلی کم با داده‌های دیجیتال در ارتباط است، اگرچه نهایتا یک زبان سطح بالا هم باید به همین داده‌های دیجیتال ختم شود. در این بین زبان‌هایی وجود دارند که به زبان‌های سطح میانی معروف هستند. برخی از ویژگی‌های این زبان‌ها به زبان‌های سطح پایین و برخی دیگر به زبان‌های سطح بالا نزدیک هستند به همین خاطر این زبان‌ها را زبان‌های سطح میانی می‌نامند. زبان C یکی از زبان‌های سطح میانی می‌باشد و این زبان آن‌قدری انعطاف دارد که تقریبا هرکاری که مدنظرتان باشد را می‌توان با این زبان انجام داد، اما این زبان هم همانند سایر زبان‌ها مشخصا برای هدفی خاصی توسعه داده شده است و نوشتن هر برنامه‌ای با این زبان صحیح نمی‌باشد. با اینکه تقریبا هر کاری را می‌توان با زبان C انجام داد، اما زبان C غالبا برای برنامه‌نویسی سیستم‌های نهفته (embedded system) به کار می‌رود. میکروکنترلر را می‌توان همان سیستم نهفته در نظر گرفت. به دلیل اینکه زبان C ارتباط خوبی با حافظه‌ها برقرار می‌کند، به راحتی می‌توان قسمت‌های مختلف یک میکروکنترلر را مدیریت کرد. از آنجا که گفتیم با زبان C تقریبا هر کاری قابل انجام است، لذا رویکردهای متفاوتی در برنامه‌نویسی با این زبان وجود دارد که یکی از این رویکردها برنامه‌نویسی به زبان C برای میکروکنترلرها می‌باشد که ما با توجه به همین رویکرد اسم این مجموعه آموزشی را “آموزش برنامه نویسی C برای میکروکنترلرها مطابق سبک NASA” نامیدیم. و چون در سایت‌های فارسی زبان کمتر به این رویکرد پرداخته شده است قصد داریم یک مجموعه آموزشی تالیفی و همچنین کاربردی برای این موضوع ارائه بدهیم. مواردی که در بالا به صورت تیتر آمده است و توضیحات مختصری در رابطه با آن‌ها بیان کردیم، تنها چند مورد از موارد زیادی هست که در مجموعه آموزشی “آموزش برنامه نویسی C برای میکروکنترلرها مطابق سبک NASA” به آن‌ها پرداخته شده است. قصد نداریم این مقاله را بیشتر از این طولانی کنیم و در همین‌جا این مقاله را به اتمام می‌رسانیم، اما منتظر ما باشید تا در قسمت دوم درباره‌ی الگوی کلی کد زبان C در میکروکنترلرها و بررسی بیشتر ساختار میکروکنترلرها صحبت کنیم.

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

12 دیدگاه در “آموزش زبان C (زبان سی) برای میکروکنترلرها

  1. زانکو گفت:

    سلام
    ظاهراً این آموزش رو حذف کردید!
    حالا دلیلش سیاست های کلی سایت بوده یا هر چیز دیگری بماند، اما پیشنهادم اینه که الان که زحمت تهیه این آموزش کشیده شده، به صورت رایگان در دسترس عموم قرارش بدید تا خدمتی به جوانتر ها بشه که چندین سال دور خودشون میچرخن و آخرش هم به این نتیجه میرسن که ما مرد الکترونیک نیستیم!

    1. Sisoog Os Sisoog Os گفت:

      سلام دوست عزیز
      این اموزش توسط ما اماده نشده بود و تنها اموزشی بود که در سیسوگ به فروش میرفت که به احتمال زیاد اخرین هم خواهد بود
      شما میتونید از سایت مدرس اون https://www.teachtechs.ir/ الان این اموزش را تهیه کنید

  2. مهدی گفت:

    سلام وقت بخیر خدا قوت این سی دی اموزش cچنده ،از کجا بگیریمش

    1. Sisoog Os Sisoog Os گفت:

      سلام دوست عزیز
      متاسفانه ما این را از سایت خودمون برداشت کردید و میتونید اگر تمایل داشتید از سایت https://www.teachtechs.ir که مدرس همین اموزش هستند تهیه بفرمائید

      1. مهدی گفت:

        ایا هنوز توصیه میفرمایین ؟مورد قبول شما هست تهیه کنیم

        1. Sisoog Os Sisoog Os گفت:

          بله دوست عزیز
          آموزش واقعا خوبی هست

  3. مهدی گفت:

    سلام خسته نباشین،این سی دی رو خود شما آموزش میدین؟

    1. سلام دوست عزیز. این مجموعه آموزشی همانطور که ذکر گردید توسط مهندس پیمان ذوالنوری گردآوری شده است.

      ما هم چون هیچ مجموعه آموزشی فارسی زبانی مشابه این آموزش چه از نظر گستردگی محتوا و همینطور کیفیت ارائه ندیدیم، لازم دانستیم که این مجموعه را در سیسوگ معرفی کنیم.

      این مجموعه تنها آموزش فارسی زبانی از زبان C است که کیفیتش توسط سیسوگ تایید شده است.

      1. مهدی گفت:

        سلام وقت بخیربرای این آموزش برنامه نویسی c باید اول با cاستادای دیگه آشنا باشیم،یعنی پیش زمینه میخواد یا نه همین کافیه،ممنون

        1. سلام نازنینم. خیر نیازی به هیچ دوره‌ی دیگری نیست برای پیش‌نیاز این دوره. فقط اگر هدفتان برنامه‌نویسی برای میکروکنترلرها هست این دوره برای شما بسیار مناسب می‌باشد، در غیر این صورت این دوره برای شما مناسب نخواهد بود.

  4. آزیتا گفت:

    برنامه نویسی میکرو کنترلر

    1. آره نازنینم برنامه‌نویسی زبان C با رویکرد میکروکنترلری