اطلاعیه

Collapse
No announcement yet.

مقالات آموزشی میکروکنترلر Avr و نمونه برنامه های مربوطه

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مقالات آموزشی میکروکنترلر Avr و نمونه برنامه های مربوطه

    با سلام خدمت تمامی دوستان امیدوارم مطالب ذیل مورد استفاده عزیزان واقع شود. :wow:
    1-آموزش فیوز بیت ها ,منابع کلاک وAVR- RESET
    http://forum.pnkavosh.com/attachment.php?attachmentid=19&d=1193330960
    2-آموزش وقفه های خارجی AVR
    http://forum.pnkavosh.com/attachment.php?attachmentid=21&d=1193332333
    http://forum.pnkavosh.com/attachment.php?attachmentid=21&d=1193332333
    3-تایمر کانتر صفر
    http://forum.pnkavosh.com/attachment.php?attachmentid=22&d=1193332520
    http://forum.pnkavosh.com/attachment.php?attachmentid=56&d=1193479134
    http://forum.pnkavosh.com/attachment.php?attachmentid=57&d=1193479148
    4-آموزش تایمر کانتر یک
    http://forum.pnkavosh.com/attachment.php?attachmentid=24&d=1193332663
    http://forum.pnkavosh.com/attachment.php?attachmentid=59&d=1193479332
    http://forum.pnkavosh.com/attachment.php?attachmentid=60&d=1193479348
    5-آموزش تایمر دو
    http://forum.pnkavosh.com/attachment.php?attachmentid=23&d=1193332592
    http://forum.pnkavosh.com/attachment.php?attachmentid=58&d=1193479227
    6-آموزش درگاه سریال
    http://forum.pnkavosh.com/attachment.php?attachmentid=25&d=1193332741
    http://forum.pnkavosh.com/attachment.php?attachmentid=61&d=1193479437
    7-آموزش I2C BUS
    http://forum.pnkavosh.com/attachment.php?attachmentid=62&d=1193479546
    http://forum.pnkavosh.com/attachment.php?attachmentid=63&d=1193479558
    8-آموزش مبدل آنالوگ به دیجیتال
    http://forum.pnkavosh.com/attachment.php?attachmentid=64&d=1193479697
    http://forum.pnkavosh.com/attachment.php?attachmentid=65&d=1193479775
    9-آموزش تنظیمات ریجیسترهای IO
    http://forum.pnkavosh.com/attachment.php?attachmentid=29&d=1193465449
    آنکه در تنهاترین تنهاییم تنهای تنهایم گذاشت کاش تنها کسش در تنها ترین تنهایش تنهای تنهایش نهد!

    #2
    پاسخ : مقالات آموزشی میکروکنترلر Avr و نمونه برنامه های مربوطه

    دوستان درصورت حوصله نداشتن جهت ثبت نام در سایتی که لینکهای بالا را از ان گذاشته ام
    با usernam: pdfavr
    ,
    pasword:1234
    میتونین وارد سایت شوید
    موفق باشید.
    آنکه در تنهاترین تنهاییم تنهای تنهایم گذاشت کاش تنها کسش در تنها ترین تنهایش تنهای تنهایش نهد!

    دیدگاه


      #3
      پاسخ : مقالات آموزشی میکروکنترلر Avr و نمونه برنامه های مربوطه

      سلام دوست عزیز،

      فایل یک جای این مقالات رو می تونید از اینجا هم دانلود کنید:

      http://dlc.eca.ir/index.php?act=view&id=104

      There is nothing so practical as a good theory. — Kurt Lewin, 1951

      دیدگاه


        #4
        پاسخ : مقالات آموزشی میکروکنترلر Avr و نمونه برنامه های مربوطه

        با تشکر از دوست عزیز shockley مطالب بالا هم بد نیست
        آشنایی با میکروکنترلر ها :

        مقدمه :

        گرچه کامپیوترها تنها چند دهه ایاست که با ما همراهند با این حال تأثیر عمیق آنها بر زندگی ما با تأثیر تلفن ، اتومبیل و تلویزیون رقابت می کند . همگی ما حضور آنها را احساس می کنیم ، چه برنامه نویسان کامپیوتر و چه دریافت کنندگان صورت حساب های ماهیانه که توسط سیستم های کامپیوتری بزرگ چاپ شده و توسط پست تحویل داده می شود . تصور ما از کامپیوتر معمولا " داده پردازی " است که محاسبات عددی را بطور خستگی ناپذیر انجام می دهد ، اما با انواعی از کامپیوتر ها برخورد می کنیم که وظایفشان را زیرکانه و بطرزی آرام و کارآ و حتی فروتنانه انجام می دهند و حتی حضور انها اغلب احساس نمی شود .

        دراین مجموعه ها کامپیوترها وظیفه ی " کنترل " را در ارتباط با " دنیای واقعی " ، برای روشن و خاموش کردن وسایل و نظارت بر وضعیت آنها انجام می دهند . میکروکنترلرها ( برخلاف میکروکامپیوترها و ریز پردارنده ها ) اغلب در چنین کاربردهایی یافت می شوند .

        با وجود اینکه بیش از سی و هفت – هشت سالی از تولد ریز پردازنده نمی گذرد ، تصور وسایل الکترونیکی و اسباب بازیهای امروزی بدون آن کار مشکلی است . در سال 1971 شرکت اینتل ، 8080 را بعنوان اولین ریزپردازنده ی موفق عرضه کرد . مدت کوتاهی پس از آن ، موتورولا ، RCA و سپس MOS Tecnology و Zilog انواع مشابهی را به ترتیب به نامهای Z80 , 6502 , 1801 , 6800 عرضه کردند . گرچه این مدارهای مجتمع (IC ها ) به خودی خود فایده چندانی نداشتند اما بعنوان بخشی از یک کامپیوتر تک بورد (SBC) ، به جزء مرکزی فراورده های مفیدی برای آموزش طراحی با ریزپردازنده ها تبدیل شدند . از جمله ی این SBC ها میتوان به D2 موتورولا ، KIM-1 ساخت MOS Tecnology و SDK-85 متعلق به شرکت اینتل نام برد .

        میکروکنترلر قطعه ای شبیه ریزپردازنده است . در 1976 اینتل 8748 را بعنوان اولین قطعه خانواده ی میکروکنترلرهای MCS-48 TM معرفی کرد .

        توان ، ابعاد و پیچیدگی میکروکنترلرها با اعلام ساخت 8051 ، یعنی اولین عضو خانواده MCS-51 TM در 1980 توسط اینتل پیشرفت چشمگیری کرد . در مقایسه با 8048 این قطعه شامل بیش از 60000 ترانزیستور ، 4K بایت ROM ، 128 بایت RAM ، 32 خط I/O ، یک درگاه سریال و دو تایمر 16 بیتی است . که از لحاظ مدارات داخلی برای یک IC بسیار قابل ملاحظه است .

        اصطلاحات فنی : با توجه با اینکه همه ی دوستان با این اصطلاحات آشنایی دارند ، با این حال یادآوری این مطالب خالی از لطف نیست .

        حافظه ی نیمه رسانا : RAM و ROM :

        برنامه ها و داده در حافظه ذخیره می شوند .. حافظه هایی که بطور مستقیم توسط CPU قابل دستیابی می باشند ، IC های ( مدارهای مجتمع ) نیمه رسانایی هستند که RAM و ROM نامیده می شوند . دو ویژگی RAM و ROM را از هم متمایز می کند : اول آن که RAM حافظه ی خواندنی / نوشتنی است در حالیکه ROM حافظه ی فقط خواندنی است و دوم آنکه RAM فرار است ( یعنی محتویات آن هنگام نبود ولتاژ تغذیه پاک می شود ) درحالیکه ROM غیر فرار می باشد .

        گذرگاه ها : آدرس ، داده و کنترل :

        یک گذرگاه عبارت است از مجموعه ای از سیم ها که اطلاعات را با یک هدف مشترک حمل می کنند . امکان دستیابی به مدارات اطراف CPU توسط سه گذرگاه فراهم می شود : گذرگاه ادرس ، گذرگاه داده و گذرگاه کنترل . گذرگاه داده اطلاعات را بین CPU و حافظه یا بین CPU و قطعات I/O منتقل می کند .

        ابزارهای ورودی / خروجی :

        ابزارهای I/O یا ابزارهای جانبی کامپیوتر که مسیری برای ارتباط بین سیستم و دنیای واقعی را فراهم می کند . شامل : ابزارهای ذخیره سازی انبوه که همونن CD و Flopy و دی وی دی و ... هستند و ابزارهای رابط با انسان مثل صفحه کلید ، CRT و چاپگر و ... هستند و ابزارهای کنترل / نظارت که ابزارهای نظارت همان ورودی یا حسگر هستند که با کمیت هایی نظیر حرارت ، نور ، فشار و ... تحریک شده و آنها را به جریان یا ولتاژی که توسط CPU خوانده می شود تبدیل می کنند ( مثل فتوترانزیستور ها ، ترمیستورها و سوئیچ ها ) .

        برنامه ها : بزرگ و کوچک :

        که همان نرم افزار است که شامل انواع زیر است :

        نرم افزار کاربردی ( ارتباط با کاربر ) ، سیستم عامل ( زبان فرمان ، برنامه های مفید ) و زیرروال های ورودی ، خروجی ( دسترسی به سخت افزار )

        میکروها ، مینی ها و کامپیوترهای مرکزی :

        بعنوان یک نقطه شروع ، کامپیوترها بر اساس اندازه و توان آنها با عنوان میکروکامپیوترها ، مینی کامپیوترها و کامپیوترهای مرکزی دسته بندی می شوند . یک ویژگی کلیدی میکروکامپیوترها اندازه و بسته بندی CPU می باشد که از یک مدار مجتمع واحد - یعنی یک ریزپردازنده تشکیل شده است . از طرف دیگر مینی کامپیوترها و کامپیوترهای مرکزی علاوه بر آن که در برخی جزئیات معماری ، پیچیده تر هستند ، CPU هایی مشتمل بر چندین IC دارند که از چند IC ( در مینی کامپیوتر ها) تا چندین برد مدار متشکل از IC ها ( در کامپیوترهای مرکزی ) تغییر می کند و این برای به دست آوردن سرعت های بالا و توان محاسباتی کامپیوترهای بزرگتر ضروری است .

        ویژگی دیگری که میکروها را از مینی ها و کامپیوترهای مرکزی جدا می کند آن است که میکروکامپیوترها سیستمهایی تک اجرایی و تک کاربریا single - user هستند یعنی با یک کاربر ارتباط متقابل دارند و یک برنامه را در یک زمان اجرا می کنند . از طرف دیگر مینی ها و کامپیوترهای مرکزی سیستمهایی چند اجرایی و چند کاربر یا multi – user هستند .

        مقایسه ی ریز پردازنده ها با میکروکنترلرها :

        پیش از این گفتم که ریز پردازنده ها CPU هایی تک تراشه هستند و در میکروکامپیوترها به کار می روند . پس فرق میکروکنترلرها با ریز پردازنده ها چیه ؟

        با این سوال از سه جنبه میشه برخورد کرد :

        معماری سخت افزار ، کاربردها و ویژگی های مجموعه ی دستورالعمل ها .

        معماری سخت افزار : در حالی که ریز پردازنده یک CPU ی تک تراشه ای است ، میکروکنترلر در یک تراشه واحد شامل یک CPU و بسیاری از مدارات لازم برای سیستم میکروکامپیوتری کامل می باشد . میکروکنترلرها علاوه بر CPU دارای Ram و ROM ، یک رابط سریال ، یک رابط موازی ، تایمر و مدارات زمان بندی وقفه می باشند که همگی در یک IC قرار دارند . یک ویژگی مهم میکروها سیستم وقفه ی موجود در داخل انهاست . میکروها به عنوان ابزارهای کنترل گرا یا control – oriented devices اغلب برای پاسخ بی درنگ به محرکهای خارجی ( وقفه ها ) مورد استفاده قرار می گیرند .

        کاربردها :

        ریزپردازنده ها اغلب به عنوان CPU در سیستم های میکروکامپیوتری بکار می روند . این کاربرد دلیل طراحی آنها و جایی است که می توانند توان خود را به نمایش بگذارند . با این وجود میکروکنترلرها در طراحی های کوچک با کمترین اجزاء ممکن که فعالیت های کنترل گرا انجام می دهند نیز یافت می شوند .این طراحی ها در گذشته با چند دوجین یا حتی صدها IC دیجیتال انجام می شد . یک میکرو کنترلر می تواند در کاهش تعداد کل اجزاء کمک کند . آنچه که مورد نیاز است عبارت است از یک میکروکنترلر ، تعداد کمی اجزاء پشتیبان و یک برنامه کنترلی در ROM . میکروکنترلرها برای " کنترل " ابزارهای I/O در طراحی هایی با کمترین تعداد اجزاء ممکن مناسب هستند ، اما ریز پردازنده ها برای " پردازش " اطلاعات در سیستم های کامپیوتری مناسبند .

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

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

        وظایفی که میکروها انجام می دهند وظایف تازه ای نیستند . آنچه جدید است این است که طراحی ها با تعداد اجزای کمتری از گذشته انجام می شوند . طراحی هایی که درگذشته با استفاده از ده ها یا حتی صدها IC انجام می شدند امروزه با یک میکروکنترلر و اجزایی به تعداد انگشتان دست قابل انجام اند . کاهش تعداد اجزاء که نتیجه ی مستقیم قابلیت برنامه ریزی و توانایی زیاد میکروکنترلرها در ایجاد یکپارچگی می باشد ، معمولا منجر به زمان طراحی و ساخت کوتاه تر ، هزینه ی تولید پایین تر ، مصرف توان کمتر و قابلیت اطمینان بیشتر می شود . اعمال منطقی که نیازمند چندین IC می باشند ، اغلب توسط یک میکروکنترلر با اضافه کردن یک برنامه ی کنترلی انجام می شوند .

        عیب کار در سرعت است . راه حل های میکروکنترلی هرگز در سرعت به پای راه حلهای مشابه با اجزای گسسته نمی رسند . در موقعیت هایی که نیاز به پاسخ های بسیار سریع به رویدادها وجود دارد ( که البته به ندرت چنین کاربردهایی پیدا می شوند ) میکروها عکس العمل ضعیفی از خود نشان می دهند .

        بکار بردن میکروها برای چنین عملی چندان مرسوم نیست ، اما این امکان وجود دارد . در بسیاری از کاربردها بویژه آنهایی که با عملکرد انسان سروکار دارند این که تأخیر ها به نانوثانیه انداره گیری شوند یا میکروثانیه و میلی ثانیه اهمیتی ندارند ، ( مثلا هنگامی که فشار روغن ماشین شما افت میکند ، آیا لازم است که ظرف چند میکروثانیه مطلع شوید ؟) .

        میکروکنترلرها می توانند عملیات منطقی را انجام دهند و از این گذشته هر چه طراحی ها پیچیده تر باشند مزایای طراحی میکروکنترلری ، بیشتر خود را نشان میدهند . تعداد کم اجزا مزیتی است که قبلا به آن اشاره شد و علاوه بر آن عملیات پیش بینی شده در برنامه کنترلی را می توان تنها با تغییر نرم افزار دگرگون کرد و این روش کمترین اثر ممکن را روی چرخه ی تولید خواهد گذاشت

        آنکه در تنهاترین تنهاییم تنهای تنهایم گذاشت کاش تنها کسش در تنها ترین تنهایش تنهای تنهایش نهد!

        دیدگاه


          #5
          پاسخ : مقالات آموزشی میکروکنترلر Avr و نمونه برنامه های مربوطه



          خانواده میکروکنترلرهای AVR شامل طیف گسترده ای از آی سی ها است که از 8 پایه شروع و به 64 پایه ختم می شود. اما در بین این طیف گسترده تعدادی استفاده عمومی تری دارند مانند ATMEGA32 . که در تمام مثالهای آورده شده از این آی سی استفاده شده است .

          مشخصات سخت افزاری ATMEGA32 :

          شکل ظاهری و پایه ها:

          ATMEGA32 در سه نوع بسته بندی PDIP با 40 پایه و TQFP با 44پایه و MLF با 44 پایه ساخته میشود که در بازار ایران بیشتر نوع PDIP موجود میباشد .

          ATMRGA32 دارای چهار پورت 8بیتی ( 1 بایتی ) دارد که علاوه بر اینکه بعنوان یک پورت معمولی میتوانند باشند کارهای دیگری نیز انجام میدهند . بطور مثال PORTA میتواند بعنوان ورودی ADC (تبدیل ولتاژ آنالوگ به کد دیجیتال ) استفاده شود که این خاصیت های مختلف پورت در برنامه ای که نوشته میشود تعیین خواهد شد .
          ولتاژ مصرفی این آی سی از 4.5 V تا 5.5V میتواند باشد .
          فرکانس کار هم تا 16MHz میتواند انتخاب شود که تا 8MHz نیازی به کریستال خارجی نیست و در داخل خود آی سی میتواند تامین شود . فرکانس کار از جمله مواردی است که باید در برنامه تعیین شود . لازم به ذکر است که این فرکانس بدون هیچ تقسیمی به CPU داده میشود . بنابراین این خانواده از میکروکنترلرها سرعت بیشتری نسبت خانواده های دیگر دارند .
          پایه ی شماره 9 نیز ریست سخت افزاری میباشد و برای عملکرد عادی آی سی نباید به جایی وصل شود و برای ریست کردن نیز باید به زمین وصل میشود .
          پایه های 12 , 13 نیز برای استفاده از کریستال خارجی تعبیه شده است .


          ساختار داخلی ATMGA32 :
          برنامه ای که برای میکروکنترلر در کامپیوتر نوشته میشود وقتی که برای استفاده در آی سی ریخته میشود ( توسط پروگرامر مخصوص آن خانواده ) در مکانی از آن آی سی ذخیره خواهد شد بنام ROM . حال در ATMEGA32 مقدار این حافظه به 32KB ( 32 کیلوبایت ) میرسد .
          در این آی سی مکانی برای ذخیره موقت اطلاعات یا همان RAM هم وجود دارد که مقدارش 2KB است .
          در RAM اطلاعات فقط تا زمانی که انرژی الکتریکی موجود باشد خواهد ماند و با قطع باتری اطلاعات از دست خواهند رفت . به همین منظور در ATMEGA32 مکانی برای ذخیره اطلاعات وجود دارد که با قطع انرژی از دست نخواهند رفت . به این نوع حافظه ها EEPROM گفته میشود که در این آی سی مقدارش 1KB است و تا 100,000 بار میتواند پر و خالی شود .

          نرم افزار
          نرم افزار مورد نیاز برای برنامه نویسی :
          حال میخواهیم طرز نوشتن برنامه برای میکروکنترلرهای خانواده ی AVR را شروع کنیم . پس برای اینکار نیاز به یک نرم افزار داریم که بتوانیم در آن برنامه ی خود را بنویسیم . یکی از نرم افزارهای قدرتمند برای انجام دادن اینکار نرم افزاریسیت بنام Bascom AVR . در این نرم افزار همانطور که از نامش معلوم است برنامه باید بزبان Basic که زبانی با سطح بالا (HLL) است نوشته شود . همچنین این نرم افزار دارای شبیه ساز داخلی برای تست کردن برنامه نوشته شده است که یکی از ویژگیهای این نرم افزار میباشد .


          تحلیل برنامه

          حال به توضیح تک به تک قسمتها میپردازیم :

          ۱:در قسمت معرفی آی سی از کلمه کلیدی $Regfile برای معرفی استفاده شده است . این دستور به این صورت است که باید بعد ازآن کلمه معرف آی سی مورد استفاده را در جلوی آن وارد کنیم . البته برای هر آی سی کلمه ی مخصوصی وجود دارد که برای ATMEGA32 باید کلمه ی M32def.dat را تایپ کرد . البته باید توجه داشت که این کلمه باید داخل یک جفت کوتیشن ( گ + Shift ) قرار گیرد :
          $Regfile = “M32def.dat”

          ۲: در قسمت بعدی که تعیین فرکانس کاری است کلمه کلیدی $Crystal باید نوشته شود و آنرا باید مساوی با فرکانس کار بر حسب هرتز قرار داد :
          $Crystal = 1000000

          ۳: حال به بخش معرفی سخت افزار رسیدیم . در این برنامه چون پورت B باید بتواند جریان بیرون دهد و سخت افزار خارجی ای که همان LED است را روشن کند بعنوان خروجی تعریف میشود . همیشه برای معرفی سخت افزار از کلمه کلیدی Config اسفاده میشود . پس برای خروجی کردن پورت B مینویسیم :
          Config Portb = output

          ۴: چون در این برنامه نیازی به تعریف متغیری نبود به بخش برنامه اصلی میرویم و در این قسمت عددی را به پورت B خواهیم فرستاد تا طبق آن LED ها روشن شوند . البته ذکر این نکته لازم است که اگر بخواهیم عددی را در مبنای دودویی بنویسیم ابتدا باید &B را نوشته و بعد ععد مورد نظر را تایپ کنیم و همینطور برای نوشتن در مبنای هگز که &H تایپ میشود و اگر هیچکدام از کلمات ذکر شده را ننویسیم عدد در مبنای دسیمال محسوب میشود .

          ۵: در آخر برنامه نیز از کلمه کلیدی END برای مشخص نمودن پایان برنامه استفاده شده است .

          LCD :
          در کل دو نوع LCD وجود دارد . یکی از آنها را LCD کارکتری گویند که فقط قابلیت نمایش حروف و اعداد و کارکترهایی همچون ؟ و ! و غیره را دارد و نوع دیگر LCD گرافیکی است که قابلیتهای LCD گرافیکی بعلاوه ی نمایش تصویر در آن جمع شده اند . هدف ما در اینجا کار با LCD کارکتری خواهد بود .

          معرفی LCD کارکتری :
          LCD های کارکتری خود به چند نوع دیگر از لحاظ اندازه تقسیم بندی میشوند . که از LCD هایی با 1 سطر و 1 ستون آغاز میشوند تا اندازهایی مثل 4 سطر و 40 ستون که البته تمام آنها از 16پایه تشکیل شده اند.


          برای راه اندازی LCD توسط AVR نیازی به دانستن جزئیات طرز کار LCD نیست . برای کار با LCD علاوه بر پایه های تغذیه و CONTRAST ( تنظیم روشنایی ) که باید مانند شکل مداری پایین بایاس شوند نیاز به 6 پایه ی دیگر است که عبارتند از پایه های :
          RS , E , DB4 , DB5 , DB6 , DB7 .

          تحلیل برنامه :

          ۱:برای تعیین نوع LCD از کلمات کلیدی Config و بعد از آن Lcd استفاده شده و آنها را مساوی نوع LCD مورد استفاده قرار میدهیم که در اینجا نوع مورد استفاده دارای 2 سطر و 16 ستون میباشد. پس بصورت زیر خواهیم نوشت :
          Config Lcd = 16*2

          ۲: در مرحله ی بعد ترتیب وصل کردن پایه ها را معرفی خواهیم کرد و برای اینکار پایه هایی از LCD را که برای راه اندازی آن استفاده میشود و قبلا نیز گفته شده بود را مساوی پایه هایی از میکروکنترلر قرار میدهیم که میخواهیم به آنها وصل شود و البته این نوع راه اندازی توسط AVR را که تنها با شش پایه صورت میگیرد را نوع راه اندازی PIN میگویند . پس طبق سخت افزار نشان داده شده بصورت زیر خواهیم نوشت :
          Config Lcdpin = pin , Rs = porta.0 , e = porta.1 , db4 = porta.2 , db5 = porta.3 , db6 = porta.4 , db7 = porta.5
          ( به علامت , بین بخشها دقت کنید . )

          ۳: بعد از انجام کارهای بالا که جزو بخش معرفی سخت افزار محسوب میشوند به سراغ برنامه اصلی میرویم که کار آن نمایش متن روی LCD است و برای انجام اینکار از کلمه کلیدی LCD و در جلوی آن متنی که باید نمایش داده شود استفاده میکنیم و باید توجه داشت که متن را باید داخل کوتیشن قرار داد .

          ۴: در انتهای برنامه نیز END را مینویسیم .

          نحوه ی کامپایل برنامه و پروگرام کردن IC

          کامپایل برنامه نوشته شده :
          بعد از نوشتن برنامه باید آنرا کامپایل کرد تا اگر اشتباهی در تایپ کلمه ای وجود داشته باشد برای اصلاح آن اخطار داده شود و فایلهای از جمله فایل هگز که برای پروگرام کردن نیاز است ابجاد گردند . برای کامپایل برنامه همانطور که در تصویر بخش اول نمایش داده شده است باید از دکمه ی F7 استفاده کرد . با انجام اینکار برنامه ی ما کامپایل خواهد شد .
          پروگرام کردن IC :
          بعد از کامپایل برنامه نوبت به آن رسیده است که با نحوه ریختن برنامه داخل IC یا باصطلاح پروگرام کردن آشنا شوید . پس نیاز است که یک دستگاه پروگرامر مختص به خانواده AVR داشته باشید . برای پروگرام کردن میکروکنترلرهای خانواده AVR انواع مختلفی پروگرامر که از استانداردهای خاصی پیروی میکنند وجود دارد که مصرف عمومی تر را پروگرامهای نوع STK200/300 دارند که البته دارای مدار بسیار ساده ایست و برای پروگرام کردن از کابل LPT ( پرینتر ) استفاده میکند و در بازار هم بیشتر این نوع پروگرامر یافت میشود .
          هنگامیکه میخواهیم کار پروگرام کردن را شروع کنیم ابتدا باید پروگرامر را به کامپوتر وصل نموده و بعد از توسط محیطی از نرم افزار Bascom AVR نوع آنرا برای کامپیوتر معرفی کنیم ( اینکار فقط یکبار انجام شود کافیست ) . برای شناساندن پروگرامر به کامپیوتر از منوی Option گزینه Programmer را انتخاب میکنیم :

          بعد از انتخاب این گزینه کادر نمایش داده شده که در قسمت نمایش داده شده توسط خط قرمز نوع پروگرامر را انتخاب میکنیم :
          بعد از انجام تنظیمات بالا میتوان آی سی را پروگرام کرد . به این صورت که
          گزینه Program را انتخا ب میکنیم . بعد از انتخاب این گزینه کادر زیر باز خواهد شد که با کلیک روی آیکون مربوط آی سی پروگرام میشود .
          همچنین دستگاههایی برای تست برنامه نوشته شده وجود دارند که روی آنها تمام وسایل مورد نیاز مانند LCD و Keypad و ... قرار دارد و کاربرمیتواند با سیم بندی ای که براحتی توسط کابلهای مخصوصی انجام میدهد پورتهای آی سی را به سخت افزارهای جانبی اتصال دهد و برنامه خود را مورد آزمایش قرار دهد . به این دستگاهها Emulator میگویند.

          آنکه در تنهاترین تنهاییم تنهای تنهایم گذاشت کاش تنها کسش در تنها ترین تنهایش تنهای تنهایش نهد!

          دیدگاه


            #6
            پاسخ : مقالات آموزشی میکروکنترلر Avr و نمونه برنامه های مربوطه

            سلام
            آموزش avr برای کسانی که می خواهند کدویزن یاد بگیرند.
            http://h1.ripway.com/hayati/avr.pdf

            دیدگاه


              #7
              پاسخ : مقالات آموزشی میکروکنترلر Avr و نمونه برنامه های مربوطه

              اطلاعات کلی در مورد میکروکنترلرهای AVR



              مقدمه:
              با عرض سلام و احترام خدمت دوست عزیز خواننده
              به جهت اهمیت یافتن روز افزون میکروکنترلرهای جدید AVR به ارائه اطلاعات کلی در مورد ساختار داخلی و انواع مختلف میکروهای AVR پرداخته و پس از آن به ارائه ی نکات کاربردی می پردازم.
              اگر شما درباره ی میکروکنترلرها پیش زمینه ای داشته باشید آنگاه آمادگی بیشتری برای فهم این مقاله خواهید داشت پس اگر یک خواننده مبتدی در میکروکنترلرها هستید ممکن است در درک برخی مطالب کمی دچار مشکل شوید که با پرسیدن چند سوال کوچک از کسی که اینکاره است می توانید بعضی ابهامات را برطرف کنید.امیدوارم همیشه پیروز و شاد باشید .

              مقدمه ای بر میکروکنترلرهای AVR :
              میکروهای AVR دارای انعطاف پذیری بی همتایی هستند.آنها قادر به اجرای هر نوع ترکیب کدی از طریق زبانهای C و Assembly هستند و قادرند از طریق این برنامه ها تمام پارامترهای ممکن در یک سیکل یا چرخه ماشین را با دقت بسیار بالا هماهنگ کنند. میکروهای AVR با یک معماری کارامد که هم خوانی زیادی با زبان C دارد طراحی شده اند.یعنی کد نوشته شده به زبان C برای آنها پس از Compile ،کمترین کد اضافی را تولید کرده و دستورات میکروهای AVR به راحتی با دستورات زبان C معادل سازی می شوند.
              میکرو AVR دارای معماریی است که میتواند در تمام جهات مورد استفاده شما،عمل کند میکرو AVR معماریی دارد که برای شما کارایی 16 بیتی ارائه می دهد که البته قیمتش به اندازه یک 8 بیتی تمام می شود.
              برتری های کلیدی AVR :
              دارای بهترین MCU برای حافظه فلش در جهان ! (MCU: Master Control Unit)
              دارای سیستمی با بهترین هماهنگی
              دارای بالاترین کارایی و اجرا در CPU (یک دستورالعمل در هر سیکل کلاک)
              دارای کدهایی با کوچکترین سایز
              دارای حافظه خود برنامه ریز
              دارای واسطه JTAG که با IEEE 1149.1 سازگار است
              (IEEE: Institute of Electrical and Electronics Engineers.)
              دارای سخت افزار ضرب کننده روی خود
              دارای بهترین ابزارها برای برنامه نویسی
              دارای حالات زیادی برای به روز کردن یا Upgrade .
              واژگان کلیدی AVR :
              میکرو کنترلر AVR به منظور اجرای دستورالعملهای قدرتمند در یک سیکل کلاک(ساعت) به اندازه کافی سریع است و می تواند برای شما آزادی عملی را که احتیاج دارید به منظور بهینه سازی توان مصرفی فراهم کند.
              میکروکنترلر AVR بر مبنای معماری RISC(کاهش مجموعه ی دستورالعملهای کامپیوتر) پایه گذاری شده و مجموعه ای از دستورالعملها را که با 32 ثبات کار میکنند ترکیب می کند.
              به کارگرفتن حافظه از نوع Flash (که برنامه در آن ذخیره می شود،) و همه ی AVR ها به طور یکسان از آن بهره می برند از جمله مزایای آنها است.
              یک میکرو AVR می تواند با استفاده از یک منبع تغذیه 2.7 تا 5.5 ولتی از طریق شش پین ساده در عرض چند ثانیه برنامه ریزی شود یا Program شود.(In System Programming=ISP)
              انواع توان پایین (Low Power) میکروهای AVR می توانند با 1.8 ولت تا 5.5 ولت تغذیه شوند.

              راه حلهایی که AVR پیش پای شما می گذارد، برای یافتن نیازهای شما مناسب است:
              با داشتن تنوعی باور نکردنی و اختیارات فراوان در کارایی محصولات AVR، آنها به عنوان محصولاتی که همیشه در رقابت ها پیروز هستند شناخته شدند.در همه محصولات AVR مجموعه ی دستورالعملها و معماری یکسان هستند بنابراین زمانی که حجم کدهای دستورالعمل شما که قرار است در میکرو بریزید به دلایلی افزایش یابد یعنی بیشتر از گنجایش میکرویی که شما در نظر گرفته اید شود می توانید از همان کدها استفاده کنید و در عوض آن را در یک میکروی با گنجایش بالاتر بریزید.
              خانواده های محصولات AVR :
              Tiny AVR:
              میکروکنترلری با اهداف کلی و با بیش از 4 کیلو بایت حافظه فلش و 128 بایت حافظه استاتیک(SRAM) و قابل برنامه ریزی( EEPROM) است.
              Mega AVR:
              این نوع میکروها قابلیت خود برنامه ریزی دارند(از روی حافظه ی ROM خارجی) و می توان آنها را بدون استفاده از مدارات اضافی برنامه ریزی کرد همچنین بیش از 256K بایت حافظه فلش و 4K بایت حافظه استاتیک و قابل برنامه ریزی دارند.
              LCD AVR:
              این نوع میکرو دارای درایور برای نمایشگر LCD با قابلیت کنترل اتوماتیک تباین و مقایسه تصویر می باشد.باعث افزایش عمر باتری می شود و در حالت فعال دارای توان مصرفی پایینی است.

              ابعاد مختلف میکروهای AVR را در اشکال زیر مشاهده می کنید:
              --------------------------------------------------------------------------------
              AVR های مدل tiny:
              به خود اجازه ندهید که نام آن شما را گول بزند... میکروهای مدل tiny توانایی های عظیمی دارند.به خاطر کوچک بودن و داشتن MCU بسیار پر قدرت به اینگونه میکروها نیاز فراوانی هست آنها به هیچ منطق خارجی نیاز نداشته و به همراه یک مبدل آنالوگ به دیجیتال و یک حافظه قابل برنامه ریزی EEPROM قابلیتهای خود را ثابت می کنند.
              نکات کلیدی و سودمند مدل Tiny :
              • آنها به منظور انجام یک عملیات ساده بهینه سازی شده و در ساخت وسایلی که به میکروهای کوچک احتیاج است کاربرد فراوان دارند.
              • کارایی عظیم آنها در برابر ارزش و بهای وسایل موثر است.
              AVR های مدل Mega:
              اگر شما به میکرویی احتیاج دارید که دارای سرعت و کارایی بالا باشد و توانایی اجرای حجم زیادی از کد برنامه را داشته و بتواند داده های زیادی را سروسامان دهد باید از AVR های مدل Mega استفاده کنید آنها به ازای هر یک مگا هرتز سرعت ، توانایی اجرای یک میلیون دستورالعمل در هر یک ثانیه را دارند همچنین قابل برنامه ریزی و بروزرسانی کدها با سرعت و امنیت بسیار بالایی هستند.
              نکات کلیدی و سودمند مدل Mega :
              • حافظه سریع از نوع فلش با عملکرد خود برنامه ریز (Boot Block)
              • دقت بسیار بالای 8-کانال در تبدیل آنالوگ به دیجیتال 10 بیتی
              • USART و SPI و TWI بر طبق واسطه های سریال
              • واسطه ی JTAG بر طبق IEEE 1149.1
              TWI: Two Wire Interface is a byte oriented interface
              USART: Universal Serial Asynchronous Receiver/Transmitter
              SPI: Serial Peripheral Interface
              واسط JTAG فقط در میکروهای با بیش از 16 کیلوبایت حافظه فلش موجود است.
              راههای مختلف برای عمل برنامه ریزی:
              موازی یا Parallel
              خود برنامه ریزی توسط هر اتصال فیزیکی:
              • برنامه ریزی توسط هر نوع واسطه ای از قبیل TWI و SPI و غیره

              ISP:
              • واسطه سه سیمی محلی برای بروزرسانی سریع
              • آسان و موثر در استفاده

              واسطه JTAG
              مباحث مربوط به JTAG باید در مبحثی جدا بررسی شوند.
              --------------------------------------------------------------------------------
              نرم افزار ارائه شده توسط شرکتATMEL به نام AVR Studio 4 :

              این نرم افزار به صورت رایگان در سایت شرکت ATMEL قرار دارد می توانید با رجوع به آدرس http://www.atmel.com آن را دانلود کنید.
              این نرم افزار در حقیقت یک اسمبلر(مترجم) و دیباگر(اجرای خط به خط برنامه برای بررسی آن.) برای محصولات ATMEL AVR است و به صورت کاملا ویژوالی است. و قابلیت ترجمه و دیباگ کدها را به زبان Assembly دارد و ...
              می تواند با انواع دستگاههای برنامه ریز میکرو ارتباط برقرار کند و کدها را در میکرو بریزد.

              نرم افزار CodeVision :

              از نرم افزار CodeVision می توان برای نوشتن کد به زبان C برای AVR استفاده کرد؛در حالی که از نرم افزار Bascom برای برنامه نویسی به زبان Basic استفاده می شود.

              نرم افزار WinAVR :

              از نرم افزار WinAVR هم می توان برای نوشتن کد به زبان C برای AVR استفاده کرد؛که البته open source هست و نمونه کد, برای آن زیاد پیدا می شود.
              آنکه در تنهاترین تنهاییم تنهای تنهایم گذاشت کاش تنها کسش در تنها ترین تنهایش تنهای تنهایش نهد!

              دیدگاه


                #8
                پاسخ : مقالات آموزشی میکروکنترلر Avr و نمونه برنامه های مربوطه

                سلام
                ثبات های Avr:
                http://h1.ripway.com/hayati/avr_reg.pdf

                آموزش avr برای کسانی که می خواهند کدویژن یاد بگیرند:
                http://h1.ripway.com/hayati/avr.pdf

                دیدگاه


                  #9
                  پاسخ : مقالات آموزشی میکروکنترلر Avr و نمونه برنامه های مربوطه

                  ماشالا به Joop .
                  تو کاره تایپی :mrgreen:
                  خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

                  دیدگاه


                    #10
                    پاسخ : مقالات آموزشی میکروکنترلر Avr و نمونه برنامه های مربوطه

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

                    دیدگاه


                      #11
                      پاسخ : مقالات آموزشی میکروکنترلر Avr و نمونه برنامه های مربوطه

                      برای پسورد www.eca.ir رو چک کن......

                      دیدگاه


                        #12
                        پاسخ : مقالات آموزشی میکروکنترلر Avr و نمونه برنامه های مربوطه

                        با سلام
                        دوست عزیز mohsen301 لینکها اون زمانی که این تاپیک ایجاد شد همه شان فعال بود ولی الان متسفانه غیر فعال اند به هر حال شرمنده :sad: اگر لینک جدیدی پیدا کردم حتما براتون ارسال میکنم
                        موفق باشید.
                        آنکه در تنهاترین تنهاییم تنهای تنهایم گذاشت کاش تنها کسش در تنها ترین تنهایش تنهای تنهایش نهد!

                        دیدگاه


                          #13
                          پاسخ : مقالات آموزشی میکروکنترلر Avr و نمونه برنامه های مربوطه

                          نوشته اصلی توسط joop
                          با سلام خدمت تمامی دوستان امیدوارم مطالب ذیل مورد استفاده عزیزان واقع شود. :wow:
                          1-آموزش فیوز بیت ها ,منابع کلاک وAVR- RESET
                          http://forum.pnkavosh.com/attachment.php?attachmentid=19&d=1193330960
                          2-آموزش وقفه های خارجی AVR
                          http://forum.pnkavosh.com/attachment.php?attachmentid=21&d=1193332333
                          http://forum.pnkavosh.com/attachment.php?attachmentid=21&d=1193332333
                          3-تایمر کانتر صفر
                          http://forum.pnkavosh.com/attachment.php?attachmentid=22&d=1193332520
                          http://forum.pnkavosh.com/attachment.php?attachmentid=56&d=1193479134
                          http://forum.pnkavosh.com/attachment.php?attachmentid=57&d=1193479148
                          4-آموزش تایمر کانتر یک
                          http://forum.pnkavosh.com/attachment.php?attachmentid=24&d=1193332663
                          http://forum.pnkavosh.com/attachment.php?attachmentid=59&d=1193479332
                          http://forum.pnkavosh.com/attachment.php?attachmentid=60&d=1193479348
                          5-آموزش تایمر دو
                          http://forum.pnkavosh.com/attachment.php?attachmentid=23&d=1193332592
                          http://forum.pnkavosh.com/attachment.php?attachmentid=58&d=1193479227
                          6-آموزش درگاه سریال
                          http://forum.pnkavosh.com/attachment.php?attachmentid=25&d=1193332741
                          http://forum.pnkavosh.com/attachment.php?attachmentid=61&d=1193479437
                          7-آموزش I2C BUS
                          http://forum.pnkavosh.com/attachment.php?attachmentid=62&d=1193479546
                          http://forum.pnkavosh.com/attachment.php?attachmentid=63&d=1193479558
                          8-آموزش مبدل آنالوگ به دیجیتال
                          http://forum.pnkavosh.com/attachment.php?attachmentid=64&d=1193479697
                          http://forum.pnkavosh.com/attachment.php?attachmentid=65&d=1193479775
                          9-آموزش تنظیمات ریجیسترهای IO
                          http://forum.pnkavosh.com/attachment.php?attachmentid=29&d=1193465449




                          سلام

                          من مقاله آموزش I2C BUS رو می خوام ولی باز نمی شه !!!! :eek: چی کا کنم :cry2:
                          گاهی دلم برای چوپان دروغگو خیلی می سوزد.بیچاره 2 بار بیشتر دروغ نگفت انگشت
                          نماشد... ولی ما هنوز صادق ترینیم

                          دیدگاه


                            #14
                            پاسخ : مقالات آموزشی میکروکنترلر Avr و نمونه برنامه های مربوطه






                            فهرست :

                            + تاریخچه
                            + منافع تولید کننده و طراح
                            + مقدمه ای بر I2C Bus
                            + سخت افزار
                            + پروتکل ارتباطی
                            + انواع استانداردهای I2C
                            + کاربردهای I2C




                            http://66.102.9.104/search?q=cache:-...=clnk&cd=3


                            یه دستی به سر رو گوشش بکشین. مطالبش خیلی عالیه.

                            اگر تونستین از اینجا بگیرینش.
                            http://iscc2007.iust.ac.ir/Shahri/Co.../I2C%20BUS.ppt

                            دیدگاه


                              #15
                              پاسخ : مقالات آموزشی میکروکنترلر Avr و نمونه برنامه های مربوطه

                              با سلام...لینکش کار نمیکنه ...اگه میشه دوباره upload کنین

                              دیدگاه

                              لطفا صبر کنید...
                              X