برنامه نویسی میکروکنترلر AVR
این مقاله به آموزش برنامه نویسی میکروکنترلر های AVR به زبان C توسط نرم افزار CodeVision می پردازد.
اگر علاقند به یادگیری برنامه نویسی میکروکنترلرهای 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
تعریف متغر در حافظه : 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