آموزش PIC

PIC چیست؟ آشنایی با میکروکنترلر PIC (جلسه#1)

در سال 1980 ، اینتل اولین میکروکنترلر را با معماری هاروارد 8051 توسعه داد و از آن زمان میکروکنترلر ها به نوعی یک انقلاب در الکترونیک و صنعت ایجاد کردند. با پیشرفت تکنولوژی در طول زمان ، در حال حاضر ما میکروکنترلر های کارآمد و کم مصرف تری مثل AVR , ARM , PIC را داریم. این میکروکنترلر ها با قابلیت استفاده از آخرین پروتکل های ارتباطی مثل USB و … توانایی بیشتر و استفاده آسان تری دارند. جدیدا آردوینو (Arduino) و رزبری پای به طور کامل دید رو نسبت به میکروکنترلر تغییر دادند.

با یک مقدمه ساده در مورد میکروکنترلر های PIC و برخی از تنظیمات نرم افزار شروع میکنیم تا در آموزش های بعدی مشکلی نداشته باشیم.

معماری میکروکنترلر PIC

میکروکنترلر های PIC توسط شرکت میکروچیپ (Microchip Technologies) در سال 1993 معرفی شدند. در ابتدا این میکروکنترلر ها به عنوان بخشی از پردازنده های برنامه نویسی اطلاعات (PDP) توسعه پیدا کردند و هر دستگاه جانبی محیطی به این میکروکنترلر متصل شده بود. از این رو اسم PIC برای این کنترل کننده رابط های محیطی انتخاب شد. شرکت میکروچیپ ، خیلی از IC های سری PIC را توسعه داد و در حال حاضر میتوانیم هر برنامه کوچیک و بزرگی را با آنها طراحی کنیم.

هر میکروکنترلر بر اساس معماری ساخته میشود و معروفترین نوع معماری ، معماری هاروارد است. میکروکنترلر های PIC در اساس این معماری هستند که متعلق به خانواده کلاسیک 8051 است.

مقدمه کوتاه درباره معماری هاروارد

برای مثال ، میکروکنترلر PIC16F877A شامل :

  • پردازنده داخلی (CPU)
  • پورت ورودی و خروجی (I/O)
  • حافظه (Memory organization)
  • مبدل آنالوگ / دیجیتال (A/D)
  • تایمر / کانتر (Timer / Counter)
  • وقفه (Interrupts)
  • ارتباط سریال (Serial Communication)
  • نوسانگر (Oscillator)
  • ماژول CCP

این بخش ها PIC را به یک میکروکنترلر قدرتمند برای مبتدی ها تبدیل میکند. نمودار کلی معماری PIC را میتوانید در تصویر زیر ببینید :

بخش های میکروکنترلر PIC
بخش های میکروکنترلر PIC

CPU مخفف : Central Processing Unit است. یعنی واحد پردازش مرکزی

این میکروکنترلر دارای یک پردازنده مرکزی برای انجام عملیات های حسابی ، تصمیم گیری منطقی و عملیات های مرتبط با حافظه است. CPU باید بین RAM و سایز لوازم جانبی میکروکنترلر هماهنگ باشد.

این بخش شامل یک واحد منطقی ALU است و با استفاده از این واحد عملیات های ریاضی و تصمیم های منطقی انجام میشود.

واحد بعدی ، واحد حافظه است و این واحد برای ذخیره دستور العمل ها استفاده میشود.

واحد بعدی ، CU یعنی واحد کنترل است.

این بخش به عنوان یک راه ارتباط بین CPU و سایز لوازم جانبی میکروکنترلر عمل میکند!

RAM مخفف Random Access Memory و به معنی حافظه دسترسی تصادفی است.

این بخش ، سرعت میکروکنترلر مارو تعیین میکند. RAM شامل بانکهای ثبت شده است که هر کدام کار مخصوص خود را انجام میدهد.

به طور کلی ، بانکهای رم به دو نوع تقسیم میشود:

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید
  1. ثبت عمومی (GPR – General Purpose Register)
  2. ثبت عملکرد ویژه (SFR – Special Function Register)

همانطور که از اسم آن ها معلوم است، GPR برای عملکرد های ثبت عمومی مثل جمع و تفریق و غیره استفاده میشود. این نوع عملیات ها در 8 بیت محدود هستند.

همه رجیستر های تحت GPR قابل خواندن و نوشتن هستند. این عملیات ها هیچ کاری نمیکنند مگر اینکه در برنامه مشخص شده باشد.

SFR برای انجام وظیفه های پیچیده مورد استفاده قرار میگیرد، عملکرد های این نوع 16 بیتی هستند. رجیستر آن ها فقط میتواند خوانده شود، و ما نمیتوانیم هرچیزی را در آنها بنویسیم.

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

آموزش PIC
آموزش PIC

ROM :

ROM مخفف Read Only Memory است و یعنی حافظه فقط خواندنی. ROM جایی است که برنامه ما ذخیره میشود.

این قسمت حداکثر اندازه برنامه ما را تعیین میکند. از این رو به ROM “حافظه برنامه ” میگویند! وقتی که MCU در حال اجرا است ، برنامه ذخیره شده در ROM بر طبق چرخه ای که تعیین کردیم اجرا میشود. این حافظه فقط وقت برنامه ریزی PIC استفاده میشود، و در حین اجرای برنامه حافظه فقط خواندنی میشود.

EEPROM :

EEPROM مخفف Electrically Erasable Programmable ROM و یعنی حافظه قابل خواندن و قابل برنامه ریزی و پاک شدن الکتریکی

EEPROM یه نوع دیگه از حافظه است، این حافظه اطلاعاتی که در حین اجرای برنامه تولید میشود را ذخیره میکند. این اطلاعات فقط از لحاظ الکتریکی پاک میشوند و این مقادیر در PIC حفظ میشوند.

Flash Memory :

حافظه فلش مثل PROM است (حافظه (فقط) خواندنی و قابل برنامه) میتوانیم هزار بار بخونیم و پاک کنیم. به طور کلی میکروکنترلر PIC از این نوع ROM استفاده میکند.

I/O :

I/O مخفف Input / Output است و به معنی ورودی و خروجی.

به طور مثال ، PIC16F877A شامل پنج ورودی است (Port : A , B , C , D , E)

از این پنج ورودی ، پورت A شانزده بیتی و پورت E سه بیتی و بقیه پورت ها هشت بیتی هستند.

پین های موجود در این پورت ها میتوانند به عنوان ورودی یا خروجی بر اساس پیکربندی استفاده بشوند.

علاوه بر انجام عملیات های I/O پین ها هم میتوانند برای عملکرد های ویژه مثل SPI ، Interrupt , PWM و … مورد استفاده قرار بگیرند.

Bus : اصطلاح Bus ، دسته ای از سیم ها هستند که ورودی و خروجی را به RAM و CPU متصل میکنند. همچنین برای ارسال و دریافت اطلاعات استفاده میشوند.

آموزش PIC میکروکنترلر PIC
آموزش PIC میکروکنترلر PIC
4.8 (6 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

4 نظر

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

    1. سلام عزیز
      با هر میکروکنترلری قابل انجام هست
      با آردوینو، ای وی آر، پیکو و… میتوانید انجام بدهید که دوره های آموزشی این ها در سایت موجود هست

  2. هنوز هم تو صنعت استفاده میشه؟ یا رقبایی که از آرم استفاده میکنند جایگزین pic شدند ؟

    1. سلام عزیز
      هنوز هم استفاده میشه اما گزینه های خیلی بهتری هست که استفاده از اون ها منطقی تره

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

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