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

Preview:

Citation preview

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

faradars.org/fvmec105

:مدرس

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

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

1

فرادرس

FaraDars.org

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

faradars.org/fvmec105

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

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

2

فرادرس

FaraDars.org

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

faradars.org/fvmec105

3

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

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

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

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

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

4

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

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

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

5

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

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

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

0000Nibble

00000000Byte

0000000000000000Word

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

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

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

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

6

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

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

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

7

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

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

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

FaraDars.org

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

faradars.org/fvmec105

8

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

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

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

FaraDars.org

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

faradars.org/fvmec105

9

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

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

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

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

دارند(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استشده

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

KI

VR CC 10

)1050(

53

/

فرادرس

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حافظه–

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

فرادرس

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حافظه–

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

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

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

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

18

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

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

PROMحافظه–

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

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

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

19

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

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

EPROMحافظه–

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

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

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

20

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

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

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

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

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

21

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

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

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

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

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

22

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

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

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

.2ALU

.3Program Counter

.4Instruction Decoder

فرادرس

FaraDars.org

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

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

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

faradars.org/fvmec105

24

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

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

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

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

25

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

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

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

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

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

26

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

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

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

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

27

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

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

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

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

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

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

28

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

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

FaraDars.org

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

faradars.org/fvmec105

29

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

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

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

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

فرادرس

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میکروکنترلر: فصل سوم

اجراحالدربرنامهيکازمثالی•استآدرسباسبيت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

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

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

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

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

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

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

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

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

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

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

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

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)دادهحافظهدرشدهذخيرهداده‌های–زمانهرردنيزدادهتغييرامکانطرفيازوشودحفظنيزبرققطعبارمزاستالزمکهرمزدارقفلمانندکاربردهاييدر–

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

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

43

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

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

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

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

فرادرس

FaraDars.org

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

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

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

faradars.org/fvmec105

45

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

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

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

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

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

.شدخواهد

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

فرادرس

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کيلوهرتز200تا32محدودهباپايينتوانکريستال

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

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

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

OSC1

XTAL

L

C1

C2 OSC2

فرادرس

FaraDars.org

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

faradars.org/fvmec105

48

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

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

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

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

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

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

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

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

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

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

49

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

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

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

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

FaraDars.org

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

faradars.org/fvmec105

50

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

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

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

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

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

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

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

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

باشدمي

فرادرس

FaraDars.org

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

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

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

faradars.org/fvmec105

52

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

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

PIC16F84درتايمر–

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

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

داردنام

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

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

53

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

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

Statusثبات–

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

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

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

54

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

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

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

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

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

1→رقم نقلی

0110011110001011+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،𝑏𝑜𝑟𝑟𝑜𝑤):اينمقدار(باشدداشتهوجودنقليرقم5بيتبه4بيتاز)شودظاهرميانينقليرقمتفريقوجمععملطولدراگر–

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

1→رقم نقلی

0101010111010000+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):بايدهميشهونمي‌گيردقراراستفادهمورد16F84درششمبيت.کردسوئيچيکوصفربانکدوبينمي‌توان5بيتبا–

.باشدصفر

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

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

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

فرادرس

FaraDars.org

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

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

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

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

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

faradars.org/fvmec105

61

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

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

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

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

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

فرادرس

FaraDars.org

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

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

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

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

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

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

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

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

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

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

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

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میکروکنترلرخروجیوورودیدرگاه های•

است(بيت/پايه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

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

faradars.org/fvmec105

71

PIC16F84درپشته•

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

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

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

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

–PIC16F84مي‌باشدپشتهبرایبيتي13جايگاه8دارایمي‌توان(ديگرروالزيرداخلدرروالزيرزدنصدا)تودرتوزيرروالبرنامه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دربرنامهشمارنده•

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

FaraDars.org

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

faradars.org/fvmec105

75

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

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

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

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

مثال–– MOVLW 0x12

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

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

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

فرادرس

FaraDars.org

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

faradars.org/fvmec105

84

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

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

:DECFدستور–

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

– DECF F,d

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

فرادرس

FaraDars.org

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

faradars.org/fvmec105

93

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

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

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

– RLF F, d

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

– CALL Label

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

فرادرس

FaraDars.org

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

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

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

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

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

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

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

faradars.org/fvmec105

97

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

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

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

برمي‌گردد

– RETFIE

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

– NOP

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

– SLEEP

فرادرس

FaraDars.org

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

faradars.org/fvmec105

98

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

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

– MOVLW 0X0E

– MOVLW h'0E'

– MOVLW b'00001110'

– MOVLW d'14'

– MOVLW 14

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

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

99

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

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

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

FaraDars.org

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

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

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

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

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

faradars.org/fvmec105

102

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

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

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

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

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

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

103

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

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

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

.داده

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

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

فرادرس

FaraDars.org

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

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

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

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

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

faradars.org/fvmec105

106

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

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

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

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

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

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

107

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

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

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

فرادرس

FaraDars.org

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

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

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

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

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

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

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

faradars.org/fvmec105

111

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

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

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

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

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

فرادرس

FaraDars.org

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

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

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

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

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

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

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

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

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

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

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

faradars.org/fvmec105

117

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

اسمبلینويسیبرنامه•کاربردیمثالچند–.کندضربهمدررا80و24عدددوکهبنويسيدبرنامه‌ای.6مي‌گرفتجای(بايتيک)رجيسترخانهيکدرواست255ازکمترکهبود210مقدار35×6حاصلضربقبليبرنامهدربرچسبثباتبهواحديک،(رجيسترازسرريزدهندهنشان)باشد1اگرتامي‌شودکنترلنقليپرچمجمععملهرازبعدشودافزودهmsbنامباشدهزده

باشدآمادهحلقهبعدیتکراربرایتاشدهپاکنقليپرچمسپس

فرادرس

FaraDars.org

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

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

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

faradars.org/fvmec105

119

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

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

.کندضربهمدررا0x3fو0x2fآدرسهایدرثباتدومحتوایکهبنويسيدبرنامه‌ای.7

;n*m demo16f84processor

0x2f0x3f0x0e0x03

equequequequ

num_nnum_mmaincarry

فرادرس

FaraDars.org

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

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

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

faradars.org/fvmec105

121

اسمبلینويسیبرنامه•کاربردیمثالچند–.کندتقسيم14بررا90عددکهبنويسيدبرنامه‌ای.8

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

.گرفتخواهندقرار0Dhآدرسدرقسمتخارجو0Chآدرسدرباقيماندهبرنامهايندر

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

فرادرس

FaraDars.org

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

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

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

faradars.org/fvmec105

123

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

استسازنوسانپريودبرابرچهار16F84ميکروکنترلردرکاریسيکليک–

:نمودضربکاریسيکليکزماندربايدرابرنامهکلکاریسيکل،تاخيرمحاسبهبرای–

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

𝑇𝑖𝑚𝑒 𝐷𝑒𝑙𝑎𝑦 = 𝑁𝑂 𝑜𝑓 𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑡𝑖𝑜𝑛 𝑐𝑦𝑐𝑙𝑒𝑠 ×4

𝑓

فرادرس

FaraDars.org

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

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

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

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

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

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

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

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

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

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

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

faradars.org/fvmec105

129

اسمبلینويسیبرنامه•(تودرتوهایحلقهازاستفاده)ترطوالنيتاخيرهایحلقه–برنامهکلکاریسيکلمحاسبه–

:استزيربصورتبرنامهداخليحلقه–

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

; mc = 1.2Cnt2decfszlin

; mc = 2lingoto

𝑁𝑂 𝑜𝑓 𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑡𝑖𝑜𝑛 𝑐𝑦𝑐𝑙𝑒𝑠(𝑖𝑛) = 𝑁 − 1 × 1 + 2 + 𝑁 − 1 × 2 = 3𝑁 − 1

فرادرس

FaraDars.org

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

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

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

faradars.org/fvmec105

131

اسمبلینويسیبرنامه•(تودرتوهایحلقهازاستفاده)ترطوالنيتاخيرهایحلقه–برنامهکلکاریسيکلمحاسبه–:بااستبرابرسيستمکلکاریسيکلنهايتدر–

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

𝑁𝑂 𝑜𝑓 𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑡𝑖𝑜𝑛 𝑐𝑦𝑐𝑙𝑒𝑠 𝑡𝑜𝑡𝑎𝑙 = 2 + 1 + 1 + 3𝑀𝑁 + 4𝑀 + 1 + 2 = 3𝑀𝑁 + 4𝑀 + 7

فرادرس

FaraDars.org

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

faradars.org/fvmec105

132

هازيرروالوماکروها•شوندميتکرارایبرنامههردرکهدارندوجودهادستورالعملازرشته‌ای–شوندميحافظهاززيادیفضایذخيرهباعثوبرندميبينازرادستوراتپيدرپيتکرارماکروهاوهازيرروال–ماکروها–

کندميذخيرهincپسوندبافايليکدروشودمينوشتهنويسبرنامهتوسطکهاستدستوراتازایمجموعهماکرويک–شودميصداماکرونامباشدنيازکهبرنامهازقسمتهردر–

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

Macro - name Macro par1, par2..

Set of instructions

Set of instructions

Endm

فرادرس

FaraDars.org

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

faradars.org/fvmec105

133

هازيرروالوماکروها•ماکروها–

کردتعريفراآنزدن،صداازقبلبايدشود،استفادهماکروازایبرنامهدراگر–:داردعهدهبرراصفربانککردنفعالوظيفهbank0نامبازيرماکرویمثالعنوانبه–

دراستشدهنصبMPLABافزارنرمکهمحليدرbankناموincپسوندبامتنيفايليکدربايدراماکروهااين–-MCHIPبنامپوشه‌ای TOOLSکردذخيره

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

Bank0 macro ; Macro bank0Bcf STATUS.5 ; Reset RPObitendm ; End of macro

فرادرس

FaraDars.org

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

faradars.org/fvmec105

134

هازيرروالوماکروها•ماکروها–

شدهنوشتهقبلازکهp16f84نامباincفايلهایازيکيازنباشدبرنامهابتداییعبارت‌هانوشتنبهنيازیاينکهبرای–.کرداستفادهمي‌تواناست

#دستورازبايدبرنامهدراضافيدستوراتنوشتنازاجتنابوفايلاينازاستفادهبرای– include "p16f84"ازبعدکرداستفادهprocessorدستور

هنگاماست،شدهنوشتهبزرگحروفباSTATUSچونهاييعبارتفايلايندرچونکهداشتبخاطربايدهمچنين–.نموداستفادهبزرگحروفازبايدنيزبرنامه،متندرآنهاازاستفاده

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

مي‌کننداشغال

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

135

هازيرروالوماکروها•ماکروها–

Bپورتصفرپايه‌یبهمتصلLEDدرراAپورتصفرپايهبهمتصلکليدوضعيتآندرکهبنويسيدبرنامه‌ایمثال،–

.(شودخاموشآنباوروشنLEDکليداتصالبا)دهدنشان

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

136

هازيرروالوماکروها•ماکروها–

microe184.incنامتحتفايليکدرIfnotbitوIfbitماکرویدوابتدااستالزمبرنامهنوشتنبرایجواب،–

شودميذخيرهMCHIP_ToolsپوشهدروشودتايپديگرمتنيويرايشگرهرياNotepadدر

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

par1,par2,par3MacroIfbitPar1,par2BtfscPar3Goto

Endm

par1,par2,par3MacroIfnotbitPar1,par2BtfssPar3Goto

Endm

فرادرس

FaraDars.org

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

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

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

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

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

faradars.org/fvmec105

139

هازيرروالوماکروها•زيرروال‌ها–

retlwياوreturnدستوراتازيکيباومي‌شوندشروعبرچسبيکباکههستنددستوراتازایمجموعههازيرروال–

مي‌يابندپايان

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

– Lable

– Set of instructions

– Return or retlw

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

.کرداستفاده

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

140

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

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

شودميگرفتهسرازبودشدهترککهجاييازاصليبرنامه‌یاجرایوقفهزيرروالاجرایازبعد–:مي‌افتداتفاقزيرعللبهPIC16F84دروقفه–(داخليوقفه)EEPROMدردادهنوشتناتمام1.(داخليوقفه)TMROتايمرشدنريزسر2.

,RB6هایپايهدرتغيير3. RB5, RB4وRB7پورتازB(ميکروکنترلر13تا10هایپايه)

(RB0/INT)ميکروکنترلر6شمارهپايهدرولتاژسطحتغييرطريقازخارجيوقفه4.

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

141

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

وقفهوقوع

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

.کرداستفادهنوعاينازهاييوقفهسايرتشخيصداردناماصليفعال‌سازیبيتوکندميفعالغيريافعالهمباراهاوقفهتمامکهداردوجودGIEنامبامهمبيت–.کرديکدوبارهراGIEبايدشودفعالبعدیهایوقفهاينکهبرایوشودميصفرGIEبيتوقفههرشدنفعالبا–برنامهحافظهاز0x04آدرسدرorgدستوربوسيلهحتماًبايدشود،فعالوقفهوقوعهنگامدروقفهزيرروالآنکهبرای–

شودزدهصدا

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

142

آنباکارووقفه•کندتغييررجيسترهاسايرياوW،STATUSهمچونثبات‌هاازبعضيمحتوایاستممکنوقفهاجرایحيندر–گرددزيابيباوقفهزيرروالانتهایودرشودذخيرهجاييدروقفهزيروالابتدایدربايدثباتهااينمحتوایدليلهمينبه–

داردنامPOPوPUSHکاردواين–

خودازstatusثباتذخيرهدرچون،مي‌شودذخيرهstatusسپسوشدهذخيرهwثباتابتدافوق،مراحلانجامبرای–مي‌شوداستفادهنيزwثبات

wخودازبازيابيعملدربازچون.مي‌شودبازيابيwثباتنهايتاوشدهبازيابيثبات‌هاسايرابتدا،بازيابيعملهنگام–

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

کهاستدستوریتنهاکهچراشود،استفادهRETFIEدستورازوقفه،ارائهروالزيرازبرگشتبرایکهشودميتوصيه–يابندبرقراریاجاره‌ینيزبعدیهایوقفهوشودستGIEدوبارهشودميباعث

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

143

آنباکارووقفه•درراRB7پايهبهمتصلLEDوقفه،فعال‌سازیازطريق،RB0پايهبهشدهاعمالپالسباکهبنويسيدایبرنامهمثال،–

.کندروشنزنچشمکحالت

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

فرادرس

FaraDars.org

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

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

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

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

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

faradars.org/fvmec105

146

آنباکارووقفه•وکندفعالراوقفهزيرروالمدار،درRB7تاRB4هایپايهبهمتصلکليدهاازيکهرفشارباکهبنويسيدبرنامه‌ای–

ازنوعاين.کندمشخص(RB3تاRB0هایپايه)نظيرLEDکردنخاموشبارااستشدهوقفهموجبکهراپايه‌ایقفه،وآمدنزمانتا.استمهميامرمصرفيانرژیومي‌کنندکارباطریباکهمي‌شوداستفادهسيستم‌هاييدروقفه

.مي‌شوددادهقرارSLEEPدستوربا(خوابمد)پايينتوانمصرفدرميکروکنترلر

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

فرادرس

FaraDars.org

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

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

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

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

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

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

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

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

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

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

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

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

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

faradars.org/fvmec105

153

PICمیکروکنترلرهایسخت افزاریاتصالومیکروکنترلربهبرنامهانتقال•

مختلفبرنامه‌نويسيزبان‌هایومتفاوتنرم‌افزارهای–

PICBasicنرم‌افزارنمونه،عنوانبه– PRO

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

154

PICمیکروکنترلرهایسخت افزاریاتصالومیکروکنترلربهبرنامهانتقال•

مختلفبرنامه‌نويسيزبان‌هایومتفاوتنرم‌افزارهای–

PICBasicنرم‌افزارنمونه،عنوانبه– PRO

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

155

PICمیکروکنترلرهایسخت افزاریاتصالومیکروکنترلربهبرنامهانتقال•

مختلفبرنامه‌نويسيزبان‌هایومتفاوتنرم‌افزارهای–

PICBasicنرم‌افزارنمونه،عنوانبه– PRO

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

156

PICمیکروکنترلرهایسخت افزاریاتصالومیکروکنترلربهبرنامهانتقال•

مختلفبرنامه‌نويسيزبان‌هایومتفاوتنرم‌افزارهای–

PICBasicنرم‌افزارنمونه،عنوانبه– PRO

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

157

PICمیکروکنترلرهایسخت افزاریاتصالومیکروکنترلربهبرنامهانتقال•

برنامهانتقالدستگاه–

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

158

PICمیکروکنترلرهایسخت افزاریاتصالومیکروکنترلربهبرنامهانتقال•

برنامهانتقالدستگاه–

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

159

PICمیکروکنترلرهایسخت افزاریاتصالومیکروکنترلربهبرنامهانتقال•

برنامهانتقالدستگاه–

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

160

PICمیکروکنترلرهایسخت افزاریاتصالومیکروکنترلربهبرنامهانتقال•

افزاریسختاتصال–

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

فرادرس

FaraDars.org

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

faradars.org/fvmec105

161

فرادرسفصل سومپايان

FaraDars.org

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

faradars.org/fvmec105

اين اساليد ها بر مبنای نکات مطرح شده در فرادرس

« ۱آموزش مکاترونیک کاربردی »

.تهیه شده است

برای کسب اطالعات بیشتر در مورد اين آموزش به لینک زير مراجعه نمايیدfaradars.org/fvmec105

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

faradars.org/fvmec105

فرادرس

FaraDars.org