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

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

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

آموزش عملی  AVR

 

دستورات اولیه بسکام ای وی آر     BASCOM -AVR

 

آموزش رباتیک برای همه به زبان ساده   -  آموزش پروژه های AVR درس اول

 

در بسکام اولین و مهم ترین دستور تعریف میکروکنترلر است برای این کار از دستور

کد php:
 

$regfile=”microcode”

استفاده می شود که microcode کدی است که به جای نام میکروکنترلر می نویسیم به طور مثال m8def.dat برای آی سی Atmega8 استفاده می شود و m16def.dat برای Atmega16 وm32def.dat برای آی سی Atmega32 استفاده می شود (در پیوست می توانید کد های تمامی میکروکنترلر را مشاهده کنید)
در خط دوم باید فرکانس کاری میکروکنترلر را مشخص کنیم که از دستور

کد php:
 

$crystal=
 

استفاده می شود که x برحسب Hz است بطور مثال برای استفاده از فرکانس 4MHz باید x را مساوی 4000000 قرار داد. در اکثر میکروکنترلر های AVR به صورت پيش فرض نوسان ساز داخلي1MHz تنظیم شده است . در صورتی که بخواهیم فرکانس را تغییر دهیم باید فیوز بیت ها را نیز تغییر دهیم که در قسمت های آینده کامل توضیح می دهیم نکته اصلی این است که تعیین فرکانس لازم است چون بیشتر دستور ها از این فرکانس استفاده می کنند (مانند wait ).
در صورت تعریف اشتباه کریستال زمان بندی های میکرو تاخیر ها و ... اشتباه می شوند .توجه شود که اکثر دستورات ( همچون پورت سریال و ارتباطات دیگر - LCD و ... ) زمان پارمتر مهمی محسوب می شود و بسکام با توجه به کریستال زمان مورد نظر را ایجاد می کند و در صورت تعریف اشتباه، دستور مورد نظر اجرا نشده و یا دیتای اشتباه ارسال می کند .
یادداشت نویسی:
گاهی وقت ها نیاز به نوشتن تعدادی یادداشت داریم که در برنامه نوشته می شوند و فقط جهت راهنمایی استفاده می شوند و در برنامه اصلی کامپایل نمی شوند. برای این کار 2 راه وجود دارد 1- استفاده از دستورrem و2-استفاده از علامت ‘
پایان برنامه:
برای پایان دادن به برنامه شما باید از دستور end استفاده کنید که این دستور باید در پایان برنامه قرار گیرد و اگر نباشد کامپایلر خطا می گیرد

کد php:
 

$Romstart=address 
 

با این دستور مشخص می کنیم که پروگرام کردن حافظه فلش از چه مکانی شروع شود اگر این دستور را استفاده نکنید کامپایلر به طور خود کار آدرس H0000& را استفاده می کند (این دستور اختیاری است)
Config
از این دستور برای استفاده از امکانات میکروکنترلر استفاده می شود که در جای مربوطه توضیحات کامل داده می شود
بدنه ی یک برنامه در بسکام به صورت زیر می باشد :
1-معرفي ميکروکنترلر
2-تعيين مقدار کريستال
3-پيکربندي امکانات جانبي(اختیاری)
4-معرفي متغير ها (اختیاری)
5-شروع حلقه (اختیاری)
6-برنامه اصلي (اختیاری)
7-پايان حلقه (اختیاری)
8-پايان برنامه
9-زير برنامه ها (اختیاری)
جای موارد 8 و 9 را می توان جابجا کرد
متغیر ها:

کد php:
 

Dim var as data type 
 

از این دستور برای تعریف یک متغیر استفاده می شود var نام متغیر است و data type نوع متغییر است که می توان با توجه به جدول زیر تعریف کرد
[تصویر:  bas2.png]
مثال
 

کد php:
 

1-Dim a as bit    
2
-Dim a as byte 
3
-Dim a as integer 
4
-Dim a as word 
5
-Dim a as long 
6
-Dim a as single 
7
-Dim  a as string*
10 
 

1-متغیر a می تواند مقدار 0 یا 1 را داشته باشد
2-متغیر a می تواند مقدار 0-255 را داشته باشد
3-متغیر a می تواند مقدار32767- تا 32767 را داشته باشد
4-متغیر a می تواند مقدار 0-65535 را داشته باشد
5-متغیر a می تواند مقدار -2147483648 تا 214783647 را داشته باشد
6-متغیر a می تواند مقدار 1.5*10^-45 تا 3.4*10^38 را داشته باشد
7-یعنی یک متغیر string به طول نهایت 10 کارکتر
کار روی متغیرها
در جدول زیر تمامی عملگر های ریاضی را می بیند
[تصویر:  bas.png]
مثال:
 

کد php:
 

A=b+c
A
=b-c
A
=b/c
A
=b*c
a
=b^

 

دستورincr با این دستور می توان یک واحد به متغیر اضافه کرد
مثال:
Incr a
البته برای اضافه کردن یک واحد می توان از این روش نیز استفاده کرد a=a+1
دستورdecr با این دستور می توان یک واحد از متغیر کم کرد
مثال:
decr a
البته برای کم کردن یک واحد می توان از این روش نیز استفاده کرد a=a-1
البته این روش(a=a+1) قابل تعمیم است یعنی به جای 1 می توان هر عدد دیگری نیز قرار داد
Alias
از دستور برای تغییر نام یک متغیر استفاده می شود( برای پورت ها نیز استفاده می شود)
مثال:
 

کد php:
 

ab alias 10 
 

حالا در هرجای برنامه ab نوشته شود مقدار 10 استفاده می شود
ورودي وخروجي :
مرحله ی اول مشخص کردن نوع پورت است که با این دستور انجام می شود
 

کد php:
 

Config portx=state 
 

Portx پورت استفاده شده و state می تواند input و output باشد اگر ورودی بخواهیم باید از input و اگر خروجی موردنیاز باشد ازoutput استفاده می کنیم
مثال:
 

کد php:
 

Config porta=output 
 

که porta را به عنوان خروجی استفاده می کنیم
 

کد php:
 

Config porta=input 
 

Porta به عنوان ورودی تعریف می شود
همچنين شما با این دستور مي توانيد يک پايه از پورت را به عنوان ورودي يا خروجي معرفي کنيد .
مثال :
 

کد php:
 

Config PORTA.0 Input 
 

پايه شماره 0 از پورت a به عنوان ورودي تعريف شده است.
 

کد php:
 

Config PORTA.0 Output 
 

پايه شماره 0 از پورت a به عنوان خروجي تعريف شده است .
نکته:در صورتی که یک پورت تعریف نشود توسط کامپایلر به طور خودکار ورودی تعریف می شود
نکته:در برنامه نویسی برای خروجی باید از PORTX استفاده کرد و برای ورودی باید از دستور PINX استفاده کرد
چند دستور کاربردی برای پورت ها:
Toggle
اين دستور يک بايت يا بيت را برعکس ميکند، بايت ميتواند يک پورت یا یک پین از پورت باشد
Set
اين دستور يک بيت يا بايت را يک ميکند، بيت ميتواند يک پين از پورت باشد.
Reset
اين دستور يک بيت يا بايت را صفر ميکند، بيت ميتواند يک پين از پورت باشد.
Alias
اين دستور قبلا توضیح داده شده است که در اینجا برای تغییر نام یک پورت استفاده می شود
 

کد php:
 

مثال:
1-Toggle porta.0 
2
-toggle porta
3
-Set porta.0 
4
-Reset porta.0 
5
-
Led alias porta.0 
 

1-پایه a.0 برعکس می شود
2-تمام پورت a یرعکس می شود
3-پایه a.0 یک می شود می توان از این دستور نیز استفاده کردporta.0=1
4-پایه a.0 صفر می شود می توان از این دستور نیز استفاده کردporta.0=0
5-در بزنامه می توان از کلمه led به جای porta.0 استفاده کرد
 

کد php:
 

Bitwait PINX Set/Reset 
 

در لحظه ای که میکروکنترلر به این دستور می رسد اجرای برنامه ها را متوقف می کند و تا وقتی که شرط برقرار نشود بقیه ی برنامه ها اجرا نمی شوند
pinx نام پایه ای است که مدام در حال چک شدن است،SET/RESET شرط دستور است وقتی set است ،یعنی زمانی که پایه یک شد ادامه ی برنامه ها اجرا می شود زمانی که reset باشد تا پایه صفر نشود میکروکنترلر به خط بعدی نمی رود
مثال
 

کد php:
 

Bitwait Pina.0 Set 
 

میکروکنترولر منتظر می ماند تا پایه a.0 یک شود و هنگامي که پایه A.0 يک شد ،بقیه ی دستورات اجرا مي شود
دستورات حلقه :
زمانی که بخواهیم یک برنامه مداوم اجرا شود از دستورات حلقه استفاده می شود
نکته:برنامه اصلی باید در یک حلقه باشد وگر نه برنامه یک بار اجرا می شود و دیگر اجرا نمی شود
حلقه do-loop :
شروع اين حلقه با Do و پايان آن با Loop است :
 

کد php:
 

Do
برنامه 
Loop 
 

این حلقه را می توان به صورت شرطی نیز استفاده کرد که شرط با دستور Loop Until مشخص می شود
 

کد php:
 

Do
برنامه
Loop until a
=
10 
 

با این دستور هنگامی که شرط برقرار شود از حلقه خارج شده و برنامه از خط بعداز loop اجرا می شود
 

کد php:
 

مثال
Dim a 
as byte   
Do  
a=a+1
Loop until a
=
50 
 

این دستور وقتی که مقدار a به 50 برسید میکر کنترلر را از برنامه حلقه خارج می کند
مثالی دیگر:
 

کد php:
 

Do
porta.0=1
Loop until Pinb.2
=
Do
porta.0=0
Loop until pinb.2
=

 

با این برنامه وقتی که پایه b.2 صفر باشد پایه a.0 یک است و وقتی پایه b.2 یک شود پایه a.0 صفر می شود
حلقهfor-next :
فرم کلی این دستور به این صورت می باشد
For var=start to end
برنامه
Next var
Var یک متغییر است که از مقدار start شروع می شود و به end پایان می رسد
 

کد php:
 

مثال:
Dim a as byte
For a=0 to 10
A
=a+
1
Next a 
 

حلقه while-wend :
فرم کلی این دستور به این صورت می باشد
While condition
برنامه
Wend
این حلقه تا زمانی که مقدار condition نقض نشود اجرا می شود
مثال:
 

کد php:
 

Dim a as byte
While a<10
A
=a+
1
Wend 
 

پرش:
براي پرش از يک قسمت برنامه به قسمت ديگر مي توان از دستور Jmp يا Goto استفاده کرد (از دستورات فوق به عنوان حلقه نيز مي توان استفاده کرد) .
 

کد php:
 

مثال(استفاده به جای حلقه) : 
Hadi
برنامه نوشته شده 
Jmp Hadi 
مثال 
(استفاده به عنوان حلقه) : 
Hadi
برنامه نوشته شده 
Goto 
Hadi 
 

مثال(استفاده برای پرش)
hadi:
حال در هر جای برنامه بنویسیم jmp hadi و یا بنویسیم goti hadi برنامه به lable hadi پرش می کند
دستورات تاخير :
براي ايجاد تاخير در برنامه از دستور wait استفاده مي شود.
این دستور 3 بازه زمانی دارد
Waitus X :اين دستور براي ايجاد تاخير ميکرو ثانيه اي مي باشد. X مقدار تاخير است که بين 1تا 65535 ميکرو ثانيه مي باشد.
Waitms X :اين دستور براي ايجاد تاخير ميلي ثانيه اي مي باشد X مقدار تاخير است که بين 1تا 65535 ميلي ثانيه مي باشد.
Wait X :اين دستور براي ايجاد تاخير ثانيه اي مي باشد .X مقدار تاخير است که عددي بيشتر از يک ثانيه مي باشد.
Delay : اين دستور يک تاخير 1000 میکرو ثانيه ايجاد مي کند .
نکته 1:توجه کنيد که هر جا دستور wait X به کار رود برنامه در آن مکان به اندازه X ثانیه متوقف مي شود
نکته 2: دستورات تاخيري دقيق نبوده برای ایجاد تاخیر دقیق باید از تایمر ها استفاده کرد
نکته 3: در صورت استفاده از وقفه ها و فعال شدن وقفه در زمان تاخير مدت زمان اجراي برنامه وقفه هم به زمان تاخير اضافه مي شود .
نکته 4: در استفاده از تاخیر میکرو ثانیه نمی توان متغیری در نظر گرفت و فقط باید عدد وارد کرد
دستو شرطی If :
حالت 0:
فرم کلی این حالت بدین صورت است
 

کد php:
 

If  expression  then  statement 
 

Expression شرط انجام دستور است وstatement برنامه ای که باید اجرا شود این فرم زمانی جواب می دهد که تصمیم دارید یک کار انجام دهید ولی زمانی که خواستید چند کار پیاپی انجام دهید از این فرم استفاده کنید
 

کد php:
 

If  expression  then
برنامه ها
End 
if 
 

حالت1 :
 

کد php:
 

If  expression  then
برنامه 1
Else
برنامه 2
End 
if 
 

اگر شرط برقرار باشد برنامه 1 اجرا می شود در غیر اینصورت برنامه 2 اجرا می شود
حالت2:
 

کد php:
 

If  expression  then
برنامه 1
Elseif[expression2 then]
برنامه 2
Else
برنامه3
End 
if 
 

اگر شرط اول برقرار باشد برنامه 1 و اگر  شرط 1 برقرار نباشد وشرط2 برقرار باشد برنامه2 اجرا می شود و اگر هیچکدام برقرار نباشد برنامه 3 اجرا می شود
 

کد php:
 

مثال:
If 
pina.0=1 then
Portb.0
=1
Elseif pina.1=1 then
Portb.1
=1
Else 
Portb.2=1
End 
if 
 

 

درس بعدی    

 

درس اول          درس دوم              درس سوم        درس چهارم          درس پنجم            درس ششم                  درس هفتم

 

 

 

 

 

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

آموزش رباتیک برای کودکان 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

مشاوره تلفنی : 77422883

 مشاوره حضوری

 آموزش غیر حضوری

    محصولات آموزشی و فرهنگی

صفحه اصلی