Upload
goran-zdravkov
View
246
Download
0
Embed Size (px)
DESCRIPTION
e
Citation preview
Keil uVision3
-Uvod Programiranje mikrokontrolera u asembleru predstavlja optimalan nacin programiranja sa stanovišta iskorišćenja ograničenih ugrađenih resursa, kao na primer, programske memorije i dr. S druge strane za složenije projekte program napisan u asembleru može biti komplikovan za čitanje i razumevanje. Zato se danas mikrokontroleri programiraju u višim programskim jezicima, a najpoznatiji i najčešce korišćeni je programski jezik C.Pretpostavkom da student poseduje osnovna znanja o programskom jeziku C i njegovim osnovnim strukturama podataka. Takođe, pretpostavlja se znanje tzv. ANSI C-a. Efikasnost programiranja je povećana i zbog upotrebe elemenata strukturalnog programiranja i širokog skupa operatora.U odnosu na ANSI ( American National Standards Institute) C programski jezik, C za mikrokontrolere je prilagođena varijanta koja koristi specijalizovan kompajler(prevodlac). Primer specijalizovanog kompajlera je C51 kompajer koji se koristi za prevođenje programa kod mikrokontrolera baziranih na 8051 mikroprocesorima. C jezik sam po sebi nije u mogucnosti da obavlja operacije (kao što su ulaz i izlaz), te su ove mogucnosti obezbeđene kao deo standardne biblioteke. Zbog toga što su ove funkcije odvojene od samog jezika, C je naročito pogodan za generisanje programa lako prenosivih izmedu različitih platformi. Ukratko, interakcija programa sa okolinom u programskom jeziku C je sadržana u njegovoj standardnoj biblioteci, a C51 kompajler je specijalizovan za ugrađene (embedded) mikroprocesore.
-Proširenja za standardni ANSI C jezik
U cilju što lakšeg rada sa 8051 mikroprocesorima, C51 kompajler koristi brojne noveključne rječi koje ne postoje u standardnom C jeziku. Ukratko ćemo objasniti značenje najviše korišcenih kljucnih riječi.-Arhitektura 8051 podržava nekoliko fizički odvojenih memorijskih prostora i dejelova za smeštanje programa. Svaki memorijski prostor nudi određene prednosti i mane. Postoje memorijski prostori koji omogućavaju:Čitanje ali ne i upisupis i čitanjeupis i čitanje ali brže u odnosu na ostale memorijeProgramska (code) memorija ima samo mogucnost čitanja i može biti po realizacijiunutrašnja, spoljašnja i kombinacija ove dve memorije. Programskoj memoriji se može pristupiti pomoću memorijskog tipa code definisanog u okviru C51 standardne biblioteke. Unutrašnja memorija za podatke se nalazi na samom čipu i u nju se može i upisivati i čitati.-Memoriji za podatke se brzo pristupa jer se koristi 8-bitna adresa. Za pristup internoj memoriji se koriste tri razlicita memorijska tipa:data - oznacava da se pristupa internoj memoriji podataka uz direktno adresiranje,što omogucava brz pristup (128B).idata - označava da se pristupa celoj memoriji za podatke (256B) uz indirektno adresiranje.bdata – označava da se pristupa lokacijama ukupne velicine od 16 bajtova koje se mogu adresirati po bitovima. Za razliku od unutrašnje, spoljašnja memorija za podatke je sporija, jer se pristup vrši preko pokazivaca na podatke. Maksimalno je podržano 64k spoljašnje memorije za podatke. Vrlo je važno da se shvati da se ovaj adresni prostor ne mora koristiti samo za pristupanje memoriji. Hardverski dizajn može i mapirati odredene periferne sklopove unutar memorijskog prostora C51. Kompajler nudi dva memorijska tipa za pristup spoljašnjoj memoriji za podatke:
-1-xdata - da se može pristupiti bilo kojoj lokaciji unutar memorijskog prostora (64k) i koristi se kod large memorijskog modela.pdata - oznacava de se pristupa samo jednoj stranici velicine 256 bajta od spoljašnje memorije za podatke. Ovaj tip se koristi kod compact memorijskog modela. Udaljena memorija (far memory) označava prošireni adresni prostor kod većine 8051varijanti. C51 kompajler koristi genericki trobajtni pokazivac za pristup ovom proširenom adresnom prostoru. Dva C51 memorijska tipa, far i const far, služe za pristup promjenljivama u proširenom RAM prostoru i konstantama u proširenom ROM prostoru. Memorijski model odreduje tip memorije u upotrebi za argumente funkcija, automatske promjenljive i deklaracije koje ne koriste eksplicitno navedeni tip memorije. C51koristi tri memorijska modela:
Small Model - Kod ovog modela, sve promenljive, podrazumevano, se nalaze u unutrašnjoj memoriji za podatke 8051 sistema tj. koristi se data memorijski tip. Kod ovog modela, promenljivama se pristupa na efikasan nacin. Medutim, sviobjekti koji nisu eksplicitno postavljeni u nekom drugom memorijskom prostoru,moraju da se uklope u okviru unutrašnjeg RAM-a koji je sam po sebi vrlo mali.
Compact Model - Kod ovog modela, podrazumevamo, sve promenljive se nalaze u jednoj stranici spoljašnje memorije za podatke tj. koristi se memorijski tip pdata. Ovaj model može obezbediti maksimalno 256 bajtova promenljivih, jer se koristi indirektno adresiranje kroz registre R0 i R1.
Large Model - Kod ovog modela, sve promjenljive se nalaze u spoljašnjoj memoriji za podatke (do 64k prostora) tj. koristi se xdata memorijski tip. Pristup memoriji kod ovog modela ja u odnosu na ostale modele najsporiji i neefikasan, narocito kod promjenljivih koje sadrže nekoliko bajtova.Evo nekoliko primera za korišćenje navedenih memorijskih tipova:unsigned char bdata bdata_var;unsigned char code code_constant;unsigned char data fast_variable;unsigned char far far_variable;unsigned char idata variable;unsigned char pdata variable;unsigned char xdata variable; -Familija 8051 mikrokontrolera sadrži poseban memorijski prostor za pristup specijalnim funkcijskim registrima (Special Function Registers - SFRs). Ovi registri se koriste u programu za kontrolu tajmera, brojača, serijskog ulaza i izlaza, ulazno-izlaznih portova i periferija. Nalaze se na adresama od 0x80 do 0xFF (128 bajta) i može im se pristupati bitski, bajtovski, ili na nivou reči. Svi nazivi ovih registara su predefinisani u okviru C51 kompajlera. C51 kompajler obezbeduje pristup specijalnim registrima preko tipova podataka:sfr - deklariše se u istom stilu kao i druge C promenljive. Portovi P0, P1, P2 i P3koriste ovaj tip. Ovaj tip se ne može definisati u okviru tela funkcije.sfr P0 = 0x80; /* Port-0, address 80h */sfr P1 = 0x90; /* Port-1, address 90h */sfr P2 = 0xA0; /* Port-2, address 0A0h */sfr P3 = 0xB0; /* Port-3, address 0B0h */sfr16 - neki od specijalnih registara su 16-bitni. Na primjer, 8052 koristi adrese
0xCC i0xCD za donji i gornji bajt tajmera/brojaca 2.sfr16 T2 = 0xCC; /* Timer 2: T2L 0CCh, T2H 0CDh */sfr16 RCAP2 = 0xCA; /* RCAP2L 0CAh, RCAP2H 0CBh */sbit - zadaci koji se rešavaju 8051 mikrokontrolerima često zahtjevaju jednobitne promenljive. Zato C51 podržava jednobitni tip podataka koji omogućava pristup specijalnim jednobitnim registrima.sbit EA = IE^7; /*oznacava dozvolu prekida */sfr PSW = 0xD8; /*specijalni registri */sfr IE = 0xA8; /*sa mogucnošci bitskog adresiranja u tri varijante*/-2-sbit OV = PSW^2; /*varijanta 1 – sbit name = sfr-name ^ bit-position*/sbit CY = PSW^7;sbit EA = IE^7;sbit OV = 0xD0^2; /*varijanta 2 – sbit name = sbit-address ^ bit-position*/sbit CY = 0xD0^7;sbit EA = 0xA8^7;sbit OV = 0xD2; /*varijanta 3 – sbit name = sbit-address*/sbit CY = 0xD7;sbit EA = 0xAF;Pored ovih tipova specifičnih za 8051 mikrokontrolere, ostali tipovi u standardnom ANSI C-u su takođe podržani od strane C51 kompajlera.
-Struktura C programa za mikrokontrolere familije 8051
-Prvi red programa ( sadrži direktivu #include za čitanje (ubacivanje) izvornog fajla sa deklaracijama za odgovarajuci mikrokontroler. U toku kompajliranja, fajl naveden u direktivi #include se ubacuje u osnovni fajl (u ovom slucaju u main.c). Pored #include značajna direktiva je i #define kojom se definiše makro ili konstanta. Na primer:#include<math.h> //ukljucenje matematickih funkcija#include<reg51.h> //ukljucenje adresa portova, registara i specijalnihbita u memoriji#define PI 3.14159 /* definisanje konstante PI, sada se u programusvuda piše PI a kompajler zna da je to broj 3.14159 */#define Timer0H 0xE4 //Konstanta u kodu Timer0H se zameni sa vrednošcu
=0xE4#define Timer0L 0xF0 -Treba zapaziti da je u programu main.c promenljiva i definisana kao unsigned char, što znači da je osmobitna. Kako port P1 ima osam nožica, vrednost koja mu se pridružuje mora biti osmobitna tj. u intervalu od 0 do 255. Pojedinim nožicama porta P1 pristupa se pisanjem P1^x gde x oznacava broj nožice (npr. P1^2=0), gde je x u opsegu od 0 do7.Ovo je bio jednostavan primer programa napisanog u C programu. Možemo primetiti da se telo programa izvršava u okviru beskonačne petlje, što znači da će se program na mikrokontroleru u normalnim okolnostima izvršavati do trenutka kada se prekine napajanje. Ovakav način programiranja nije obavezan, ali je poželjan u smislu da na pravi način opisuje osnovnu upotrebu mikrokontrolera u kontrolnim i nadzornim sistemima u realnom vremenu.-3-
-μ Vision3 pruža vam:menu bar naredbu za ulazak, alat bar gde možete brzo odabrati naredbe i prozori za izvorne datoteke, dijaloške okvire, i prikazuje informacije. μ Vision3 Vam omogućava istovremeno otvaranje i pregled više izvornih datoteka.
Kod μ Vision3 postoji: -Build Mode: Omogućava vam prevođenje aplikacija i datoteka i generisanje izvršnog programa. -Debug Mode:Nudi vam program za pronalaženje grešaka na vaš zahtev. Sledeća slika prikazuje tipičnu konfiguraciju μ Vision3 u Debug Mode.
Project Workspace(radni proctor projekta) vam daje pristup: -Datoteci i grupi u okviru projekta. -CPU registrima -Alatima-Tekstualnim predlozima za najčešće korišćene blokove teksta. Funkcija u projektu za brzu navigaciju Output Window(izlazni prozor) daje poruke o grešci i brz pristupMemory Window(memorijski prozor) daje pristup memorijiWatch & Call Stack prozor vam omogućava pregled i izmenu programa i prikazuje trenutnu funkciju poziva stabla.
Radni prozor se koristi za uređivanje datoteka,Peripheral Dialog će vam pomoći da proverite status periferija.Kada koristite Keil μ Vision3, projekt razvoja ciklusa je otprilike isti kao što je za bilo koji drugi softver .1-Izradi projekt,odaberi ciljni čip iz baze podataka i konfiguriši(podesi) postavke alata. 2-Napravi source(izvornu) datoteku u C. 3-Izradi dokumentaciju korišćenjem projekt menadžera. 4-Ispravi greške u izvornu datoteku. 5-Ispitaj povezane aplikacije. -4--Sledeći blok dijagram ilustruje potpuni μ Vision3 softver.Svaka komponenta je opisana u nastavku.
μ Vision3 IDE -μ Vision3 IDE kombinuje projektni menadžment,interaktivni editor za ispravljanje grešaka,mogućnost čitanja i on-line pomoć. Pomoću μ Vision3 stvaramo svoje izvorne datoteke i organizujemo ih u projekt koji definiše ciljnu aplikaciju.μ Vision3 automatski kompajlira,prikuplja i povezuje aplikacije.
C & prevodilac makroasembler -Source datoteke stvorene od strane μ Vision3 i IDE se propušta delje ka višem programskom jeziku ili
kompajleru. Asemblerski prevodilac na osnovu izvorne datoteke stvara ciljnu datoteku.
Manager -Menager vam omogućava da izradite dokumentaciju iz datoteka kreirane od strane prevodioca i asemblera. Dokumentacija je posebno formirana. Kada se pristupi povezivanju biblioteka,koriste se samo oni moduli koji su potrebni za stvaranje programa.
-5-
Linker/ Locator -Linker / Locator stvara izvršnu datoteku programa pomoću objekt modula i one koju su stvarali prevodilac i asembler. Izvršna datoteka programa (koja se naziva i apsolutni objekt modul) ne sadrži prenosivi kod ili podatak. Kod i podaci imaju svoja memorijska mesta.
Ovaj program izvršnu datoteku koristi: -Za jedan program Flash ROM memorije ili drugih uređaja, -S in-circuit emulator program za testiranje. -μ Vision3 program za pronalaženje grešaka Debugger-Program za pronalaženje grešaka je prvenstveno brz i pouzdan program. Program za pronalaženje grešaka uključuje high-speed simulator da vam simulira jedan mali deo na čipu, uključujući i spoljne uređaje. Atributi u čipu koji koristite automatski se konfigurišu kada odaberete uređaj iz uređaja baze podataka. μ Vision3 program za pronalaženje grešaka nudi nekoliko načina da testirate svoj program na pravi hardver.
-Prečice koje se koriste za rad u μ Vision3
File MenuToolbar
Shortcut Description
New... Ctrl+N Kreirajte novi izvor ili tekstualnu datoteku
Open Ctrl+O Otvori postojeću datoteku
Close Zatvori aktivne datotekuSave Ctrl+S Sačuvaj aktivan fajl
Save as... Spremi i preimenuj aktivnu datotekuSave All Spremi sve otvorene izvorne i tekstualne datoteke,
uključujući i projektDevice Database Sačuvati baze podataka
License Management
održavanja i pregled instalirani softver komponente
Print Setup... Postavljanje štampačaPrint Ctrl+P Ispiši aktivnu datoteku
Print Preview Prikaz stranice u pogledu1 .. 10 Otvori zadnju korišćenu datotekuExit Zatvorite μ Vision3
-6-Edit Menu Toolbar Shortcut Description
Home Pomakni pokazivač na početak linije
End Pomaknite pokazivač na kraj linije Ctrl+Home Pomakni pokazivač na početak
datoteke Ctrl+End Pomaknite pokazivač na kraj
datoteke Ctrl+Left
ArrowPomaknite pokazivač jednu reč levo
Ctrl+Right Arrow
Pomakni kursor jednu reč desno
Ctrl+A Selektuj ceo tekst u trenutnu datoteku
Pomaknite pokazivač nazad na mesto pre 'naći' ili 'idite na liniju'
Pomaknite pokazivač prema napred na lokaciji nakon 'naći' ili 'idite na liniju'
Undo Ctrl+Z Otvori postojeću datoteku
Redo Ctrl+Y Zatvorite aktivnu datoteku
Cut Ctrl+X Iseci selektovani tekst
Copy Ctrl+C Kopiraj selektovani tekst
Paste Ctrl+V Zalepi kopirani ili isečeni tekst
Indent Selected Text Uvuci odabrani tekst desno
Unindent Selected Text Uvuci odabrani tekst levo
Toggle Bookmark Ctrl+F2 Pomeri oznaku na trenutnu liniju
Goto Next Bookmark F2 Pomaknite pokazivač na sledeći bookmark
Goto Previous Bookmark
Shift+F2 Pomaknite pokazivač na prethodni bookmark
Clear All Bookmarks Ctrl+Shift+F2 Obriši sve oznake u aktivnoj datoteci
Find Ctrl+F Pronađi tekst u aktivnoj datoteci
F3 Ponovi pretragu teksta napred Shift+F3 Ponovi pretragu teksta unazad Ctrl+F3 Nađi reč ispod kursoraReplace Ctrl+H Promeni određeni tekstFind in Files... Shift+Ctrl+F Traži tekst u nekoliko datoteka
Incremental Find Ctrl+I Pronađite na slovo-po-slovo osnovi
Outlining naredbe za opis izvornog kodaAdvanced Izdavač naredbeConfiguration Promena boje, fontova, prečica
Outlining Menu Toolbar Shortcut Description
Collapse Selection Sakrij trenutno odabrani tekst.Collapse All Definitions Blokiraj i sakrij trenutni blok.Collapse Current Block Sakrij sve procedure.Collapse Current Procedure Sakrij trenutnu proceduru.Stop Current Outlining Uklanja informacije o trenutnom položaju.Stop All Outlining Uklanja sve informacije za ceo dokument.
Advanced MenuToolbar Shortcut Description
Goto Matching Brace Ctrl+E Nađi podudaranja velike,male ili srednje zagrada
Tabify Selection Zamenite mesta petlje u odabranom tekstu.
Untabify Selection Zamenite petlju sa odabranim tekstom.
Make Uppercase Shift+Ctrl+U
Pretvorite odabrani tekst u velika slova.
Make Lowercase Ctrl+U Pretvorite odabrani tekst u mala
slova.Delete Horizontal White Space Izbrisati ili razdvojiti prostor u
odabranom tekstu.Comment Selection Pretvara svaki odabrani red u tekst
komentarUncomment Selection Pretvara svaki komentar na
normalan tekst.Increase Line Indent with Text... Povećava put crtanja svake
odabrane linijeDecrease Line Indent with Text...
Smanjuje put crtanja svake odabrane linije.
Cut current Line Ctrl+L Iseci tekst u trenutnom redu
-Izbor tekstualnih naredbi Na primer, Ctrl + strelica udesno pomera kursor na sledeću reč, a Shift + Ctrl + strelica udesno bira tekst od trenutne pozicije kursora na početku sledeće reči. . Da biste odabrali ... S mišem
To Select... With the Mouse
Any amount of text
Povucite nad tekst
A word Dvaput kliknite na rečA line of text Pomerite pokazivač na levo od reda sve dok se ne promeni u pravo-strelica
pokazuje i klikniteMultiple lines of text
Pomerite pokazivač na levo od reda sve dok se ne promeni u pravo-strelica pokazuje i povucite gore ili dole
A vertical block of text
Pritisnite i držite Alt i povucite
View MenuToolbar
Shortcut Description
Status Bar prikazati ili sakriti Status barFile Toolbar prikazati ili sakriti datoteku toolbarBuild Toolbar prikazati ili sakriti na Build toolbarDebug Toolbar prikazati ili sakriti Debug toolbarProject Workspace prikazati ili sakriti projekta Workspace
Output Window prikazati ili sakriti izlazni prozor
Source Browser prikazati ili sakriti prozor preglednika
Disassembly prikazati ili sakriti rastavljeni prozor
Watch & Call Stack Window
prikazati ili sakriti na Watch & Call Stack
prozorMemory Window prikazati ili sakriti Memory prozor
Code Coverage Window prikazati ili sakriti Code Coverage prozor
Performance Analyzer Window
prikazati ili sakriti izvedbu Analyzer prozor
Logic Analyzer Window prikazati ili sakriti Logic Analyzer prozor
Symbol Window prikazati ili sakriti Analyzer prozorSerial Window #1 prikazati ili sakriti serijski WINDOW # 1
Serial Window #2 prikazati ili sakriti serijski WINDOW # 2
Serial Window #3 prikazati ili sakriti serijski WINDOW # 3
Toolbox Prikazati ili sakriti traku s alatima na Toolbox
Periodic Window Update
ispravljanje prozora dok radite
Include Dependencies prikazati ili sakriti zaglavlje datoteke od izvorne datoteke u projektu
Project Menu ToolbarShortcut Description
New... Napravite novi projekt ili Multi-Project Workspace datoteku
Import µVision1 Project... Promenitineki μ Vision projekt File
Open Project... Otvori postojeći projektClose Project Zatvori trenutni projektManage Održavati projekt
komponente ili multi-radni projekt
- Components, Environment, Books...
Postavi projekat komponente (ciljeve, grupa, datoteka), konfigurisati alat,upravljanje
- Multi-Project Workspace Održavati μ Vision projekt koji pripada nekom multi-radnom projektu
Select Device for Target Odaberite uređaj iz baze podataka
Remove Item Ukloni datoteku iz projekta
Options for Target Promeni alat opcije za određene grupe ili datoteke
Alt+F7 Promeni alat mogućnosti za trenutne ciljeve
Odaberite trenutnii cilj
Clean target Obriši srednji fajl u ciljnom projektu
Build target F7 Prevedi izmenjene datoteke i izgraditi aplikaciju
Rebuild all target files prevesti sve izvorne datoteke i izgraditi aplikaciju
Batch Build naredbe Execute graditi na odabrani projekt / ciljeva, multi-projekta radnog prostora.
Translate... Ctrl+F7 Prevedi trenutnu datoteku
Stop Build Prekini trenutni proces
1 .. 10 Otvori najveći poslednji korišćen fajl projekta
Debug MenuToolbar
Shortcut Description
Start/Stop Debug Session Ctrl+F5 zaustaviti μ Vision3 Debug Mode
Go F5 Pravac do sledeće aktivne tačke prekida
Step F11 Izvršiti jedan korak u funkciji
Step Over F10 Izvršiti jedan korak preko funkcije
Step Out of current Function Ctrl+F11
Održavati komponente projekta (ciljevi, grupa, datoteka), konfigurisati alat za okruženje, upravljanje
Run to Cursor Line Izvrši do trenutnog pokazivača linija
Stop Running ESC Odaberite CPU iz uređaja baza podataka
Breakpoints... Otvorite dijalošku tačku prekida
Insert/Remove Breakpoint Pomeri tačku prekida na trenutne linije
Enable/Disable Breakpoint Alt+F7 Omogućiti / isključiti tačku prekida na trenutne linije
Disable All Breakpoints Isključiti sve tačke prekida u program
Kill All Breakpoints F7 Odstrani sve tačke prekida u program
Show Next Statement Prikazati sledeću izvršnu izjavu / instrukcija
Enable/Disable Trace Recording
Ctrl+F7 Omogući snimanje za pregled instrukcija
View Trace Records Proveri prevremeno izvršenje instrukcija
Execution Profiling Postavite izvršenje profiliranja do isteka vremena ili pojave poziva
Setup Logic Analyzer Otvori dijalog za logički analizatorMemory Map... Otvorite dijaloški plan memorijePerformance Analyzer... Otvori podešavanja za analizuInline Assembly... Otvorite dijaloški inline asembleraFunction Editor (Open Ini File)...
Uredi debug funkcije i program za pronalaženje grešaka
Debug MenuToolbar
Shortcut Description
Download Pozvati Flash za konfigurusanje opcija
Erase Izbrisati Erase u Flash ROM (dostupno samo za neke uređaje).
Configure Flash Tools...
Otvorite dijalošku opciju za cilj.
Debug MenuToolbar
Shortcut Description
Reset CPU Postaviti CPU u početni položaj
Interrupts,I/O-Ports,Serial,Timer,A/D Converter,D/A Converter,
Otvoriti dijaloški prozor za upozoravanje periferija.Ovaj prozor zavisi od CPU i baza podataka će se razlikovati.
I2C Controller,CAN Controller,Watchdog
Tools Menu Toolbar Shortcut Description
Setup PC-Lint… Konfigurisati PC za Gimpel softverLint Obrada za vreme tekućeg editora fajlaLint all C Source Files Obrada preko C izvorne datoteke projektaCustomize Tools Menu... Dodaj korisnika programa na izbornik Alata
-12-
SVCS Menu Toolbar Shortcut Description
Configure Version Control... Konfiguracija komandi vašeg SVCS
Window Menu Toolbar Shortcut Description
Cascade Prilagoditi prozore kako bi se oni preklapaliTile Horizontally Prilagoditi prozore kako se oni ne bi preklapaliTile Vertically Prilagoditi prozore kako se oni ne bi preklapaliArrange Icons urediti ikone na dnu prozoraSpilt Razdvojiti aktivni prozor u deloveClose All Zatvori sve aktivne prozore1 - 9 aktiviraj odabrane prozore
Help MenuToolbar
Shortcut Description
µVision Help Otvoriti μ Vision pomoć za pomoć datoteci
Open Books Window Otvori radni prostorSimulated Peripherals for '...' Pružite informacije o periferijama
simulirane od odabranih uređaja
Internet Support Knowledgebase
Open www.keil.com / support koji daje odgovore na uobičajena pitanja
Contact Support otvorite web-based obrazac za zahtjev za tehničku podršku
Check for Update Provjerite www.keil.com dostupne novosti za program
Tip of the Day... Prikaži korisne savete i trikoveAbout µVision... Prikaz verzija brojevi i informacije o
licenci
-13-
-Status Bar -Status Bar prikazan na ekranu prikazuje poruke i informacije o trenutnim μ Vision komandama i druge informacije kako je objašnjeno u nastavku:
Debug Channel prikazuje aktivan alat za ispravljanje i prikazuje ime ili simulacije kada je program testiran.
Vreme izvršenja prikazuje vreme trajanja simulacije.
Pozicija kursora pokazuje trenutnu poziciju u editor datoteci (L: broj linija, C: broj kolona).
Keyboard Editor prikazuje informacije:
CAP:tipka je trenutno unutar tastature za velika slova. NUM: tipka je trenutno u NUM LOCK statusu. SCRL: tipka je trenutno u zaključanom stanju. OVR: označava pisanje preko editor načina koji zamenjuje znakove kao što ste upisali. R / W čitanje / pristup pisanju;R / O read-only pristup-sprečava modifikacije iz teksta.
-Koristite Simulator i μ Vision3 program za pronalaženje grešaka kao i software-proizvoda koji simulira samo najbolje osobine,bez da zapravo ciljate hardver.
-14--Logički analizator
-μ Vision3 Logic Analyzer daje grafički prikaz promene vrednosti varijable(promenljive) ili VTREGs koje ste naveli.
Logic Analyzer prozor sadrži u vrhu granice nekoliko tastera i polja za prikaz. Instalacijski ... dialog definiše varijable(promenljive) signala za snimanje i konfiguriše prikaz izlaza. Neke konfiguracijske postavke mogu biti promijenjen iz menija koji se otvara s desnim klikom na signal ime(name).
Vreme polja prikazuje: -Min Time: Vreme početka signala -Max Time: Vreme završetka signala-Raspon: Vremensko rastojanje od trenutnog prikaza. -Grid: Vremensko rastojanje od jedne linije. - Zoom pokazuje kompletan sadržaj signala.Zoom je promene prikaza na izbor koji ste prethodno označili mišem povlačenjem dok držite tipku SHIFT. -Kod otvara prozor ili rastavljanje na broj pozicija koje uzrokuje signal u pomeranju. -Postava Min / Max konfiguriše se za prikaz raspona signala. Auto konfigurira, max. / Min. vrednosti temelji se na vrednosti iz trenutnog snimanja. Undo vraća prethodne postavke pre Auto. -Logic Analyzer vam omogućava da pregledate ili promeniti podatke koristeći sledeće naredbe kursor miša i:
Postavite kursor u skladu s mišem i kliknite. Pokazivač linije prikazuje sve varijable(promenljive) vrednosti u odabrana vremena.Okvir informacija pokazuje signal delta vrednosti i temelji se na trenutnu poziciju kursora linije.
-15- -Memorijski prozor Memory prozor prikazuje sadržaj u raznim područjima memorije. Do četiri različita područja može se pregledati u različitim stranicama. U kontekstu meni vam omogućava izbor dozvoljenog izlaznog formata.
U polje Adresa, Memory Window, možete uneti bilo koji izraz koji ocenjuje početak adresa iz područja koje želite prikazati. Da biste promenili sadržaj memorije, dvaput kliknite na vrednosti. To otvara jedan okvir koji vam omogućuje da unesete nove memorijske vrednosti.
-Memorijska karta Omogućava da odredite memorijsko područje koje vaš ciljni program koristi za podatke i izvršenje programa. Obično se ne zahtijeva karta dodatnih adresa. Potrebna je samo karta za memorijska područja u kojima se pristupa bez izričite deklaracije varijable(promenljive), tj. memorije preslikavaju I / O prostor.
-16--Serijski prozor μ Vision3 nudi dva serijska prozora za serijski ulaz i izlaz. Serijski izlaz podataka iz simuliranog CPU je prikazan u ovom prozoru.
Ovo Vam omogućava simulaciju CPU's UART bez potrebe za spoljnim hardverom. Za serijski izlaz će isto tako biti dodeljen PC COM port koristeći naredbu dodeliti u Output Window - Command stranicu.
-17-
-Stvaranje jednog projekta u uVision 3
Pokrenite Keil uVison3 program.
-18-
Kreirajte novi dizajn projekta.Odaberite novi projekt iz padajućeg menija
Nakon što ste kliknuli na save(sačuvaj),otvara se prozor koji će vas pitati koji čip želite koristiti. Na primer, ako želite koristiti CC1010 iz Chipcon, morate odabrati Chipcon CC1010 i sl. Pobrinite se da "Koristite proširena povezivanja".Odaberite Philips P89LPC935 mikrokontroler kao cilj
-19- Pojaviće se novi prozor koji će vas pitati da li želite kopirati standard 8051 kod pokretanja u folder projekta. Osim ako ste stari korisnik, trebate kliknuti No,u suprotnom kliknite Yes.
Možete sada izraditi projekt, ali ne postoji izvorni kod. Program bi trebao izgledati ovako:
-20- Sada morate stvoriti datoteku koja sadrži C kod naše aplikacije i dodati ga grupi odnosno “Group Source”. Napravi novu datoteku. Sačuvaj datoteku kao lab1.c.
Dodaj u lab1.c datoteku na Source Group 1 folder. Kliknite desnim tasterom miša na Source Group 1 folder i odaberite "Add Files na grupu".
Kliknite na dodaj(add),kako bi dodali fajl u grupuPisanje C k^da u LED flash-u i izrada projekta.
-21- Koristite 'Obnovi sve ciljne datoteke'-Rebuild all target iz padajućeg menija Project. Sada imate izvorni kod koji je dodat grupi.
-22--Simulacija
Pre simulacije kliknite na Target 1 i desnim klikom miša odaberite opcije za Target 1,da bi se osigurala brzina za ciljni sklop. Brzina zavisi od tipa mikrokontrolera.MCB900 koristi
7.373MHz RC oscilator. Izaberite ciljno polje i postavite kristal (XTAL) na frekvenciji 7,373 MHz.
-23- Da biste pokrenuli simulaciju odaberite Start / Stop Debug Sesion opciju iz padajućeg menija Debug..
Prozor projekta uVision sada sadrži pod-prozore. Radni prozor pokazuje trenutni sadržaj najvažnijih registara. Takođe se prikazuje vreme izvršavanja koda u sekundama. Editor prozor pokazuje C kod,a disassembly prozor pokazuje kodove koji grade ceo projekt. Tokom naših simulacija želimo imati mogućnost nadziranja statusa Port 2 pin 0. Zaokruživanje pina znači da je na visokoj logici(1). Prazno polje na pinu je niska logika(0). Alternativa je metoda za dodavanje varijable(promenljive) na prozor.Idite na periferije(peripherals) i odaberite odgovarajuću IO port.
-24-
Pritisnite F11 da dalje pratite korak po korak,mali žuti pokazivač će ukazivati na instrukciju u svakoj liniji programa.
-25-
-Programiranje u MCB900-u
Mi smo sada spremni za ubacivanje koda u flash memoriju mikroprocesora. Pobrinite se da MCB900 ima serijski priključak na PC. Programiranje je proces prenošenja heksadecimalne vrednosti jedne datoteke iz računara u MCB900 mikrokontroler putem RS232 konektora. Mi moramo obezbediti da se prenese svaka heksadecimalna vrednost u datoteci koja je stvorena za vreme dok se gradio proces. Odaberite opciju “project”,zatim u tom padajućem meniju izaberite "Opcije za Target 'Target 1'. Odaberite zlaz(output) na kartici i zaokružite 'Kreiraj Hex File' okvir. Nakon toga se vrši re-izgradnja projekta.
Da bi program prebacili potreban je: Reset jamper Na Pokreni jamper Off Program se prebacuje odabirom Download Flash iz padajućeg menija. Kada se programiranje završi promenite jamper postavke kao što sledi:Reset jamper Off Pokreni jamper Na
-Korištenje ISD51 U-System programa za pronalaženje grešaka On komunicira (obično preko serijskog porta) s μ Vision3 programom za pronalaženje grešaka i omogućava da preuzmete i ispravljanje vaših programa u realnom vremenu. ISD51 je deo za μ Vision program za pronalaženje grešaka koristeći 8051's on-chip UART i omogućava vam da vidite u memoriji,namestite tačku prekida,ispravljanje grešaka i obavljanje brojnih operacija. -26-
A51 izvorni kod mora biti povezan s vašim zahtevanim kodom.Sledite sedeće korake: 1. Kopirajte datoteke ISD51.A51 i ISD51.H iz c: \ Keil \ c51 \ ISD51 \ primeri \ Philips LPC9xx u Vaš folder projekta. 2. Dodaj datoteke ISD51.A51 i ISD51.H na izvor grupe vašeg projekta. 3. Uključite sledeći komentar na vrhu vaše C datoteke: - # include "ISD51.H" 4. Dodajte sledeći kod na vrhu svoje glavne () funkcije u C datoteci. Ovaj kod će podesiti serijski port,brzinu prenosa podataka i prekid će postaviti program za pronalaženje
grešaka. P1M1 = 0; / / Initialise serijski port BRGR0 = 0xF0; / * 9600 bod, 8 bita, bez pariteta, 1 stop bit * / BRGR1 = 0x02; BRGCON = 0x03; SCON = 0x52; / * omogućiti serijski uart & prijemnik * / EA = 1; / * globalno omogući prekid ograničenja* / / / Initialise ISD51 ISDwait ();
Nakon izgrade vašeg projekta odaberite “preuzmi”(Download)iz padajućeg menija Flash. Da bi preuzeli postavite jamper opcije kao što sledi: Reset jamper Na Pokreni jamper Off
-27-
Program za pronalaženje grešaka koristi Keil ISD51 U-system program za pronalaženje grešaka. Da biste to učinili odaberite opciju za Target 'Target 1' desnim klikom na Target1 u project workspace. Odaberite čišćenje polja(debug) i konfigurišite(podesite) program za pronalaženje grešaka kao što je prikazano u nastavku:
Za pregled memorije podataka ili spoljne memorije, idite na View->Memory prozoru. Da biste pogledali kod memorije, idite u okvir za adresu i upišite C:Na primer,za početak od 0x40, upišite C: 0X40.(0-40linije koda). Da biste pogledali podatke memorije, idite u okvir za adresu i upišite D: Na primer, za početak od 0x40, tip D: 0X40. (0-40linije koda).Da biste pogledali spoljne memorije, idite u okvir za adresu i upišite X: Na primer, za početak od 0x40, tip X: 0X40.(0-40linije koda).
-28-
-Za ispravljanje na serijskom portu, idite na Periferije->Serijski( Peripherals->Serial.) Zatim ćete videti sledeći prozor:
-Za ispravljanje vremena,idite na Periferije->tajmer (Peripherals->Timer) i otvoriće se sledeći prozor:
-29-
-Da bi videli tablicu prekida,idite na Periferije->Prekid(Peripherals->Interrupt) Zatim ćete videti sledeći prozor:
-Za izlazak iz debug načina rada,idite na Debug->Stop Debug Sesion.
-30-
-Stvaranje jednog projekta u uVision 3
Pokrenite Keil uVison3 program.
-31-
Kreirajte novi dizajn projekta.Odaberite novi projekt iz padajućeg menija
-32-
Otvoriće vam se sledeći prozor koji vas pita da sačuvate(save) kod vašeg projekta npr.na desktopu.Napišete ime projekta npr.displej.
-33-
Nakon što ste kliknuli na save(sačuvaj),otvara se prozor koji će vas pitati koji čip želite koristiti. Na primer, ako želite koristiti CC1010 iz Chipcon, morate odabrati Chipcon CC1010 i sl. Pobrinite se da "Koristite proširena povezivanja".U ovom slučaju odaberite Atmel AT89S8253 mikrokontroler kao cilj
AT89S8253 je processor visokih performansi,male potrosnje snage. Komponenta je napravljena u Atmel korporaciji i kompatibilna je sa nadaleko poznatim i popularnim procesorom 80C51.Repogramiranje memorije je moguce pomocu SPI serijskog ulaza ili pomocu konvekcionalnog programatora memorija.Kombinovanjem razlicitih 8-bitnih CPU-a sa ugradjenom programibilnom fles memorijom na monolitnom cipu,Atmel AT89S8253 je fleksibilan processor koji je zahvaljujuci niskoj ceni nasao veliku primenu kod mnogih kontrolnih aplikacija i programa. AT89S8253 ukljucuje standardne osobine poput 12 k bytes flash memory,2 k bytes EEPROM,256 bytes RAM memorije,32 I/O linije,programabilni clock/tajmer,dvostruki pokazivac,tri 16 bit-na clock/counter,6 vektorske arhitekture prekida sa 2 nivoa, potpuni serijski ulaz,eksterni sopstveni oscilator,i elektricno kolo sata.Ustvari AT89S8253 (uz pomoc staticke logike) se koristi za operacije niskih frekvencija,potpomognut sa 2 softverska moda. IDLE mod zaustavlja CPU dok dopustajuci RAM ,clock/counter,serijski port i sistem prekida se koriste za nastavak funkcionisanja.Niski mod cuva RAM sadrzaj ali i zamrzava oscilator iskljucujuci sve ostale funkcije u kolu sve dok naidje sledeci spoljasnji prekid ili hardverski reset.FLASH memorija se moze menjati pomocu serijskog SPI pristupa.Zadrzavanje Reset opcije SPI omogucava da memorija bude upisana ili procitana od stane bita koji su bili aktivni.
-34-
Ima 32 ulazno/izlazna pina, raspoređena u 4 porta sa po osam pinova. Poseduje watchdog tajmer, tri 16-bitna tajmera/brojača, devet izvora prekida i ugrađen oscilator (kvarcni oscilator se vezuje na pinove XTAL1 i XTAL2). Radi smanjenja potrošnje, pored normalnog moda rada, mikrokontroler može da radi u Idle modu ili Power-down modu.
Pojaviće se novi prozor koji će vas pitati da li želite kopirati standard 8051 kod pokretanja u folder projekta. Osim ako ste stari korisnik, trebate kliknuti No,u suprotnom kliknite Yes.
-35-
Možete sada izraditi projekt, ali ne postoji izvorni k^d.
-36-
Koristite 'Obnovi sve ciljne datoteke'-Rebuild all target iz padajućeg menija Project.Sada imate izvorni k^d koji je dodat grupi.
-37-
Zatim kliknite na označenu ikonicu koja vam služi za kreiranje novog fajla.Otvoriće vam se nova radna površina “Text 1”.
-38-
U radnoj površini Text 1 napišite k^d vašeg projekta.
-39-
Zatim sačuvajte k^d opcijom Save iz padajućeg menija File.
-40-
Naravno sačuvajte k^d pod ekstenzijom src. Ekstenzija sačuvanog fajla zavisi od toga u kom je programu pisan. Ekstenzija src. pokazuje da je kod pisan u programskom jeziku C.
-41-
Sledeće šta treba uraditi jeste da se taj fajl doda u prozoru Project Workspace 1 to desnim klikom na Source Group 1,pa na opciju Add Files Group.
-42-
Pronađite gde vam je smešten taj fajl i kliknite na Add.
Zatim idite na opciju 'Obnovi sve ciljne datoteke'-Rebuild all target iz padajućeg menija Project.
-43-
Pojaviće vam se sledeći prozor.Ako postoje greške u programu,kao što je ovde slučaj pisaće vam u Output Window(izlazni prozor) kakva je greška i u kom se redu nalazi.
-44-
Po ispravljanju grešaka ponovo idite na opciju 'Obnovi sve ciljne datoteke'-Rebuild all target iz padajućeg menija Project, i dobićete naredni prozor. Potrebno je da piše 0 Errors (s).
-45-
Pre simulacije kliknite na Target 1 i desnim klikom miša odaberite opcije za Target 1,da bi se osigurala brzina za ciljni sklop. Brzina zavisi od tipa mikrokontrolera. Za ovaj slučaj izaberite 24.0 MHz ciljno polje i postavite kristal (XTAL) na frekvenciji 24.0 MHz.
-46-
Da biste pokrenuli simulaciju odaberite Start / Stop Debug Sesion opciju iz padajućeg menija Debug.
-47-
Prozor projekta uVision sada sadrži pod-prozore. Radni prozor pokazuje trenutni sadržaj najvažnijih registara. Takođe se prikazuje vreme izvršavanja koda u sekundama. Editor prozor pokazuje C k^d,a disassembly prozor pokazuje kodove koji grade ceo projekt. Tokom naših simulacija želimo imati mogućnost nadziranja statusa Port 2 pin 0. Zaokruživanje pina znači da je na visokoj logici(1). Prazno polje na pinu je niska logika(0). Alternativa je metoda za dodavanje varijable(promenljive) na prozor.
-48-
Za ispravljanje programa idite na korak Debug Step Over. Step Over The command će ispravljati jedan red ili celi potprogram, zavisno od toga gde je pokazivač postavljen.. Pritisnite F11 i pojaviće se mali žuti pokazivač koji vam omogućava da prtite korak po korak-svaku liniju programa.
-49-
Programiranje je proces prenošenja heksadecimalne vrednosti jedne datoteke iz računara u mikrokontroler putem RS232 konektora. Mi moramo obezbediti da se prenese svaka heksadecimalna vrednost u datoteci koja je stvorena za vreme dok se gradio proces. Odaberite opciju “project”,zatim u tom padajućem meniju izaberite "Opcije za Target 'Target 1'. Odaberite zlaz(output) na kartici i čekirajte 'Create Hex File' okvir.
Sada koristite 'Obnovi sve ciljne datoteke'-Rebuild all target iz padajućeg menija Project.
-50-
Sada idete na opciju “Open file” iz padajućeg menija “File” da bi ste videli generisani HEX fajl,naravno on je snimljen tamo gde vam je izvorni kod pa se može pokrenuti i otuda. Za tip fajla(Files of type) izaberite svi fajlovi(All files).
-51-
Sledeće šta treba uraditi jeste da čekirate odnosno označite fajl sa ekstenzijom .hex. To vam je generisani HEX fajl,odnosno heksadecimalna vrednost koju treba prebaciti u mikrokontroler.
-52-
Ovde se vidi dobijeni HEX fajl.
-53-
PUNJENJE HEX FAJLA U MIKROKONTROLER
Programiranje je proces prenošenja heksadecimalne vrednosti jedne datoteke iz računara u mikrokontroler putem RS232 konektora. Hex fajl upisujemo u mikrokontroler na način koji je opisan u slikovito prikazanom postupku koji sledi. Za upis hex fajla koristimo atmelov softver koji se moze download-ovati sa njihovog sajta. Vrši se serijsko programiranje priključivanjem programatora na pinove 5 i 6 porta P1 mikrokontrolera.
-54-
-Sledeći korak je izbor ATMEL-ovog mikrokontrolera,a kako smo mi koristili AT89S8253 biramo njega, što je prikazano na sledećoj slici:
Kad se otvori folder AT89 dobija se sledeći prozor.
-55-
Posle izbora komponente u prozoru softvera se moze videti prazan buffer mikrokontrolera koji je prikazan na sledećoj slici:
-56-
Zatim vršimo učitavanje hex fajla na sledeći način:
-57-
Upis u mikrokontroler vršimo na sledeći način koji je prikazan na slici:
-58-
SADRŽAJ:
-UVOD---------------------------------------------------------------------------- 1- PROŠIRENJA ZA STANDARDNI ANSI C JEZIK-------------------1- STRUKTURA C PROGRAMA ZA MIKROKONTROLERE FAMILIJE 8051------------------------------------------------------------------3-PREČICE KOJE SE KORISTE U KEIL UVISION-u------------------6-STATUS BAR-------------------------------------------------------------------14-LOGIČKI ANALIZATOR---------------------------------------------------15-MEMORIJSKI PROZOR----------------------------------------------------16-SERIJSKI PROZOR----------------------------------------------------------17-GENERISANJE HEX FAJLA IZ PRIMERA KOJI SE NALAZEU PAKETU PROGRAMA I SIMULACIJA-------------------------------18-STVARANJE PROJEKTA U KEIL U VISION3------------------------31 KREIRANJE PROJEKTA-------------------------------------------31-45 SIMULACIJA PROJEKTA-----------------------------------------46-48 ISPRAVLJANJE GREŠAKA U PROGRAMU----------------------49 GENERISANJE HEX FAJLA---------------------------------------50-53 PUNJENJE HEX FAJLA U MIKROKONTROLER-----------54-58
Univerzitet u NišuElektronski FakultetKatedra za elektroniku
KEIL U VISION 3
Student: Zoran Jovanović 11178