0
06633425064

زبان c در میکروکنترلر

مقدمه

دراین متن چگونگی برنامه نویسی وساختمان زبان C آموزش داده میشود.همچنین برخی از حلقه های تکراروساختارهای تصمیم و توابع کتابخانه ای مورد نیاز متناسب با آزمایش های موجود دراین کتاب توضیح داده میشوند.

نکاتی درباره زبان C

  • تمامی دستورات(به جز دستوراتی که با# شروع میشوند)به ; ختم میشوند.

Unsigned int a;

Unsigned char b;

برای اضافه کردن توضیحاتی در برنامه از// در ابتدای هرخط استفاده میکنیم.یااینکه توضیحاتی را دربین /* یا*/   قرار بدهیم

توضیحات //

/*……………………..توضیحات */

  • درهرخط ما میتوانیم چندین دستور بنویسیم.

a = (b+a); b= (a*c);

  • به ازای هر} که باز شود باید یک { بسته شود.

If (a>b){

دستورات

;{

  • در زبان Cاز هرمتغیر یا تابعی که بخواهیم استفاده کنیم باید بالاتر ازمحلی که استفاده میشود تعریف شده باشد.
  • شناسه نامی است که به متغیر،تابع یابرچسب داده میشود ومیتواند شامل حروف انگلیسی a-z و

۰-۹ وخط زیر(-)باشد.نامها حتما باید با حروف آغاز وشود و هر شناسه میتواند تا حداکثر۳۲ کاراکتر باشد.

  • اگرقبل از هر عددی ۰x قرار دهیم عدد در مبنای هگزادسیمال واگرچیزی قرار ندهیم در مبنای دیسمال به حساب می آید.

۲۵۵=۰x=0b111111111

ساختمان زبان C:

در برنامه نویسی به زبان Cهدرفایلها در ابتدای برنامه قرار میگیرند درواقع به دستوراتی که پسوند آنهاh. میباشد و با #includeشروع میشوند هدرفایلها یا فایل سرآیند گفته میشود.این دستورات قادر هستند فایل هایی را به ابتدای برنامه الحاق کنند.

#include<mega16.h>

#include<alcd.h>

بعداز تعریف هدر فایلها در صورت نیازباید تعاریف و دستورات کلی که با# شروع شوند، قرار داده شود.

#define SUM(a,b)a+b

بعد نوبت تعریف متغیرها میباشد.

Unsigned int a;

Unsigned char b;

بعد از تعریف متغیرها نوبت تعریف توابع است.

Void main(void){

بعد از همه این کارها برنامه اصلی شروع میشود.در main یک حلقه بی نهایت while وجود دارد که برنامه اصلی در این حلقه قرار میگیرد و دستوراتی که قبل از این حلقه وجود دارد مربوط به مقدار دهی رجیسترها و متغیرها میباشد که یکباربعد از reset  شدن میکرو اجرا میشوند.

حلقه های تکرار:

 

For(زمانی که تعداد دفعات تکرار از قبل مشخص باشد)

for(a = 0,a<=5,a++){

دستورات;

    };

این حلقه ۶ بار تکرار میشود.

نکته:حالت زیر یک حلقه بی نهایت به وجود می آورد.

for(;;) {

  دستورات;

};

While(تا زمانی که شرط برقرار باشد حلقه ادامه دارد).

while (1){

دستورات;

};

ساختارهای تصمیم:

۱٫if(اگر)

{(شرط)if

دستورات;

};

۲٫else if (در غیراین صورت اگر)

{(شرط)if

else {

};

۳٫swich-case(این  دستور شبیه else if   میباشد وزمانی که شرط های چندگانه و بیش از ۳ انتخاب داریم بهتراست از این دستور استفاده کرد.)

Swich(عبارت){

case val1:

       دستور۱;

        break;

.

.

.

case val2:

      دستورn;

     break;

}

نکته:اگردریکcase  دستور break  را قرار ندهیم با مقدار case  بعدی or  میشود.

دستورgo-to:(این دستور برای پرش از یک قسمت برنامه به قسمت دیگری است)

Flag 1:

Flag2:

Go to flag 1;

توابع کتابخانه ای :

کتابخانه mega16

#include <mega16.h>

کتابخانه تاخیر زمانی

#include<delay>

کتابخانه دستورات ریاضی

#include<math.h>

کتابخانه برای توابع ورودی و خروجی برای ارسال و دریافت اطلاعات به صورت سریال

#include<stdio.h>

کتابخانه دستورات ترکیبی

#include<stdlib.h>

کتابخانه برای ارتباط هرچه آسانتر بین LCDومیکروکنترلر

#include<Lcd.h>

نکته: علاوه برکتابخانه های بالا کتابخانه های دیگری هم وجود دارد.ضمنا میتوان کتابخانه هایی را خودمان بسازیم و به کامپایلر اضافه کنیم.کافی است کتابخانه ای را در پوشه inc با پسوند.h ذخیره کنیم.

نکته: کتابخانه های فوق دارای دستورات کثیری هستند که درآموزش های مربوط به توضیح برخی از آنها خواهیم پرداخت.

برای مثال :

#include <delay.h>

main(){

       delay-us();

      delay-us(1000);

      delay-ms();

      delay-ms(1000);

}

ارسال دیدگاه