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

 آموزش  رباتیک برای دانش آموزان و همه علاقمندان علوم رباتیک و الکترونیک

آموزشگاه رباتیک در تهران     تلفن    :  77422883

 

 

 

قبل از شروع درس کدویژن لازم است به اطلاع دوستان برسانم برای برنامه نویسی آی سی های میکرو کنترلر AVR شما می توانید هم از برنامه بیسیک استفاده کنید و یا  از برنامه سی  .

 

 

       در اینجا آموزش سی و برنامه کدویژن شرح داده شده است ، لینک ثبت نام  آموزش میکروکنترل  AVR  :

 

https://www.elector.ir/AVR.htm

 

 

 

درس بیست و  هفت  : ادامه آموزش کدویژن

 

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

همانطور که گفته شد فقط «زبان ماشین»(Machine Language)، زبان قابل فهم برای پردازنده ی کامپیوتر است، و برنامه هایی که در زبان های دیگر می نویسیم برای اینکه بتوانند توسط پردازنده اجرا شوند باید حتماً توسط کامپایلرها به «زبان ماشین» ترجمه شوند. اما نوشتن برنامه در این زبان برای ما بسیار مشکل است، زیرا دستورات قابل فهم برای این زبان بسیار ابتدایی و ساده هستند و به سختی می توان برنامه های حرفه ای و الگوریتم های پیچیده را در آن پیاده سازی کرد. مثلاً حتی برای انتقال داده از یک متغیر به متغیر دیگر، باید چندین خط برنامه بنویسید، اما در زبان C این کار در 1 عبارت انجام می شود. برنامه نویسی در این زبان دشواری های مختلفی دارد که فعلاً به آن ها نمی پردازیم.

به همین خاطر ما برنامه های خود را در زبان C می نویسیم و باقی کارها را به کامپایلر می سپاریم. کامپایلر ابتدا برنامه ی ما را از زبان C به زبان اسمبلی ترجمه می کند، سپس برنامه ی دیگری به نام «اسمبلر»(" Assembler") برنامه ی ما را از اسمبلی به «زبان ماشین» تبدیل می کند.
زبان اسمبلی یک پله کاملتر از زبان ماشین است. برنامه نویسی در این زبان بسیار ساده تر از زبان ماشین است و بعضی از مشکلاتی که در زبان ماشین وجود داشت در این زبان برطرف شده و یکی از زبان های رایج فعلی برای برنامه نویسی میکروکنترلرها همین زبان اسمبلی است که بیشتر هم در برنامه نویسی میکروکنترلرهای سری 8051 استفاده می شود. اما برنامه نویسی در این زبان هم بسیار پیچیده تر از زبان
C است و نوشتن برنامه های حرفه ای و طولانی در این زبان بسیار دشوار است.


حال چگونه باید این مراحل را در محیط
CodeVisionانجام داد:
بعد از نوشتن برنامه، شما می توانید با فشار دادن کلید
F9 برنامه ی خود را کامپایل کنید. با فشار دادن همزمان Shift+F9 برنامه ی شما ابتدا کامپایل شده و به اسمبلی تبدیل می شود وسپس توسط اسمبلر، به زبان ماشین تبدیل می شود. سپس فایلی با پسوند .HEX در محلی که شما مشخص کرده اید(در هنگام ساختن پروژه) ساخته می شود.این فایل همان برنامه ی شماست و شما باید این فایل را طی مراحلی که در ادامه توضیح داده می شود، در میکروکنترلر Load کنید.

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

همانطور که در جلسات پیش مطرح شد، CodeVision مجموعه ای از چند برنامه ی مختلف است که در کنار هم جمع شده اند تا همه ی نیازهای کاربر را برطرف کنند. در اینجا هم پروگرامر CodeVision مشکل ما رو حل می کند. برای استفاده از پروگرامر، باید در نوارابزار بالا روی "Chip Programmer" کلیک کنید تا پنجره ای به شکل زیر باز شود.



حال از منوی
File"" ِ همین پنجره، گزینه ی Load Flash"" را انتخاب کنید. حالا فایلی که در قسمت بالا ساختید (.Hex) را از پوشه ی "exe" انتخاب کنید. البته به صورت پیش فرض این کار انجام می شود و فایل .HEX برنامه ی شما در پروگرامر Load می شود، اما ممکن است گاهی به دلایل مختلف نیاز باشد فایل دیگری را Load کنید.

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

حالا از منوی "Program" گزینه ی "Erase Chip" را انتخاب کنید تا برنامه های قبلی ای که رو میکروکنترلر شما هست پاک شود و میکروکنترلر آماده دریافت برنامه ی جدید شود. سپس از همین قسمت، گزینه ی "Flash" را انتخاب کنید تا برنامه ی جدید شما در داخل میکروکنترلر Load شود. حالا میکروکنترلر شما پروگرام شده و آماده ی استفاده است.

مشکلات احتمالی:

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



نکته ی مهم:یکی از رایج ترین ایرادات که مربوط به نگذاشتن ";" در پایان جملات است، ایراد "
missing';' " است.

سپس بعد از رفع ایراد ، دوباره برنامه را کامپایل کنید و اگر Error در آن قسمت نبود، برنامه ی شما کامل است.

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

 

 

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

در شكل زير شماي كلي ATMEGA16 آورده شده است

 

پايه‌ي 10: تغذيه‌ي آي سي است و بايد به 5ولت متصل گردد. ولتاژ تغذيه براي ميكروكنترلر‌هاي Atmega16، بين 5.5_4.5 ولت بايد باشد، و براي Atmega16L، بين 5.5_2.7 ولت است.

پايه‌هاي 11 و 31: اين 2 پايه GND هستند و بايد به قطب – منبع تغذيه متصل شوند.

پايه‌ي 30: اين پايه، تغذيه‌ي مبدل آنالوگ به ديجيتال است(ADC) و اگر بخواهيم از اين امكان ميكروكنترلرهاي AVR استفاده كنيم، بايد اين پايه را به همان 5ولت منبع تغذيه متصل كنيم.

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

مدار پايه‌ي Reset:

اين پايه براي Reset كردن آي سي به كار مي رود. Reset شدن ميكروكنترلر مثل Reset شدن كامپيوتر است و باعث مي‌شود كه آي سي همه‌ي برنامه‌هاي خود را دوباره از اول اجرا كند.

اين پايه بايد در حالت عادي 1 منطقي باشد و هرگاه بخواهيم آي‌سي را Reset كنيم، بايد آنرا 0 منطقي كنيم(حداقل 16 ميلي ثانيه) و سپس 1 منطقي كنيم.

براي اين پايه، مي‌توان مدار زير را بست.



در اين مدار، پايه‌ي
Reset به وسيله‌ي يك مقاومت 10 كيلواهمي به VCC وصل شده است، و هر گاه كليد را فشار دهيم، پايه مستقيماً به GND وصل مي‌شود و آي سي Reset مي‌شود.

 

اسيلاتور خارجي:

ميكروكنترلر هم مثل كامپيوتر شما يك فركانسِ كاري دارد، مثلاً وقتي مي‌گوييد CPU كامپيوتر شما 2.5 گيگا هرتز است، در حقيقت شما فركانس كاري پردازنده‌ي كامپيوتر خود را گفته‌ايد.

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



يكي از مزيت‌هاي
Atmega16 اين است كه يك نوسان ساز در داخل خود ميكروكنترلر تعبيه شده است و نيازي نيست شما از اين كريستال‌ها استفاده كنيد.

اما در Atmega16 اين نوسان ساز دقت خوبي ندارد و براي كارهايي كه نياز به دقت بالا دارند(بعداً در اين مورد توضيح خواهيم داد)، بايد از كريستال يا نوسان ساز خارجي استفاده كرد. اما فعلاً براي كار ما نيازي به كريستال خارجي نيست.

پايه‌هاي 12 و 13 براي اين منظور در نظر گرفته شده‌اند. براي اتصال كريستال به آي‌سي بايد مدار زير را كه شامل 2 عدد خازن عدسي 30 پيكوفاراد است به اين 2 پايه متصل كنيد.



دقت كنيد كه پايه‌هاي كريستال تفاوتي با هم ندارند و در نتيجه فرقي نمي‌كند از كدام طرف در مدار قرار گيرد.(مثل
LED مثبت و منفي ندارد)

براي ميكروكنترلرهاي ATMEGA16L، حداكثر از اسيلاتورهاي 8 مگا هرتز مي‌توان استفاده نمود، اما براي ATMEGA16 مي‌توان از 12 يا 16 مگاهرتز هم استفاده نمود.

يكي ديگر از ويژگي‌هاي ميكروكنترلر‌هاي
AVR اين است كه براي پروگرام كردن آن‌ها نيازي به دستگاه‌پروگرامر نيست، و فقط با يك كابل ساده‌ي 5 رشته مي‌توان آن‌ها را به سادگي توسط كامپيوتر پروگرام كرد.

در جلسه‌ي آينده، نحوه‌ي ساخت اين پروگرامر را براي ميكروكنترلر‌هاي خانواده‌ي AVR آموزش مي‌دهيم.

 

 

درس  بعدی    درس قبلی

 

درس 4  و 3                درس 6 و 5             درس 8 و 7         درس 10 و 9         درس   12  و  11               درس 14  و 13

 

درس  16 و  15             درس 18 و 17            درس 20 و 19        درس 22 و 21        درس 24 و 23               درس 26 و  25

 

درس 28 و 27                درس 30 و 29          درس 32 و 31        درس 34 و 33          درس 36 و 35               درس 38 و 37   

 

درس 40 و 39                درس 42 و 41           درس 44 و 43          درس 46 و 45          درس 48 و47             درس 50 و 49

 

درس 52 و 51            درس 54 و 53            درس 56 و 55          درس 58 و  57          درس 60 و 59              درس 62 و 61

 

 

 

آموزش رایگان رباتیک برای دانش آموزان و همه علاقمندان

 

آموزش رباتیک برای کودکان 4 تا 9 ساله

 

  آموزش رباتیک برای دانش آموزان

 

 آموزش کامپیوتر برای کودکان 4 تا 9 ساله

 

  آموزش کامپیوتر برای  دانش آموزان 

 

آموزش  کاربردی و عمومی کامپیوتر برای همه

 

 آموزش مهارتهای ICDL1 بصورت کاربردی

 

 آموزش مهارتهای ICDL2 بصورت کاربردی

 

آموزش  تایپ  10  انگشتی  -     تضمینی

 

آموزش کارمند امور دفتری و منشیگری - بخش  IT

 

آموزش سخت افزار کامپیوتر

 

آموزش فتوشاپ PHOTOSHOP

 

آموزش کورل  COREL

 

 آموزش تری دی مکس           3D MAX  

 

    آموزش  اتوکد   AUTOCAD

 

دوره های استاندار  فناوری اطلاعات  و علوم کامپیوتر ( بیش از 250 رشته )

 

 دوره های استاندار    الکترونیک ( بیش از 80 رشته )

 

       دوره های اخذ دیپلم کار دانش

 

آموزش عمومی و کاربردی برای دانش آموزان  

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

دوره های عمومی کاربردی برای شاغلین و کارجویان

   آموزش  فتو شاپ برای بزرگسالان (فشرده و کوتاه مدت)
آموزش کاربردی کامپیوتر برای بزرگسالان ( کوتاه مدت)
آموزش اینترنت برای بزرگسالان (فشرده و کوتاه مدت)
   آموزش  مهارت ICDL برای بزرگسالان (  کوتاه مدت)
 

آموزش تخصصی رباتیک  و  الکترونیک    

آموزش  اصول الکترونیک ( در چهار سطح )
آموزش نرم افزاری کاربردی الکترونیک (طراحی و آزمایشگاه )  
آموزش رباتیک در 12 ترم  ( و در سه سطح )
آموزش میکروکنترلر AVR ( در سه سطح )
آموزش میکرو کنترل ARM ( در سه سطح )
آموزش مبانی رباتیک ( استاندار فنی و حرفه ای )
آموزش سخت افزار  رباتیک ( استاندار فنی و حرفه ای ) 
آموزش میکروکنترلرها در رباتیک ( استاندار فنی و حرفه ای ) 
آموزش سخت افزار  رباتیک ( استاندار فنی و حرفه ای  
آموزش PSPICE  ( شبیه سازی مدارات الکترونیکی )
آموزش  ORCAD ( تحلیل مدارات )
آموزش PROTEUS ( طراحی فیبر مدارچاپی ) 
آموزش ALTIUM DESIGNER ( طراحی مدارچاپی )  
آموزش PROTEL  DXP (  طراحی مدارچاپی و رسم شماتیک ) 
آموزش  PIC  ( در سه سطح )
آموزش FPGA) VHDL )
آموزش   LABVIEW
آموزش   EWB ( الکترونیک ورک بنج )
آموزش  XMEGA
 

دوره های استاندار  فناوری اطلاعات ( بیش از 250 رشته )

آموزش 7 مهارت  ICDL 1
آموزش 7 مهارت  ICDL 2
مبانی فناوری اطلاعات ( IT  BASICS )
رایانه کار درجه 2
رایانه کار درجه 1
رایانه کار نرم افزار POWER POINT  
شهروند الکترونیکی (کار با اینترنت)
   آموزش   طراحی وب سایت
آموزش دوره کامل طراحی وب سایت
آموزش طراحی وب سایت با JOOMLA ( جوملا)
آموزش طراحی سایت با   WORDPRESS   ( ورد پرس )
آموزش  فروشگاه ساز MAGENTO (  مجنتو )
آموزش طراحی وب سایت  استاتیک

  آموزش    JQUERY   (جی کوئری ) 

    آموزش    SEO   ( سئو )

آموزش  ساخت فروشگاه اینترنتی

آموزش  وب   ASP.NET  -C# - NET-SQL-  

 

  آموزش  برنامه نویسی

آموزش برنامه نویسی  (اندروید ) ANDROID
آموزش برنامه نویسی( جاوا ) JAVA
آموزش برنامه نویسی ( سی پلاس پلاس )  ++C
آموزش برنامه نویسی   ( ای اس پی ) ASP.NET
آموزش برنامه نویسی   ( سی شارپ ) C#.NET
آموزش   SQL  SERVER
آموزش برنامه نویسی  کاربردی  
آموزش برنامه نویسی   ( لینوکس )  LINUX
آموزش  ساختمان داده و الگوریتم 
 

  آموزش شبکه و سخت افزار

آموزش فشرده ( نت ورک پلاس ) +NETWORK
آموزش فشرده شبکه   MCITP
آموزش فشرده شبکه  CCNA
آموزش برنامه نویسی   ( ای اس پی ) ASP.NET
آموزش برنامه نویسی   ( سی شارپ ) C#.NET
آموزش عملی سخت افزار +A
آموزش  امنیت شبکه
 

آموزش گرافیک 

آموزش فتوشاپ PHOTOSHOP   
آموزش کورل  COREL
آموزش ایلوستریتور ILLUSTRATOR   
آموزش ایندیزاین   INDESIGN
 

طراحی سه بعدی 

آموزش تری دی مکس  3D MAX   
آموزش  V-AAY   
آموزش راینو   RHINO   
آموزش ایلوستریتور ILLUSTRATOR   
 

آموزش  فنی و مهندسی  

آموزش کتیا  CATIA   
آموزش سالیدورک   SOLID WORKS
آموزش اتوکد  AUTO CAD   
آموزش متلب   MATLAB