آموزش مکاترونیک کاربردی ۱ - بخش سوم
TRANSCRIPT
۱مکاترونیک کاربردی
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