Wednesday, November 17, 2010

Ponyprog2000 windows7 64bit


Windows7 64bit үйлдлийн систем дээр суудаг жаахан эртний Ponyprog V.2.06f хувилбарыг танилцуулж байна. Хэрэв өөрийн чинь компьютер 64 битийн үйлдлийн системтэй бол энэхүү хувилбарыг татаад суулгаад үзээрэй.

татах 4shared

Friday, October 15, 2010

16x2 LCD Матрицан дэлгэц дээрх электрон цаг

Матрицан LCD дэлгэцээр автомашины автомат асаалттай электрон цаг хийх явцад дэлгэц дээр тоог томоор гаргах санаа төрсөн юм. 5х8 цэгтэй нэг үсэг гардаг хэсэгт тооны нэг сегментийг гаргаснаар 2 мөртэй LCD дэлгэцэн дээр цагны 4 тоог томоор гаргаж болно. Дээрх зурагт 2051 serial программатор дээр LCD дэлгэцийг туршилтын контроллерт нь холбож асаасныг үзүүлэв. Программаторын тухай энэ бичлэгээс үзэж болно.

Зурагнаас нэг тоо нийт 6 үсэг тэмдэгтийн зайнд гарч байгааг харж болно. Тоог илэрхийлэхэд оролцож байгаа нэмэлт 6 тэмдэгтийг тоонуудын төгсгөлд харуулав. Эдгээр тэмдэгтүүдийг LCD дэлгэцийн хэрэглэгч өөрөө зохиож болдог 8 фонтны 6-г ашиглан гаргасан болно. Цагны протьюз дизайн файл болон ассемблер программ, интел HEX файлуудыг  эндээс татаж аваад үзээрэй.

Saturday, October 9, 2010

MIDE-51 Studio on OpCUBE site

Интернэт ухаж яваад OpCUBE гэдэг сонирхолтой вэбсайт олж үзэв. Эндээс төрөл бүрийн төслүүд, MIDE-51 Studio программ хангамж болон бусад программуудыг татаж авч болох нь ээ. Мөн энд 8051 микроконтроллерийн С компайлер байгааг татаж авч болно.

Friday, October 8, 2010

LCD ба 2051

Зарим оюутнууд LCD дэлгэц бүхий микроконтроллерийн систем угсрахдаа порт хүрэлцэхгүй нь хэмээн шууд 89С51 мэтийн 40 хөлтэй микроконтроллер сонгодог. Микроконтроллерийн бүрэн хүчин чадлыг ашиглаж чадахгүй, аль болох хялбар шийдэл рүү тэмүүлэх нь тухайн системийг зохион бүтээж буй хүний ур чадварыг муугаар харуулна. "Бөөсөнд хутга гаргав" гэгчээр нүсэр том контроллер сонгосон хэрнээ хийсэн зүйл нь өчүүхэн бага үүрэг гүйцэтгэдэг систем байх нь элбэг тохиолддог. Иймд АТ89С2051 микроконтроллерт LCD дэлгэцийг холбох 2 хувилбарыг хэлхээний зураг (png зураг, proteus дизайний хамт) болон ассемблер программийг энд татаж авахаар орууллаа. 
Энэхүү 4 битийн холболтын хувилбар нь дэлгэцэнд гаргах мэдээллийг 4, 4 битээр нь 2 удаа LCD дэлгэц рүү шиддэг. 4 битийн мэдээллээс гадна RS, EN гэсэн удирдлагын 2 дохиог холбодог бөгөөд нийт 6 шугамаар дэлгэцийг бүрэн удирдана. Ингэхээр Р1.0, Р1.1 болон Р3 бусад зүйлд ашиглагдаж болно.
Хэрвээ өмнөх хувилбар хангалтгүй бол 74НС595 шифт регистрийг ашиглан портийг өргөтгөж болох юм. Ингэвэл Р1.3-Р1.7 хүртэл 5 порт, шифт регистрийн Q5-Q7 хүртэл 3 порт нийт 8 порт ашиглагдах боломжтой болно. Ерөнхийдөө НС595 шифт регистрийг ар араас нь хэдийг ч холбож портийг өгөтгөж болно. Ингэхэд 2051 контроллероос дахин порт нэмж ашиглахгүй.
Дээрх зурагны эхний хувилбарт LCD дэлгэцийг 2хон портоор удирдахыг харуулжээ. Гэвч энэ хувилбарын хувьд RC хэлхээний хугацааны тогтмолоос хамаарах учир хугацааны саатал ихээр үүсгэж удааширдаг сөрөг талтай. Түүнчлэн программ нь сунжруу, төвөгтэй болох учир 3 утастай хувилбарыг илүүд үзсэн болно. 3 утастай хувилбарын хувьд SDA (Serial data) болон STB (Strobe) дохионуудыг эсэргүүцэгч, диод бүхий AND үйлдлээр холбон EN дохиог гаргаж порт хэмнэсэн байна.
Ингээд ихийг нуршилгүй protes файл болон прогаммыг эндээс татаж аваад өөрсдөө туршаарай.

Wednesday, September 29, 2010

AVR programmer


Өмнөх бичлэгээр AVR микроконтроллерийн программыг хэрхэн С хэл ашиглан бичих талаар бичсэн. Тэгвэл одоо компьютер дээр хөрвүүлсэн HEX кодоо чипрүүгээ хэрхэн хуулах (шарах), хуулах төхөөрөмж энгийн прогматорийн (programmer) талаар бичье. Энэхүү энгийн AVR прогматор нь төвөггүйгээр hex файлыг ихэнх АTMEL AVR микроконтроллерүүдэд харьцангуй бага хугацаанд хуулдаг. Уг прогматор нь бусад энгийн прогматоруудаас илүү найдвартай маш бага хугацаанд хуулах үйлдлийг гүйцэтгэдэг.
AVR прогматор нь сериал прогматор нөгөө талаас ажиллаж буй схемнээсээ микроконтроллын SPI холболтын хөлнүүд, RESET хөлийг гаргасан микроконтроллерийн хавтан хоёроос бүрддэг. Таньд контроллераа олон дахин програмчлах тохиолдол гарч магадгүй. Энэ үед эх хавтангаас гаргасан хөлнүүддээ прогматороо залгаад шархад л хангалттай.
AVR Сериал прогматор
Сериал прогматорын хэлхээний зураг

AVR
прогматорын PCB нүүрэн талаасаа

AVR
прогматорын PCB ар талаасаа

RS232
сериалийн залгуурт багтаасан байдал

AVR
сериал прогматор 6 хөлтэй байдлаар
AVR эх хавтан
Энэхүү эх хавтан AVR микроконтроллерийг програмчлахын тулд хамгийн бага элемент ашиглан жишээ болгож хийсэн бөгөөд шарсны дараа конроллераа өөр хэлхээнд тавин ашиглах боломжтой. Сериал прогматороо ашиглан ихэнх төрлийн AVR контроллерийг програмчлаж болох ба програм шарагдаж эхлэх үед RESET 0 болох учир өөр хэлхээг микроконтроллерын портуудад давхар угсарах боломжтой байдаг.

Микроконтроллерт програм шарах зориулалт бүхий эх хавтан. 28-DIP AVR ATmega8 микроконтроллер

Энд хоёр коннектор холбоно: Сериал прогматор, +5V –ийн гадаад тэжээл.
Эх хавтанд 28-DIP суурь, 4MHz осцеллатор, хоёр ширхэг 22pF туйлгүй конденсатор, мөн хоёр ширхэг толгой коннектороос бүрдэнэ. Хоёр хөлтэй коннектор нь AVR микроконтроллерийг тэжээх +5V –ийн тэжээл, 6-н хөлтэй коннекторт прогматороо холбоно.

Эх хавтан 28-DIP AVR ATmega8 микроконтроллер
+5V –ийн тэжээлийн хүчдэлийг энэ тохиолдолд компьютерын USB портноос авбал илүү тохиромжтой байж мэдэх юм.
PonyProg
Анхны бичлэгтээ AVR микроконтроллер ашиглах явцад хэрэглэгдэх программ хэрэгслүүдийг татаж авах холбоосыг тавьсан. Харин энэ програмыг дараах холбоосоос татаж авна уу. ТАТАХ . Энэ хэрэгсэл програм Windows XP, Windows Vista, 7 32 битийн үйлдлийн системтэй, компьютер сериал порттой байх шаардлагатай. Сүүлийн үед гарч буй ихэнх компьютерүүд сериал порт байхгүй, 64 битийн системүүдтэй байгаа тул дараагийн бичлэгтээ USB порт ашигласан, ямарч үйлдлийн системд ажиллах хялбар прогматорыг танилцуулах болно. PonyProg нь бидний ашиглах AVR прогматорт тохирох програм бөгөөд ажиллаж эхлэхээс өмнө "Setup" цэснээс "Interface Setup" –руу орон зурган дээрх дараах тохиргоог хийх шаардлагатай.

Дараагийн сонгох алхам "AVR micro" мөн өөрийн хэрэглэх гэж буй микроконтроллерийн төрлийг сонгож өгнө (Жишээ нь ATmega8).
Дараагий алхам бүрэн бичигдэж дууссан програмын HEX файлыг AVR микроконтроллерийн програмын флаш санах ойд шарж өгнө. Үүний тулд "File" цэснээс "Open Program (FLASH) File ..."-ийг сонгон нээгдсэний дараа hex файлыг дуудаж өгнө. Ингэснээр програмын дэлгэцэн дээр 16-тын тоонууд гарах болно. Төгсгөлд нь бүдэг бороор тодруулсан икон дээр дарж, эсвэл "Command" цэснээс "Write Program (FLASH)" гэсэн сонголтыг дарж шарах коммандыг өгнө.

"Yes"
товчлуур дээр дарж баталгаажуулна.
Комманд өгснөөр програм шарах (бичих) үйл явцыг прогресс хувиар харуулах ба шарж дууссаны дараа зөв шарагдсан үгүйг шалган дахин үйл явцыг харуулна. Хэрэв буруу шарагдсан тохиолдолд алдаа заан дахин шарахыг санал болгоно. Энэ үйл явц програмын багтаамжаас хамааран 10 -аас 30 секунд үргэлжилнэ.

Дараа нь програм бүрэн шарагдсан гэсэн мэдэгдэл ирэх ба энэ үед AVR микроконтроллер програмчлагдсан, ашиглахад бэлэн болсон байна.


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: