سلام امیدوارم حالتون خوب باشه. در این مقاله قصد داریم شما را با جزئیات مربوط به تراشه میکروکنترلر PIC16F676 آشنا کنیم. این تراشه یک میکروکنترلر 8 بیتی PIC است که توسط Microchip معرفی شده است و عمدتاً در اتوماسیون و کاربردهای تعبیه شده استفاده می شود. این دستگاه دارای یک پردازنده فلاش پیشرفته و فناوری نانو وات است که به آن کمک می کند تا حداقل انرژی را با توانایی انجام تعدادی عملکرد روی یک تراشه کوچک مصرف کند. یک ماژول ADC  10بیتی به تراشه اضافه شده است که آن را با دستگاه های دیگر سازگار می کند و سیگنال آنالوگ را به عنوان ورودی می پذیرد و آن را به دیجیتال تبدیل می کند. این ماژول میکروکنترلر در مقایسه با سایر کنترلرهای موجود در جامعه PIC فضای حافظه کمی کمتری دارد و با طرح 14 پین (PDIP) عرضه می شود. اگرچه تراشه های دیگری با تعداد ایه های بیشتر نیز موجود است، PDIP بیشتر برای توسعه پروژه‌های دانشجویی استفاده می‌شود. در این آموزش، همه چیز مربوط به PIC16F676، پایه بندی، ویژگی‌ها، بلوک دیاگرام داخلی آن و برنامه‌های کاربردی آن را پوشش می‌دهیم. 

مقدمه ای بر PIC16F676

PIC16F676 یک میکروکنترلر PIC  8بیتی است که با پردازنده فلاش پیشرفته و فناوری نانو وات عرضه می شود. این تراشه در سه بسته بندی مختلف به نام‌های PDIP، SOIC و،TSSOP  موجود است. PDIP با طرح 14 پایه (بیشتر استفاده می شود) در حالی که دو مورد دیگر نیز در بست هبندی 14 پین عرضه می شوند.

حجم حافظه برنامه 1.7 کیلوبایت است که برای ذخیره تعداد دستورات روی یک تراشه استفاده می شود. در حالی که RAM  128 بایت است و EEPROM با فضای حافظه در حدود 64 بایت عرضه می شود.

8 کانالADC  10بیتی روی برد تعبیه شده است که عمدتاً برای تبدیل سیگنال آنالوگ به دیجیتال استفاده می شود. و این مبدل 10 بیتی نقش حیاتی برای حسگرهای رابط ایفا می کند، بطوریکه مقادیر سیگنال آنها را به شکل آنالوگ دریافت می کند و آنها را به دیجیتال تبدیل می کند.

نوسان ساز کریستالی تا حداکثر مقدار 20 مگاهرتز را می توان برای تولید پالس های ساعت برای همگام سازی عملیات داخلی استفاده کرد.

  1. توصیف پایه های PIC16F676

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

پایه بندی

شکل زیر پایه بندی PIC16F676 را نشان می دهد.

بسته بندی PDIP دارای رابط 14 پایه است در حالی که دو بسته بندی SOIC و TSSOPنیز از 14 پایه تشکیل شده است.

بسته بندی PDIP برای توسعه پروژه های فردی استفاده می شود در حالی که دو مورد دیگر در دستگاه های الکترونیکی صنعتی استفاده و اضافه می شوند.

توضیحات پایه ها

جدول زیر شرح هر پایه و عملکرد اصلی مربوط به هر پایه را نشان می دهد.

Pin#Pin NamePin Description
13RA0 AN0 CIN+ ICSPDATDigital I/O Pin Analog Channel 0 Comparator   Input Programming Data
12RA1 AN1 CIN- VREF ICSPCLKDigital I/O Pin Analog Channel 1 Comparator   Input Voltage Reference Programmin Clock  
11RA2 AN2 COUT T0CKI INTDigital I/O Pin Analog Channel 2 Comparator   Output Clock Input for Timer0 Interrupt
4RA3 MCLR VPPDigital I/O Pin Master Clear Reset   Programming Voltage Input
3RA4 T1G AN3 OSC2 CLKOUT  Digital I/O Pin Gate Timer1 Analog   Channel 3 Crystal Oscillator Output. In RC mode, this pin has a 1/4 frequency   of OSC1  
2RA5 T1CKI OSC1 CLKINDigital I/O Pin Clock Timer1 Crystal   Oscillator Input External Clock Input
10RC0 AN4Digital I/O Pin Analog Channel 4
9RC1 AN5Digital I/O Pin Analog Channel 5
8RC2 AN6Digital I/O Pin Analog Channel 6
7RC3 AN7Digital I/O Pin Analog Channel 7
6RC4Digital I/O Pin
5RC5Digital I/O Pin
14VSSGround Pin
1VDDVoltage Supply Pin

2. ویژگی های PIC16F676

ویژگی‌های هر تراشه نقش مهمی ایفا می‌کند تا بتوانید مرتبط‌ ترین ماژول PIC را برای پروژه خود انتخاب کنید. این ویژگی ها برای ماژول های مختلف موجود در بازار متفاوت است. قبل از شروع کار بر روی پروژه، مطمئن شوید که ویژگی های قطعه با نیازهای پروژه شما و ماهیت خروجی نهایی سازگار است و مطابقت دارد. جدول زیر ویژگی کامل PIC16F676 را نشان می دهد.

PIC16F676 Features
No. of Pins14
CPU8-Bit PIC
Operating Voltage2 to 5.5 V
Program Memory1.7 K
Program Memory TypeFlash
RAM64 Bytes
EEPROM128 Bytes
ADC Number of ADC Channels10-Bit 8
I/O Ports (2) I/O PinsA, C 12
Power Saving ModeYes
External Oscillatorup to 20 MHz
Timer (2)16-Bit Timer (1) 8-Bit Timer (1)
ManufacturerMicrochip
Comparators1
Individual Programmable Weak Pull-upsYes
EEPROM Data Retention40 Years
Watchdog TimerYes
Power on ResetYes
Master Clear ResetYes
In-Circuit Serial ProgrammingYes
Minimum Operating Temperature-40 C
Maximum Operating Temperature125 C

3. عملکرد PIC16F676

تعدادی واحد مرتبط با این ماژول PIC وجود دارد. در زیر واحدهای اصلی PIC16F676 آورده شده است.

تایمر

PIC16F676 با یک تایمر 16 بیتی و یک تایمر 8 بیتی ارائه می شود که می توانند به دو صورت استفاده شوند، یعنی به عنوان تایمر و همچنین شمارنده. این تایمرها دارای قابلیت انتخاب کلاک پالس داخلی و خارجی هستند. توجه به این نکته مهم است که حالت تایمر در افزایش چرخه دستورالعمل نقش دارد در حالی که حالت شمارنده لبه پایین و بالا رونده هر پایه را افزایش می دهد.

برنامه نویسی سریال درون مدار

برنامه نویسی سریال در مدار (ICSP) که برنامه نویسی درون سیستم (ISP) نیز نامیده می شود، یک عملکرد مفید است که در کنترلر گنجانده شده است که به شما کمک می کند تا در دستگاه نصب و چسبانده شده قابل برنامه ریزی باشد.

Master Clear Reset (MCLR)

MCLR، پایه 4 در بسته بندی PDIP، بازنشانی خارجی تراشه را فراخوانی می کند. تنظیم مجدد با پایین نگه داشتن این پایه انجام می شود. فیلتر نویز در مسیر MCLR گنجانده شده است که اجازه حذف و شناسایی پالس های باریک را می دهد در حالی که بیت پیکربندی MCLRE ورودی MCLR را غیرفعال می کند. لازم به ذکر است که این پین MCLR به ریست های داخلی وابسته نیست.

تایمر سگ نگهبان

PIC16F88 دارای یک تایمر نگهبان داخلی است که در صورت گیرکردن برنامه در حلقه بی نهایت به ماژول در بازنشانی مجدد کمک می کند. این تایمر باید پس از هر 3 دستورالعمل به مقدار اولیه بازنشانی شود تا از صفر شدن آن جلوگیری شود. تایمر نگهبان عمدتاً یک تایمر شمارش معکوس است که از 1000 شروع می شود و در نهایت به صفر می رسد.

4. کامپایلر PIC

کامپایلر MPLAB C18. یک کامپایلر استاندارد است که برای کامپایل کردن کد در کنترلر استفاده می شود. شما می توانید این کامپایلر را به صورت آنلاین از سایت رسمی میکروچیپ دریافت کنید.

این 3 کامپایلر برتر PIC C گزینه‌های زیادی برای انتخاب در اختیار شما قرار می‌دهند، اما MikroC Pro For PIC عمدتاً برای این منظور استفاده می‌شود، هنوز هم بستگی به نیازها و نیازهای شما دارد.

کدی که در کامپایلر می نویسیم یک فایل هگز تولید می کند که سپس به میکروکنترلر منتقل می شود تا دستورات مورد نظر را فراخوانی و اجرا کند.

5. چیدمان و کار حافظه PIC16F676

تا اینجا در خصوص پایه بندی ، توضیحات پایه ها، ویژگی‌ها و کامپایلر مورد استفاده برای کنترلر را توصیف کردیم. در این بخش به چیدمان حافظه می پردازیم که نقش حیاتی در اجرای کد دارد. حافظه تراشه تعدادی دستورالعمل را ذخیره می کند که می توان آنها را به سه نوع اصلی تقسیم کرد: حافظه برنامه (ROM) حافظه RAM (حافظه داده) حافظه EEPROM (حافظه داده) اکنون هر حافظه را یکی یکی بحث می کنیم و ویژگی های اصلی را توصیف می کنیم. 

حافظه برنامه

حافظه برنامه برای ذخیره دائمی یک برنامه در حال اجرا استفاده می شود. این حافظه به نام حافظه ROMیا حافظه غیر فرار نیز شناخته می شود و به منبع تغذیه بستگی ندارد. حافظه ROM حدود 1.7K بایت است و با استفاده از فناوری FLASH طراحی شده است.

داده EEPROM

EEPROM بخشی از حافظه داده است و برنامه های در حال اجرا را با یک استثنا به طور دائم ذخیره می کند، یعنی این حافظه به طور غیرمستقیم برنامه ریزی می شود، برخلاف حافظه برنامه که مستقیماً برنامه ریزی می شود. EEPROM حاوی فضای حافظه در حدود 64 بایت است و می تواند توسط چندین رجیستر کنترل قابل دسترسی و آدرس دهی باشد.

حافظه RAM داده

حافظه RAMداده ها را به طور موقت ذخیره می کند و پس از خاموش شدن منبع تغذیه داده ها را حذف می کند. این حافظه همچنین به عنوان حافظه فرار شناخته می شود و به دو بخش اصلی به نام های ثبت های عمومی (GPR) رجیسترهای عملکرد ویژه (SFR) طبقه بندی می شود. از داده هایی که شامل کاراکتر یا دنباله بیت فردی هستند. حافظه داده را می توان به عنوان RAM استاتیک استفاده کرد و به چندین بانک تقسیم می شود. رجیسترهای SRF عمدتاً برای مدیریت و کنترل ماژول های لوازم جانبی استفاده می شوند. در زیر رجیسترهای اصلی موجود در حافظه رم آورده شده است. رجیستر STATUS. این رجیستر عمدتاً برای سوئیچ بین بانک های ذکر شده استفاده می شود. تنظیم بیت پنجم این ثبات عملکرد بانک 1 را نشان می دهد در حالی که تنظیم مجدد آن بانک 0 را آدرس می دهد. رجیستر TRISA. این ثبات برای پیکربندی PORTA به عنوان ورودی یا خروجی استفاده می شود. مقدار 0 آن را به عنوان ورودی توصیف می کند و مقدار 1 خروجی را نشان می دهد. رجیستر TRISB. این ثبات مشابه TRISA است و برای پیکربندی پین ها به عنوان ورودی یا خروجی برای PORTB استفاده می شود. رجیستر W. این رجیستر با هیچ رجیستری در بانک های گفته شده مرتبط نیست و فقط با برنامه آدرس دهی می شود. این رجیستر یک رجیستر در ناحیه GPR است در حالی که همه رجیسترهای دیگر که در بالا توضیح داده شد SFR هستند. توجه به این نکته ضروری است که مقادیر مورد نیاز در رجیستر W نوشته شده و قبل از نوشتن در PORTA یا PORTB به رجیستر هدف منتقل می شوند.

6. بلوک دیاگرام PIC16F676

بلوک دیاگرام معماری داخلی به شما کمک می کند تا عملکردهای اصلی کنترلر و نحوه کار، ارتباط و اتصال آنها در داخل بدنه کنترلر را درک کنید. شکل زیر بلوک دیاگرام PIC16F88 را نشان می دهد.

این ماژول PIC دارای دو پورت A و B است و هر پورت شامل 8 پین است که بیت های مرتبه بالاتر به رجیستر STATUS تعلق دارند.

در حالی که CCP1 به بیت CCPMX موجود در رجیستر Configuration Word 1 وابسته است.

7. پروژه ها و کاربردهای PIC16F676

پروژه های دانشجویی برای کنترل سنسور و موتور

GPS و سیستم های امنیتی

مورد استفاده در اتوماسیون خانگی و صنعتی

نمونه سازی مدارهای سفارشی

ارتباط سریال

پروژه های گرمایش مرکزی

سیستم تعبیه شده امبدد

8. چرا از میکروکنترلرهای PIC استفاده کنید؟

کنترل‌کننده‌های PIC با هدف ارائه آسان ماژول و پیکربندی آسان رابط معرفی شدند.

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

نیازی به اضافه کردن ماژول ADC اضافی برای تبدیل مقادیر آنالوگ به مقادیر دیجیتال نیست، زیرا ماژول ADC داخلی که در تراشه کوچک گنجانده شده است بهترین کار را برای اتصال سنسورهای مختلف روی برد دارد.

کامپایلر و پروگرامر برای کنترلرها به راحتی در بازار موجود است. انجمن های زیادی در سایت میکروچیپ در دسترس است که در آن به سوالات شما پاسخ داده می شود.