21
Mikroračunari Mikroračunari Seminarski projekat Seminarski projekat Projekat zadao: Prof.Miklos Pot Vi Vi ša ša Tehnička Škola Tehnička Škola Subotica Subotica 1

Mikroracunari Sem

Embed Size (px)

Citation preview

Page 1: Mikroracunari Sem

MikroračunariMikroračunari

Seminarski projekatSeminarski projekat

Projekat zadao: Prof.Miklos Pot

ViViša Tehnička Školaša Tehnička Škola Subotica Subotica

Student : Student : Kristijan LukačevićKristijan Lukačević

1

Page 2: Mikroracunari Sem

MikroračunariMikroračunari

Sadržaj:Sadržaj:

Naslovna strana ……………………………………………….1Naslovna strana ……………………………………………….1Sadržaj…………………………………………………………2Sadržaj…………………………………………………………2Opis rada……………………………………………………....3 Opis rada……………………………………………………....3 PIC16F84 struktura………………………………………….4PIC16F84 struktura………………………………………….4Opis strukture PIC-a…………………………………………5RISC i CISC…………………………………………………..6Primena PIC-a 16F84………………………………………...7Takt frekvencija i instrukcijski ciklus………………………8Protočna obrada instrukcija…………………………………9Značenje pinova………………………………………………………..10Program………………………………………………………………...11 ………………………………………………………………...12Algoritam programa…………………………………………………...13Slika šeme binarnog sabirača…………………………………………14Komponente I njihove vrednosti……………………………………...15

2

Page 3: Mikroracunari Sem

MikroračunarMikroračunar

Opis rada Opis rada

Cilj , odnosno , svrha ovog rada je sabiranje dva binarna Cilj , odnosno , svrha ovog rada je sabiranje dva binarna broja.Suština je u programu kojim se rukovodi PIC16F84 I broja.Suština je u programu kojim se rukovodi PIC16F84 I koji dva zasebna signala(binarna broja) sabira I daje zbir na koji dva zasebna signala(binarna broja) sabira I daje zbir na izlazu.Binarne brojeve na ulazu unosimo puštanjem signala izlazu.Binarne brojeve na ulazu unosimo puštanjem signala kroz prekidače na pinove ulaznog porta,a očitavamo ih I na kroz prekidače na pinove ulaznog porta,a očitavamo ih I na LED diodama.Tako da imamo vizualni prikaz cele operacije LED diodama.Tako da imamo vizualni prikaz cele operacije sabiranja.Dakle,sa prva tri prekidača na DIP-u definišemo sabiranja.Dakle,sa prva tri prekidača na DIP-u definišemo prvi binarni broj.Sa preostala tri definišemo drugi broj.A prvi binarni broj.Sa preostala tri definišemo drugi broj.A posredstvom programa , na preostale četiri diode dobijamo posredstvom programa , na preostale četiri diode dobijamo zbir.Inače,kako se I očekuje, propuštanje signala inicira 1 (imazbir.Inače,kako se I očekuje, propuštanje signala inicira 1 (ima signal) ,a u suprotnom 0 (nema signal).signal) ,a u suprotnom 0 (nema signal).

3

Page 4: Mikroracunari Sem

MikroračunariMikroračunari

PIC16F84

PIC16F84 pripada 8-bitnim mikrokontrolerima RISC arhitekture. Uopštena struktura PIC-a 16F84:

Memorija za Slobodni podatke RAM brojač

Centralna Memorija za procesorska Programska memorija podatke EEPROM jedinica FLASH

PORTA PORTB

Blok šema mikrokontrolera PIC16F84

4

Page 5: Mikroracunari Sem

Mikroračunari MikroračunariCENTRALNA PROCESORSKA JEDINICA

vrši ulogu veznog elementa između ostalih blokova mikrokontrolera.Ona koordinira rad ostalih blokova I izvršava korisnički program.

RAMmemorija za podatke koje koristi program u svom izvršavanju.U nju se smeštaju svi međurezultati ili privremeni podaci koji nisu od važnosti za rad uređaja u slučaju nestanka napajanja.

PROGRAMSKA MEMORIJA (FLASH)za smeštanje napisanog programa.Pošto se memorija izrađena u FLASH tehnologiji može više puta brisati i programirati,ovaj mikrokontroler je pogodan za razvoj uređaja.

PORTA i PORTBSu fizičke veze mikrokontrolera sa spoljnim svetom.Port A ima pet nožica a port B osam.

EEPROMMemorija za podatke koje treba sačuvati I kada napajanja nema.Obično se koristi za smeštanje važnih podataka koji ne smeju biti izgubljeni ako napajanje iznenada nestane.Jedan od takvih podataka je npr. Zadata temperatura kod temperaturnih regulatora.Ako bi nestankom napajanja ova informacija bila izgubljena onda bi po ponovnom dovodjenju napajanja bilo potrebno još jednom izvršiti podešavanje,čime uređaj gubi na svojoj samostalnosti u radu.

SLOBODNI BROJAČJe 8-bitni registar unutar mikrokontrolera koji radi nezavisno od programa.Na svaki četvrti takt iz oscilatora on uveća svoju vrednost dok ne dostigne maksimum (255),a onda brojanje kreće ponovo od nule.Kako se tačno zna vreme između svaka dva uvećanja sadržaja brojača,pa se on može iskoristiti za merenje vremena što je veoma korisno kod nekih uređaja.

5

Page 6: Mikroracunari Sem

Mikroračunari MikroračunariRISC i CISC

Harvard-ska arhitektura ili RISC (Reduced Instruction Set Computer) arhitektura je noviji koncept od von-Neumann-ove ili CISC (Complex Instuction Set Computer) arhitekture.RISC arhitektura je nastala iz potrebe za bržim radom mikroprocesora.Kod nje su magistrala podataka I magistrala adresa odvojene.Time se postiže veći protok informacija kroz centralnu procesorsku jedinicu,a samim tim I brzina rada.Odvajanje programske memorije I memorije za podatke omogućava da instukcije ne moraju biti 8-bitne reči.PIC16F84 koristi 14 bita za instrukcije što dozvoljava da sve instrukcije budu od jedne reči.

Memorija Centralna Programska Centralna Programska za podatke procesorska memorija procesorska I memorija 8 jedinica 14 jedinica 8 za podatke

Harvard von-Neumann

Razlika između arhitektura CISC i RISC

6

Page 7: Mikroracunari Sem

Mikroračunari MikroračunariPRIMENE

PIC16F84 savršeno odgovara za razne primene , od automobilske industrije I kontrole kučnih aparata do industrijskih uređaja , daljinskih senzora I elektronskih brava I sigurnosnog uređaja.Takođe je idealan za “smart” kartice kao I za baterijski napajane uređaje zbog svoje male potrošnje.

EEPROM memorija olakšava primenu mikrokontrolera u uređajima gde je potrebno trajno čuvanje raznih parametara (kodovi za predajnike,brzine motora,frekvencije prijemnika , itd.).Niska cena , mala potrošnja , lakoća upotrebe I fleksibilnost čine PIC16F84 upotrebljivim čak I u oblastima u kojima se ranije nije ni razmatrala mogućnost upotreba mikrokontrolera (npr. Tajmerske funkcije , zamena za veznu logiku u većim sistemima , koprocesorske aplikacije itd.).

Programabilnost unutar sistema ovog čipa (uz korišćenje samo dve nožice za prenos podataka) omogućava fleksibilnost proizvoda posle potpunog sastavljanja I testiranja.Ova mogućnost može biti iskorišćena za serijalizovanje proizvodnje , čuvanje kalibracionih podataka dostupnih samo po finalnom testiranju ili poboljšanje programa na završenim proizvodima.

7

Page 8: Mikroracunari Sem

MikroračunariMikroračunariTAKT FREKVENCIJA I INSTRUKCIJSKI CIKLUS

Takt je osnovni pokretač mikrokontrolera i dobija se iz spoljne komponente zvane "oscilator". Takt se još u žargonu zove i "klok" po engleskoj reči Clock. Zadatak oscilatora je sinhronizacija rada mikrokontrolera.Takt iz oscilatora u mikrokontroler ulazi preko nožice OSCI gde ga interno kolo u mikrokontroleru deli na četri podjednaka takta Q1, Q2, Q3 i Q4 koji se ne preklapaju.Ova četri takta čine jedan instrukcijski ciklus (u žargonu se još naziva i mašinski ciklus) u kome se izvršava jedna instrukcija.Izvršenje instrukcije kreće pozivanjem instrukcije koja je na redu iz programske memorije na svaki Ql, i njenim upisom u instrukcijski registar na Q4. Dešifrovanje i izvršavanje instrukcije se obavlja između narednih Q1 i Q4 ciklusa. Na slici se vidi odnos instrukcijskog ciklusa i takta oscilatora (OSCI) kao i internih taktova Q1- Q4. Sa PC je označen programski brojač (Program Counter) koji sadrži informaciju o adresi naredne instrukcije.

Slika vremenskog dijagrama izvršenja instrukcije

8

Page 9: Mikroracunari Sem

MikroračunariMikroračunari PROTOČNA OBRADA INSTRUKCIJA (PIPELINING)

"Instrukcijski ciklus" se sastoji iz ciklusa Ql, Q2, Q3 i Q4. Ciklusi pozivanja i izvršavanja instrukcija su tako povezani da je za pozivanje potreban jedaninstrukcijski ciklus, a za dešifrovanje i izvršavanje još jedan. Međutim, zbog protočne obrade, svaka instrukcija se efektivno izvršava u jednom ciklusu. Ako instrukcija prouzrokuje promenu na programskom brojaču tj. on ne ukazuje na narednu adresu već na neku drugu (što je slučaj sa skokovima ili pozivanjem podprograma), onda su potrebna dva ciklusa za izvršavanje instrukcije jer se mora ponovo uzeti u obradu instrukcija, ali ovaj put sa prave adrese.Ciklus pozivanja počinje na Ql taktu, upisivanjem u "instrukcijski registar (IR)" a dešifrovanje i izvršavanje tokom Q2, Q3 i Q4 takta

Protočna obrada instrukcija

TCY0 učitava se instrukcija MOVLW 55h (nije nam bitno koja se instrukcija tada izvršila zbog čega i nema donjeg pravougaonika)TCY1 izvršava se instrukcija MOVLW 55h i učitava MOVWF PORTBTCY2 izvršava se MOVWF PORTB a učitava CALL SUB_1TCY3 izvršava se poziv podprograma CALL SUB_1 i učitava instrukcija BSF PORTA, BIT3. Kako ova instrukcija nije ona koja nam treba, tj. nije prva instrukcija podprograma SUB_1 čije je izvršenje na redu mora se učitati ponovo instrukcija. Ovo je dobar primer kada za izvršenje instrukcije treba više od jednog ciklusa

9

Page 10: Mikroracunari Sem

TCY4 instrukcijski ciklus je ceo iskorišćen za učitavanje prve instrukcije iz podprograma na adresi SUB_1TCY5 izvršava se prva instrukcija iz pod programa SUB_1 i učitava naredna.

MikroračunariMikroračunari

Značenje pinova

PIC16F84 ima ukupno 18 nožica . Najčešće je u varijanti DIP 18 kućišta ali se može sresti i u SMD kućištu koje je manje od DIP-a. Skraćenica DIP je nastala od početnih slova engleskih reči "Dual In Package" što bi u prevodu značilo "pakovanje sa nožicama sa obe strane". SMD je takode skraćenica od početnih slova engleskih reči "Surface Mount Devices" ili u prevodu "komponente za površinskumontažu" asocirajući da za lemljenje ove vrste komponenti nije potrebno imati rupe kroz koje bi nožice prošle i bile zalemljene. Pin je žargonski izraz za nožicu elektronskog kola ili jasnije rečeno spoljni izvod.

RA2 RA1 RA3 RA0 RA4/TOCKI OSC1 ______ MCLR OSC2 Vss PIC Vdd RB0/INT RB7

RB1 16F84 RB6 RB2 RB5 RB3 RB4

Pinovi mikrokontrolera PIC16F84 imaju sledeće značenje:Pin br.1 RA2 Drugi pin porta A.Nema nikakvu dodatnu uloguPin br.2 RA3 Treći pin porta A. Nema nikakvu dodatnu ulogu

10

Page 11: Mikroracunari Sem

Pin br.3 RA4 Četvrti pin porta A.Na njemu se takođe nalazi I TOCK1 Koji ima tajmersku funkciju.Pin br.4 MCLR Reset ulaz I Vpp napon programiranja mikrokontrolera Pin br.5 Vss Napajanje,masa.Pin br.6 RB0 Nulti pin porta B.Dodatna funkcija je interaptni ulazPin br.7 RB1 Prvi pin porta B . Nema nikakvu dodatnu uloguPin br.8 RB2 Drugi pin porta B. Nema nikakvu dodatnu ulogu

MikroračunariMikroračunari

Program Program

TITLE "SABIRAC"LIST P=16F84

#include "P16F84.inc"ERRORLEVEL -224

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

PORTB EQU 0x06PORTA EQU 0x05status EQU 0x03rp0 EQU 0x05trisa EQU 0x85trisb EQU 0x86

Cblock H'C'PrviDrugiZbirTEMPendc

ORG 0x00 ;Reset vektor

11

Page 12: Mikroracunari Sem

goto Main

ORG 0x04 ;Interapt vectorgoto ISR

Main

bsf status,rp0 ;Setovanje pinova porta b na ulazne movlw 0xffmovwf trisb

bsf status,rp0 ;Setovanje pinova porta a na izlaznemovlw 0x00 movwf trisa bcf status,rp0 ;Setovanje pinova porta b na ulazneclrf PORTB

MikroračunariMikroračunaribsf INTCON,RBIE ;Dozvoljen je prekid promene stanja prekidaca

bsf INTCON,GIE ;Dozvoljeni su svi prekidi

ISR ;Interrupt Service Routine

bcf INTCON,RBIF ;Brise se fleg koji ukazuje da se desio interapt

Start

movf PORTB,0movwf TEMPandlw 0x07movwf Prvimovf TEMPandlw 0xE0swapf Drugi,frrf Drugi,fmovf Prviaddwf Drugi,wmovwf Zbirmovwf PORTA

goto Start

12

Page 13: Mikroracunari Sem

End

Algoritam programa

START

Prvi,Drugi,Zbir

Read PORTB

Move RB0,RB1,RB2PRVI

13

Page 14: Mikroracunari Sem

Move RB5,RB6,RB7DRUGI

ZBIR=PRVI+DRUGI

PORTA=ZBIR

END

Mikroračunari Mikroračunari

14

Page 15: Mikroracunari Sem

Šema binarnog sabirača

MikroračunariMikroračunariKomponente i njihove vrednosti

R1 =10KΩ

15

Page 16: Mikroracunari Sem

R2 = 10KΩR3 = 10KΩR4 = 10KΩR5 = 10KΩR6 = 10KΩR7 = 10KΩ

R8=320ΩR9=320ΩR10=320ΩR11=320ΩR12=320ΩR13=320ΩR14=320ΩR15=320ΩR16=320ΩR17=320Ω

C1= 33pF C2 = 33pFC3=470 μF

Crystal = 4MHz

Dip prekidač sa 6 preklopnika

Taster

10 Led dioda

16