برنامه نویسی میکروکنترلر هاي AVR به زبان C توسط نرم افزار CodeVision

این مقاله به آموزش برنامه نویسی میکروکنترلر هاي AVR به زبان C توسط نرم افزار CodeVision می پردازد. اگر علاقند به یادگیری برنامه نویسی میکروکنترلرهای AVR  به زبان #سی در محیط کدویژن هستید این نوشته را در میکرو دیزاینر الکترونیک از دست ندهید.

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

معرفی زبان C

زبان  C یک زبان برنامه نویسی ساده و پر قدرت میباشد که در سال  1972توسط #دنیس_ریچی طراحی شده است.

مقاله مرتبط:بهترین زبان های برنامه نویسی

دسته بندی زبان هاي برنامه نویسی

  • زبانهاي سطح بالا :دستورالعملهاي این زبانهاي برنامه نویسی به زبان محاوره اي انسان نزدیک است ولی دسترسی مستقیم به حافظه ، ثباتهاي پردازشگرو… ندارند ، مانند… PASCAL ، BASIC
  • زبانهاي سطح پایین : بوسیله این زبانهاي برنامه نویسی زبان اسمبلی
  • زبانهاي سطح میانی : زبان C

برنامه‌نویسی ساخت‌یافته

زبانهاي برنامه نویسی به دو دسته ساخت یافته و غیر ساخت یافته نیز تقسیم بندي میشوند. در زبان برنامه نویسی ساخت یافته با استفاده از حلقه هاي تکرار ( do…while ، while ، for )  میتوان برنامه اي نوشت که قابلیت خوانایی بالائی داشته باشند.

خصوصیات زبان  C

  • یک زبان برنامه نویسی . میانی است
  • یک زبان برنامه نویسی ساخت یافته است.
  • یک زبان قابل انعطاف و قدرتمند است.
  • ارتباط تنگاتنگی بین زبان Cو اسمبلی وجود دارد.
  • تعداد کلمات کلیدي این برنامه کم  (30کلمه کلیدي) میباشد.
  • زبان برنامه نویسی  Cنسبت به حروف کوچک و بزرگ حساس است .
  • تمام کلمات کلیدي آن با حروف کوچک نوشته میشوند. براي مثال  int یک کلمه کلیدي است اما INT کلمه کلیدي نیس.

در جدول زیر کلمات کلیدي زبان  Cنمایش داده شده است:

Break double int struct
bit else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while

دستورالعمل هاي زبان   C  داراي خصوصیات زیر میباشد.

  • هر دستور زبان C به ; ختم میشود. مثال :
int a=1;

float pi=3.14;
  • حداکثر طول یک دستور . 255کاراکتر است
  • هر دستور میتواند در یک یا چند سطر ادامه داشته باشد.
  • در هر سطر میتوان چند دستور تایپ کرد.
مطلب پیشنهادی:  مجموعه مقالات آموزش میکروکنترلرهای AVR

توضیحات :

در یک برنامه نوشته شده با اضافه کردن توضیحات خوانائی و درك برنامه بالا میرود . توضیحات توسط مترجم (کامپایلر) نادیده گرفته میشود. در زبان  Cتوضیحات میتوانند در بین  /* و /* قرار بگیرند یا بعد از //  نوشته شوند.

1  */ :مثالThis is a sample for command

for C program language. */

2 // :مثالThis lne is a sample.

ساختار برنامه C

برنامه هاي زبان  C از مجموعه اي از دستورات و تعدادي تابع تشکیل میشود. بدنه اصلی برنامه  زبان  ، Cتابع () main می باشد. هر برنامه باید داراي این تابع باشد. در شکل زیر ساختار یک برنامه  Cنمایش داده شده است که در آینده این ساختار با معرفی قسمتهاي دیگر زبان Cتکمیل تر میشود.

فایلهاي سرآیند

void main(void)

{

اعلان متغیر ها

دستورات اجرائی

}

فایلهاي سرآیند : در برنامه نویسی زبان  cتوابع و کتابخانه هایی وجود دارند که قبلاَ نوشته شده اند و در فایلهایی که معمولا در پوشه  include یا  inc محل نصب کامپایلر میباشند ذخیره شده اند و قبل از نوشتن تابع اصلی برنامه cاین فایل ها باید به تابع اصلی استفاده کننده از توابع این فایلها ضمیمه شوند . به این فایلها فایلهاي سرآیند گفته میشود. براي ضمیمه کردن یک فایل بصورت زیر عمل میشود.

#include  < نام فایل سرآیند >

مثال : توابع ورودي خروجی در فایل  stdio.hذخیره شده اند . در صورت استفاده از توابع ورودي خروجی در برنامه اصلی باید این فایل بصورت زیر به برنامه اصلی ضمیمه شود.

#include <stdio.h>

در زبان  cبرنامه نویس میتواند ، فایهاي سرآیند تولید کند. حال براي ضمیمه کردن فایل تولید کرده و بصورت زیر عمل میکند :

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

#include    ”نام فایل سرآیند“

با روش تولید فایل سرآیند بعداَ آشنا میشوید.

انواع داده در زبان C

در زبان  Cپنج نوع داده وجود دارد که این انواع داده با پیشوند هاي  short )کوتاه)  ، long (بلند ) ،  signed (علامتدار) و   unsigned(بدون علامت) همراه میشود .

  •  charکاراکتر : این نوع داده براي ذخیره کاراکترهائی مانند ’ ’x’، ‘2’ ، ‘aو… استفادهمیشود.
  •  intا  عداد صحیح : براي ذخیره اعداد صحیح مانند 34-،12و… بکار میرود.
  •   float  اعداد اعشاري : براي ذخیره اعداد اعشاري مانند 3.1415 ، 12,5استفاده میشود.
  •  double  اعداد اعشاري بزرگ: براي ذخیره اعداد اعشاري بزرگ تر از floatبکارمیرود.

داده نوع بیت در کدویژن

داده نوع بیت : براي تعریف متغیر هاي بیتی استفاده میشود. محل ذخیره مغیر هاي بیتی به ترتیب از بیت صفر ثبات

GPIOR1و سپس  GPIOR2و سپس ثباتهاي  R2تا  R14میباشد.

مثال :

bit alfa=1; /* bit0 of GPIOR0 */

bit beta; /* bit1 of GPIOR0 */

تعریف  متغیر در زبان C

متغیر ها نامی براي محل ذخیره داده ها میباشند. تعریف متغیر در  Cبصورت زیر است :

<نام متغیر >    <نوع داده>;

  مثال :

int A;

unsigned long int S;

اگر تعدادزیادی از یک متغیر یک نوع نیاز داشته باشیم:

float pi,E,i,j;

نکته : نام متغیر میتواند با حروف بزرگ نوشته شود . فقط کلمات کلیدي زبان   C که در قبل گفته شد باید با حروف کوچک نوشته شود.

در CodeVision

تعریف متغر در حافظه  : eeprom براي تعریف متغیر سراسريدر آینده شرح داده میشوند بصورت زیر انجام میشود:

eeprom   <نام متغیر>   <نوع داده>

مثال:

eeprom char beta;

eeprom long array1[5];

 تعیین محل ذخیره متغیر هاي سراسريدر آینده شرح داده می شوند در حافظه  : SRAM این کار بصورت زیر انجام میشود.

متغیر عددی a  در آدرس 80 حافظه SRAM ذخیره شده»

مطلب پیشنهادی:  آموزش میکروکنترلرهای AVR [فیلم های آموزشی AVR فصل دوم]

int a @0x80;

براي ذخیره متغیر در ثبات از دستور  registerاستفاده میشود:

register <نام متغیر> <نوع داده>;

براي دستور دادن به کامپایلر که متغیري را درثبات ذخیره نکند از دستور  volatile بصورت زیر استفاده میشود:

volatile  <نام متغیر>  <نوع داده> ;

مقدار دهی متغیر  در سی

مقداردهی به متغیر به دو صورت زیر انجام میشود:

1-  هنگام تعریف متغیر یا مقدار دهی اولیه:

int j=0, a=24;

<har ch1=’a’;

float Pi=3.1415,e=2.71;

2-  بعد از تعریف متغیر با علامت انتساب = .

int a,b;

a=23;

b=10;

مقاله مرتبط: ساختمان یا استراکچر (struct) در زبان برنامه نویسی C

تعریف ثوابت زبان  C (مقدار ثابت) :

ثوابت مقادیري هستند که در برنامه از آن ها استفاده میشود و قابل تغییر نمیباشند. براي تعریف ثوابت در زبان  C به روش هاي زیر عمل میشود:

1-  استفاده از دستور  define

#define  <مقدار> <نام ثابت>

مثال :

#define PI 3.14

نکته : دستور  define  از دستورات پیش پردازنده است و نیازي به ;  ندارد.

2- استفاده از دستور const

const <مقدار> =  <نام ثابت> <نوع داده>;

مثال :

const int a = 25;

ثوابت در کدویژن

ثوابتی که با  const و  flashتعریف میشوند در در حافظه  flashذخیره میشوند.

مثال :

flash int integer_constant=1234+5;

flash char char_constant=’a’;

flash long long_int_constant1=99L;

flash long long_int_constant2=0x10000000;

flash int integer_array1[]={1,2,3};

flash int integer_array2[10]={1,2};

flash int multidim_array[2][3]={{1,2,3},{4,5,6}};

flash char string_constant1[]=”This is a string constant”;

const char string_constant2[]=”This is also a string constant”;

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

لینک های دانلود فایل های ضمیمه و ادامه آموزش ها:

دانلود فایل اول

دانلود فایل دوم

#موفق_باشید.

درباره ی جهاندیده

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

دیدگاهتان را بنویسید

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

یک دیدگاه

  1. عالی بود توزیحات کامل وشفاف