• بازدید : 38 views
  • بدون نظر
این فایل در ۴۳صفحه قابل ویرایش تهیه شده وشامل موارد زیر است:

اين پروژه جهت کنترل ۴ موتور مجزا با تنظيمات مجزا مي باشد که توسط برنامۀ Bascom  و به زبان Basic  طراحي شده است .
جهت شناسايي اين که کدام موتور بايد روشن شود به صورت مقايسه اي برنامۀ ساعت نوشته شده است که هر لحظه تنظيمات ۴ موتور با ساعت چک مي شود و هر کدام که با ساعت Set  شود بدين ترتيب است که اگر ثانيه با ثانيه ساعت برابر شد برنامه به قسمت دقيقه مي رود و اگر دقيقه برابر شد به قسمت ساعت رفته و آن را نيز مانند بقيه چک ميکند و در صورت برابر شدن هر کدام آن موتور را روشن و يا خاموش مي کند .
امروزه با توجه به پيشرفت علم الکترونيک از ميکروکنترلرها  استفاده بيشتري مي شود که اين ميکروکنترلرها دو مزيت بزرگ دارند : ۱ سادگي مدار از نظر سخت افزاري ۲ ارزان تمام شدن مدار .
ميکروکنترلرها انواع مختلف و با زبان هاي برنامه نويسي مختلف از جمله Basic و C و…
مي باشند که هر يک مزيتها و معايبي را دارند .
در اين پروژه که جهت کنترل زمان روشن و خاموش شدن ۴ موتور در خروجي يا به طور کلي ۴ خروجي از ميکروکنترلر AVR از نوع ATmega16 شرکت ATmel و توسط زبان Basic و در محيط Bascom طراحي شده است .

مختصري راجع به AVR 
زبانهاي سطح بالا يا همان (HIGH LEVEL LANGUAGES) HLL به سرعت در حال تبديل شدن به زبان برنامه نويسي استاندارد براي ميکرو کنترلرها (MCU) حتي براي ميکروهاي ۸ بيتي کوچک هستند . زبان برنامه نويسي BASIC  و C  بيشترين استفاده را در برنامه نويسي ميکروها دارند ولي در اکثر کاربردها کدهاي بيشتري را نسبت به زبان برنامه نويسي اسمبلي توليد مي کنند . ATMEL ايجاد تحولي در معماري ، جهت کاهش کد به مقدار مينيمم را درک کرد که نتيجه اين تحول ميکرو کنترلرهاي AVR هستند که علاوه بر کاهش و بهينه سازي مقدار کدها به طور واقع عمليات را تنها در يک کلاک سيکل توسط معماري ( REDUCED RISC INSTRUCTION SET COMPUTER)   انجام مي دهند و از ۳۲ ريجيستر همه منظوره (ACCUMULATORS) استفاده مي کنند که باعث شده ۴  تا ۱۲ بار سريعتر از ميکروهاي موزد استفاده کنوني باشند .
تکنولوژي حافظه کم مصرف غير فرّار شرکت ATMEL براي برنامه ريزي AVR ها مورد استفاده قرار گرفته است در نتيجه حافظه هاي FLASH و EEPROM در داخل مدار قابل برنامه ريزي (ISP) هستند . ميکروکنترلرهاي اوليه AVR  داراي ۱ ، ۲ ، ۸ کيیوبايت حافظه FLASH و به صورت کلمات ۱۶ بيتي سازماندهي شده بودند .
AVR ها به عنوان ميکروهاي RISC  با دستورات فراوان طراحي شده اند که باعث ميشود حجم کد توليد شده کم و سرعت بالاتري به دست آيد . 

عمليات تک سيکل :
با انجام تک سيکل دستورات ، کلاک اسيلاتور با کلاک داخلط سیستم يکي مي شود . هيچ تقسيم کننده اي در داخل AVR قرار ندارد که ايجاد اختلاف فاز کلاک کند .  اکثر ميکروها کلاک اسيلاتور به سيستم را با نسبت ۱:۴ يا  1:12 تقسيم مي کنند که
خود باعث کاهش سرعت مي شود . بنابراين AVR ها ۴  تا ۱۲ بار سريعتر و مصرف
آنها نيز ۴-۱۲ بار نسبت به ميکروکنترلرهاي مصرفي کنوني کمتر است زيرا در تکنولژي CMOS استفاده شده در ميکروهاي AVR ، مصرف توان سطح منطقي متناسب با فرکانس است .
نمودار زير افزايش (MILLION INSSTRUCTION PER SECONDS) MIPS را به علت انجام عمليات تک سيکل AVR (نسبت ۱:۱ ) در مقايسه با نسبتهاي ۱:۴ و ۱:۱۲ دي ديگر ميکروها را نشان مي دهد .
نمودار مقايسه افزايش 
MIPS/POWER Consumption در AVR با ديگر ميکرو کنترلرها .
 



طراحي براي زبان هاي BASIC و C
زبان هاي BASIC و C بيشترين استفاده را در دنياي امروز بعنوان زبان هاي HLL دارند. تا امروزه معماري بيشتر ميکروها براي زبان اسمبلي طراحي شده و کمتر از زبانهاي HLL حمايت کرده اند . 
هدف ATMEL طراحي معماري بود که هم براي زبان اسمبلي و هم زبان هاي HLL مفيد باشد . به طور مثال در زبانهاي C و BASIC  مي توان يک متغيير محلي به جاي متغيير سراسري در داخل زيربرنامه تعريف کرد ، در اين صورت فقط در زمان اجرا زير برنامه مکاني از حافظه RAM براي متغيير اشغال مي شود در صورتي که اگر متغييري به عنوان سراسري تعريف گردد در تمام وقت مکاني از حافظه FLASH ROM را اشغال کرده است . 
براي دسترسي سريعتر به متغييرهاي محلي و کاهش کد ، نياز به افزايش رجيسترهاي همه منظوره است . AVR ها داراي ۳۲ رجيستر هستند که مستقيماً به 
( UNIT ARITHMETIC) LOGIC ALU) متصل شده اند ، و تنها در يک کلاک سيکل به اين واحد دسترسي پيدا مي کنند .سه جفت از اين رجيسترها مي توانند به عنوان رجيسترهاي ۱۶ بيتي استفاده شوند .


کليات پروژه و نحوه عملکرد :
اين پروژه جهت زمان بندي مجزاي ۴ موتور (يا هر خروجي ديگر )استفاده مي شود که با تنظيم هر موتور مي توان به طور مجزا از آن استفاده کرد و تنظيمات هر موتور با موتورهاي ديگر کاملاً مجزا است . 
در اين پرژه پس از Initialize شدن و معرفي پرژه به صفحۀ اصلي مي رسيم که در قسمت بالاي صفحه ، ساعت آن قرار دارد که در هنگام روشن شدن در صورت تنظيم نکردن از ساعت ۱۲:۰۰:۰۰ شروع به شمارش مي کند .
در قسمت زيرين نشانگر ساعت ، نشانگر وضعيت ۴ موتور قرار دارد که در صورتي که موتوري روشن باشد در جلوي آن کلمه ي ON و در صورتي که خاموش باشد کلمۀ OFF درج شده است .
در پايين صفحه LCD 4 گزينۀ TAB – UP – MENU – SAVE  وجود دارد . 
براي تنظيمات موتور و ساعت توسط گزينۀ TAB به صفحۀ بعد مي رويم در صفحۀ بعد دو گزينه با نامهاي Mode 1 و Mode 2 داريم که Mode 1 براي تنظيمات ساعت و Mode 2  براي تنظيمات ۴ موتور است و در صورتي که سوئيچ زير هر گزينه را بفشاريم به آن MODE رفته و شروع به تنظيمات مي کنيم به شرح زير :
اگر Mode 1 برويم وارد مُد ساعت شده ايم و با کليد TAB روي هر قسمت از ساعت و دقيقه و ثانيه مي رويم پس از اين کار با گزينه Up شروع به تنظيم هر قسمت مي کنيم و
با گزينۀ TAB به قسمت بعدي مي رويم و در صورتي که بخواهيم تنظيمات ثبت شود توسط گزينۀ Save آن را ثبت مي کنيم و توسط گزينۀ Esc به صفحۀ اصلي بر              ميگرديم . حال اگر به MODE 2 برويم وارد مُد تنظيمات ۴ موتور رفته ايم و با کليد TAB از ۴ موتور يکي را انتخاب کرده و توسط گزينۀ OK وارد تنظيمات آن موتور ميشود که شامل دو گزينۀ Start و Time است که گزينۀ  Start زمان روشن شدن و گزينۀ  Time زمان خاموش شدن را مشخص مي کند و براي تنظيمات آن نيز مانند تنظيمات ساعت توسط دو گزينۀ TAB و Up تنظيم مي کنيم و توسط گزينۀ  Save آن را قبول کرده و تنظيم مي کنيم ، سپس توسط گزينۀ Esc از آن صفحه خارج و به صفحۀ قبل بر مي گرديم و اين عمل براي تنظيم ۴ موتور صورت مي گيرد .
در پايان جا دارد اين نکته نيز گفته شود که تنظيمات ثبت شده براي هر ۴ موتور در EEPROM ثبت مي شود و در صورتي که تغذيۀ آن قطع شود و براي بار دوم روشن شود تنها بايد ساعت تنظيم شود و تنظيمات موتور دقيقاً مانند قبل عمل خواهند کرد .
توضيح در مورد سخت افزار 
ميکروکنترلرها AVR اين پروژه از نوع Atmega16 انتخاب شده است که داراي فضاي حافظۀ بيشتر و EEPROM مي باشد .نمايشگر اين پروژه از نوع LCD 4*20  با شماره
 TS-2040-1 مي باشد که ديتا شيت آن در فصل پاياني ارائه شده است .
در قسمت تغذيه از چهار ديود IN4007 استفاده شده و براي صافي آن از خازن ۱۰۰۰Uf و خازن عدسي ۱۰۰nf استفاده شده است و از يک رکولاتور ۷۸۰۵ براي تثبيت ولتاژ ۵ ولت در خروجي قرار گرفته است . 
۴ عدد رله نيز براي کنترل ، در خروجي قرار دارند . LED و يک مقاومت ۴۷۰ اُهم براي قسمت نشان دهنده Power قرار دارد .
براي کنترل و مقداردهي از ۴ ميکروسوئيچ به همراه ۴ مقاومت ۱۰ کيلو اُهم که      پزيري را صفر مي کند و در عمل به اين مقاومتها ، مقاومت هاي Pall down   گويند .
يک مقاومت براي تنظيم کنتر است ، LCD بين پايۀ ۳  و زمين قرار دارد و يک مقاومت هم براي محدود کردن جريان سوئيچ رله ها است .




خصوصيات ATmega16 , ATmega16 L
از معماري AVR RISC استفاده مي کند .
کارايي بالا و توان مصرفي کم . 
داراي ۱۳۱ دستورالعمل با کارايي بالا که اکثراً تنها در يک کلاک سيکل اجرا ميشوند .
۳۲*۸ رجيستر کاربردي .
سرعتي تا ۱۶ MIPS در فرکانس ۱۶ MHZ 
حافظه ، برنامه و دادۀ غير فرّار 
۱۶K بايت حافظه FLASH داخلي قابل برنامه ريزي 
پايداري حافظه FLASH : قابليت ۱۰٫۰۰۰ بار نوشتن و پاک کردن (WRITE , ERASE)
۱۰۲۴ بايت حافظه داخلي SRAM
۵۱۲ بايت حافظه EEPROM داخلي قابل برنامه ريزي.
پايداري حافظه EEPROM : قابليت ۱۰۰٫۰۰۰ بار نوشتن و پاک کردن (WRITE , ERASE)
قفل برنامۀ FLASH و حفاظت دادۀ EEPROM
قابليت ارتباط JTAG (IEEE Std.)
برنامه ريزي برنامۀ FLASH ، EEPROM ، FUSE BITS و LOCK BITS از طريق ارتباط JTAG 
خصوصيات جانبي 
دو تايمر – کانتر (TIMER / COUNTER) 8 بيتي با  PRESCALER مجزا و مُد  COMPARE 
يک تايمر – کانتر (TIMER / COUNTER) 16 بيتي با PRESCALER مجزا و داراي مُدهاي COMPARE و  CAPTURE
۴ کانال PWM 
۸  کانال مبدل آنالوگ به ديجيتال ۱۰ بيتي 
۸ کانال SINGLE – ENDED
داراي ۷  کانال تفاضلي در بسته بندي TQFP
داراي دو کانال تفاضلي با کنترل گين ۱۰x , 1x و ۲۰۰x
يک مقايسه کننده آنالوگ داخلي .
WATCHDOG قابل برنامه ريزي با اسيلاتور داخلي .
قابليت ارتباط با پروتکل سريال دوسيمه (TWO – WIRE)
قابليت ارتباط سريال (SERIAL PERIPHERAL INTERFACE) SPI  به صورت MASTER يا SLAVE.
USART سريال قابل برنامه ريزي 
خصوصيات ويژه ميکروکنترلر 
POWER-ON RESET CIRCUIT و BROWN-OUT قابل برنامه ريزي .
داراي اسيلاتور RC داخلي کاليبره شده .
داراي ۶ حالت
EXTENDED STANDBY , STANDBY , POWER – SAVE , IDLE , POWER-DOWN) SLEEP و (ADC NOISE REDUCTION
منابع وقفه (ENTERRUBT) داخلي و خارجي .
عملکرد کاملاً ثابت .
توان مصرفي پايين و سرعت بالا توسط تکنولوژي CMOS
توان مصرفي در ۲۵°c , 3v , 1mhz  براي ATMEGA16L
حالت فعال (ACTIVE MODE) 1.1mA
در حالت بي کاري (IDLE MODE) 0.35mA
در حالت ۱uA>:POWER-DOWN
ولتاژهاي عملياتي (کاري)
۲٫۷v تا ۵٫۵v براي (Atmega16L)
۴٫۵v تا ۵٫۵v براي (Atmega16)
فرکانسهاي کاري 
۰MHZ  تا ۸MHZ براي (Atmega16L)
۰MHZ  تا ۱۶MHZ براي (Atmega16)
خطوط I/O و انواع بسته بندي 
۳۲  خط ورودي / خروجي (I/O) قابل برنامه ريزي .
۴۰ پايه ۴۴ , PDIP پايه TQFP و ۴۴ پايه 

عتیقه زیرخاکی گنج