در این مقاله آموزشی که تنها در وب سایت برنامه نویسی میکروکنترلرها ارائه می شود تصمیم گرفتیم به آموزش و نحوی کار کردن نرم افزار قدرتمند Flowcode نسخه AVR بپردازیم. همانطور که می دانیم این نرم افزار گرافیکی است یعنی اینکه شما برای نوشتن برنامه تان هیچ نیازی ندارید که یکی از زبان های متنی مانند اسمبلی یا سی یا بیسک را یاد بگیرید بلکه کافی است تجسمی از کار برنامه مورد نظرتان را در در ذهن داشته باشید و آن را به صورت فلوچارت با بلوک ها و ماکرو های مختلف پیاده سازی کنید. بله به همین راحتی از برنامه نویسی لذت ببرید….
شعار این نرم افزار این است: No Coding, No Limits بدون محدودیت، بدون برنامه نویسی (کد). در ادامه ما به توضیحاتی در مورد محیط نرم افزار و نحوی کار کردن با آن خواهیم پرداخت.
شما می تونید نرم افزار را از اینجا دانلود نمائید و بعد از نصب محیطی مانند شکل بالا خواهید داشت که من قسمت های مهم آن را با اعداد شماره گذاری کردم و آنها را توضیح خواهم داد.
ابزارهای Flowcode
در صورتی که کامپایلر مخصوص این نرم افزار را داشته باشید ابتدا برنامه شما را کامپایل کرده و سپس فایل هگز خروجی را در حافظه میکرو کپی می کند.
این گزینه تنها فایل هگز را در محل ذخیره شده فایل پروژه برای شما تولید می کند. (شما می تونید این فایل را با انواع مختلف پروگرامرها روی میکروی مورد نظرتان کپی کنید)
این گزینه هم تنها فایل C برای شما تولید خواهد کرد یعنی فلوچارت شما را به معادل زبان سی آن تبدیل خواهد کرد.
با این گزینه شما می توانید برنامه تان را پله پله اجرا کنید.
همانند گزینه 4 هست.
متوقف کردن شبیه سازی
مکث شبیه سازی
اجرای شبیه سازی (لازم به ذکر است که خود Flowcode امکان شبیه سازی را نیز دارد)
بلوک ورودی: در این بلوک شما می توانید یکی از پورت های میکرو را به صورت بیتی یا کلی به ورودی تبدیل کنید.
بلوک خروجی: در این بلوک شما می توانید یکی از پورت های میکرو را به صورت بیتی یا کلی به خروجی تبدیل کنید.
بلوک تاخیر: این بلوک برای شما تاخیر هایی در رنج های میکرو،میلی و ثانیه ایجاد می کند.
بلوک تصمیم گیری (if): این بلوک همانند دستور if در زبان سی یا بیسک عمل می کند که دوحالت دارد یا شرط برقرار می شود یا نمی شود که هر کدام یک مسیر جداگانه دارد می توان دستورات دیگری در آنها قرار داد.
بلوک سوئیچ (Switch): این بلوک هم که کاملا پیدا که چه عملی انجام می دهد. یک متغییر را به عنوان ورودی گرفته و با حالت هایی که ما برای آن تعریف کرده ایم مقایسه می کند و در صورتی که مقدار متغییر با مقدار یکی از حالات برابر باشد دستورات مربوط به آن حالت اجرا می شود.
تعریف کردن برچسب (Lable): با استفاده از این بلوک شما می توانید یک برچسب در هرجای برنامه که مایل بودید ایجاد کنید تا بعد توسط بلوک شماره 15 در هر جای برنامه که خواستید کنترل آن را به برچسب مربوطه ارجاع داد.
رفتن به برچسب: با کمک این بلوک شما می توانید کنترل برنامه را به قسمت دیگری از برنامه ارجاع دهید.
بلوک حلقه (Loop): عمکرد این بلوک هم خیلی واضح می باشد همانند دستور Do While می باشد یعنی ایجاد یک حلقه بی نهایت.
بلوک Call Macro: عملکرد این بلوک دقیقا شبیه به ایجاد توابع در زبان سی یا بیسیک می باشد به این صورت که این ماکرو تعدادی متغییر ورودی دارد و یک متغییر برگشتی که دستورات مربوطه داخل این ماکرو نوشته می شود و به صورت یک تب جداگانه در نرم افزار ایجاد می شود، و در هرجای برنامه Main می توان آن را فراخوانی کرد و از دستورات داخل آن استفاده کرد.
بلوک Call Component Macro: عملکرد این بلوک به طور خلاصه به این صورت می باشد که وقتی شما از قسمت ماژول ها یک کامپوننت را به قسمت پنل اضافه کنید و بعد با دوبار کلیک کردن روی بلوک Call Component Macro شما می توانید با انتخاب کامپوننت مورد نظر از جعبه ماکرو تابع دلخواه را انتخاب کنید و از عملکر آن ماکرو در برنامه استفاده کنید. به عنوان مثال اگر شما کامپوننت LcdDisplay را به صفحه پنل اضافه کنید و بعد یک Call Component Macro به برنامه تان اضافه کنید با دوبار کلیک کردن روی آن پنجره ای باز می شود که شما در جعبه کامپوننت باید LcdDisplay(0) را انتخاب کنید تا ماکرو های آن در جعبه سمت راست آن ظاهر شود و با انتخاب ماکروی مورد نیاز و OK کردن از آن استفاده نمائید. به عبارت دیگر شما می توانید با اینکار از توابع نوشته شده LCD استفاده نمائید، که این بلوک یکی از پرکاربرد ترین ها در هر برنامه ای می باشد.
بلوک Calculation: در اینجا شما می توانید هرگونه عملیات ریاضی و محاسباتی را انجام دهید که البته در این بلوک function ها و توابع مختلف ریاضی نیز موجود است.
بلوک String Manipulation: این بلوک همانند بلوک calculation می باشد با این تفاوت که کلیه عملیات بر روی یک رشته انجام می شود. مثلا تبدیل عدد به رشته یا برعکس و ….
بلوک Interrupt: عملکرد این بلوک هم خیلی واضح می باشد، برای مدیریت وقفه ها در میکروکنترلر استفاده می شود.
بلوک C Code: در صورتی که ماکرو های flowcode نیاز شما را براورده نکرد شما خودتان می توانید به زبان C ماکرو یا تابع و … در درون آن بنویسید.
تا اینجا با ابزارهای flowcode اشنا شدید و اکنون به سه قسمت اصلی آن می پردازیم:
قسمت برنامه نویسی گرافیکی با Main: یک صفحه شطرنجی می باشد و شما برنامه مورد نظرتان را باید در این محیط در اصل بکشید که با BEGIN شروع می شود و با END خاتمه می یابد. که شما باید با Click drage کردن ابزار ها را بین این دو تگ قرار دهید.
پنجره خصوصیات: در این پنجر شما می توانید تمامی خصوصیات یک کامپوننت را ببینید و حتی مقادیر آنها را ویراش کنید.
پنل Panel: تمامی کامپوننت هایی که شما در قسمت ماژول های اضافه می کنید وارد قسمت پنل می شود که هر کامپوننت را می توانید با کلیک راست کردن بر روی آن پیکره بندی کنید که شامل بخش های زیر می باشد: 1-Ext Properties در اینجا شما می توانید کامپوننت مورد نظر را پیکره بندی کنید 2-connections در اینجا شما می توانید اتصالات پین ها را پیکره بندی کنید 3- Custom code در این قسمت شما می توانید ماکروهای مربوط به یک کامپوننت را به صورت دستی دستکاری و یا ویرایش کنید 4- Delete پاک کردن کامپوننت مورد نظر
تعریف متغییر:
شما در هر جایی از برنامه می توانید یک متغییر جدید ایجاد کنید. با دابل کلیک کردن روی هر بلوکی پنجره ای باز می شود که مطابق شکل زیر است
برای تغییر دادن نام متغییر یا نوع متغییر در شکل بالا قسمت 2 باید Rename variable و Array size برای متغییرهای رشته ای را کلیک کرده و مقادیر جدید را وارد کنید.
امیدوارم که مطالب فوق کامل و واضح بوده البته ما در روزهای آینده با مثال های ساده تا پیشرفته خواهیم آمد تا کار کردن با این نرم افزار قدرتمند برای همگان آسان شود.
این مقاله همراه با توضیحات آن تنها در وب سایت www.picpars.com به صورت متن باز ارئه شده و کپی برداری از آن تنها با ذکر منبع امکان پذیر می باشد.