Você está na página 1de 25

Telecomunicaes e Redes

Microcontroladores

Microprocessadores e Microcontroladores

O que um Microcontrolador?

Circuito integrado em alta


escala (VLSI) que incorpora a
maior parte dos elementos que
constituem um controlador e se
destina a uma determinada
tarefa.
Costuma estar incorporado no
dispositivo que controla
(controlador embebido embedded controller).
Microprocessadores e Microcontroladores

Aplicaes

indstria informtica (perifricos: rato, teclado,...)


electrodomsticos (fornos, mq. lavar, vdeos, etc)
sistemas AVACs
telecomunicaes
indstria automvel
Microprocessadores e Microcontroladores

Constituio

Um microcontrolador dispe normalmente dos seguintes


elementos:
processador ou CPU
memria de dados (RAM)
memria de programa (ROM/PROM/EPROM/EEPROM)
linhas de entrada/sada (E/S) programveis

Microprocessadores e Microcontroladores

Constituio

mdulos de controlo de perifricos (portos srie,


paralelo,USB,I2C,etc.)
gerador de impulsos de relgio
temporizadores
co-de-guarda (watchdog)
conversores A/D e D/A
comparadores analgicos
Microprocessadores e Microcontroladores

Diferena entre microprocessador e


microcontrolador

o microprocessador um sistema aberto


constri-se um computador com as caractersticas
desejadas juntando os mdulos necessrios

o microcontrolador um sistema fechado


contem um computador completo e as suas
prestaes limitadas no se podem modificar

Microprocessadores e Microcontroladores

Estrutura de um microprocessador

bus de
endereos
bus de dados

bus de controle

Memria

controlador 1
perifricos

controlador 2
perifrico
s

Microprocessadores e Microcontroladores

Estrutura de um microcontrolador

perifricos

perifrico
s

Microprocessadores e Microcontroladores

Arquitectura interna
de um microprocessador

UCP

bus comum de
endereos

Memria
Instrues

8
bus de dados e

+
dados

instrues
Arquitectura von Neumann
ou Princeton

Microprocessadores e Microcontroladores

Arquitectura interna
de um microcontrolador

bus de endereos
de instrues
10
Memria de
Instrues
1 K x 14

UCP

14
bus de instrues

bus de endereos
de dados
9
Memria de
8
bus de dados

arquitectura Harvard

Microprocessadores e Microcontroladores

dados
512 x 8

Arquitectura interna
de um microcontrolador
RISC - Reduced Instruction Set Computer
(35 no 16F84)
versus
CISC - Complex Instruction Set Computer
(+150 no 8086)

Microprocessadores e Microcontroladores

Pipelining (Segmentao)

1 ciclo 1 ciclo

1 ciclo

1 ciclo

2
ciclos

Busca 1 Exec. 1
Busca 2 Exec. 2
Busca 3 Exec 3

1 instruo MOVLW F5h


2 instruo MOVWF PA

Busca 4
Bus 1Sa Exec 1Sa

3 instruo CALL SAL


4 instruo MOVLW F6h

Microprocessadores e Microcontroladores

Arquitectura interna
de um microcontrolador
Memria de Programa
Tipologia
PROM (Programmable Read Only Memory)
EPROM (Electrically PROM)
OTP (One Time Programmable)
EEPROM (Electrically Erasable PROM)
FLASH
Microprocessadores e Microcontroladores

Arquitectura interna
de um microcontrolador
Memria de Dados
SRAM (Static RAM)
EEPROM

Microprocessadores e Microcontroladores

Arquitectura interna
de um microcontrolador
Linhas de E/S para os controladores
de perifricos

Microprocessadores e Microcontroladores

Arquitectura interna
de um microcontrolador
Outros Recursos
circuito de relgio
temporizadores
co-de-guarda (watchdog)
conversores A/D e D/A
comparadores analgicos
sistema de proteco contra falhas de alimentao
estado de repouso (sleep)
Microprocessadores e Microcontroladores

Arquitectura interna
de um microcontrolador
Programao
linguagem assembly
linguagens HLL
Pascal
Basic
JAL
C
Microprocessadores e Microcontroladores

Primeiro programa - somar

8
W
8

8
OP2

OP1
Somador
8

M
U
X

Cdigo
Instruo
(literal)
8
Memria
de dados

ALU

Carry 1

FC
Estado

Microprocessadores e Microcontroladores

Primeiro programa - somar


LIST P = 16F84

; indica o modelo de PIC


; directiva ao assemblador

OPERANDO1 EQU

0x0c

;define posio do operando 1

OPERANDO2 EQU

0x0d

;define posio do operando 2

RESULTADO

0x0e

;define posio do resultado

ORG

EQU

;indica ao assemblador o
;endereo de memria de
;programa onde se situa a
;prxima instruo

Microprocessadores e Microcontroladores

Primeiro programa - somar

movlw 05

;5W

movwf OPERANDO1

; W operando1

movlw 02

;2W

movwf OPERANDO2

; W operando2

movfw OPERANDO1

; operando1 W

addwf OPERANDO2, 0

; W + operando2 W

movwf RESULTADO

; W resultado

END

; directiva de fim de programa

Microprocessadores e Microcontroladores

Primeiro programa - somar


#pragma chip PIC16F84
void main( void )
{
int
*operando1, *operando2,*resultado;
operando1 = 0x0c;
operando2 = 0x0d;
resultado = 0x0e;
*operando1 = 5;
*operando2 = 2;
*resultado = operando1+operando2;
}

Microprocessadores e Microcontroladores

Registo de Estado
STATUS_REG (Endereo 03h, 83h)

7
IRP

RP1

RP0

TO#

PD#

DC

C - Carry (e-vai-um do bit mais pesado)


1 : carry produzido pelo mais mais pesado do resultado (addwf,
addlw)
0 : no houve carry
C actua como sinalizador de emprstimo no caso da
subtraco com as instrues subwf e sublw (neste caso se
C=1 no h emprstimo e se C=0 h emprstimo)

Microprocessadores e Microcontroladores

Registo de Estado
DC - Carry do 4 bit
Tem o mesmo significado do Carry mas referindo-se ao bit 4.
Importante nas operaes em BCD.
Z - Zero
1: O resultado de uma operao lgico-aritmtica foi 0.
0: O resultado de uma operao lgico-aritmtica no foi 0.
PD# - Power Down
1: colocado a 1aps a a ligao da alimentao do
microcontrolador ou por execuo das instrues clrwdt e sleep.
0: colocado a 0 quando h transbordo do co-de-guarda
(watchdog).

Microprocessadores e Microcontroladores

Registo de Estado
DC - Carry do 4 bit
Tem o mesmo significado do Carry mas referindo-se ao bit 4.
Importante nas operaes em BCD.
Z - Zero
1: O resultado de uma operao lgico-aritmtica foi 0.
0: O resultado de uma operao lgico-aritmtica no foi 0.
PD# - Power Down
1: colocado a 1 aps a a ligao da alimentao do
microcontrolador ou por execuo da instruo clrwdt.
0: colocado a 0 quando da execuo da instruo sleep.

Microprocessadores e Microcontroladores

Registo de Estado
TO# - Time Out
1: colocado a 1 aps a a ligao da alimentao do
microcontrolador ou por execuo das instrues clrwdt e sleep.
0: colocado a 0 quando h transbordo do co-deguarda(watchdog).
RP1 - RP0: Seleco do banco de registos por endereamento
directo
Como o PIC16F84 s tem dois bancos apenas utiliza o bit RP0,
RP0=1 acede ao banco 1

RP0=0 acede ao banco 0

IRP - Seleco do banco em endereamento indirecto


No utilizado no PIC16F84 e deve ser mantido a 0.

Microprocessadores e Microcontroladores