Elektronika.lt
 2019 m. spalio 23 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 NaujienosSąrašas
 StraipsniaiSąrašas
 Vaizdo siužetaiSąrašas
 Nuolaidos, akcijosSąrašas
 Produktų apžvalgosSąrašas
 Naudingi patarimaiSąrašas
 Vykdomi projektaiSąrašas
 Schemų archyvasSąrašas
 - Garso technika
 - Automobilių elektronika
 - Buitinė elektronika
 - Kompiuterių elektronika
 - Maitinimo šaltiniai
 - Mikrovaldikliai
 - Radiotechnika
 - Šviesos efektai
 - Įvairi elektronika
 Teorija, žinynaiSąrašas
 Nuorodų katalogai
 Įvairūs siuntiniai
 Bendravimas
 Skelbimai ir pasiūlymai
 Elektronikos remontas
 Robotų kūrėjų klubas
 RTN žurnalo archyvas






 Verta paskaityti
Spalio 22 d. 21:01
AOC praneša apie naują „AG273QX“ modelį: varžybų lygio monitorių su QHD raiška ir patraukliais HDR vaizdais
Spalio 22 d. 20:09
Beveik trečdalis lietuvių prisipažįsta esantys priklausomi nuo interneto
Spalio 22 d. 19:21
Patarimai, kaip išsirinkti tarpdančių irigatorių
Spalio 22 d. 18:13
KTU mokslininkai sukūrė naują precizinio šlifavimo technologiją
Spalio 22 d. 16:32
Naujų technologijų era: piršto atspaudu ar veidu atrakinami išmanieji telefonai – kiek tai saugu
Spalio 22 d. 12:14
Kompiuterinių žaidimų istorija: kada viskas prasidėjo? (2)
Spalio 22 d. 10:17
Senjorai skatinami atrasti skaitmeninę aplinką
Spalio 22 d. 08:27
Nors Vilnius tampa patogesnis elektromobiliams, kai kurių lengvatų gali nelikti
Spalio 21 d. 20:29
„Netflix“ pradeda jausti artėjančių konkurentų spaudimą
Spalio 21 d. 16:04
19 įspūdingų faktų apie internetą
FS 19 Tractor mods
Farming Simulator 19 Mods, FS 19 Maps, How to install
ATS mods
ATS trailer mods, ATS truck mods, ATS map mods
FS 19 Tractors
Farming Simulator 19 Mods, FS 19 Maps, FS 19 Trucks
FS19 Maps, FS19 Trucks
Farming Simulator 2019 Mods, FS19 Tractors
Install MC Mods
Minecraft Dungeons Mods, Minecraft Dungeons Skins, Minecraft Dungeons Maps
FS19 Combines
Farming Simulator 19 Mods, FS19 Trucks, FS 19 Mods
How to Install Mods
Minecraft Dungeons Mod, Minecraft Dungeons Maps, Minecraft Dungeons Skins
Mobilieji telefonai
Mobilieji telefonai internetu, telefonų dėklai, telefonų priedai
Reklama
 Schemų archyvas » Mikrovaldikliai Dalintis | Spausdinti

Pirmi žingsniai – „Atmel AVR“

Publikuota: 2004-04-03 16:28
Tematika: Mikrovaldikliai
Tipas: Paprasta
Autorius: el. paštas Darius Grigaitis
Aut. teisės: el. paštas ©Elektronika.lt

Čia aprašomi pirmi žingsniai programuojant AVR mikrovaldiklius, tam tereikia sulituoti pateiktą schemą ir pradėti programuoti.

 Rodyti komentarus (16)
Įvertinimas:  1 2 3 4 5 

Įvadas

Čia aprašomi pirmi žingsniai programuojant AVR mikrovaldiklius, tam tereikia sulituoti pateiktą schemą ir pradėti programuoti. Programavimui gali būti naudojamas „PonyProg“ programatorius.

Schemai reikalingi šviesos diodai, pas save naudojau 3 mm raudonos spalvos. Iš principo, galima naudoti bet kokius diodus. Tada reikia apskaičiuoti varžų reikšmes prie tiems diodams leistinų srovių. „Atmel“ kompanijos AVR mikrovaldiklis AT90S2313, bet vietoj jo galima pritaikyti bet kokį AVR tipo mikrovaldiklį.

Programavimo pradžia

Programas mikrovaldikliui rašysime su „IAR Embedded Workbench“, 30 dienų veikiančią versiją galite parsisiųsti iš gamintojo puslapio. Parsisiuntus ir įdiegus programą bei ją paleidus, matosi pagrindinis langas. Tada File meniu New (arba Ctrl+N), sukuriam darbo langą:

Pasirenkame vieną iš meniu punktų Source/Text:

Atsidariusį langą išsaugojam norimu vardu su .cpp plėtiniu. Pakartoję tuos pačius žingsnius sukuriame nauja projektą. Pasirinkus „Project“ punktą, pasirodo projekto sukūrimo langas:

Atitinkamu vardu išsaugojame projektą pasirinktame kataloge. Geriausia, kad jūsų *.cpp laikmena būtų tame pačiame kataloge, kaip ir sukurtas projektas. Po projekto išsaugojimo reikia pereiti prie meniu punkto Projects, toliau Files:

Pažymėję prieš tai išsaugotą laikmeną, skirta programos kodui su .cpp plėtiniu, paspaudžiame Add mygtuką. Po tokių veiksmų reikia nustatyti programos parametrus pagal jūsų turimą mikrovaldiklį. Parametrai nustatomi pasirinkus meniu Projects, Options punktą:

Pasirenkame procesoriaus tipą. Šiuo atveju parenkamas AT90S2313. Taip pat nustatome laikmenos pavadinimą, kuriuo bus išsaugojamas sukompiliuotas valdikliui programos kodas. Taip pat nustatome saugojimo formatą Intel-standart.

Kas antro šviesos diodo įjungimas

Dabar jau esame pasiruošę programuoti. Pabandykime įjungti kas antrą šviesos diodą:


// Reikalingas „Includas“, aprašantis pasirinktą 8 bitų AVR mikrovaldiklį
#include "io2313.h" 

void main() // Prasideda pagrindinė procedūra
{ 
	
	// Tai yra registras, nustatantis duomenų kryptį
	// tai reikalinga diodams įjungti,
	// 255 atitinka dvejetainį 1111 1111.
	DDRB = 255; 
	
	// Nurodom, kuriuos diodus įjungti,
	// 170 atitinka dvejetainį 1010 1010.
	PORTB=170; 
	
	// Amžinas ciklas, reikalingas, kad procesorius tik
	// vieną kartą atliktų duomenų siuntimą į portą B.
	while(1) 
	{ }

}

Sukompiliavus ir iš //Banadom/Debug/Exe/bandymas.a90 katalogo laikmeną įrašius į mikrovaldiklį, gauname tokį rezultatą, padavus valdikliui maitinimą:

Kaip matyti iš paveiksliuko, pagal tai, kas buvo įrašyta į PORTB registrą, atitinkamai įsijungia šviesos diodai.

Vėlinimo funkcija

Jei su šviesos diodų įjungimu viskas tvarkoje, tada galime padaryti, kad jie mirksėtų, tam reikės pasidaryti laiko vėlinimą. Kadangi kvarcinio rezonatoriaus dažnis yra 4 MHz, tai norint pamatyti mirksėjimą, prireiks vėlinimo funkcijos.


#include "io2313.h" 

void Laikas();

void main() // Prasideda pagrindinė procedūra
{ 

	// Tai yra registras, nustatantis duomenų kryptį
	// tai reikalinga diodams įjungti,
	// 255 atitinka dvejetainį 1111 1111.
	DDRB = 255; 
	
	// Amžiną ciklą naudosim diodų junginėjimui
	while(1){
	
		// Įjungiami visi diodai
		PORTB=255; 
		
		// Kreipiamės į vėlinimo funkciją 
		// užlaikome įjungtus šviesos diodus 
		Laikas(); 
		
		// išjungiame visus šviesos diodus
		PORTB=0; 
		
		// Kreipiamės į vėlinimo funkciją 
		// užlaikome išjungtus šviesos diodus
		Laikas(); 
		
	}

}

void Laikas() // vėlinimo funkcijos pradžia
{
	// Tuščio ciklo vykdymas 100 000 kartų
	long i=0; for (i=0; i<100000; i++){} 

}

Sukompiliavus ir iš //Banadom/Debug/Exe/bandymas.a90 katalogo laikmeną įrašius į mikrovaldiklį, gauname tokį rezultatą, padavus mikrovaldikliui maitinimą:

Bėganti eilutė

Bėganti eilutė padaroma tokiu pačiu principu, kaip prieš tai pateiktame pavyzdyje. Tik atitinkamai siunčiami į PORTB registrą reikiami skaičiai:


#include "io2313.h" 

void Laikas();

// Prasideda pagrindinė procedūra
void main() 
{ 
	// Tai yra registras, nustatantis duomenų kryptį
	// tai reikalinga diodams įjungti,
	// 255 atitinka dvejetainį 1111 1111.	
	DDRB = 255; 
	
	// Amžiną ciklą naudosim diodų junginėjimui
	while(1) 
	{
		
		// Diodų įjunginėjimas į vieną pusę
		PORTB=0; 
		Laikas();
		PORTB=1;
		Laikas();
		PORTB=2;
		Laikas();
		PORTB=4;
		Laikas();
		PORTB=8;
		Laikas();
		PORTB=16;
		Laikas();
		PORTB=32;
		Laikas();
		PORTB=64;
		Laikas();
		PORTB=128;
		Laikas();
		//----------------------
		PORTB=0; // Diodų įjunginėjimas į priešingą pusę
		Laikas();
		PORTB=128;
		Laikas();
		PORTB=64;
		Laikas();
		PORTB=32;
		Laikas();
		PORTB=16;
		Laikas();
		PORTB=8;
		Laikas();
		PORTB=4;
		Laikas();
		PORTB=2;
		Laikas();
		PORTB=1;
		Laikas();
		PORTB=0;
		Laikas();
	
	}

}

// vėlinimo funkcijos pradžia
void Laikas() 
{
	long i=0;
	
	// Tuščio ciklo vykdymas 100 000 kartų
	for (i=0; i<10000; i++){} 

}

Sukompiliavus ir iš //Banadom/Debug/Exe/bandymas.a90 katalogo laikmeną įrašius į mikrovaldiklį, gauname tokį rezultatą, padavus valdikliui maitinimą:

Keičiant siunčiamus į portą skaičius, galima keisti diodų įjungimo algoritmą. Bėgančią eilutę taip pat galima padaryti naudojant ciklą ir dalinimą bei dauginimą iš 2. Tokiu atveju kodas gaunasi trumpesnis.

Tai tiek pradžiai, tikiuosi šis aprašymas duos kam nors naudos.




Draudžiama platinti, skelbti, kopijuoti
informaciją su nurodyta autoriaus teisių žyma be redakcijos sutikimo.

Global electronic components distributor – Allicdata Electronics

TMS ELECTRONICS
TMS ELECTRONICS

www.rslietuva.com – nemokamas elektronikos komponentų pristatymas

www.matuok.lt - Interneto spartos matavimo sistema

Lietuvos mokinių neformaliojo švietimo centras

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Technologijos.lt

Mokslo festivalis „Erdvėlaivis Žemė

www.esaugumas.lt – apsaugok savo kompiuterį!

LTV.LT - lietuviškų tinklalapių vitrina

www.rrt.lt – Lietuvos Respublikos ryšių reguliavimo tarnyba

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

MRO Supply


Reklama
‡ 1999–2019 © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Reklama | Turinys | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina Valid XHTML 1.0!
Farming Simulator 2017 Mods, FS 17 Mods
ls2017.com
„TV programa“ – tiksli
televizijos programa

www.tvprograma.lt
Lietuvos mokinių neformaliojo švietimo centras
www.lmnsc.lt
Buhalterijos kursai, apskaitos kursai, vadovų apskaitos kursai
www.apskaitakiekvienam.lt
Svarstyklės – čia, matuokliai, laboratorinė įranga
www.moris.lt
Lyderystės mokymai, mokymai vadovams, vadovų mokymai
www.tripleo.lt
Mokslo ir technologijų pasaulis – naujienos ir straipsniai
www.technologijos.lt
Farming Simulator 2019 Mods, FS19 Tractors, FS19 Maps
farmingsimulator19mods.fr
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
LTV.LT – geriausių lietuviškų tinklalapių katalogas
www.ltv.lt/technologijos/
FS 2019 Mods, FS 2017 Mods, FS 2015 Mods
www.farming2015mods.com
Mokslo populiarinimo projektas „Mokslas verslui ir visuomenei“
www.mokslasplius.lt
Reklama


Reklama