microcontroladores
DESCRIPTION
Microcontroador picaxeTRANSCRIPT
Microprocessadores e Microcontroladores Microprocessadores e Microcontroladores Pág. Pág. 11 de 35 de 35
Telecomunicações e Redes
Microcontroladores
Microprocessadores e Microcontroladores Microprocessadores e Microcontroladores Pág. Pág. 22 de 35 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 Microprocessadores e Microcontroladores Pág. Pág. 33 de 35 de 35
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
Aplicações
Microprocessadores e Microcontroladores Microprocessadores e Microcontroladores Pág. Pág. 44 de 35 de 35
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
Constituição
Microprocessadores e Microcontroladores Microprocessadores e Microcontroladores Pág. Pág. 55 de 35 de 35
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
Constituição
Microprocessadores e Microcontroladores Microprocessadores e Microcontroladores Pág. Pág. 66 de 35 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 Microprocessadores e Microcontroladores Pág. Pág. 77 de 35 de 35
Estrutura de um microprocessador
bus de controle
P
Memória controlador 2controlador 1
bus de endereçosbus de dados
periféricos periféricos
Microprocessadores e Microcontroladores Microprocessadores e Microcontroladores Pág. Pág. 88 de 35 de 35
Estrutura de um microcontrolador
Cperiféricos periférico
s
Microprocessadores e Microcontroladores Microprocessadores e Microcontroladores Pág. Pág. 99 de 35 de 35
Arquitectura interna
de um microprocessador
UCPMemória
Instruções
+
dadosbus de dados e
instruções
bus comum de endereços
8
Arquitectura “von Neumann”
ou “Princeton”
Microprocessadores e Microcontroladores Microprocessadores e Microcontroladores Pág. Pág. 1010 de 35 de 35
Arquitectura interna
de um microcontrolador
arquitectura “Harvard”
UCP
Memória de
dados
512 x 8bus de dados
bus de endereços de dados
8
Memória de
Instruções
1 K x 14
9
bus de endereços de instruções
10
14
bus de instruções
Microprocessadores e Microcontroladores Microprocessadores e Microcontroladores Pág. Pág. 1111 de 35 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 Microprocessadores e Microcontroladores Pág. Pág. 1212 de 35 de 35
Pipelining (Segmentação)
1 ciclo 1 ciclo 1 ciclo 1 ciclo 2 ciclos
Busca 1ª
Bus 1ªSa
Exec. 1ª
Exec 1ªSa
Busca 2ª Exec. 2ª
Busca 3ª Exec 3ª
Busca 4ª 1ª instrução MOVLW F5h
2ª instrução MOVWF PA
3ª instrução CALL SAL
4ª instrução MOVLW F6h
Microprocessadores e Microcontroladores Microprocessadores e Microcontroladores Pág. Pág. 1313 de 35 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 Microprocessadores e Microcontroladores Pág. Pág. 1414 de 35 de 35
Arquitectura interna
de um microcontrolador
Memória de Dados
SRAM (Static RAM)
EEPROM
Microprocessadores e Microcontroladores Microprocessadores e Microcontroladores Pág. Pág. 1515 de 35 de 35
Arquitectura interna
de um microcontrolador
Linhas de E/S para os controladores de periféricos
Microprocessadores e Microcontroladores Microprocessadores e Microcontroladores Pág. Pág. 1616 de 35 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 Microprocessadores e Microcontroladores Pág. Pág. 1717 de 35 de 35
Arquitectura interna
de um microcontrolador
Programação
linguagem assembly
linguagens HLL
Pascal
Basic
JAL
C
Microprocessadores e Microcontroladores Microprocessadores e Microcontroladores Pág. Pág. 1818 de 35 de 35
Primeiro programa - somar
Memória
de dados
Estado
Somador
WMUX
OP1 OP2
Código Instrução (literal)
8
8
8
8
1CarryFC
ALU
8
8
Microprocessadores e Microcontroladores Microprocessadores e Microcontroladores Pág. Pág. 1919 de 35 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 Microprocessadores e Microcontroladores Pág. Pág. 2020 de 35 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 Microprocessadores e Microcontroladores Pág. Pág. 2121 de 35 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 Microprocessadores e Microcontroladores Pág. Pág. 2222 de 35 de 35
Registo de Estado
STATUS_REG (Endereço 03h, 83h)
IRP RP1 RP0 TO# PD# Z DC C
07
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 Microprocessadores e Microcontroladores Pág. Pág. 2323 de 35 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 Microprocessadores e Microcontroladores Pág. Pág. 2424 de 35 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 Microprocessadores e Microcontroladores Pág. Pág. 2525 de 35 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.