260 likes | 580 Views
Elektronski fakultet u Nišu Katedra za elektroniku Predmet: Mikroprocesorski sistemi prof. dr Mile Stojčev. SIMULACIJA PIC MIKROKONTROLER A PREKO SOFTVERA PIC SIMULATOR IDE. S tudent: Ranko Prokopović 10609. UVOD.
E N D
Elektronski fakultet u Nišu Katedra za elektroniku Predmet: Mikroprocesorski sistemi prof. dr Mile Stojčev SIMULACIJA PIC MIKROKONTROLERAPREKO SOFTVERAPIC SIMULATOR IDE Student: Ranko Prokopović 10609
UVOD • Misao vodilja autora ovog seminarskog rada bila je da studentima približi program PIC Simulator IDE, koji je razvio Vladimir Šošo iz Zemuna. U pitanju je simulator velikog broja mikrokontrolera 12F i 16F serija. Detaljnije informacije o pomenutom programu su dostupne na sajtu http://www.oshonsoft.com/pic.html, a koriste ga brojni renomirani koledži i fakulteti. • U radu je dat kratak opis mikrokontrolera PIC16F877, pregled menija PIC Simulator IDE, kao i nekoliko primera koji pokazuju mogućnosti ovog softvera • Na kraju je dato nekoliko zadataka za studente, koje treba rešavati na laboratorijskim vežbama
Mikrokontroler PIC16F877 • PIC16F877 je Microchip-ov 8-bitni CMOS mikrokontroler baziran na flash tehnologiji • RISC arhitektura omogućuje odvojene magistrale 8-bitnih podataka i 14-bitne programske memorije • Jezgro mikrokontrolera PIC16F877 proizvodi se u 40-pinskom (DIP) ili u 44-pinskim kućištima (QFP i PLCC)
Mikrokontroler PIC16F877 • Na narednom slajdu je data šema arhitekture mikrokontrolera PIC16F877 • Mogu se uočiti standardne komponente: • Flash programska memorija – 8 kiloreči • RAM (File Registers) – 368 bajtova • Aritmetičko-logička jedinica (ALU) • Akumulator (Working Register) • Hardverski magacin (Stack) sa 8 nivoa • EEPROM memorija podataka – 256 bajtova • Razne periferne jedinice (portovi, tajmeri, A/D konvertor, USART,...)
Mikrokontroler PIC16F877 • PIC16F877 podržava tehniku prekida (eng. interrupts). Postoji ukupno 14 izvora prekida, što spoljašnjih, što unutrašnjih • Ono što mikrokontrolere izdvaja od ostalih procesora jeste prisustvo raznih specijalnih kola koja se trebaju izboriti sa potrebama real-time aplikacija • Među ponuđenim karakteristikama postoji mogućnost izbora četiri tipa oscilatora, mogućnost upotrebe Power-up (PWRT) i Oscilator Start-up (OST) tajmera, te eventualno korišćenje Power-on (POR) i/ili Brown-out (BOR) reseta • Sprečavanje zalaska programa u mrtve petlje pomaže upotreba Watchdog tajmera (WDT)
Mikrokontroler PIC16F877 • Zaštitu kôda od neželjenog čitanja pruža opcija code protection • Za uređaje sa baterijskim napajanjem interesantna mogućnost je Sleep Mode • Napajanje se dovodi na pinove VDD, a masa na pinove VSS. Nožice OSC1 i OSC2 služe za priključenje oscilatorskih komponenti. Osim za reset-kolo pin 1 (MCLR/VPP) ima ulogu u toku procesa programiranja mikrokontrolera. Ostalih 33 pina predstavljaju I/O linije. Oni su grupisani u pet portova (PORT A, B, C, D i E) • Na kraju ovog uvoda treba napomenuti da su Microchip PIC mikrokontroleri dominantni u odnosu na konkurentne relativno visokom strujom koju može propustiti I/O pin (25 mA)
Mikrokontroler PIC16F877 • Strukturu memorije kod PICmicro™ mikrokontrolera čine tri odvojena bloka: • Programska memorija • Memorija podataka • EEPROM memorija podataka • Odvojeno od navedenih memorijskih blokova egzistira zasebna struktura magacin (stack), koja se sastoji od osam 13-bitnih registara Mapa pogramske memorije
Mikrokontroler PIC16F877 • PIC16F877 mikrokontroleri imaju 13-bitni programski brojač (PC) koji može da adresira memorijski prostor od 8k programskih reči od 14 bita • Memorija za podatke je izdeljena u više celina banki (eng. banks), a sastoji se od registara opšte namene (General Purpose Registers) i registara specijalne funkcije (Special Function Registers)
Mikrokontroler PIC16F877 • Programski brojač (PC) određuje adresu instrukcije u programskom flešu koja će sledeća biti pribavljena • STATUS registar je veoma bitan i zato je predviđeno da se može adresirati iz bilo koje banke. On pokazuje status aritmetičko-logičke jedinice, reset status mikrokontrolera i sadrži bite za selekciju banki internog RAM-a • Registar OPTION_REG se koristi za konfiguraciju preskalera za tajmer 0 ili Watchdog, za upravljanje tajmerom 0, selekciju ivice okidanja eksternog interapta, te za omogućenje Pull-up otpornika na portu B. • INTCON je registar za manipulisanje sistemom prekida mikrokontrolera
Mikrokontroler PIC16F877 • Za vezu mikrokontrolera sa svetom oko sebe zaduženi su ulazno/izlazni portovi • Ima ukupno pet I/O portova i oni su označeni sa A, B, C, D i E • Portovi su nejednakih širina, tako port E čine 3 pina, port A čine 6 pinova, a portove B, C i D čine 8 pinova • Svaki port poseduje odgovarajući registar (PORTX) preko kojeg se programski pristupa I/O pinovima • Tajmeri se koriste za merenje vremena i brojanje eksternih događaja. Ugrađena su tri tajmerska modula (TMR 0,1,2) od kojih svaki ima svoje specifičnosti.
Mikrokontroler PIC16F877 • CCP moduli - CCP je skraćenica za Compare/Capture/PWM. PIC16F877 poseduje dva ovakva modula koji mu “pomažu” da se lakše nosi sa raznim zahtevima real-time aplikacija. • Ostale periferije: • SSP modul (Synchronous Serial Port) - služi za komunikaciju sa serijskim EEPROM-ima, pomeračkim registrima, displej-drajverima, A/D konvertorima, itd. Ovaj modul može raditi u jednom od dva moda: Serial Peripheral Interface (SPI) ili Inter-Integrated Circuit (I2C) • USART (Universal Synchronous Asynchronous Receiver Transmiter) služi za povezivanje sa personalnim računarom, ali to nije njegova jedina mogućnost primene. • PSP (Parallel Slave Port). On služi da se PIC16F877 direktno poveže na 8-bitnu magistralu podataka drugog mikroprocesora
Asembler za PIC mikrokontrolere • Asemblerske instrukcije se izvršavaju tokom četiri taktna intervala, izuzev instrukcija grananja čije izvršavanje traje duže. Primera radi, ako interni oscilator mikrokontrolera radi na frekvenciji 4 MHz, izvršenje standardne instrukcije traje 1µs. • S obzirom da mikrokontroleri serije PIC16Fxxx imaju RISC arhitekturu, operišu sa svega 35 asemblerskih instrukcija koje možemo podeliti u pet grupa: • instrukcije koje operišu sa podacima • aritmetičko-logičke instrukcije • instrukcije koje operišu sa bitovima • instrukcije koje upravljaju tokom programa • ostale instrukcije.
PIC Simulator IDE • PIC Simulator IDE je aplikacija koju koriste projektanti u razvoju sistema sa PIC mikrokontrolerima, a karakteriše je njena laka upotreba u WINDOWS okruženju. Pomenuta aplikacija ima integrisan simulator (emulator), BASIC kompajler, asembler, disasembler i debager. • Glavni aplikacioni prozor prikazuje statuse svih internih registara datog mikrokontrolera, instrukciju koja je poslednja izvršena i instrukciju koja će se sledeća izvršiti, taktni ciklus i brojač instrukcija kao i realno vreme trajanja simulacije.
PIC Simulator IDE Izgled glavnog aplikacionog prozora
PIC Simulator IDE FILE MENI • Komande ovog menija su: • Clear memory – resetovanje simulatora i postavljanje u početno stanje • Load program – učitavanje programskog fajla (HEX) • Save memory – čuvanje podataka iz memorija (FLASH i EEPROM)
PIC Simulator IDE SIMULATION MENI • Komande ovog menija su: • Start – otpočinje simulaciju • Step – izvršavanje simulacije korak po korak • Stop – zaustavlja simulaciju
PIC Simulator IDE RATE MENI • Komande ovog menija predstavljaju brzine izvršavanja simulacije • -Step by step – korak po korak (instrukcija po instrukcija) • -Slow – vreme između dve instrukcije je 1500 ms • -Normal – vreme između dve instrukcije je 250 ms • -Fast – vreme između dve instrukcije je 50 ms • -Extremely fast – vreme između dve instrukcije je suviše malo tako da brzina simulacije zavisi od brzine rada računara • -Utimate (No refresh) – glavni prozor simulatora se ne osvežava • pa se tako značajno uvećava brzina simulacije
PIC Simulator IDE • TOOLS MENI • Ovaj meni sadrži puno pomoćnih alatki koje su značajne za simulaciju rada jednog mikrokontrolera • Neke od njih su: Program Memory Editor, EEPROM Memory Editor, Microcontroller View, Disassembler, Breakpoints Manager, Assembler, BASIC Compiler, 8 x LED Board, Oscilloscope, 7-Segment LED Displays Panel, LCD Module
PIC Simulator IDE OPTIONS MENI • Ovaj meni nudi dodatne opcije koje vam omogućuju da simulaciju podesite po potrebi • Tu je naravno i HELP menikoji služi za pomoć u nekimtrenucima kada vam je to potrebno
Primeri • U ovom seminarskom radu je obrađeno nekoliko primera. Podeljeni su u grupe: • Elementarni primeri (ukupno 8) – sabiranje i oduzimanje dva broja, upis broja na određenu lokaciju, zamena vrednosti dva broja i slično • Jednostavni primeri (ukupno 3) – brojač, upis podataka u EEPROM memoriju, A/D konverzija napona • Napredniji primeri (ukupno 3) – izračunavanje izraza, upis i čitanje podataka iz EEPROM-a, prikazivanje A/D konverzije na LCD displeju • Dopunski primeri (ukupno 4) – IF i FOR petlje, primena kašnjenja
Laboratorijske vežbe • Takođe su dati zadaci za studente koje oni treba da rešavaju na časovima laboratorijskih vežbi • Ovi zadaci su predviđeni za lako i brzo rešavanje, i veoma su slični kao primeri obrađeni u tekstu
Zaključak • U prethodnom tekstu ovog seminarskog rada je opisan softver PIC Simulator IDE, koji služi za simulaciju većeg broja PIC mikrokontrolera 12F i 16F serija. • Najpre je detaljno opisano 8 primera u asembleru, da bi kasnije bilo detaljno opisano i ilustrovano 6 primera sa mikrokontrolerom PIC16F877 • Primeri su savim dovoljni da se savlada suština programiranja i simulacije mikrokontrolera korišćenjem softvera PIC Simulator IDE
Literatura • PIC16F877, Microchip, sajt http://www.microchip.com • PIC Simulator IDE, sajt http://www.oshonsoft.com/pic.html • Instrukcije u PIC BASIC-u, sajt http://milan.milanovic.org/skola • Instrukcije u asembleru za PIC, sajt http://mikroe.com