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

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

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

 

 

 

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

 

ابتدا بايد يك نكته رو از مطالب جلسه‌ي پيش گوش زد كنم، براي بستن مدار Reset و همچنين كرستال خارجي، در ATMEGA16L هيچ الزامي وجود ندارد و صرفاً براي دقت بيشتر مي‌باشند.
در ضمن ياد آوري مي‌كنم كه ميكروكنترلر‌هاي
ATMEGA16L و ATMEGA16 تفاوت خاصي در ترتيب پايه‌ها و كارايي با يكديگر ندارند. مهمترين تفاوت اين 2 آي سي در فركانس كاري اين 2 آي سي است كه ATMEGA16L نمي‌تواند با فركانس بيش از 8 مگاهرتز كار كند.
خوب، همانطور كه قول داده بوديم، قراره اين جلسه ساخت يك پروگرامر بسازيم كه بتوانيم به وسيله‌ي آن، برنامه‌هايي كه در كامپيوتر مي‌نويسيم را به ميكروكنترلر منتقل كنيم.

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

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

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

براي ديدن پورت يا درگاه LPT (موازي) ، به پشت كيس كامپيوتر خود نگاه كنيد.

  



اين درگاه، درگاه ارتباط موازي(
Parallel) يا LPT نام دارد و يكي از رايج‌ترين كاربردهاي آن براي ارتباط با پرينتر است. البته اكثر پرينترهاي امروزي از طريق درگاه USB با كامپيوتر ارتباط برقرار مي‌كنند.

درگاه LPT داراي 25 پايه است كه به شكل زير شماره گذاري مي‌شوند.

 

براي ساختن اين پروگرامر ساده، شما احتياج به نيم متر كابل فِلَت 5 رشته و يك عدد سوكت نَري
LPT داريد. البته الزامي در استفاده از اين نوع كابل نيست و مي‌توان از هر كابل 5 رشته‌ي ديگري براي اين منظور اسفاده كرد.

 
سوكت نَري
LPT.

 

كابل فلت نيز در شكل زير نشان داده شده است.

 



شما بايد اين 5 رشته را به پايه‌هاي شماره‌ي 6و7و9و10و24‌ از اين سوكت لحيم كنيد.

 

حالا مي‌توانيد به وسيله‌ي اين 5 سيم ميكروكنترلر خود را پروگرام كنيد. كافيست اين سيم‌ها را به ترتيب زير به پايه‌هاي ميكروكنترلر وصل كنيد.

سيمي كه به پايه‌ي شماره‌ي 6 سوكت متصل شده است، بايد به پايه‌ي SCK در ميكروكنترلر شما وصل شود. در  SCK, ATmega16 پايه‌ي شماره‌ي 8 است.

پايه‌ي شماره‌ي 7 سوكت، بايد به پايه‌ي MOSI در ميكروكنترلر وصل شود. در MOSI ,ATmega16 پايه‌ي شماره‌ي 6 است.

 

پايه‌ي شماره‌ي 9 سوكت، بايد به پايه‌ي Reset در ميكروكنترلر وصل شود. در ATmega16 Reset پايه‌ي شماره‌ي 9 است.

 

پايه‌ي شماره‌ي 10  سوكت، بايد به پايه‌ي MISO در ميكروكنترلر وصل شود. درMISO,ATmega16 پايه‌ي شماره‌ي 7 است.

 

و در نهايت، پايه‌‌هاي شماره‌ي 18تا 25 نيز، بايد به GND يا همان زمين در ميكروكنترلر وصل شود. پايه‌ي 11و 31 در ATmega16L ، - ياهمان GND است.بهتر است براي اتصال اين پايه‌ به ميكروكنترلر، از يك مقاومت 1 كيلو اهم استفاده كنيد.

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

 

خلاصه اتصالات :

براي پروگرام کردن يک ميکروي AVR تنها به يک فيش پارالل (Parallel) که بهش LPT يا DB-25 هم ميگن نياز داريم. بعد بايد يک سري از پايه‌هاي ميکرو رو به پايه‌هاي فيش پارالل لحيم کرد.
پايه‌هاي مورد نياز ميکرو، MISO، MOSI، SCK، RESET و پايه زمين (GND) هستند .

 

 

 

 

 

درس  سی :روش تنظیم کدویژن برای پروگرامر

 

 

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

در جلسات پيش با بخش پروگرامر(Programmer) در CodeVision آشنا شديم. براي استفاده از نرم افزار پروگرامر، ابتدا بايد آن را با توجه به سخت‌افزاري كه براي پروگرام كردن در اختيار داريم تنظيم كنيم. براي اين كار CodeVision را باز كنيد و از منوي بالا گزينه‌ي "Setting" را انتخاب كنيد. سپس گزينه‌ي "Programmer" را انتخاب كنيد. پنجره‌اي به شكل زير باز مي‌شود.



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

پروگرامري كه ما جلسه‌ي پيش آموزش داديم همين STK200+/300 است كه معمولاً به صورت پيش فرض انتخاب شده است.

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

در اين قسمت نياز به تنظيم بخش ديگري نيست و پروگرامر آماده‌ي استفاده است.

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

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

در ادامه‌ي اين جلسه برمي‌گرديم به بحث برنامه نويسي در زبان C تا كمي بيشتر با اين زبان آشنا شويم.

يك نكته را بايد قبل از شروع بحث متذكر شوم، در ميكروكنترلر، همه‌ي ورودي‌ها منطقي مي‌شوند. يعني اگر سطح ولتاژ پايه‌ي ورودي (كه مثلاً يك سنسور نوري به آن متصل شده است) بين 0 تا 2.5 ولت باشد، آي‌سي آن را 0 منطقي در نظر مي‌گيرد و اگر بين 2.5 تا 5 ولت باشد، آن را 1 منطقي در نظر مي‌گيرد.

 

ساختارهاي كنترلي

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

 

if _ else:


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

if (شرط يا شروط)

    {

        دستوراتي كه فقط اگر شروط بالا برقرار باشند اجرا مي‌شوند

    }

else

    {

        دستوراتي كه فقط اگر شروط بالا برقرار نباشند اجرا مي‌شوند

    }

 نكات مهم در مورد اين ساختار:

1- بعد از هر كدام از دستورات در داخل if و else بايد حتماً ";" گذاشته شود.

2- دقت كنيد كه بعد از خود if و else نيازي به ";" نيست.

3- اگر بخواهيم چند شرط براي if بگذاريم ، به نحوي كه فقط اگر همه‌ي شروط برقرار بودند دستورات اجرا شوند، بايد به شكل زير عمل كنيم:

if (شرط1 && شرط2 && شرط3)

4- اگر بخواهيم چند شرط براي if بگذاريم ، به نحوي اگر هركدام ازشروط برقرار بودند، دستورات مربوطه اجرا شوند بايد به شكل زير عمل كنيم:

if (شرط1 || شرط2 || شرط 3 )

5- اگر بخواهيم تساوي 2 عبارت، يا يك عبارت با يك مقدار را چك كنيم به شكل زير عمل مي كنيم:

if (a == b && f == 20)

اين عبارت 2 شرط دارد كه اگر متغير a برابر با متغير b باشد و اگر متغير f هم برابر با مقدار 20 باشد، دستورات مربوط به if اجرا مي‌شوند.

6- اگر بخواهيم مقدار خروجي مثلاً يك سنسور نوري را چك كنيم كه 1 منطقي است يا نه، به صورت زير عمل مي‌كنيم:

if ( PORTB.1== 1 )
يا
if (PORTB.1 !== 0 )

اين 2 عبارت دقيقاً يك كار را انجام مي‌دهند. همانطور كه مي‌بينيد، "==!" به معناي عدم  تساوي است.در حالت كلي "!"در اين زبان به معناي نقيض است.

 

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

 

درس 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