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

برنامه نویسی میکروکنترلر AVR

برنامه نویسی میکروکنترلر AVR

مقدمه:

در این مقاله در مورد میکرو کنترلرهای مدل Atmeg16  و   IC ATMEGA32 که از نظر امکانات شبیه یکدیگرند و در بازار به راحتی یافت می شوند و قیمت مناسبی هم دارند بحث می شود. و در هر جای مقاله که از میکرو کنترلر مطلبی عنوان می شود منظور این دو نوع می باشند.

ساختمان یک برنامه زبان C :

برای نوشتن یک برنامه سی ابتدا باید توابع مورد نیاز را فراخوانی کنیم و بعد از اون معرفی متغییرها و بعد هم تابع اصلی (main) را باید بنویسیم. در یک برنامه زبان سی تابع main لازم و ضروری است یعنی یه جورایی حتما باید باشه  که در اینجا یه مثال میزنیم:

#include<mega32.h>

Void main ()

{

دستورات، حلقه ها، شمارنده و …

}

نکات مهم: در زبان سی انتهای هر دستور باید علامت ;(سیمی کالون) قرار دهیم. تابع main هم با } شروع و با { پایان می پذیرد. در داخل تابع main هم مثلا اگر یک حلقه بخواهیم بنویسیم اگر دستورات داخل حلقه فقط یک دستور باشد نیازی نیست از }{ استفاده کنیم ولی اگر بیشتر از یه دستور شد یعنی دو و سه و … باید این دستورات را در داخل {} بنویسیم.

 

 مثال:

For (a=0; a<88; a++)

PORTD=0xff;

و

For (a=0; a<88; a++) {

PORTD=0xff;

PORTC=0xF0;

}

در برنامه اولی چون یک دستور داشتیم از آکولاد استفاده نکردیم ولی در برنامه دومی چون بیش از یک دستور داشتیم ار آکولاد استفاده کردیم. همیشه یه آکولاد } باز می کنیم و باید حتما اون با { ببندیم.

برای نوشتن برنامه به زبان اسمبلی هم باید به صورت زیر عمل کنیم:

#asm

دستورات اسمبلی

#endasm

نوشتن توضیحات در برنامه :

در زبان C برای نوشتن یک توضیح در کنار دستورات و یا در هر محل دلخواه به دو روش می توانیم این کار رو انجام بدیم.

 ۱) اگر توضیحات فقط در یک سطر هست از علامت // در ابتدای توضیخات می نویسیم.

مثال

// enables the display of the cursor

این عبارت یک توضیح هست نه دستور سی پس برای اینکه کامپایلر متوجه بشه که این یک دستور نسیت باید به این صورت اونو بنوسیم.

۲) اگر توضیحات بیشتر از یک سطر شد باید در اولین سطر عبارت /* را نویسییم و در آخرین سطر هم عبارت */ را بنویسیم.

مثال:

/* enables the display

of the cursor*/

 پیکره بندی پورت های میکروکنترلر به عنوان ورودی و خروجی:

این میکرو کنترلر دارای ۴ پورت A,B,C,D می باشد . که هر پورت شامل ۸ پایه(pin ) است  که می توان انها را به عنوان ورودی و یا خروجی استفاده کرد . این که ما بتوانیم پایه های میکرو را به عنوان خروجی یا ورودی تعریف کنیم می بایست انرا به صورت نرم افزاری برای میکرو تعریف کنیم که این عمل در متن ذیل صورت گرفته است .

برای اینکه یک پورت را مشخص کنیم که ورودی باشد یا خروجی باید اول دستور DDRX را بنویسیم (البته با حروف بزرگ) بجای حرف X   باید  نام پورت مورد نظر  را نیز ذکر کنیم.

به طور مثال :

DDRA=0x00;

در مثال بالا تمام پورت A به عنوان  ورودی تعریف شده است

DDRA=0xFF;

در مثال بالا تمام پورت A به عنوان خروجی تعریف شده است

که یک پورت سالم شامل ۸ پایه است. برای اینکه هر کدام از این پایه را ورودی و یا  خروجی تعریف کنیم باید برای تعریف خروجی پین مورد نظر را یک وبرای تعریف ورودی صفر کنیم .

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

4 × سه =