توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزش code vision - برنامه نويسي رباتيك
آموزش code vision
در این بخش آموزش برنامه نویسی سی کد ویژن قرار می گیرد
avr-->c-->code vision
شکل کلی برنامه
اولین قدم شناخت شکل کلی برنامه نویسی سی است
سرامد
متغیر های عمومی
تعریف توابع
تابع اصلی
{
متغیر محلی
تعریف سخت افراری
برنامه اصلی
}
تشریح توابع
سرامد
سرامد ها برنامه هایی از پیش نوشته شده اند که برای جلوگیری از نوشتن چند باره ی آن ها در برنامه متعدد ایجاد شده اند
شکل کلی سرامد به صورت زیر می باشد
کد HTML:
#include < نام سرامد .h >
از سرامد های پرکاربرد می توان به سرامد میکروکنترلر اشاره کرد که در هر برنامه ای ضروری است و کار شناسایی سخت افزار های داخلی میکرو کنترلر را بر عهده دارد
و از دیگر سرامد ها می توان به سرامد کیبرد موشواره ال سی دی ها ی گرافیکی دوربین ها و ... اشاره کرد
متغیر ها قسمت اول
متغیر ها مکان هایی از حافظه اند که مقادیری می گیرند .
متغیر ها به صورت زیر تعریف میشوند
نام متغییر نوع متغیر
- در کد ویژن متغیر ها یکی از صورت های زیر است
bit :
اعداد بولی 0 یا 1 که یک بیت حافظه اشغال می کند
char :
اعداد صحیح بین -128 و 127 که یک بایت حافظه اشغال می کنند
int :
اعداد صحیح بین -32768 و 32767 که دو بایت حافظه اشغال می کنند
long :
اعداد صحیح بین -2^31 و 2^31-1 که چهار بایت حافظه اشغال می کنند
float :
اعداد اعشاری بین +_ 1/175*10^-38- و +_ 3/402*10^38 که چهار بایت حافظه اشغال می کند
double :
اعداد اعشاری با دقت مضاعف که هشت بایت اشغال می کند
اگر قبل از نوع متغیر صحیح از کلمه ی
unsigned
استفاده شود منفی آن متغییر از بین رفته و حداکثر مقادیر آن دو برابر می شود
متغیر ها قسمت دوم
متغیر ها در سه جا می توانند ذخیره شوند
در ram برای این کار هیچ پییشوندی لازم نیست
در rom برای این کار از پیشوند eeorom استفاده می شود
در flash برای این کار از پیشوند flash استفاده می شود
متغیر های که در رم ذخیره می شوند پس از ریست از بین می روند
متغیر هایی که در فلش ذخیره می شوند ثابت می باشند و امکان مقدار دادن در ادامه برنامه به آن موچود نمی باشد
همچنین استفاده از پیشوند باعث ثابت شدن متغیذ می شود
متغیر ها یا محلی اند و یا عمومی اند
اگر در اول برنامه قبل از تابع main تعریف شده یاشند متغیر عمومی و اگر در داخل یک تابع تعربف شده باشند متغیر محلی اند
از متغیر عمومی در تمام قسمت های برنامه می توان استفاده کرد
ولی از متغیر محلی فقط در داخل همان تابع استفاده می شود و با اتمام اجرای تابع آن ها ازبین می روند
رایه
آرایه ها n بعدی ماتریس های n بعدی هستند که به صورت زیر تعیریف می شوند
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
جنس اعضا نام آرایه [تعداد اعضای بعد اول] [تعداد اعضای بعد دوم] [تعداد اعضای بعد سوم] ...
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
int robot [23][245][24][4]
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
اگر جنس اعضا از نوع char باشد به آرایه ؛ رشته نیز می گویند
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
char string [10][15]
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
آرایه ها نیز مانند متغیر ها داری دو نوع محلی عمومی می باشد
اختمان
ساختمان ها مجموعه هایی از متغیر ها ثابت ها رشته ها آرایه ها و ساختمان های دیگر هستند
اگر شما از یک شی مشخصاتی دارید بهترین وسیله برای بیان ساختمان می باشد وبه صورت زیر تعریف می شود
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
stract نام ساختمان { اعضا } شی هایی از نوع ساختمان;
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
struct avr { type name pin vcc { atmega32,tiny11,atmega5660;
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
برای استفاده از ساختمان از کل به جز حرکت کرده و وسط آن نقطه می گذاریم
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
ali.dars.omumi.farsi=13
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.png
اشاره گر ها
اشاره گر ها مکان هایی از حافظاه اند که به آدرس متغییر دیگری اشاره می کنند و به صورت زیر تعریف می شوند
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
جنس اشاره گر * نام اشاره گر
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
int a; int *b; b = &a;
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
اشاره گر ها فقط آدرس متغیر ها از جنس خود را نگه می دارند و دادن آدرس دیگر متغیر ها غلط است
عملگر ها قسمت اول
+ جمع
- تفریق
* ضرب
/ تقسیم
++ افزایش یک واحدی
-- کاهش یک واحدی
% باقی مانده ی تقسیم
= انتساب
>> شیفت به چپ
<< شیفت به راست
~ not منطقی
& and منطقی
| or منطقی
! not بولی
&& and بولی
|| or بولی
=+ اول جمع سپس انتساب
=- اول تفریق سپس انتساب
=* اول ضرب سپس انتساب
=/ اول تقسیم سپس انتساب
=% اول باقی مانده سپس انتساب
== شرط برابری
=! شرط نابرابری
< شرط بزرگتر بودن
> شرط کوچکتر بودن
=> شرط کوچکتر یا مساوی بودن
=< شرط بزرگتر یا مساوی بودن
& استخراج آدرس
* روجوع به آدرس
عملگر ها قسمت دوم
کدهای دوگانه ی زیر برابرند
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
c =a + c ; ------------------------- c + = a ;
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
d = a - d; ------------------------- d - = a ;
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
e = a * e ; --------------------- e * = a ;
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
f = a + f ; -------------------- f * = a ;
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
g = a / g ; ----------------- g / = a ;
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
h = a % h ; ----------------------- h % = a;
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
a = b ; ------------ k = & a ; b = * k ;
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.png
توابع
تابع ها قسنت هایی در برنامه هستند که کد ها در داخل آن ها اجرا می شود هر تابع اول باید تعریف شوند سپس استفاده شوند و در آخر تشریح شوند
تعریف توابع
تعزیف ها در اول برنامه نوشته شود
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
جنس خروجی نام تابع ( جیس وروذی اول , جنس وروذی دوم , ... )
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
مانند
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
float ave (int , float [16] ); void chap (void); int rotbe (void) ; bit and (bit , bit ) ;
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
استفاده از توابع
توابع برای این که شروع به کار کنند کافی است اسم آن ها آورده شود به همراه مقدار ورودی ها
الین تابعی که بدون فراخوانی و تعربف در اول شروع برنامه اجرا می شود تابع main است
پس توابع را باید در توابع دیگر صدا زد
برای مثال فراخوانی توابع بالا
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
y = ave ( 6 , stdudent) ; chap( ) ; z= rotbe ( ) ; a = and ( 1 , k ) ;
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
تشریح توابع
در پایان برنامه باید توابع تشریح شوند که به صورت زیر به کار می روند
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
جنس خروجی نام تابع ( جنس ورودی اول نام وردی اول , ... ) } دستورات تابع بازگشت خروجی {
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
مانند
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.pngfloat ave (int tedad , float nomre [16] ); { for ( i=1 ; i<tede ; i++ ) { sum+=nomre[i-1] ; } return (sum/tedad
if
if
در برنامه نویسی از این دستور زیاد استفاده می شود
و برای گذاشتن شرط بدون حلقه به کار می رود
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
اگر ( شرط ) { دستورات } در غیر این صورت { دستورات }
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
مانند
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
if (a<=b) { a = 10 ; b = 20 ; } else { a = 1 ; b = a ; }
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.png
for
حلقه شرطی شمارشی for
از دستور for برای ایجاد یک حلقه استفاده می شود که اگر شرط برقرار بود آن دستورات تکرار می شود وبه صورت زیر استفاده می شود
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
برای (دستور اولیه ؛ شرط ؛ دستور پایان حلقه ) { دستورات }
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
مانند
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
for ( i=0 ; i<100 ; i=i+2) { PORTA=i; }
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.png
حلقه ی while
وقتی می خواهیم یک سری دستور تا وقتی شرطی برقرار است تکرار شوند از این دستور استفاده می شود
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
تا وقتی که ( شرط ) { دستورات }
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
یا
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
انجام بده { دستورات } تا وقتی که ( شرط ) ؛
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
فرق اولی با دومی آن است که در دومی اول یک بار دستورات انجام می شود وسپس مانند اولی می گردد
برای ایجاد حلقه بی نهایت کافیست شرط را برابر عدد مثبتی قرار دهیم
مانند
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
while(a==b) { { PORTA=0x12; }
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
do { PORTB=0x00 ; } while (b<h) ;
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
while ( 1) { PORTC=PIND ; }
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.png
درگاه
درگاه
هر پایه avr قبل از استفاده باید تعریف شود
هر درگاه از 3 ثبات تشکیل شده که با مقدار دادن به آن ها خاصیت آن درگاه را می توان تغییر داد
ثبات DDR
از این ثبات برای تعیین ورودی خروجی استفاده می شود و اگر به آن مقدار صفر بدهیم ورودی و اگر مقدار یک بدهیم خروجی می شود
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
DDRA.4=1 ; DDRC.2=0 ;
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
اگر بخواهیم کل یک پورت را یکجا مقدار دهیم باید مقدار آن را به صورت مبنای 16 در آوریم
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
DDRA=0x00 ; DDRB=0xBE ; DDRC=0xFF ;
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
ثبات PORT
اگر درگاه خروجی بتشد با مقدار صفر دادن به آن درگاه ولتاژ زمین و با یک دادن به آن درگاه ولتاز VCC به خود می گیرد
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
PORTA=0x16 ; PORTD.5=1 ;
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
ثبات PIN
از این ثبات برای خواندن مقدار درگاه های ورودی استفاده می شود
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
A = PINA ; MEQ = PIND.2 ;
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.png
سرامد delay
وقتی شما از این سرامد در اول برنامه به صورت زیر استفاده می منید
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
#include < delay.h >
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
انگاه قادر به استفاده از دو تابغ زیر هستید
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
delay_us( عدد ) ;
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
که باعث می شود به اندازه آن عدد میکروثانیه ادامه برنامه متوقف بشود
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
delay_ms( عدد ) ;
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/03nc2.png
که باعث می شود به مقدار عدد میلی ثانیه ادامه برنامه متوقف شود
ولین برنامه
اولین برنامه
چشمک زن
اگر به هر یک از پایه های پورت a یک led با مقاومت 220 اهم وصل نمایید شروع به چشمک زدن می نماید
http://www.iran-eng.com/images/bbcodemanager/pastel/code/06nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/12nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/04nc2.pnghttp://www.iran-eng.com/images/bbcodemanager/pastel/code/05nc2.png
//strat program // http://robot.freeforums.org (http://forum.patoghu.com/redirector.php?url=http%3A%2F%2Frobot.freeforums.o rg) #include <mega32.h> #include <delay.h> void main(void) { // port a khoroji DDRA=0xFF; while (1) { PORTA=0x00; delay_ms(500); PORTA=0xFF; delay_ms(500); } }//end program
http://www.iran-eng.com/images/bbcodemanager/pastel/code/01nc2.png
Powered by vBulletin™ Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.