معرفی میکروکنترلر PIC16F84

ROBOTICS

کاربر فعال مهندسی رباتیک
يك ميكرو كنترلر چيست؟

ميكرو كنترولر در واقع يك كامپيوتر تك تراشه اي ارزانقيمت ميباشد . كامپيوتر تك تراشه اي بدين معني است كه كل سيستم كامپيوتر در داخل تراشه مدار مجتمع جاي داده شده است . نخستين ويژگي ميكروكنترلر قابليت ذخيره سازي و اجراي برنامه است ( كه مهمترين ويژگي آن به شمار ميرود) . ميكرو كنترلر داراي يك CPU (واحد پردازشگر مركزي ) ، حافظه RAM ، حافظه ROM ، خطوط I/O ، (خطوط ورودي و خروجي ) ، درگاهاي سريال و موازي و زمان سنج است و برخي اوقات نيز شامل ادوات جانبي نظير مبدل A/D (مبدل آنالوگ به ديجيتال ) و مبدل D/A (مبدل ديجيتال به آنالوگ ميباشد .

چرا از ميكروكنترلر استفاده ميشود ؟

همان گونه كه قبلا توضيح داده شد ميكروكنترلر ها ، كامپيوتر هاي ارزانقيمت هستند . قابليت ذخيره سازي و اجراي برنامه هاي منحصر به فرد ، موجب شده است تا ميكرو كنترلر ها بسيار انعطاف پذير شوند . به عنوان مثال شخص ميتواند ميكروكنترلر را به گونه اي برنامه ريزي كند كه بر اساس شرايط از پيش تعيين شده (وضعيت خطوط ورودي و خروجي )، تصميم گيري نمايد . قابليت انجام عمليات رياضي و منطقي موجب شده است تا ميكرو كنترلر بتواند عملكرد مدارهاي منطقي پيچيده و مدارهاي الكترونيكي را تقليد كند.

برنامه هاي ديگر ميتوانند موجب شوند كه ميكرو كنترلر مشابه يك مدار در شبكه عصبي و يا به صورت يك كنترل كننده با منطق فازي عمل كند . ميكروكنترلر ها وظيفه هوش مصنوعي را در دستگاهاي مربوط به "حسابهاي هوشمند " در فروشگاهها بر عهده دارند.

آينده الكترونيك مختص ميكرو كترلر ها ميباشند :

اگر به مجله هاي الكترونيكي كه در كشورمان و در ساير كشورها چاپ ميشوند توجه كنيد مقاله هايي را مشاهده خواهيد كرد كه در طراحي مدارهاي آنها به طور مستقيم و يا به صورت تركيبي از ميكروكنترلر ها استفاده شده است . ميكروكنترلر ها به دليل انعطاف پذيري زيادي كه دارند با صرف هزينه اندك ميتوانند قدرت زياد ، كنترل و انتخابهاي مختلفي را ارائه كنند . به همين دليل است كه مهندسين الكترونيك و افرادي كه علاقه مند به كارهاي الكترونيكي هستند برنامه ريزي ميكروكنترلر ها را فر ميگيرند تا از مزاياي ميكروكنترلر ها در مدارات خود بهره ببرند و سطح كيفي مدار خود را در حد بالايي حفظ كنند .

اگر دستگاهاي الكترونيكي خانگي را بررسي كنيد خواهيد ديد كه از ميكروكنترلر ها تقريبا در تمامي آنها استفاده شده . اين نيز دليل ديگري براي آشنايي با ميكروكنترلر هاست .

سير تكاملي ميكرو كنترلر ها :

اولين ميكزوكنترلر ها در اواسط دهه 1970 ساخته شدند . اين ميكروكنترلر ها در ابتدا پردازنده هاي ماشين حساب بودند كه داراي حافظه برنامه كوچكي از نوع Rom ، حافظه داده بسيار محدود از نوع RAM و تعدادي درگاه ورودي خروجي بودند.

با توسعه فناوري سيليكن ، ميكروكنترلرهاي 8 بيتي قويتري ساخته شدند در اين ميكرو كنترلرها علاوه بر بهينه شدن دستور العمل ها تايمر/ شمارنده روي تراشه ، امكانات وقفه و كنترل بهينه شده خطوط I/O نيز به آنها اضافه شده است.

خانواده 8051 در اوايل دهه 1980 توسط شركت اينتل معرفي گرديد و از آن زمان 8051 به عنوان يكي از محبوبترين ميكروكنترلر ها بوده و بسياري از شركت هاي ديگر نيز به توليد آن اقدام كردند . امكاناتي نظير مبدل آنالوگ به ديجيتال ، حجم نسبتا بزرگ از حافظه برنامه و حافظه داده ، مدولاتور عرض پالس (PWM) در خروجي ها و حافظه فلش كه امكان پاك كردن و برنامه ريزي مجدد آن توسط سيگنال هاي الكتريكي وجود دارد ،در آن تعبيه شده است .

با توجه به اهميت و گسترش روز افزون كاربردهاي ميكرو كنترلر ها و محدوديت هائي كه ميكرو كنترلر ها ي خانواده MCS51 ايجاد ميكرد . شركت Microchip نسل جديدي از ميكرو كنترلر ها با عنوان PIC به بازار عرضه كرد . با توجه به قابليت بسيار زياد اين ميكروكنترلرها ، به سرعت مورد استقبال قرار گرفت و تحول بزرگي در استفاده از ميكروكنترلر ها ايجاد كرد .

كلمه PIC سرنام كلمات Programmable Interface Controller ميباشد كه شركت Microchip Technology آن را به عنوان علامت تجاري بر گزيده و از آن براي مشخص كردن ميكرو كنترلر هاي خود استفاده ميكند.
 

ROBOTICS

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

مزيت اين معماري آن است كه ميتوان به هر دو بخش حافظه در يك دستورالعمل دسترسي داشت .

اغلب PIC ها داراي سه بلاك حافظه داخلي ميباشند :

۱_ Data memory : كه اين حافظه به Bank0 و Bank1 و ... تقسيم ميشوند .هر بانك شامل حافظه RAM معمولي (general purpose register) و ريجيستر هاي مخصوص (status,intcon,option,…) مي باشد.

2_ Eeprom memory : يكي از تفاوت هاي اصلي ميكروهاي گذشته مثل سري 8051 با PIC و AVR ، همين حافظه ميباشد. اين حافظه تقريبا بينابين RAM و ROM از نظر كاربرد ميباشد . اين حاظه به صورتي است كه ميتوان در حين برنامه نويسي ، اطلاعات را در آن ذخيره يا پاك كرد (RAM) واطلاعات آن در صورت قطعي برق نيز پاك نمي شود (ROM) . نسيت به RAM و ROM داراي سرعت به مراتب پايين تر ميباشد .

3_Program memory : برنامه اي كه توسط كاربر نوشته ميشود . در اين حافظه LOAD ميشود . به عنوان مثال PIC16F877 (40 پين) داراي پروگرام كانتر 13 بيتي براي آدرس دهي كردن Flash program memory به حجم (8k*14bit) ميباشد .

PIC ها از لحاظ نوع Program memory به 4 دسته تقسيم ميشوند .

1) Flash Program Memory

مزيت اين گونه PIC ها سرعت نسبتا بالاي خواندن اطلاعات از ROM و درنتيجه سرعت بالاتر اجراي عمليات ميباشد . حافظه هاي فلش موجب گرديده تا سرعت اجراي برنامه از 12 كلاك در 8051 به 4 كلاك در PIC و 1 كلاك در AVR كاهش يابد .

خانواده هايي كه نام IC داراي F باشد داراي اين گونه حافظه ميباشند (مانند 16F84 , 16F877.....) .

2) Eprom program memory

خانواده هايي كه نام IC داراي C يا CE باشد.(16C84)

3)Rom Program Memory

خانواده هايي كه نام IC داراي CR باشد (16CR84)

4) Eeprom Program Memory

همچنين بعضي از PIC ها نيز داراي رنج ولتاژي گسترده ميباشند كه داراي مشخصه Lدر نام IC مي باشد.(PIC16LF84)


ما در اين بيشتر در مورد ميكروهاي نوع اول بررسي ميكنيم ( يعني همان Flash Program Memory ها).

در بحث آينده در مورد ويژگي هاي PIC 16F84 صحبت خواهد شد و ولي قبل از آن توصيه ميكنم به DATA SHEET اين IC مراجعه كنيد و خودتان اطلاعاتي را در مورد آن كسب كنيد .

در صفحه اول Data Sheet شماي كلي و وضعيت پايه ها و ويژگيهاي كلي نوشته شده و در صفحات بعدي در مورد چگونگي كاربرد آن ( فعلا توصيه ميكنم صفحه اول اين Data Sheet را مطالعه كنيد )

براي download روي لينك زير كليك كنيد .

Data sheet : 16F84A device
 

ROBOTICS

کاربر فعال مهندسی رباتیک
اطلاعاتي كه Data Sheet دراختار ما قرار ميدهد :

در ابتدا PIC هاي از اين خانواده كه داراي ويژگي هاي يكسان ميباشند معرفي شده است .

درقسمت بعد مشخصه هاي CPU كه در اين ميكرو از نوع RISC (Reduce Instruction Set Computer )ميباشد گفته شده :

داراي 32 دستور العمل يك كلمه اي ميباشد (تعداد دستورات نسبت به ميكرو هاي ديگر به مراتب كمتر)

همه دستورالعمل ها در يك سيكل ( 4 Clock) اجرا ميشود .(سرعت آن 1.5 برابر 8051 با كريستال يكسان )

در قسمت بعد حداكثر فركانس كاري را 10MHz مشخص نموده است .

طبق جدول تراشه PIC16F84 داراي 1k كلمه (word) ( عرض هر كلمه برابر 14bit ) حافظه برنامه Flash ، 68 bytes حافظه داده (RAM) و 64 bytes حافظه Eeprom ميباشد . (در مورد اين حافظه ها ميتوانيد به قسمت قبل سر بزنيد ) .

پهناي هر دستورالعمل (flash program memory) 14 بيت و پهناي داده (data memory) 8 بيت ميباشد.

15*8 bits به ثبات داخلي ميكرو براي انجام عمليات هاي خاص (SFR)مانند option و Statuse و TMR0 و ..... تعبيه گرديده است و 8*8 bits جهت حافظه پشته (stack) (در قسمت بعد در مورد اين گونه حافظه ها توضيح داده خواهد شد ) .

داراي 4 منبع وقفه ميباشد (در اين مورد نيز در قسمت وقفه كامل توضيح داده خواهد شد ):

قابليت 1000 بار خواندن و نوشتن حافظه flash

قابليت 10.000.000 بار خواندن و نوشتن حافظه Eeprom

قابليت 40 سال نگهداري اطلاعات Eeprom

مشخصات جانبي :

داراي 13 پايه ورودي خروجي (دو درگاه ورودي- خروجي به نام A با 5 پايه و B با 8 پايه ) ، هر پين ورودي خروجي داراي مدار Latch ميباشد ، يعني هر بيت اطلاعات كه از طريق ميكرو به عنوان خروجي به پورت ريخته ميشود روي پورت باقي ميماند تا وقتي كه اطلاعات جديد روي آن ريخته شود . همچنين اگر هر بيت اطلاعات به عنوان ورودي روي پورت ها ريخته شود تا وقتي اطلاعات جديد وارد نگردد تغيير نميكند .

اغلب PIC ها در پورت B داراي pull up داخلي ضعيف ميباشند ( اين بدان معنا هست كه پايه ورودي با يك مقاومت پر اهم به Vcc متصل شده ) . بيت هفتم از رجيستر OPTION_REG مربوط به pull up ميباشد . اگر اين بيت صفر باشد pull up فعال ميشود و اگر يك باشد pull up غير فعال ميگردد. وقتي پايه اي به عنوان خروجي تعريف گردد pull up آن خود به خود غير فعال ميشود .

بيشترين جريان كه هر پايه ميتواند بدهد 20 mA است كه ميتواند يك LED را مستقيما روشن نمايد.

بيشترين جرياني كه ميتواند دريافت كند 25 mA ميباشد .

تايمر/كانتر 8 بيت (در اين مورد نيز بعدا مفصلا توضيح داده خواهد شد )

در قسمت بعد از خصوصيات برتر اين ميكرو كنترلر توضيح داده شده كه مهمترين آن محدوده ولتاژ كار ميكرو را بين 2تا 6 ولت مشخص نموده است و توان مصرفي ميكرو را در حالت هاي مختلف بيان نموده كه به شرح زير است :

با ولتاژ 5 ولت و فركانس 4MHz ، 2 ميلي آمپر

با ولتاژ 2 ولت با فركانس 32kHz ، 15 ميكرو آمپر

و در حالت Standby و ولتاژ 2 ولت ، 1 ميكرو آمپر

اين اطلاعاتي بود كه از صفحه اول data sheet ميكرو استخراج شده است كه در قسمت هاي بعد در مورد بعضي از قسمتهايي كه در برنامه نويسي به آنها احتياج داريم صحبت خواهيم كرد .

در قسمت آينده در مورد ثباتها و درگاه هاي ورودي و خروجي صحبت ميكنيم و تقريبا از قسمت آينده برنامه نويسي شروع خواهد شد .

شاد و پيروز باشيد.

نوشته شده توسط ميثم عباسی
 

ROBOTICS

کاربر فعال مهندسی رباتیک
معرفی پایه های میکرو PIC 16F84



در شکل تصویر میکروکنترلر رو می بینید به عنوان توضیح به ترتیب از بالا به پایین سمت چپ از 1 تا 9 و سمت راست از 10 تا 18 از پایین به بالا (سر میکرو رو به بالاست ) پایه ها معرفی می شوند.

پایه شماره ی یک1- به عنوان بیت سوم از پورت A است .( درسته که نوشته شده RA2 ولی این پورت A شماره گذاریش از صفر شروع میشه) /

پایه شماره دو2-به عنوان بیت چهارم از پورت A است .

پایه شماره سه3- بیت پنجم از پورت A

پایه شماره 4- پایه ی ریست این میکروکنترلر هستش که باید در حالت عادی با یک مقاوت به VCC تغذیه وصل باشد و برای ریست کردن باید لحظه ای به زمینGND وصل شود.

پایه شماره ی پنج5- به زمین GND وصل می شود.

پایه شماره ی شش 6- بیت اول پورت B

پایه شماره هفت 7-بیت دوم پورت B

پایه شماره هشت 8- بیت سوم پورت B

پایه شماره نه 9- بیت چهارم از پورت B

پایه شماره ده10- بیت پنجم پورت B

پایه شماره یازده 11-بیت ششم پورت B

پایه شماره دوازده 12-بیت هفتم پورت B

پایه شماره ی سیزده13-بیت هشتم پورت B

پایه شماره ی چهارده VDD یا همون VCC وی سی سی خودمون (به عنوان تغذیه )

پایه شماره پانزده به یک سر کریستال وصل می شه

پایه شماره شانزده به سر دیگر کریستال وصل میشه

پایه شماره ی هفده17- بیت اول پورت A

, پایه ی شماره ی 18 هجده -بیت دوم پورت A
 

ROBOTICS

کاربر فعال مهندسی رباتیک
نقشه ی مدارپروگرمر میکرو کنترلر pic16f84



نقشه ی مدارپروگرمر میکرو کنترلر pic16f84 رو در تصویر مشاهده میکنید.

تصویر مقابل نمای پورت موازی پرینتر هستش.



در سمت چپ تصویرزیر یک مستطیل خط تیره ای بیانگر پورت پرینتر است ( پورت پرینتر 25 پایه است)که دایره های مربوطه نماد چند پایه ی مورد نیاز از پورت رو نشون می دهند. از بالا به پایین پایه ها رو توضیح می دهم :

عدد 5 یعنی پایه ی شماره پنج پورت پرینتر ( منظور از D3 که داخل پرانتز نوشته شده خروجی دیتای شماره ی3 هستش ) همچنین عدد 2 یعنی پایه شماره ی دو از پرینتر و عدد 10 پایه ی شماره 10 از پرینتر

عدد 3 یعنی پایه ی شماره ی 3 از پورت و عدد 4 منظور پایه ی شماره ی 4 از پورت و عدد 20 یعنی پایه ی شماره ی 20از پورت پرینتر که باید به زمین مدار یعنی GND متصل شود.

(توجه : ممکن است وقتی کابل پرینتر رو ببرید به جای 25 سیم تعداد سیم های کمتری رو مشاهده کنید-بنابراین بهتره پایه های 18 تا 25 رو به زمین GND تغذیه ی مدارتون متصل کنید.)

همانطور که می بینید و میدونید مثلث های در سمت چپ نماد بافر های آی سی 7407 مدار پروگرمر ما هستند که شماره های پایه های آنها نوشته شده اند فقط خواهشی که شما دارم به جهت این بافر ها دقت کنید تا پروگرمر کارامد داشته باشید.بقیه ی مدار فکر میکنم مثل موارد بالا نیاز به توضیح نداشته باشه چون نقشه واقعا گویا طراحی شده تنها توضیح که باقی میمونه مربوط به ال ای دی LED زرد و قرمز هست.

دیود نورانی ( LED) زرد مربوط به تغذیه پروگرمر و دیود نورانی قرمز مربوط به لحظه ی پروگرم کردن برنامه هستش که در اون لحظه روشن می شود.

تغذیه ی ورودی این پروگرمر بین 17 تا 25 ولت هستش که میتونید با یک ترانس خوب تهیه می شود . اون مستطیل کوچیک که در سمت راست در قسمت تغذیه می بینید پک یکسوساز هست.

فکر می کنیم خیلی جالب و زایع توضیح دادم خلاصه اگر جایی از این پروگرمر براتون سوال برانگیز بود می دونید که چه کار کنید .
 

Similar threads

بالا