سلام امیدوارم حالتون خوب باشه. در این مقاله قصد داریم شما را با جزئیات مربوط به تراشه میکروکنترلر PIC16F88 آشنا کنیم. این تراشه یک میکروکنترلر 8 بیتی PIC است که توسط Microchip معرفی شده است و عمدتاً در اتوماسیون و کاربردهای تعبیه شده استفاده می شود. این دستگاه دارای یک پردازنده فلاش پیشرفته و فناوری نانو وات است که به آن کمک می کند تا حداقل انرژی را با توانایی انجام تعدادی عملکرد روی یک تراشه کوچک مصرف کند. یک ماژول ADC 10بیتی به تراشه اضافه شده است که آن را با دستگاه های دیگر سازگار می کند و سیگنال آنالوگ را به عنوان ورودی می پذیرد و آن را به دیجیتال تبدیل می کند. این ماژول میکروکنترلر در مقایسه با سایر کنترلرهای موجود در جامعه PIC فضای حافظه کمی کمتری دارد و با طرح 18 پین (PDIP) عرضه می شود. اگرچه تراشه های دیگری با تعداد ایه های بیشتر نیز موجود است، PDIP بیشتر برای توسعه پروژههای دانشجویی استفاده میشود. در این آموزش، همه چیز مربوط به PIC16F88، پایه بندی، ویژگیها، بلوک دیاگرام داخلی آن و برنامههای کاربردی آن را پوشش میدهیم.
مقدمه ای بر PIC16F88
PIC16F88 یک میکروکنترلر PIC 8بیتی است که با پردازنده فلاش پیشرفته و فناوری نانو وات عرضه می شود. این تراشه در سه بسته بندی مختلف به نامهای PDIP، SSOP و QFN موجود است. PDIP با طرح 18 پایه (بیشتر استفاده می شود) در حالی که دو مورد دیگر به ترتیب در بسته های 20 و 28 پین عرضه می شوند.
حجم حافظه برنامه 7 کیلوبایت است که برای ذخیره تعداد دستورات روی یک تراشه استفاده می شود. در حالی که RAM 368بایت است و EEPROM با فضای حافظه در حدود 256 بایت عرضه می شود.
ADC 10بیتی روی برد تعبیه شده است که عمدتاً برای تبدیل سیگنال آنالوگ به دیجیتال استفاده می شود. و این مبدل 10 بیتی نقش حیاتی برای حسگرهای رابط ایفا می کند، بطوریکه مقادیر سیگنال آنها را به شکل آنالوگ دریافت می کند و آنها را به دیجیتال تبدیل می کند.
نوسان ساز کریستالی تا حداکثر مقدار 20 مگاهرتز را می توان برای تولید پالس های ساعت برای همگام سازی عملیات داخلی استفاده کرد.
از نظر انجام و راه اندازی کاربردهایی که مستقیماً یا از راه دور با اتوماسیون مرتبط هستند، نمی توانیم اهمیت این ماژول را نادیده بگیریم.
- توصیف پایه های PIC16F88
پایه بندی هر قطعه برای ایجاد قالب بندی آن بسیار مفید است، در حالی که توضیحات پایه یک نمای کلی از آنچه که هر پین قادر به انجام آن است به شما میدهد.
پایه بندی
شکل زیر پایه بندی PIC16F88 را نشان می دهد.
بسته بندی PDIP دارای رابط 18 پایه است در حالی که دو بسته بندی SSOP و QFN به ترتیب از 20 و 28 پین تشکیل شده اند.
بسته بندی PDIP برای توسعه پروژه های فردی استفاده می شود در حالی که دو مورد دیگر در دستگاه های الکترونیکی صنعتی استفاده و اضافه می شوند.
توضیحات پایه ها
جدول زیر شرح هر پایه و عملکرد اصلی مربوط به هر پایه را نشان می دهد.
Pin# | Pin Name | Pin Description |
17 | RA0 AN0 | I/O Bidirectional pin Analog pin channel 0 |
18 | RA1 AN1 | I/O Bidirectional pin Analog pin channel 1 |
1 | RA2 AN2 CVREF VREF- | I/O Bidirectional pin Analog pin channel 2 Comparator Output (VREF) A/D reference voltage input (Low) |
2 | RA3 AN3 VREF+ C1OUT | I/O Bidirectional pin Analog pin channel 3 A/D reference voltage input (High) Comparator 1 Output |
3 | RA4 AN4 T0CKI C2OUT | I/O Bidirectional pin Analog pin channel 4 Used for clock input to the timer0 Comparator 2 Output |
4 | RA5 MCLR VPP | I/O Bidirectional pin This is a master clear low reset pin Programming voltage input |
15 | RA6 OSC2 CLKOUT | I/O Bidirectional pin This pin is connected to a crystal oscillator and acts as a crystal oscillator output pin. In RC mode, this pin has a 1/4 frequency of OSC1 |
16 | RA7 OSC1 CLKIIN | I/O Bidirectional pin This pin is connected to a crystal oscillator and acts as a crystal oscillator input pin External Clock Source Input |
6 | RB0 INT CCP1 | I/O Bidirectional pin External interrupt pin Output for PWM and Compare and Input for Capture |
7 | RB1 SDI SDA | All PORTB Pins are software programmed I/O Bidirectional pin SPI data in I2C data |
8 | RB2 SDO RX DT | I/O Bidirectional pin SPI data out Receiver Pin Synchronous detect |
9 | RB3 PGM CCP1 | I/O Bidirectional pin Programming enable pin for Low-Voltage ICSP™ PWM Output for Compare and PWM, while Input Capture |
10 | RB4 SCK SCL | I/O Bidirectional (Interrupt-on-change) pin SPI Synchronous serial clock input/output I2C Synchronous serial clock Input |
11 | RB5 SS TX CK | I/O Bidirectional (Interrupt-on-change) pin SPI Slave select Serial transmit pin Synchronous clock |
12 | RB6 AN5 PGC T1OSO T1CKI | I/O Bidirectional (Interrupt-on-change) pin Analog pin channel 5 In-Circuit Debugger and programming clock pin. Oscillator output for Timer1 External clock input for Timer1 |
13 | RB7 AN6 PGD T1OSI | I/O Bidirectional (Interrupt-on-change) pin Analog pin channel 6 ICSP programming data and In-Circuit Debugger pin Oscillator input for Timer1 |
5 | Vss | Ground Pin |
14 | Vdd | Voltage Supply Pin |
2. ویژگی های PIC16F88
ویژگیهای هر تراشه نقش مهمی ایفا میکند تا بتوانید مرتبط ترین ماژول PIC را برای پروژه خود انتخاب کنید. این ویژگی ها برای ماژول های مختلف موجود در بازار متفاوت است. قبل از شروع کار بر روی پروژه، مطمئن شوید که ویژگی های قطعه با نیازهای پروژه شما و ماهیت خروجی نهایی سازگار است و مطابقت دارد. جدول زیر ویژگی کامل PIC16F88 را نشان می دهد.
PIC16F88 ویژگی های | |
No. of Pins | 18 (PDIP) |
CPU | 8-Bit PIC |
Operating Voltage | 2 to 5.5 V |
Program Memory | 7K |
Program Memory Type | Flash |
RAM | 368 Bytes |
EEPROM | 256 Bytes |
ADC Number of ADC Channels | 10-Bit 7 |
I/O Ports (2) I/O Pins | A, B 16 |
Packages | 18-pin PDIP 20-pin SSOP 28-pin QFN |
External Oscillator | up to 20 MHz |
Timer (3) | 16-Bit Timer (1) 8-Bit Timer (2) |
Manufacturer | Microchip |
Comparators | 2 |
SSP | Yes |
PWM | 1 (10-Bit) |
Watchdog Timer | Yes |
Comparators | 2 |
Master Clear Reset | Yes |
In-Circuit Serial Programming | Yes |
Low Voltage Programming | Yes |
EEPROM Data Retention | 40 Years |
Minimum Operating Temperature | -40 C |
Maximum Operating Temperature | 125 C |
Technology Used | NanoWatt |
3. عملکرد PIC16F88
تعدادی واحد مرتبط با این ماژول PIC وجود دارد. در زیر واحدهای اصلی PIC16F88 آورده شده است.
تایمر
PIC16F88 با یک تایمر 16 بیتی و دو تایمر 8 بیتی ارائه می شود که می توانند به دو صورت استفاده شوند، یعنی به عنوان تایمر و همچنین شمارنده. این تایمرها دارای قابلیت انتخاب کلاک پالس داخلی و خارجی هستند. توجه به این نکته مهم است که حالت تایمر در افزایش چرخه دستورالعمل نقش دارد در حالی که حالت شمارنده لبه پایین و بالا رونده هر پایه را افزایش می دهد.
برنامه نویسی سریال درون مدار
برنامه نویسی سریال در مدار (ICSP) که برنامه نویسی درون سیستم (ISP) نیز نامیده می شود، یک عملکرد مفید است که در کنترلر گنجانده شده است که به شما کمک می کند تا در دستگاه نصب و چسبانده شده قابل برنامه ریزی باشد.
Master Clear Reset (MCLR)
MCLR، پایه 4 در بسته بندی PDIP، بازنشانی خارجی تراشه را فراخوانی می کند. تنظیم مجدد با پایین نگه داشتن این پایه انجام می شود. فیلتر نویز در مسیر MCLR گنجانده شده است که اجازه حذف و شناسایی پالس های باریک را می دهد در حالی که بیت پیکربندی MCLRE ورودی MCLR را غیرفعال می کند. لازم به ذکر است که این پین MCLR به ریست های داخلی وابسته نیست.
USART
ماژول USART که مخفف گیرنده و فرستنده ناهمزمان جهانی است، به تراشه اضافه شده است که عمدتاً برای تنظیم ارتباط سریال با دستگاه های دیگر استفاده می شود. دو پایه به نامهای TX و RX برای ارتباط سریال دخالت دارند، بطوریکه Tx پایه ارسال است که امکان انتقال دادههای سریال را به یک دستگاه دیگر میدهد، در حالی که Rx به عنوان پایه دریافت کننده بیت ها از یک دستگاه دیگر شناخته میشود.
تایمر سگ نگهبان
PIC16F88 دارای یک تایمر نگهبان داخلی است که در صورت گیرکردن برنامه در حلقه بی نهایت به ماژول در بازنشانی مجدد کمک می کند. این تایمر باید پس از هر 3 دستورالعمل به مقدار اولیه بازنشانی شود تا از صفر شدن آن جلوگیری شود. تایمر نگهبان عمدتاً یک تایمر شمارش معکوس است که از 1000 شروع می شود و در نهایت به صفر می رسد.
4. کامپایلر PIC
کامپایلر MPLAB C18. یک کامپایلر استاندارد است که برای کامپایل کردن کد در کنترلر استفاده می شود. شما می توانید این کامپایلر را به صورت آنلاین از سایت رسمی میکروچیپ دریافت کنید.
این 3 کامپایلر برتر PIC C گزینههای زیادی برای انتخاب در اختیار شما قرار میدهند، اما MikroC Pro For PIC عمدتاً برای این منظور استفاده میشود، هنوز هم بستگی به نیازها و نیازهای شما دارد.
کدی که در کامپایلر می نویسیم یک فایل هگز تولید می کند که سپس به میکروکنترلر منتقل می شود تا دستورات مورد نظر را فراخوانی و اجرا کند.
5. چیدمان و کار حافظه PIC16F88
تا اینجا در خصوص پایه بندی ، توضیحات پایه ها، ویژگیها و کامپایلر مورد استفاده برای کنترلر را توصیف کردیم. در این بخش به چیدمان حافظه می پردازیم که نقش حیاتی در اجرای کد دارد. حافظه تراشه تعدادی دستورالعمل را ذخیره می کند که می توان آنها را به سه نوع اصلی تقسیم کرد: حافظه برنامه (ROM) حافظه RAM (حافظه داده) حافظه EEPROM (حافظه داده) اکنون هر حافظه را یکی یکی بحث می کنیم و ویژگی های اصلی را توصیف می کنیم.
حافظه برنامه
حافظه برنامه برای ذخیره دائمی یک برنامه در حال اجرا استفاده می شود. این حافظه به نام حافظه ROMیا حافظه غیر فرار نیز شناخته می شود و به منبع تغذیه بستگی ندارد. حافظه ROM حدود 7K بایت است و با استفاده از فناوری FLASH طراحی شده است.
حافظه داده EEPROM
EEPROM بخشی از حافظه داده است و برنامه های در حال اجرا را با یک استثنا به طور دائم ذخیره می کند، یعنی این حافظه به طور غیرمستقیم برنامه ریزی می شود، برخلاف حافظه برنامه که مستقیماً برنامه ریزی می شود. EEPROM حاوی فضای حافظه در حدود 256 بایت است و می تواند توسط چندین رجیستر کنترل قابل دسترسی و آدرس دهی باشد.
حافظه داده RAM
حافظه RAMداده ها را به طور موقت ذخیره می کند و پس از خاموش شدن منبع تغذیه داده ها را حذف می کند. این حافظه همچنین به عنوان حافظه فرار شناخته می شود و به دو بخش اصلی به نام های ثبت های عمومی (GPR) رجیسترهای عملکرد ویژه (SFR) طبقه بندی می شود. از داده هایی که شامل کاراکتر یا دنباله بیت فردی هستند. حافظه داده را می توان به عنوان RAM استاتیک استفاده کرد و به چندین بانک تقسیم می شود. رجیسترهای SRF عمدتاً برای مدیریت و کنترل ماژول های لوازم جانبی استفاده می شوند. در زیر رجیسترهای اصلی موجود در حافظه رم آورده شده است. رجیستر STATUS. این رجیستر عمدتاً برای سوئیچ بین بانک های ذکر شده استفاده می شود. تنظیم بیت پنجم این ثبات عملکرد بانک 1 را نشان می دهد در حالی که تنظیم مجدد آن بانک 0 را آدرس می دهد. رجیستر TRISA. این ثبات برای پیکربندی PORTA به عنوان ورودی یا خروجی استفاده می شود. مقدار 0 آن را به عنوان ورودی توصیف می کند و مقدار 1 خروجی را نشان می دهد. رجیستر TRISB. این ثبات مشابه TRISA است و برای پیکربندی پین ها به عنوان ورودی یا خروجی برای PORTB استفاده می شود. رجیستر W. این رجیستر با هیچ رجیستری در بانک های گفته شده مرتبط نیست و فقط با برنامه آدرس دهی می شود. این رجیستر یک رجیستر در ناحیه GPR است در حالی که همه رجیسترهای دیگر که در بالا توضیح داده شد SFR هستند. توجه به این نکته ضروری است که مقادیر مورد نیاز در رجیستر W نوشته شده و قبل از نوشتن در PORTA یا PORTB به رجیستر هدف منتقل می شوند.
6. بلوک دیاگرام PIC16F88
بلوک دیاگرام معماری داخلی به شما کمک می کند تا عملکردهای اصلی کنترلر و نحوه کار، ارتباط و اتصال آنها در داخل بدنه کنترلر را درک کنید. شکل زیر بلوک دیاگرام PIC16F88 را نشان می دهد.
این ماژول PIC دارای دو پورت A و B است و هر پورت شامل 8 پین است که بیت های مرتبه بالاتر به رجیستر STATUS تعلق دارند.
در حالی که CCP1 به بیت CCPMX موجود در رجیستر Configuration Word 1 وابسته است.
7. پروژه ها و کاربردهای PIC16F88
پروژه های دانشجویی برای کنترل سنسور و موتور
GPS و سیستم های امنیتی
مورد استفاده در اتوماسیون خانگی و صنعتی
نمونه سازی مدارهای سفارشی
ارتباط سریال
پروژه های گرمایش مرکزی
سیستم تعبیه شده امبدد
8. چرا از میکروکنترلرهای PIC استفاده کنید؟
کنترلکنندههای PIC با هدف ارائه آسان ماژول و پیکربندی آسان رابط معرفی شدند.
این کنترلرها دارای لوازم جانبی داخلی با تعدادی عملکرد مرتبط با هر پین هستند که شما را از خرید قطعات اضافی رها می کند و کل پروژه را از نظر هزینه ارزان می کند که فضای کمتری را پوشش می دهد و به نظر می رسد وزن کمی هم داشته باشد.
نیازی به اضافه کردن ماژول ADC اضافی برای تبدیل مقادیر آنالوگ به مقادیر دیجیتال نیست، زیرا ماژول ADC داخلی که در تراشه کوچک گنجانده شده است بهترین کار را برای اتصال سنسورهای مختلف روی برد دارد.
کامپایلر و پروگرامر برای کنترلرها به راحتی در بازار موجود است. انجمن های زیادی در سایت میکروچیپ در دسترس است که در آن به سوالات شما پاسخ داده می شود.
دیدگاه خود را بنویسید