Wednesday, September 29, 2010

AVR микроконтроллер

ATMEL AVR бүлийн 8 битийн микроконтроллерүүд нь электроник, робот сонирхогчдын дунд хэрэгцээ, нэр хүнд маш хурдан өсч байгаа микроконтроллер юм. Ингэж хэрэгцээ өсөх болсон шалтгаан нь дээд түвшины програмчлалын хэл C, хөгжих өндөх боломж бүхий open-source GNU хэрэгсэлүүд (gcc) ашигладаг, мөн олон нэмэлт интеграл хэлхээг өөртөө агуулсан нь түлхэц болсон. Програм бичихдээ ассамблер, С хэлийг аль нэгээр эсвэл бага зэрэг холих боломжтойгоос гадна, програмыг микроконтроллерт сериалаар бичдэг нь хүний ажилгааг тун төвөггүй болгодог. Иймд уг микроконтроллерийг хэрхэн хэрэглэдэг, С хэл хэл дээр хэрхэн програмчлах талаар энэхүү блогт бичлэг орууллаа.
С хэлээр програмчлах хэрэгсэлүүд
AVR бүлийн микроконтроллер дээр С хэл ашиглан програмчлахын тулд хоёр төрлийн хэрэгсэл програм хэрэгтэй: AVR Studio, WinAVR. Доорх өгөгдсөн линкүүдээр орон тус програмын хамгийн сүүлийн хувилбарыг үнэгүй татан авах боломжтой.
· AVR Studio нь програмыг өндөр нэгдэлтэйгээр хөгжүүлж болох орчин бөгөөд дотроо кодын алдаа хянагч, ассемблер, HEX файл татагч, микроконтроллерийн эмулатор давхар багтсан.
· WinAVR нь GCC дээр суурьласан AVR-ийн хөрвүүлэгч юм. Энэ програмыг AVR Studio-той давхар суулган С-гийн хөрвүүлэгч нь болгон ашигладаг ба эсвэл Notepad ашиглан кодоо бичин дуудаж хөрвүүлж болно.
Програмыг суулгах тун амархан. Эхлээд програмуудынхаа setup файлуудыг татан AVR Studio-г анхлан суулган дараа нь WinAVR-ийг суулгана. Програмын суулгахдаа сонголтуудаас анхлан сонгогдсон (default) сонголтуудыг зөвшөөрч өгөх хэрэгтэй.
AVR Studio ашиглан С хэлээр програмчлах
Жишээ болгож ATMEL AVR бүлийн микроконтроллеруудаас ATmega8-ийг сонгож 6-н оролтоос хамааран 6-н LED асах энгийн програм С хэл ашиглан бичье. Бидний ажил дараах дарааллын дагуу явагдах болно.
· AVR Studio дээр шинэ төсөл (project) үүсгэх
· C кодыг HEX файлруу хөрвүүлэх
1. AVR Studio дээр шинэ төсөл үүсгэх
· Эхлээд дараах сонголтыг сонгон програмыг ажлуулна. Start | Programs | Atmel AVR Tools |AVR Studio.
· Програмын цонх гарч ирсэний дараа Project | New Project цэсийг сонгоход зураг1-т үзүүлсэн цонх гарч ирнэ. Энэхүү цонхонд микроконтроллерийг ямар хэл ашиглан програмчлах, төслийн нэр үүсгэх газрыг зааж өгнө. Хэрэв та анхлан бичиж байгаа бол шинээр project-уудаа хадгалах хавтас (folder) үүсгэхийг зөвлөж байна. Бид project-ийнхаа нэрийг led гэж нэрлэн NEXT товчийг даран цааш үргэлжлүүлье.
Зураг1:
· Дараагийн алхам бол AVR-ийн ямар симулатор, микроконтроллерийг сонгох. Зураг2 –д өөрсдийн сонголтыг харуулав. Хэрэглэх симулатор, микроконтроллерийг сонгосны дараа FINISH товч дарж ажлын дэлгэцэнд шилжинэ.
Зураг2:
· Энэ үед шинэ project файл үүссэн байх ба код бичих цонход кодоо бичин хөрвүүлнэ. Жишээ болгож доорх лед асааж унтраах кодыг бичиж хөрвүүлж үзье.
Зураг3:
· Кодоо бичиж дууссаны дараа Project | Save Project цэсийг сонгон програмыг хадгална.
//*************************************************************************
// School of phycics & electronics 2010.09.29 lab106
//*************************************************************************
#include // avr толгой файл
int main(void)
{
unsigned char i; // хувьсагч зарлаж байна
DDRB = 0x00; // PORTВ-г оролт болгож зарлаж байна
PORTB =0xFF; //портыг pull up байхаар тохируулав
DDRC = 0xFF; // PORTС-г гаралт болгож зарлаж байна
PORTC = 0x00; // PORTС-д 0x00 гэсэн утга оноож байна
while(1) // Төгсгөлгүй давталт
{
// оролт PORTB-г уншаад утгыг i хувьсагчид оноо
// энэ портод 6-н товчлуур холбогдсон
i = PINB;
// i хувьсагчийн утгыг PORTC-д оноо
// энэ портын 6-н хөлөнд лэдүүд холбогдсон
PORTC = i;
}
return 1;
}
//**************************************************************************
Жишээ код 1:
2. С кодыг HEX файл болгон хөрвүүлэх
· Үндсэн цэснүүд дотроос Build | Rebuild All сонголтыг сонгон кодыг хөрвүүлнэ.
· Дээрх кодыг хөрвүүлэхэд led.hex файл үүсэх бөгөөд алдаа гараагүй байна. (Зураг4) HEX файл project-ийг үүсгэсэн хавтасанд \default гэсэн хавтас үүсгэн хадгалагдсан.

Зураг4:

No comments:

Post a Comment