• Nenhum resultado encontrado

Microcontroladores. 1 Microprocessadores x Microcontroladores Microprocessadores: Microcontroladores: 2 Microcontrolador x DSP

N/A
N/A
Protected

Academic year: 2021

Share "Microcontroladores. 1 Microprocessadores x Microcontroladores Microprocessadores: Microcontroladores: 2 Microcontrolador x DSP"

Copied!
52
0
0

Texto

(1)

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

(2)

2

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.

(3)

1.1 – Microprocessadores:

Arquitetura Interna

Microcontroladores

Registradores

Uso

Geral

Uso

Específico

PC,SP,IR

ALU

Controle

(4)

4

1.1 – Microprocessadores:

Arquitetura Microcomputador

Microcontroladores

Mem

RAM

Mem

PROM

Circuitos de

Interface

Teclado

Vídeo

CPU

B. dados

B. endereço

B. Controle

Microprocessador

(5)

1.1 – Microprocessadores:

(6)

6

1.1 – Microprocessadores:

(7)

1.1 – Microprocessadores:

(8)

8

1.1 – Microprocessadores:

(9)

1.2 – Microcontroladores

Exemplos

Microchip – PIC – 16F84/ 16F877

Motorola –

MC68HC908QT1

Intel –

8031 / 8051

Aplicação

Utilização como CPU em sistemas embutidos,

embarcados - sistemas dedicados.

(10)

10

1.2 – Microcontroladores

Arquitetura Interna

Microcontroladores

Controle

ALU

Mem.

Programa

Mem.

Dados

RAM

Mem.

Dados

E

2

PROM

A/D

D/A

I/O

Digital

Controle

Interrupção

Timer

Watch

Dog

(11)

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

(12)

12

1.2 – Microcontroladores

Arquitetura de Sistemas

Circuito V/F

Circuito Robô

Microcontroladores

(13)

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.

(14)

14

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

Microcontroladores

(15)

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

(16)

16

4 – Microchip

Familia de microcontroladores PIC:

PIC 16FXXX

(17)

5 – Microcontrolador PIC 16F84

5.1 - principais caracteristicas

(18)

18

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

(19)

Microcontroladores

5 – Microcontrolador PIC 16F84

(20)

20

5 – Microcontrolador PIC 16F84

5.4 - Pinagem

(21)

5 – Microcontrolador PIC 16F84

5.5 - Memoria

– PC de 13-bit porém memória de apenas 1K (0-3FF)

• RESET-PC = 0H

INTERRUPÇÃO-PC = 04H

• 0H GO TO 100

; Vá para 100 (end. Interrupção)

• 04H

;Início INT.

• 100H

;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.

(22)

22

Microcontroladores

5 – Microcontrolador PIC 16F84

5.5 - Memoria

Memória de dados com SFR e RAM de uso geral no PIC16F84

(23)

23

Microcontroladores

5 – Microcontrolador PIC 16F84

(24)

24

5 – Microcontrolador PIC 16F84

5.6 - Registradores

Status

(25)

5 – Microcontrolador PIC 16F84

5.6 - Registradores

Option

(26)

26

5 – Microcontrolador PIC 16F84

5.6 - Registradores

Intcon

(27)

5 – Microcontrolador PIC 16F84

5.6 - Registradores

fusiveis

(28)

28

5 – Microcontrolador PIC 16F84

5.7 – Set de instruções

(29)

5 – Microcontrolador PIC 16F84

5.7 – Set de instruções

(30)

30

5.8 – Exemplo de HARDWARE para teste

Microcontroladores

(31)

5.8 – Exemplo de HARDWARE para teste

Microcontroladores

(32)

32

5.8 – Exemplo de HARDWARE para teste

Microcontroladores

(33)

33

5.9 – Exemplo de SOFTWARE

5.9.1 Rotina de tempo

Microcontroladores

;======================================================================== ; 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> ;Anexa o arquivo que contem as definições do 16F84

;...

; Tabela de definições de RAM e constantes.

W equ 0 ;referencia a W

Led7 equ 7 ;led 7 esta em RB7

tempo equ 0CH ;variavel tempo RAM 0CH. (primeira posição) X equ 0DH

Y equ 0EH

;---Memoria de Programa---

org 0 ;define inicio do trecho a seguir em 000

goto inicio ;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

nop ;primeira instrucao da interrupcao

(34)

34

5.9 – Exemplo de SOFTWARE

5.9.1 Rotina de tempo (Cont.)

Microcontroladores

;...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 STATUS,RP0 ;seleciona banco 1 para option e tris movlw B’11011111’ ;

movwf OPTION_REG ;Registro OPTION ajusta timer 0 clock interno e ;prescaler para watchdog (nao usamos)

movlw B’11111111’ ;W=255

movwf TRISA ;TRISA=ffH. PORTA toda entrada movlw B’00000000’ ;W=0

movwf TRISB ;TRISB=0. PORTB toda saida bcf STATUS,RP0 ;volto ao banco 0. Padrao do reset ;... principal: ;inicio do programa principal

bcf PORTB,Led7 ;fazendo PORTB pino 7 = 0 acendo o Led 7

call ms250 ;espera 250ms

bsf PORTB,Led7 ;fazendo PORTB pino 7 = 1 apaga o Led 7

call ms250 ;espera 250ms

(35)

5.9 – Exemplo de SOFTWARE

5.9.1 Rotina de tempo (Cont.)

Microcontroladores

;...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

:

(36)

36

5.9 – Exemplo de SOFTWARE

5.9.2 Rotina de deslocamento

Microcontroladores

;========================================================================= ; 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 0 ;define inicio do trecho a seguir em 000 goto inicio ;desvia para o programa principal. ;...INICIO DA ROTINA DE INTERRUPCAO...

org 4

nop ;primeira instrucao da interrupcao

(37)

37

5.9 – Exemplo de SOFTWARE

5.9.2 Rotina de deslocamento (Cont.)

Microcontroladores

;...INICIO DO PROGRAMA...

inicio: ;este endereco eh o primeiro apos a interrupcao movlw B’00000000’ ;W=0

movwf INTCON ;INTCON=0. Nenhuma interr habilitada clrf PORTA ;inicializa portas A e B.

clrf PORTB

bsf STATUS,RP0 ;seleciona banco 1 para option e tris movlw B’11011111’ ;

movwf OPTION_REG ;Registro OPTION ajusta timer 0 clock interno e ;prescaler para watchdog (nao usamos)

movlw B’11111111’ ;W=255

movwf TRISA ;TRISA=ffH. PORTA toda entrada movlw B’00000000’ ;W=0

movwf TRISB ;TRISB=0. PORTB toda saida bcf STATUS,RP0 ;volto ao banco 0. Padrao do reset ;...

principal: ;inicio do programa principal

movlw 255 ;W=11111111

movwf X ;X = W = 11111111

bcf STATUS,C ;bit Carry = 0 repete:

rrf X ;desloca o valor em X para a direita. ;o bit 0 vai ao Carry e o Carry vai ao bit 7. btfss STATUS,C ;se C = 1 pula prox inst.

goto principal ;Quando Carry = 0 acabou de deslocar 8 vezes. ;reinicia

(38)

38

5.9 – Exemplo de SOFTWARE

5.9.2 Rotina de deslocamento (Cont.)

Microcontroladores

movf X,W ;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

escreve;

movwf PORTB ;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

(39)

6 – Motorola / Freescale

Microcontroladores

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;

(40)

40

7 – MC68HC908QT1

7.1 – Descrição Geral

Microcontroladores

• 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

(41)

7 – MC68HC908QT1

7.2 – Diagrama em Blocos

(42)

42

7 – MC68HC908QT1

7.3 – Pinagem

(43)

7 – MC68HC908QT1

7.4 – Memória

(44)

44

7 – MC68HC908QT1

7.5 – Registradores de Configuração

Microcontroladores

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

(45)

7 – MC68HC908QT1

7.6 – Set de Instruções

(46)

46

7.6 – Set de Instruções (cont.)

(47)

7.6 – Set de Instruções (cont.)

(48)

48

7.6 – Set de Instruções (cont.)

(49)

7.6 – Set de Instruções (cont.)

(50)

50

7.6 – Set de Instruções (cont.)

(51)

Microcontroladores

7 – MC68HC908QT1

(52)

52

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 { PTA &= ~2; } }

Referências

Documentos relacionados