You are on page 1of 12

15.9.2021.

MIKROUPRAVLJAČI

ULAZNO – IZLAZNI PORTOVI

Zoran Dumančić, mag.ing.el.

ULAZNO IZLAZNI PORTOVI
1. Da bi mikroupravljač (koji je računalo na čipu), mogao 
komunicirati s fizičkim svijetom, mora imati izvode 
(nožice ili pinove) koji će primati ulazne signale ili na koje 
će mikroupravljač slati izlazne signale.
2. Ulazno/izlazni pinovi obično su grupirani po 8 nožica, a 
takvu grupu pinova zovemo „port” ili „pristup„ (L. Budin).
3. Mikroupravljač ATmega 328p ima 3 porta
a) Port B (8 pinova – PB0, PB1,… PB7)
b) Port C (7 pinova – PC0, PC1,…PC6)
c) Port D (8 pinova – PD0, PD1,… PD7)
4. Tvrtka ATMEL označava portove slovima: Port B, Port C,… 
a pojedinačne pinove označava u skladu s oznakom porta 
i rednim brojem pina: PB0, PB1,… PB7, PC0, PC1, …
Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐2

1
15.9.2021.

MIKROUPRAVLJAČ vs RAČUNALO OPĆE NAMJENE

Izvor: What is a microcontroller and how microcontroller works
(https://www.youtube.com/watch?v=JwCTkm43CxQ) 
Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐3

U/I PORTOVI u ATmega 328p

1. Port B [0 – 7]
2. Port C [0 – 6]
3. Port D [0 – 7]
Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐4

2
15.9.2021.

ULAZNO IZLAZNI PORTOVI
1. Radi smanjenja broja nožica i fizičkih dimenzija 
mikroupravljača (čipa), pojedini pinovi mogu imati više 
funkcija (tzv. alternativne ili multipleksirane funkcije).

2. Ako se pin koristi kao digitalni ulazno – izlazni pin, koristi 
se naziv: GPIO – General purpose Input Output pin.
PRIMJER: nožica 2 mikroupravljača može se koristiti kao GPIO pin PD0 
(Arduino pin 0) ili kao pin za RX signal kod serijske komunikacije.
Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐5

VRSTE SENZORA I AKTUATORA
Senzori i aktuatori (izvršni elementi) mogu biti:
1. Digitalni – spajaju se na digitalne ulaze i izlaze (tipkalo, relej)
2. Analogni
a) senzori se spajaju na analogne ulaze (A0‐A5, npr. analogna vrijednost s 
potenciometra, naponskog djelila s NTC otpornikom ili izlaza pojačala,…)
b) aktuatori se spajaju na analogne izlaze (ukoliko ih mikroupravljač ima) ili 
na pinove koji imaju mogućnost PWM modulacije kao zamjena za D/A 
pretvarač (oznaka PWM ili ~ na Arudino UNO)
3. Pametni – obično uz senzor imaju integriran vlastiti 
mikroupravljač koji komunicira preko postojećih protokola 
(UART, I2C, SPI,…)

Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐6

3
15.9.2021.

OZNAKE PINOVA ATmega328p i Arduino UNO i 
alternativne (multipleksirane) funkcije
ATmega 328p
(koristi se u Arduino Uno)

U današnjem predavanju fokus je na GPIO pinovima i zanemarujemo 
alternativne funkcije.
Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐7

OZNAKE PINOVA ATmega328p i Arduino UNO i 
alternativne (multipleksirane) funkcije
ATmega 328p
(koristi se u Arduino Uno)

Arduino (UNO) platforma je promijenila nazive pinova ATmega328p!!!
Pinovi 0 – 7  PD0 – PD7; pinovi 8 – 13  PB0 – PB5; A0 – A5  PC0 – PC5
Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐8

4
15.9.2021.

Pojednostavljena shema jednog GPIO pina

Prerađeno prema: ATMEL, Atmega328P


datasheet PB0 odgovara pinu 8 Arduino UNO
Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐9

Pojednostavljena shema jednog GPIO pina

pinMode(8, INPUT/OUTPUT)

pinMode(8, INPUT_PULLUP)

digitalWrite(8, LOW/HIGH )

digitalRead(8)

Prerađeno prema: ATMEL, Atmega328P


datasheet PB0 odgovara pinu 8 Arduino UNO
Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐10

10

5
15.9.2021.

Registri vezani uz port B

DDRB (0x24)

DATA BUS
PORTB (0x25)

PORTB
DDRB
PINB
PINB (0x23)

Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐11

11

PODEŠAVANJE PINA 11 ZA IZLAZ I STANJE „HIGH”
Arduino pinovi
DDRB (0x24)
PORTB (0x25)
PINB (0x23)
Binarna vrijednost

pinMode(11, OUTPUT);
DDRB = b 0000 1000; 
ili DDRB = 8;
digitalWrite(11, HIGH);
PORTB = b 0000 1000;
Ili PORTB = 8;
Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐12

12

6
15.9.2021.

PODEŠAVANJE PINA 10 ZA TIPKALO I OČITANJE
Arduino pinovi
DDRB (0x24)
PORTB (0x25)
PINB (0x23)
Binarna vrijednost

pinMode(10, INPUT_PULLUP);
DDRB = b 0000 0000; PORTB = b 0000 0100;
PinB2_value = digitalRead(10); 
stanje pina 2 nalazi se u PINB registru u bitu B2;
int PinB2_value = PINB & b 0000 0100; [0, 4]
ili bool PinB2_value = (PINB & b 0000 0100)>>2;
Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐13

13

Za rad s 3 ulazno/izlazna porta koristi se 9 registara
Arduino pinovi
DDRB (0x24)
PORTB (0x25)
PINB (0x23)
Arduino pinovi
DDRC (0x27)
PORTC (0x28)
PINC (0x26)
Arduino pinovi
DDRD (0x2A)
PORTD (0x2B)
PIND (0x29)
Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐14

14

7
15.9.2021.

PODEŠAVANJE MIKROUPRAVLJAČA
Za rad s 3 ulazno/izlazna porta koristi se 9 registra
1. Port B
• PINB (0x23)
• DDRB (0x24)
• PORTB (0x25)
Kad govorimo općenito o
2. Port C registrima za podešavanje
• PINC (0x26) izlaznih portova, govorimo o:
• DDRC (0x27)
• PORTC (0x28)
1. DDRx registru
2. PORTx registru
3. Port D 3. PINx registru
• PIND (0x29)
• DDRD (0x2A)
• PORTD (0x2B)

Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐15

15

PODEŠAVANJE MIKROUPRAVLJAČA
1. U praksi, različita postrojenja i uređaje podešavamo 
pomoću prekidača, preklopki ili potenciometara.
2. U mikroupravljaču različite funkcije, svojstva 
mikroupravljača i način rada također podešavamo 
pomoću „prekidača” i „preklopki”. 
3. „Prekidač” u slučaju mikroupravljača predstavlja pojedini 
bit nekog registra koji je zadužen za neku funkciju, a 
„preklopka” je niz bitova koji predstavljaju neku od 
mogućih kombinacija. 
4. Za tu svrhu, potrebno je u odgovarajuće registre, tzv. 
Registre posebne namjene (SFR – special function
registers) upisati određene binarne vrijednosti.
Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐16

16

8
15.9.2021.

PODEŠAVANJE MIKROUPRAVLJAČA
Za podešavanje mikroupravljača koristi se 64 registra (SFR). Svaki
registar ima svoju adresu u U/I prostoru (I/O space). Za rad s 3 U/I
porta ukupno postoji 9 registara.

Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐17

17

Microchip (Atmel) tehnički list ATmega328p (Datasheet)
http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A‐PA‐
88A‐PA‐168A‐PA‐328‐P‐DS‐DS40002061A.pdf , (662 stranice)

Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐18

18

9
15.9.2021.

Npr: Registar za podešavanje radnog takta ATmega328p

Adresa 
registra

Bit 7  – CLKPCE: Clock Prescaler Change Enable


The CLKPCE bit must be written to logic one to enable change of the CLKPS bits. 
Bits 3:0 – CLKPS[3:0]: Clock Prescaler Select Bits 3 ‐ 0

Preuzeto iz: ATMEL,


Atmega328P datasheet
Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐19

19

PODEŠAVANJE MIKROUPRAVLJAČA
Svih 9 registara koji su vezani uz rad s 3 ulazno izlazna porta nalaze se u U/I
prostoru (I/O space). Tu se nalaze ostali registri (ukupno 64) za podešavanje
mikroupravljača. To je dio Podatkovnog adresnog prostora (Data memory)

Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐20

20

10
15.9.2021.

PONOVIMO: pojednostavljena shema jednog GPIO pina

Prerađeno prema: ATMEL, Atmega328P


datasheet
Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐21

21

Originalna shema jednog GPIO pina

Preuzeto iz: ATMEL,


Atmega328P datasheet

Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐22

22

11
15.9.2021.

Shema pina s alternativnim funkcijama

Preuzeto iz: ATMEL,


Atmega328P datasheet

Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐23

23

LITERATURA:
1. Microchip (Atmel) ATmega328p tehnički list, 
http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A‐PA‐88A‐PA‐
168A‐PA‐328‐P‐DS‐DS40002061A.pdf , (pregledano 20. siječnja 2020.)
2. SparkFun Electronics, Level Up Your Arduino Code: Registers, Youtube: 
https://www.youtube.com/watch?v=6q1yEb_ukw8 (pregledano 15. prosinca 
2020.)

Level Up Your Arduino Code: Registers


SparkFun Electronics

Tehnička škola Ruđera Boškovića – Mikroupravljači – Z. Dumančić MU‐110‐24

24

12

You might also like