MCS-51 Development

برنامه ریزی و پروژه های صنعتی با میکرو کنترلرهای خانواده 8051

MCS-51 Development

برنامه ریزی و پروژه های صنعتی با میکرو کنترلرهای خانواده 8051

دیدگاهی نو درباره وقفه ها

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

دو نوع وقفه داریم: وقفه لازم الاجرا و وقفه قابل اغماض ( NMI ) 

به علاوه بر حسب منبع وقفه چهار نوع وقفه داریم: 

- سخت افزاری خارجی : مثل زدن دکمه ریست یا هر دگمه دیگر

- سخت افزاری داخلی : مثل خارج شدن از محدوده حافظه مانند تقسیم بر صفر

- نرم افزاری خارجی : مثل آنکه توسط برنامه نویس اعمال می شود.

- نرم افزاری داخلی: که توسط برنامه داخلی اعمال می شود. 

 به هر حال با اعلام یک وقفه، میکرو به آن پاسخ می دهد و سپس آن کار خواسته شده را انجام می دهد. به کاری که انجام می دهد "بردار وقفه" می گویند. 

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

 

مثال 2: برنامه کاهش توان

چون در مرحله اول برخی ادوات کیت روشن هستند، باعث افزایش مصرف و کاهش فن آوت می شوند. برنامه زیر ال ای دی های روی موتور، ل 7 ق و رله را خاموش می کند:

ORG 0BEH

CLR P3.5 ; OFF RELAY

MOV A,#0FFH;OFF 7SEG

MOV P0,A

MOV A, #0B

MOV P2,A ; OFF LEDS

 SETB TR0

 T0C:   JNB     TR0, T0C

 T0D:   JB      TR0, T0D

 END

قدم اول

در زیر به شرح یک برنامه خیلی پیش و پا افتاده می پدازیم که برای تست مراحل برنامه سازی مهم است:

 

NAME    ARTHUR

 ORG 0A0H

 MOV A,#0C1H

 MOV P0,A

 SETB TR0

 T0C:   JNB     TR0, T0C

 T0D:   JB      TR0, T0D

 END

 

در خط اول نام برنامه آرتور عنوان شده.

در خط دوم قید شده که برنامه از چه محلی در حافظه نوشته شود.

در خط سوم و چهارم، یک مقدار خاص به واسطه انباره روی پورت اول ظاهر می شود.

در 3 خط بعدی سعی شده که برنامه ایست کند. ( اگر این سه خط نباشند، 7 Segment یک چشمک خیلی خیلی سریع در حد نامرئی خواهد داشت)

خط آخر : آخر خط!

اگر مراحل برنامه ریزی را به طرز صحیحی طی کرده باشید، روی لامپ 7 قسمتی مقدار V را به نشانه Victory و پیروزی خواهید دید!

اشکال زدایی برنامه ریزی

یک مساله مهم برنامه WLPRO است. متاسفانه ( شرکت نو آوران الکترونیک) این نرم افزار را در سی دی خود نگذاشته و نرم افزار مشابهی دارد که روی Windows7 کار نمی کند. ( روی گزینه Compatibility حساب باز نکنید!). ممکن است نرم افزار پس از نصب روی گزینه Demo Mode برود که یعنی کیت را نشناخته. مهم ترین علت آن خرابی کابل پرینتر ( USB) است. ( من یک پرینتر اچ پی گرفتم که کابل پرینتر نداشت چون کران قیمت است و خود کارخانه ژاپن هم آن را نمی گذارد). پس یک کابل پرینتر فویل دار تهیه کنید.

ممکن است که نرم افزار بتواند EEPROM کیت را بخواند اما با زدن دکمه پروگرام، خطا بدهد. در این صورت میکروی شما خراب است. یک میکروی دیگری باید از مغازه خرید!

اشکال زدایی برنامه ریزی

یک مساله مهم برنامه WLPRO است. متاسفانه ( شرکت نو آوران الکترونیک) این نرم افزار را در سی دی خود نگذاشته و نرم افزار مشابهی دارد که روی Windows7 کار نمی کند. ( روی گزینه Compatibility حساب باز نکنید!). ممکن است نرم افزار پس از نصب روی گزینه Demo Mode برود که یعنی کیت را نشناخته. مهم ترین علت آن خرابی کابل پرینتر ( USB) است. ( من یک پرینتر اچ پی گرفتم که کابل پرینتر نداشت چون کران قیمت است و خود کارخانه ژاپن هم آن را نمی گذارد). پس یک کابل پرینتر فویل دار تهیه کنید.

ممکن است که نرم افزار بتواند EEPROM کیت را بخواند اما با زدن دکمه پروگرام، خطا بدهد. در این صورت میکروی شما خراب است. یک میکروی دیگری باید از مغازه خرید!