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

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

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

 

 

 

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

 

 یادگیری برنامه بیسیک برای دانش آموزان آسانتر است و درآن صورت لازم است برنامه  بسکام را فرابگیرند.

 

       در اینجا آموزش سی و برنامه کدویژن شرح داده شده است ، اگر برای مبتدیان مشکل بود پیشنهاد می کنم برنامه آموزش بسکام AVR را از سایت www.daneshmandco.ir دانلود نموده و مطالعه کنند.

 

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

 

 

در اين جلسه نيز در ادامه‌ي مطالب جلسه پيش، سعي مي‌کنيم کمي بيشتر با نحوه‌ي برنامه‌نويسي در زبان C آشنا شويم.
 

متغيّر چيست؟

متغير قسمتي از حافظه است که ما براي آن يک نام دلخواه انتخاب مي کنيم و از آن براي نگه داري اطلاعات مورد نياز خود در روند اجراي برنامه استفاده مي کنيم.

1- متغيرها با خاموش شدن مدار پاک مي شوند و حافظه ي دائمي نيستند.

2- بايد نوع اطلاعاتي که قرار است در متغير نگه داري شود، معلوم گردد، مثلاً قرار است در آن عدد ذخيره شود يا حروف، يا عدد اعشاري يا .... .

3- کامپيلر به صورت خودکار بخشي از حافظه را به متغير مورد نياز ما اختصاص مي دهد و نيازي نيست ما براي آن مشخص کنيم که اطلاعات را در کجاي حافظه ذخيره کند. البته مي توان در صورت نياز آدرس بخشي از حافظه را مشخص کنيم تا اطلاعات ما در ان جا ذخيره شود(که فعلاً به آن نمي پردازيم).
 

تعريف متغير:

براي تعريف يک متغير ابتدا بايد نوع يا تايپ (Type) اطلاعاتي که قرار است در آن ذخيره شود، نوشته شود، و بعد از يک فاصله (Space) نام متغير نوشته شود. به مثال زير دقت کنيد:

int a;

در اينجا متغيري با نام "a" و از نوع integer يا همان عددي تعريف شده است، يعني در اين متغير فقط مي توان يک عدد صحيح (غير اعشاري) را ذخيره کرد.

نکته: اگر يک عدد اعشاري در آن ريخته شود، بخش اعشاري آن حذف مي شود.

هر متغير از جنس int، دو بايت حافظه را به خود اختصاص مي دهد و مي توان در آن اعداد در گستره ي32767 تا 32768- را ذخيره کرد.

براي ذخيره سازي حروف(Character) بايد متغير از نوع Char تعريف شود. متغيرهاي Char يک بايت حافظه را به خود اختصاص مي دهند و در آن ها مي توان تنها يک حرف را ذخيره سازي کرد. براي ذخيره سازي حروف در حافظه، کد اسکي (ASCII code) حروف در آن ذخيره مي شود.

در جدول زير چند نوع داده(Data Type) ي ديگر نيز معرفي شده است.

بازه ي تحت پوشش

اندازه (size)

Type

 2147483647  تا 2147483648 -

4 بايت

Long int

4294967295  از 0 تا

4 بايت

Unsigned long int

براي اعداد اعشاري

4 بايت

Float

65535 از 0 تا

2 بايت

Unsigned int

براي ذخيره سازي اطلاعات در داخل متغيرها نيز از همان عملگر "=" استفاده مي کنيم. مثلاً:

sum1=75;

مي توانيم متغيرها در همان موقع تعريف مقدار دهي کنيم. به اين کار مقدار دهي اوليه يا "Initialize" کردن ميگويند. مثلاً:

int sum1=75;

اطلاعاتي که در داخل متغيرها ذخيره مي شود ثابت نيست و مي توان در هر جاي برنامه که لازم بود، مقدار ديگري در متغير ذخيره کرد. مثلاً:

int Cross1=34;
.
.
.
Cross1= 68;

اگر بخواهيم مقدار متغير ثابت و غير قابل تغيير باشد بايد قبل از تعيين نوع متغير، کلمه ي "const" را بنويسيم. مثلاً

Const float pi=3.14;

مي توان چند متغير را با هم تعريف کرد و انها را مقدار دهي کرد. مثلاً:

char a1='a', a2, a3, a4='B';

توجه:برای مقدار دهی متغیرهایی که از جنس "char" تعریف میشوند، باید مقدار در داخل '   ' قرار بگیرد، به مثال بالا دقت کنید.

 

قوانين نام گذاري شناسه ها(Identifiers) در زبان C:

شناسه ها همان نام هايي هستند که براي متغيرها، توابع و ... انتخاب مي شوند.

براي انتخاب يک شناسه فقط مي توانيم از حروف زير استفاده کنيم:

1- اعداد 9 تا 0

2- حروف z تا a (حروف کوچک)

3- حروفZ تا A (حروف بزرگ)

4- خط فاصله "_" (Under Line)

5- علامت $

به غير از اين کاراکترها مجاز به استفاده از هيچ کاراکتر ديگري (حتي فاصله(Space) ) نيستيم.

همچنين در ابتدا شناسه ها نمي توانيم از اعداد استفاده کنيم. مثلاً شناسه ي 1loop غلط است، ولي Loop1 درست است.

طول شناسه ها نيز نميتواند بيش از 32 کاراکتر باشد.

بعضي کلمات در اين زبان جزو کلمات رزرو شده (Reserved word) هستند و نمي توانند به عنوان شناسه استفاده شوند مانند:int, float, void, char, while, if ، و ...

 

نکات مهم در مورد برنامه نويسي در زبان C:

1- در پايان هر دستور بايد يک ";" گذاشته شود.

2- جملات و عبارات غير عددي را بايد در داخل " " قرار دهيم. مثلاً اگر مي خواهيم کارکتر B را در داخل متغيري با نام Temp که از جنس char تعريف شده است ذخيره کنيم، بايد بنويسيم:

Temp='B';

3- زبان C در اصطلاح يک زبان Case sensitive است، يعني در اين زبان بين حروف بزرگ و کوچک تفاوت وجود دارد. مثلاً در يک برنامه ما مي توانيم دو متغير با نام هاي "temp" و "Temp" داشته باشيم که ارتباطي هم با يکديگر ندارند.

4- اگر بخواهيم در هر قسمت از برنامه توضيحاتي رو بنويسيم، بايد يک "//" در ابتداي جمله بنويسيم. مثلاً:

int a; // etelaate porte C dar in moteghayer rikhte mishavad

همچنين اگر بخواهيم چند خط پشت سر هم را موقتاً از روند اجراي برنامه حذف کنيم، بايد علامت"*/" را در ابتدا، و "/*" را در انتهاي ان خطوط قرار دهيم. هرگاه اين 2 علامت را پاک کنيم، دوباره آن قسمت، به روند اجراي برنامه اضافه مي شود.

5- در ساختار زير، هردستور يا دستوراتي که در داخل{} نوشته شود، بي نهايت بار انجام مي شود. در حقيقت while(1)، يک حلقه ي بي پايان است که دستورات داخل آن تا وقتي که مدار فعال باشد، تکرار مي شوند. در جلسات آيند شما با ساختار حلقه ها بيشتر آشنا خواهيد شد.

while(1)

{

PORTD.3=PINA.2;

PORTD.4=PINA.3;

}

اين 2 دستور مکرراً تا زمانيکه ميکروکنترلر فعال باشد، اجرا مي شوند.

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

 

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

این جلسه همان‌طور که قول داده بودیم، قراره کمی در مورد Codevision توضیحاتی بدیم.

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


برای دانلود برنامه کدویژن اینجا کلیک کنید
    پس از انجام مراحل نصب برنامه، برنامه را باز کنید.
 

چگونه يك پروژه‌ي جديد تعريف كنيم؟

برای نوشتن یک پروژه ی جدید، باید ایتدا از منوی File، گزینه ی New را انتخاب کنید. یک پنجره ی کوچک در وسط صفحه باز می شود که در آن باید گزینه ی Project را انتخاب کرده و تایید کنید. بلافاصله پنجره ی دیگری باز می شود که از شما سوال می کند آیا تمایل دارید برای انجام پروژه ی خود از CodeWizard استفاده کنید؟

همانطور که گفته شد، CodeWizard یکی از نرم افزارهای جانبی CodeVision است که به وسیله ی یک واسط گرافیکی، در نوشتن برنامه ی اصلی و انجام تنظیمات اولیه پورت ها و ....، کمک بسیار زیادی به ما می کند.

پس گزینه ی Yes را انتخاب می کنیم و CodeWizard باز می شود.

 

چگونه از CodeWizard استفاده کنیم:


شکل زیر، نمای کلی از
CodeWizard است:



همانطور که میبینید، لبه های متعددی برای انجام تنظیمات مختلف میکروکنترلر در آن وجود دارد.

 

لبه‌ی Chip:

اولین لبه ای که ما با آن کار داریم لبه ی Chip است. در این قسمت ما باید نوع میکروکنترلر خودمان را انتخاب کنیم. همانطور که در شکل بالا می بینید، میکرو کنترلر ATmega16L را انتخاب کرده ایم.

قسمت Clock مربوط به تنظیم فرکانس کاری آی سی است که ما فعلاً وارد اين مبحث نمي‌شويم و آنرا با همان مقدار پیش فرض می پذیریم. با قسمت های دیگر این لبه هم ما کاری نداریم و آن ها را به همان صورت پیش فرض می پذیریم.

 

لبه‌ی Port:

این لبه مربوط به تنظیمات ورودی خروجی پایه هاست.



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

 

Output value یا مقدار اولیه:

وقتی پایه ای را به صورت خروجی تنظیم می کنیم، می توان با تنظیم رجیستری PORTx تعیین کرد که سطح ولتاژ خروجی این پایه به صورت پیش فرض 0 باشد یا 1. یعنی در زمانیکه هنوز برنامه‌ي ما برای پایه ها تعیین وضعیت نکرده است، می توان به این طریق سطح ولتاژ اولیه ی پایه را تعیین نمود.

CodeWizard در این جا هم کار ما را راحت تر کرده است، در ستون مقابل یعنی ستون "Pullup/Output value" برای پایه هایی که به صورت خروجی تعریف شده اند، می توان با یک کلیک وضعیت خروجی پایه را مشخص کرد. مثلاً الآن پایه ی شماره ی 2 از پورت A به صورت خروجی تعریف شده و در ستون مقابل نیز مقدار پیش فرض خروجی 0 تعیین شده است.

 

Pullup:

این قابلیت سخت افزاریست و در خانواده ی AVR نیز وجود دارد. Pullup کردن به این معناست که پایه ای را با یک مقاومت بالا(مثلاً 10 کیلو اهم) به + وصل کنیم. اگر هم پایه را با این مقاومت به GND وصل کنیم، می گوییم پایه را Pulldown کرده ایم. مقاومت بزرگ باعث می شود که جریان عبوری به حداقل کاهش یابد، ولی به وسیله ی ولتاژی که بر روی پایه قرار می گیرد، می‌توان ورودی مورد نظر را در هنگامیکه هنوز ورودی از خارج دریافت نکرده به صورت پیش فرض 0 یا 1 کرد.

وقتی پایه ای را به صورت ورودی تعریف می کنیم، با تنظیم رجیستری PORTx می توان تعیین کرد که پایه ی ورودی به صورت پیش فرض Pullup باشد یا نباشد. دقت کنید که در اینجا نمی توان تنظیم کرد که مقدار ورودی پیش فرض 0 باشد، چون خانواده ی AVR قابلیت Pulldown ندارند وفقط می توان آنرا به صورت Pullup تنظیم نمود، و در نتیجه پایه ای که Pullup شده است در هنگامیکه هنوز از خارج مقداری را دریافت نکرده است، به صورت پیش فرض 1 منطقی شود.

حالا بعد از انجام تنظیمات اولیه پورت ها و خود آی سی ، باید از Codewizard بخواهیم تا یک برنامه ی نیمه آماده با توجه به تنظیماتی که تنجان داده ایم در اختیار ما بذاره.

برای این کار از منوی File گزینه ی "Generate, Save and Exit" را انتخاب کنید. حالا باید جایی که می خواهید برنامه ی شما Save شود را مشخص کنید. Codevision در اینجا 3 فایل برای برنامه ی شما می سازد که باید آن ها را نام گداری کنید. بهتر است نام این 3 فایل و محل ذخیره سازی آن ها یکی باشد.

بعد از ساخته شدن این 3 فایل توسط Codevision برنامه آماده است، حالا شما باید دستورات خود را در محل تعیین شده بنویسید.



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

 

 

 

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

 

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