مرکز دانلود خلاصه کتاب و جزوات دانشگاهی

مرکز دانلود تحقیق رايگان دانش آموزان و فروش آنلاين انواع مقالات، پروژه های دانشجويی،جزوات دانشگاهی، خلاصه کتاب، كارورزی و کارآموزی، طرح لایه باز کارت ویزیت، تراکت مشاغل و...(توجه: اگر شما نویسنده یا پدیدآورنده اثر هستید در صورت عدم رضایت از نمایش اثر خود به منظور حذف اثر از سایت به پشتیبانی پیام دهید)

نمونه سوالات کارشناسی ارشد دانشگاه پیام نور (سوالات تخصصی)

نمونه سوالات کارشناسی دانشگاه پیام نور (سوالات تخصصی)

نمونه سوالات دانشگاه پيام نور (سوالات عمومی)

کارآموزی و کارورزی

مقالات رشته حسابداری و اقتصاد

مقالات علوم اجتماعی و جامعه شناسی

مقالات روانشناسی و علوم تربیتی

مقالات فقهی و حقوق

مقالات تاریخ- جغرافی

مقالات دینی و مذهبی

مقالات علوم سیاسی

مقالات مدیریت و سازمان

مقالات پزشکی - مامایی- میکروبیولوژی

مقالات صنعت- معماری- کشاورزی-برق

مقالات ریاضی- فیزیک- شیمی

مقالات کامپیوتر و شبکه

مقالات ادبیات- هنر - گرافیک

اقدام پژوهی و گزارش تخصصی معلمان

پاورپوئینت و بروشورر آماده

طرح توجیهی کارآفرینی

آمار سایت

آمار بازدید

  • بازدید امروز : 1280
  • بازدید دیروز : 2385
  • بازدید کل : 13086418

مقاله 5- طراحی تقويم ساعت و آلارم ديجيتال


مقاله 5- طراحی تقويم ساعت و آلارم ديجيتال

فهرست مطالب

عنوان صفحه

مقدمه. 1

 

فصل اول: ميكروكنترلر چيست؟

1. 1 نگاهي به تاريخچه ميكروكنترلرها3

1. 2 بررسي ساختار كلي ميكروكنترلرها5

1. 3 ميكروپروسسورها و ميكروكنترلرها7

ساخت سخت افزار. 7

مجموعه دستورالعملها8

1. 4 كاربرد ميكروكنترلها در صنعت... 8

1. 5 كاربرد ميكروكنترلها در خودرو سازي.. 9

سيستم كنترل دماي خودرو. 9

1. 6 كاربرد ميكروكنترلرها در ادوات جانبي كامپيوتر. 10

1. 7 كاربرد ميكروكنترلرها در كنترل موتورهاي الكتريكي.. 10

1. 8 يك ميكروكنترلر چيست ؟. 10

1. 9 چرا از ميكروكنترلر استفاده مي شود ؟. 11

1 .10 مختصري راجع به AVR.. 12

1. 11 طراحي براي زبان هاي BASIC و C.. 13

 

فصل دوم: محيط برنامه نويسي Codevision AVR

مقدمه. 17

2. 1 انواع كامپايلرها17

كامپايلرهاي C.. 17

2. 2 آشنايي با نرم‌افزار CodevisionAVR.. 18

طريقه‌ي فعال‌سازي نرم‌افزار CodevisionAVR.. 19

معرفي منوهاي محيط Codevision. 20

معرفي پنجره‌ي Configure Project26

الف

روش ايجاد پروژه. 30

فصل سوم: دستورات و توابع محيط برنامه نويسي Codevision AVR

3. 1 انواع داده‌ها33

ثابت‌ها34

متغيرها34

متغيرهاي بيتي.. 35

عملگرها35

ساختارها36

عناصر ساختمان.. 36

ارزش‌دهي اوليه به ساختمان.. 36

دسترسي به عناصر ساختمان.. 36

شمارش‌ها37

اشاره‌گرها37

اعمال روي اشاره‌گرها37

رهنمودهاي پيش پردازنده. 38

استفاده از وقفه‌ها38

رجيسترهاي I/O... 39

متغيرهاي سراسري.. 39

توابع كتابخانه‌اي.. 39

 

فصل چهارم: سخت افزار پروژه

توضيح پايه‌هاي Atmega16.. 42

حداقل مدار لازم براي راه‌اندازي ميكروكنترلر. 44

پورت‌هاي I/O... 45

تنظيم پايه‌ها به صورت ورودي/ خروجي.. 46

انجام تنظيمات اوليه‌ي پورت‌ها در CodeWizard.. 47

بخش تغذيه مدار. 48

صفحه كليد ماتريسي.. 48

ب

انجام تنظيمات اوليه‌ي برنامه. 50

تراشه PCF 8583.. 50

توضيح كلي.. 50

انجام تنظيمات اوليه تراشه PCF 8583 در CodeWizard.. 51

تقويم و ساعت... 52

ارتباط سريال دو سيمه (TW1 يا I2C ). 53

ارسال داده و فرمت فريم‌ها55

حالت‌هاي شروع(START) و توقف (STOP). 55

نحوه‌ي اتصال LCD به ميكروكنترلر. 56

تنظيمات اوليه‌ي LCD در CodeWizard.. 59

نوشتن عبارات بر روي LCD... 59

نمايش عبارات شامل حروف و اعداد انگليسي.. 60

 

فصل پنجم: نرم افزار پروژه

بخش نرم‌افزار. 64

انجام تنظيمات اوليه برنامه در CodeWizard.. 65

روشي براي محاسبه‌ي روز هفته. 80

تئوري محاسبه‌ي روز هفته. 81

توضيح برنامه‌. 81

تبديل تاريخ ميلادي و شمسي به يكديگر. 84

تنظيم تاريخ و زمان.. 87

كيبرد و اينتراپت مربوطه. 95

ج

مقدمه

بدون شك پيشرفت فناوري در حال حاضر مرهون پيشرفت در طراحي و ساخت مدار هاي مجتمع است. به قولي نبض فناوري دنيا در فناوري ساخت مدار هاي مجتمع مي‌باشد.

ساخت مدارهاي مجتمع در مقياس وسيع و مجتمع كردن همه امكانات همچون پردازنده، آنالوگ به ديجيتال و فرستنده گيرنده هاي راديويي سرعت چشمگيري داشته است.

به جرات مي‌توان گفت كه هم اكنون هيچ صنعتي نيست كه از فناوري مدارهاي مجتمع بي بهره باشد. كاربرد پردازنده‌ها از پردازشگر ماشين حساب هاي معمولي گرفته تا پردازنده‌هاي پيچيده سيستم‌هاي كنترلي يك شاتل مي‌تواند متغير باشد.

در اين بين ميكرو كنترلرها، به جهت مجتمع بودن تمام امكانات يك سيستم پردازنده در يك چيپ اهميت بسياري مخصوصا در صنايع كنترلي پيدا كرده‌اند كه اين امر اهميت استفاده از ميكرو كنترلر هاي جديد را در پروژه ها روشن مي‌سازد.

در اين پروژه يكي از ميكرو كنترلر‌هاي جديد شركت ATMEL يعني MEGA32 كه از سري ميكرو كنترلر‌هاي AVR مي‌باشد استفاده شده است.

در ابتدا قابليت‌هاي اين چيپ و امكانات جديد آن توضيح داده شده است اين پروژه در جهت كنترل زمان روشنايي چراغ هاي معابرانجام شده است لذا در ادامه قسمت هاي سخت افزاري مدار مربوطه و نرم افزار آن بررسي شده است.

اميد است قدمي هر چند كوچك در جهت ارتقاي سطح علمي دانشجويان بر‌داشته شده باشد.

 

 

 

 

 


1. 1 نگاهي به تاريخچه ميكروكنترلرها

دهه هاي 80 و90 را مي توان به جرات دهه هاي توسعه و پيشرفت ميكروپروسسورها ناميد. درقلمرو تجارت، توجه همه شركتهاي دست اندركار معطوف به دستيابي به سرعتهاي بالاتر گرديد به گونه‌اي كه امروزه ديگر سرعت1000MHz براي ميكروپروسسور عجيب به نظر نمي‌رسد.

در حيطه صنعت نيز علاوه بر تلاش براي دستيابي به سرعتهاي بالاتر و پهناي باس بيشتر براي ميكروپروسسورها و ميكروكنترلرها تلاش زيادي نيز درجهت مجتمع كردن ادوات جانبي لازم در صنعت در درون ميكروكنترلها صورت گرفت.

در ابتدا مروري بر تاريخچه به وجود آمدن و توسعه ميكروكنترلرها خواهد شد.

در سال 1971 ميلادي شركت Intel اولين نمونه كاملا موفق از پردازش گرهاي خود را با نام 8080 به بازار عرضه كرد اين تراشه به سرعت جايگاه مناسبي در دانشگاهها و مراكز تحقيقات الكترونيكي بدست آورد.

اين تراشه ها با قرار گرفتن در قلب سيستمهاي ميكروپروسسوري و همراهي ادوات جانبي با آنها به راحتي جايگزين سيستمهاي الكترومكانيكي آن زمان شدند و اين موفقيت راه را براي حضور گسترده اين تراشه‌هادر صنعت هموار كرد.

ورود اين تراشه ها به صنعت مهندسان را با يك مشكل مواجه كرد. از آنجا كه اين تراشه ها بطور خاص براي قرار گرفتن در سيستمهاي رايانه‌اي طراحي شده بودند، تمام توجه سازندگان آنها بر به دست آوردن سرعتهاي بالا در انجام محاسبات سنگين معطوف شده بود و به همين جهت ادوات جانبي لازم در كنترل فرايندهاي صنعتي (نظير پورتهاي مناسب، مبدلهاي آنالوگ به ديجيتال و برعكس، مدارهاي داخلي كافي براي سرويس دهي به وقفه ها و ...) در آنها كمتر لحاظ شده بود. علاوه بر اين اغلب محاسباتي كه در آن زمان در فرايندهاي صنعتي انجام گرفت محاسبات چندان سنگيني نبود و بسياري از دستورالعملهايي كه براي انجام محاسبات سنگين در اين تراشه ها لحاظ شده بود عملا در صنعت چندان كاربردي نداشت.

به اين ترتيب توجه توليد كنندگان پردازشگرها متوجه پردازشگري شد كه در عين دارا بودن توان محاسباتي لازم در سيستمهاي كنترل صنعتي، از ادوات جانبي كافي براي عمليات كنترلي نيز برخوردار باشد.

با اين نگرش شركت Intel اولين ميكروكنترلر خود را در سال 1976 و با نام 8748 ( از خانواده MCS-48 ) با يك پردازشگر مركزي، حافظه EPROM به حجم يك كيلو بايت، حافظه RAM به حجم 64 بايت، 27 پايه ورودي/خروجي و يك تايمر 8 بيتي، كه همگي در يك تراشه قرار داشتند، به بازار عرضه كرد كه بعلت آمادگي بازار براي پذيرش اين محصول، به سرعت وارد كاربردهاي صنعتي شد.

4 سال بعد شركت Intel يكي از موفق ترين ميكروكنترلرهاي توليد شده تا كنون را با نام 8051 (از خانواده MCS-48 ) به بازار عرضه كرد و در اين ميكروكنترلر حافظه ROM به حجم 4 كيلو بايت، حافظه RAM به حجم 128 بايت، 32 پايه ورودي/ خروجي، يك پورت سريال و 2 تايمر 16 بيتي لحاظ شده بود.

موفقيت اين ميكروكنترلر به حدي بود كه عليرغم گذشت بيش از 20 سال از توليد آن هنوز هم اولين گزينه براي مهندسان كنترل در مواجه با كنترل سيستمهاي صنعتي محسوب مي شود.

اما پيشرفتهاي تكنولوژي در سالهاي بعد نشان داد كه حجم ميكروكنترلر 8051 هم با برخي كاربردهاي كنترلي كمبودهايي دارد.

1. 2 بررسي ساختار كلي ميكروكنترلرها

در قلب هر ميكروكنترلر يك پردازشگر مركزي قرار دارد كه تمام فعاليتهاي ميكروكنترلر را مديريت كرده و تمام عمليات لازم بر روي داده‌ها را انجام مي دهد. اين عميلات در واقع همان برنامه‌اي است كه برنامه نويس نوشته است و به صورت كدهاي باينري در حافظه ROM ذخيره شده است. بنابراين برنامه نويس برنامه موردنظر خود را نوشته و آن را به صورت كدهاي باينري در حافظه ROM ذخيره مي كند.

CPU با خواندن اين كدها منظور برنامه نويس را فهميده و آن را اجرا مي كند حال بايد بررسي كرد كه CPU چگونه كار مي كند.

همانطور كه ديده مي شود يك CPU از قسمتهاي زير تشكيل شده است :

  • Regesters : كه وظيفه نگهداري موقت اطلاعات در حين اجراي يك دستورالعمل را برعهده دارد.
  • ALU : واحد انجام عمليات محاسباتي و منطقي
  • Instruction Decode and Control : تشخيص مي‌دهدكه كد خوانده شده مربوط به كدام دستورالعمل است و سيگنالهاي لازم براي اجراي آنها را صادر مي كند.
  • Program Counter (PC) : آدرس دستورالعمل بعدي راكه بايد اجرا شود نگه مي دارد.

نحوه عمل CPU را مي توان به اين صورت شرح داد :

به محض آن كه تغذيه CPU وصل شود، يك مقدار خاص ( كه از قبل توسط كارخانه سازنده داده شده است) در رجيستر PC قرار مي گيرد. اين آدرس در واقع آدرس شروع برنامه است و برنامه‌نويس برنامه خود را از اين آدرس به بعد در حافظه ذخيره مي كند.

مثلا اين مقدار اوليه در ميكروكنترلر 80196، H 2080 است، به اين ترتيب دستورالعمل قرار گرفته در آدرسي كه در PC به آن اشاره مي‌كند در رجيستر IR قرار مي گيرد.

واحد Instruction Decode and Control منظور دستورالعمل خوانده شده را مي فهمد و با ارسال سيگنالهايي ساير داده هاي لازم براي اين عمليات را خوانده و در رجيستر ذخيره مي كند و سرانجام ALU عمليات مشخص شده را بر روي داده ها انجام مي دهد سپس مقدار PC تغيير كرده و آدرس دستورالعمل بعدي كه بايد اجرا شود در آن قرار مي گيرد.

تا زماني كه تغذيه CPU (يعني تغذيه ميكروكنترلر) برقرار باشد اين عمليات خواندن و اجراي دستورالعمل ادامه مي يابد اين موضوع مي تواند اجراي برنامه را دچار اشكال كند. فرض كنيد برنامه نوشته شده برنامه نويس از آدرس 2080H تا 20F0H را اشغال كرده باشد.

ميكروكنترلر اجراي برنامه را آغاز مي كند و تا آدرس 20F0H پيش مي رود در اينجا بايد به نحوي به ميكروكنترلر فرمان داد كه متن برنامه تمام شده است، در غير اينصورت فرايندهاي خواندن و اجراي دستورالعملها را ادامه مي دهد و فضاي خالي حافظه را نيز بعنوان متن برنامه اجرا مي‌كند، به اين ترتيب نتايج برنامه اجرا شده خراب مي شود. يك روش حل اين مشكل قرار دادن يك حلقه پوچ ( حلقه هرز گرد) در انتهاي متن برنامه اصلي است. اين حلقه پوچ هيچ دستورالعملي در خود ندارد و تنها ميكروكنترلر را سرگرم مي كند تا به سراغ بقيه حافظه برود.

روش ديگر حل مشكل قرار دادن برنامه در يك حلقه است، به اين صورت كه پس از آخرين دستورالعمل برنامه يك دستورالعمل اضافي قرار گيرد كه حاصل اجراي آن پرش به ابتداي برنامه(مانند دستور JMP) باشد.

روش ديگري كه در ميكروكنترلر 80196 براي حل اين مسئله ارائه شده فرستادن ميكروكنترلر به حالتهاي Idle يا Power Down است.

نكته قابل ذكر ديگر اينكه اگرچه در بررسي هاي فوق مبنا بر اين قرار داشت كه برنامه در درون حافظه ميكروكنترلر قرار دارد اما مي توان برنامه را در حافظه اي در خارج از ميكروكنترلر نيز قرار داد. روند اجراي دستورالعملها در هردو حالت يكسان است و فقط سرعت اجرا در حالتي كه برنامه در حافظه داخلي ميكروكنترلر است بيشتر مي باشد.

براي ذخيره برنامه ذخيره شده درحافظه خارجي (كه معمولا يك تراشهEPROM ) است از دستگاه EPROMPROGRAMER و براي ذخيره آن در حافظه داخلي ميكروكنترلر از برنامه كنترل كننده مربوط (مثلا 80196 ROGRAMER ) استفاده مي شود.

 

1. 3 ميكروپروسسورها و ميكروكنترلرها

اختلافهاي اين دو نوع تراشه را مي توان به موارد زير تقسيم كرد :

ساخت سخت افزار

همانطور كه ديديم ميكروكنترلر از يك CPU، حافظه هاي RAM و ROM و ادوات جانبي (نظير ادوات سريال و موازي، تايمرها، سرويس دهنده وقفه ها و ... ) تشكيل شده كه همگي در درون يك تراشه قرار گرفته اند، در حالي كه يك ميكروپروسسور صرفا يك CPU است كه بسياري از قابليتها در آن لحاظ نشده و بايد با بستن سخت افزار اضافي ‌آنها را توليد كرد بعنوان مثال ميكروپروسسورها توانايي سرويس دهي به وقفه ها را ندارد براي استفاده از آن به سخت افزار اضافي نياز است.

 


كاربرد

ميكروپروسسورها به منظور قرار گرفتن در قلب سيستمهاي رايانه‌اي (ميكروكامپيوتري) ساخته شده‌اند و قدرت آنها در اين نوع سيستمها مشخص مي شود و برعكس ميكروكنترلرها براي طراحي هاي كنترلي و با اجزاي كم مناسب هستند.

مجموعه دستورالعملها

در ميكروپروسسورها روشهاي آدرس دهي قوي و دستورالعملهايي كه عمليات را به سرعت بر روي حجم عظيمي از داده ها انجام مي دهند لحاظ شده است.

ميكروپروسسورها قدرت انجام عمليات روي داده هايي از نوع double , word , byte و ... را دارند در ميكروكنترلرها دستورات براي انجام عمليات بخصوص به صورت بيتي بر روي وروديها و خروجيها درنظر گرفته شده است و دستورالعملهاي سنگين در آنها ديده نمي‌شود.

بعلاوه در اينجا توجه خاصي به سرويس دهي به وقفه ها و دستيابي سريع در پايه هاي ورودي و خروجي شده است.

 

1. 4 كاربرد ميكروكنترلها در صنعت

امروز كمتر تجهيزات الكترونيكي را در اطراف خود مي بينيم كه به نحوي متكي به ميكروكنترلرها نباشد.

مايكروفرها، سيستمهاي ويدئو، تلويزيون و ضبطهاي جديد درمنازل دستگاههاي تكثير و چاپگرها در ادارات تجهيزات پزشكي در بيمارستانها و سيستمهاي كنترل ترافيك در خيابانها و بزرگراهها و سيستمهاي كنترلي كه در خودروها آسايش سرنشينها را تامين مي كند همگي از پيشرفتهايي هستند كه ميكروكنترلها و ميكروپروسسورها براي ما به ارمغان آورده اند اما آنچه بيشتر مورد توجه است كاربرد ميكروكنترلها در عرصه صنعت مي باشد كه ذيلا به بررسي سه مورد آن مي‌پردازيم.

 

1. 5 كاربرد ميكروكنترلها در خودرو سازي

بدون شك يكي از علل عمده پيشرفت سريع ميكروكنترلرها (به ويژه 80196) را مي توان نياز صنايع خودروسازي و پيشرفت سريع صنعت خودرو دانست.

رقابت شديد كارخانجات خودروسازي براي ارائه خودروها با كيفيت بالاتر پاي سيستمهاي كنترل الكترونيكي را نيز به خودروها گشود و ميكروكنترلرها به عنوان ساده ترين و مقرون به صرفه ترين راه پياده‌سازي اين سيستمهاي كنترل موردتوجه قرار گرفتند ازجمله اين سيستمهاي كنترل مي توان به موارد زير اشاره كرد:

سيستم كنترل موتور (Engine control) كه وظيفه بهينه سازي مصرف سوخت و كاهش ميزان آلايندگي هوا را برعهده دارد.

سيستم ترمز ضد قفل كه اعمال بهينه نيرو به ترمزها را برعهده دارد.

سيستم انتقال قدرت خودكار كه وظيفه تغيير خودكار دنده ها و گشتاور موتور را باتوجه به سرعت و ساير پالامترهاي موتور برعهده دارد.

سيستم كنترل دماي خودرو

دستگاه هاي آزمون خودروها نيز زمينه مناسبي براي حضور ميكروكنترلرها در صنايع خودروسازي فراهم آورده اند.


1. 6 كاربرد ميكروكنترلرها در ادوات جانبي كامپيوتر

به منظور كاهش حجم عمليات روي ميكروپروسسور اصلي در كامپيوترها كنترل برخي ادوات جانبي به يك ميكروكنترلر مجزا سپرده مي‌شود. يك از اين ادوات جانبي صفحه كليد (keyboard) است. در هر صفحه كليد يك ميكروكنترلر قرار دارد كه با بررسي كليدها به طور دائمي، منتظر دريافت يك كليد مي‌ماند و با فشرده شدن كليد، نتيجه را به ميكروپروسسور اصلي مي‌فرستد.

يكي از ديگر از ادوات جانبي كه امروزه معمولا داراي ميكروپروسسور است مودم (Modem) مي‌باشد كه عمل ارسال و دريافت اطلاعات را از طريق خط تلفن انجام مي‌دهد. ميكروكنترلر موجود در چاپگر نيز كامپيوتر را از تازه سازي (Refresh) اطلاعات موجود در RAM چاپگر بي‌نياز مي‌كند و به كامپيوتر اجازه مي‌دهد تا وقت خود را صرف امور ديگري نمايد.

 

1. 7 كاربرد ميكروكنترلرها در كنترل موتورهاي الكتريكي

يكي از كاربردهاي گسترده سيستمهاي كنترل در صنايع، كنترل موتورهاي الكتريكي است. دركنترل موتورها معمولا نيازمند استفاده از سيگنالهاي PWM هستيم. در ميكروپروسسورهاي قديمي تر توليد سيگنال PWM توسط سخت افزاري كه طراح در خارج از ميكروپروسسور قرار مي‌داد، صورت مي گرفت. اما در نمونه هاي جديدتر (نظير 80196) ادوات توليد اين سيگنالها در درون ميكروكنترلر لحاظ شده و راه اندزاي آن تنها نيازمند چند خط برنامه نويسي است.

 

1. 8 يك ميكروكنترلر چيست ؟

ميكروكنترلر در واقع يك كامپيوتر تك تراشه اي ارزانقيمت مي‌باشد.

كامپيوتر تك تراشه اي بدين معني است كه كل سيستم كامپيوتر در داخل تراشه مدار مجتمع جاي داده شده است.

ميكروكنترلري كه بر روي تراشه سيليكوني ساخته مي‌شود داراي خصوصياتي مشابه خصوصيات كامپيوترهاي شخصي استاندارد است نخستين ويژگي ميكروكنترلر قابليت ذخيره سازي و اجراي برنامه است (كه مهمترين ويژگي آن به شمار مي رود) ميكروكنترلر داراي يك CPU (واحد پردازشگر مركزي) حافظه RAM حافظه ROM خطوط I/O درگاههاي سريال و موازي و زمان سنج و برخي اوقات نيز شامل ادوات جانبي نظير مبدل A/D (مبدل آنالوگ به ديجيتال ) و مبدل D/A (مبدل ديجيتال به آنالوگ ) مي باشد.

 

1. 9 چرا از ميكروكنترلر استفاده مي شود ؟

همان گونه كه قبلا توضيح داده شد ميكروكنترلرها كامپيوترهايي ارزان قيمت هستندكه قابليت ذخيره سازي و اجراي برنامه‌هاي منحصر به فرد موجب شده است تا بسيار انعطاف پذير شوند به عنوان مثال شخص مي‌تواند ميكروكنترلر را به گونه اي برنامه ريزي كند كه براساس شرايط از پيش تعيين شده (وضعيت خطوط ورودي و خروجي) تصميم گيري نمايد.

قابليت انجام عمليات رياضي و منطقي موجب شده است تا ميكروكنترلر بتواند عملكرد مدارهاي منطقي پيچيده و مدارهاي الكترونيكي را تقليد كند.

برنامه هاي ديگر مي توانند موجب شوند كه ميكروكنترلر مشابه يك مدار در شبكه عصبي و يا به صورت يك كنترل كننده با منطق فازي عمل كند. ميكروكنترلرها وظيفه هوش مصنوعي را در دستگاه هاي مربوط به حسابهاي هوشمند در فروشگاهها برعهده دارند.

آينده الكترونيك مختص ميكروكنترلرها مي باشد.

اگر دستگاه هاي الكترونيكي را بررسي كنيد، خواهيد ديد كه از ميكروكنترلرها تقريبا در تمامي آنها استفاده شده است. اين نيز دليل ديگر براي آشنايي ميكروكنترلرهاست.

 

1 .10 مختصري راجع به AVR

زبانهاي سطح بالا يا همان (HIGH LEVEL LANGUAGE) HLL به سرعت در حال تبديل شدن به زبان برنامه نويسي استاندارد براي ميكروكنترلرها (MCU) حتي ميكروهاي 8 بيتي كوچك هستند. زبان برنامه نويسي BASIC و C بيشترين استفاده را دارند ولي در اكثر كاربردها كدهاي بيشتري را نسبت به زبان برنامه نويسي اسمبلي توليد مي كنند.

ATMEL ايجاد تحولي در معماري، جهت كاهش كد به مقدار مينيمم را درك كرد كه نتيجه اين تحول ميكروكنترلرهاي AVR هستند كه علاوه بر كاهش و بهينه سازي مقدار كدها به طور واقع عمليات را تنها در يك كلاك سيكل توسط معماري REDUCE RISK (INTRUCTION SET COMPUTER) انجام مي‌دهند و از 32 رجيستر همه منظوره (ACCUMULATOR) استفاده مي كنند كه 4 تا 12 بار سريعتر از ميكروكنترلرهاي مورد استفاده كنوني مي‌باشند.

تكنولوژي حافظه كم مصرف غير فرار شركت ATMEL براي برنامه ريزي AVR ها مورد استفاده قرار گرفته است و در نتيجه حافظه هاي FLASH و EEPROM در داخل مدار قابل برنامه ريزي (ISP) هستند.

ميكروكنترلرهاي اوليه AVR داراي 1، 2 و 8 كيلو بايت حافظه FLASH و به صورت كلمات 16 بيتي سازماندهي شده بودند.

AVR ها به عنوان ميكروهاي RISC با دستورات فراوان طراحي شده اند كه باعث مي شود حجم كد توليد شده كم و سرعت بالاتري بدست آيد.

عمليات تك سيكل

با انجام عمليات تك سيكل دستورات، كلاك اسيلاتور با كلاك داخلي سيستم يكي مي‌شود. هيچ تقسيم كننده اي در داخل AVR قرار ندارد كه ايجاد اختلاف فاز كلاك كند. اكثر ميكروها كلاك اسيلاتور به سيستم را به نسبت 1:4 يا 1:12 تقسيم مي كنند كه خود باعث كاهش سرعت مي‌شود.

بنابراين AVR ها 4 تا 12 بار سريعتر و مصرف آنها نيز 4-12 بار نسبت به ميكروكنترلرهاي مصرفي كنوني كمتر است زيرا تكنولوژي CMOS استفاده شده در ميكروكنترلرهاي AVR مصرف توان سطح منطقي متناسب با فركانس است.

 

1. 11 طراحي براي زبان هاي BASIC و C

زبان هاي BASIC و C بيشترين استفاده را در دنياي امروز به عنوان زبانهاي HLL دارند. امروزه معماري بيشتر ميكروها براي زبان اسمبلي طراحي شده و كمتر از زبانهاي HLL حمايت كرده‌اند.

هدف ATMEL طراحي معماري بود كه هم براي زبان اسمبلي و هم براي زبان هاي HLL مفيد باشد. به طور مثال در زبانهاي C و BASIC مي توان يك متغير محلي به جاي متغير سراسري در داخل زيربرنامه تعريف كرد، در اين صورت فقط در زمان اجراي زير برنامه مكاني از حافظه RAM براي متغير اشغال مي شود و درصورتي كه اگر متغيري به عنوان سراسري تعريف گردد در تمام وقت مكاني از حافظه FLASHROM را اشغال كرده است.

براي دسترسي سريعتر به متغيرهاي محلي و كاهش كد، نياز به افزايش رجيسترهاي همه منظوره است. AVR‌ ها داراي 32 رجيستر هستند كه مستقيما به LOGIC ALU (ARITHMETICUNIT) متصل شده اند و تنها در يك كلاك سيكل به اين واحد دسترسي پيدا مي كنند.

سه جفت از اين رجيسترها مي توانند به عنوان رجيسترهاي 16 بيتي استفاده شوند.

اين ميكروكنترلر يك ميكروكنترلر 8 بيتي است، به همين جهت براي انجام عمليات 16 بيتي (نظير ضرب 2 عدد 16 بيتي) نياز به اجراي دستورالعملهاي بيشتري دارد كه همين موضوع منجر به طولاني شدن مدت انجام عمليات گرديده و در كاربردهاي بلادرنگ مشكل ايجاد مي كند (انتقال عملوندهاي 16 بيتي از باس 8 بيتي در 2 سيكل انتقال انجام مي گيرد).

از سوي ديگر عليرغم آن كه پيشرفت سيستمهاي كنترل در خودروها زمينه را براي حضور ميكروكنترلرها در اين عرصه نيز فراهم آورد، اما ميكروكنترلر 8051 بدليل ضعف ذكر شده و نيز كمبود ادوات جانبي مناسب (نظير ورودي و خروجي هاي سري، تايمر نگهبان و ... ) نتوانست توانمنديهاي بلادرنگ و مطمئن را از خود بروز دهد.

تلاش شركت Intel براي رفع اين دو نقيصه سرانجام به ميكروكنترلرهاي 8096 و 80196(هردو از خانواده MCS-96 ) انجاميد. در اين دو ميكروكنترلر 16 بيتي (پهناي باس داده آنها 16 بيتي است) ادوات جانبي بسياري لحاظ شده بود كه هم طراحان را از قراردادن سخت افزار اضافي براي توليد اين ادوات بي نياز مي‌كرد و هم سرعت عمليات را افزايش مي داد.

البته ورود 80196 به بازار منجر به خارج شدن 8051 از عرصه صنعت نشد، چرا كه هنوز هم براي بسياري از كاربردها، تواناييهاي 8051 كافي به نظر مي رسد در واقع در كاربردهايي كه قابليتهاي 8051 كافي باشد بدليل صرفه اقتصادي، اين ميكروكنترلر مناسب تر است ولي اگر ادوات جانبي بيشتري مورد نياز باشد و نيز در كاربردها بلادرنگ كه 8051 پاسخگو نباشد، 80196 به كمك مهندسان مي‌آيد.

تاكنون نزديك 14 نسخه از اين ميكروكنترلر با توانايي هاي متفاوت براي كاربردهاي مختلف طراحي و به بازار عرضه شده است. نام عمومي همه اين نسخه ها 80C196XX است كه دو حرف آخر نام آنها مشخص كننده نسخه ميكروكنترلر است.

 

 


مقدمه

در اين بخش ابتدا با انواع كامپايلرهاي مختلف براي ميكروكنترلرهاي AVR آشنا مي‌شويد، سپس در ادامه بر روي محيط برنامه‌ريزي Codevision متمركز مي‌شويم. پس از توضيح مراحل نصب نرم‌افزار CodevisionAVR، به معرفي منوهاي محيط Codevision مي‌پردازيم.

 

2. 1 انواع كامپايلرها

امروزه كامپايلرهاي مختلفي براي كار با ميكروكنترلرهايAVR به بازار عرضه شده‌اند كه از جمله‌ مهم‌ترين آنها، مي‌توان به كامپايلرهاي GCC(GNU), Imagecraft, CodevisionAVR و IAR به زبان C و C++ و كامپايلرهاي Bascom و Fast AVR به زبان Basic و E-lab به زبان پاسكال اشاره كرد كه از ميان آنها كامپايلرهايCodevision و Imagecraftاز اهميت بيشتري برخوردارند.

كامپايلرهاي C

همان‌طور كه مي‌دانيد، امروزه زبان سطح بالايC هرچه بيشتر براي برنامه‌نويسي ميكروكنترلرها عموميت يافته است. مزاياي استفاده از C به جاي اسمبلي، كاهش زمان برنامه‌نويسي، نگهداري ساده‌تر و قابليت حمل بيشتر، استفاده مجدد از كدها و ساده‌تر شدن فهم برنامه است. عيب آن هم افزايش حجم كدها و در نتيجه كاهش سرعت برنامه مي‌باشد. براي كاهش يا رفع اين معايب، ساختار AVR به گونه‌اي طراحي شده، تا دستورات توليد شده توسط كامپايلرهاي C را به صورت بهينه ديكد و اجرا نمايد.

طراحي كامپايلرهايC قبل از تكميل ساختار و مجموعه دستوراتAVR صورت گرفته است. نتيجه‌ي عملكرد همزمان بين تيم‌هاي كامپايلر و AVR، ميكروكنترلرهاي با كدهاي توليد شده جهت استفاده بهينه و كارايي بالا مي‌باشد.

علاوه بر اين از آن‌جايي كه زبان برنامه‌نويسي C در مقايسه با زبان‌هاي سطح بالاي ديگر به زبان‌هاي سطح پايين نزديكي بيشتري دارد، مسلماً حجم كدهاي توليد شده از يك برنامه‌يc نسبت به كدهاي توليد شده از يك زبان سطح بالاي ديگر كمتر خواهد بود و لذا از اين لحاظ بر بقيه ارجحيت دارد.

 

2. 2 آشنايي با نرم‌افزار CodevisionAVR

CodevisionAVR يك كامپايلرC، محيط توسعه يافته‌ي گرافيكي يكپارچه (IDE) و توليد كننده‌ي خودكار كدهاي برنامه است كه براي كار با ميكروكنترلرهاي AVR، ساخت شركتAtmel، طراحي شده است.

اين برنامه يك پروگرامرISP را نيز شامل مي‌گردد كه امكان انتقال كدهاي برنامه به ميكرو را بعد از انجام موفق عمل كامپايل فراهم مي‌آورد.

علاوه بر اين، نرم‌افزار شامل كتابخانه‌هاي قدرتمندي است كه به كمك آنها كار باLCDهاي كاراكتري، ارتباطSPI، PC، ارتباط يك سيمه و كار با سنسورهاي دماي EEPROM, DS1820, LM75هاي سريال و RTCهاي سريال به راحتي صورت مي‌پذيرد.

ضمناً Codevision، برنامه‌ي CodeWizard را نيز شامل مي‌گردد. اين برنامه به ما امكان مي‌دهد تا براي تنظيم امكانات مختلف تراشه از قبيل تايمرها، TWI, SPI, ADC و ... بدون نياز به نوشتن كد براي آنها به صورت گرافيكي تنظيمات اوليه مورد نياز را انجام دهيم، كه در اين صورت CodeWizard، كدهاي لازم را براي ما توليد مي‌كند و به اين ترتيب مي‌توانيم در كمترين زمان ممكن برنامه‌هاي خود را بنويسيم.

 

طريقه‌ي فعال‌سازي نرم‌افزار CodevisionAVR

در اين CD نسخه‌هاي مختلفي از نرم‌افزار Codevision وجود دارند كه از بين آنها فقط نسخه‌هاي 1.23.8 و 1.24.4 كامل هستند و بقيه‌ي نسخه‌ها، نسخه‌هاي رايگاني هستند كه از طريق اينترنت در دسترس عموم قرار گرفته‌اند. ولي اين نسخه‌ها تنها حجم محدودي از برنامه را كامپايل مي‌كنند، بنابراين براي كارهاي پيشرفته غالباً غيرقابل استفاده‌اند. ولي مزيت آنها نسبت به نسخه‌ي كامل اين است كه به دليل بالاتر بودن نسخه‌ي آنها، امكانات بيشتري را در خود جاي داده‌اند. ما در اين پروژه از نسخه‌ي كامل 1.24.4 استفاده مي‌كنيم.

در صورتي كه اين نرم‌افزار را نصب كنيد، با اجراي نرم‌افزار صفحه‌اي مشابه شكل 2-1 براي شما ظاهر خواهد شد. در حقيقت براي فعال شدن نرم‌افزار به يك فايل License احتياج داريد.


مبلغ قابل پرداخت 10,692 تومان

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

Captcha
پشتیبانی خرید

برای مشاهده ضمانت خرید روی آن کلیک نمایید

  انتشار : ۸ آذر ۱۳۹۵               تعداد بازدید : 1289

برچسب های مهم

دیدگاه های کاربران (0)

دفتر فنی دانشجو

توجه: چنانچه هرگونه مشكلي در دانلود فايل هاي خريداري شده و يا هر سوال و راهنمایی نیاز داشتيد لطفا جهت ارتباط سریعتر ازطريق شماره تلفن و ايميل اعلام شده ارتباط برقرار نماييد.

فید خبر خوان    نقشه سایت    تماس با ما