aula3 120922184753-phpapp02

22
Programação Assembly 8051 – Aula 3 5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 1

Upload: bruno-santos-ferreira

Post on 13-Apr-2017

98 views

Category:

Technology


0 download

TRANSCRIPT

Programação Assembly

8051 – Aula 3

5 de agosto de 2012 Minicurso: Assembly para 8051 GDESTE 1

Instrução de acesso à tabela

MOV DPTR , #TABELA

MOVC A , @A + DPTR

TABELA: DB 10,20,30,40,50,60

5 de agosto de 2012 2 Minicurso: Assembly para 8051 GDESTE

Interrupções

Quando uma interrupção é aceita, a CPU guarda na memória de dados o endereço de ROM que contém a próxima instrução do programa normal que seria executada e desloca-se para um novo endereço de memória de programa específico daquela interrupção, procurando por instruções da sub-rotina de interrupção.

5 de agosto de 2012 3 Minicurso: Assembly para 8051 GDESTE

Propriedades

• Vetorada ou não vetorada: todas as interrupções do 8051 são do tipo não vetorada. Isso significa que ele possui um endereço fixo de interrupção. Quando o microcontrolador permite que o dispositivo que o interrompeu envie o endereço do desvio é chamada de vetorada.

5 de agosto de 2012 4 Minicurso: Assembly para 8051 GDESTE

Propriedades

• Mascaramento: é a propriedade de permitir ou não que dispositivos internos ou externos interrompam o microcontrolador. No 8051 as interrupções são habilitadas por software.

• Prioridade: Define a prioridade de cada evento de interrupção, para não haver conflito de disputas de interrupção.

5 de agosto de 2012 5 Minicurso: Assembly para 8051 GDESTE

Propriedades

• Tipos de disparo: é propriedade das interrupções externas. Pode-se programar o microcontrolador para ser interrompido por nível(0 ou 1) ou borda(subida ou descida).

5 de agosto de 2012 6 Minicurso: Assembly para 8051 GDESTE

Endereços das Interrupções

5 de agosto de 2012 7 Minicurso: Assembly para 8051 GDESTE

INTERRUPÇÃO ENDEREÇO

Reset 000H

Externa 0 003H

Timer 0 00BH

Externa 1 0013H

Timer 1 01BH

Serial 023H

Habilitação

5 de agosto de 2012 8 Minicurso: Assembly para 8051 GDESTE

SÍMBOLO FUNÇÃO

EA Todas as interrupções

ES Porta Serial

ET1 Timer 1

EX1 Interrupção externa 1

ET0 Timer 0

EX0 Interrupção externa 0

REGISTRO IE (Interrupt enable)

EA - - ES ET1 EX1 ET0 EX0

Prioridade das Interrupções

5 de agosto de 2012 9 Minicurso: Assembly para 8051 GDESTE

REGISTRO IP (Interrupt priority)

- - - PS PT1 PX1 PT0 PX0

SÍMBOLO FUNÇÃO

PS Porta Serial

PT1 Timer 1

PX1 Interrupção externa 1

PT0 Timer 0

PX0 Interrupção externa 0

1 -> Alta prioridade / 0 -> Baixa prioridade

Flags

5 de agosto de 2012 10 Minicurso: Assembly para 8051 GDESTE

Flag Interrupção

RI E TI Porta Serial

TF1 Timer 1

IE1 Interrupção externa 1

TF0 Timer 0

IE0 Interrupção externa 0

Interrupções externas 0 e 1

São utilizadas quando uma determinada sub-rotina deve ser executada conforme um sinal de controle externo, que pode ser uma chave, um sensor, outro microcontrolador etc.

5 de agosto de 2012 11 Minicurso: Assembly para 8051 GDESTE

Interrupções externas 0 e 1

5 de agosto de 2012 12 Minicurso: Assembly para 8051 GDESTE

INTERRUPÇÃO EXTERNA

BIT DE PROGRAMAÇÃO

MODO DE DISPARO

SINAL APLICADO

0

IT0 = 1 Borda

IT0 = 0 Nível

1

IT1 = 1 Borda

IT0 = 0 Nível

Temporizadores

O 8051 possui dois Temporizadores/Contadores de 16 bits. Cada Timer é formado por duas posições de RAM, a parte alta e a parte baixa.

5 de agosto de 2012 13 Minicurso: Assembly para 8051 GDESTE

TIMER

0 TH0 (Parte alta)

TL0 (Parte baixa)

1 TH1 (Parte alta)

TL1 (Parte baixa)

Temporizadores

Quando um timer começa a contar o registro é incrementado a cada contagem. Inicialmente o registro baixo é incrementado e quando este estoura, o registro alto é incrementado.

𝑁º 𝑑𝑒 𝑝𝑢𝑙𝑠𝑜𝑠 = 𝑇𝑒𝑚𝑝𝑜 𝑡𝑜𝑡𝑎𝑙 𝑑𝑒 𝑐𝑜𝑛𝑡𝑎𝑔𝑒𝑚 × 𝐹𝑟𝑒𝑞𝑢𝑒𝑛𝑐𝑖𝑎

12

5 de agosto de 2012 14 Minicurso: Assembly para 8051 GDESTE

Contadores

Os registros baixos dos timers são incrementados a cada transição de nível lógico baixo ( 1 para 0) do sinal aplicado ao pinos externo do respectivo timer.

5 de agosto de 2012 15 Minicurso: Assembly para 8051 GDESTE

TIMER PORTA

0 P3.4

1 P3.5

TMOD (registro de programação)

• Bits não-endereçáveis.

• Responsável pela programação dos dois timers.

5 de agosto de 2012 16 Minicurso: Assembly para 8051 GDESTE

REGISTRO TMOD (Timer Mode Control)

GATE C/T M1 M0 GATE C/T M1 M0

TIMER 0 TIMER 1

TMOD (registro de programação)

• GATE: quando este bit é setado, o controle liga/desliga do timer pode ser feito por um sinal externo ao microcontrolador.

• C/T: quando C/T = 1, o timer funciona como um contador e os pulsos vêm do pino externo. Quando C/T = 0, funciona como temporizador e os pulsos vêm do oscilador interno.

5 de agosto de 2012 17 Minicurso: Assembly para 8051 GDESTE

TMOD (registro de programação)

• M1 E M0: determinam o modo de funcionamento do timer de acordo com a tabela abaixo.

5 de agosto de 2012 18 Minicurso: Assembly para 8051 GDESTE

M1 M0 Modo de Funcionamento

0 0 0

0 1 1

1 0 2

1 1 3

TMOD (registro de programação)

• Modo 0: Funciona como um contador de 13 bits. O contador é composto por todo o registro alto (THx) e os 5 bits menos significativos da parte baixa (TLx). O sinal de flag será gerado quando o bit mais significativo do registro alto mudar de 1 para 0. A contagem máxima é até 8192 pulsos.

5 de agosto de 2012 19 Minicurso: Assembly para 8051 GDESTE

TMOD (registro de programação)

• Modo 1: Funciona como um contador de 16 bits. A contagem máxima vai até 65535 pulsos.

5 de agosto de 2012 20 Minicurso: Assembly para 8051 GDESTE

TMOD (registro de programação)

• Modo 2: funciona como contador de 8 bits com recarga automática. É composto apenas pela parte baixa (TLx). A contagem máxima será até 255. A função da parte alta é guardar o byte que deverá ser carregado automaticamente na parte alta.

5 de agosto de 2012 21 Minicurso: Assembly para 8051 GDESTE

TMOD (registro de programação)

• Modo 3: este modo só pode ser aplicado ao timer 0. Neste modo o timer 0 será dividido em dois timers de 8 bits.

5 de agosto de 2012 22 Minicurso: Assembly para 8051 GDESTE