براي آشنايي با ميكرو كنترلر مي خواهيم يك برنامه ساده براي ميكرو كنترلر
بنويسيم. بنابراين يك برنامه ساده مي نويسيم كه Led های (چراغ خطر!) ربات را روشن و خاموش كند. قسمت اخطار
را قبل از هر كاري بخوانيد.
CodeVision يك IDE براي ميكرو كنترلر AVR
است. به وسيله اين برنامه مي توان از زبان C براي برنامه ريز ميكرو استفاده كرد.
براي شروع ابتدا برنامه را از اينجا دانلود كنيد و آن را نصب كنيد. برنامه را اجرا
كنيد. يك پروه TestAVR بسازيد.
در قسمت Setting->Programmer
نوع Programmer را انتخاب كنيد. (Kanda Systems STK200+/300)
براي تنظيمات اوليه ميكرو از Code wizard استفاده مي كنيم. به وسيله اين wizard
كدهاي C لازم براي تنظيماتي از قبيل Crystal Clock, Timer Setting, Port
Setting, … توليد و به كد برنامه شما اضافه مي
شود. پس از هر تغيير در اين تنظيمات بايد آن را به وسيله منو File->Generate, Save and Exit ذخيره كرد.
پس از تنظيمات اوليه كد برنامه را در Code Vision به زبان C مي نويسيم. (مي توان از توابع كتابخانه اي Code Visionنيز در اين كار استفاده كرد.) سپس دكمه Make the project را
براي توليد كد اسمبلي برنامه شما براي ميكرو كنترلر AVR بزنيد.
حالا مي توانيد ميكرو كنترلر خود را برنام ريزي كنيد. براي اين كار از Chip Programmer
استفاده مي كنيم.
به وسيله Tools->CodeWizardAVR منو تنظيمات اوليه
را ظاهر كنيد. حالا اين تنظيمات را انجام دهيد:
Chip Tab:
Chip:
Atmega16L
Clock:
1.0000
Prot Tab:
Port
B tab:
Bit
0: out
Bit
1: out
ما با اين تنظيمات نوع ميكرو كنترلر و همچنين فركانس 1MHz را براي آن انتخاب كرديم.(ما به ميكرو يك كريستال وصل
كرديم تا فركانس 8MHz (يا MHz7.3728)
توليد كند. ولي يك Oscillator نيز در داخل AVR قرار دارد كه فركانس آن 1MHz است. ما در اين قسمت از اين Oscillator
استفاده مي كنيم).
در ضمن بيت 0 و 1 پورت B را به صورت خروجي تنظيم كرديم تا سيگنال روشن و خاموش
شدن را در آن توليد كنيم.
حال به وسيله منو File->Generate,
Save and Exit تنظيمات خود را ذخيره
كنيد.
پس از مراحل بالا بايد يك فايل كه در آن قسمت هايي به زبان C
نوشته شده است به همراه توضيحاتي در مورد آنها به صورت شكل زير توليد شده باشد.

حال اين خط را به برنامه اضافه كنيد:
Line 26:
#include
<delay.h>
و سپس برنامه خود را در جايي كه //Place your code here بنويسيد:
void main(void)
{
.
.
.
While(1)
{
//
Place your code here
delay_ms(100);
PORTB.0
= 1;
PORTB.1
= ~PORTB.0;
delay_ms(100);
PORTB.0
= 0;
PORTB.1
= ~PORTB.0;
};
}
در اين برنامه در هر 100 ميلي ثانيه خروجي را در بيت صفر و يك پورت B
تغيير مي دهيم.
ابتدا یک Programmer را به پورت LPT کامپیوتر متصل کرده و کابل Flat
آن را به کانکتور JP4 روی مدار خود وصل کنید.
به وسيله منو Tools->Chip
Programmer منو تنظيمات Programmer
ميكرو كنترلر را ظاهر كنيد. VCC و GND
را به مدار وصل كنيد و كليد را روشن كنيد.
ابتدا به وسيله منو Read->Chip
Signature اتصالات VCC و GND
به ميكرو و اتصالات Programmer
به بورد را چك مي كنيم. پس از اجرا دستور بالا بايد پيغام زير ظاهر
شود:

در غير اين صورت اتصالات خود را چك كنید.
حالا مي خواهيم برنامه خود را به ميكرو وارد كنيم. براي اين كار دستورات زير
را به ترتيب اجرا مي كينم:
Program->Erase Chip
Program->Blank Check (optional)
Program->Flash
حالا بايد ديودها روشن و خاموش شوند.
اگر در Chip Programmer در تب Fuse Bit(s):، BootSZ0=0
و BootSZ1=0 را تيك بزنيم و اجرا Program->Fuse(s) Bit
، ميكرو از كلاك Crystal استفاده مي كند. بنابر اين بايد تنظيمات ميكرو را با
توجه به كريستال تغيير دهيد.
![]()
اخطار: حتما در تب Fuse Bit(s):، BootSZ0=0 و BootSZ1=0 را تيك بزنيد در غير اين صورت ميكرو شما در حالتي قرار مي گيرد كه
ديگر نمي توانيد آن را به وسيله CodeVision برنامه ريزي كنید.
![]()