آموزش Verilog – ماژول‌ها

ماژول‌ها یادگرفتن وریلاگ به خودی خود کار دشواری نیست؛ اما اینکه بتوانیم یک مدار را با وریلاگ خوب طراحی کنیم، بعضا ممکن است کار دشواری باشد. اما نگران نباشید؛ ما در اینجا با تمرکز بر یک طراحی ساده جلو می‌ر‌ویم و می‌کوشیم تا به ساده‌ترین حالت ممکن همه‌چیز را به …

ادامه نوشته »

 ابرخازن ها – ساخت UPS با ابرخازن

ابرخازن های UPS

در این مقاله به بررسی ابرخازن ها و نحوه‌ی ساخت UPS با ابرخازن ها می‌پردازیم. برای یک پروژه از ما خواسته شد تا یک سیستم قدرت پشتیبان را تهیه و برنامه‌ریزی کنیم که می‌تواند فعالیت میکروکنترلر را حدود 10 ثانیه پس از اتلاف انرژی حفظ کند. ایده بدین صورت است …

ادامه نوشته »

برنامه‌نویسی وب در ++C

برنامه‌نویسی وب در ++C

CGI چیست؟ رابط دروازه مشترک (Common Gate interface) یا CGI، مجموعه‌ای از استانداردها می‌باشد که چگونگی ردوبدل کردن اطلاعات بین سرور و یک اسکریپت دلخواه را تعریف می‌کند. مشخصات فعلی CGI توسط NCSA نگه‌داری می‌شود.CGI ،NCSA را به صورت زیر تعریف می‌کند. رابط دروازه مشترک، استانداردی برای دروازه خروجی برنامه …

ادامه نوشته »

چند نخی یا Multithreading در ++C

چند نخی یا Multithreading در ++C

چند نخی شکل ویژه‌ای از چند وظیفه‌ای (multitasking) است. چند وظیفه‌ای خاصیتی است که به کامپیوتر این امکان را می‌دهد تا دو یا چند برنامه را به طور همزمان اجرا کند. در حالت کلی، دو نوع چند وظیفه‌ای وجود دارد: مبتنی بر پروسس‌ (process-based) و مبتنی بر نخ (thread-based). چند …

ادامه نوشته »

مدیریت سیگنال‌ها در ++C

مدیریت سیگنال‌ها در ++C

سیگنال‌ها وقفه‌هایی (interrupt) هستند که از جانب سیستم عامل به یک پروسس (process) تحویل داده می‌شوند و می‌توانند یک برنامه را به صورت دائمی‌ پایان دهند. می‌توان با فشردن کلید Ctrl+C در لینوکس، یونیکس، Mac OS X یا ویندوز یک وقفه ایجاد کرد. سیگنال‌هایی وجود دارند که یک برنامه نمی‌تواند …

ادامه نوشته »

پیش‌پردازنده‌ها یا Preprocessor در ++C

پیش پردازنده‌ها یا Preprocessor در ++C

پیش پردازنده‌ها دستوراتی هستند که به کامپایلر اعلام خواهند کرد که اطلاعات را پیش از آغاز عملیات کامپایل، چگونه پیش پردازش کنند. همه دستورات پیش‌پردازنده با # آغاز می‌شوند. در هر خط، قبل از دستور پیش پردازنده  فقط استفاده از کارکترهای فضای خالی مجاز است. دستورات پیش‌پردازنده دستورات ++C به …

ادامه نوشته »

الگوها یا Templates در ++C

الگوها یا Templates در ++C

در این جلسه به بررسی الگوها یا Templates در ++C خواهیم پرداخت. الگوها پایه و اساس برنامه‌نویسی جنریک (generic) می‌باشند. در این برنامه‌نویسی، کد به روشی نوشته می‌شود که به هیچ نوع داده  خاصی وابسته نباشد. یک الگو طرح یا فرمولی برای ساختن یک کلاس یا تابع جنریک است. کانتینرهای …

ادامه نوشته »

فضای نام یا Namespace در ++C

فضای نام یا Namespace در ++C

وضعیتی را تصور کنید که دو فرد با اسم مشابه یعنی Zara، در یک کلاس داریم. اگر بخواهیم بین آنها تفاوت روشنی به وجود بیاوریم، مجبور خواهیم بود که علاوه بر نام آنها از اطلاعات اضافی مانند محل سکونت – اگر در جاهای متفاوتی از هم زندگی می‌کنند – و …

ادامه نوشته »

حافظه پویا در ++C

حافظه پویا در ++C

درک مناسب از نحوه عملکرد حافظه پویا (داینامیک) کمک شایانی به برنامه نویسان ++C خواهد کرد. حافظه در برنامه ++C به دو بخش تقسیم خواهد شد. Stack: همه متغیرهای تعریف شده درون تابع در حافظه stack ذخیره خواهند شد. Heap: این بخش، حافظه استفاده نشده برنامه است و می‌توان در …

ادامه نوشته »

سون سگمنت چیست؟

نمایشگر های سون سگمنت

سون سگمنت‌ها ( seven-segment display) دسته‌ای از نمایشگرهای پرکاربرد الکترونیکی هستند که می‌توانند اعداد 0 تا 9 را نمایش دهند. از آن‌ها به طور عمده در ساعت‌های دیچیتال، تایمرها و ماشین‌حساب‌ها برای نمایش اطلاعات عددی استفاده می‌شود. همان‌طور که احتمالا از نام آن‌ها می‌توانید حدس بزنید، این نمایشگرها از 7 …

ادامه نوشته »

اعضای استاتیک یک کلاس در ++C

اعضای استاتیک یک کلاس در ++C

با استفاده از کلیدواژه static می‌توان اعضای یک کلاس را به صورت ایستا (استاتیک) تعریف کرد. تعریف یک عضو کلاس به صورت استاتیک بدین معناست که بدون توجه به تعداد اشیا ساخته شده از کلاس، تنها یک کپی از عضو استاتیک وجود خواهد داشت. یک عضو استاتیک بین همه اشیا …

ادامه نوشته »

اشاره‌گر به کلاس در ++C

اشاره‌گر به کلاس ++C

اشاره‌گر به کلاس در ++C، دقیقاً مشابه اشاره‌گر ساختارها می‌باشد و دقیقاً به صورت مشابه،  برای دسترسی به اعضای کلاس از طریق آن، از عملگر دسترسی عضو <- استفاده می‌شود. همانند همه اشاره‌گرها، باید اشاره‌گر را پیش از استفاده مقداردهی اولیه کرد. اجازه دهید با مثال زیر مفهوم اشاره‌گر به …

ادامه نوشته »

محصورسازی داده (Data Encapsulation) در ++C

محصورسازی داده (Data Encapsulation) در ++C

همه برنامه‌های ++C متشکل از عناصر بنیادین زیر هستند. دستورات برنامه (کد): بخشی از برنامه است که عملیات را انجام می‌دهد و تابع نامیده می‌شود. داده برنامه: داده اطلاعات برنامه است که توابع برنامه‌ی آن را تغییر می‌دهند. محصورسازی مفهومی ‌از برنامه‌نویسی شی‌گرا است که داده و توابع تغییردهنده داده‌ها …

ادامه نوشته »

اورلود عملگر تخصیص در ++C

اورلود عملگر تخصیص در ++C

می‌توان عملگر تخصیص (=) را همانند دیگر عملگرها اورلود کرد و همانند سازنده کپی (copy constructor) می‌توان از آن برای ایجاد یک شی جدید استفاده کرد. مثال زیر نحوه اورلود کردن عملگر تخصیص را نشان می‌دهد. #include <iostream> using namespace std; class Distance { private: int feet; // 0 to …

ادامه نوشته »

سازنده‌ها و تخریب‌کننده‌های کلاس در ++C

سازنده‌ها و تخریب کننده‌های کلاس در ++C

سازنده کلاس سازنده کلاس (Constructor) یک تابع عضو ویژه از کلاس می‌باشد که هنگام ایجاد یک شی جدید از آن کلاس اجرا می‌شود. سازنده دقیقا هم‌نام کلاس می‌باشد و هیچ نوع داده‌ای (حتی void) را برنمی‌گرداند. سازنده‌ها در مقداردهی اولیه به متغیرهای عضو بسیار مفید هستند. مثال زیر مفهوم سازنده …

ادامه نوشته »