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

162
بردی کاراترونیک مک۱ faradars.org/fvmec105 مدرس: صفهانین انعمیا امیر مانیک مهندسی مک دکترای امیرکبیرشگاه صنعتی داناترونیک مکبردی کار۱ 1 ﻓﺮادرسFaraDars.org

Upload: faradars

Post on 08-Jan-2017

64 views

Category:

Education


4 download

TRANSCRIPT

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

:مدرس

امیر منعمیان اصفهانیدکترای مهندسی مکانیکدانشگاه صنعتی امیرکبیر

۱کاربردی مکاترونیک

1

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

PICمیکروکنترلر: فصل سوم

میکروکنترلرهابرایمقدمه•ساختممکنواحدتراشهيکدرراترانزيستورهزارصدهاکردنمجتمعامکانمجتمعمدارهایپيشرفت–شدندساختهغيرهوتايمر،خروجي-ورودیخطوطحافظه،مانندجنبيادواتکردناضافهباکامپيوترهااولين–بودجنبيادواتوپردازندهشاملکهشدمجتمعيمدارهایايجادموجبتراشهيکدرمدارحجمزيادافزايش–آمدجودوبهشد،شناختهميکروکنترلرعنوانبهبعدهاکهآنچهياکامپيوتر،ريزيکتراشهاولينترتيباينبه–

2

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

3

PICمیکروکنترلر: فصل سوم

میکروکنترلرهابرایمقدمه•تاريخچه–.کردبازارروانهراثانيههردرعمل6000سرعتبابيتي4ميکروپروسسوراوليناينتل،1969سال–

TexasوIntelشرکت‌هایبعد،مدتي– Instrumentsکردندتوليد8008نامبابيتي8ميکروپروسسور.

پروسسوراينهایقابليتازثانيههردرعمل300000سرعتودستورالعمل45داشتنحافظه،kb16دهيآدرس–.بود

استامروزیميکروپروسسورهایهمهمادر،ميکروپروسسوراين–

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

4

PICمیکروکنترلر: فصل سوم

میکروکنترلرهابرایمقدمه•ميکروپروسسورهامقابلدرميکروکنترلرها–آنهاستعملکرددرميکروپروسسورباميکروکنترلرتفاوت–شودضافهاآنبهبايدغيرهودادهگيرندهوفرستندهحافظه،ماننداجزاساير،ميکروپروسسوريکازاستفادهمنظوربه–ديگریيخارجوسيلههيچدليلهمينبه.اندشدهتعبيهيکديگرکناردرکارکردبرایالزماجزاهمهميکروکنترلردر–

نيستنيازآنعملکردبرای

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

5

PICمیکروکنترلر: فصل سوم

پايهمفاهیمبرخی•کلمهونيبلبايت،بيت،–

تقسيم بنديباينريارقامتعداد0Bit

0000Nibble

00000000Byte

0000000000000000Word

تقسيم بنديتعداد بايتKilobyteبيش از يک هزار210= 1024

Megabyteبيش از يک ميليون220= 5760481

Gigabyteبيش از يک ميليارد230= 8247410731

Terabyteبيش از يک ترليارد240= 7766275110991

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

6

PICمیکروکنترلر: فصل سوم

پايهمفاهیمبرخی•بندیبسته–گويندميکروکنترلربندیبستهميکروکنترلر،يکپايه‌هایتعدادوظاهریشکلبه–باشدمستطيلياومربعشکلبهتوانندميميکروکنترلرها–باشدمتنوعتواندميميکروکنترلرنوعبهبستهآنهایپايهتعداد–

PICميکروکنترلرOTPبندیبسته–

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

7

PICمیکروکنترلر: فصل سوم

پايهمفاهیمبرخی•بندیبسته–

فرادرسPICميکروکنترلرSMTبندیبسته–

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

8

PICمیکروکنترلر: فصل سوم

پايهمفاهیمبرخی•بندیبسته–

فرادرسPICميکروکنترلرCOBبندیبسته–

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

9

PICمیکروکنترلر: فصل سوم

پايهمفاهیمبرخی•Pullمقاومت– UpوPull Down

کامال2خروجيو1ورودیوضعيتاستبستهS1کليدهنگامي‌که–(استصفرخروجيو1ورودی)استپايدارومشخص

پيناينوضعيت(S1کليدقطع)1پينبهورودیاعمالعدمصورتدر–شودميخواندهشناوراصالحدر

دارند(high)فعالوضعيتسمتبهشناوریبهتمايلگيتهااکثر–آنهاعيتوضتواندميالکتريکينويزهرواستناپايداربسيارحالتاين–

دهدسوق(low)غيرفعالسمتبهرا

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

10

PICمیکروکنترلر: فصل سوم

پايهمفاهیمبرخی•Pullمقاومت– UpوPull Down

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

کوتاهاتصالباعثوشودميمتصلزمينبهVccولتاژکليد،اتصالبا–شودمي

حرارتايجادوزيادجريانکردنجاری–

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

11

PICمیکروکنترلر: فصل سوم

پايهمفاهیمبرخی•Pullمقاومت– UpوPull Down

شود،قراردادهزمينوVccبينمقاومتيفوقمداردرصورتي‌کهدر–ودشخواهدپايدارکليدبودنبستهوبازحالتدوهردرورودیوضعيتکردنخواهدعبورمدارازنيززيادیجريان

ولتاژوماندميصفرعمالًمقاومتسردوولتاژتغييرکليدقطعهنگامدر–شودميVccگيتورودی

،R1مقاومتتوسطگيتپايهکهمي‌شودگفتهاصطالحاًحالتايندر–pull upاستشده

داردسيستممجازجريانبهبستگيمقاومتميزانتعيين–مثال،–

KI

VR CC 10

)1050(

53

/

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

12

PICمیکروکنترلر: فصل سوم

پايهمفاهیمبرخی•Pullمقاومت– UpوPull Down

pullمقاومت– downنبيکهتفاوتاينبادهدميانجاممشابهيکارنيزشودمينصبورودیوزمين

pullمقاومتکاربرد– upدرسيستمورودیطراحنظرازکهاستهنگاميباشد1(سنسورهانشدنفعال)تحريکغيرحالت

pullمقاومتکاربرد– downدرسيستمورودیکهاستمواردیبرایباشدصفرنشدهتحريکحالت

pullبايدحتماًگيتهایپايهالکتريکيسيستمهرطراحيدر– upياpull downنيايدبوجودشناورسيگنالتاشوند

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

13

پايهمفاهیمبرخی•کاریسيکلساعت،ساز،نوسان–برروکنترلرهاميکفعاليت،کامپيوتریسيستمدوارتباطسهولتوفعاليتهاساختنمنظممنظوربهميکروکنترلرهادر–

گيردميانجاممي‌شودايجادسازنوسانيکتوسطکهمنظميضربان‌هایاساسباشدانيکسکامالًضرباندواينبينفاصلهتاشودمياستفادهساعتيکازسازنوسانهایضربانساختمنظمجهت–باشنديکسانساعتدارایبايدکنندبرقرارارتباطيکديگربابتوانندديجيتالوسيلهدوآنکهبرای–

کندميايجادمنظمهایضربانکهاستکوارتزکريستاليکمعموالًساعت–کاملطوربتادارداحتياجخاصيضربانتعدادبهشود،مينوشتهميکروکنترلربرنامهدراپراتورتوسطکهدستوریهر–

شوداجرا

.گويندميکاریسيکليکشود،اجراتادارداحتياجدستورکوتاهترينکهضربانيتعدادبه–

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

14

PICمیکروکنترلر: فصل سوم

میکروکنترلرمختلفهایقسمت•حافظهواحد–

استدادهیذخيرهآنوظيفه‌یکهاستميکروکنترلرازقسمتيحافظه–خانهآندرراایدادهياونموددريافتراحافظهخانهآنمحتوایمي‌توانواحدبهآدرسدادنباحافظهواحدهایدر–

فرادرسدادقرارحافظه

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

15

PICمیکروکنترلر: فصل سوم

میکروکنترلرمختلفهایقسمت•حافظهواحد–

RAMحافظه–

شودمياستفادهاجراحالدرهایبرنامهموقتذخيرهبرای–شودميپاکحافظهنوعاينهایداده،(برققطع)گرددميخاموشميکروکنترلرياکامپيوترکههنگامي–مي‌شودبيانبيتازمضاربيبصورتمعموالحافظههایتراشهظرفيت–استمگابيت16معنيبهشدصحبت16Mحافظهتراشهازفنيهاینوشتهدراگر–

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

16

PICمیکروکنترلر: فصل سوم

میکروکنترلرمختلفهایقسمت•حافظهواحد–

ROMحافظه–

بهآندراطالعاتبازنويسيوکردنپاکورود،نميبينازبرققطعباآناطالعاتکهداردوجودحافظهديگرینوع–نيستRAMحافظهآساني

شودنميپاکديگرآنازپسواستنوشتنقابلباريکمعموالROMًاطالعات–:ازعبارتندROMحافظه‌هایانواع–

.1ROM

.2PROM

.3EPROM

.4EEPROM

.5Flash Memory

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

17

PICمیکروکنترلر: فصل سوم

میکروکنترلرمختلفهایقسمت•حافظهواحد–

ROMحافظه–

هاستستونوسطرازایشبکهشاملRAMمانندROMحافظهتراشه–.داردقرارخازنيکمحلايندرکهنمايندميقطعرايکديگرنقطهيکدروستونسطرهر–استخانهآندردادهوجودعدمياوجودمعيارخازنبودندشارژوشارژ–

وجههيچبهآيندهدراطالعاتاينتغييرواستساختزماندردادهوذخيرهنويسيبرنامهمستلزم،ROMتراشه–نيستپذيرامکان

تماميشاملکوچک،الکترونيکيهایدستگاهدرواستاعتمادقابلدارد،کميبرقمصرفحافظهنوعاين–.بودخواهدنظرمورددستگاهکنترلبمنظورالزمهایدستورالعمل

استمتداول...وآوازموسيقي،نواختنبرایاسباب‌بازی‌هاازبرخيدرهاتراشهنوعاينازاستفاده–

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

18

PICمیکروکنترلر: فصل سوم

میکروکنترلرمختلفهایقسمت•حافظهواحد–

PROMحافظه–

استباالئيهزينهووقتصرفمستلزمROMهایتراشهتوليد–

دگردنريزیبرنامهشخصهرتوسطتواندميوشدهعرضهمناسبقيمتباخاليمحتوياتباهاتراشهازنوعاين–هستندريزیبرنامهقابلباريکصرفاPROMًحافظه‌های–نهاييبرنامه‌ريزیازقبل،ROMيکبرایدادهسازینمونهبرایواستمناسبقيمتدارایPROMحافظه–

.دارندمطلوبيکارآيي

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

19

PICمیکروکنترلر: فصل سوم

میکروکنترلرمختلفهایقسمت•حافظهواحد–

EPROMحافظه–

.کردنويسيبازمرتبهچندينتوانميراEPROMهایتراشه–

سفرکانيککردنساطعباعثکهاستخاصيدستگاهازاستفادهمستلزمEPROMتراشهيکمحتوياتنمودنپاک–گرددميبنفشماوراءخاص

گرددپاکآنمحتوياتابتدابايدميEPROMيکبازنويسيبمنظور–

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

20

PICمیکروکنترلر: فصل سوم

میکروکنترلرمختلفهایقسمت•حافظهواحد–

FlashوEEPROMهایحافظه– Memory

:داردوجودزيرتسهيالتEEPROMحافظه‌هایدر–.نيستنصبمحلازتراشهنمودنجدابهنيازبازنويسيبرای1..بودنخواهدمحتوياتتمامکردنپاکبهنيازحافظهازبخشيتغييربرای2..نيستخاصدستگاهيکازاستفادهمستلزمتغييراتاعمال3.

ونداردجودوالزمسرعتکنند،تغييرسرعتبهبايداطالعاتکهمواردیدرواستکندتغييرفرآيندحافظه،نوعايندر–مي‌باشندخاصهایچالشدارای

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

21

PICمیکروکنترلر: فصل سوم

میکروکنترلرمختلفهایقسمت•حافظهواحد–

FlashوEEPROMهایحافظه– Memory

Flashارائهباتوليدکنندگان– Memoryنمودندحلراشدهاشارهمحدوديت

.کردحذفرامي‌شوند،ناميده"بالک"کهراتراشهازخاصيهایبخشياوتماممي‌توانحالتايندر–استسريعترEEPROMهایحافظهبهنسبتحافظهنوعاين–استحافظهنوعاينازحقيقتدرمي‌نويسدميکروکنترلردرآنرویراخودبرنامهکاربرکهحافظه‌ای–

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

22

PICمیکروکنترلر: فصل سوم

میکروکنترلرمختلفهایقسمت•مرکزیپردازشواحد–استکامپيوتراصليمغزحقيقتدروداردعهدههبراهابرنامهاجرایوهادادهپردازشکارمرکزیپردازشواحد–داردراديگرمکانبهحافظهمکانيکازمحتوياتانتقالوتفريق،تقسيمضرب،قابليتواحداين–

مي‌کندمشخصراگيردانجامبايدCPUبوسيلهکهدستوراتيمي‌شود،نوشتهکاربرتوسطکهبرنامه‌ای––CPUاستشدهتشکيلاصليقسمتچهاراز:(Register)رجيسترياثبات1.

.2ALU

.3Program Counter

.4Instruction Decoder

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

23

PICمیکروکنترلر: فصل سوم

میکروکنترلرمختلفهایقسمت•مرکزیپردازشواحد–

مي‌سازدذخيره(ثبات‌ها)رجيسترهادرراموقتاطالعاتCPU:ثبات‌ها–شوددهخوانحافظهازاستقرارکهباشدداده‌ایآدرسياوشوندپردازشبايدکهباشندمقاديریمي‌تواننداطالعاتاين–

باشندبيتي64ياو،8،16،32توانندميرجيسترها،CPUنوعبهبسته––ALU:تقسيم،ضرب،تفريق،جمع،مانندمنطقيورياضياعمالانجاموظيفهقسمتاينAND،ORوNOTرا

داردبه‌عهده

–Program Counter(PC)توسطکهدستوریاولينشمارهبرنامه،اجرایابتدایدرCPUتعيينراشوداجرابايدمي‌کند

راشوداجرابايدCPUتوسطکهبعدیدستورشمارهتامي‌يابدافزايششمارهيکPCدستور،هراجرایهنگامدر–کندمشخص

–Instruction Decoder:بهکهرادستوراتيواحداينCPU(ماشينزبان)هستندباينریاعدادبصورتومي‌شودمنتقل.مي‌کندراهنماييدستوراتدرستاجرایجهتدرراCPUومي‌کندتفسيررا

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

24

PICمیکروکنترلر: فصل سوم

میکروکنترلرمختلفهایقسمت•خروجيوورودی‌هایدرگاه–

دستگاه‌هایازسيگنالانتقالکاربالعکسو(DCموتوريکنظير)خارجيدستگاه‌هایبهميکروکنترلرازسيگنالانتقال–سنسوربهخارجي

.شودگرفتهآنازياوارسالآنبهدادهسپسوشودمشخصهدفپورتابتدابايدپورت‌هاباکارهنگام–کنندعملخروجيياوورودیعنوانبهتوانندميپورت‌هاميکروکنترلر،داخليتنظيماتبهبسته–.نمايندمنتقلنيزراآنالوگسيگنال‌هایمي‌توانندپورت‌هاميکروکنترلرهاازبعضيدر–

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

25

PICمیکروکنترلر: فصل سوم

میکروکنترلرمختلفهایقسمت•Busباس–

مي‌شودناميدهباسکهمي‌شودانجامسيم‌هاييمجموعهطريقازI/OپورتهایوحافظهباCPUارتباط–دارندبعهدهرامختلفقسمت‌هایدر(ديجيتالسيگنالهایبصورت)دادهانتقالوظيفهباس‌ها–:داردوجودباسنوعسهميکروکنترلر/کامپيوتردر–دادهباس1.آدرسباس2.کنترلباس3.

يابآدرسمداربهآدرسباسطريقازباينریبصورتراآنآدرسCPUواحدها،اينازهريکباارتباطبرقراریجهت–(Decoding Circuit)کندپيدارانيازموردقسمتتامي‌کندارسال

مي‌کنددريافتآنازياوارسالنظرموردقسمتبهرااطالعاتداده،باسطريقازسپس–شودگرفتهآنازياوشودارسالنظرموردقسمتبهبايددادهکهمي‌کندتعيينکنترلباس–

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

26

میکروکنترلرمختلفهایقسمت•Busباس–

وسيله)کليدصفحهمانندقسمت‌هاازبعضيبرایولي.(اطالعاتگرفتنوارسالجهت)استطرفهدومعموالًدادهباس–.باشديک‌طرفهتواندمي(خروجيوسيله)مانيتورو(ورودی

استيک‌طرفهآدرسباسدارد،راآدرسباسرویراآدرسدادنقرارامکانCPUتنهاآنکهدليلبه–

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

27

PICمیکروکنترلر: فصل سوم

میکروکنترلرمختلفهایقسمت•سريالارتباط–شودبدلوردکيلومتریچندينفواصلدردادهباشدقرارکهاستزمانيدادهانتقالدراساسيمشکالت–عنوانبهنيزييکودريافتبرایيکيفرستادن،برایخطوطازيکيترتيببدينشود،کارخطسهباکهشودفرضاگر–

مي‌شودگرفتهنظردرگيرندهوفرستندهطرفينبرایمرجعخط.دارندنامپروتکلقوانيناين.گرفتنظردردادهتبادلبرایراقوانينياستالزمکاراينبرای–باشدميآشکارومشخصدادهکنندهتبادلطرفدوبرایکهاستشدهتعيينپيشازقانونيپروتکل،–

مثال،–شود،ميشروعدادهفرستادنکهزمانيوباشدوصلمنطقي1بهدادهارسالخطندارد،وجوددادهانتفالکهزمانيتا–

شودمنطقيصفرTزمانمدتبرایTزمانمدتبهبيتهرودادهقرارارسالخطرویبيتترينارزشپرتابيتترينارزشکمازراها1و0فرستنده–

مي‌ماندخطرویمي‌شودبرگرداندهاولدادهانتقالپايانتعيينمنظوربهمنطقييکبهخطهشتم،بيتازبعدياانتهادر–

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

28

PICمیکروکنترلر: فصل سوم

میکروکنترلرمختلفهایقسمت•سريالارتباط–نموددريافتوارسالرادادهواحدزماندرمي‌توانلذاداردوجودجداگانهخطوط،دريافتوارسالبرایکهآنجايياز–مي‌نامندسريالارتباطبلوکمي‌آوردفراهمراارتباطيچنينکهطرفهدوحالتبابلوکاين– فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

29

PICمیکروکنترلر: فصل سوم

میکروکنترلرمختلفهایقسمت•تايمر–دارداهميتبسيارلحاظاينازوبدهد...وپروتکلومعينزمانمدتزمان،درباره‌یاطالعاتيتواندميتايمر–اویمسزمانيفواصلدرآنعددیمقدارکهاسترجيستریواقعدرکهاستمسقلشمارندهيکتايمراصليقسمت–

مي‌شودزيادواحديک

دستبهزماندوايناختالفاساسبرراشدهسپریزمانمي‌توان،t2وt1هایزماندررجيستراينمقاديردانستنبا–آورد

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

30

PICمیکروکنترلر: فصل سوم

میکروکنترلرمختلفهایقسمت•Watchdogتايمر–

استکارزماندرميکروکنترلرعيببيعملکردداردتوجهبهنيازکهمواردیازيکي–مي‌کندريستراميکروکنترلرشمارندهمقدارشدنريزسرباکهاستمستقلشمارندهيکينيزواحداين–شدخواهدحلباشددادهرخمشکلياگروگرفتخواهدسرازرابرنامهاجرایميکروکنترلرشدن،ريستبا–صفريمرتااينکهاستنيازشود،اجرادرستيبهبرنامهکهزمانيترتيباينبه.استشمارشحالدردائماً‌تايمراين–

.کندشروعابتداازراشمارشوشده

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

31

PICمیکروکنترلر: فصل سوم

میکروکنترلرمختلفهایقسمت•ديجيتالبهآنالوگمبدل– فرادرساستعدديکآنخروجيوولتاژADCورودی–

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

32

PICمیکروکنترلر: فصل سوم

میکروکنترلرمختلفهایقسمت•قسمت‌هاتمامارتباط–

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

33

PICمیکروکنترلر: فصل سوم

اجراحالدربرنامهيکازمثالی•استآدرسباسبيت16ودادهباسبيت8،...وA،BرجيسترهایدارایمجازیCPUيکمثالعنوانبه–دارددسترسيFFFFHتا0000Hآدرسازحافظهخانه‌هایبهCPUبنابراين––CPU21عددبايدHرجيسترداخلراA42مقاديرسپسودهدقرارH12وHکنداضافهرجيستراينبهراAرجيستربهمقداريککردناضافهکد04HوAرجيستربهمقداريکانتقالکدB0Hکدشده،نوشتهبرنامهدراگر–

شودشروع1400Hحافظهخانهازدهدانجامراعددسهاينجمععملبايدکهبرنامه‌ایوباشد

شماره خانه حافظه محتواي حافظه توضيح1400140114021403140414051406

B0H21H04H42H04H12HF4H

;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

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

34

PICمیکروکنترلر: فصل سوم

اجراحالدربرنامهيکازمثالی•:استزيربصورتمي‌گيردانجامفوقبرنامهاجرایبرایCPUبوسيلهکهمراحلي––Program Counter(ياPC)درCPU0000بينمقاديرتواندميHتاFFFFHمقدار.کنداختيارراProgram

Counter1400بايدHبهشوداجرابايدکهبرنامهکداولينآدرستاشودCPUترتيباينبه.گرددمعرفيCPUآماده.مي‌شوداجرا

–CPU1400عددHسيگنالباهمراهآدرسباسرویراREADمي‌کندارسال

شماره خانه حافظه محتواي حافظه توضيح1400140114021403140414051406

B0H21H04H42H04H12HF4H

;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

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

35

PICمیکروکنترلر: فصل سوم

اجراحالدربرنامهيکازمثالی•–CPUبوسيلهInstruction DecoderدستورB0خانهدرواقععددخواندندستوراينمفهوم.مي‌کندکدگشاييرا

استAرجيستردرآنگذاشتنو(1401H)حافظهبعدی.مي‌گيردقرارPCدر(1402H)بعدیفرمانآدرسفرمان،اينتکميلبا–مي‌شودگرفته04Hکد1402Hحافظهخانهاز–بهAرجيستردرونمقدارباهمراه(42Hعددمنظور)را(1403H)بعدیآدرسمحتوياتCPUکدگشاييازپس–

ALUدهدانجامراجمععملتامي‌کندارسال

شماره خانه حافظه محتواي حافظه توضيح1400140114021403140414051406

B0H21H04H42H04H12HF4H

;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

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

36

PICمیکروکنترلر: فصل سوم

اجراحالدربرنامهيکازمثالی•مي‌کنداختياررا1404HمقدارPCبينايندر.مي‌شوددادهقرارAرجيستردرونCPUتوسطALUخروجيسپس–مي‌شوداجراوگشاييکدآورده،CPUبهآنکدومي‌گيردقرارآدرسباسروی1404Hآدرس–.مي‌شود1406Hبرنامهشمارندهومي‌کنداضافهAرجيستربهرامقداريکمجدداًکداين–

کندجلوگيریPCافزايشازکهمي‌گويدCPUبهHALTدستور.مي‌شوداجراوگرفته1406آدرسمحتوایآخردر–

شماره خانه حافظه محتواي حافظه توضيح1400140114021403140414051406

B0H21H04H42H04H12HF4H

;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

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

37

PICمیکروکنترلر: فصل سوم

PICهایمیکروکنترلر•

PICانواع–

:مي‌شودبندیدستهزيرصورتبهPICخانوادهمهمسریپنج–PICسری1. .مي‌روندکاربه......وسريالارتباطياوترسادهکارهایبرایکههستندپايه6باتراشه‌های:10هستندخوبينسبيقدرتدارایکههستندپايه8باتراشه‌های:PIC12سری2.

دارندپايه40تا18بيندارندوجودسریايندرکههایتراشه:PIC16سری3.

بهنسبتباالتریقابليتدارایقدرتنظرازوهستندبيشتروپايه18دارایسریاينتراشه‌هايي:PIC18سری4.PIC16مي‌باشند

نظرازوهستندپايه40دارایحداقلميکروهانوعاين.مي‌باشدPICخانوادههایتراشهقوی‌ترين:PIC24سری5.دارندبي‌نظيریقدرتداخليامکانات

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

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نداردEPROM51218DIP--بايت

12C6711041284EPROM102418DIP--بايت

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

39

PICمیکروکنترلر: فصل سوم

PICهایمیکروکنترلر•

PICانواع–

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

40

PICمیکروکنترلر: فصل سوم

PICهایمیکروکنترلر•

PICميکروکنترلردرحافظهساختار–

:باشندميداخليحافظهنوعسهدارایهاPICاغلب–

دادهحافظه1.

برنامهحافظه2.

.3Eprom Memory

دادهحافظه–

بخش‌هایبهاستميکروکنترلرRAMحافظههمانکهحافظهاين–مي‌شودتقسيمبانکنامبهمختلفي

عمومياستفاده‌هایبرایمعموليداده‌هایحافظهشاملبانکهر–مي‌باشدمخصوصريجيسترهایوکاربر

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

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

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

42

PICمیکروکنترلر: فصل سوم

PICهایمیکروکنترلر•

PICميکروکنترلردرحافظهساختار–

EPROMحافظه–

مي‌شودپاکبرققطعبا(RAM)دادهحافظهدرشدهذخيرهداده‌های–زمانهرردنيزدادهتغييرامکانطرفيازوشودحفظنيزبرققطعبارمزاستالزمکهرمزدارقفلمانندکاربردهاييدر–

استپايدارحافظه‌ایبهنيازباشد،داشتهوجودکنندهاستفادهتوسط

مي‌رودکاربهبرنامهاجرایحيندرهادادهذخيرهبرایواستشدهتعبيهمنظوراينبرایEPROMحافظهPICدر–

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

43

PICمیکروکنترلر: فصل سوم

PIC16F84کنترلرمیکروعملکردنحوهومشخصات•

.استPICخانوادهدرتراشهگيرترينفراحالعيندروساده‌ترينتراشهاين–FlashنوعازبرنامهحافظهK1دارایوداردبيتي8دادهحافظه– programخواندنبار1000قابليتوبيت14عرضبا

مي‌باشدنوشتنوداردديجيتالخروجيوورودیپايه13وشمارنده/تايمريکخارجي،وقفهيکميکروکنترلراين–ميکروکنترلرپذيریانعطافوآسانادارهپايين،مصرفبهمراهپايينقيمت–

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

44

PICمیکروکنترلر: فصل سوم

PIC16F84کنترلرمیکروعملکردنحوهومشخصات•

PIC16F84ميکروکنترلرهایپايهتشريح–

طرفهدوپايه‌های:(RA0-RA3)18و1،2،17شمارههایپايه–.هستندA(پورت)درگاه(خروجي/ورودی)

همچنينوAدرگاهپنجمطرفهدوپايه:(RA4/T0CLK)3پايه–.است(TMR0)صفرشمارنده/تايمربرایکالکورودی

نظيرپايههمچنينوBپورتاولطرفهدوپايه(RB0/INT)6پايه–.استخارجيوقفه

هشتمتادومطرفهدوهایپايه:(RB1-RB7)13الي7هایپايه–Bپورت

اسيالتورکريستالبرایورودیپايه:(OSC1/CLKIN)16پايه–.استخارجيکالکمنبعوخارجيکريستالي

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

45

PICمیکروکنترلر: فصل سوم

PIC16F84کنترلرمیکروعملکردنحوهومشخصات•

PIC16F84ميکروکنترلرهایپايهتشريح–

کريستالياسيالتوربرایخروجيپايه:(OSC2/CLKOUT)15پايه–.استخارجيکالکخروجي

.شودميوصلصفرپتانسيلبهوميدهدتشکيلرازمين:(Vss)5پايه–وصل+5/5تا+V2پتانسيلبهواستمثبتتغذيه:(VDD)14پايه–

.شدخواهد

رالرميکروکنتر(پايينفعال)شودوصلزمينبهاگر:(MCLR)4پايه–.مي‌کندريست

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

46

PICمیکروکنترلر: فصل سوم

PIC16F84کنترلرمیکروعملکردنحوهومشخصات•

(Clock)سازهانوسان–

کارمختلفسازنوساننوعچهارباهستندقادرPICميکروکنترلرهای–کنند

داخلينوسان‌سازازاستفاده1.

خازنومقاومتنوسان‌سازازاستفاده2.

کننده‌هاتشديدوسراميکينوسان‌سازهایازاستفاده3.

خارجينوسان‌سازهایازاستفاده4.

برایخازنومقاومتداخليمداريکازميکروکنترلراول،نوعدر–مي‌کنداستفادهنوسانايجاد

استفادهنوسان‌سازعنوانبهخازنومقاومتمداريکازدوم،نوعدر–مي‌شود

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

47

PICمیکروکنترلر: فصل سوم

PIC16F84کنترلرمیکروعملکردنحوهومشخصات•

(Clock)سازهانوسان–

مي‌شوداستفادهخارجيصورتبهمختلفکريستال‌‌هایازبعدی،حالتدودر–مي‌شوندتقسيمزيردسته3بهکريستال‌ها–

.1LPکيلوهرتز200تا32محدودهباپايينتوانکريستال

.2XTمگاهرتز4تاکيلوهرتز200محدودهباکنندهتشديد/کريستال

.3HSمگاهرتز20تا4محدودهباکنندهتشديد/باالسرعتکريستال

مي‌شودتعيينسازنوسانحالت،ميکروکنترلربرنامه‌ريزیهنگامدر–PIC 16F84

OSC1

XTAL

L

C1

C2 OSC2

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

48

PICمیکروکنترلر: فصل سوم

PIC16F84کنترلرمیکروعملکردنحوهومشخصات•

PIC16F84ميکروکنترلرکردنريست–

مي‌رودبکار(برنامهشروع)معلوموضعيتيکدرميکروکنترلردادنقراربرایريستعمل–

مي‌ماندباقيتغييربدونRAMحافظهشدن،ريستهنگام–:مي‌شودريستميکروکنترلروضعيتپنجدر–

تغذيهشدنوصلبهنگامريست1.

4شمارهپايهکردنصفرباميکروعادیکاربهنگامريست2.

خوابمدازبرگشتبهنگامريست3.

watchdogتايمرشدنسرريزبهنگامريست4.

مجازحدازبيشتغذيهولتاژافتبهنگامريست5.

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

49

PICمیکروکنترلر: فصل سوم

PIC16F84کنترلرمیکروعملکردنحوهومشخصات•

PIC16F84ميکروکنترلرکردنريست–

متصلمثبتتغذيهبهpull–upمقاومتيکطريقازپايهاينريست،پايهتصادفيشدنصفرازجلوگيریمنظوربه– فرادرسمي‌شود

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

50

PICمیکروکنترلر: فصل سوم

PIC16F84کنترلرمیکروعملکردنحوهومشخصات•

PICبرنامهحافظه– 16F84

ازایبه)بيت14پهنایبافلشنوعاز،16F84برنامهحافظه–مي‌باشدکلمهکيلو1ظرفيتو(حافظهخانههر

ازحافظهدرشدهذخيرهاطالعاتاستقطعتغذيهکهزماني–نمي‌رودبين

مي‌کنداشارهآدرساينبهريستبردار:0000hآدرس–مي‌کنداشارهآدرساينبهوقفهبردار:0004hآدرس–مشخصراPICپيکربندیواقعدرادرساين:2007hآدرس–

کلمهطتوسميکروکنترلرعملکردبرایاوليهتنظيمات.مي‌کندمي‌شودانجامآدرسايندرشدهذخيرهپيکربندی

03ffhتا0000hازآدرسهایهمانکاربر،برایمعتبرآدرس–

باشدمي

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

51

PICمیکروکنترلر: فصل سوم

PIC16F84کنترلرمیکروعملکردنحوهومشخصات•

Dataودادهحافظه– RAM

00hآدرس)بايت80ظرفيتباهريکبانکدوازحافظهاين–

مي‌باشد(1بانکبرایCFhتا80hو0بانکبرای4Fhتامي‌شوندناميده00h-0Bh))،SFRبانکهرازاولبايت12–مثلمشخصSFRثباتيکباکاربرایکهکرددقتبايد–

TRISAياوشودفعال1بانکبايددارد،قرار1بانکدرکهبايدداردقرارصفربانکدرکهINTCONثباتباارتباطبرایشودفعالصفربانک

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

52

PICمیکروکنترلر: فصل سوم

PIC16F84کنترلرمیکروعملکردنحوهومشخصات•

PIC16F84درتايمر–

عملوشوديزسرراينکهتامي‌يابدافزايشپيوستهبطورآنمقدارکهاست(شمارنده)ثباتيتايمر،يکفيزيکيبطور–شودتکرارابتداازشمارش

.بشمارد255شمارهتامي‌تواندلذاواستبيتي8تايمريکدارای16F84ميکروکنترلر–مقسميشپکهداردوجودميکروکنترلرداخلدرديگریقسمت،(بيشترشمارش)ترطوالنيزمان‌هایبهدستيابيبرای–

داردنام

کنداختياررا1:256تا،1:2،1:4هاینسبتتواندميمقسمپيش–واحديکتايمرمقسم،پيشبهورودیکالک128ازایبهباشد،شدهتنظيم1:128رویمقسمپيشاگرمثالبه‌عنوان–

يافتخواهدافزايش

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

53

PICمیکروکنترلر: فصل سوم

خاصکاربردهایثباتياSFRثبات های•شده‌اندگرفتهنظردرميکروکنترلرازمعينيقسمتهایبرایيکهرودارندخاصيعملکردثبا‌ت‌هااين–

Statusثبات–

.داردقرارRAMحافظهاز83hو03hآدرسهایدروباشدميبيت8دارایثباتاين–

–R:مخففReadable bitاستخواندنقابلنظرموردبيتکهاستآندهندهنشانواست–W:مخففWritable bitاستنوشتنقابلنظرموردبيتکهدهدمينشانواست–n:داشتخواهد(1يا0)مقداریچهميکروکنترلرشدنروشنهنگامدرنظرموردبيتکهدهدمينشان.

–x:استنامعلومبيتمقدارکهاستآنمعنيبه

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

54

PICمیکروکنترلر: فصل سوم

خاصکاربردهایثباتياSFRثبات های•Statusثبات–

C(Carry،صفربيت– flag،𝑏𝑜𝑟𝑟𝑜𝑤)

Carry)نقليرقمتفريقوجمععملحيندراگر– bit)قرضيرقمو(borrow bit)بهصفرازبيتاينمقدارشودايجادمي‌شودتبديليک

شودبيت9حاصلبيتي،8عدددوجمعدرکهمي‌شودايحادزمانينقليرقم–

1→رقم نقلی

0110011110001011+111011011

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

55

PICمیکروکنترلر: فصل سوم

خاصکاربردهایثباتياSFRثبات های•Statusثبات–

C(Carry،صفربيت– flag،𝑏𝑜𝑟𝑟𝑜𝑤)

مرتبهاببيتازيکعددکردنقرضبهنيازوشدهمنفيتفريق،عملياتنتيجهکهمي‌شودايجادزمانيقرضي،رقم–استباالتر

10←رقم قرضی

10101101

10010101-

00100000

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

56

PICمیکروکنترلر: فصل سوم

خاصکاربردهایثباتياSFRثبات های•Statusثبات–

DC(Digitalيک،بيت– Carry flag،𝑏𝑜𝑟𝑟𝑜𝑤):اينمقدار(باشدداشتهوجودنقليرقم5بيتبه4بيتاز)شودظاهرميانينقليرقمتفريقوجمععملطولدراگر–

شودميتبديليکبهصفرازبيت

1→رقم نقلی

0101010111010000+10101101

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

57

PICمیکروکنترلر: فصل سوم

خاصکاربردهایثباتياSFRثبات های•Statusثبات–

Z(zeroدو،بيت– flag):بيتنايمقدارشود،صفرمنطقييامحاسباتيعمليکنتيجهاگر.استصفرپرچمبيت،اينمي‌شوديک

شدخواهدصفربرابربيتاينمقدارباشد،غلطنتيجهشرطيدستوراتدراگرهمچنين–

-𝑃𝐷(Powerسه،بيت– Down bit):يکبرابربيتاينمقدارمي‌شودوصلتغذيهمنبعبهميکروکنترلرهنگامي‌کهشدخواهد

𝑇𝑂(Timer-Outچهار،بيت– bit):تايمرسرريزاعالنبيتاينwatchdogتايمرسرريزباواستwatchdogآنمقدار.مي‌شودصفر

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

58

PICمیکروکنترلر: فصل سوم

خاصکاربردهایثباتياSFRثبات های•Statusثبات–

RP1,RP0(Registerشش،وپنجبيت‌های– Bank Select bits):بايدهميشهونمي‌گيردقراراستفادهمورد16F84درششمبيت.کردسوئيچيکوصفربانکدوبينمي‌توان5بيتبا–

.باشدصفر

IRP(Registerهفت،بيت– Bank Select bit):منزلهبهصفرمقدارو3و2بانکهایانتخابمعنيبهآندر1مقدار.است3و2بانک‌هایانتخاببيتاينوظيفه–

.است1و0بانک‌هایانتخاب

.باشدصفربايدهميشهوگيردنميقراراستفادهمورد16F84دربيتاين–

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

59

PICمیکروکنترلر: فصل سوم

خاصکاربردهایثباتياSFRثبات های•OPTION_REGثبات–

مي‌باشدنوشتنوخواندنقابلثباتيکدارد،قرارRAMحافظهاز81hآدرسدرکهثباتاين–وقفهرلکنتنگهبان،تايمرصفر،تايمربهدهندهمقياسپيشواحدتخصيصبرایمختلفکنترليبيت‌هایشامل–

pull)هایمقاومتوصفرتايمرکنترلخارجي، up)پورتBاستPS0-PS2(Prescalerدو،ويکصفر،بيت‌های– Rate Select bits):

.مي‌باشندمقسمپيشمقدارتعيينبرایبيتسهاين–WDTTMR0BITS

1:11:21:41:81:101:321:641:128

1:21:41:81:101:321:641:1281:256

000001010011100101110111

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

60

PICمیکروکنترلر: فصل سوم

خاصکاربردهایثباتياSFRثبات های•OPTION_REGثبات–

)PSAسه،بيت– Pre Scaler Assignmet bit)

مي‌رودبکارWDTياTMR0بهمقسمپيشاختصاصبرایبيتاين–TMR0بهمقسمپيشباشد،صفرآنمقداراگرومي‌شوددادهاختصاصWDTبهمقسمپيشباشد،يکآنمقداراگر–

.مي‌شوددادهاختصاص

T0SE:TMR0(Source،4بيت– Edge Select bit)تحتکهاستلبه‌ایتعيينبرایبيتاينباشد،3شمارهپايهطريقازکالکورودیبوسيلهTMR0مقدارافزايشاگر–

يافتخواهدافزايشTMR0آنبرایبيتناي.استکالکباالروندهلبهدرافزايشمعنيبهصفرمقداروروندهپايينلبهدرافزايشمعنيبهيکمقدار–

.مي‌شوداستفادهخارجيکالک

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

61

PICمیکروکنترلر: فصل سوم

خاصکاربردهایثباتياSFRثبات های•OPTION_REGثبات–

T0CS:TMR0(Clock،5بيت– Source Select bit)

داردورودیکالکيکبهنياززمانگيریاندازهبرای(TMR0)صفرتايمر–ودبخواهدميکروکنترلرکالکچهارميکتايمرکالکحالتايندر،ميکروکنترلرخودداخليکالکازاستفاده–ودبخواهداسيالتورکالکچهارميکتايمرکالکمقدارکند،کارخارجياسيالتورباميکروکنترلرصورتيکهدر–

يعنيجديدمقداررویبرPrescalerبرایشدهتنظيممقدارکهاستاينشوداشارهآنبهاستالزمکهنکته‌ای–fosc/4مي‌کندعمل

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

62

PICمیکروکنترلر: فصل سوم

خاصکاربردهایثباتياSFRثبات های•OPTION_REGثبات–

INTEDG(Interrupt،6بيت– Edge Select bit )

گرددمياجراوقفه(RBO\INT)6شمارهپايهبهورودیاعمالباباشد،فعالبرنامهدروقفهصورتيکهدر–مي‌گردداجراورودیروندهبااللبهدروقفهباشد،يکشش،بيتمقداراگر–

:،7بيت– PORTB 𝑅𝐵𝑃𝑈(Pull-up Enable bit)pullمقاومتهایفعالسازیبرایبيتاين– – upپورتداخليBرودميبکار

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

63

PICمیکروکنترلر: فصل سوم

خاصکاربردهایثباتياSFRثبات های•TRISAوTRISBثبات‌های–

استBوAپورت‌هایدر(خروجي-ورودی)دادهجهتتعيينرجيستردواينکار–

بهTRISBازهفتتاصفربيت‌هایوAپورتازRA4تاRA0هایپايهنظيرترتيببهTRISAچهارتاصفربيتهای–استBپورتازRB7تاRB0هایپايهنظيرترتيب

رانظيرپايهصفرمقدار.شوديک،TRISثباتدرپايهآنمتناظربيتاستکافيورودیبه‌عنوانپايهيکتعريفبرای–.مي‌کندتعريفخروجيبصورت

تا6هایپايه)Bپورتهایپايهتمامشود،دادهقرارTRISBثباتدر(0000000باينر)00hمقداراگرمثالبه‌عنوان–مي‌شوندتعريفخروجيبصورت(ميکروکنترلر13

وورودیبصورتميکروکنترلر9تا6هایپايهشود،دادهقرارTRISBثباتدر(00001111باينری)0Fhمقداراگر–شدخواهندتعريفخروجيبصورتميکروکنترلر13تا10پايه‌های

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

64

PICمیکروکنترلر: فصل سوم

خاصکاربردهایثباتياSFRثبات های•INTCONثبات–

قرارRAMحافظه‌یاز8BHو0BHآدرسدروداردناموقفهکنترل،ثباتداردراوقفهکنترلوظيفه‌یکهثباتي–دارد

استوقفهآمدنوجودبههنگامدرآننکردناجراياوقفهزيروالاجرایکنترلثباتاينوظيفه‌ی–

Flag)صفربيت– bit RBIF:RB Port Change Interrupt).(وقفهتشخيصبيت)استBپورتدرتغييرپرچمبيت،بيتاين–مي‌دهداطالعراBپورتاز7و4،5،6هایپايهدرتغييربيتاين–:بودخواهدزيرمقاديردارایهاپايهاينتغييراساسبربيتاين–.استکردهتغيير(7و4،5،6)هاپايهازيکيقبليوضعيتحداقل،:11..استنيافتادهاتفاق(7و4،5،6)ازپايه‌هايکهيچقبليوضعيتدرتغييریهيچ:20.

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

65

PICمیکروکنترلر: فصل سوم

خاصکاربردهایثباتياSFRثبات های•INTCONثبات–

1RB0/INTبيت– Interrupt Flag bit:INTF

،(INTE،4شمارهبيتشدنفعال)باشدشدهتعريفخارجيوقفهبعنوان(RBO/INT)6شمارهپايهصورتي‌کهدر–استآنرویوقفهوقوعتشخيصبيتاينوظيفه

TMR0)2بيت– Over flow Interrupt Flag bit:TOIF)شدخواهديکبيتاينTMPOتايمرشدنريزسرصورتدر.مي‌دهدخبرTMROرجيسترشدنريزسراز،بيتاين–RB)3بيت– Port Change Interrupt Enable bit:RBIE)مي‌باشدBپورتاز7و4،5،6هایپايهدرتغييرصورتدروقفه،فعال‌سازیبيت،بيتاين–

مي‌شودتعيينپايه‌هااينطريقازوقفهشدنفعالاجازهبيتاينباواقعدر–

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

66

PICمیکروکنترلر: فصل سوم

خاصکاربردهایثباتياSFRثبات های•INTCONثبات–

:4INTEبيت– RB0/INT Interrupt Enable bit

مي‌باشدخارجيوقفهفعالسازیبيت،بيتاين–

Enable)5بيت– bit TOIE:TMR0 Over flow Interrupt)فعالاجازهTMROريزسرباشد،1بيتايناگر.استTMROشدنريزسرصورتدروقفهفعالسازیبيت،بيتاين–

.داشتخواهدراوقفهنمودن

EEIE:EE)6بيت– WriteComplete Interrupt Enable bit)

استEEPROMدرنوشتناتمامصورتدروقفهفعالسازیبيت،بيتاين–

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

67

PICمیکروکنترلر: فصل سوم

خاصکاربردهایثباتياSFRثبات های•INTCONثبات–

7GIE:Globalبيت– Interrupt Enable bit

.کردفعالغيريافعالراوقفه‌هاانواعتمامتوانميبيتاينباواستاصليفعالسازیبيت،بيتاين–

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

68

PICمیکروکنترلر: فصل سوم

خاصکاربردهایثباتياSFRثبات های•EEDATAثبات–

شودمياستفادهEEPROMازدادهخواندنياونوشتنجهتثباتاين–EEADRثبات–

فرادرسداردبعهدهراEEPROMحافظهدهيآدرسوظيفهثباتاين–

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

69

PICمیکروکنترلر: فصل سوم

خاصکاربردهایثباتياSFRثبات های•خالصه–

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

70

PICمیکروکنترلر: فصل سوم

PIC16F84میکروکنترلرخروجیوورودیدرگاه های•

است(بيت/پايه8)Bو(بيت/پايهپنج)Aدرگاهدودرخروجي/ورودیپايه13دارای16F84ميکروکنترلر–مختلفهایپايهکشيجريانميزان–

توسطکاراين.کردتعريفخروجيياورودیبصورت(تکي)جداگانهطوربهميتوانراپورت‌هاپايه‌هایيکهر–SFRهایTRISA(85آدرسh،پورتبرایA)وTRISB(86آدرسh،پورتبرایB)مي‌شودانجام

هستندهاپايههمينوقفه،منابعازيکيواقعدروهستندوقفهتوليدقابليتدارایBپورتپايهچهار–

I\Oپايههر AپورتBپورت

mA150mA80mA25 جريانSink(ورودي)mA100mA50mA 25 جريانSource(خروجی)

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

71

PIC16F84درپشته•

دادهحافظهازقسمتينهواستبرنامهحافظهازقسمتينهپشتهفضای–

.مي‌شوداستفادهروال‌هازيرفراخوانيهنگام(PC)برنامهشمارندهمقدارذخيرهبرایپشته–بگيردسرازرابرنامهاجرایکجاازکهدانستخواهدميکروکنترولرزيرروال،ازبازگشتهنگامترتيببدين–

عملاينبه.مي‌کندذخيرهپشتهدرداردقرارPCدرکهرااصليبرنامهدرخودفعليآدرسميکروکنترلرپرش،ازپيش–PUSHمي‌شودگفته

اينبه.مي‌گيردسرازاست،شدهذخيرهپشتهدرکهآدرسيازرااصليبرنامهاجرایميکروکنترلرزيرروالاجرایازبعد–.مي‌شودگفتهPOPعمل

–PIC16F84مي‌باشدپشتهبرایبيتي13جايگاه8دارایمي‌توان(ديگرروالزيرداخلدرروالزيرزدنصدا)تودرتوزيرروالبرنامه8ازکهمي‌دهدنشانسطحي8پشته–

کرداستفاده

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

72

PICمیکروکنترلر: فصل سوم

PIC16F84درپشته•

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

73

PICمیکروکنترلر: فصل سوم

Wثبات•

داردميکروکنترلرهاسايردراکوموالتورشبيهنقشيوداردنامکارثباتثبات،اين–

مي‌داردنگهخوددرراALUمحاسباتنتايجواستارتباطدرALUباثباتاين– فرادرس.مي‌شوداستفادهنيزپورت‌هابودنخروجي-ورودیتعييندرهمچنين،Wثبات–

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

74

PICمیکروکنترلر: فصل سوم

PIC16F84دربرنامهشمارنده•

مي‌کندمشخصراشوداجرابايدCPUتوسطکهدستورالعمليآدرسPCيابرنامهشمارنده––PIC16F84استبيتي13برنامهشمارندهيکدارایاستPCHياآنارزشبابايتواستنوشتنوخواندنقابلثباتيومي‌شودشناختهPCLعنوانباآنارزشکمبايت– فرادرسداردرابرنامهحافظهفضایازکيلوبايت8برایآدرس‌دهيتواناييبيت13اين–

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

75

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•استاسمبليزبانميکروکنترلرهاازوسيعيگروهوPICخانوادهاصليبرنامه‌نويسيزبان–اسمبليزباندستورات–

Wثباتبهثابتمقدارانتقال:MOVLWدستور–

مي‌کندمنتقلWثباتبهراKبيتيهشتدادهدستوراين–– MOVLW K

مثال–– MOVLW 0x12

FثباتبهWثباتانتقال:MOVWFدستور–

مي‌کندمنتقلFثباتبهراWثباتدرموجوددادهدستور،اين–– MOVWF F

شودنوشتهثباتنامياوگيردقرارآنآدرسمي‌تواندفوق،دستوردرFجایبه–

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

76

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبليزباندستورات–

:MOVFدستور–– MOVF F,d

موجوددادهباشد،يکdمقداراگروشودميريختهWدرFدرموجوددادهباشد،صفربرابرdمقداراگردستور،ايندر–مي‌کندمنتقلFبهراWدر

:ADDLWدستور–مي‌ريزدWدررانتيجهوکندميجمعWثباتبارا(k)‌بيتيهشتثابتمقداريکدستوراين–

– ADDLW k

;W=C7h0b11000111MOVLW;F=11000111b, F is located at address 0Ch of RAM0x0CMOVWF

;W=1Ah0b11010MOVLW;W=9Bh + 1Ah = B5h0x9BADDLW

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

77

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبليزباندستورات–

ADDWFدستور–

مي‌ريزدWياFدررانتيجهوکندميجمعWباراFرجيسترداخلعدد،dمقداربهبستهدستوراين–.مي‌شودريختهFدرنتيجهباشديکاگروWدرنتيجهباشد،صفربرابرdمقداراگر–

– ADDWF F,d

;W=9Bh0x9BMOVLW;F=9Bh, F is located at address 0Ch of RAM0x0CMOVWF;W=1Ah0x1AMOVLW;F=9Bh+1Ah0x0C,1ADDLWF

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

78

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبليزباندستورات–

ثابتمقدارازWثباتکردنکم:SUBLWدستور–مي‌گيردقرارWثباتدرنتيجهوشدهکمkبيتيهشتمقدارازWثباتدستورايناجرایبا–

– SUBLW k

FثباتازWثباتکردنکم:SUBWFدستور–

باشد،يکبرابراگروWدرنتيجهباشد،صفربرابرdمقداراگر.مي‌شودکمFثباتازWثباتمقداردستورايناجرایبا–مي‌شودذخيرهFدرنتيجه

– SUBWF F,d

;W=1Ah0b11010MOVLW;W=FFh – 1Ah = E5h0xFFSUBLW

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

79

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبليزباندستورات–

FثباتازWثباتکردنکم:SUBWFدستور–

بيتکردنصفر:BCFدستور–مي‌کند(clear)صفرراFريجيسترازbشمارهبيتدستوراين–

– BCF F,b

– BCF FLAG_REG, 7

;W=11011100b0b11011100MOVLW;F=11011100b0x0CMOVWF;W=03h0b11MOVLW;W=11011100b – 11b=110110010x0C,0SUBWF

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

80

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبليزباندستورات–

بيتکردنيک:BSFدستور–.مي‌کند(set)يکصفر،جایبهراFريجيسترازbشمارهبيتکهتفاوتاينبااستBCFمانند–

– BSF F,b

– BSF FLAG_REG, 3

بودنصفرصورتدرپرشوبيتتست:BTFSCدستور–بعدتردستوربهونمي‌شودانجامبعدیدستورباشدصفراگر،مي‌کندچکراFريجيسترازbشمارهبيتدستوراين–

کندميپرشدستوريکواقعدرومي‌رود– BTFSC F,b

مي‌شوداستفاده(IFمثل)شرطيعملياتبرایدستورايناز–

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

81

اسمبلینويسیبرنامه•اسمبليزباندستورات–

بودنصفرصورتدرپرشوبيتتست:BTFSCدستور–

آنبودنيکصورتدرپرشوبيتتست:BTFSSدستور–مي‌کندپرشدستوريکباشديکاگرولي،مي‌کندچکراFريجيسترازbشمارهبيتقبلدستورماننددستوراين–

– BTFSS F,b

PICمیکروکنترلر: فصل سوم

;W=C7h0b11000111MOVLW;F=0b110001110x0CMOVWF;check bit 3, whether is 1 or 00x0C,3BTFSC;skip this line if bit 3 is 00x0C,4BSF;W=C7h+9Bh0x9BADDLW

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

82

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبليزباندستورات–

آنبودنيکصورتدرپرشوبيتتست:BTFSSدستور–

Wثباتکردنصفر:CLRWدستور–

مي‌دهدقرارصفربرابرراZپرچموصفرکردهراWريجيستردستوراين–– CLRW

;W=C7h0b11000111MOVLW;F=0b110001110x0CMOVWF;check bit 1, whether is 1 or 00x0C,1BTFSS;skip this line, bit 1 is 10x0C,4BSF;W=C7h+9Bh0x9BADDLW

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

83

اسمبلینويسیبرنامه•اسمبليزباندستورات–

نگهبانتايمرکردنصفر:LRWDTدستور–مي‌شودنگهبانتايمرشدنResetباعثدستوراين–

– LRWDT

Fثباتکردنمکمل:COMFدستور–

آن،بودنيکصورتدروWثباتدرعملياتنتيجهdبودنصفرصورتدروکردهمکملراFريجيستردستوراين–مي‌گيردقرارFثباتدرنتيجه

– COMF F,d

PICمیکروکنترلر: فصل سوم

;W=C7h0b11000111MOVLW;F=11000111b, F is located at address 0Ch of RAM0x0CMOVWF;W=111000b0x0C,0COMF

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

84

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبليزباندستورات–

:DECFدستور–

دروWثباتدرعملياتنتيجهباشدصفرdصورتي‌کهدر؛مي‌دهدکاهشواحديکراFثباتمحتوياتدستوراين–مي‌گيردقرارFثباتدرنتيجه،باشديککهصورتي

– DECF F,d

;W=C7h0b11000111MOVLW;F=11000111b0x0CMOVWF;F=0xC7 – 1 = 0xC60x0CDECF

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

85

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبليزباندستورات–

نتيجهبودنصفرصورتدرپرشوFثباتکاهش:DECFSZدستور–يکبرابراگروWدرنتيجهباشدصفربرابرdاگر.مي‌يابدکاهشواحديکFريجيسترمحتوایدستور،ايناجرایبا–

مي‌شودذخيرهFدرحاصلباشدمي‌کندپرشبعدیدستوررویاز،(شودصفرStatusرجيستردرZبيتعبارتيبهيا)شودصفرنتيجهاگر–

– DECFSZ F,d

;W=03h0b11MOVLW;F=11b0x0CMOVWF

MAIN:⁞

;F=11b -10x0C,1DECFSZGOTO MAIN

;W=1Ah0x1AMOVLW

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

86

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبليزباندستورات–

Fثباتافزايش:INCFدستور–

دروWثباتدرنتيجهباشدصفرdصورتي‌کهدرمي‌شودافزودهواحديکFريجيسترمحتوایبهدستورايناجرایبا–مي‌گيردقرارFثباتدرنتيجه،dبودنيکصورت

– INCF F,d

;W=11011100b0b11011100MOVLW;F=11011100b0x0CMOVWF;W=11011100b +1=11011101b0x0C,0INCF

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

87

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبليزباندستورات–

نتيجهبودنصفرصورتدرپرشوFثباتافزايش:INCFSZدستور–ريختهFياWدرونdمقداربهتوجهباحاصلوشدهافزودهواحديکFريجيسترمحتوایبهدستورايناجرایبا–

مي‌شود

FFمثالً)باشدصفرنتيجهاگر– → .مي‌شوداجرابعدیدستوروکردهپرشدستوريک،(100– INCFSZ F,d

;W=FCh0b11111100MOVLW;F= FCh0x0CMOVWF

MAIN:⁞

;F=FCh + 10x0C,1INCFSZGOTO MAIN

;W=1Ah0x1AMOVLW

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

88

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبليزباندستورات–

:ANDLWدستور–.مي‌ريزدWدررانتيجهوکردهاجراWثباتوkعدددوبينرامنطقيANDعملدستوراين–

– ANDLW k

FثباتباWثباتمنطقيANDWF:ANDدستور–

وWدرعملياتنتيجهباشدصفرdصورتي‌کهدرمي‌کندمنطقيANDهمباراFوWثباتدومحتوياتدستوراين–مي‌گيردقرارFثباتدرنتيجهبودنيکصورتدر

– ANDWF F,d

;W=1Ah11010MOVLW;W=11010=1Ah10011011ANDLW

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

89

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبليزباندستورات–

FثباتباWثباتمنطقيANDWF:ANDدستور–

WثباتباثابتمقدارمنطقيIORLW:ORدستور–

مي‌کندذخيرهWدررانتيجهومي‌دهدانجامWوkمقداردوبينرامنطقيORعملدستوراين–

– IORKW k

;W=9Bh0x9BMOVLW;F=9Bh, F is located at address 0Ch of RAM0x0CMOVWF;W=1Ah0x1AMOVLW;F=1Ah0x0C,1ANDWF

;W=1Ah0b11010MOVLW;W=11010 OR 10011011 = 100110110b10011011IORLW

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

90

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبليزباندستورات–

FثباتباWثباتمنطقيIORWF:ORدستور–

باشد،صفربرابرdمقدارصورتي‌کهدرنتيجهومي‌دهدانجامWوFثباتمقداردوبينرامنطقيORعملدستوراين–مي‌کندذخيرهFدرباشديکبرابراگروWدر

– IORWF F,d

;W=9Bh0x9BMOVLW;F=9Bh0x0CMOVWF;W=1Ah0x1AMOVLW;F=9Bh0x0C,1IORWF

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

91

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبليزباندستورات–

kثباتباWثباتمنطقيXORLW:XORدستور–

.مي‌کندذخيرهWدررانتيجهومي‌دهدانجامWوkمقداردوبينرامنطقيXORعملدستوراين–– XORLW k

FثباتباWثباتمنطقيXORWF:XORدستور–

دروWثباتدرعملياتنتيجهباشدصفرdصورتي‌کهدرمي‌کندXORهمباراFوWثباتدومحتوياتدستوراين–مي‌گيردقرارFثباتدرنتيجهآن،بودنيکصورت

– XORWF F,d

;W=1Ah0b11010MOVLW;W=11010 XOR 10011011 = 100000010b10011011XORLW

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

92

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبليزباندستورات–

FثباتباWثباتمنطقيXORWF:XORدستور–

نقليرقمطريقازراستسمتبهFثباتچرخش:RRFدستور–ثباتدرنتيجهdبودنصفرصورتدر.مي‌کندپيداانتقالراستسمتبهواحديکنقليرقمطريقازFثباتمحتويات–

Wبودنيکصورتدروd،ثباتدرنتيجهFمي‌گيردقرار– RRF F, d

;W=9Bh0x9BMOVLW;F=9Bh0x0CMOVWF;W=1Ah0x1AMOVLW;F=81h0x0C,1XORWF

;W=10001000b0b10001000MOVLW;F=10001000b0x0CMOVWF;F=1000100b0x0C,1RRF

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

93

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبليزباندستورات–

نقليرقمطريقازچپسمتبهFثباتچرخش:RLFدستور–مي‌دهدانتقالچپسمتبهواحديکراFثباتمحتوياتکهتفاوتاينباکردهعملRRFدستورماننددستوراين–

– RLF F, d

:CALLدستور–شودمياستفادهروال‌هازيرزدنصدابرایدستوراين–مي‌شوددنبالزيرروالبرنامهومي‌شودمتوقفاصليبرنامه،زيررواليکصدازدنبا–

– CALL Label

;W=10001000b0b10001000MOVLW;F=10001000b0x0CMOVWF;F=00010001b0x0C,1RLF

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

94

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبليزباندستورات–

برنامهزيرازبازگشت:RETURNدستور–برمي‌گرددCALLدستورازبعدخطواصليبرنامهبهدستوراينبهرسيدنبابرنامهزيراجرایهنگامدرپردازنده–

– RETURN

;W=C7h0b11000111MOVLW;F=0b110001110x0CMOVWF;call label SUB1CALL SUB1;W=C7h+9Bh0x9BADDLW

⁞SUB1:⁞

;return to main programRETURN

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

95

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبليزباندستورات–

RETLWدستور–

kثابتCALLدستورازبعدخطبهبازگشتازقبلکهتفاوتاينبامي‌کندعملRETURNدستورمشابهدستوراين–

مي‌دهدقرارWدررا

– RETLW k

;W=C7h0b11000111MOVLW;F=0b110001110x0CMOVWF;call label SUB1CALL SUB1;W=C7h+9Bh0x9BADDLW

⁞SUB1:⁞

;return to main program and W=CFh0xCFRETLW

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

96

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبليزباندستورات–

GOTOدستور–

کندميپرششود،ميمشخصGOTOجلویبرچسبباکهمحليبهبرنامهدستور،ايناجرایبا–روالزيربرنامهاجرایپردازندهومي‌شودمتوقفاصليبرنامهاجرایCALLدرکهاستآنCALLبادستوراينتفاوت–

شودميپرشاصليبرنامهازديگریخطبهGOTOدستوردرحالي‌کهدر.کندميآغازرا– GOTO Label

;W=C7h0b11000111MOVLW;F=0b110001110x0CMOVWF; goto label SUB1GOTO SUB1;W=C7h+9Bh0x9BADDLW

⁞SUB1:⁞

;W=1Ah0x1AMOVLW

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

97

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبليزباندستورات–

وقفهازبازگشت:RETFIEدستور–لياصبرنامهبهوفقهبرنامهزيراجرایازپسدستور،اينازاستفادهباباشد،شدهاستفادهوقفهازبرنامهدراگر–

برمي‌گردد

– RETFIE

عملياتاجرایعدم:NOPدستور–استتاخيرايجادبرایودهدنميانجامعمليهيچدستوراين–

– NOP

پايينتوانحالتدرگرفتنقرار:SLEEPدستور–مي‌رودStandbyحالتبهميکروکنترلردستور،ايناجرایبا–

– SLEEP

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

98

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبلينويسيبرنامهنکات–اعدادنمايش–

– MOVLW 0X0E

– MOVLW h'0E'

– MOVLW b'00001110'

– MOVLW d'14'

– MOVLW 14

;عالمتازاستفادهتوضيحات،کردناضافه–

مي‌دارداعالمرابرنامهپاياناسمبلربهکهاستendدستور،اسمبليبرنامه‌هردردستورآخرين–

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

99

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبلينويسيبرنامهنکات–

–Directiveهامي‌شوندبرنامهساده‌شدنباعثومي‌گيرندقراربرنامهازقبلبرنامهفرمتتعيينوتعريفجهتکههستندعباراتي– فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

100

دستورالعملشرح دستورالعملمثال

org 0Sets the starting location of the assembly programming

ORG

i EQU 0x00Creferred to as “equates”CONSTANT / EQU

#DEFINE zeroflag STATUS, ZSpecify that any time Label is encountered, it is replaced by the string

#DEFINE

include “p16F84.inc”copy a text file(such as the .inc file) into the source file

include

PROCESSOR 16F84

This directive is available for commonality withearlier Microchip PIC microcontrollerassemblers.

PROCESSOR

variable B Defines a variablevariable

CBLOCK AddressVar1, Var2VarA:2 ; increment by 2:ENDC

Define a starting address for variables orVar1, Var2 constants that require increasing values.

CBLOCK

End the CBLOCK label constant value, savingand updating.

ENDC

ORG 0x02100DE Value or “string”

Save initialization data for the PIC microcontroller’s built-in data EEPROM

DE

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

101

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•اسمبلينويسيبرنامهنکات–

–Directiveهامي‌دهدنشانبهترراهاDirectiveعمليکاربردزيرمثال–

; ”Variable” is a run time variablevariable A = 37; Test1 = 185Test1 equal A * 5;Test2 is Evaluated when it is used#define Test2 A * 5

:;W=5movelw 0b101; A = 42Addwf A,1

:; “Test1” is replaced with 185movlw Test1

:; “Test2” is replaced with A * 5movlw Test2; = 42 * 5; = 210

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

102

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•آدرس‌دهيروش‌های–فوریدهيآدرس1.مي‌شوددادهقرارمقصددرمستقيمبطوردادهحافظه،خانهازاستفادهبدونآدرس‌دهيايندر

MOVLWدستورمانند 0XBF

مستقيمدهيآدرس2.

مي‌شودنوشتهحافظهخانهدرياخواندهداردقرارآندرکهحافظه‌ایخانهازمستقيمبطوردادهروشايندر

;Bank1STATUS,RP0BSF;W=0xFF0xFFMOVLW;Port A is set as inputTRISAMOVWF

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

103

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•آدرس‌دهيروش‌های–مستقيمغيردهيآدرسروش3.

(Pointer)اشاره‌گربصورترجيسترازاستفادهنهومي‌شودگرفتهنظردرآدرسبه‌عنوانCPUنظرازآنمحتوایمي‌شود،معرفياشاره‌گربه‌عنوانرجيستريکهنگامي‌که

.داده

از00hآدرس)INDFو(RAMحافظهاز04hآدرس)FSRنامهایباSFRثباتدواز،RAMهایخانهدهيآدرسبرایشودمياستفاده(RAMحافظه

يافتدستمي‌کنداشارهآنبهFSRکهمکانيمحتوياتبهتوانميINDFثباتازاستفادهبا

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

104

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•آدرس‌دهيروش‌های–مستقيمغيردهيآدرسروش3.

باشدشدهذخيره20عددRAMحافظهاز0Fhآدرسدراگرمثالبعنوان

مي‌کنداشاره0Fhآدرسبهکهبودخواهداشاره‌گریFSRرجيسترترتيباينبه

گرفتخواهدقرارWثباتدر20مقداردستوراينبا

;W=0x0F0x0FMOVLW; FSR=0x0FFSRMOVWF

; W=20 value of register at address 0FhINDF , 0Movf

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

105

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•آدرس‌دهيروش‌های–مستقيمغيردهيآدرسروش3.

پويانويسيبرنامه

MOVLW 0x0C ;W=0x0C starting addressMOVWF FSR ; FSR= 0x0C starting addressBCF STATUS,0 ;carry flag=0

Loop CLRF INDF ;indf=0INCF FSR ;next addressMOVLW 228 ;W=228ADDWF FSR,0 ;W=228+FSRBTFSS STATUS,0 ; test for end of block: if W=256 then carry flag=1GOTO Loop ;do again

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

106

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•آدرس‌دهيروش‌های–نسبيدهيآدرسروش4.نرودبينازبرققطعباوباشدتغييرقابلکهمي‌باشددادهجدوليکبهنيازکاربردهاازبسياریدر

کرداشارهsegment-7سيستمهایورمزدارهایدربازکن،ديجيتالگاوصندوق‌هایبهمي‌توانکاربردهاايننمونهازمي‌شودانجامPCمقدارتغييرطريقازنسبيدهيآدرس

،شده‌اندمحاسبهPCفعليمکانبهنسبتکهآدرس‌هاييبهداردقراربرنامهشمارندهکهجاييازپرشيکبصورتعملاينمي‌شودانجام

-7رویخروجيبعنوانBپورتتوسطنتيجهوشوددريافتميکروکنترلرورودیتوسطعدديککهاستآنهدفمثال،

segmentشوددادهنمايش

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

107

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•آدرس‌دهيروش‌های–نسبيدهيآدرسروش4.

عددsegment LED-7عددي که بايد روي پورت نوشته شود gfedcbaبه صورت باينريبه صورت هگز3F00111111011111100600000110000011015B01011011101101124F01001111100111136601100110110011046D01101101110110157D01111101111110160700000111000011177F01111111111111186F0110111111011119

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

108

;define a constant named pco equal to PCL ram address0x02EQUpco

Select Bank1STATUS,5BSF

;W=0x000x00MOVLW

;Portb is set as outputTRISBMOVWF

;W=0xFF0xFFMOVLW

;Porta is set as inputTRISAMOVWF

Select Bank0STATUS,5BCF

;W= Input on portaPorta,0MOVFrepeat

;call subSegmentsCALL

;display resultsPortbMOVWF

RepeatGOTO

; pco=pco+W (the address of this line is y)pco,1ADDWFSegments

;display code of 0 (the address of this line is y+1)0x3fRETLW

;display code of 1 (the address of this line is y+2)0x06RETLW

;display code of 2 (the address of this line is y+3)0x5BRETLW

;display code of 3 (the address of this line is y+4)0x4fRETLW

;display code of 4 (the address of this line is y+5)0x66RETLW

;display code of 5 (the address of this line is y+6)0x6dRETLW

;display code of 6 (the address of this line is y+7)0x7dRETLW

;display code of 7 (the address of this line is y+8)0x07RETLW

;display code of 8 (the address of this line is y+9)0x7fRETLW

;display code of 9 (the address of this line is y+10)0x6fRETLW

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

109

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•کاربردیمثالچند–

باقيهمچنانوکندروشنهمزمانراRB1وRB0هایپايهرویديوددوبرنامه،اجرایازپسکهبنويسيدایبرنامه.1بماند

; portb setting demoProcessor 16f84 ;defining the processor

0x00Org;select bank10x03,5 BSF;W=0x000x00MOVLW

;TRISB (addr. 0x86)=W(=0b00000000); set pins of portb output

0x86MOVWF

;select bank00x03,5 BCF;w = 0b000000110b00000011MOVLW;PORTB (addr. 0x06)=0b000000110x06MOVWF;endless loopCircleGOTOCircle:

End

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

110

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•کاربردیمثالچند–

راپايه‌هابقيهوخروجيصورتبهراBپورتاز6و0،1،4وAپورتاز2و0،1بيت‌هایکهبنويسيدبرنامه‌ای.2.کندتعريفورودیبصورت

Processor 16f84 ;defining the processor0x00Org

;select bank10x03,5 Bsf;W=0xf8(=b1111 1000)0xf8Movlw

;TRISA (addr. 0x85)=W(=b1111 1000);set pins 0,1,2 of porta output,others input

0x85Movwf

;0xAC to w0xACMovlw

;TRISB (addr. 0x86)=W(=b1010 1100)

; set pins 0,1,4,6 of portb input,others output

0x86Movwf

;endless loopCircleGotoCircle:End

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

111

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•کاربردیمثالچند–

سايروروشنراRB2وRB1هایپايهسپسوکندتعريفخروجيبصورتراBپورتهایپايهکهبنويسيدبرنامه‌ای.3.کندخاموشراپايه‌ها

شودنوشتهعددBپورتدربايدکهتفاوتاينبااستقبلبرنامههمانندبرنامهايناينازبرنامهادامهدرواستشدهدادهاختصاصآنهانامبامتناسبثبات‌هاآدرسبههاييبرچسببرنامهابتدایدر

.شودمياستفادهبرچسب‌ها

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

112

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•کاربردیمثالچند–

;portb demoprocessor 16f84 ;defining the processor

5EquConstant0x06EquPortb0x86EquTrisb0x03EquStatus

0x00Org;select bank1status,constantBSF;W=0x000x00MOVLW;Trisb=w, setting portb as outputTrisbMOVWF; select bank0status,5BCF;W= 0x60(=b0000 0110)0x06MOVLW;portb=WPortbMOVWF;putting micro in an endless loopLoopGOTOloop

End

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

113

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•کاربردیمثالچند–

بارا38hتا2Fhآدرسازودسيمال120مقداربارا15hتا0ChآدرسازRAMحافظههایمکانکهبنويسيدایبرنامه.4.کنددهيمقدار،01011101باينریمقدار

Processor 16f84

indf Equ 0x00

fsr Equ 0x04

status Equ 0X03

Org 0x00BCF status,0 ;carry flag=0MOVLW 0x0c ;W= 0x0cMOVWF Fsr ;FSR=W(= 0x0c), set start point 1 for data block

Load1 MOVLW 120 ;W=120

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

114

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•کاربردیمثالچند–

MOVWF indf ;load to addressINCF fsr,1 ;next addressMOVLW 234 ;W=234ADDWF fsr,w ;check the end address

BTFSS status,0 ;If it is the end address, carry flag is set

GOTO Load1 ;continue

BCF status,0 ;carry flag=0

MOVLW 0x2f ;W=0x2f

MOVWF Fsr ;set start point2

load2 MOVLW b'01011101' ;W=93

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

115

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•کاربردیمثالچند–

MOVWF indf ;load to addressINCF fsr, 1 ;next addressMOVLW 199 ;W=199ADDWF fsr,w ;check the end address

BTFSS status,0 ; If it is the end address, carry flag is set

GOTO load2 ;continueEND

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

116

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•کاربردیمثالچند–

.کندضربهمدررا6و35عدددوکهبنويسيدایبرنامه.5مي‌شودنوشتهمتواليهایجمعازاستفادهبابرنامهايناولعدددادتعبهديگرعددوشدهگرفتهنظردرشمارندهعنوانبه(عددکوچکترينمعموالً)عددهاازيکيکهترتيباينبهمي‌شودجمعخودشبا

;6*35 demo16f84processor

0x0cEquN

; W=6; N= W; W=0; W=W+ 35; N=N-1, if N is zero skip the next line; do again

6N0x0035N,1loop

movlwmovwfmovlwaddlwdecfszgotoend

Start

loop

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

117

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•کاربردیمثالچند–.کندضربهمدررا80و24عدددوکهبنويسيدبرنامه‌ای.6مي‌گرفتجای(بايتيک)رجيسترخانهيکدرواست255ازکمترکهبود210مقدار35×6حاصلضربقبليبرنامهدربرچسبثباتبهواحديک،(رجيسترازسرريزدهندهنشان)باشد1اگرتامي‌شودکنترلنقليپرچمجمععملهرازبعدشودافزودهmsbنامباشدهزده

باشدآمادهحلقهبعدیتکراربرایتاشدهپاکنقليپرچمسپس

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

118

PICمیکروکنترلر: فصل سوم

24*80 demo16f84processor

0x0c0x0d0x0e0x03

Equequequequ

Nmainmsbstatus

;carry flag=0;W= 24; N=W; W=0; W=W+ 80; If carry=0, skip the next line; msb= msb+1 if carry flag is set; carry flag=0; N=N-1, skip the next line if N=0; do again

0x00Status,024N0x0080Status,0msbStatus,0N,1Loop

orgbcfmovlwmovwfmovlwaddlwbtfscincfbcfdecfszgotoend

Start

loop

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

119

PICمیکروکنترلر: فصل سوم

اسمبلینويسیبرنامه•کاربردیمثالچند–

.کندضربهمدررا0x3fو0x2fآدرسهایدرثباتدومحتوایکهبنويسيدبرنامه‌ای.7

;n*m demo16f84processor

0x2f0x3f0x0e0x03

equequequequ

num_nnum_mmaincarry

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

120

0x000x00maincarrynum_n,1status,2circlenum_m,1status,2circlestatus,00x00num_m,0status,0carrystatus,0num_n,1loopmaincircle

orgmovlwmovwfmovwfmovfbtfscgotomovfbtdscgotobcfmovlwaddwfbtfscincfbcfdecfszgotomovwfgotoend

start

Loop

circle

;W=0; main part of product = 0;carry part of product = 0; test if num_n zero; check z flag; num_n is zero; test if num_m zero; check z flag; num_m is zero;carry flag = 0; W = 0; W = num_m + W; test carry flag; if carry flag = 1 then increase carry part; carry flag = 0; num_n = num_n - 1; do again; main = W; endless loop

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

121

اسمبلینويسیبرنامه•کاربردیمثالچند–.کندتقسيم14بررا90عددکهبنويسيدبرنامه‌ای.8

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

.گرفتخواهندقرار0Dhآدرسدرقسمتخارجو0Chآدرسدرباقيماندهبرنامهايندر

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

122

;90/14 demo16f84processor

0x0c0x0d0x03

Equequequ

quoremstatus

; clear quo; W= 90; Rem=90; W=14; quo=quo+1; Rem=Rem-W; if carry flag = 0, skip the next line; do again; rem=rem+W; quo=quo-1

0x000x00quo90rem14quo,1Rem,1status,0looprem,1quo,1

Orgmovlwmovwfmovlwmovwfmovlwincfsubwfbtfscgotoaddwfdecfend

loop

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

123

اسمبلینويسیبرنامه•تاخيرزمانمدتمحاسبهوتاخيرحلقهايجاد–

استسازنوسانپريودبرابرچهار16F84ميکروکنترلردرکاریسيکليک–

:نمودضربکاریسيکليکزماندربايدرابرنامهکلکاریسيکل،تاخيرمحاسبهبرای–

PICمیکروکنترلر: فصل سوم

𝑇𝑖𝑚𝑒 𝐷𝑒𝑙𝑎𝑦 = 𝑁𝑂 𝑜𝑓 𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑡𝑖𝑜𝑛 𝑐𝑦𝑐𝑙𝑒𝑠 ×4

𝑓

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

124

اسمبلینويسیبرنامه•تاخيرزمانمدتمحاسبهوتاخيرحلقهايجاد–

مثال،–

PICمیکروکنترلر: فصل سوم

;W= N, machine cycle = 1Nmovlwdelay; del=W, machine cycle = 1delmovwf; del=del-1, machine cycle = 1 or 2del,1decfezloop; repeat, machine cycle = 2loopgoto; ret from subroutine, machine cycle = 2return

𝑁𝑂 𝑜𝑓 𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑡𝑖𝑜𝑛 𝑐𝑦𝑐𝑙𝑒𝑠 = 1 + 1 + 𝑁 − 1 × 1 + 2 + 𝑁 − 1 × 2 + 2 = 3𝑁 + 3

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

125

اسمبلینويسیبرنامه•تاخيرزمانمدتمحاسبهوتاخيرحلقهايجاد–

ديودتداابتابنويسيدایبرنامه.باشدميزردديوددووقرمز،ديوديکسبز،ديوديکشاملراهنماييچراغيکمثال،–روشندومزردديودوخاموشاولزردديودآخردروروشنزردديوددوسپسوقرمز،ديودتاخيرازبعدسبز،نوری.هستندمتصلقرمزوزردزرد،سبز،هایLEDبهترتيببهRB3تاRB0هایپايه.شود

PICمیکروکنترلر: فصل سوم

Org 0Bsf 0x03,5 ;select bank1Movlw 0x00Movwf 0x86 ,set port B as outputBcf 0x03,5 ;select bank0

LOOP Movlw 0x01 ;w= 0b00000001Movwf 0x06 ,turn on green LEDBCF 0x03,2 ;zero flag = 0Movlw 0xFF ; number of loops to make delaysMovlw 0x0C ;Address 0x0C = 0xFF

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

126

اسمبلینويسیبرنامه•تاخيرزمانمدتمحاسبهوتاخيرحلقهايجاد–

PICمیکروکنترلر: فصل سوم

DELAY1 DECFSZ 0x0C,1 ;register0x0C = register0x0C - 1GOTO DELAY1 ;check zero flagMovlw 0x08 ;w= 0b00001000Movwf 0x06 ,turn on red LEDBCF 0x03,2Movlw 0xFFMovlw 0x0C

DELAY2 DECFSZ 0x0C,1GOTO DELAY2Movlw 0x06 ;w=0x06= 0b00000110Movwf 0x06 ,turn on yellow LEDsBCF 0x03,2Movlw 0xFFMovlw 0x0C

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

127

اسمبلینويسیبرنامه•تاخيرزمانمدتمحاسبهوتاخيرحلقهايجاد–

PICمیکروکنترلر: فصل سوم

DELAY3 DECFSZ 0x0C,1GOTO DELAY3Movlw 0x02 ;w= 0b00000010Movwf 0x06BCF 0x03,2Movlw 0xFFMovlw 0x0C

DELAY4 DECFSZ 0x0C,1GOTO DELAY4GOTO LOOP ;repeat the programEND

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

128

اسمبلینويسیبرنامه•(تودرتوهایحلقهازاستفاده)ترطوالنيتاخيرهایحلقه–

.نموداستفادهحلقه‌ایچندتاخيرهایازبايدبيشترتاخيرايجادبرای–

PICمیکروکنترلر: فصل سوم

; mc (machine cycle = 2)delaycalldelay

; mc = 1Mmovlw; mc = 1Cnt1movwf; mc = 1Nmovlwlout; mc = 1Cnt2movwf; mc = 1.2Cnt2decfszlin; mc = 2LinGoto; mc = 1.2Cnt1Decfsz; mc = 2loutGoto; mc = 2return

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

129

اسمبلینويسیبرنامه•(تودرتوهایحلقهازاستفاده)ترطوالنيتاخيرهایحلقه–برنامهکلکاریسيکلمحاسبه–

:استزيربصورتبرنامهداخليحلقه–

PICمیکروکنترلر: فصل سوم

; mc = 1.2Cnt2decfszlin

; mc = 2lingoto

𝑁𝑂 𝑜𝑓 𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑡𝑖𝑜𝑛 𝑐𝑦𝑐𝑙𝑒𝑠(𝑖𝑛) = 𝑁 − 1 × 1 + 2 + 𝑁 − 1 × 2 = 3𝑁 − 1

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

130

اسمبلینويسیبرنامه•(تودرتوهایحلقهازاستفاده)ترطوالنيتاخيرهایحلقه–برنامهکلکاریسيکلمحاسبه–:استزيربصورتخارجيحلقه–

PICمیکروکنترلر: فصل سوم

; mc = 1Nmovlwlout; mc = 1Cnt2movwf; mc = 1.2Cnt2Decfszlin; mc = 2lingoto; mc = 1.2Cnt1Decfsz; mc = 2Loutgoto

𝑁𝑂 𝑜𝑓 𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑡𝑖𝑜𝑛 𝑐𝑦𝑐𝑙𝑒𝑠 𝑜𝑢𝑡 = 𝑀 +𝑀 +𝑀 × 3𝑁 − 1 + 𝑀 − 1 × 1 + 2 + 𝑀 − 1 × 2 = 3𝑀𝑁 + 4𝑀 + 1

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

131

اسمبلینويسیبرنامه•(تودرتوهایحلقهازاستفاده)ترطوالنيتاخيرهایحلقه–برنامهکلکاریسيکلمحاسبه–:بااستبرابرسيستمکلکاریسيکلنهايتدر–

PICمیکروکنترلر: فصل سوم

𝑁𝑂 𝑜𝑓 𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑡𝑖𝑜𝑛 𝑐𝑦𝑐𝑙𝑒𝑠 𝑡𝑜𝑡𝑎𝑙 = 2 + 1 + 1 + 3𝑀𝑁 + 4𝑀 + 1 + 2 = 3𝑀𝑁 + 4𝑀 + 7

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

132

هازيرروالوماکروها•شوندميتکرارایبرنامههردرکهدارندوجودهادستورالعملازرشته‌ای–شوندميحافظهاززيادیفضایذخيرهباعثوبرندميبينازرادستوراتپيدرپيتکرارماکروهاوهازيرروال–ماکروها–

کندميذخيرهincپسوندبافايليکدروشودمينوشتهنويسبرنامهتوسطکهاستدستوراتازایمجموعهماکرويک–شودميصداماکرونامباشدنيازکهبرنامهازقسمتهردر–

PICمیکروکنترلر: فصل سوم

Macro - name Macro par1, par2..

Set of instructions

Set of instructions

Endm

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

133

هازيرروالوماکروها•ماکروها–

کردتعريفراآنزدن،صداازقبلبايدشود،استفادهماکروازایبرنامهدراگر–:داردعهدهبرراصفربانککردنفعالوظيفهbank0نامبازيرماکرویمثالعنوانبه–

دراستشدهنصبMPLABافزارنرمکهمحليدرbankناموincپسوندبامتنيفايليکدربايدراماکروهااين–-MCHIPبنامپوشه‌ای TOOLSکردذخيره

PICمیکروکنترلر: فصل سوم

Bank0 macro ; Macro bank0Bcf STATUS.5 ; Reset RPObitendm ; End of macro

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

134

هازيرروالوماکروها•ماکروها–

شدهنوشتهقبلازکهp16f84نامباincفايلهایازيکيازنباشدبرنامهابتداییعبارت‌هانوشتنبهنيازیاينکهبرای–.کرداستفادهمي‌تواناست

#دستورازبايدبرنامهدراضافيدستوراتنوشتنازاجتنابوفايلاينازاستفادهبرای– include "p16f84"ازبعدکرداستفادهprocessorدستور

هنگاماست،شدهنوشتهبزرگحروفباSTATUSچونهاييعبارتفايلايندرچونکهداشتبخاطربايدهمچنين–.نموداستفادهبزرگحروفازبايدنيزبرنامه،متندرآنهاازاستفاده

مي‌کننداشغالکهاستحافظه‌ایآنهامشکلوليمي‌کندخواناتروپذيرانعطافرابرنامهماکروهاازستفادها–رابرنامهظهحافازفضاييوگرفتهقراربرنامهدردارند،وجودماکرودرکهدستوراتييادستوربرنامه،درماکرونوشتنبا–

مي‌کننداشغال

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

135

هازيرروالوماکروها•ماکروها–

Bپورتصفرپايه‌یبهمتصلLEDدرراAپورتصفرپايهبهمتصلکليدوضعيتآندرکهبنويسيدبرنامه‌ایمثال،–

.(شودخاموشآنباوروشنLEDکليداتصالبا)دهدنشان

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

136

هازيرروالوماکروها•ماکروها–

microe184.incنامتحتفايليکدرIfnotbitوIfbitماکرویدوابتدااستالزمبرنامهنوشتنبرایجواب،–

شودميذخيرهMCHIP_ToolsپوشهدروشودتايپديگرمتنيويرايشگرهرياNotepadدر

PICمیکروکنترلر: فصل سوم

par1,par2,par3MacroIfbitPar1,par2BtfscPar3Goto

Endm

par1,par2,par3MacroIfnotbitPar1,par2BtfssPar3Goto

Endm

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

137

هازيرروالوماکروها•ماکروها–جواب،–

PICمیکروکنترلر: فصل سوم

16f84processor#include"p16f84.inc"

; Starting point0x00Org; Select bank1STATUS,RP0Bsf; Set 0 pin inputTRISA,0Bsf; Set0 pin outputTRISB,0Bcf; Select bank0STATUS,RP0Bcf

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

138

هازيرروالوماکروها•ماکروها–جواب،–

PICمیکروکنترلر: فصل سوم

; include the macro fileinclude "microel84.inc"; a labelMain; If RA0=0 swich on ledPROTA,0,ledoffIfbit; If RA0=1 siwch off ledPORTA,0,ledonifnotbit ; Repeat allMainGoto

; a labelLedon; Turn on led on RB0PROTB,0Bsf

MainGoto

; a labelLedoff; Turn off led on RB0PORTB,0Bcf

MainGoto

END

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

139

هازيرروالوماکروها•زيرروال‌ها–

retlwياوreturnدستوراتازيکيباومي‌شوندشروعبرچسبيکباکههستنددستوراتازایمجموعههازيرروال–

مي‌يابندپايان

فراخوانيبرنامهاجرایطولدرموقعهروگيرندميقراربرنامهحافظهازمکانيکدرتنهاماکروبرخالفهازيرروال–شدخواهداجرازيرروالدرموجوددستواراتوشودميمتوقفروالزيرصدازدنمحلدراصليبرنامهشوند،

– Lable

– Set of instructions

– Return or retlw

کنندمياستفادهاصليبرنامهمتغيرهایازهازيرروالوکردتعريفمتغيرتواننميزيرروالهادر–رنامه‌هابسايردرجداگانه،فايليکدرآننوشتنبانمي‌توانواستبرنامههمانبهمختصبرنامههرزيرروالهمچنين–

.کرداستفاده

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

140

آنباکارووقفه•وشودتوقفمبايدميکروکنترلرعادیعملکردآندرکهاستحوادثيوخاصشرايطبهپاسخ‌گوييبرایمکانيزميوقفه–

شودرسيدگيخاصشرايطبهشدباباالتربرنامهقسمتهایسايرازآناجرایاولويت،نيازهنگامدرکهاست،برنامهازقسمتيحقيقتدروقفه–

شودميگرفتهسرازبودشدهترککهجاييازاصليبرنامه‌یاجرایوقفهزيرروالاجرایازبعد–:مي‌افتداتفاقزيرعللبهPIC16F84دروقفه–(داخليوقفه)EEPROMدردادهنوشتناتمام1.(داخليوقفه)TMROتايمرشدنريزسر2.

,RB6هایپايهدرتغيير3. RB5, RB4وRB7پورتازB(ميکروکنترلر13تا10هایپايه)

(RB0/INT)ميکروکنترلر6شمارهپايهدرولتاژسطحتغييرطريقازخارجيوقفه4.

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

141

آنباکارووقفه•خيصتشبرایبيتيکووقفهسازیفعالبرایبيتيک:استشدهدادهاختصاصبيتدووقفهمنابعازيکهربه–

وقفهوقوع

دارندقرارEECON1وINTCONثباتهایدرهابيتاين–برایآنازبتوانتاشودپاکنويسبرنامهیوسيلهبهبرنامهدربيتاينبايدوقفه،بامربوطبيتشدنيکازبعد–

.کرداستفادهنوعاينازهاييوقفهسايرتشخيصداردناماصليفعال‌سازیبيتوکندميفعالغيريافعالهمباراهاوقفهتمامکهداردوجودGIEنامبامهمبيت–.کرديکدوبارهراGIEبايدشودفعالبعدیهایوقفهاينکهبرایوشودميصفرGIEبيتوقفههرشدنفعالبا–برنامهحافظهاز0x04آدرسدرorgدستوربوسيلهحتماًبايدشود،فعالوقفهوقوعهنگامدروقفهزيرروالآنکهبرای–

شودزدهصدا

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

142

آنباکارووقفه•کندتغييررجيسترهاسايرياوW،STATUSهمچونثبات‌هاازبعضيمحتوایاستممکنوقفهاجرایحيندر–گرددزيابيباوقفهزيرروالانتهایودرشودذخيرهجاييدروقفهزيروالابتدایدربايدثباتهااينمحتوایدليلهمينبه–

داردنامPOPوPUSHکاردواين–

خودازstatusثباتذخيرهدرچون،مي‌شودذخيرهstatusسپسوشدهذخيرهwثباتابتدافوق،مراحلانجامبرای–مي‌شوداستفادهنيزwثبات

wخودازبازيابيعملدربازچون.مي‌شودبازيابيwثباتنهايتاوشدهبازيابيثبات‌هاسايرابتدا،بازيابيعملهنگام–

.مي‌شوداستفاده

کهاستدستوریتنهاکهچراشود،استفادهRETFIEدستورازوقفه،ارائهروالزيرازبرگشتبرایکهشودميتوصيه–يابندبرقراریاجاره‌ینيزبعدیهایوقفهوشودستGIEدوبارهشودميباعث

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

143

آنباکارووقفه•درراRB7پايهبهمتصلLEDوقفه،فعال‌سازیازطريق،RB0پايهبهشدهاعمالپالسباکهبنويسيدایبرنامهمثال،–

.کندروشنزنچشمکحالت

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

144

آنباکارووقفه•جواب،–

PICمیکروکنترلر: فصل سوم

Processor 16f84#include " p16f84 . inc" ;microchip's inc fileOrg 0x00Goto Main ; jump over intrupt program lineOrg 0x04 ; put the following command in the intruppt

address (04h)Goto Isr ; call interrupt servise routine(isr)

Include"bank.inc" ;bank select macro

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

145

Main bank1 ; call bank macro to select bank1Movlw 0b00000001 ;W=1bMovwf TRISB ; set RB0 as input and others as

output

Bcf OPTION-REG,6 ; active intrupt on falling edgeBcf OPTION-REG,7 ; set internal pull-up resistore offBank0 ; call bank macro to select bank0Clrf PORTB ; clear portbBsf PORTB,7 ; LED onBsf INTCON,INTE ; enable interrupt on RB0Bsf INTCON,GIE ; enable all interrupts

Loop goto Loop ; stay in the loop until an interrupt occur

;----------------------------- Interrupt service routine--------------------------------Isr Bcf INTCON,INTE ; clear INTF to distinguish later

intruptsBcf PORTB,7 ; LED offBsf PORTB,7 ; LED onRetfie

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

146

آنباکارووقفه•وکندفعالراوقفهزيرروالمدار،درRB7تاRB4هایپايهبهمتصلکليدهاازيکهرفشارباکهبنويسيدبرنامه‌ای–

ازنوعاين.کندمشخص(RB3تاRB0هایپايه)نظيرLEDکردنخاموشبارااستشدهوقفهموجبکهراپايه‌ایقفه،وآمدنزمانتا.استمهميامرمصرفيانرژیومي‌کنندکارباطریباکهمي‌شوداستفادهسيستم‌هاييدروقفه

.مي‌شوددادهقرارSLEEPدستوربا(خوابمد)پايينتوانمصرفدرميکروکنترلر

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

147

آنباکارووقفه•جواب،–

PICمیکروکنترلر: فصل سوم

Processor 16f84#include " p16f84 . inc" ;microchip's inc fileOrg 0x00Goto MainOrg 0x04Goto Isr ;interrupt service rotine

Include"bank.inc" ;bank select macro

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

148

Main bank1 ;select bank1Movlw 0xf0 ;set input/output pinsMovwf TRISBBank0 ; select bank0Movlw 0xff ;leds onMovwf PORTBBsf INTCON,3 ;RBIE=1Bsf INTCON,7 ;GIE=1

Loop goto Loop ;stay in the loop till interrupt

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

149

Isr bcf INTCON,0 ;clear RBIFBtfss PORTB,7 ;determining witch button has pressedGoto led0Btfss PORTB,6Goto led1Btfss PORTB,5Goto led2Btfss PORTB,4Goto led3

Led0 Bcf PORTB,0 ;led0 offRetfie

Led1 Bcf PORTB,1 ;led1 offRetfie

Led2 Bcf PORTB,2 ;led1 offRetfie

Led3 Bcf PORTB,3 ;led1 offRetfie

END

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

150

آنباکارووقفه•مثالايندر.گردداضافهنمايشگربهعدديکدکمهفشردنبارهرباکهبنويسيدبرنامه‌ایوقفهازاستفادهبامثال،–

.(6پايه)استشدهوصلوقفهياINTپايهبهدکمهورودی

PICمیکروکنترلر: فصل سوم

;define constants

02EQU PC03EQU STATUS86EQU BDIR06EQU PORTB0CEQU CNTR0DEQU STORE0BEQU INTCON

;jump to SRARTSTARTGOTO ;interrupt address04ORG ;INTF = 0INTCON,1BCF ; CNTR = CNTR + 1CNTR,1INCF ;return from interrupt subroutineRETFIE

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

151

;clear CNTRCNTRCLRF START;W = 9090MOVLW ;INTCON = WINTCONMOVWF ;select BANK 1STATUS,5BSF

01MOVLW ;portB as output BDIRMOVWF ;select BANK 0STATUS,5BCF ;W = CNTRCNTR,0MOVF LOOP;W = W AND 0F, to mask 4 msb bits0FANDLW ;jump to TABLRTABLECALL ;F = WSTOREMOVWF ;W = left rotate of STORESTORE,0RLF ;portB = WPORTBMOVWF

LOOPGOTO

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

152

PICمیکروکنترلر: فصل سوم

;PC = PC + WPC,1ADDWF TABLE;show 03FRETLW ;show 106RETLW

;show 25BRETLW

;show 34FRETLW ;show 466RETLW ;show 56DRETLW ;show 67DRETLW ;show 707RETLW ;show 87FRETLW ;show 96FRETLW ;show A77RETLW ;show B7CRETLW ;show C39RETLW ;show D5ERETLW ;show E79RETLW ;show F71RETLW

END

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

153

PICمیکروکنترلرهایسخت افزاریاتصالومیکروکنترلربهبرنامهانتقال•

مختلفبرنامه‌نويسيزبان‌هایومتفاوتنرم‌افزارهای–

PICBasicنرم‌افزارنمونه،عنوانبه– PRO

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

154

PICمیکروکنترلرهایسخت افزاریاتصالومیکروکنترلربهبرنامهانتقال•

مختلفبرنامه‌نويسيزبان‌هایومتفاوتنرم‌افزارهای–

PICBasicنرم‌افزارنمونه،عنوانبه– PRO

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

155

PICمیکروکنترلرهایسخت افزاریاتصالومیکروکنترلربهبرنامهانتقال•

مختلفبرنامه‌نويسيزبان‌هایومتفاوتنرم‌افزارهای–

PICBasicنرم‌افزارنمونه،عنوانبه– PRO

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

156

PICمیکروکنترلرهایسخت افزاریاتصالومیکروکنترلربهبرنامهانتقال•

مختلفبرنامه‌نويسيزبان‌هایومتفاوتنرم‌افزارهای–

PICBasicنرم‌افزارنمونه،عنوانبه– PRO

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

157

PICمیکروکنترلرهایسخت افزاریاتصالومیکروکنترلربهبرنامهانتقال•

برنامهانتقالدستگاه–

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

158

PICمیکروکنترلرهایسخت افزاریاتصالومیکروکنترلربهبرنامهانتقال•

برنامهانتقالدستگاه–

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

159

PICمیکروکنترلرهایسخت افزاریاتصالومیکروکنترلربهبرنامهانتقال•

برنامهانتقالدستگاه–

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

160

PICمیکروکنترلرهایسخت افزاریاتصالومیکروکنترلربهبرنامهانتقال•

افزاریسختاتصال–

PICمیکروکنترلر: فصل سوم

فرادرس

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

161

فرادرسفصل سومپايان

FaraDars.org

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

۱مکاترونیک کاربردی

faradars.org/fvmec105

اين اساليد ها بر مبنای نکات مطرح شده در فرادرس

« ۱آموزش مکاترونیک کاربردی »

.تهیه شده است

برای کسب اطالعات بیشتر در مورد اين آموزش به لینک زير مراجعه نمايیدfaradars.org/fvmec105

۱مکاترونیک کاربردی

faradars.org/fvmec105

فرادرس

FaraDars.org