سلام، امیدوارم حالتون خوب باشه. در این مقاله، جزئیاتی را در خصوص تراشه میکروکنترلر PIC16F887 را ارائه خواهیم کرد. این یک میکروکنترلر 40 پایه ای خانواده PIC است که توسط Microchip معرفی شده است و جانشین PIC16F877A است. بطور کلی میکروکنترلرها با ارائه یک رابط بی عیب و نقص و توانایی انجام تعدادی عملکرد بر روی یک تراشه واحد، این فناوری را به گونه ای احیا کرده اند که به تعداد قطعات بیرونی کمتری نیاز است. این تراشه های قدرتمند با پوشش دادن پروژه هایی که بطور محلی یا از راه دور به کمک اتوماسیون مرتبط هستند کارها را آسان کرده اند. در این آموزش، ویژگی های اصلی، عملکرد، پایه بندی و کاربردهای PIC16F887 را بحث خواهیم کرد.
مقدمه ای بر PIC16F887
PIC16F887 یک میکروکنترلر 40 پایه (با بسته PDIP) و 8 بیتی با تکنولوژی CMOS است که با توان نانو وات عرضه می شود. قیمت مقرون به صرفه و معماری کاربر پسند، استفاده از این ماژول را آسان کرده و پیکربندی آن را آسان کرده است.
این میکروکنترلر در سه بسته شناخته شده به نام های PDIP، QFN و TQFP موجود است. PDIP با چیدمان 40 پین ارائه می شود در حالی که دو بسته بندی بعدی شامل 44 پین در هر طرح است.
PIC16F887 دارای 256 بایت حافظه داده EEPROM، 368 بایت RAM و 8K بایت حافظه برنامه است.
به غیر از قابلیت خود برنامه ریزی، دارای 2 مقایسه کننده، مبدل 10 بیتی آنالوگ به دیجیتال (A/D) با 14 کانال و توابع capture، مقایسه و PWM می باشد.
پورت سریال آسنکرون به تراشه اضافه شده است که می تواند به هر دو صورت گذرگاه مدار یکپارچه 2 سیمه I2C یا رابط جانبی سریال 3 سیمه (SPI) پیکربندی شود، ویژگی فرستنده گیرنده آسنکرون جهانی پیشرفته (EUSART) این تراشه را با دستگاه هایی که ارتباط سریال بخشی جدایی ناپذیر از پروژه است، سازگار می کند.
از جمله مواردی که این دستگاه را از نظر سهولت استفاده منحصر به فرد کرده است می توان به
حالت خواب صرفه جویی کننده در مصرف انرژی
محدوده دمای صنعتی و گسترده
محدوده ولتاژ کاری گسترده (2 تا 5.5 ولت)
مد لچ SR
تایمر روشن کردن تغذیه (PWRT) و تایمر راه اندازی نوسانگر (OST)
بازنشانی اتومات هنگام روشن شدن سیستم (POR)
بیدار شدن با توان بسیار کم (ULPWU)
پول آپ های ضعیف با قابلیت برنامه ریزی فردی
بازنشانی با کاهش سطح ولتاژ منع تغذیه (BOR) با گزینه کنترل نرم افزار
تایمر سگ نگهبانی با جریان پایین پیشرفته (WDT)
می توان گفت که این نسخه PIC یک انتخاب ایده آل برای تبدیل A/D در کاربردهای خودرو، مصرف کننده و صنعتی است.
1. توصیف پایه هایPIC16F887
توضیحات پایه های خروجی و ورودی Pinout و Pin برای بررسی عملکرد هر پین روی این تراشه کوچک الزامی است. چه تازه کار و چه متخصص باشید، برای درک بهتر تراشه باید عملکرد مربوط به هر پین را بدانید.
پایه بندی
شکل زیر پایه بندی کامل هر سه بسته به نام های PDIP، QFN و TQFP را نشان می دهد.
همانطور که قبلا توضیح داده شد، بسته PDIP شامل 40 پین است در حالی که دو بسته بندی دیگر دارای 44 پین هستند.
توضیحات پایه ها
PIC16F887 به طور گسترده در بسیاری از کاربردهای الکترونیکی استفاده می شود. برخی از پایه ها در کنترلر قادر به انجام بیش از یک عملکرد هستند که به ما امکان می دهد از پین بر اساس نیاز و خواسته های پروژه استفاده کنیم. عملکرد هر پین در جدول زیر لیست شده است.
شماره پایه | نام پایه | توصیف پایه |
2 | RA0 AN0/ULPWU C12IN0- | Digital I/O Pin Analog Input 0 Pin Comparator |
3 | RA1 AN1/ULPWU C12IN1- | Digital I/O Pin Analog Input 1 Pin Comparator |
4 | RA2 AN2 C2IN+ VREF-/CVREF | Digital I/O Pin Analog Input 2 Pin Comparator ADC Reference Input Voltage (low) |
5 | RA3 AN3 C1IN+ VREF+ | Digital I/O Pin Analog Input 3 Pin Comparator ADC Reference Input Voltage (high) |
6 | RA4 C1OUT T0CKI | Digital I/O Pin Comparator External clock input for Timer0 |
7 | RA5 AN4 C2OUT SS | Digital I/O Pin Analog Input 4 Pin Comparator Slave Select input for SPI |
33 | RB0 AN12 IOC/INT | Digital I/O Pin Analog Pin Interrupt-on-change |
34 | RB1 AN10 C12IN3- IOC | Digital I/O Pin Analog Pin Comparator Interrupt-on-change |
35 | RB2 AN8 IOC | Digital I/O Pin Analog Pin Interrupt-on-change |
36 | RB3 AN9 C12IN2- IOC PGM | Digital I/O Pin Analog Pin Comparator Interrupt-on-change Basic |
37 | RB4 AN11 IOC | Digital I/O Pin Analog Pin Interrupt-on-change |
38 | RB5 AN13 T1G IOC | Digital I/O Pin Analog Pin Timer Interrupt-on-change |
39 | RB6 IOC ICSPCLK | Digital I/O Pin Interrupt-on-change pin Basic |
40 | RB7 IOC ICSPDAT | Digital I/O Pin Interrupt-on-change pin Basic |
15 | RC0 T1OSO/T1CKI | Digital I/O Pin Timer |
16 | RC1 T1OSI CCP2 | Digital I/O Pin Timer ECCP |
17 | RC2 CCP1/P1A | Digital I/O Pin ECCP |
18 | RC3 SCK/SCL | Digital I/O Pin MSSP |
23 | RC5/SDO RC5 SDO | Digital I/O Pin SPI Data-Out Pin |
24 | RC5 SD0 | Digital I/O Pin MSSP |
25 | RC6 TX/CK | Digital I/O Pin USART |
26 | RC7 RX/DT | Digital I/O Pin USART |
19 | RD0 | Digital I/O Pin |
20 | RD1 | Digital I/O Pin |
21 | RD2 | Digital I/O Pin |
22 | RD3 | Digital I/O Pin |
27 | RD4 | Digital I/O Pin |
28 | RD5 P1B | Digital I/O Pin ECCP |
29 | RD6 P1C | Digital I/O Pin ECCP |
30 | RD7 P1D | Digital I/O Pin ECCP |
8 | RE0 AN5 | Digital I/O Pin Analog Pin |
9 | RE1 AN6 | Digital I/O Pin Analog Pin |
10 | RE2 AN7 | Digital I/O Pin Analog Pin |
13 | RA7 OSC1 CLKIN | Crystal Oscillator Input Pin |
14 | RA6 OSC2 CLKOUT | Crystal Oscillator Output Pin |
1 | RE3 MCLR VPP | ICSP Programming Enable Pin Master Clear Active Low Reset Pin |
11,32 | VDD | Voltage Supply Pin |
12,31 | VSS | Ground Pin |
2. ویژگی های PIC16F887
با نگاهی به ویژگی های اصلی هر تجهیز می توانید ماهیت آن را پیش بینی کنید. جدول زیر ویژگی های کامل PIC16F887 را نشان می دهد.
PIC16F887 ویژگی های | |
تعداد پایه ها | 40 |
CPU | 8 بیت |
Operating Voltage | 2 تا 5.5 ولت |
Program Memory | 8K |
Program Memory (Instructions) | 8192 |
RAM | 368 بایت |
EEPROM | 256 بایت |
ADC | 10 بیت |
I/O Ports (5) I/O Pins | A,B,C,D,E 35 |
Packages | 40-pin PDIP 44-pin QFN 44-pin TQFP |
External Oscillator | حداکثر 20 MHz |
Timer (3) | 16-Bit Timer (1) 8-Bit Timer (2) |
USART Protocol | 1 |
I2C Protocol | بلی |
SPI Protocol | بلی |
Brown-out Reset | بلی |
Watchdog Timer | بلی |
Comparators | 2 |
Master Synchronous Serial Port (MSSP) module | 1 |
Capture/Compare/PWM | 16bit/16bit/10bit |
Power Saving Sleep Mode | بلی |
Selectable Oscillator Option | بلی |
Operating Current | 11uA at 32 kHz, 2.0 V 220uA at 4 MHz, 2.0 V |
Temperature Range | -40 to 125 |
Oscillator Start-up Timer | بلی |
بررسی ویژگی های اصلی قبل از تهیه کنترلر به شما کمک می کند تا پروژه مورد نیاز خود را تجزیه و تحلیل و توسعه دهید.
بازنشانی در هنگام اعمال تغذیه و تاخیر در راه اندازی نوسانگر برخی از ویژگی های منحصر به فرد موجود در تراشه هستند.
3. عملکردهای PIC16F887
این مدل PIC عملکردهای زیادی را انجام می دهد که کاملاً مشابه عملکرد سایر کنترلرهای جامعه PIC هستند. عملکردهای اصلی PIC16F887 در زیر آمده است.
تایمر
PIC16F887 شامل یک تایمر 16 بیتی و دو تایمر 8 بیتی است که به هر دو صورت یعنی تایمر و شمارنده قابل استفاده است و دارای قابلیت انتخاب کلاک داخلی و خارجی است. حالت تایمر برای افزایش سیکل دستورالعمل استفاده می شود در حالی که در حالت شمارنده، به ازای لبه بالا یا پایین رونده اعمال شده به پایه، شمارش را افزایش می دهد. وقتی بیت T0CS (OPTION_REG<5>) تنظیم شود، حالت شمارنده انتخاب می شود و وقتی پاک شد، حالت تایمر انتخاب می شود.
ریست کاهش ولتاژ تغذیه قابل تنظیم (BOR)
BOR تابعی است که هنگامی که Vdd (تغذیه ولتاژ) به زیر یک ولتاژ آستانه میرسد، کنترلکننده را به تنظیم مجدد می برد. یک تفاوت کوچک بین BOR و Power On Reset وجود دارد، بطوریکه طیف وسیعی از ولتاژهای قابل تنظیم برای محافظت از تراشه پس از کاهش ولتاژ در خط تغذیه ارائه می شود. به منظور قرار دادن تاخیر در BOR، تایمر پاور باید فعال نگه داشته شود. به غیر از کنترل نرم افزاری، حالت BOR همچنین می تواند از طریق تنظیمات BOREN در یک ثبات جداگانه کنترل و پیکربندی میشود.
USART
PIC16F887 با ماژول USART پیشرفته ارائه می شود. این ماژول از TX - برای ارسال داده های سریال به دستگاه های دیگر استفاده می شود و یک پایه RX - برای دریافت داده های سریال است.
تایمر سگ نگهبان (Watch-dog Timer)
PIC16F887 دارای تایمر محافظ داخلی است که عمدتاً برای تنظیم مجدد کنترلر هنگامی که برنامه در حین کامپایل قطع می شود یا در حلقه نامحدود برنامه گیر می کند استفاده می شود. مهم است که توجه داشته باشید تایمر باید پس از هر 3 دستورالعمل به مقدار اولیه اش بازنشانی شود تا در شرایط عادی از صفر شدن مقدار بارگذاری شده در آن جلوگیری شود. تایمر نگهبان چیزی نیست جز یک تایمر شمارش معکوس و از 1000 شروع می شود و به مرور به صفر می رسد.
بازنشانی در هنگام روشن شدن
عملکرد Power On Reset کنترلر را هنگام روشن شدن و برقدار کردن میکروکنترلر بازنشانی می کند. اگر خطای ناشناخته ای در تراشه رخ دهد، روشن کردن دستگاه، آن را از حلقه اجرای برنامه حذف می کند و دستگاه را از عملکرد نادرست نجات می دهد.
حالت خواب
عملکرد خواب صرفه جویی در مصرف انرژی یک حالت خاموش شدن جریان پائین را ایجاد می کند. این حالت خواب را می توان با استفاده از وقفه، تایمر نگهبان یا تنظیم مجدد خارجی به پایان رساند.
4. کامپایلر PIC
Microchip کامپایلر استاندارد خود را برای کنترلر PIC به نام MPLAB C18 Compiler معرفی کرده است. این کامپایلر را می توانید به صورت آنلاین از سایت رسمی میکروچیپ دانلود کنید.
کد نوشته شده در کامپایلر یک فایل هگز ایجاد می کند که به میکروکنترلر منتقل می شود تا عملکرد خاصی را اجرا کند.
نرم افزارهای دیگری نیز برای کامپایل برنامه موجود است و MikroC Pro For PIC عمدتاً برای این منظور استفاده می شود.
این 3 کامپایلر برتر C به شما انعطاف پذیری می دهد تا هر کامپایلری را بر اساس نیازها و نیازهای خود انتخاب کنید.
PICKit3 عمدتاً برای نوشتن کد در کنترلر که یک رایتر استاندارد PIC است استفاده می شود
5. چیدمان و کار حافظه PIC16F887
کل حافظه در این کنترلر به سه نوع اصلی به نام های EEPROM، RAM و ROM تقسیم می شود. همه آنها در کنترلر از نظر اجرا و فراخوانی دستورالعمل ها با برخی استثناها نقش حیاتی دارند.
حافظه ROM
حافظه ROM که به عنوان حافظه غیر فرار نیز شناخته می شود، برنامه در حال اجرا را به طور دائم ذخیره می کند و به منبع تغذیه وابسته نیست، یعنی در صورت قطع منبع تغذیه، می تواند برنامه را حفظ کند. حافظه ROM حدود 8K است که با فناوری FLASH ساخته شده است.
حافظه EEPROM
این حافظه از لحاظ ذخیره سازی دائمی برنامه های در حال اجرا کاملاً شبیه حافظه ROM است، با این استثنا که دستورالعمل های موجود در EEPROM را می توان در حین کارکرد کنترلر تغییر داد. این شامل فضای حافظه در حدود 256 بایت است که بسیار کمتر از حافظه ROM است، اما برای ذخیره دائمی برنامه کافی است.
حافظه RAM
حافظه RAM که به عنوان حافظه فرار نیز شناخته می شود، به دو بخش اصلی به نام های رجیسترهای همه منظوره (GPR) و رجیسترهای عملکرد ویژه (SFR) تقسیم می شود. این حافظه طبیعتاً فرار است زیرا برنامه را به طور موقت ذخیره می کند و وابسته به برق است، یعنی پس از خاموش شدن منبع تغذیه دستورالعمل های ذخیره شده در RAM حذف می شوند.
رجیسترها در حافظه RAM محل نگهداری داده ها در کنترلر هستند. یک ثبات واحد می تواند دستورالعمل، آدرس ذخیره سازی و هر نوع داده ای از جمله توالی بیت یا کاراکترهای مجزا را در خود جای دهد.
رجیسترها به دو بانک به نامهای بانک 1 و بانک 2 طبقهبندی میشوند که رجیسترها از 00H تا 0BH و 80H تا 8BH در دسته SFR قرار میگیرند و بقیه GPR هستند.
هر بانک حاوی 128 بایت فضای حافظه است که در آن 12 مکان اول برای SFR و بقیه برای GPR رزرو شده است.
بیایید در مورد چند رجیستر با جزئیات صحبت کنیم. STATUS. این رجیستر نقش سوئیچ بین بانک ها را ایفا می کند. تنظیم بیت پنجم این رجیستر نشان می دهد که ما در حال بحث در مورد بانک 1 هستیم در حالی که تنظیم مجدد آن نشان می دهد که ما در حال بحث در مورد بانک 0 هستیم. TRISA. این ثبات برای پیکربندی PORTA به عنوان ورودی یا خروجی استفاده می شود. مقدار 1 خروجی و مقدار 0 ورودی را نشان می دهد. TRISB. این ثبات از نظر تعیین پین ها به عنوان ورودی یا خروجی مشابه TRISA است و برای PORTB استفاده می شود. رجیستر W. تمام ثبات های ذکر شده در بالا SFR هستند در حالی که رجیستر W یک GPR است. این رجیستر بخشی از هیچ رجیسترهای بانکی نیست و فقط توسط برنامه قابل دسترسی است. مقادیر مورد نظر روی رجیستر W نوشته شده و قبل از نوشتن روی PORTA یا PORTB به رجیستر هدف منتقل می شوند.
6. بلوک دیاگرام PIC16F887
شکل زیر بلوک دیاگرام PIC16F887 را نشان می دهد.
حافظه برنامه دارای فضای حافظه 8K بایت است که می تواند 8192 کلمه را پیکربندی کند.
برخی از پین ها را می توان با عملکردهای دیگر چندگانه از جمله وقفه خارجی، ورودی ساعت Timer0 و تغییر در وقفه PORTB متصل کرد.
7. پروژه ها و کاربرهای PIC16F887
PIC16F887 عمدتاً در پروژه های دانشجویی استفاده می شود، یعنی کنترل موتورها و رابط سنسور.
مورد استفاده در پروژه های گرمایش مرکزی
تولید دیتالاگر دما
ارتباط سریال
مورد استفاده در سیستم های بهداشتی و امنیتی
پروژه های حسگر گاز
سیستم یکپارچه
مورد استفاده در اتوماسیون صنعتی
8. چرا از میکروکنترلرهای PIC استفاده می کنیم؟
میکروکنترلرهای PIC به طور گسترده در اکثر کاربردهای الکترونیکی استفاده میشوند، زیرا رابط کاربری آسانی را ارائه میدهند که نیازی به مهارت قبلی برای تجربه عملی با ماژول ندارد. این کنترلرها ارزان هستند و توانایی انجام تعدادی کارکرد با حداقل مدار را دارند. کنترلرهای PIC از نظر کارایی و سرعت پردازش بالاتر از کنترلرهای Atmel مانند 8051 بهتر عمل کرده اند. بیشتر اوقات، صنایع اتوماسیون این کنترلرها را برای انجام عملیات های مختلف ترجیح می دهند و از آنها استفاده می کنند زیرا مصرف برق بسیار کمی دارند.
دیدگاه خود را بنویسید