SlideShare a Scribd company logo
1 of 162
Download to read offline
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
‫مدرس‬:
‫اصفهانی‬ ‫منعمیان‬ ‫امیر‬
‫مکانیک‬ ‫مهندسی‬ ‫دکترای‬
‫امیرکبیر‬ ‫صنعتی‬ ‫دانشگاه‬
‫مکاترونیک‬‫کاربردی‬۱
1
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫مقدمه‬‫ای‬‫بر‬‫میکروکنترلرها‬
–‫پيشرفت‬‫مدارهای‬‫مجتمع‬‫امکان‬‫مجتمع‬‫کردن‬‫صدها‬‫هزار‬‫ترانزيستور‬‫را‬‫در‬‫يک‬‫تراشه‬‫واحد‬‫ممکن‬‫ساخت‬
–‫اولين‬‫کامپيوترها‬‫با‬‫اضافه‬‫کردن‬‫ادوات‬‫جنبي‬‫مانند‬،‫حافظه‬‫خطوط‬‫ورودی‬-‫خروجي‬،‫تايمر‬‫و‬‫غيره‬‫ساخته‬‫شدند‬
–‫افزايش‬‫زياد‬‫حجم‬‫مدار‬‫در‬‫يک‬‫تراشه‬‫موجب‬‫ايجاد‬‫مدارهای‬‫مجتمعي‬‫شد‬‫که‬‫شامل‬‫پردازنده‬‫و‬‫ادوات‬‫جنبي‬‫بود‬
–‫به‬‫اين‬‫ترتيب‬‫اولين‬‫تراشه‬‫يک‬‫ريز‬،‫کامپيوتر‬‫يا‬‫آنچه‬‫که‬‫بعدها‬‫به‬‫عنوان‬‫ميکروکنترلر‬‫شناخته‬،‫شد‬‫به‬‫و‬‫جود‬‫آمد‬
2
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
3
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫مقدمه‬‫ای‬‫بر‬‫میکروکنترلرها‬
–‫تاريخچه‬
–‫سال‬1969،‫اينتل‬‫اولين‬‫ميکروپروسسور‬4‫بيتي‬‫با‬‫سرعت‬6000‫عمل‬‫در‬‫هر‬‫ثانيه‬‫را‬‫روانه‬‫بازار‬‫کرد‬.
–‫مدتي‬،‫بعد‬‫‌های‬‫ت‬‫شرک‬Intel‫و‬Texas Instruments‫ميکروپروسسور‬8‫بيتي‬‫با‬‫نام‬8008‫توليد‬‫کردند‬.
–‫آدرس‬‫دهي‬kb16،‫حافظه‬‫داشتن‬45‫دستورالعمل‬‫و‬‫سرعت‬300000‫عمل‬‫در‬‫هر‬‫ثانيه‬‫از‬‫قابليت‬‫های‬‫اين‬‫پروسسور‬
‫بود‬.
–‫اين‬‫ميکروپروسسور‬،‫مادر‬‫همه‬‫ميکروپروسسورهای‬‫امروزی‬‫است‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
4
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫مقدمه‬‫ای‬‫بر‬‫میکروکنترلرها‬
–‫ميکروکنترلرها‬‫در‬‫مقابل‬‫ميکروپروسسورها‬
–‫تفاوت‬‫ميکروکنترلر‬‫با‬‫ميکروپروسسور‬‫در‬‫عملکرد‬‫آنهاست‬
–‫به‬‫منظور‬‫استفاده‬‫از‬‫يک‬‫ميکروپروسسور‬،‫ساير‬‫اجزا‬‫مانند‬،‫حافظه‬‫فرستنده‬‫و‬‫گيرنده‬‫داده‬‫و‬‫غيره‬‫بايد‬‫به‬‫آن‬‫ا‬‫ضافه‬‫شود‬
–‫در‬‫ميکروکنترلر‬‫همه‬‫اجزا‬‫الزم‬‫برای‬‫کارکرد‬‫در‬‫کنار‬‫يکديگر‬‫تعبيه‬‫شده‬‫اند‬.‫به‬‫همين‬‫دليل‬‫هيچ‬‫وسيله‬‫خارج‬‫ي‬‫ديگری‬
‫برای‬‫عملکرد‬‫آن‬‫نياز‬‫نيست‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
5
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫برخی‬‫مفاهیم‬‫پايه‬
–،‫بيت‬،‫بايت‬‫نيبل‬‫و‬‫کلمه‬
‫تعداد‬‫ارقام‬‫باينري‬‫بندي‬ ‫تقسيم‬
0Bit
0000Nibble
00000000Byte
0000000000000000Word
‫بايت‬ ‫تعداد‬‫بندي‬ ‫تقسيم‬
1024=210‫هزار‬ ‫يک‬ ‫از‬ ‫بيش‬Kilobyte
5760481=220‫ميليون‬ ‫يک‬ ‫از‬ ‫بيش‬Megabyte
8247410731=230‫ميليارد‬ ‫يک‬ ‫از‬ ‫بيش‬Gigabyte
7766275110991=240‫ترليارد‬ ‫يک‬ ‫از‬ ‫بيش‬Terabyte
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
6
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫برخی‬‫مفاهیم‬‫پايه‬
–‫بسته‬‫بندی‬
–‫به‬‫شکل‬‫ظاهری‬‫و‬‫تعداد‬‫‌های‬‫ه‬‫پاي‬‫يک‬،‫ميکروکنترلر‬‫بسته‬‫بندی‬‫ميکروکنترلر‬‫گويند‬
–‫ميکروکنترلرها‬‫مي‬‫توانند‬‫به‬‫شکل‬‫مربع‬‫و‬‫يا‬‫مستطيل‬‫باشد‬
–‫تعداد‬‫پايه‬‫های‬‫آن‬‫بسته‬‫به‬‫نوع‬‫ميکروکنترلر‬‫مي‬‫تواند‬‫متنوع‬‫باشد‬
–‫بسته‬‫بندی‬OTP‫ميکروکنترلر‬PIC
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
7
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫برخی‬‫مفاهیم‬‫پايه‬
–‫بسته‬‫بندی‬
–‫بسته‬‫بندی‬SMT‫ميکروکنترلر‬PIC
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
8
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫برخی‬‫مفاهیم‬‫پايه‬
–‫بسته‬‫بندی‬
–‫بسته‬‫بندی‬COB‫ميکروکنترلر‬PIC
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
9
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫برخی‬‫مفاهیم‬‫پايه‬
–‫مقاومت‬Pull Up‫و‬Pull Down
–‫‌که‬‫ي‬‫هنگام‬‫کليد‬S1‫بسته‬‫است‬‫وضعيت‬‫ورودی‬1‫و‬‫خروجي‬2‫کامال‬
‫مشخص‬‫و‬‫پايدار‬‫است‬(‫ورودی‬1‫و‬‫خروجي‬‫صفر‬‫است‬)
–‫در‬‫صورت‬‫عدم‬‫اعمال‬‫ورودی‬‫به‬‫پين‬1(‫قطع‬‫کليد‬S1)‫وضعيت‬‫اين‬‫پين‬
‫در‬‫اصالح‬‫شناور‬‫خوانده‬‫مي‬‫شود‬
–‫اکثر‬‫گيتها‬‫تمايل‬‫به‬‫شناوری‬‫به‬‫سمت‬‫وضعيت‬‫فعال‬(high)‫دارند‬
–‫اين‬‫حالت‬‫بسيار‬‫ناپايدار‬‫است‬‫و‬‫هر‬‫نويز‬‫الکتريکي‬‫مي‬‫تواند‬‫وض‬‫عيت‬‫آنها‬
‫را‬‫به‬‫سمت‬‫غيرفعال‬(low)‫سوق‬‫دهد‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
10
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫برخی‬‫مفاهیم‬‫پايه‬
–‫مقاومت‬Pull Up‫و‬Pull Down
–‫ممکن‬‫است‬‫جهت‬‫حل‬‫مشکل‬‫شناوری‬‫مداری‬‫شبيه‬‫به‬‫شکل‬‫پيشنه‬‫اد‬
‫شود‬
–‫با‬‫اتصال‬،‫کليد‬‫ولتاژ‬Vcc‫به‬‫زمين‬‫متصل‬‫مي‬‫شود‬‫و‬‫باعث‬‫اتصال‬‫کوتاه‬
‫مي‬‫شود‬
–‫جاری‬‫کردن‬‫جريان‬‫زياد‬‫و‬‫ايجاد‬‫حرارت‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
11
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫برخی‬‫مفاهیم‬‫پايه‬
–‫مقاومت‬Pull Up‫و‬Pull Down
–‫در‬‫‌که‬‫ي‬‫صورت‬‫در‬‫مدار‬‫فوق‬‫مقاومتي‬‫بين‬Vcc‫و‬‫زمين‬‫قرارداده‬،‫شود‬
‫وضعيت‬‫ورودی‬‫در‬‫هر‬‫دو‬‫حالت‬‫باز‬‫و‬‫بسته‬‫بودن‬‫کليد‬‫پايدار‬‫خواهد‬‫ش‬‫د‬‫و‬
‫جريان‬‫زيادی‬‫نيز‬‫از‬‫مدار‬‫عبور‬‫نخواهد‬‫کرد‬
–‫در‬‫هنگام‬‫قطع‬‫کليد‬‫تغيير‬‫ولتاژ‬‫دو‬‫سر‬‫مقاومت‬ً‫ال‬‫عم‬‫صفر‬‫مي‬‫ماند‬‫و‬‫ولتاژ‬
‫ورودی‬‫گيت‬Vcc‫مي‬‫شود‬
–‫در‬‫اين‬‫حالت‬ً‫ا‬‫اصطالح‬‫گفته‬‫‌شود‬‫ي‬‫م‬‫که‬‫پايه‬‫گيت‬‫توسط‬‫مقاومت‬R1،
pull up‫شده‬‫است‬
–‫تعيين‬‫ميزان‬‫مقاومت‬‫بستگي‬‫به‬‫جريان‬‫مجاز‬‫سيستم‬‫دارد‬
–،‫مثال‬


 
K
I
V
R CC
10
)1050(
5
3
/
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
12
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫برخی‬‫مفاهیم‬‫پايه‬
–‫مقاومت‬Pull Up‫و‬Pull Down
–‫مقاومت‬pull down‫نيز‬‫کار‬‫مشابهي‬‫انجام‬‫مي‬‫دهد‬‫با‬‫اين‬‫تفاوت‬‫که‬‫بي‬‫ن‬
‫زمين‬‫و‬‫ورودی‬‫نصب‬‫مي‬‫شود‬
–‫کاربرد‬‫مقاومت‬pull up‫هنگامي‬‫است‬‫که‬‫از‬‫نظر‬‫طراح‬‫ورودی‬‫سيستم‬‫در‬
‫حالت‬‫غير‬‫تحريک‬(‫فعال‬‫نشدن‬‫سنسورها‬)1‫باشد‬
–‫کاربرد‬‫مقاومت‬pull down‫برای‬‫مواردی‬‫است‬‫که‬‫ورودی‬‫سيستم‬‫در‬
‫حالت‬‫تحريک‬‫نشده‬‫صفر‬‫باشد‬
–‫در‬‫طراحي‬‫هر‬‫سيستم‬‫الکتريکي‬‫پايه‬‫های‬‫گيت‬ً‫ا‬‫حتم‬‫بايد‬pull up‫يا‬
pull down‫شوند‬‫تا‬‫سيگنال‬‫شناور‬‫بوجود‬‫نيايد‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
13
•‫برخی‬‫مفاهیم‬‫پايه‬
–‫نوسان‬،‫ساز‬،‫ساعت‬‫سيکل‬‫کاری‬
–‫در‬‫ميکروکنترلرها‬‫به‬‫منظور‬‫منظم‬‫ساختن‬‫فعاليتها‬‫و‬‫سهولت‬‫ارتباط‬‫دو‬‫سيستم‬‫کامپيوتری‬،‫فعاليت‬‫ميک‬‫روکنترلرها‬‫بر‬
‫اساس‬‫‌های‬‫ن‬‫ضربا‬‫منظمي‬‫که‬‫توسط‬‫يک‬‫نوسان‬‫ساز‬‫ايجاد‬‫‌شود‬‫ي‬‫م‬‫انجام‬‫مي‬‫گيرد‬
–‫جهت‬‫منظم‬‫ساخت‬‫ضربان‬‫های‬‫نوسان‬‫ساز‬‫از‬‫يک‬‫ساعت‬‫استفاده‬‫مي‬‫شود‬‫تا‬‫فاصله‬‫بين‬‫اين‬‫دو‬‫ضربان‬ً‫ال‬‫کام‬‫يکس‬‫ان‬‫باشد‬
–‫برای‬‫آنکه‬‫دو‬‫وسيله‬‫ديجيتال‬‫بتوانند‬‫با‬‫يکديگر‬‫ارتباط‬‫برقرار‬‫کنند‬‫بايد‬‫دارای‬‫ساعت‬‫يکسان‬‫باشند‬
–‫ساعت‬ً‫ال‬‫معمو‬‫يک‬‫کريستال‬‫کوارتز‬‫است‬‫که‬‫ضربان‬‫های‬‫منظم‬‫ايجاد‬‫مي‬‫کند‬
–‫هر‬‫دستوری‬‫که‬‫توسط‬‫اپراتور‬‫در‬‫برنامه‬‫ميکروکنترلر‬‫نوشته‬‫مي‬،‫شود‬‫به‬‫تعداد‬‫ضربان‬‫خاصي‬‫احتياج‬‫دارد‬‫تا‬‫ب‬‫طور‬‫کامل‬
‫اجرا‬‫شود‬
–‫به‬‫تعداد‬‫ضرباني‬‫که‬‫کوتاهترين‬‫دستور‬‫احتياج‬‫دارد‬‫تا‬‫اجرا‬،‫شود‬‫يک‬‫سيکل‬‫کاری‬‫مي‬‫گويند‬.
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
14
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫قسمت‬‫های‬‫مختلف‬‫میکروکنترلر‬
–‫واحد‬‫حافظه‬
–‫حافظه‬‫قسمتي‬‫از‬‫ميکروکنترلر‬‫است‬‫که‬‫‌ی‬‫ه‬‫وظيف‬‫آن‬‫ذخيره‬‫ی‬‫داده‬‫است‬
–‫در‬‫واحدهای‬‫حافظه‬‫با‬‫دادن‬‫آدرس‬‫به‬‫واحد‬‫‌توان‬‫ي‬‫م‬‫محتوای‬‫آن‬‫خانه‬‫حافظه‬‫را‬‫دريافت‬‫نمود‬‫و‬‫يا‬‫داده‬‫ای‬‫را‬‫در‬‫آن‬‫خانه‬
‫حافظه‬‫قرار‬‫داد‬‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
15
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫قسمت‬‫های‬‫مختلف‬‫میکروکنترلر‬
–‫واحد‬‫حافظه‬
–‫حافظه‬RAM
–‫برای‬‫ذخيره‬‫موقت‬‫برنامه‬‫های‬‫در‬‫حال‬‫اجرا‬‫استفاده‬‫مي‬‫شود‬
–‫هنگامي‬‫که‬‫کامپيوتر‬‫يا‬‫ميکروکنترلر‬‫خاموش‬‫مي‬‫گردد‬(‫قطع‬‫برق‬)،‫داده‬‫های‬‫اين‬‫نوع‬‫حافظه‬‫پاک‬‫مي‬‫شود‬
–‫ظرفيت‬‫تراشه‬‫های‬‫حافظه‬‫معموال‬‫بصورت‬‫مضاربي‬‫از‬‫بيت‬‫بيان‬‫‌شود‬‫ي‬‫م‬
–‫اگر‬‫در‬‫نوشته‬‫های‬‫فني‬‫از‬‫تراشه‬‫حافظه‬16M‫صحبت‬‫شد‬‫به‬‫معني‬16‫مگابيت‬‫است‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
16
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫قسمت‬‫های‬‫مختلف‬‫میکروکنترلر‬
–‫واحد‬‫حافظه‬
–‫حافظه‬ROM
–‫نوع‬‫ديگری‬‫حافظه‬‫وجود‬‫دارد‬‫که‬‫اطالعات‬‫آن‬‫با‬‫قطع‬‫برق‬‫از‬‫بين‬‫نمي‬،‫رود‬‫و‬‫پاک‬‫کردن‬‫و‬‫بازنويسي‬‫اطالعات‬‫در‬‫آن‬‫به‬
‫آساني‬‫حافظه‬RAM‫نيست‬
–‫اطالعات‬ROMً‫ال‬‫معمو‬‫يک‬‫بار‬‫قابل‬‫نوشتن‬‫است‬‫و‬‫پس‬‫از‬‫آن‬‫ديگر‬‫پاک‬‫نمي‬‫شود‬
–‫انواع‬‫‌های‬‫ه‬‫حافظ‬ROM‫عبارتند‬‫از‬:
.1ROM
.2PROM
.3EPROM
.4EEPROM
.5Flash Memory
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
17
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫قسمت‬‫های‬‫مختلف‬‫میکروکنترلر‬
–‫واحد‬‫حافظه‬
–‫حافظه‬ROM
–‫تراشه‬‫حافظه‬ROM‫مانند‬RAM‫شامل‬‫شبکه‬‫ای‬‫از‬‫سطر‬‫و‬‫ستون‬‫هاست‬
–‫هر‬‫سطر‬‫وستون‬‫در‬‫يک‬‫نقطه‬‫يکديگر‬‫را‬‫قطع‬‫مي‬‫نمايند‬‫که‬‫در‬‫اين‬‫محل‬‫يک‬‫خازن‬‫قرار‬‫دارد‬.
–‫شارژ‬‫و‬‫دشارژ‬‫بودن‬‫خازن‬‫معيار‬‫وجود‬‫يا‬‫عدم‬‫وجود‬‫داده‬‫در‬‫آن‬‫خانه‬‫است‬
–‫تراشه‬ROM،‫مستلزم‬‫برنامه‬‫نويسي‬‫وذخيره‬‫داده‬‫در‬‫زمان‬‫ساخت‬‫است‬‫و‬‫تغيير‬‫اين‬‫اطالعات‬‫در‬‫آينده‬‫به‬‫هيچ‬‫وجه‬
‫امکان‬‫پذير‬‫نيست‬
–‫اين‬‫نوع‬‫حافظه‬‫مصرف‬‫برق‬‫کمي‬،‫دارد‬‫قابل‬‫اعتماد‬‫است‬‫و‬‫در‬‫دستگاه‬‫های‬‫الکترونيکي‬،‫کوچک‬‫شامل‬‫تمامي‬
‫دستورالعمل‬‫های‬‫الزم‬‫بمنظور‬‫کنترل‬‫دستگاه‬‫مورد‬‫نظر‬‫خواهد‬‫بود‬.
–‫استفاده‬‫از‬‫اين‬‫نوع‬‫تراشه‬‫ها‬‫در‬‫برخي‬‫از‬‫‌ها‬‫ی‬‫‌باز‬‫ب‬‫اسبا‬‫برای‬‫نواختن‬،‫موسيقي‬‫آواز‬‫و‬...‫متداول‬‫است‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
18
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫قسمت‬‫های‬‫مختلف‬‫میکروکنترلر‬
–‫واحد‬‫حافظه‬
–‫حافظه‬PROM
–‫توليد‬‫تراشه‬‫های‬ROM‫مستلزم‬‫صرف‬‫وقت‬‫و‬‫هزينه‬‫باالئي‬‫است‬
–‫اين‬‫نوع‬‫از‬‫تراشه‬‫ها‬‫با‬‫محتويات‬‫خالي‬‫با‬‫قيمت‬‫مناسب‬‫عرضه‬‫شده‬‫و‬‫مي‬‫تواند‬‫توسط‬‫هر‬‫شخص‬‫برنامه‬‫ريزی‬‫گردن‬‫د‬
–‫‌های‬‫ه‬‫حافظ‬PROMً‫ا‬‫صرف‬‫يک‬‫بار‬‫قابل‬‫برنامه‬‫ريزی‬‫هستند‬
–‫حافظه‬PROM‫دارای‬‫قيمت‬‫مناسب‬‫است‬‫و‬‫برای‬‫نمونه‬‫سازی‬‫داده‬‫برای‬‫يک‬ROM،‫قبل‬‫از‬‫‌ريزی‬‫ه‬‫برنام‬‫نهايي‬
‫کارآيي‬‫مطلوبي‬‫دارند‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
19
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫قسمت‬‫های‬‫مختلف‬‫میکروکنترلر‬
–‫واحد‬‫حافظه‬
–‫حافظه‬EPROM
–‫تراشه‬‫های‬EPROM‫را‬‫مي‬‫توان‬‫چندين‬‫مرتبه‬‫باز‬‫نويسي‬‫کرد‬.
–‫پاک‬‫نمودن‬‫محتويات‬‫يک‬‫تراشه‬EPROM‫مستلزم‬‫استفاده‬‫از‬‫دستگاه‬‫خاصي‬‫است‬‫که‬‫باعث‬‫ساطع‬‫کردن‬‫يک‬‫فرکان‬‫س‬
‫خاص‬‫ماوراء‬‫بنفش‬‫مي‬‫گردد‬
–‫بمنظور‬‫بازنويسي‬‫يک‬EPROM‫مي‬‫بايد‬‫ابتدا‬‫محتويات‬‫آن‬‫پاک‬‫گردد‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
20
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫قسمت‬‫های‬‫مختلف‬‫میکروکنترلر‬
–‫واحد‬‫حافظه‬
–‫حافظه‬‫های‬EEPROM‫و‬Flash Memory
–‫در‬‫‌های‬‫ه‬‫حافظ‬EEPROM‫تسهيالت‬‫زير‬‫وجود‬‫دارد‬:
.1‫برای‬‫بازنويسي‬‫نياز‬‫به‬‫جدا‬‫نمودن‬‫تراشه‬‫از‬‫محل‬‫نصب‬‫نيست‬.
.2‫برای‬‫تغيير‬‫بخشي‬‫از‬‫حافظه‬‫نياز‬‫به‬‫پاک‬‫کردن‬‫تمام‬‫محتويات‬‫نخواهد‬‫بود‬.
.3‫اعمال‬‫تغييرات‬‫مستلزم‬‫استفاده‬‫از‬‫يک‬‫دستگاه‬‫خاص‬‫نيست‬.
–‫در‬‫اين‬‫نوع‬،‫حافظه‬‫فرآيند‬‫تغيير‬‫کند‬‫است‬‫و‬‫در‬‫مواردی‬‫که‬‫اطالعات‬‫بايد‬‫به‬‫سرعت‬‫تغيير‬،‫کنند‬‫سرعت‬‫الزم‬‫و‬‫جود‬‫ندارد‬‫و‬
‫دارای‬‫چالش‬‫های‬‫خاص‬‫‌باشند‬‫ي‬‫م‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
21
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫قسمت‬‫های‬‫مختلف‬‫میکروکنترلر‬
–‫واحد‬‫حافظه‬
–‫حافظه‬‫های‬EEPROM‫و‬Flash Memory
–‫توليدکنندگان‬‫با‬‫ارائه‬Flash Memory‫محدوديت‬‫اشاره‬‫شده‬‫را‬‫حل‬‫نمودند‬
–‫در‬‫اين‬‫حالت‬‫‌توان‬‫ي‬‫م‬‫تمام‬‫و‬‫يا‬‫بخش‬‫های‬‫خاصي‬‫از‬‫تراشه‬‫را‬‫که‬"‫بالک‬"‫ناميده‬،‫‌شوند‬‫ي‬‫م‬‫را‬‫حذف‬‫کرد‬.
–‫اين‬‫نوع‬‫حافظه‬‫نسبت‬‫به‬‫حافظه‬‫های‬EEPROM‫سريعتر‬‫است‬
–‫‌ای‬‫ه‬‫حافظ‬‫که‬‫کاربر‬‫برنامه‬‫خود‬‫را‬‫روی‬‫آن‬‫در‬‫ميکروکنترلر‬‫‌نويسد‬‫ي‬‫م‬‫در‬‫حقيقت‬‫از‬‫اين‬‫نوع‬‫حافظه‬‫است‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
22
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫قسمت‬‫های‬‫مختلف‬‫میکروکنترلر‬
–‫واحد‬‫پردازش‬‫مرکزی‬
–‫واحد‬‫پردازش‬‫مرکزی‬‫کار‬‫پردازش‬‫داده‬‫ها‬‫و‬‫اجرای‬‫برنامه‬‫ها‬‫را‬‫ب‬‫ه‬‫عهده‬‫دارد‬‫و‬‫در‬‫حقيقت‬‫مغز‬‫اصلي‬‫کامپيوتر‬‫است‬
–‫اين‬‫واحد‬‫قابليت‬،‫ضرب‬‫تقسيم‬،‫تفريق‬‫و‬‫انتقال‬‫محتويات‬‫از‬‫يک‬‫مکان‬‫حافظه‬‫به‬‫مکان‬‫ديگر‬‫را‬‫دارد‬
–‫‌ای‬‫ه‬‫برنام‬‫که‬‫توسط‬‫کاربر‬‫نوشته‬،‫‌شود‬‫ي‬‫م‬‫دستوراتي‬‫که‬‫بوسيله‬CPU‫بايد‬‫انجام‬‫گيرد‬‫را‬‫مشخص‬‫‌کند‬‫ي‬‫م‬
–CPU‫از‬‫چهار‬‫قسمت‬‫اصلي‬‫تشکيل‬‫شده‬‫است‬:
.1‫ثبات‬‫يا‬‫رجيستر‬(Register)
.2ALU
.3Program Counter
.4Instruction Decoder
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
23
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫قسمت‬‫های‬‫مختلف‬‫میکروکنترلر‬
–‫واحد‬‫پردازش‬‫مرکزی‬
–‫‌ها‬‫ت‬‫ثبا‬:CPU‫اطالعات‬‫موقت‬‫را‬‫در‬‫رجيسترها‬(‫‌ها‬‫ت‬‫ثبا‬)‫ذخيره‬‫‌سازد‬‫ي‬‫م‬
–‫اين‬‫اطالعات‬‫‌توانند‬‫ي‬‫م‬‫مقاديری‬‫باشند‬‫که‬‫بايد‬‫پردازش‬‫شوند‬‫و‬‫يا‬‫آدرس‬‫‌ای‬‫ه‬‫داد‬‫باشد‬‫که‬‫قرار‬‫است‬‫از‬‫حافظه‬‫خوان‬‫ده‬‫شود‬
–‫بسته‬‫به‬‫نوع‬CPU،‫رجيسترها‬‫مي‬‫توانند‬8،16،32،‫و‬‫يا‬64‫بيتي‬‫باشند‬
–ALU:‫اين‬‫قسمت‬‫وظيفه‬‫انجام‬‫اعمال‬‫رياضي‬‫و‬‫منطقي‬‫مانند‬،‫جمع‬،‫تفريق‬،‫ضرب‬،‫تقسيم‬AND،OR‫و‬NOT‫را‬
‫‌عهده‬‫ه‬‫ب‬‫دارد‬
–Program Counter(PC)‫در‬‫ابتدای‬‫اجرای‬،‫برنامه‬‫شماره‬‫اولين‬‫دستوری‬‫که‬‫توسط‬CPU‫بايد‬‫اجرا‬‫شود‬‫را‬‫تعيين‬
‫‌کند‬‫ي‬‫م‬
–‫در‬‫هنگام‬‫اجرای‬‫هر‬،‫دستور‬PC‫يک‬‫شماره‬‫افزايش‬‫‌يابد‬‫ي‬‫م‬‫تا‬‫شماره‬‫دستور‬‫بعدی‬‫که‬‫توسط‬CPU‫بايد‬‫اجرا‬‫شود‬‫را‬
‫مشخص‬‫کند‬
–Instruction Decoder:‫اين‬‫واحد‬‫دستوراتي‬‫را‬‫که‬‫به‬CPU‫منتقل‬‫‌شود‬‫ي‬‫م‬‫و‬‫بصورت‬‫اعداد‬‫باينری‬‫هستند‬(‫زبان‬‫ماشين‬)
‫را‬‫تفسير‬‫‌کند‬‫ي‬‫م‬‫و‬CPU‫را‬‫در‬‫جهت‬‫اجرای‬‫درست‬‫دستورات‬‫راهنمايي‬‫‌کند‬‫ي‬‫م‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
24
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫قسمت‬‫های‬‫مختلف‬‫میکروکنترلر‬
–‫درگاه‬‫‌های‬‫ورودی‬‫و‬‫خروجي‬
–‫انتقال‬‫سيگنال‬‫از‬‫ميکروکنترلر‬‫به‬‫‌های‬‫ه‬‫دستگا‬‫خارجي‬(‫نظير‬‫يک‬‫موتور‬DC)‫و‬‫بالعکس‬‫کار‬‫انتقال‬‫سيگنال‬‫از‬‫‌های‬‫ه‬‫دستگا‬
‫خارجي‬‫به‬‫سنسور‬
–‫هنگام‬‫کار‬‫با‬‫‌ها‬‫ت‬‫پور‬‫بايد‬‫ابتدا‬‫پورت‬‫هدف‬‫مشخص‬‫شود‬‫و‬‫سپس‬‫داده‬‫به‬‫آن‬‫ارسال‬‫و‬‫يا‬‫از‬‫آن‬‫گرفته‬‫شود‬.
–‫بسته‬‫به‬‫تنظيمات‬‫داخلي‬،‫ميکروکنترلر‬‫‌ها‬‫ت‬‫پور‬‫مي‬‫توانند‬‫به‬‫عنوان‬‫ورودی‬‫و‬‫يا‬‫خروجي‬‫عمل‬‫کنند‬
–‫در‬‫بعضي‬‫از‬‫ميکروکنترلرها‬‫‌ها‬‫ت‬‫پور‬‫‌توانند‬‫ي‬‫م‬‫‌های‬‫ل‬‫سيگنا‬‫آنالوگ‬‫را‬‫نيز‬‫منتقل‬‫نمايند‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
25
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫قسمت‬‫های‬‫مختلف‬‫میکروکنترلر‬
–‫باس‬Bus
–‫ارتباط‬CPU‫با‬‫حافظه‬‫و‬‫پورتهای‬I/O‫از‬‫طريق‬‫مجموعه‬‫‌هايي‬‫م‬‫سي‬‫انجام‬‫‌شود‬‫ي‬‫م‬‫که‬‫باس‬‫ناميده‬‫‌شود‬‫ي‬‫م‬
–‫‌ها‬‫س‬‫با‬‫وظيفه‬‫انتقال‬‫داده‬(‫بصورت‬‫سيگنالهای‬‫ديجيتال‬)‫در‬‫‌های‬‫ت‬‫قسم‬‫مختلف‬‫را‬‫بعهده‬‫دارند‬
–‫در‬‫کامپيوتر‬/‫ميکروکنترلر‬‫سه‬‫نوع‬‫باس‬‫وجود‬‫دارد‬:
.1‫باس‬‫داده‬
.2‫باس‬‫آدرس‬
.3‫باس‬‫کنترل‬
–‫جهت‬‫برقراری‬‫ارتباط‬‫با‬‫هريک‬‫از‬‫اين‬،‫واحدها‬CPU‫آدرس‬‫آن‬‫را‬‫بصورت‬‫باينری‬‫از‬‫طريق‬‫باس‬‫آدرس‬‫به‬‫مدار‬‫آدرس‬‫ياب‬
(Decoding Circuit)‫ارسال‬‫‌کند‬‫ي‬‫م‬‫تا‬‫قسمت‬‫مورد‬‫نياز‬‫را‬‫پيدا‬‫کند‬
–‫سپس‬‫از‬‫طريق‬‫باس‬،‫داده‬‫اطالعات‬‫را‬‫به‬‫قسمت‬‫مورد‬‫نظر‬‫ارسال‬‫و‬‫يا‬‫از‬‫آن‬‫دريافت‬‫‌کند‬‫ي‬‫م‬
–‫باس‬‫کنترل‬‫تعيين‬‫‌کند‬‫ي‬‫م‬‫که‬‫داده‬‫بايد‬‫به‬‫قسمت‬‫مورد‬‫نظر‬‫ارسال‬‫شود‬‫و‬‫يا‬‫از‬‫آن‬‫گرفته‬‫شود‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
26
•‫قسمت‬‫های‬‫مختلف‬‫میکروکنترلر‬
–‫باس‬Bus
–‫باس‬‫داده‬ً‫ال‬‫معمو‬‫دو‬‫طرفه‬‫است‬(‫جهت‬‫ارسال‬‫و‬‫گرفتن‬‫اطالعات‬).‫ولي‬‫برای‬‫بعضي‬‫از‬‫‌ها‬‫ت‬‫قسم‬‫مانند‬‫صفحه‬‫کليد‬(‫وسيله‬
‫ورودی‬)‫و‬‫مانيتور‬(‫وسيله‬‫خروجي‬)‫مي‬‫تواند‬‫‌طرفه‬‫ک‬‫ي‬‫باشد‬.
–‫به‬‫دليل‬‫آنکه‬‫تنها‬CPU‫امکان‬‫قرار‬‫دادن‬‫آدرس‬‫را‬‫روی‬‫باس‬‫آدرس‬‫را‬،‫دارد‬‫باس‬‫آدرس‬‫‌طرفه‬‫ک‬‫ي‬‫است‬
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
27
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫قسمت‬‫های‬‫مختلف‬‫میکروکنترلر‬
–‫ارتباط‬‫سريال‬
–‫مشکالت‬‫اساسي‬‫در‬‫انتقال‬‫داده‬‫زماني‬‫است‬‫که‬‫قرار‬‫باشد‬‫داده‬‫در‬‫فواصل‬‫چندين‬‫کيلومتری‬‫رد‬‫و‬‫بدل‬‫شود‬
–‫اگر‬‫فرض‬‫شود‬‫که‬‫با‬‫سه‬‫خط‬‫کار‬،‫شود‬‫بدين‬‫ترتيب‬‫يکي‬‫از‬‫خطوط‬‫برای‬،‫فرستادن‬‫يکي‬‫برای‬‫دريافت‬‫و‬‫يک‬‫ي‬‫نيز‬‫به‬‫عنوان‬
‫خط‬‫مرجع‬‫برای‬‫طرفين‬‫فرستنده‬‫و‬‫گيرنده‬‫در‬‫نظر‬‫گرفته‬‫‌شود‬‫ي‬‫م‬
–‫برای‬‫اين‬‫کار‬‫الزم‬‫است‬‫قوانيني‬‫را‬‫برای‬‫تبادل‬‫داده‬‫در‬‫نظر‬‫گرفت‬.‫اين‬‫قوانين‬‫پروتکل‬‫نام‬‫دارند‬.
–،‫پروتکل‬‫قانوني‬‫از‬‫پيش‬‫تعيين‬‫شده‬‫است‬‫که‬‫برای‬‫دو‬‫طرف‬‫تبادل‬‫کننده‬‫داده‬‫مشخص‬‫و‬‫آشکار‬‫مي‬‫باشد‬
–،‫مثال‬
–‫تا‬‫زماني‬‫که‬‫انتفال‬‫داده‬‫وجود‬،‫ندارد‬‫خط‬‫ارسال‬‫داده‬‫به‬1‫منطقي‬‫وصل‬‫باشد‬‫و‬‫زماني‬‫که‬‫فرستادن‬‫داده‬‫شروع‬‫مي‬،‫شود‬
‫برای‬‫مدت‬‫زمان‬T‫صفر‬‫منطقي‬‫شود‬
–‫فرستنده‬0‫و‬1‫ها‬‫را‬‫از‬‫کم‬‫ارزش‬‫ترين‬‫بيت‬‫تا‬‫پر‬‫ارزش‬‫ترين‬‫بيت‬‫روی‬‫خط‬‫ارسال‬‫قرار‬‫داده‬‫و‬‫هر‬‫بيت‬‫به‬‫مدت‬‫زمان‬T
‫روی‬‫خط‬‫‌ماند‬‫ي‬‫م‬
–‫در‬‫انتها‬‫يا‬‫بعد‬‫از‬‫بيت‬،‫هشتم‬‫خط‬‫به‬‫يک‬‫منطقي‬‫به‬‫منظور‬‫تعيين‬‫پايان‬‫انتقال‬‫داده‬‫اول‬‫برگردانده‬‫‌شود‬‫ي‬‫م‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
28
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫قسمت‬‫های‬‫مختلف‬‫میکروکنترلر‬
–‫ارتباط‬‫سريال‬
–‫از‬‫آنجايي‬‫که‬‫برای‬‫ارسال‬‫و‬‫دريافت‬،‫خطوط‬‫جداگانه‬‫وجود‬‫دارد‬‫لذا‬‫‌توان‬‫ي‬‫م‬‫در‬‫زمان‬‫واحد‬‫داده‬‫را‬‫ارسال‬‫و‬‫دريافت‬‫نمود‬
–‫اين‬‫بلوک‬‫با‬‫حالت‬‫دو‬‫طرفه‬‫که‬‫چنين‬‫ارتباطي‬‫را‬‫فراهم‬‫‌آورد‬‫ي‬‫م‬‫بلوک‬‫ارتباط‬‫سريال‬‫‌نامند‬‫ي‬‫م‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
29
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫قسمت‬‫های‬‫مختلف‬‫میکروکنترلر‬
–‫تايمر‬
–‫تايمر‬‫مي‬‫تواند‬‫اطالعاتي‬‫‌ی‬‫ه‬‫دربار‬،‫زمان‬‫مدت‬‫زمان‬‫معين‬‫و‬‫پروتکل‬‫و‬...‫بدهد‬‫و‬‫از‬‫اين‬‫لحاظ‬‫بسيار‬‫اهميت‬‫دارد‬
–‫قسمت‬‫اصلي‬‫تايمر‬‫يک‬‫شمارنده‬‫مسقل‬‫است‬‫که‬‫در‬‫واقع‬‫رجيستری‬‫است‬‫که‬‫مقدار‬‫عددی‬‫آن‬‫در‬‫فواصل‬‫زماني‬‫مس‬‫اوی‬
‫يک‬‫واحد‬‫زياد‬‫‌شود‬‫ي‬‫م‬
–‫با‬‫دانستن‬‫مقادير‬‫اين‬‫رجيستر‬‫در‬‫زمان‬‫های‬t1‫و‬t2،‫‌توان‬‫ي‬‫م‬‫زمان‬‫سپری‬‫شده‬‫را‬‫بر‬‫اساس‬‫اختالف‬‫اين‬‫دو‬‫زمان‬‫به‬‫دست‬
‫آورد‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
30
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫قسمت‬‫های‬‫مختلف‬‫میکروکنترلر‬
–‫تايمر‬Watchdog
–‫يکي‬‫از‬‫مواردی‬‫که‬‫نياز‬‫به‬‫توجه‬‫دارد‬‫عملکرد‬‫بي‬‫عيب‬‫ميکروکنترلر‬‫در‬‫زمان‬‫کار‬‫است‬
–‫اين‬‫واحد‬‫نيز‬‫يکي‬‫شمارنده‬‫مستقل‬‫است‬‫که‬‫با‬‫سر‬‫ريز‬‫شدن‬‫مقدار‬‫شمارنده‬‫ميکروکنترلر‬‫را‬‫ريست‬‫‌کند‬‫ي‬‫م‬
–‫با‬‫ريست‬،‫شدن‬‫ميکروکنترلر‬‫اجرای‬‫برنامه‬‫را‬‫از‬‫سر‬‫خواهد‬‫گرفت‬‫و‬‫اگر‬‫مشکلي‬‫رخ‬‫داده‬‫باشد‬‫حل‬‫خواهد‬‫شد‬
–‫اين‬‫تايمر‬‌ً‫ا‬‫دائم‬‫در‬‫حال‬‫شمارش‬‫است‬.‫به‬‫اين‬‫ترتيب‬‫زماني‬‫که‬‫برنامه‬‫به‬‫درستي‬‫اجرا‬،‫شود‬‫نياز‬‫است‬‫که‬‫اين‬‫تا‬‫يمر‬‫صفر‬
‫شده‬‫و‬‫شمارش‬‫را‬‫از‬‫ابتدا‬‫شروع‬‫کند‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
31
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫قسمت‬‫های‬‫مختلف‬‫میکروکنترلر‬
–‫مبدل‬‫آنالوگ‬‫به‬‫ديجيتال‬
–‫ورودی‬ADC‫ولتاژ‬‫و‬‫خروجي‬‫آن‬‫يک‬‫عدد‬‫است‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
32
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫قسمت‬‫های‬‫مختلف‬‫میکروکنترلر‬
–‫ارتباط‬‫تمام‬‫‌ها‬‫ت‬‫قسم‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
33
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫مثالی‬‫از‬‫يک‬‫برنامه‬‫در‬‫حال‬‫اجرا‬
–‫به‬‫عنوان‬‫مثال‬‫يک‬CPU‫مجازی‬‫دارای‬‫رجيسترهای‬A،B‫و‬...،8‫بيت‬‫باس‬‫داده‬‫و‬16‫بيت‬‫باس‬‫آدرس‬‫است‬
–‫بنابراين‬CPU‫به‬‫‌های‬‫ه‬‫خان‬‫حافظه‬‫از‬‫آدرس‬0000H‫تا‬FFFFH‫دسترسي‬‫دارد‬
–CPU‫بايد‬‫عدد‬21H‫را‬‫داخل‬‫رجيستر‬A‫قرار‬‫دهد‬‫و‬‫سپس‬‫مقادير‬42H‫و‬12H‫را‬‫به‬‫اين‬‫رجيستر‬‫اضافه‬‫کند‬
–‫اگر‬‫در‬‫برنامه‬‫نوشته‬،‫شده‬‫کد‬B0H‫کد‬‫انتقال‬‫يک‬‫مقدار‬‫به‬‫رجيستر‬A‫و‬04H‫کد‬‫اضافه‬‫کردن‬‫يک‬‫مقدار‬‫به‬‫رجيستر‬A
‫باشد‬‫و‬‫‌ای‬‫ه‬‫برنام‬‫که‬‫بايد‬‫عمل‬‫جمع‬‫اين‬‫سه‬‫عدد‬‫را‬‫انجام‬‫دهد‬‫از‬‫خانه‬‫حافظه‬1400H‫شروع‬‫شود‬
‫حافظه‬ ‫خانه‬ ‫شماره‬ ‫حافظه‬ ‫محتواي‬ ‫توضيح‬
1400
1401
1402
1403
1404
1405
1406
B0H
21H
04H
42H
04H
12H
F4H
;code for moving a value to register A
;value to be moved
;code for adding a value to register A
;value to be added
;code for adding a value to register A
;value to be added
;code for halt
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
34
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫مثالی‬‫از‬‫يک‬‫برنامه‬‫در‬‫حال‬‫اجرا‬
–‫مراحلي‬‫که‬‫بوسيله‬CPU‫برای‬‫اجرای‬‫برنامه‬‫فوق‬‫انجام‬‫‌گيرد‬‫ي‬‫م‬‫بصورت‬‫زير‬‫است‬:
–Program Counter(‫يا‬PC)‫در‬CPU‫مي‬‫تواند‬‫مقادير‬‫بين‬0000H‫تا‬FFFFH‫را‬‫اختيار‬‫کند‬.‫مقدار‬Program
Counter‫بايد‬1400H‫شود‬‫تا‬‫آدرس‬‫اولين‬‫کد‬‫برنامه‬‫که‬‫بايد‬‫اجرا‬‫شود‬‫به‬CPU‫معرفي‬‫گردد‬.‫به‬‫اين‬‫ترتيب‬CPU‫آماده‬
‫اجرا‬‫‌شود‬‫ي‬‫م‬.
–CPU‫عدد‬1400H‫را‬‫روی‬‫باس‬‫آدرس‬‫همراه‬‫با‬‫سيگنال‬READ‫ارسال‬‫‌کند‬‫ي‬‫م‬
‫حافظه‬ ‫خانه‬ ‫شماره‬ ‫حافظه‬ ‫محتواي‬ ‫توضيح‬
1400
1401
1402
1403
1404
1405
1406
B0H
21H
04H
42H
04H
12H
F4H
;code for moving a value to register A
;value to be moved
;code for adding a value to register A
;value to be added
;code for adding a value to register A
;value to be added
;code for halt
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
35
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫مثالی‬‫از‬‫يک‬‫برنامه‬‫در‬‫حال‬‫اجرا‬
–CPU‫بوسيله‬Instruction Decoder‫دستور‬B0‫را‬‫کدگشايي‬‫‌کند‬‫ي‬‫م‬.‫مفهوم‬‫اين‬‫دستور‬‫خواندن‬‫عدد‬‫واقع‬‫در‬‫خانه‬
‫بعدی‬‫حافظه‬(1401H)‫و‬‫گذاشتن‬‫آن‬‫در‬‫رجيستر‬A‫است‬
–‫با‬‫تکميل‬‫اين‬،‫فرمان‬‫آدرس‬‫فرمان‬‫بعدی‬(1402H)‫در‬PC‫قرار‬‫‌گيرد‬‫ي‬‫م‬.
–‫از‬‫خانه‬‫حافظه‬1402H‫کد‬04H‫گرفته‬‫‌شود‬‫ي‬‫م‬
–‫پس‬‫از‬‫کدگشايي‬CPU‫محتويات‬‫آدرس‬‫بعدی‬(1403H)‫را‬(‫منظور‬‫عدد‬42H)‫همراه‬‫با‬‫مقدار‬‫درون‬‫رجيستر‬A‫به‬
ALU‫ارسال‬‫‌کند‬‫ي‬‫م‬‫تا‬‫عمل‬‫جمع‬‫را‬‫انجام‬‫دهد‬
‫حافظه‬ ‫خانه‬ ‫شماره‬ ‫حافظه‬ ‫محتواي‬ ‫توضيح‬
1400
1401
1402
1403
1404
1405
1406
B0H
21H
04H
42H
04H
12H
F4H
;code for moving a value to register A
;value to be moved
;code for adding a value to register A
;value to be added
;code for adding a value to register A
;value to be added
;code for halt
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
36
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫مثالی‬‫از‬‫يک‬‫برنامه‬‫در‬‫حال‬‫اجرا‬
–‫سپس‬‫خروجي‬ALU‫توسط‬CPU‫درون‬‫رجيستر‬A‫قرار‬‫داده‬‫‌شود‬‫ي‬‫م‬.‫در‬‫اين‬‫بين‬PC‫مقدار‬1404H‫را‬‫اختيار‬‫‌کند‬‫ي‬‫م‬
–‫آدرس‬1404H‫روی‬‫باس‬‫آدرس‬‫قرار‬‫‌گيرد‬‫ي‬‫م‬‫و‬‫کد‬‫آن‬‫به‬CPU،‫آورده‬‫کد‬‫گشايي‬‫و‬‫اجرا‬‫‌شود‬‫ي‬‫م‬
–‫اين‬‫کد‬ً‫ا‬‫مجدد‬‫يک‬‫مقدار‬‫را‬‫به‬‫رجيستر‬A‫اضافه‬‫‌کند‬‫ي‬‫م‬‫و‬‫شمارنده‬‫برنامه‬1406H‫‌شود‬‫ي‬‫م‬.
–‫در‬‫آخر‬‫محتوای‬‫آدرس‬1406‫گرفته‬‫و‬‫اجرا‬‫‌شود‬‫ي‬‫م‬.‫دستور‬HALT‫به‬CPU‫‌گويد‬‫ي‬‫م‬‫که‬‫از‬‫افزايش‬PC‫جلوگيری‬‫کند‬
‫حافظه‬ ‫خانه‬ ‫شماره‬ ‫حافظه‬ ‫محتواي‬ ‫توضيح‬
1400
1401
1402
1403
1404
1405
1406
B0H
21H
04H
42H
04H
12H
F4H
;code for moving a value to register A
;value to be moved
;code for adding a value to register A
;value to be added
;code for adding a value to register A
;value to be added
;code for halt
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
37
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫میکروکنترلر‬‫های‬PIC
–‫انواع‬PIC
–‫پنج‬‫سری‬‫مهم‬‫خانواده‬PIC‫به‬‫صورت‬‫زير‬‫دسته‬‫بندی‬‫‌شود‬‫ي‬‫م‬:
.1‫سری‬PIC 10:‫‌های‬‫ه‬‫تراش‬‫با‬6‫پايه‬‫هستند‬‫که‬‫برای‬‫کارهای‬‫ساده‬‫تر‬‫و‬‫يا‬‫ارتباط‬‫سريال‬‫و‬......‫به‬‫کار‬‫‌روند‬‫ي‬‫م‬.
.2‫سری‬PIC12:‫‌های‬‫ه‬‫تراش‬‫با‬8‫پايه‬‫هستند‬‫که‬‫دارای‬‫قدرت‬‫نسبي‬‫خوبي‬‫هستند‬
.3‫سری‬PIC16:‫تراشه‬‫های‬‫که‬‫در‬‫اين‬‫سری‬‫وجود‬‫دارند‬‫بين‬18‫تا‬40‫پايه‬‫دارند‬
.4‫سری‬PIC18:‫‌هايي‬‫ه‬‫تراش‬‫اين‬‫سری‬‫دارای‬18‫پايه‬‫و‬‫بيشتر‬‫هستند‬‫و‬‫از‬‫نظر‬‫قدرت‬‫دارای‬‫قابليت‬‫باالتری‬‫نسبت‬‫به‬
PIC16‫‌باشند‬‫ي‬‫م‬
.5‫سری‬PIC24:‫‌ترين‬‫ی‬‫قو‬‫تراشه‬‫های‬‫خانواده‬PIC‫‌باشد‬‫ي‬‫م‬.‫اين‬‫نوع‬‫ميکروها‬‫حداقل‬‫دارای‬40‫پايه‬‫هستند‬‫و‬‫از‬‫نظر‬
‫امکانات‬‫داخلي‬‫قدرت‬‫‌نظيری‬‫ي‬‫ب‬‫دارند‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
38
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫میکروکنترلر‬‫های‬PIC
–‫انواع‬PIC
‫مدل‬ ‫نام‬
‫فرکانس‬
‫ساعت‬
(MHz)
ADC
RAM
‫بایت‬
‫منابع‬
‫وقفه‬
‫نویس‬‫برنامه‬ ‫حافظه‬‫ی‬
‫سریال‬ ‫پورت‬Timers
‫تعداد‬
‫ها‬‫پایه‬
‫نوع‬
‫بن‬‫بسته‬‫دی‬ ‫نوع‬‫کيلوباي‬‫ت‬EEPROM
16C432200OTP5/30-WDT20CERDIP
16C85400OTP30-WDT18PDIP
16F84A200684Flash75/164-WDT18PDIP
16F946208Flash14256-WDT64TQFP
18F24554010Flash24256EUSART/SPI/USBWDT28PDIP
12C5084-25‫ندارد‬EPROM
512
‫بايت‬--18DIP
12C6711041284EPROM
1024
‫بايت‬
--18DIP
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
39
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫میکروکنترلر‬‫های‬PIC
–‫انواع‬PIC
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
40
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫میکروکنترلر‬‫های‬PIC
–‫ساختار‬‫حافظه‬‫در‬‫ميکروکنترلر‬PIC
–‫اغلب‬PIC‫ها‬‫دارای‬‫سه‬‫نوع‬‫حافظه‬‫داخلي‬‫مي‬‫باشند‬:
.1‫حافظه‬‫داده‬
.2‫حافظه‬‫برنامه‬
.3Eprom Memory
–‫حافظه‬‫داده‬
–‫اين‬‫حافظه‬‫که‬‫همان‬‫حافظه‬RAM‫ميکروکنترلر‬‫است‬‫به‬‫‌های‬‫ش‬‫بخ‬
‫مختلفي‬‫به‬‫نام‬‫بانک‬‫تقسيم‬‫‌شود‬‫ي‬‫م‬
–‫هر‬‫بانک‬‫شامل‬‫حافظه‬‫‌های‬‫ه‬‫داد‬‫معمولي‬‫برای‬‫‌های‬‫ه‬‫استفاد‬‫عمومي‬
‫کاربر‬‫و‬‫ريجيسترهای‬‫مخصوص‬‫‌باشد‬‫ي‬‫م‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
41
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫میکروکنترلر‬‫های‬PIC
–‫ساختار‬‫حافظه‬‫در‬‫ميکروکنترلر‬PIC
–‫در‬‫هنگام‬‫برنامه‬‫نويسي‬،،‫کاربر‬‫بانکي‬‫از‬‫حافظه‬‫که‬‫مورد‬‫نياز‬‫است‬‫ر‬‫ا‬‫انتخاب‬
‫‌کند‬‫ي‬‫م‬‫و‬‫برنامه‬‫نويسي‬‫را‬‫انجام‬‫‌دهد‬‫ي‬‫م‬
–‫حافظه‬‫برنامه‬
–‫‌ای‬‫ه‬‫برنام‬‫که‬‫توسط‬‫کاربر‬‫نوشته‬‫‌شود‬‫ي‬‫م‬‫در‬‫اين‬‫حافظه‬‫قرار‬‫داده‬‫‌ش‬‫ي‬‫م‬‫ود‬
–PIC‫ها‬‫از‬‫لحاظ‬‫نوع‬‫حافظه‬‫برنامه‬‫به‬‫چهار‬‫دسته‬‫تقسيم‬‫‌شوند‬‫ي‬‫م‬:
–Flash Program Memory‫در‬‫‌هايي‬‫ه‬‫خانواد‬‫که‬‫نام‬IC‫دارای‬F‫‌باشد‬‫ي‬‫م‬
–EPROM Program Memory‫در‬‫‌هايي‬‫ه‬‫خانواد‬‫که‬‫نام‬IC‫دارای‬C‫يا‬
CE‫‌باشد‬‫ي‬‫م‬
–ROM Program Memory‫در‬‫‌هايي‬‫ه‬‫خانواد‬‫که‬‫نام‬IC‫دارای‬CR
‫‌باشد‬‫ي‬‫م‬
–EEPROM Program Memory‫اين‬‫نوع‬‫ميکروکنترلرها‬‫دارای‬‫مشخصه‬
L‫در‬‫نام‬IC‫‌باشند‬‫ي‬‫م‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
42
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫میکروکنترلر‬‫های‬PIC
–‫ساختار‬‫حافظه‬‫در‬‫ميکروکنترلر‬PIC
–‫حافظه‬EPROM
–‫‌های‬‫ه‬‫داد‬‫ذخيره‬‫شده‬‫در‬‫حافظه‬‫داده‬(RAM)‫با‬‫قطع‬‫برق‬‫پاک‬‫‌شود‬‫ي‬‫م‬
–‫در‬‫کاربردهايي‬‫مانند‬‫قفل‬‫رمزدار‬‫که‬‫الزم‬‫است‬‫رمز‬‫با‬‫قطع‬‫برق‬‫نيز‬‫حفظ‬‫شود‬‫و‬‫از‬‫طرفي‬‫امکان‬‫تغيير‬‫داده‬‫نيز‬‫د‬‫ر‬‫هر‬‫زمان‬
‫توسط‬‫استفاده‬‫کننده‬‫وجود‬‫داشته‬،‫باشد‬‫نياز‬‫به‬‫‌ای‬‫ه‬‫حافظ‬‫پايدار‬‫است‬
–‫در‬PIC‫حافظه‬EPROM‫برای‬‫اين‬‫منظور‬‫تعبيه‬‫شده‬‫است‬‫و‬‫برای‬‫ذخيره‬‫داده‬‫ها‬‫در‬‫حين‬‫اجرای‬‫برنامه‬‫به‬‫کار‬‫‌رود‬‫ي‬‫م‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
43
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫مشخصات‬‫و‬‫نحوه‬‫عملکرد‬‫میکرو‬‫کنترلر‬PIC16F84
–‫اين‬‫تراشه‬‫‌ترين‬‫ه‬‫ساد‬‫و‬‫در‬‫عين‬‫حال‬‫فرا‬‫گيرترين‬‫تراشه‬‫در‬‫خانواده‬PIC‫است‬.
–‫حافظه‬‫داده‬8‫بيتي‬‫دارد‬‫و‬‫دارای‬K1‫حافظه‬‫برنامه‬‫از‬‫نوع‬Flash program‫با‬‫عرض‬14‫بيت‬‫و‬‫قابليت‬1000‫بار‬‫خواندن‬
‫و‬‫نوشتن‬‫‌باشد‬‫ي‬‫م‬
–‫اين‬‫ميکروکنترلر‬‫يک‬‫وقفه‬،‫خارجي‬‫يک‬‫تايمر‬/‫شمارنده‬‫و‬13‫پايه‬‫ورودی‬‫و‬‫خروجي‬‫ديجيتال‬‫دارد‬
–‫قيمت‬‫پايين‬‫بهمراه‬‫مصرف‬،‫پايين‬‫اداره‬‫آسان‬‫و‬‫انعطاف‬‫پذيری‬‫ميکروکنترلر‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
44
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫مشخصات‬‫و‬‫نحوه‬‫عملکرد‬‫میکرو‬‫کنترلر‬PIC16F84
–‫تشريح‬‫پايه‬‫های‬‫ميکروکنترلر‬PIC16F84
–‫پايه‬‫های‬‫شماره‬1،2،17‫و‬18(RA0-RA3):‫‌های‬‫ه‬‫پاي‬‫دو‬‫طرفه‬
(‫ورودی‬/‫خروجي‬)‫درگاه‬(‫پورت‬)A‫هستند‬.
–‫پايه‬3(RA4/T0CLK):‫پايه‬‫دو‬‫طرفه‬‫پنجم‬‫درگاه‬A‫و‬‫همچنين‬
‫ورودی‬‫کالک‬‫برای‬‫تايمر‬/‫شمارنده‬‫صفر‬(TMR0)‫است‬.
–‫پايه‬6(RB0/INT)‫پايه‬‫دو‬‫طرفه‬‫اول‬‫پورت‬B‫و‬‫همچنين‬‫پايه‬‫نظير‬
‫وقفه‬‫خارجي‬‫است‬.
–‫پايه‬‫های‬7‫الي‬13(RB1-RB7):‫پايه‬‫های‬‫دو‬‫طرفه‬‫دوم‬‫تا‬‫هشتم‬
‫پورت‬B
–‫پايه‬16(OSC1/CLKIN):‫پايه‬‫ورودی‬‫برای‬‫کريستال‬‫اسيالتور‬
‫کريستالي‬‫خارجي‬‫و‬‫منبع‬‫کالک‬‫خارجي‬‫است‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
45
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫مشخصات‬‫و‬‫نحوه‬‫عملکرد‬‫میکرو‬‫کنترلر‬PIC16F84
–‫تشريح‬‫پايه‬‫های‬‫ميکروکنترلر‬PIC16F84
–‫پايه‬15(OSC2/CLKOUT):‫پايه‬‫خروجي‬‫برای‬‫اسيالتور‬‫کريستالي‬
‫خروجي‬‫کالک‬‫خارجي‬‫است‬.
–‫پايه‬5(Vss):‫زمين‬‫را‬‫تشکيل‬‫ميدهد‬‫و‬‫به‬‫پتانسيل‬‫صفر‬‫وصل‬‫مي‬‫شود‬.
–‫پايه‬14(VDD):‫تغذيه‬‫مثبت‬‫است‬‫و‬‫به‬‫پتانسيل‬V2+‫تا‬5/5+‫وصل‬
‫خواهد‬‫شد‬.
–‫پايه‬4(MCLR):‫اگر‬‫به‬‫زمين‬‫وصل‬‫شود‬(‫فعال‬‫پايين‬)‫ميکروکنتر‬‫لر‬‫را‬
‫ريست‬‫‌کند‬‫ي‬‫م‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
46
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫مشخصات‬‫و‬‫نحوه‬‫عملکرد‬‫میکرو‬‫کنترلر‬PIC16F84
–‫نوسان‬‫سازها‬(Clock)
–‫ميکروکنترلرهای‬PIC‫قادر‬‫هستند‬‫با‬‫چهار‬‫نوع‬‫نوسان‬‫ساز‬‫مختلف‬‫کار‬
‫کنند‬
.1‫استفاده‬‫از‬‫‌ساز‬‫ن‬‫نوسا‬‫داخلي‬
.2‫استفاده‬‫از‬‫‌ساز‬‫ن‬‫نوسا‬‫مقاومت‬‫و‬‫خازن‬
.3‫استفاده‬‫از‬‫‌سازهای‬‫ن‬‫نوسا‬‫سراميکي‬‫و‬‫تشديد‬‫‌ها‬‫ه‬‫کنند‬
.4‫استفاده‬‫از‬‫‌سازهای‬‫ن‬‫نوسا‬‫خارجي‬
–‫در‬‫نوع‬،‫اول‬‫ميکروکنترلر‬‫از‬‫يک‬‫مدار‬‫داخلي‬‫مقاومت‬‫و‬‫خازن‬‫برای‬
‫ايجاد‬‫نوسان‬‫استفاده‬‫‌کند‬‫ي‬‫م‬
–‫در‬‫نوع‬،‫دوم‬‫از‬‫يک‬‫مدار‬‫مقاومت‬‫و‬‫خازن‬‫به‬‫عنوان‬‫‌ساز‬‫ن‬‫نوسا‬‫استفاده‬
‫‌شود‬‫ي‬‫م‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
47
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫مشخصات‬‫و‬‫نحوه‬‫عملکرد‬‫میکرو‬‫کنترلر‬PIC16F84
–‫نوسان‬‫سازها‬(Clock)
–‫در‬‫دو‬‫حالت‬،‫بعدی‬‫از‬‫‌های‬‌‫ل‬‫کريستا‬‫مختلف‬‫به‬‫صورت‬‫خارجي‬‫استفاده‬‫‌شود‬‫ي‬‫م‬
–‫‌ها‬‫ل‬‫کريستا‬‫به‬3‫دسته‬‫زير‬‫تقسيم‬‫‌شوند‬‫ي‬‫م‬
.1LP‫کريستال‬‫توان‬‫پايين‬‫با‬‫محدوده‬32‫تا‬200‫کيلوهرتز‬
.2XT‫کريستال‬/‫تشديد‬‫کننده‬‫با‬‫محدوده‬200‫کيلوهرتز‬‫تا‬4‫مگاهرتز‬
.3HS‫کريستال‬‫سرعت‬‫باال‬/‫تشديد‬‫کننده‬‫با‬‫محدوده‬4‫تا‬20‫مگاهرتز‬
–‫در‬‫هنگام‬‫‌ريزی‬‫ه‬‫برنام‬‫ميکروکنترلر‬،‫حالت‬‫نوسان‬‫ساز‬‫تعيين‬‫‌شود‬‫ي‬‫م‬
PIC 16F84
OSC1
XTAL
L
C1
C2 OSC2
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
48
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫مشخصات‬‫و‬‫نحوه‬‫عملکرد‬‫میکرو‬‫کنترلر‬PIC16F84
–‫ريست‬‫کردن‬‫ميکروکنترلر‬PIC16F84
–‫عمل‬‫ريست‬‫برای‬‫قرار‬‫دادن‬‫ميکروکنترلر‬‫در‬‫يک‬‫وضعيت‬‫معلوم‬(‫شروع‬‫برنامه‬)‫بکار‬‫‌رود‬‫ي‬‫م‬
–‫هنگام‬‫ريست‬،‫شدن‬‫حافظه‬RAM‫بدون‬‫تغيير‬‫باقي‬‫‌ماند‬‫ي‬‫م‬
–‫در‬‫پنج‬‫وضعيت‬‫ميکروکنترلر‬‫ريست‬‫‌شود‬‫ي‬‫م‬:
.1‫ريست‬‫بهنگام‬‫وصل‬‫شدن‬‫تغذيه‬
.2‫ريست‬‫بهنگام‬‫کار‬‫عادی‬‫ميکرو‬‫با‬‫صفر‬‫کردن‬‫پايه‬‫شماره‬4
.3‫ريست‬‫بهنگام‬‫برگشت‬‫از‬‫مد‬‫خواب‬
.4‫ريست‬‫بهنگام‬‫سرريز‬‫شدن‬‫تايمر‬watchdog
.5‫ريست‬‫بهنگام‬‫افت‬‫ولتاژ‬‫تغذيه‬‫بيش‬‫از‬‫حد‬‫مجاز‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
49
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫مشخصات‬‫و‬‫نحوه‬‫عملکرد‬‫میکرو‬‫کنترلر‬PIC16F84
–‫ريست‬‫کردن‬‫ميکروکنترلر‬PIC16F84
–‫به‬‫منظور‬‫جلوگيری‬‫از‬‫صفر‬‫شدن‬‫تصادفي‬‫پايه‬،‫ريست‬‫اين‬‫پايه‬‫از‬‫طريق‬‫يک‬‫مقاومت‬pull–up‫به‬‫تغذيه‬‫مثبت‬‫متصل‬
‫‌شود‬‫ي‬‫م‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
50
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫مشخصات‬‫و‬‫نحوه‬‫عملکرد‬‫میکرو‬‫کنترلر‬PIC16F84
–‫حافظه‬‫برنامه‬PIC 16F84
–‫حافظه‬‫برنامه‬16F84،‫از‬‫نوع‬‫فلش‬‫با‬‫پهنای‬14‫بيت‬(‫به‬‫ازای‬
‫هر‬‫خانه‬‫حافظه‬)‫و‬‫ظرفيت‬1‫کيلو‬‫کلمه‬‫‌باشد‬‫ي‬‫م‬
–‫زماني‬‫که‬‫تغذيه‬‫قطع‬‫است‬‫اطالعات‬‫ذخيره‬‫شده‬‫در‬‫حافظه‬‫از‬
‫بين‬‫‌رود‬‫ي‬‫نم‬
–‫آدرس‬0000h:‫بردار‬‫ريست‬‫به‬‫اين‬‫آدرس‬‫اشاره‬‫‌کند‬‫ي‬‫م‬
–‫آدرس‬0004h:‫بردار‬‫وقفه‬‫به‬‫اين‬‫آدرس‬‫اشاره‬‫‌کند‬‫ي‬‫م‬
–‫آدرس‬2007h:‫اين‬‫ادرس‬‫در‬‫واقع‬‫پيکربندی‬PIC‫را‬‫مشخص‬
‫‌کند‬‫ي‬‫م‬.‫تنظيمات‬‫اوليه‬‫برای‬‫عملکرد‬‫ميکروکنترلر‬‫توس‬‫ط‬‫کلمه‬
‫پيکربندی‬‫ذخيره‬‫شده‬‫در‬‫اين‬‫آدرس‬‫انجام‬‫‌شود‬‫ي‬‫م‬
–‫آدرس‬‫معتبر‬‫برای‬،‫کاربر‬‫همان‬‫آدرسهای‬‫از‬0000h‫تا‬03ffh
‫مي‬‫باشد‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
51
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫مشخصات‬‫و‬‫نحوه‬‫عملکرد‬‫میکرو‬‫کنترلر‬PIC16F84
–‫حافظه‬‫داده‬‫و‬Data RAM
–‫اين‬‫حافظه‬‫از‬‫دو‬‫بانک‬‫هريک‬‫با‬‫ظرفيت‬80‫بايت‬(‫آدرس‬00h
‫تا‬4Fh‫برای‬‫بانک‬0‫و‬80h‫تا‬CFh‫برای‬‫بانک‬1)‫‌باشد‬‫ي‬‫م‬
–12‫بايت‬‫اول‬‫از‬‫هر‬‫بانک‬00h-0Bh))،SFR‫ناميده‬‫‌شوند‬‫ي‬‫م‬
–‫بايد‬‫دقت‬‫کرد‬‫که‬‫برای‬‫کار‬‫با‬‫يک‬‫ثبات‬SFR‫مشخص‬‫مثل‬
TRISA‫که‬‫در‬‫بانک‬1‫قرار‬،‫دارد‬‫بايد‬‫بانک‬1‫فعال‬‫شود‬‫و‬‫يا‬
‫برای‬‫ارتباط‬‫با‬‫ثبات‬INTCON‫که‬‫در‬‫بانک‬‫صفر‬‫قرار‬‫دارد‬‫بايد‬
‫بانک‬‫صفر‬‫فعال‬‫شود‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
52
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫مشخصات‬‫و‬‫نحوه‬‫عملکرد‬‫میکرو‬‫کنترلر‬PIC16F84
–‫تايمر‬‫در‬PIC16F84
–‫بطور‬‫فيزيکي‬‫يک‬،‫تايمر‬‫ثباتي‬(‫شمارنده‬)‫است‬‫که‬‫مقدار‬‫آن‬‫بطور‬‫پيوسته‬‫افزايش‬‫‌يابد‬‫ي‬‫م‬‫تا‬‫اينکه‬‫سرر‬‫يز‬‫شود‬‫و‬‫عمل‬
‫شمارش‬‫از‬‫ابتدا‬‫تکرار‬‫شود‬
–‫ميکروکنترلر‬16F84‫دارای‬‫يک‬‫تايمر‬8‫بيتي‬‫است‬‫و‬‫لذا‬‫‌تواند‬‫ي‬‫م‬‫تا‬‫شماره‬255‫بشمارد‬.
–‫برای‬‫دستيابي‬‫به‬‫‌های‬‫ن‬‫زما‬‫طوالني‬‫تر‬(‫شمارش‬‫بيشتر‬)،‫قسمت‬‫ديگری‬‫در‬‫داخل‬‫ميکروکنترلر‬‫وجود‬‫دارد‬‫که‬‫پ‬‫يش‬‫مقسم‬
‫نام‬‫دارد‬
–‫پيش‬‫مقسم‬‫مي‬‫تواند‬‫نسبت‬‫های‬1:2،1:4،‫تا‬1:256‫را‬‫اختيار‬‫کند‬
–‫‌عنوان‬‫ه‬‫ب‬‫مثال‬‫اگر‬‫پيش‬‫مقسم‬‫روی‬1:128‫تنظيم‬‫شده‬،‫باشد‬‫به‬‫ازای‬128‫کالک‬‫ورودی‬‫به‬‫پيش‬،‫مقسم‬‫تايمر‬‫يک‬‫واحد‬
‫افزايش‬‫خواهد‬‫يافت‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
53
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫های‬‫ثبات‬SFR‫يا‬‫ثبات‬‫های‬‫کاربرد‬‫خاص‬
–‫اين‬‫‌ها‬‫ت‬‌‫ا‬‫ثب‬‫عملکرد‬‫خاصي‬‫دارند‬‫و‬‫هر‬‫يک‬‫برای‬‫قسمتهای‬‫معيني‬‫از‬‫ميکروکنترلر‬‫در‬‫نظر‬‫گرفته‬‫‌اند‬‫ه‬‫شد‬
–‫ثبات‬Status
–‫اين‬‫ثبات‬‫دارای‬8‫بيت‬‫مي‬‫باشد‬‫و‬‫در‬‫آدرسهای‬03h‫و‬83h‫از‬‫حافظه‬RAM‫قرار‬‫دارد‬.
–R:‫مخفف‬Readable bit‫است‬‫و‬‫نشان‬‫دهنده‬‫آن‬‫است‬‫که‬‫بيت‬‫مورد‬‫نظر‬‫قابل‬‫خواندن‬‫است‬
–W:‫مخفف‬Writable bit‫است‬‫و‬‫نشان‬‫مي‬‫دهد‬‫که‬‫بيت‬‫مورد‬‫نظر‬‫قابل‬‫نوشتن‬‫است‬
–n:‫نشان‬‫مي‬‫دهد‬‫که‬‫بيت‬‫مورد‬‫نظر‬‫در‬‫هنگام‬‫روشن‬‫شدن‬‫ميکروکنترلر‬‫چه‬‫مقداری‬(0‫يا‬1)‫خواهد‬‫داشت‬.
–x:‫به‬‫معني‬‫آن‬‫است‬‫که‬‫مقدار‬‫بيت‬‫نامعلوم‬‫است‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
54
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫های‬‫ثبات‬SFR‫يا‬‫ثبات‬‫های‬‫کاربرد‬‫خاص‬
–‫ثبات‬Status
–‫بيت‬‫صفر‬،C(Carry flag،𝑏𝑜𝑟𝑟𝑜𝑤)
–‫اگر‬‫در‬‫حين‬‫عمل‬‫جمع‬‫و‬‫تفريق‬‫رقم‬‫نقلي‬(Carry bit)‫و‬‫رقم‬‫قرضي‬(borrow bit)‫ايجاد‬‫شود‬‫مقدار‬‫اين‬‫بيت‬‫از‬‫صفر‬‫به‬
‫يک‬‫تبديل‬‫‌شود‬‫ي‬‫م‬
–‫رقم‬‫نقلي‬‫زماني‬‫ايحاد‬‫‌شود‬‫ي‬‫م‬‫که‬‫در‬‫جمع‬‫دو‬‫عدد‬8،‫بيتي‬‫حاصل‬9‫بيت‬‫شود‬
1→
‫رقم‬
‫نقلی‬
01100111
10001011+
111011011
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
55
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫های‬‫ثبات‬SFR‫يا‬‫ثبات‬‫های‬‫کاربرد‬‫خاص‬
–‫ثبات‬Status
–‫بيت‬‫صفر‬،C(Carry flag،𝑏𝑜𝑟𝑟𝑜𝑤)
–‫رقم‬،‫قرضي‬‫زماني‬‫ايجاد‬‫‌شود‬‫ي‬‫م‬‫که‬‫نتيجه‬‫عمليات‬،‫تفريق‬‫منفي‬‫شده‬‫و‬‫نياز‬‫به‬‫قرض‬‫کردن‬‫عدد‬‫يک‬‫از‬‫بيت‬‫ب‬‫ا‬‫مرتبه‬
‫باالتر‬‫است‬
‫قرضی‬ ‫رقم‬←10
10101101
10010101-
00100000
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
56
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫های‬‫ثبات‬SFR‫يا‬‫ثبات‬‫های‬‫کاربرد‬‫خاص‬
–‫ثبات‬Status
–‫بيت‬،‫يک‬DC(Digital Carry flag،𝑏𝑜𝑟𝑟𝑜𝑤):
–‫اگر‬‫در‬‫طول‬‫عمل‬‫جمع‬‫و‬‫تفريق‬‫رقم‬‫نقلي‬‫مياني‬‫ظاهر‬‫شود‬(‫از‬‫بيت‬4‫به‬‫بيت‬5‫رقم‬‫نقلي‬‫وجود‬‫داشته‬‫باشد‬)‫مقدار‬‫اين‬
‫بيت‬‫از‬‫صفر‬‫به‬‫يک‬‫تبديل‬‫مي‬‫شود‬
1→
‫رقم‬
‫نقلی‬
01010101
11010000+
10101101
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
57
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫های‬‫ثبات‬SFR‫يا‬‫ثبات‬‫های‬‫کاربرد‬‫خاص‬
–‫ثبات‬Status
–‫بيت‬،‫دو‬Z(zero flag):‫اين‬،‫بيت‬‫پرچم‬‫صفر‬‫است‬.‫اگر‬‫نتيجه‬‫يک‬‫عمل‬‫محاسباتي‬‫يا‬‫منطقي‬‫صفر‬،‫شود‬‫مقدار‬‫اي‬‫ن‬‫بيت‬
‫يک‬‫‌شود‬‫ي‬‫م‬
–‫همچنين‬‫اگر‬‫در‬‫دستورات‬‫شرطي‬‫نتيجه‬‫غلط‬،‫باشد‬‫مقدار‬‫اين‬‫بيت‬‫برابر‬‫صفر‬‫خواهد‬‫شد‬
–‫بيت‬،‫سه‬𝑃𝐷(Power- Down bit):‫‌که‬‫ي‬‫هنگام‬‫ميکروکنترلر‬‫به‬‫منبع‬‫تغذيه‬‫وصل‬‫‌شود‬‫ي‬‫م‬‫مقدار‬‫اين‬‫بيت‬‫برابر‬‫يک‬
‫خواهد‬‫شد‬
–‫بيت‬،‫چهار‬𝑇𝑂(Timer-Out bit):‫اين‬‫بيت‬‫اعالن‬‫سرريز‬‫تايمر‬watchdog‫است‬‫و‬‫با‬‫سرريز‬‫تايمر‬watchdog‫مقدار‬‫آن‬
‫صفر‬‫‌شود‬‫ي‬‫م‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
58
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫های‬‫ثبات‬SFR‫يا‬‫ثبات‬‫های‬‫کاربرد‬‫خاص‬
–‫ثبات‬Status
–‫‌های‬‫ت‬‫بي‬‫پنج‬‫و‬،‫شش‬RP1,RP0(Register Bank Select bits):
–‫با‬‫بيت‬5‫‌توان‬‫ي‬‫م‬‫بين‬‫دو‬‫بانک‬‫صفر‬‫و‬‫يک‬‫سوئيچ‬‫کرد‬.‫بيت‬‫ششم‬‫در‬16F84‫مورد‬‫استفاده‬‫قرار‬‫‌گيرد‬‫ي‬‫نم‬‫و‬‫هميشه‬‫بايد‬
‫صفر‬‫باشد‬.
–‫بيت‬،‫هفت‬IRP(Register Bank Select bit):
–‫وظيفه‬‫اين‬‫بيت‬‫انتخاب‬‫‌های‬‫ک‬‫بان‬2‫و‬3‫است‬.‫مقدار‬1‫در‬‫آن‬‫به‬‫معني‬‫انتخاب‬‫بانکهای‬2‫و‬3‫و‬‫مقدار‬‫صفر‬‫به‬‫منزله‬
‫انتخاب‬‫‌های‬‫ک‬‫بان‬0‫و‬1‫است‬.
–‫اين‬‫بيت‬‫در‬16F84‫مورد‬‫استفاده‬‫قرار‬‫نمي‬‫گيرد‬‫و‬‫هميشه‬‫بايد‬‫صفر‬‫باشد‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
59
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫های‬‫ثبات‬SFR‫يا‬‫ثبات‬‫های‬‫کاربرد‬‫خاص‬
–‫ثبات‬OPTION_REG
–‫اين‬‫ثبات‬‫که‬‫در‬‫آدرس‬81h‫از‬‫حافظه‬RAM‫قرار‬،‫دارد‬‫يک‬‫ثبات‬‫قابل‬‫خواندن‬‫و‬‫نوشتن‬‫‌باشد‬‫ي‬‫م‬
–‫شامل‬‫‌های‬‫ت‬‫بي‬‫کنترلي‬‫مختلف‬‫برای‬‫تخصيص‬‫واحد‬‫پيش‬‫مقياس‬‫دهنده‬‫به‬‫تايمر‬،‫صفر‬‫تايمر‬،‫نگهبان‬‫کنت‬‫رل‬‫وقفه‬
،‫خارجي‬‫کنترل‬‫تايمر‬‫صفر‬‫و‬‫مقاومت‬‫های‬(pull up)‫پورت‬B‫است‬
–‫‌های‬‫ت‬‫بي‬،‫صفر‬‫يک‬‫و‬،‫دو‬PS0-PS2(Prescaler Rate Select bits):
–‫اين‬‫سه‬‫بيت‬‫برای‬‫تعيين‬‫مقدار‬‫پيش‬‫مقسم‬‫‌باشند‬‫ي‬‫م‬.
WDTTMR0BITS
1:1
1:2
1:4
1:8
1:10
1:32
1:64
1:128
1:2
1:4
1:8
1:10
1:32
1:64
1:128
1:256
000
001
010
011
100
101
110
111
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
60
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫های‬‫ثبات‬SFR‫يا‬‫ثبات‬‫های‬‫کاربرد‬‫خاص‬
–‫ثبات‬OPTION_REG
–‫بيت‬،‫سه‬PSA( Pre Scaler Assignmet bit)
–‫اين‬‫بيت‬‫برای‬‫اختصاص‬‫پيش‬‫مقسم‬‫به‬TMR0‫يا‬WDT‫بکار‬‫‌رود‬‫ي‬‫م‬
–‫اگر‬‫مقدار‬‫آن‬‫يک‬،‫باشد‬‫پيش‬‫مقسم‬‫به‬WDT‫اختصاص‬‫داده‬‫‌شود‬‫ي‬‫م‬‫و‬‫اگر‬‫مقدار‬‫آن‬‫صفر‬،‫باشد‬‫پيش‬‫مقسم‬‫به‬TMR0
‫اختصاص‬‫داده‬‫‌شود‬‫ي‬‫م‬.
–‫بيت‬4،T0SE:TMR0(Source Edge Select bit)
–‫اگر‬‫افزايش‬‫مقدار‬TMR0‫بوسيله‬‫ورودی‬‫کالک‬‫از‬‫طريق‬‫پايه‬‫شماره‬3،‫باشد‬‫اين‬‫بيت‬‫برای‬‫تعيين‬‫‌ای‬‫ه‬‫لب‬‫است‬‫که‬‫تحت‬
‫آن‬TMR0‫افزايش‬‫خواهد‬‫يافت‬
–‫مقدار‬‫يک‬‫به‬‫معني‬‫افزايش‬‫در‬‫لبه‬‫پايين‬‫رونده‬‫و‬‫مقدار‬‫صفر‬‫به‬‫معني‬‫افزايش‬‫در‬‫لبه‬‫باالرونده‬‫کالک‬‫است‬.‫اي‬‫ن‬‫بيت‬‫برای‬
‫کالک‬‫خارجي‬‫استفاده‬‫‌شود‬‫ي‬‫م‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
61
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫های‬‫ثبات‬SFR‫يا‬‫ثبات‬‫های‬‫کاربرد‬‫خاص‬
–‫ثبات‬OPTION_REG
–‫بيت‬5،T0CS:TMR0(Clock Source Select bit)
–‫تايمر‬‫صفر‬(TMR0)‫برای‬‫اندازه‬‫گيری‬‫زمان‬‫نياز‬‫به‬‫يک‬‫کالک‬‫ورودی‬‫دارد‬
–‫استفاده‬‫از‬‫کالک‬‫داخلي‬‫خود‬‫ميکروکنترلر‬،‫در‬‫اين‬‫حالت‬‫کالک‬‫تايمر‬‫يک‬‫چهارم‬‫کالک‬‫ميکروکنترلر‬‫خواهد‬‫ب‬‫ود‬
–‫در‬‫صورتيکه‬‫ميکروکنترلر‬‫با‬‫اسيالتور‬‫خارجي‬‫کار‬،‫کند‬‫مقدار‬‫کالک‬‫تايمر‬‫يک‬‫چهارم‬‫کالک‬‫اسيالتور‬‫خواهد‬‫ب‬‫ود‬
–‫‌ای‬‫ه‬‫نکت‬‫که‬‫الزم‬‫است‬‫به‬‫آن‬‫اشاره‬‫شود‬‫اين‬‫است‬‫که‬‫مقدار‬‫تنظيم‬‫شده‬‫برای‬Prescaler‫بر‬‫روی‬‫مقدار‬‫جديد‬‫يعني‬
fosc/4‫عمل‬‫‌کند‬‫ي‬‫م‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
62
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫های‬‫ثبات‬SFR‫يا‬‫ثبات‬‫های‬‫کاربرد‬‫خاص‬
–‫ثبات‬OPTION_REG
–‫بيت‬6،INTEDG(Interrupt Edge Select bit )
–‫در‬‫صورتيکه‬‫وقفه‬‫در‬‫برنامه‬‫فعال‬،‫باشد‬‫با‬‫اعمال‬‫ورودی‬‫به‬‫پايه‬‫شماره‬6(RBOINT)‫وقفه‬‫اجرا‬‫مي‬‫گردد‬
–‫اگر‬‫مقدار‬‫بيت‬،‫شش‬‫يک‬،‫باشد‬‫وقفه‬‫در‬‫لبه‬‫باال‬‫رونده‬‫ورودی‬‫اجرا‬‫‌گردد‬‫ي‬‫م‬
–‫بيت‬7،: PORTB 𝑅𝐵𝑃𝑈(Pull-up Enable bit)
–‫اين‬‫بيت‬‫برای‬‫فعالسازی‬‫مقاومتهای‬pull – up‫داخلي‬‫پورت‬B‫بکار‬‫مي‬‫رود‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
63
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫های‬‫ثبات‬SFR‫يا‬‫ثبات‬‫های‬‫کاربرد‬‫خاص‬
–‫‌های‬‫ت‬‫ثبا‬TRISB‫و‬TRISA
–‫کار‬‫اين‬‫دو‬‫رجيستر‬‫تعيين‬‫جهت‬‫داده‬(‫ورودی‬-‫خروجي‬)‫در‬‫‌های‬‫ت‬‫پور‬A‫و‬B‫است‬
–‫بيتهای‬‫صفر‬‫تا‬‫چهار‬TRISA‫به‬‫ترتيب‬‫نظير‬‫پايه‬‫های‬RA0‫تا‬RA4‫از‬‫پورت‬A‫و‬‫‌های‬‫ت‬‫بي‬‫صفر‬‫تا‬‫هفت‬‫از‬TRISB‫به‬
‫ترتيب‬‫نظير‬‫پايه‬‫های‬RB0‫تا‬RB7‫از‬‫پورت‬B‫است‬
–‫برای‬‫تعريف‬‫يک‬‫پايه‬‫‌عنوان‬‫ه‬‫ب‬‫ورودی‬‫کافي‬‫است‬‫بيت‬‫متناظر‬‫آن‬‫پايه‬‫در‬‫ثبات‬TRIS،‫يک‬‫شود‬.‫مقدار‬‫صفر‬‫پايه‬‫نظير‬‫را‬
‫بصورت‬‫خروجي‬‫تعريف‬‫‌کند‬‫ي‬‫م‬.
–‫‌عنوان‬‫ه‬‫ب‬‫مثال‬‫اگر‬‫مقدار‬00h(‫باينر‬0000000)‫در‬‫ثبات‬TRISB‫قرار‬‫داده‬،‫شود‬‫تمام‬‫پايه‬‫های‬‫پورت‬B(‫پايه‬‫های‬6‫تا‬
13‫ميکروکنترلر‬)‫بصورت‬‫خروجي‬‫تعريف‬‫‌شوند‬‫ي‬‫م‬
–‫اگر‬‫مقدار‬0Fh(‫باينری‬00001111)‫در‬‫ثبات‬TRISB‫قرار‬‫داده‬،‫شود‬‫پايه‬‫های‬6‫تا‬9‫ميکروکنترلر‬‫بصورت‬‫ورودی‬‫و‬
‫‌های‬‫ه‬‫پاي‬10‫تا‬13‫ميکروکنترلر‬‫بصورت‬‫خروجي‬‫تعريف‬‫خواهند‬‫شد‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
64
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫های‬‫ثبات‬SFR‫يا‬‫ثبات‬‫های‬‫کاربرد‬‫خاص‬
–‫ثبات‬INTCON
–‫ثباتي‬‫که‬‫‌ی‬‫ه‬‫وظيف‬‫کنترل‬‫وقفه‬‫را‬‫دارد‬‫،ثبات‬‫کنترل‬‫وقفه‬‫نام‬‫دارد‬‫و‬‫در‬‫آدرس‬0BH‫و‬8BH‫از‬‫‌ی‬‫ه‬‫حافظ‬RAM‫قرار‬
‫دارد‬
–‫‌ی‬‫ه‬‫وظيف‬‫اين‬‫ثبات‬‫کنترل‬‫اجرای‬‫زيروال‬‫وقفه‬‫يا‬‫اجرا‬‫نکردن‬‫آن‬‫در‬‫هنگام‬‫به‬‫وجود‬‫آمدن‬‫وقفه‬‫است‬
–‫بيت‬‫صفر‬(Flag bit RBIF:RB Port Change Interrupt)
–‫اين‬‫بيت‬،‫بيت‬‫پرچم‬‫تغيير‬‫در‬‫پورت‬B‫است‬(‫بيت‬‫تشخيص‬‫وقفه‬).
–‫اين‬‫بيت‬‫تغيير‬‫در‬‫پايه‬‫های‬4،5،6‫و‬7‫از‬‫پورت‬B‫را‬‫اطالع‬‫‌دهد‬‫ي‬‫م‬
–‫اين‬‫بيت‬‫بر‬‫اساس‬‫تغيير‬‫اين‬‫پايه‬‫ها‬‫دارای‬‫مقادير‬‫زير‬‫خواهد‬‫بود‬:
.11:،‫حداقل‬‫وضعيت‬‫قبلي‬‫يکي‬‫از‬‫پايه‬‫ها‬(4،5،6‫و‬7)‫تغيير‬‫کرده‬‫است‬.
.20:‫هيچ‬‫تغييری‬‫در‬‫وضعيت‬‫قبلي‬‫هيچ‬‫يک‬‫‌ها‬‫ه‬‫ازپاي‬(4،5،6‫و‬7)‫اتفاق‬‫نيافتاده‬‫است‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
65
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫های‬‫ثبات‬SFR‫يا‬‫ثبات‬‫های‬‫کاربرد‬‫خاص‬
–‫ثبات‬INTCON
–‫بيت‬1RB0/INT Interrupt Flag bit:INTF
–‫در‬‫‌که‬‫ي‬‫صورت‬‫پايه‬‫شماره‬6(RBO/INT)‫بعنوان‬‫وقفه‬‫خارجي‬‫تعريف‬‫شده‬‫باشد‬(‫فعال‬‫شدن‬‫بيت‬‫شماره‬4،INTE)،
‫وظيفه‬‫اين‬‫بيت‬‫تشخيص‬‫وقوع‬‫وقفه‬‫روی‬‫آن‬‫است‬
–‫بيت‬2(TMR0 Over flow Interrupt Flag bit:TOIF)
–‫اين‬‫بيت‬،‫از‬‫سر‬‫ريز‬‫شدن‬‫رجيستر‬TMRO‫خبر‬‫‌دهد‬‫ي‬‫م‬.‫در‬‫صورت‬‫سر‬‫ريز‬‫شدن‬‫تايمر‬TMPO‫اين‬‫بيت‬‫يک‬‫خواهد‬‫شد‬
–‫بيت‬3(RB Port Change Interrupt Enable bit:RBIE)
–‫اين‬‫بيت‬،‫بيت‬‫‌سازی‬‫ل‬‫فعا‬،‫وقفه‬‫در‬‫صورت‬‫تغيير‬‫در‬‫پايه‬‫های‬4،5،6‫و‬7‫از‬‫پورت‬B‫‌باشد‬‫ي‬‫م‬
–‫در‬‫واقع‬‫با‬‫اين‬‫بيت‬‫اجازه‬‫فعال‬‫شدن‬‫وقفه‬‫از‬‫طريق‬‫اين‬‫‌ها‬‫ه‬‫پاي‬‫تعيين‬‫‌شود‬‫ي‬‫م‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
66
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫های‬‫ثبات‬SFR‫يا‬‫ثبات‬‫های‬‫کاربرد‬‫خاص‬
–‫ثبات‬INTCON
–‫بيت‬4INTE: RB0/INT Interrupt Enable bit
–‫اين‬‫بيت‬،‫بيت‬‫فعالسازی‬‫وقفه‬‫خارجي‬‫‌باشد‬‫ي‬‫م‬
–‫بيت‬5(Enable bit TOIE:TMR0 Over flow Interrupt)
–‫اين‬‫بيت‬،‫بيت‬‫فعالسازی‬‫وقفه‬‫در‬‫صورت‬‫سر‬‫ريز‬‫شدن‬TMRO‫است‬.‫اگر‬‫اين‬‫بيت‬1،‫باشد‬‫سر‬‫ريز‬TMRO‫اجازه‬‫فعال‬
‫نمودن‬‫وقفه‬‫را‬‫خواهد‬‫داشت‬.
–‫بيت‬6(EEIE:EE WriteComplete Interrupt Enable bit)
–‫اين‬‫بيت‬،‫بيت‬‫فعالسازی‬‫وقفه‬‫در‬‫صورت‬‫اتمام‬‫نوشتن‬‫در‬EEPROM‫است‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
67
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫های‬‫ثبات‬SFR‫يا‬‫ثبات‬‫های‬‫کاربرد‬‫خاص‬
–‫ثبات‬INTCON
–‫بيت‬7GIE:Global Interrupt Enable bit
–‫اين‬‫بيت‬،‫بيت‬‫فعالسازی‬‫اصلي‬‫است‬‫و‬‫با‬‫اين‬‫بيت‬‫مي‬‫توان‬‫تمام‬‫انواع‬‫‌ها‬‫ه‬‫وقف‬‫را‬‫فعال‬‫يا‬‫غير‬‫فعال‬‫کرد‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
68
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫های‬‫ثبات‬SFR‫يا‬‫ثبات‬‫های‬‫کاربرد‬‫خاص‬
–‫ثبات‬EEDATA
–‫اين‬‫ثبات‬‫جهت‬‫نوشتن‬‫و‬‫يا‬‫خواندن‬‫داده‬‫از‬EEPROM‫استفاده‬‫مي‬‫شود‬
–‫ثبات‬EEADR
–‫اين‬‫ثبات‬‫وظيفه‬‫آدرس‬‫دهي‬‫حافظه‬EEPROM‫را‬‫بعهده‬‫دارد‬‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
69
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫های‬‫ثبات‬SFR‫يا‬‫ثبات‬‫های‬‫کاربرد‬‫خاص‬
–‫خالصه‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
70
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫های‬‫درگاه‬‫ورودی‬‫و‬‫خروجی‬‫میکروکنترلر‬PIC16F84
–‫ميکروکنترلر‬16F84‫دارای‬13‫پايه‬‫ورودی‬/‫خروجي‬‫در‬‫دو‬‫درگاه‬A(‫پنج‬‫پايه‬/‫بيت‬)‫و‬B(8‫پايه‬/‫بيت‬)‫است‬
–‫ميزان‬‫جريان‬‫کشي‬‫پايه‬‫های‬‫مختلف‬
–‫هر‬‫يک‬‫‌های‬‫ه‬‫پاي‬‫‌ها‬‫ت‬‫پور‬‫را‬‫ميتوان‬‫به‬‫طور‬‫جداگانه‬(‫تکي‬)‫بصورت‬‫ورودی‬‫يا‬‫خروجي‬‫تعريف‬‫کرد‬.‫اين‬‫کار‬‫توسط‬
SFR‫های‬TRISA(‫آدرس‬85h،‫برای‬‫پورت‬A)‫و‬TRISB(‫آدرس‬86h،‫برای‬‫پورت‬B)‫انجام‬‫‌شود‬‫ي‬‫م‬
–‫چهار‬‫پايه‬‫پورت‬B‫دارای‬‫قابليت‬‫توليد‬‫وقفه‬‫هستند‬‫و‬‫در‬‫واقع‬‫يکي‬‫از‬‫منابع‬،‫وقفه‬‫همين‬‫پايه‬‫ها‬‫هستند‬
‫پورت‬B‫پورت‬A‫هر‬‫پايه‬IO
mA150mA80mA25‫جريان‬Sink(‫ورودي‬)
mA100mA50mA25‫جريان‬Source(‫خروجی‬)
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
71
•‫پشته‬‫در‬PIC16F84
–‫فضای‬‫پشته‬‫نه‬‫قسمتي‬‫از‬‫حافظه‬‫برنامه‬‫است‬‫و‬‫نه‬‫قسمتي‬‫از‬‫حافظه‬‫داده‬
–‫پشته‬‫برای‬‫ذخيره‬‫مقدار‬‫شمارنده‬‫برنامه‬(PC)‫هنگام‬‫فراخواني‬‫زير‬‫‌ها‬‫ل‬‫روا‬‫استفاده‬‫‌شود‬‫ي‬‫م‬.
–‫بدين‬‫ترتيب‬‫هنگام‬‫بازگشت‬‫از‬،‫زيرروال‬‫ميکروکنترولر‬‫خواهد‬‫دانست‬‫که‬‫از‬‫کجا‬‫اجرای‬‫برنامه‬‫را‬‫از‬‫سر‬‫بگيرد‬
–‫پيش‬‫از‬،‫پرش‬‫ميکروکنترلر‬‫آدرس‬‫فعلي‬‫خود‬‫در‬‫برنامه‬‫اصلي‬‫را‬‫که‬‫در‬PC‫قرار‬‫دارد‬‫در‬‫پشته‬‫ذخيره‬‫‌کند‬‫ي‬‫م‬.‫به‬‫اين‬‫عمل‬
PUSH‫گفته‬‫‌شود‬‫ي‬‫م‬
–‫بعد‬‫از‬‫اجرای‬‫زيرروال‬‫ميکروکنترلر‬‫اجرای‬‫برنامه‬‫اصلي‬‫را‬‫از‬‫آدرسي‬‫که‬‫در‬‫پشته‬‫ذخيره‬‫شده‬،‫است‬‫از‬‫سر‬‫‌گيرد‬‫ي‬‫م‬.‫به‬‫اين‬
‫عمل‬POP‫گفته‬‫‌شود‬‫ي‬‫م‬.
–PIC16F84‫دارای‬8‫جايگاه‬13‫بيتي‬‫برای‬‫پشته‬‫‌باشد‬‫ي‬‫م‬
–‫پشته‬8‫سطحي‬‫نشان‬‫‌دهد‬‫ي‬‫م‬‫که‬‫از‬8‫برنامه‬‫زيرروال‬‫تو‬‫در‬‫تو‬(‫صدا‬‫زدن‬‫زير‬‫روال‬‫در‬‫داخل‬‫زير‬‫روال‬‫ديگر‬)‫‌توان‬‫ي‬‫م‬
‫استفاده‬‫کرد‬
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
72
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫پشته‬‫در‬PIC16F84
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
73
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫ثبات‬W
–‫اين‬،‫ثبات‬‫ثبات‬‫کار‬‫نام‬‫دارد‬‫و‬‫نقشي‬‫شبيه‬‫اکوموالتور‬‫در‬‫ساير‬‫ميکروکنترلرها‬‫دارد‬
–‫اين‬‫ثبات‬‫با‬ALU‫در‬‫ارتباط‬‫است‬‫و‬‫نتايج‬‫محاسبات‬ALU‫را‬‫در‬‫خود‬‫نگه‬‫‌دارد‬‫ي‬‫م‬
–‫ثبات‬W،‫همچنين‬‫در‬‫تعيين‬‫ورودی‬-‫خروجي‬‫بودن‬‫‌ها‬‫ت‬‫پور‬‫نيز‬‫استفاده‬‫‌شود‬‫ي‬‫م‬.
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
74
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫شمارنده‬‫برنامه‬‫در‬PIC16F84
–‫شمارنده‬‫برنامه‬‫يا‬PC‫آدرس‬‫دستورالعملي‬‫که‬‫توسط‬CPU‫بايد‬‫اجرا‬‫شود‬‫را‬‫مشخص‬‫‌کند‬‫ي‬‫م‬
–PIC16F84‫دارای‬‫يک‬‫شمارنده‬‫برنامه‬13‫بيتي‬‫است‬
–‫بايت‬‫کم‬‫ارزش‬‫آن‬‫با‬‫عنوان‬PCL‫شناخته‬‫‌شود‬‫ي‬‫م‬‫و‬‫ثباتي‬‫قابل‬‫خواندن‬‫و‬‫نوشتن‬‫است‬‫و‬‫بايت‬‫با‬‫ارزش‬‫آن‬‫يا‬PCH‫است‬
–‫اين‬13‫بيت‬‫توانايي‬‫‌دهي‬‫س‬‫آدر‬‫برای‬8‫کيلوبايت‬‫از‬‫فضای‬‫حافظه‬‫برنامه‬‫را‬‫دارد‬‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
75
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫برنامه‬‫نويسی‬‫اسمبلی‬
–‫زبان‬‫‌نويسي‬‫ه‬‫برنام‬‫اصلي‬‫خانواده‬PIC‫و‬‫گروه‬‫وسيعي‬‫از‬‫ميکروکنترلرها‬‫زبان‬‫اسمبلي‬‫است‬
–‫دستورات‬‫زبان‬‫اسمبلي‬
–‫دستور‬MOVLW:‫انتقال‬‫مقدار‬‫ثابت‬‫به‬‫ثبات‬W
–‫اين‬‫دستور‬‫داده‬‫هشت‬‫بيتي‬K‫را‬‫به‬‫ثبات‬W‫منتقل‬‫‌کند‬‫ي‬‫م‬
– MOVLW K
–‫مثال‬
– MOVLW 0x12
–‫دستور‬MOVWF:‫انتقال‬‫ثبات‬W‫به‬‫ثبات‬F
–‫اين‬،‫دستور‬‫داده‬‫موجود‬‫در‬‫ثبات‬W‫را‬‫به‬‫ثبات‬F‫منتقل‬‫‌کند‬‫ي‬‫م‬
– MOVWF F
–‫به‬‫جای‬F‫در‬‫دستور‬،‫فوق‬‫‌تواند‬‫ي‬‫م‬‫آدرس‬‫آن‬‫قرار‬‫گيرد‬‫و‬‫يا‬‫نام‬‫ثبات‬‫نوشته‬‫شود‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
76
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫برنامه‬‫نويسی‬‫اسمبلی‬
–‫دستورات‬‫زبان‬‫اسمبلي‬
–‫دستور‬MOVF:
– MOVF F,d
–‫در‬‫اين‬،‫دستور‬‫اگر‬‫مقدار‬d‫برابر‬‫صفر‬،‫باشد‬‫داده‬‫موجود‬‫در‬F‫در‬W‫ريخته‬‫مي‬‫شود‬‫و‬‫اگر‬‫مقدار‬d‫يک‬،‫باشد‬‫داده‬‫موجود‬
‫در‬W‫را‬‫به‬F‫منتقل‬‫‌کند‬‫ي‬‫م‬
–‫دستور‬ADDLW:
–‫اين‬‫دستور‬‫يک‬‫مقدار‬‫ثابت‬‫هشت‬‫‌بيتي‬(k)‫را‬‫با‬‫ثبات‬W‫جمع‬‫مي‬‫کند‬‫و‬‫نتيجه‬‫را‬‫در‬W‫‌ريزد‬‫ي‬‫م‬
– ADDLW k
;W=C7h0b11000111MOVLW
;F=11000111b, F is located at address 0Ch of RAM0x0CMOVWF
;W=1Ah0b11010MOVLW
;W=9Bh + 1Ah = B5h0x9BADDLW
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
77
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫برنامه‬‫نويسی‬‫اسمبلی‬
–‫دستورات‬‫زبان‬‫اسمبلي‬
–‫دستور‬ADDWF
–‫اين‬‫دستور‬‫بسته‬‫به‬‫مقدار‬d،‫عدد‬‫داخل‬‫رجيستر‬F‫را‬‫با‬W‫جمع‬‫مي‬‫کند‬‫و‬‫نتيجه‬‫را‬‫در‬F‫يا‬W‫‌ريزد‬‫ي‬‫م‬
–‫اگر‬‫مقدار‬d‫برابر‬‫صفر‬،‫باشد‬‫نتيجه‬‫در‬W‫و‬‫اگر‬‫يک‬‫باشد‬‫نتيجه‬‫در‬F‫ريخته‬‫‌شود‬‫ي‬‫م‬.
– ADDWF F,d
;W=9Bh0x9BMOVLW
;F=9Bh, F is located at address 0Ch of RAM0x0CMOVWF
;W=1Ah0x1AMOVLW
;F=9Bh+1Ah0x0C,1ADDLWF
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
78
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫برنامه‬‫نويسی‬‫اسمبلی‬
–‫دستورات‬‫زبان‬‫اسمبلي‬
–‫دستور‬SUBLW:‫کم‬‫کردن‬‫ثبات‬W‫از‬‫مقدار‬‫ثابت‬
–‫با‬‫اجرای‬‫اين‬‫دستور‬‫ثبات‬W‫از‬‫مقدار‬‫هشت‬‫بيتي‬k‫کم‬‫شده‬‫و‬‫نتيجه‬‫در‬‫ثبات‬W‫قرار‬‫‌گيرد‬‫ي‬‫م‬
– SUBLW k
–‫دستور‬SUBWF:‫کم‬‫کردن‬‫ثبات‬W‫از‬‫ثبات‬F
–‫با‬‫اجرای‬‫اين‬‫دستور‬‫مقدار‬‫ثبات‬W‫از‬‫ثبات‬F‫کم‬‫‌شود‬‫ي‬‫م‬.‫اگر‬‫مقدار‬d‫برابر‬‫صفر‬،‫باشد‬‫نتيجه‬‫در‬W‫و‬‫اگر‬‫برابر‬‫يک‬،‫باشد‬
‫نتيجه‬‫در‬F‫ذخيره‬‫‌شود‬‫ي‬‫م‬
– SUBWF F,d
;W=1Ah0b11010MOVLW
;W=FFh – 1Ah = E5h0xFFSUBLW
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
79
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫برنامه‬‫نويسی‬‫اسمبلی‬
–‫دستورات‬‫زبان‬‫اسمبلي‬
–‫دستور‬SUBWF:‫کم‬‫کردن‬‫ثبات‬W‫از‬‫ثبات‬F
–‫دستور‬BCF:‫صفر‬‫کردن‬‫بيت‬
–‫اين‬‫دستور‬‫بيت‬‫شماره‬b‫از‬‫ريجيستر‬F‫را‬‫صفر‬(clear)‫‌کند‬‫ي‬‫م‬
– BCF F,b
– BCF FLAG_REG, 7
;W=11011100b0b11011100MOVLW
;F=11011100b0x0CMOVWF
;W=03h0b11MOVLW
;W=11011100b – 11b=110110010x0C,0SUBWF
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
‫کاربردی‬ ‫مکاترونیک‬۱
faradars.org/fvmec105
80
‫سوم‬ ‫فصل‬:‫میکروکنترلر‬PIC
•‫برنامه‬‫نويسی‬‫اسمبلی‬
–‫دستورات‬‫زبان‬‫اسمبلي‬
–‫دستور‬BSF:‫يک‬‫کردن‬‫بيت‬
–‫مانند‬BCF‫است‬‫با‬‫اين‬‫تفاوت‬‫که‬‫بيت‬‫شماره‬b‫از‬‫ريجيستر‬F‫را‬‫به‬‫جای‬،‫صفر‬‫يک‬(set)‫‌کند‬‫ي‬‫م‬.
– BSF F,b
– BSF FLAG_REG, 3
–‫دستور‬BTFSC:‫تست‬‫بيت‬‫و‬‫پرش‬‫در‬‫صورت‬‫صفر‬‫بودن‬
–‫اين‬‫دستور‬‫بيت‬‫شماره‬b‫از‬‫ريجيستر‬F‫را‬‫چک‬‫‌کند‬‫ي‬‫م‬،‫اگر‬‫صفر‬‫باشد‬‫دستور‬‫بعدی‬‫انجام‬‫‌شود‬‫ي‬‫نم‬‫و‬‫به‬‫دستور‬‫بعدتر‬
‫‌رود‬‫ي‬‫م‬‫و‬‫در‬‫واقع‬‫يک‬‫دستور‬‫پرش‬‫مي‬‫کند‬
– BTFSC F,b
–‫از‬‫اين‬‫دستور‬‫برای‬‫عمليات‬‫شرطي‬(‫مثل‬IF)‫استفاده‬‫‌شود‬‫ي‬‫م‬
‫س‬‫ر‬‫د‬‫ا‬‫ﺮ‬‫ﻓ‬
FaraDars.org
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم
آموزش مکاترونیک کاربردی ۱ - بخش سوم

More Related Content

Similar to آموزش مکاترونیک کاربردی ۱ - بخش سوم

Similar to آموزش مکاترونیک کاربردی ۱ - بخش سوم (10)

آموزش مکاترونیک کاربردی ۱ - بخش دوم
آموزش مکاترونیک کاربردی ۱ - بخش دومآموزش مکاترونیک کاربردی ۱ - بخش دوم
آموزش مکاترونیک کاربردی ۱ - بخش دوم
 
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
 
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
 
بروشور هفته مشاغل
بروشور  هفته مشاغل بروشور  هفته مشاغل
بروشور هفته مشاغل
 
طراحی شبکه های کامپیوتری
طراحی شبکه های کامپیوتریطراحی شبکه های کامپیوتری
طراحی شبکه های کامپیوتری
 
ISMS
ISMSISMS
ISMS
 
alborz resume 5
alborz resume 5alborz resume 5
alborz resume 5
 
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
آموزش نرم افزار Comsol Multiphysics برای تحلیل مسائل مکانیک سیالات و جامدات ب...
 
آموزش تئوری و شبیه سازی سیستم های قدرت در سیمولینک و متلب - بخش یکم2
آموزش تئوری و شبیه سازی سیستم های قدرت در سیمولینک و متلب - بخش یکم2آموزش تئوری و شبیه سازی سیستم های قدرت در سیمولینک و متلب - بخش یکم2
آموزش تئوری و شبیه سازی سیستم های قدرت در سیمولینک و متلب - بخش یکم2
 
معرفی رشته کارشناسی مهندسی کامپیوتر
معرفی رشته کارشناسی مهندسی کامپیوترمعرفی رشته کارشناسی مهندسی کامپیوتر
معرفی رشته کارشناسی مهندسی کامپیوتر
 

More from faradars

More from faradars (20)

آموزش شبیه سازی مدارات الکتریکی با OrCAD
آموزش شبیه سازی مدارات الکتریکی با OrCADآموزش شبیه سازی مدارات الکتریکی با OrCAD
آموزش شبیه سازی مدارات الکتریکی با OrCAD
 
آموزش فیزیک الکتریسیته - فصل ششم تا نهم
آموزش فیزیک الکتریسیته - فصل ششم تا نهمآموزش فیزیک الکتریسیته - فصل ششم تا نهم
آموزش فیزیک الکتریسیته - فصل ششم تا نهم
 
آموزش فیزیک الکتریسیته - فصل یکم تا پنجم
آموزش فیزیک الکتریسیته - فصل یکم تا پنجمآموزش فیزیک الکتریسیته - فصل یکم تا پنجم
آموزش فیزیک الکتریسیته - فصل یکم تا پنجم
 
آموزش ذخیره و بازیابی اطلاعات - درس دهم
آموزش ذخیره و بازیابی اطلاعات - درس دهمآموزش ذخیره و بازیابی اطلاعات - درس دهم
آموزش ذخیره و بازیابی اطلاعات - درس دهم
 
آموزش ذخیره و بازیابی اطلاعات - درس نهم
آموزش ذخیره و بازیابی اطلاعات - درس نهمآموزش ذخیره و بازیابی اطلاعات - درس نهم
آموزش ذخیره و بازیابی اطلاعات - درس نهم
 
آموزش ذخیره و بازیابی اطلاعات - درس هشتم
آموزش ذخیره و بازیابی اطلاعات - درس هشتمآموزش ذخیره و بازیابی اطلاعات - درس هشتم
آموزش ذخیره و بازیابی اطلاعات - درس هشتم
 
آموزش ذخیره و بازیابی اطلاعات - درس هفتم
آموزش ذخیره و بازیابی اطلاعات - درس هفتمآموزش ذخیره و بازیابی اطلاعات - درس هفتم
آموزش ذخیره و بازیابی اطلاعات - درس هفتم
 
آموزش ذخیره و بازیابی اطلاعات - درس ششم
آموزش ذخیره و بازیابی اطلاعات - درس ششمآموزش ذخیره و بازیابی اطلاعات - درس ششم
آموزش ذخیره و بازیابی اطلاعات - درس ششم
 
آموزش ذخیره و بازیابی اطلاعات - درس پنجم
آموزش ذخیره و بازیابی اطلاعات - درس پنجمآموزش ذخیره و بازیابی اطلاعات - درس پنجم
آموزش ذخیره و بازیابی اطلاعات - درس پنجم
 
آموزش ذخیره و بازیابی اطلاعات - درس چهارم
آموزش ذخیره و بازیابی اطلاعات - درس چهارمآموزش ذخیره و بازیابی اطلاعات - درس چهارم
آموزش ذخیره و بازیابی اطلاعات - درس چهارم
 
آموزش ذخیره و بازیابی اطلاعات - درس سوم
آموزش ذخیره و بازیابی اطلاعات - درس سومآموزش ذخیره و بازیابی اطلاعات - درس سوم
آموزش ذخیره و بازیابی اطلاعات - درس سوم
 
آموزش ذخیره و بازیابی اطلاعات - درس دوم
آموزش ذخیره و بازیابی اطلاعات - درس دومآموزش ذخیره و بازیابی اطلاعات - درس دوم
آموزش ذخیره و بازیابی اطلاعات - درس دوم
 
آموزش ذخیره و بازیابی اطلاعات - درس یکم
آموزش ذخیره و بازیابی اطلاعات - درس یکمآموزش ذخیره و بازیابی اطلاعات - درس یکم
آموزش ذخیره و بازیابی اطلاعات - درس یکم
 
آموزش ترمودینامیک ۲ بخش سوم
آموزش ترمودینامیک ۲ بخش سومآموزش ترمودینامیک ۲ بخش سوم
آموزش ترمودینامیک ۲ بخش سوم
 
آموزش ترمودینامیک ۲ بخش هشتم
آموزش ترمودینامیک ۲ بخش هشتمآموزش ترمودینامیک ۲ بخش هشتم
آموزش ترمودینامیک ۲ بخش هشتم
 
آموزش ترمودینامیک ۲ بخش دوم
آموزش ترمودینامیک ۲ بخش دومآموزش ترمودینامیک ۲ بخش دوم
آموزش ترمودینامیک ۲ بخش دوم
 
آموزش ترمودینامیک ۲ بخش هفتم
آموزش ترمودینامیک ۲ بخش هفتمآموزش ترمودینامیک ۲ بخش هفتم
آموزش ترمودینامیک ۲ بخش هفتم
 
آموزش ترمودینامیک ۲ بخش ششم
آموزش ترمودینامیک ۲ بخش ششمآموزش ترمودینامیک ۲ بخش ششم
آموزش ترمودینامیک ۲ بخش ششم
 
آموزش ترمودینامیک ۲ بخش اول
آموزش ترمودینامیک ۲ بخش اولآموزش ترمودینامیک ۲ بخش اول
آموزش ترمودینامیک ۲ بخش اول
 
آموزش ترمودینامیک ۲ بخش پنجم
آموزش ترمودینامیک ۲ بخش پنجمآموزش ترمودینامیک ۲ بخش پنجم
آموزش ترمودینامیک ۲ بخش پنجم
 

آموزش مکاترونیک کاربردی ۱ - بخش سوم