Microcontroladores

Transcrição

Microcontroladores
Microcontroladores
1 – Microprocessadores x Microcontroladores
1.1 - Microprocessadores:
1.2 - Microcontroladores:
2 – Microcontrolador x DSP
3 – Fabricantes e Famílias
4 – Microchip
5 – Microcontrolador PIC 16F84
5.1 – Principais Características
5.2 – Descrição Geral
5.3 – Arquitetura
5.4 – Pinagem
5.5 – Memória
5.6 – Registradores
5.7 – Set de Instruções
5.8 – Projeto de Hardware simples para teste
5.9 – Exemplo de Programação
6 –Motorola/Freescale
7 – MC68HC908QT1
7.1 – Descrição Geral
7.2 – Diagrama em Blocos
7.3 – Pinagem
7.4 – Memória
7.5 – Registradores
7.6 – Set de Instruções
7.7 – Projeto de Hardware simples para teste
7.8 – Exemplo de Programação
1
Microcontroladores
1 - Microprocessadores x Microcontroladores
1.1 – Microprocessadores:
•
Exemplo
Z-80 – 8 bits
8086 – 16 bits
Pentium – 32 bits
•
Aplicação
Utilização como CPU em microcomputadores de
uso geral ou específicos.
2
Microcontroladores
1.1 – Microprocessadores:
•
Arquitetura Interna
Registradores
Uso
Geral
Uso
Específico
PC,SP,IR
ALU
Controle
3
Microcontroladores
1.1 – Microprocessadores:
•
Arquitetura Microcomputador
Teclado
Mem
RAM
Mem
PROM
Vídeo
Circuitos de
Interface
B. dados
B. endereço
CPU
B. Controle
Microprocessador
4
Microcontroladores
1.1 – Microprocessadores:
5
Microcontroladores
1.1 – Microprocessadores:
6
Microcontroladores
1.1 – Microprocessadores:
7
Microcontroladores
1.1 – Microprocessadores:
8
Microcontroladores
1.2 – Microcontroladores
•
Exemplos
Microchip –
Motorola –
Intel –
•
PIC – 16F84/ 16F877
MC68HC908QT1
8031 / 8051
Aplicação
Utilização como CPU em sistemas embutidos,
embarcados - sistemas dedicados.
9
Microcontroladores
1.2 – Microcontroladores
• Arquitetura Interna
Controle
A/D
ALU
D/A
Mem.
Programa
Mem.
Dados
RAM
I/O
Digital
Mem.
Dados
E2PROM
Controle
Interrupção
Watch
Dog
Timer
10
Microcontroladores
1.2 – Microcontroladores
- Características:
•
•
•
•
•
•
•
•
•
A/D
D/A
I/O serial
USB
Ambiente de Programação
Linguagens disponíveis
Emulador
Gravador / Programador
Possibilidade de gravação na placa aplicativa
11
Microcontroladores
1.2 – Microcontroladores
•
Arquitetura de Sistemas
Circuito V/F
Circuito Robô
12
Microcontroladores
2 – Microcontrolador x DSP
2.1 – Principais Características dos Microcontroladores
•
•
•
•
•
•
•
•
•
•
Memória de programa – Flash / EPROM / E2PROM
Memória de dados volátil – RAM
Memória de dados não volátil – E2PROM
RISC e CISC – set de instruções
Timers / Contadores
Interrupções
PWM
I/O Digital
A/D
D/A
2.2 – Principais Características dos DSP´s
•
Características similares aos microcontroladores porem
com arquitetura voltada para processamento de sinais
tipicamente implementação de filtros ativos e
implementação de algoritmos de controles em poucas
instruções.
13
Microcontroladores
3 - Fabricantes e Principais Famílias
•
Intel
8051, MCS 51, MCS 96
•
Phillips
LPC700, LPC900, LPC2000
•
Texas
TMS370, MSP430
•
Motorola
68HCXX, 683XX, MPC500
•
Microchip
PIC12CXXX, PIC16FXXX
14
Microcontroladores
4 – Microchip
•
Empresa
Empresa dedicada a desenvolver microcontroladores MCU de
8-bit e memórias.
As PICs combinam alta performance, baixo custo e reduzido
tamanho, acarretando em ótima relação custo benefício.
A Microchip fabrica mais de 100 milhões de PICs por ano,
especialmente
para
periféricos
de
computadores,
automação de escritórios, sistema de controle de
automóveis, sistemas de segurança e aplicações em
telecomunicações.
•
Produtos
- PICmicro® Microcontrollers
- dsPIC® Digital Signal Controllers
- Analog & Interface Products
- Serial EEPROMS
- Pb-Free Information
- Battery Management
- Radio Frequency Devices
- KEELOQ® Authentication Products
15
Microcontroladores
4 – Microchip
•
Familia de microcontroladores PIC:
PIC 16FXXX
16
Microcontroladores
5 – Microcontrolador PIC 16F84
5.1 - principais caracteristicas
17
Microcontroladores
5 – Microcontrolador
PIC 16F84
5.2 - Descrição geral
– Arquitetura RISC
– 8 níveis de STACK
– Barras de instrução e dados separados.
• Instrução – 14-bit, Dados – 8-bit
– A família PIC16CXX utiliza a arquitetura Harvard, onde
programa e dados são acessados de memórias diferentes
por barramentos diferentes.
– Utiliza PIPELINE (FETCH junto com execução) → um ciclo
de máquina para cada instrução.
– 16F84 → Memória para Programa –
1K x 14-bit
Memória RAM –
68 Bytes
Memória EEPROM –
64 Bytes
– Acesso direto e indireto a memória.
– Todos os registradores (incluindo PC) são mapeados na
RAM.
– 4 formas de CLOCK, RC, LP, XTAL, HS HICH SPEED
CRISTAL.
– Memória FLASH → permite que o dispositivo seja usado
para protótipo e produção. É possível programar sem
remover da aplicação. (?)
– Baixo custo, baixo consumo, alta performance, flexibilidade
de I/O → Aplicável em controle de velocidade de motores,
transmissor e receptor de freqüências, códigos de
segurança, etc.
– Software → MACRO-ASSEMBLER, C E FUZZY LOGIC 18
Microcontroladores
5 – Microcontrolador
5.3 - Arquitetura
PIC 16F84
19
Microcontroladores
5 – Microcontrolador
5.4 - Pinagem
PIC 16F84
20
Microcontroladores
5 – Microcontrolador
PIC 16F84
5.5 - Memoria
– PC de 13-bit porém memória de apenas 1K (0-3FF)
•
•
•
•
RESET-PC = 0H
0H GO TO 100
04H
100H
INTERRUPÇÃO-PC = 04H
; Vá para 100 (end. Interrupção)
;Início INT.
;Início do programa.
– O PIC16CXX não possui STACK POINTER e sim um stack
de 8 níveis. O operador deve “gerenciar” um máximo de 8
CALL´s ou INT´s.
– Memória de Dados:
• 2 Bancos selecionados por RP1 (sempre em 0) e RP0
• Memória RAM – 0CH e 4FH.
21
Microcontroladores
5 – Microcontrolador
PIC 16F84
5.5 - Memoria
Memória de dados com SFR e RAM
de uso geral no PIC16F84
22
Microcontroladores
5 – Microcontrolador
PIC 16F84
5.5 - Memoria
Mapa de memória dos SFR do PIC16F84
23
Microcontroladores
5 – Microcontrolador
PIC 16F84
5.6 - Registradores
• Status
24
Microcontroladores
5 – Microcontrolador
PIC 16F84
5.6 - Registradores
• Option
25
Microcontroladores
5 – Microcontrolador
PIC 16F84
5.6 - Registradores
• Intcon
26
Microcontroladores
5 – Microcontrolador
PIC 16F84
5.6 - Registradores
• fusiveis
27
Microcontroladores
5 – Microcontrolador PIC 16F84
5.7 – Set de instruções
28
Microcontroladores
5 – Microcontrolador PIC 16F84
5.7 – Set de instruções
29
Microcontroladores
5.8 – Exemplo de HARDWARE para teste
30
Microcontroladores
5.8 – Exemplo de HARDWARE para teste
31
Microcontroladores
5.8 – Exemplo de HARDWARE para teste
32
Microcontroladores
5.9 – Exemplo de SOFTWARE
5.9.1 Rotina de tempo
;========================================================================
;
Progrma exemplo 1 para o livro "Microntroladores PIC"
;
;
Objetivo:
Estudar rotina de tempo baseada em software
;
Funcionamento:
Pisca o led 7 a cada 250ms
;
Agosto/97
;========================================================================
__16F84
list p=16F84
;processador 16F84
radix dec
;define padrao DECIMAL para valores sem
;identificação
include <P16F84.INC>
16F84
;Anexa o arquivo que contem as definições do
;..........................................................................
;
Tabela de definições de RAM e constantes.
W equ
0
;referencia a W
Led7
equ
7
;led 7 esta em RB7
tempo
X
equ
Y
equ
equ
0DH
0EH
0CH
;variavel tempo RAM 0CH. (primeira posição)
;----------------------Memoria de Programa--------------------------------org
goto
0
inicio
;define inicio do trecho a seguir em 000
;desvia para o programa principal onde inicia pelo
;ajuste dos registros de controle.
;Este desvio tem por objetivo deixar o endereço
;004 para a rotina de interrupção.
;...................INICIO DA ROTINA DE INTERRUPCAO........................
org
4
33
nop
retfie
;primeira instrucao da interrupcao
;retorna da interrupcao
Microcontroladores
5.9 – Exemplo de SOFTWARE
5.9.1 Rotina de tempo (Cont.)
;..........................................INICIO DO PROGRAMA.....................................
inicio:
;este endereco eh o primeiro apos a interrupcao
movlw B’00000000’ ;W=0
movwf INTCON
;INTCON=0. Nenhuma interr habilitada
bsf
;seleciona banco 1 para option e tris
STATUS,RP0
movlw B’11011111’ ;
movwf OPTION_REG
movlw
movwf
movlw
movwf
bcf
B’11111111’ ;W=255
TRISA
B’00000000’ ;W=0
TRISB
STATUS,RP0
;Registro OPTION ajusta timer 0 clock interno e
;prescaler para watchdog (nao usamos)
;TRISA=ffH. PORTA toda entrada
;TRISB=0. PORTB toda saida
;volto ao banco 0. Padrao do reset
;.........................................................................................................................
principal:
;inicio do programa principal
bcf
call
bsf
call
PORTB,Led7
ms250
PORTB,Led7
ms250
goto
principal
;fazendo PORTB pino 7 = 0 acendo o Led 7
;espera 250ms
;fazendo PORTB pino 7 = 1 apaga o Led 7
;espera 250ms
34
Microcontroladores
5.9 – Exemplo de SOFTWARE
5.9.1 Rotina de tempo (Cont.)
;.......................Rotina de tempo de 250ms.............................
ms250:
; -0 CALL para a rotina leva 2us.
movlw 250
; +1
movwf tempo
; +1
total 1 = 4us
ms250a:
movlw 248
; +1
movwf X
; +1
total 2 = 2us
ms250b:
nop
;1
decfsz X
;1
248x4us + (1us nop + 2us quando decfsz da 0)
goto
ms250b
;2
da um tempo total 3 = 995us
decfsz tempo
;1
1us pq tempo > 0 + 2us goto da um total 4 = 3us
goto
ms250a
;2
250x(total 2 + total 3 + total 4) + 2us quando
;
tempo = 0 = total 5 = 250.002us
return
;delay = total 1 + total 5 + 2us return = 250.008us
END
;fim do program fonte
Sobre a rotina de tempo:
4 + 250*(2 + 248*4 + 1 + 2 + 1 + 2) + 2 + 2 = 250.0008us
35
Microcontroladores
5.9 – Exemplo de SOFTWARE
5.9.2 Rotina de deslocamento
;=========================================================================
;
Progrma exemplo 2 para o livro "Microntroladores PIC"
;
;
Objetivo:
Estudar instrucoes de deslocamento
;
Funcionamento:
Pisca os leds 7 a 0, neta ordem, e repete.
;
OS LEDS ASCENDEM EM 0. VER ESQUEMA
;
Agosto/97
;=========================================================================
__16F84
list p=16F84
;processador 16F84
radix dec
;define padrao DECIMAL para valores sem
;identificação
include <P16F84.INC>
;Anexa o arquivo que contem as definições do 16F84
;..........................................................................
;
Tabela de definições de RAM e constantes.
W equ
0
;referencia a W
tempo
equ
0CH
;variavel tempo RAM 0CH. (primeira posição)
DT1 equ
0DH
;variavel auxiliar para tempo
X
equ
0EH
Y
equ
0FH
;----------------------Memoria de Programa--------------------------------org
goto
0
inicio
;define inicio do trecho a seguir em 000
;desvia para o programa principal.
;...................INICIO DA ROTINA DE INTERRUPCAO........................
org
4
nop
retfie
;primeira instrucao da interrupcao
;retorna da interrupcao
36
Microcontroladores
5.9 – Exemplo de SOFTWARE
5.9.2 Rotina de deslocamento (Cont.)
;...................INICIO DO PROGRAMA.....................................
inicio:
;este endereco eh o primeiro apos a interrupcao
movlw B’00000000’ ;W=0
movwf INTCON
clrf
clrf
bsf
PORTA
PORTB
STATUS,RP0
movlw B’11011111’ ;
movwf OPTION_REG
movlw
movwf
movlw
movwf
bcf
B’11111111’ ;W=255
TRISA
B’00000000’ ;W=0
TRISB
STATUS,RP0
;INTCON=0. Nenhuma interr habilitada
;inicializa portas A e B.
;seleciona banco 1 para option e tris
;Registro OPTION ajusta timer 0 clock interno e
;prescaler para watchdog (nao usamos)
;TRISA=ffH. PORTA toda entrada
;TRISB=0. PORTB toda saida
;volto ao banco 0. Padrao do reset
;............................................................................
principal:
;inicio do programa principal
movlw 255
movwf X
bcf
STATUS,C
repete:
rrf
btfss
goto
X
STATUS,C
principal
;W=11111111
;X = W = 11111111
;bit Carry = 0
;desloca o valor em X para a direita.
;o bit 0 vai ao Carry e o Carry vai ao bit 7.
;se C = 1 pula prox inst.
;Quando Carry = 0 acabou de deslocar 8 vezes.
;reinicia
37
Microcontroladores
5.9 – Exemplo de SOFTWARE
5.9.2 Rotina de deslocamento (Cont.)
movf
X,W
escreve;
movwf PORTB
;W = valor em X que sera escrito no PortB.
;ver instrucao MOVF f,d. Se d=0 escreve em W.
;Como atribuimos a W o valor 0, o compilador
;enxerga a instrucao como MOVF X,0
;PORTB = W = X
call
ms250
;espera 250 ms
goto
repete
;Se Carry = 1 ainda não deslocou 8 vezes
;efetua novo deslocamento
;.......................Rotina de tempo de 250ms.............................
ms250:
; -0 CALL para a rotina leva 2us.
movlw 250
; +1
movwf tempo
; +1
total 1 = 4us
ms250a:
movlw 248
; +1
movwf Y
; +1
total 2 = 2us
ms250b:
nop
;1
decfsz Y
;1
248x4us + (1us nop + 2us quando decfsz da 0)
goto
ms250b
;2
da um tempo total 3 = 995us
decfsz tempo
;1
1us pq tempo > 0 + 2us goto da um total 4 = 3us
goto
ms250a
;2
250x(total 2 + total 3 + total 4) + 2us quando
;
tempo = 0 = total 5 = 250.002us
return
;delay = total 1 + total 5 + 2us return = 250.008us
END
;fim do program fonte
38
Microcontroladores
6 – Motorola / Freescale
A Freescale, empresa a qual pertence a Motorola, é uma uma
gigante do mercado de semicondutores cuja a produção tem
o foco em produtos que atendam as indústrias automotivas e
de comunicação.
A empresa produz uma enorme gama de famílias de chips, que
incluem microcontroladores de 8 e 16-bit,
microprocessadores, DSPs, memórias, sensores e muitos
outros.
•
Algumas Famílias de produtos:
- HC08;
- HCS12;
- ColdFire;
- PowerPC;
- ARM;
39
Microcontroladores
7 – MC68HC908QT1
7.1 – Descrição Geral
• Tensões de operação: 5-V and 3-V (VDD)
• Oscilador interno ajustável
• In-system FLASH programming
• 128 bytes de RAM interna
• 48 bytes of user-defined vectors, located in FLASH
• 416 bytes of monitor read-only memory (ROM)
• 1536 bytes of FLASH program and erase routines, located in
ROM
• TIM (timer interface module) de 2 canais de 16-bit
• 5 linhas bidirecionais de I/O e uma de apenas entrada:
– Duas compartilhadas com os canais do Timer
– Uma compartilhada com IRQ externo
– Alta capacidade de fornecimento de corrente em todos os
pinos das portas
– Todas os pinos das portas podem ir para Three-state
• Power-on reset
• Pullups internos em IRQ e RST para reduzir o número de
componente externos
• Registradores de I/O mapeados em memória
• MC68HC908QT1 está disponível nos seguintes pacotes:
– 8-pin PDIP
– 8-pin SOIC
– 8-pin dual flat no lead (DFN) package
40
Microcontroladores
7 – MC68HC908QT1
7.2 – Diagrama em Blocos
41
Microcontroladores
7 – MC68HC908QT1
7.3 – Pinagem
42
Microcontroladores
7 – MC68HC908QT1
7.4 – Memória
43
Microcontroladores
7 – MC68HC908QT1
7.5 – Registradores de Configuração
Os Registradores podem habilitar ou desabilitar as seguintes
opções:
• Stop mode recovery time (32 × BUSCLKX4 cycles or
4096 × BUSCLKX4 cycles)
• STOP instruction
• Computer operating properly module (COP)
• COP reset period (COPRS): 8176 × BUSCLKX4 or 262,128 ×
BUSCLKX4
• Low-voltage inhibit (LVI) enable and trip voltage selection
• OSC option selection
• IRQ pin
• RST pin
• Auto wakeup timeout period
44
Microcontroladores
7 – MC68HC908QT1
7.6 – Set de Instruções
45
Microcontroladores
7.6 – Set de Instruções (cont.)
46
Microcontroladores
7.6 – Set de Instruções (cont.)
47
Microcontroladores
7.6 – Set de Instruções (cont.)
48
Microcontroladores
7.6 – Set de Instruções (cont.)
49
Microcontroladores
7.6 – Set de Instruções (cont.)
50
Microcontroladores
7 – MC68HC908QT1
7.7 – Projeto simples de Hardware
51
Microcontroladores
7 – MC68HC908QT1
7.8 – Exemplo de Programa
/*Arquivo Events.C*/
/*Including used modules for compilling procedure*/
#include "Cpu.h"
#include "Events.h"
#include "LED.h"
#include "Timer.h"
/*Include shared modules, which are used for whole project*/
#include "PE_Types.h"
#include "PE_Error.h"
#include "PE_Const.h"
#include "IO_Map.h"
/*
** ===================================================================
** Event
: Timer_OnInterrupt (module Events)
**
** From bean : Timer [TimerInt]
** Description :
**
When a timer interrupt occurs this event is called (only
**
when the bean is enabled - "Enable" and the events are
**
enabled - "EnableEvent").
** Parameters : None
** Returns : Nothing
** ===================================================================
*/
void Timer_OnInterrupt(void)
{
if (PTA == 0)
{
PTA |= 2;
}
else
{
52
PTA &= ~2;
}
}

Documentos relacionados

microcontroladores o que é o pic?

microcontroladores o que é o pic? preparada para entender. Para facilitar a compreensão ao programador, se recorre a um instrumento e convenção para tornar a instrução mais compreensível. A primeira convenção é a que associa o opco...

Leia mais