Você está na página 1de 25

Telecomunicações e Redes

Microcontroladores

Microprocessadores e Microcontroladores Pág. 1 de 35


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 Pág. 2 de 35


Aplicações

indústria informática (periféricos: rato, teclado,...)

electrodomésticos (fornos, máq. lavar, vídeos, etc)

sistemas AVACs

telecomunicações

indústria automóvel

Microprocessadores e Microcontroladores Pág. 3 de 35


Constituição

Um microcontrolador dispõe normalmente dos seguintes


elementos:
processador ou CPU
memória de dados (RAM)
memória de programa (ROM/PROM/EPROM/EEPROM)
linhas de entrada/saída (E/S) programáveis

Microprocessadores e Microcontroladores Pág. 4 de 35


Constituição

módulos de controlo de periféricos (portos série,


paralelo,USB,I2C,etc.)
gerador de impulsos de relógio
temporizadores
cão-de-guarda (watchdog)
conversores A/D e D/A
comparadores analógicos

Microprocessadores e Microcontroladores Pág. 5 de 35


Diferença entre microprocessador e
microcontrolador

o microprocessador é um sistema aberto


constrói-se um computador com as características
desejadas juntando os módulos necessários

o microcontrolador é um sistema fechado


contem um computador completo e as suas
prestações limitadas não se podem modificar

Microprocessadores e Microcontroladores Pág. 6 de 35


Estrutura de um microprocessador

bus de
endereços
P bus de dados
bus de controle

Memória controlador 1 controlador 2

periféricos periférico
s

Microprocessadores e Microcontroladores Pág. 7 de 35


Estrutura de um microcontrolador

C
periféricos periférico
s

Microprocessadores e Microcontroladores Pág. 8 de 35


Arquitectura interna
de um microprocessador

UCP bus comum de


endereços Memória
Instruções
8 +
bus de dados e dados
instruções

Arquitectura “von Neumann”


ou “Princeton”

Microprocessadores e Microcontroladores Pág. 9 de 35


Arquitectura interna
de um microcontrolador

bus de endereços UCP bus de endereços


de instruções de dados
Memória de 10 9 Memória de
Instruções dados
14 8
1 K x 14 512 x 8
bus de instruções bus de dados

arquitectura “Harvard”

Microprocessadores e Microcontroladores Pág. 10 de 35


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 Pág. 11 de 35


Pipelining (Segmentação)

1 ciclo 1 ciclo 1 ciclo 1 ciclo 2


ciclos

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

1ª instrução MOVLW F5h Busca 4ª


Bus 1ªSa Exec 1ªSa
2ª instrução MOVWF PA
3ª instrução CALL SAL
4ª instrução MOVLW F6h

Microprocessadores e Microcontroladores Pág. 12 de 35


Arquitectura interna
de um microcontrolador

Memória de Programa
Tipologia
PROM (Programmable Read Only Memory)
EPROM (Electrically PROM)
OTP (One Time Programmable)
EEPROM (Electrically Erasable PROM)
FLASH

Microprocessadores e Microcontroladores Pág. 13 de 35


Arquitectura interna
de um microcontrolador

Memória de Dados
SRAM (Static RAM)
EEPROM

Microprocessadores e Microcontroladores Pág. 14 de 35


Arquitectura interna
de um microcontrolador

Linhas de E/S para os controladores


de periféricos

Microprocessadores e Microcontroladores Pág. 15 de 35


Arquitectura interna
de um microcontrolador
Outros Recursos
circuito de relógio
temporizadores
cão-de-guarda (watchdog)
conversores A/D e D/A
comparadores analógicos
sistema de protecção contra falhas de alimentação
estado de repouso (sleep)

Microprocessadores e Microcontroladores Pág. 16 de 35


Arquitectura interna
de um microcontrolador

Programação
linguagem assembly
linguagens HLL
Pascal
Basic
JAL
C

Microprocessadores e Microcontroladores Pág. 17 de 35


Primeiro programa - somar

Código
8 8 Instrução
(literal)
M
W U 8
X
8
8 Memória
OP1 OP2 de dados

Somador ALU

8 Carry 1
FC

Estado

Microprocessadores e Microcontroladores Pág. 18 de 35


Primeiro programa - somar

LIST P = 16F84 ; indica o modelo de PIC


; directiva ao assemblador
OPERANDO1 EQU 0x0c ;define posição do operando 1
OPERANDO2 EQU 0x0d ;define posição do operando 2
RESULTADO EQU 0x0e ;define posição do resultado

ORG 0 ;indica ao assemblador o


;endereço de memória de
;programa onde se situa a
;próxima instrução

Microprocessadores e Microcontroladores Pág. 19 de 35


Primeiro programa - somar

movlw 05 ;5W
movwf OPERANDO1 ; W  operando1
movlw 02 ;2W
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 Pág. 20 de 35


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 Pág. 21 de 35
Registo de Estado

STATUS_REG (Endereço 03h, 83h)


7 0

IRP RP1 RP0 TO# PD# Z DC C

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


1 : carry produzido pelo mais mais pesado do resultado (addwf,
addlw)
0 : não houve carry
C actua como sinalizador de empréstimo no caso da
subtracção com as instruções subwf e sublw (neste caso se
C=1 não há empréstimo e se C=0 há empréstimo)

Microprocessadores e Microcontroladores Pág. 22 de 35


Registo de Estado

DC - Carry do 4º bit
Tem o mesmo significado do Carry mas referindo-se ao bit 4.
Importante nas operações em BCD.
Z - Zero
1: O resultado de uma operação lógico-aritmética foi 0.
0: O resultado de uma operação lógico-aritmética não foi 0.
PD# - Power Down
1: É colocado a 1após a a ligação da alimentação do
microcontrolador ou por execução das instruções clrwdt e sleep.
0: É colocado a 0 quando há transbordo do cão-de-guarda
(watchdog).
Microprocessadores e Microcontroladores Pág. 23 de 35
Registo de Estado

DC - Carry do 4º bit
Tem o mesmo significado do Carry mas referindo-se ao bit 4.
Importante nas operações em BCD.
Z - Zero
1: O resultado de uma operação lógico-aritmética foi 0.
0: O resultado de uma operação lógico-aritmética não foi 0.
PD# - Power Down
1: É colocado a 1 após a a ligação da alimentação do
microcontrolador ou por execução da instrução clrwdt.
0: É colocado a 0 quando da execução da instrução sleep.

Microprocessadores e Microcontroladores Pág. 24 de 35


Registo de Estado

TO# - Time Out


1: É colocado a 1 após a a ligação da alimentação do
microcontrolador ou por execução das instruções clrwdt e sleep.
0: É colocado a 0 quando há transbordo do cão-de-
guarda(watchdog).
RP1 - RP0: Selecção do banco de registos por endereçamento
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 - Selecção do banco em endereçamento indirecto
Não é utilizado no PIC16F84 e deve ser mantido a 0.

Microprocessadores e Microcontroladores Pág. 25 de 35