keil u vision 3
DESCRIPTION
dsdasdasTRANSCRIPT
-
Keil uVision3 -Uvod Programiranje mikrokontrolera u asembleru predstavlja optimalan nacin programiranja sa stanovita iskorienja ogranienih ugraenih resursa, kao na primer, programske memorije i dr. S druge strane za sloenije projekte program napisan u asembleru moe biti komplikovan za itanje i razumevanje. Zato se danas mikrokontroleri programiraju u viim programskim jezicima, a najpoznatiji i najece korieni je programski jezik C.Pretpostavkom da student poseduje osnovna znanja o programskom jeziku C i njegovim osnovnim strukturama podataka. Takoe, pretpostavlja se znanje tzv. ANSI C-a. Efikasnost programiranja je poveana 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 prilagoena varijanta koja koristi specijalizovan kompajler(prevodlac). Primer specijalizovanog kompajlera je C51 kompajer koji se koristi za prevoenje 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 obezbeene kao deo standardne biblioteke. Zbog toga to su ove funkcije odvojene od samog jezika, C je naroito pogodan za generisanje programa lako prenosivih izmedu razliitih platformi. Ukratko, interakcija programa sa okolinom u programskom jeziku C je sadrana u njegovoj standardnoj biblioteci, a C51 kompajler je specijalizovan za ugraene (embedded) mikroprocesore. -Proirenja za standardni ANSI C jezik U cilju to lakeg rada sa 8051 mikroprocesorima, C51 kompajler koristi brojne nove kljune rjei koje ne postoje u standardnom C jeziku. Ukratko emo objasniti znaenje najvie koricenih kljucnih rijei. -Arhitektura 8051 podrava nekoliko fiziki odvojenih memorijskih prostora i dejelova za smetanje programa. Svaki memorijski prostor nudi odreene prednosti i mane. Postoje memorijski prostori koji omoguavaju: itanje ali ne i upis upis i itanje upis i itanje ali bre u odnosu na ostale memorije Programska (code) memorija ima samo mogucnost itanja i moe biti po realizaciji unutranja, spoljanja i kombinacija ove dve memorije. Programskoj memoriji se moe pristupiti pomou memorijskog tipa code definisanog u okviru C51 standardne biblioteke. Unutranja memorija za podatke se nalazi na samom ipu i u nju se moe 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 - oznaava da se pristupa celoj memoriji za podatke (256B) uz indirektno adresiranje. bdata oznaava da se pristupa lokacijama ukupne velicine od 16 bajtova koje se mogu adresirati po bitovima. Za razliku od unutranje, spoljanja memorija za podatke je sporija, jer se pristup vri preko pokazivaca na podatke. Maksimalno je podrano 64k spoljanje memorije za podatke. Vrlo je vano da se shvati da se ovaj adresni prostor ne mora koristiti samo za pristupanje memoriji. Hardverski dizajn moe i mapirati odredene periferne sklopove unutar memorijskog prostora C51. Kompajler nudi dva memorijska tipa za pristup spoljanjoj memoriji za podatke: -1-
-
xdata - da se moe 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 spoljanje memorije za podatke. Ovaj tip se koristi kod compact memorijskog modela. Udaljena memorija (far memory) oznaava proireni adresni prostor kod veine 8051varijanti. C51 kompajler koristi genericki trobajtni pokazivac za pristup ovom proirenom adresnom prostoru. Dva C51 memorijska tipa, far i const far, slue za pristup promjenljivama u proirenom RAM prostoru i konstantama u proirenom 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 unutranjoj 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 unutranjeg RAM-a koji je sam po sebi vrlo mali. Compact Model - Kod ovog modela, podrazumevamo, sve promenljive se nalaze u jednoj stranici spoljanje memorije za podatke tj. koristi se memorijski tip pdata. Ovaj model moe 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 spoljanjoj 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 sadre nekoliko bajtova. Evo nekoliko primera za korienje 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 sadri poseban memorijski prostor za pristup specijalnim funkcijskim registrima (Special Function Registers - SFRs). Ovi registri se koriste u programu za kontrolu tajmera, brojaa, serijskog ulaza i izlaza, ulazno-izlaznih portova i periferija. Nalaze se na adresama od 0x80 do 0xFF (128 bajta) i moe im se pristupati bitski, bajtovski, ili na nivou rei. Svi nazivi ovih registara su predefinisani u okviru C51 kompajlera. C51 kompajler obezbeduje pristup specijalnim registrima preko tipova podataka: sfr - deklarie se u istom stilu kao i druge C promenljive. Portovi P0, P1, P2 i P3 koriste ovaj tip. Ovaj tip se ne moe 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 i 0xCD 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 reavaju 8051 mikrokontrolerima esto zahtjevaju jednobitne promenljive. Zato C51 podrava jednobitni tip podataka koji omoguava pristup specijalnim jednobitnim registrima. sbit EA = IE^7; /*oznacava dozvolu prekida */ sfr PSW = 0xD8; /*specijalni registri */ sfr IE = 0xA8; /*sa mogucnoci 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 specifinih za 8051 mikrokontrolere, ostali tipovi u standardnom ANSI C-u su takoe podrani od strane C51 kompajlera.
-Struktura C programa za mikrokontrolere familije 8051 -Prvi red programa ( sadri 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 znaajna direktiva je i #define kojom se definie makro ili konstanta. Na primer: #include //ukljucenje matematickih funkcija #include //ukljucenje adresa portova, registara i specijalnih bita u memoriji #define PI 3.14159 /* definisanje konstante PI, sada se u programu svuda pie PI a kompajler zna da je to broj 3.14159 */ #define Timer0H 0xE4 //Konstanta u kodu Timer0H se zameni sa vrednocu =0xE4 #define Timer0L 0xF0 -Treba zapaziti da je u programu main.c promenljiva i definisana kao unsigned char, to znai da je osmobitna. Kako port P1 ima osam noica, vrednost koja mu se pridruuje mora biti osmobitna tj. u intervalu od 0 do 255. Pojedinim noicama porta P1 pristupa se pisanjem P1^x gde x oznacava broj noice (npr. P1^2=0), gde je x u opsegu od 0 do7.Ovo je bio jednostavan primer programa napisanog u C programu. Moemo primetiti da se telo programa izvrava u okviru beskonane petlje, to znai da e se program na mikrokontroleru u normalnim okolnostima izvravati do trenutka kada se prekine napajanje. Ovakav nain programiranja nije obavezan, ali je poeljan u smislu da na pravi nain opisuje osnovnu upotrebu mikrokontrolera u kontrolnim i nadzornim sistemima u realnom vremenu. -3-
-
- Vision3 prua vam:menu bar naredbu za ulazak, alat bar gde moete brzo odabrati naredbe i prozori za izvorne datoteke, dijaloke okvire, i prikazuje informacije. Vision3 Vam omoguava istovremeno otvaranje i pregled vie izvornih datoteka. Kod Vision3 postoji: -Build Mode: Omoguava vam prevoenje aplikacija i datoteka i generisanje izvrnog programa. -Debug Mode:Nudi vam program za pronalaenje greaka na va zahtev. Sledea slika prikazuje tipinu 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 najee koriene blokove teksta. Funkcija u projektu za brzu navigaciju Output Window(izlazni prozor) daje poruke o greci i brz pristup Memory Window(memorijski prozor) daje pristup memoriji Watch & Call Stack prozor vam omoguava pregled i izmenu programa i prikazuje trenutnu funkciju poziva stabla. Radni prozor se koristi za ureivanje datoteka, Peripheral Dialog e vam pomoi 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 konfigurii(podesi) postavke alata. 2-Napravi source(izvornu) datoteku u C. 3-Izradi dokumentaciju korienjem projekt menadera. 4-Ispravi greke u izvornu datoteku. 5-Ispitaj povezane aplikacije. -4-
-
-Sledei blok dijagram ilustruje potpuni Vision3 softver.Svaka komponenta je opisana u nastavku.
Vision3 IDE
- Vision3 IDE kombinuje projektni menadment,interaktivni editor za ispravljanje greaka,mogunost itanja i on-line pomo. Pomou Vision3 stvaramo svoje izvorne datoteke i organizujemo ih u projekt koji definie ciljnu aplikaciju. Vision3 automatski kompajlira,prikuplja i povezuje aplikacije. C & prevodilac makroasembler -Source datoteke stvorene od strane Vision3 i IDE se proputa delje ka viem programskom jeziku ili kompajleru. Asemblerski prevodilac na osnovu izvorne datoteke stvara ciljnu datoteku. Manager -Menager vam omoguava 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 izvrnu datoteku programa pomou objekt modula i one koju su stvarali prevodilac i asembler. Izvrna datoteka programa (koja se naziva i apsolutni objekt modul) ne sadri prenosivi kod ili podatak. Kod i podaci imaju svoja memorijska mesta. Ovaj program izvrnu datoteku koristi: -Za jedan program Flash ROM memorije ili drugih ureaja, -S in-circuit emulator program za testiranje. - Vision3 program za pronalaenje greaka Debugger -Program za pronalaenje greaka je prvenstveno brz i pouzdan program. Program za pronalaenje greaka ukljuuje high-speed simulator da vam simulira jedan mali deo na ipu, ukljuujui i spoljne ureaje. Atributi u ipu koji koristite automatski se konfiguriu kada odaberete ureaj iz ureaja baze podataka. Vision3 program za pronalaenje greaka nudi nekoliko naina da testirate svoj program na pravi hardver.
-Preice koje se koriste za rad u Vision3 File Menu Toolbar Shortcut Description
New...
Ctrl+N Kreirajte novi izvor ili tekstualnu datoteku
Open
Ctrl+O Otvori postojeu datoteku Close Zatvori aktivne datoteku Save
Ctrl+S Sauvaj aktivan fajl
Save as... Spremi i preimenuj aktivnu datoteku Save All
Spremi sve otvorene izvorne i tekstualne datoteke,
ukljuujui i projekt Device Database Sauvati baze podataka License Management
odravanja i pregled instalirani softver komponente
Print Setup... Postavljanje tampaa Print
Ctrl+P Ispii aktivnu datoteku
Print Preview Prikaz stranice u pogledu 1 .. 10 Otvori zadnju korienu datoteku Exit Zatvorite Vision3
-6-
-
Edit Menu Toolbar Shortcut Description
Home Pomakni pokaziva na poetak linije
End Pomaknite pokaziva na kraj linije Ctrl+Home Pomakni pokaziva na poetak
datoteke Ctrl+End Pomaknite pokaziva na kraj
datoteke Ctrl+Left
Arrow Pomaknite 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 'nai' ili 'idite na liniju'
Pomaknite pokaziva prema napred na lokaciji nakon 'nai' ili 'idite na liniju'
Undo
Ctrl+Z Otvori postojeu 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 iseeni 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 sledei bookmark
Goto Previous Bookmark
Shift+F2 Pomaknite pokaziva na prethodni bookmark
Clear All Bookmarks
Ctrl+Shift+F2 Obrii sve oznake u aktivnoj datoteci
Find
Ctrl+F Pronai tekst u aktivnoj datoteci F3 Ponovi pretragu teksta napred Shift+F3 Ponovi pretragu teksta unazad Ctrl+F3 Nai re ispod kursora Replace Ctrl+H Promeni odreeni tekst
-
Find in Files...
Shift+Ctrl+F Trai tekst u nekoliko datoteka
Incremental Find
Ctrl+I Pronaite na slovo-po-slovo osnovi Outlining naredbe za opis izvornog koda Advanced Izdava naredbe Configuration
Promena boje, fontova, preica
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 poloaju. Stop All Outlining Uklanja sve informacije za ceo dokument.
Advanced Menu Toolbar Shortcut Description
Goto Matching Brace Ctrl+E Nai 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 komentar
Uncomment Selection
Pretvara svaki komentar na normalan tekst.
Increase Line Indent with Text... Poveava put crtanja svake odabrane linije
Decrease 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 sledeu re, a Shift + Ctrl + strelica udesno bira tekst od trenutne pozicije kursora na poetku sledee rei. . Da biste odabrali ... S miem 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 kliknite Multiple 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 drite Alt i povucite
View Menu Toolbar Shortcut Description
Status Bar prikazati ili sakriti Status bar File Toolbar prikazati ili sakriti datoteku toolbar Build Toolbar prikazati ili sakriti na Build toolbar Debug Toolbar prikazati ili sakriti Debug toolbar Project 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 prozor
Memory 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 prozor Serial 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 Toolbar Shortcut Description
New... Napravite novi projekt ili Multi-Project Workspace datoteku
Import Vision1 Project... Promenitineki Vision projekt File
Open Project... Otvori postojei projekt Close Project Zatvori trenutni projekt Manage Odravati projekt
komponente ili multi-radni projekt
- Components, Environment, Books...
Postavi projekat komponente (ciljeve, grupa, datoteka), konfigurisati alat,upravljanje
- Multi-Project Workspace Odravati Vision projekt koji pripada nekom multi-radnom projektu
Select Device for Target Odaberite ureaj iz baze podataka
Remove Item Ukloni datoteku iz projekta Options for Target Promeni alat opcije za
odreene grupe ili datoteke
Alt+F7 Promeni alat mogunosti za
trenutne ciljeve
Odaberite trenutnii cilj
Clean target Obrii 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 najvei poslednji korien fajl projekta
Debug Menu Toolbar Shortcut Description
Start/Stop Debug Session
Ctrl+F5 zaustaviti Vision3 Debug Mode Go
F5 Pravac do sledee aktivne take prekida
Step
F11 Izvriti jedan korak u funkciji
Step Over
F10 Izvriti jedan korak preko funkcije
Step Out of current Function
Ctrl+F11 Odravati komponente projekta (ciljevi, grupa, datoteka), konfigurisati alat za okruenje, upravljanje
Run to Cursor Line
Izvri do trenutnog pokazivaa linija Stop Running
ESC Odaberite CPU iz ureaja baza podataka
Breakpoints...
Otvorite dijaloku taku prekida Insert/Remove Breakpoint
Pomeri taku prekida na trenutne linije
Enable/Disable Breakpoint
Alt+F7 Omoguiti / iskljuiti taku prekida na trenutne linije
Disable All Breakpoints
Iskljuiti sve take prekida u program Kill All Breakpoints
F7 Odstrani sve take prekida u program
Show Next Statement
Prikazati sledeu izvrnu izjavu / instrukcija
Enable/Disable Trace Recording
Ctrl+F7 Omogui snimanje za pregled instrukcija View Trace Records
Proveri prevremeno izvrenje instrukcija
Execution Profiling Postavite izvrenje profiliranja do isteka vremena ili pojave poziva
Setup Logic Analyzer Otvori dijalog za logiki analizator Memory Map... Otvorite dijaloki plan memorije Performance Analyzer... Otvori podeavanja za analizu Inline Assembly... Otvorite dijaloki inline asemblera Function Editor (Open Ini File)... Uredi debug funkcije i program za
-
pronalaenje greaka
Debug Menu Toolbar Shortcut Description
Download
Pozvati Flash za konfigurusanje opcija
Erase Izbrisati Erase u Flash ROM (dostupno samo za neke ureaje).
Configure Flash Tools... Otvorite dijaloku opciju za cilj.
Debug Menu Toolbar Shortcut Description
Reset CPU
Postaviti CPU u poetni poloaj
Interrupts, I/O-Ports, Serial, Timer, A/D Converter, D/A Converter, I2C Controller, CAN Controller, Watchdog
Otvoriti dijaloki prozor za upozoravanje periferija.Ovaj prozor zavisi od CPU i baza podataka e se razlikovati.
Tools Menu Toolbar Shortcut Description
Setup PC-Lint Konfigurisati PC za Gimpel softver Lint Obrada za vreme tekueg editora fajla Lint all C Source Files Obrada preko C izvorne datoteke projekta Customize Tools Menu... Dodaj korisnika programa na izbornik Alata -12-
-
SVCS Menu Toolbar Shortcut Description
Configure Version Control... Konfiguracija komandi vaeg SVCS Window Menu Toolbar Shortcut Description
Cascade Prilagoditi prozore kako bi se oni preklapali Tile Horizontally Prilagoditi prozore kako se oni ne bi preklapali Tile Vertically Prilagoditi prozore kako se oni ne bi preklapali Arrange Icons urediti ikone na dnu prozora Spilt Razdvojiti aktivni prozor u delove Close All Zatvori sve aktivne prozore 1 - 9 aktiviraj odabrane prozore Help Menu Toolbar Shortcut Description
Vision Help Otvoriti Vision pomo za pomo datoteci
Open Books Window Otvori radni prostor Simulated Peripherals for '...' Pruite informacije o periferijama
simulirane od odabranih ureaja Internet Support Knowledgebase Open www.keil.com / support koji daje
odgovore na uobiajena pitanja Contact Support otvorite web-based obrazac za zahtjev za
tehniku podrku Check for Update Provjerite www.keil.com dostupne
novosti za program Tip of the Day... Prikai korisne savete i trikove About 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 objanjeno u nastavku:
Debug Channel prikazuje aktivan alat za ispravljanje i prikazuje ime ili simulacije kada je program testiran. Vreme izvrenja 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 zakljuanom stanju. OVR: oznaava pisanje preko editor naina koji zamenjuje znakove kao to ste upisali. R / W itanje / pristup pisanju;R / O read-only pristup-spreava modifikacije iz teksta. -Koristite Simulator i Vision3 program za pronalaenje greaka kao i software-proizvoda koji simulira samo najbolje osobine,bez da zapravo ciljate hardver.
-14-
-
-Logiki analizator - Vision3 Logic Analyzer daje grafiki prikaz promene vrednosti varijable(promenljive) ili VTREGs koje ste naveli.
Logic Analyzer prozor sadri u vrhu granice nekoliko tastera i polja za prikaz. Instalacijski ... dialog definie varijable(promenljive) signala za snimanje i konfigurie 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 poetka signala -Max Time: Vreme zavretka signala -Raspon: Vremensko rastojanje od trenutnog prikaza. -Grid: Vremensko rastojanje od jedne linije. - Zoom pokazuje kompletan sadraj signala.Zoom je promene prikaza na izbor koji ste prethodno oznaili miem povlaenjem dok drite tipku SHIFT. -Kod otvara prozor ili rastavljanje na broj pozicija koje uzrokuje signal u pomeranju. -Postava Min / Max konfigurie se za prikaz raspona signala. Auto konfigurira, max. / Min. vrednosti temelji se na vrednosti iz trenutnog snimanja. Undo vraa prethodne postavke pre Auto. -Logic Analyzer vam omoguava da pregledate ili promeniti podatke koristei sledee naredbe kursor mia i: Postavite kursor u skladu s miem 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 sadraj u raznim podrujima memorije. Do etiri razliita podruja moe se pregledati u razliitim stranicama. U kontekstu meni vam omoguava izbor dozvoljenog izlaznog formata.
U polje Adresa, Memory Window, moete uneti bilo koji izraz koji ocenjuje poetak adresa iz podruja koje elite prikazati. Da biste promenili sadraj memorije, dvaput kliknite na vrednosti. To otvara jedan okvir koji vam omoguuje da unesete nove memorijske vrednosti. -Memorijska karta Omoguava da odredite memorijsko podruje koje va ciljni program koristi za podatke i izvrenje programa. Obino se ne zahtijeva karta dodatnih adresa. Potrebna je samo karta za memorijska podruja u kojima se pristupa bez izriite 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 omoguava simulaciju CPU's UART bez potrebe za spoljnim hardverom. Za serijski izlaz e isto tako biti dodeljen PC COM port koristei 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 padajueg menija
Nakon to ste kliknuli na save(sauvaj),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 proirena povezivanja". Odaberite Philips P89LPC935 mikrokontroler kao cilj
-19-
-
Pojavie 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.
Moete sada izraditi projekt, ali ne postoji izvorni kod. Program bi trebao izgledati ovako:
-20-
-
Sada morate stvoriti datoteku koja sadri C kod nae aplikacije i dodati ga grupi odnosno Group Source. Napravi novu datoteku. Sauvaj datoteku kao lab1.c.
Dodaj u lab1.c datoteku na Source Group 1 folder. Kliknite desnim tasterom mia na Source Group 1 folder i odaberite "Add Files na grupu".
Kliknite na dodaj(add),kako bi dodali fajl u grupu Pisanje C k^da u LED flash-u i izrada projekta.
-21-
-
Koristite 'Obnovi sve ciljne datoteke'-Rebuild all target iz padajueg menija Project. Sada imate izvorni kod koji je dodat grupi.
-22-
-
-Simulacija Pre simulacije kliknite na Target 1 i desnim klikom mia 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 padajueg menija Debug. .
Prozor projekta uVision sada sadri pod-prozore. Radni prozor pokazuje trenutni sadraj najvanijih registara. Takoe se prikazuje vreme izvravanja koda u sekundama. Editor prozor pokazuje C kod,a disassembly prozor pokazuje kodove koji grade ceo projekt. Tokom naih simulacija elimo imati mogunost nadziranja statusa Port 2 pin 0. Zaokruivanje pina znai 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 odgovarajuu 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 prikljuak na PC. Programiranje je proces prenoenja heksadecimalne vrednosti jedne datoteke iz raunara 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 padajuem meniju izaberite "Opcije za Target 'Target 1'. Odaberite zlaz(output) na kartici i zaokruite 'Kreiraj Hex File' okvir. Nakon toga se vri re-izgradnja projekta.
Da bi program prebacili potreban je: Reset jamper Na Pokreni jamper Off Program se prebacuje odabirom Download Flash iz padajueg menija. Kada se programiranje zavri promenite jamper postavke kao to sledi: Reset jamper Off Pokreni jamper Na -Koritenje ISD51 U-System programa za pronalaenje greaka On komunicira (obino preko serijskog porta) s Vision3 programom za pronalaenje greaka i omoguava da preuzmete i ispravljanje vaih programa u realnom vremenu. ISD51 je deo za Vision program za pronalaenje greaka koristei 8051's on-chip UART i omoguava vam da vidite u memoriji,namestite taku prekida,ispravljanje greaka i obavljanje brojnih operacija. -26-
-
A51 izvorni kod mora biti povezan s vaim zahtevanim kodom.Sledite sedee 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 vaeg projekta. 3. Ukljuite sledei komentar na vrhu vae C datoteke: - # include "ISD51.H" 4. Dodajte sledei kod na vrhu svoje glavne () funkcije u C datoteci. Ovaj kod e podesiti serijski port,brzinu prenosa podataka i prekid e postaviti program za pronalaenje
greaka. P1M1 = 0; / / Initialise serijski port BRGR0 = 0xF0; / * 9600 bod, 8 bita, bez pariteta, 1 stop bit * / BRGR1 = 0x02; BRGCON = 0x03; SCON = 0x52; / * omoguiti serijski uart & prijemnik * / EA = 1; / * globalno omogui prekid ogranienja* / / / Initialise ISD51 ISDwait ();
Nakon izgrade vaeg projekta odaberite preuzmi(Download)iz padajueg menija Flash. Da bi preuzeli postavite jamper opcije kao to sledi: Reset jamper Na Pokreni jamper Off -27-
-
Program za pronalaenje greaka koristi Keil ISD51 U-system program za pronalaenje greaka. Da biste to uinili odaberite opciju za Target 'Target 1' desnim klikom na Target1 u project workspace. Odaberite ienje polja(debug) i konfiguriite(podesite) program za pronalaenje greaka 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 upiite C:Na primer,za poetak od 0x40, upiite C: 0X40.(0-40linije koda). Da biste pogledali podatke memorije, idite u okvir za adresu i upiite D: Na primer, za poetak od 0x40, tip D: 0X40. (0-40linije koda). Da biste pogledali spoljne memorije, idite u okvir za adresu i upiite X: Na primer, za poetak od 0x40, tip X: 0X40.(0-40linije koda).
-28-
-
-Za ispravljanje na serijskom portu, idite na Periferije->Serijski( Peripherals->Serial.) Zatim ete videti sledei prozor:
-Za ispravljanje vremena,idite na Periferije->tajmer (Peripherals->Timer) i otvorie se sledei prozor:
-29-
-
-Da bi videli tablicu prekida,idite na Periferije->Prekid(Peripherals->Interrupt) Zatim ete videti sledei prozor:
-Za izlazak iz debug naina 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 padajueg menija
-32-
-
Otvorie vam se sledei prozor koji vas pita da sauvate(save) kod vaeg projekta npr.na desktopu.Napiete ime projekta npr.displej.
-33-
-
Nakon to ste kliknuli na save(sauvaj),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 proirena povezivanja". U ovom sluaju 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, rasporeena u 4 porta sa po osam pinova. Poseduje watchdog tajmer, tri 16-bitna tajmera/brojaa, devet izvora prekida i ugraen oscilator (kvarcni oscilator se vezuje na pinove XTAL1 i XTAL2). Radi smanjenja potronje, pored normalnog moda rada, mikrokontroler moe da radi u Idle modu ili Power-down modu. Pojavie 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-
-
Moete sada izraditi projekt, ali ne postoji izvorni k^d.
-36-
-
Koristite 'Obnovi sve ciljne datoteke'-Rebuild all target iz padajueg menija Project.Sada imate izvorni k^d koji je dodat grupi.
-37-
-
Zatim kliknite na oznaenu ikonicu koja vam slui za kreiranje novog fajla.Otvorie vam se nova radna povrina Text 1.
-38-
-
U radnoj povrini Text 1 napiite k^d vaeg projekta.
-39-
-
Zatim sauvajte k^d opcijom Save iz padajueg menija File.
-40-
-
Naravno sauvajte k^d pod ekstenzijom src. Ekstenzija sauvanog fajla zavisi od toga u kom je programu pisan. Ekstenzija src. pokazuje da je kod pisan u programskom jeziku C.
-41-
-
Sledee 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-
-
Pronaite gde vam je smeten taj fajl i kliknite na Add.
Zatim idite na opciju 'Obnovi sve ciljne datoteke'-Rebuild all target iz padajueg menija Project. -43-
-
Pojavie vam se sledei prozor.Ako postoje greke u programu,kao to je ovde sluaj pisae vam u Output Window(izlazni prozor) kakva je greka i u kom se redu nalazi.
-44-
-
Po ispravljanju greaka ponovo idite na opciju 'Obnovi sve ciljne datoteke'-Rebuild all target iz padajueg menija Project, i dobiete naredni prozor. Potrebno je da pie 0 Errors (s).
-45-
-
Pre simulacije kliknite na Target 1 i desnim klikom mia odaberite opcije za Target 1,da bi se osigurala brzina za ciljni sklop. Brzina zavisi od tipa mikrokontrolera. Za ovaj sluaj 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 padajueg menija Debug.
-47-
-
Prozor projekta uVision sada sadri pod-prozore. Radni prozor pokazuje trenutni sadraj najvanijih registara. Takoe se prikazuje vreme izvravanja koda u sekundama. Editor prozor pokazuje C k^d,a disassembly prozor pokazuje kodove koji grade ceo projekt. Tokom naih simulacija elimo imati mogunost nadziranja statusa Port 2 pin 0. Zaokruivanje pina znai 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 pojavie se mali uti pokaziva koji vam omoguava da prtite korak po korak-svaku liniju programa.
-49-
-
Programiranje je proces prenoenja heksadecimalne vrednosti jedne datoteke iz raunara 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 padajuem 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 padajueg menija Project. -50-
-
Sada idete na opciju Open file iz padajueg menija File da bi ste videli generisani HEX fajl,naravno on je snimljen tamo gde vam je izvorni kod pa se moe pokrenuti i otuda. Za tip fajla(Files of type) izaberite svi fajlovi(All files).
-51-
-
Sledee ta treba uraditi jeste da ekirate odnosno oznaite 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 prenoenja heksadecimalne vrednosti jedne datoteke iz raunara u mikrokontroler putem RS232 konektora. Hex fajl upisujemo u mikrokontroler na nain koji je opisan u slikovito prikazanom postupku koji sledi. Za upis hex fajla koristimo atmelov softver koji se moze download-ovati sa njihovog sajta. Vri se serijsko programiranje prikljuivanjem programatora na pinove 5 i 6 porta P1 mikrokontrolera.
-54-
-
-Sledei korak je izbor ATMEL-ovog mikrokontrolera,a kako smo mi koristili AT89S8253 biramo njega, to je prikazano na sledeoj slici:
Kad se otvori folder AT89 dobija se sledei prozor.
-55-
-
Posle izbora komponente u prozoru softvera se moze videti prazan buffer mikrokontrolera koji je prikazan na sledeoj slici:
-56-
-
Zatim vrimo uitavanje hex fajla na sledei nain:
-57-
-
Upis u mikrokontroler vrimo na sledei nain koji je prikazan na slici:
-58-
-
SADRAJ: -UVOD---------------------------------------------------------------------------- 1 - PROIRENJA ZA STANDARDNI ANSI C JEZIK-------------------1 - STRUKTURA C PROGRAMA ZA MIKROKONTROLERE FAMILIJE 8051------------------------------------------------------------------3 -PREICE KOJE SE KORISTE U KEIL UVISION-u------------------6 -STATUS BAR-------------------------------------------------------------------14 -LOGIKI ANALIZATOR---------------------------------------------------15 -MEMORIJSKI PROZOR----------------------------------------------------16 -SERIJSKI PROZOR----------------------------------------------------------17 -GENERISANJE HEX FAJLA IZ PRIMERA KOJI SE NALAZE U PAKETU PROGRAMA I SIMULACIJA-------------------------------18 -STVARANJE PROJEKTA U KEIL U VISION3------------------------31 KREIRANJE PROJEKTA-------------------------------------------31-45 SIMULACIJA PROJEKTA-----------------------------------------46-48 ISPRAVLJANJE GREAKA U PROGRAMU----------------------49 GENERISANJE HEX FAJLA---------------------------------------50-53 PUNJENJE HEX FAJLA U MIKROKONTROLER-----------54-58
-
Univerzitet u Niu Elektronski Fakultet Katedra za elektroniku
KEIL U VISION 3
Student: Zoran Jovanovi 11178