کامپیوتر

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

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

اگر علاقند به یادگیری برنامه نویسی میکروکنترلرهای AVR  به زبان #سی در محیط کدویژن هستید این نوشته را در دنیای صنعت برق از دست ندهید.

AVR

معرفی زبان C

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

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

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

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

زبان های برنامه نویسی به دو دسته ساخت یافته و غیر ساخت یافته نیز تقسیم بندی می شوند.

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

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

      • یک زبان برنامه نویسی میانی است.
      • یک زبان برنامه نویسی ساخت یافته است.
      • یک زبان قابل انعطاف و قدرتمند است.
      • ارتباط تنگاتنگی بین زبان C و اسمبلی وجود دارد.
      • تعداد کلمات کلیدی این برنامه کم  (۳۰کلمه کلیدی) می باشد.
      • زبان برنامه نویسی  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;
      • حداکثر طول یک دستور  ۲۵۵ کاراکتر است.
      • هر دستور می تواند در یک یا چند سطر ادامه داشته باشد.
      • در هر سطر می توان چند دستور تایپ کرد.

توضیحات :

در یک برنامه نوشته شده با اضافه کردن توضیحات خوانائی و درک برنامه بالا می رود .

توضیحات توسط مترجم (کامپایلر) نادیده گرفته می شود.

در زبان  Cتوضیحات می توانند در بین  /* و /* قرار بگیرند یا بعد از //  نوشته شوند.

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

for C program language. */

۲ // :مثال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’، ‘۲’ ، ‘aو… استفاده می شود.
      •  intا  عداد صحیح : برای ذخیره اعداد صحیح مانند ۳۴-،۱۲و… بکار میرود.
      •   float  اعداد اعشاری : برای ذخیره اعداد اعشاری مانند ۳٫۱۴۱۵ ، ۱۲,۵ استفاده می شود.
      •  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

CodeVision

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

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

مثال:

eeprom char beta;

eeprom long array1[5];

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

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

int a @0x80;

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

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

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

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

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

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

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

int j=0, a=24;

<har ch1=’a’;

float Pi=3.1415,e=2.71;

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

int a,b;

a=23;

b=10;

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

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

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

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

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

مثال :

#define PI 3.14

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

۲- استفاده از دستور 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 اول را از لینک زیر دانلود کنید و بعد از مطالعه فایل لینک دوم را دانلود و بترتیب مطالعه کنید.

 

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

دانلود فایل ۱

دانلود فایل ۲

 

منبع : melec

نوشته های مشابه

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

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

دکمه بازگشت به بالا