14
Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 1 Prática laboratorial com o 80C51 • Organização: – Requisitos e modelo funcional de um sistema mínimo – Da especificação à prática de projecto – Comunicação com o PC – Um gerador de formas de onda Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 2 Requisitos de um sistema mínimo • Considerando que o sistema mínimo pretendido tem por objectivo principal dar apoio à prática laboratorial, os requisitos de partida foram os seguintes: Simplicidade, para permitir uma compreensão em pormenor de todos os aspectos Disponibilidade de entradas e de saídas, para permitir alguma variedade nos trabalhos práticos a realizar – Empregar componentes acessíveis e com baixo custo Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 3 Modelo funcional • Carga do programa a executar: via RS 232C, a partir de um PC onde é gerado o código objecto • Entrada / Saída: – Analógica, entre -5 V e +5 V, a que correspondem a escrita de 00 e FFH, respectivamente, no conversor D/A (relação linear entre os códigos escritos no D/A e o valor da saída) – Quatro entradas digitais e quatro saídas digitais Introdução ao Projecto com Sistemas Digitais e Microcontroladores Prática laboratorial com o 80C51 - 4 Modelo funcional (cont.) • A memória externa resume-se a uma NVRAM (MP – para o código recebido via RS 232C – e MD), estando o “monitor residente” na MP interna do µC • Alocação de endereços: /PSEN /RD /WR A15 Acesso seleccionado 0 1 1 1 Memória externa (leitura: código de instrução) 1 0 1 1 Memória externa (leitura: dados) 1 1 0 1 Memória externa (escrita) 1 1 0 0 Saída analógica (ender. 90H, linhas P1.0 a P1.3) Saídas digitais (porto 1) (ender. 90H, linhas P1.4 a P1.7) Entradas digitais (porto 1)

Modelo funcional Modelo funcional (cont.)paginas.fe.up.pt/~jmf/Publicacoes/Downloads/Slides_IPSDM/... · 2002-05-14 · – Requisitos e modelo funcional de um sistema mínimo –

  • Upload
    vucong

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Modelo funcional Modelo funcional (cont.)paginas.fe.up.pt/~jmf/Publicacoes/Downloads/Slides_IPSDM/... · 2002-05-14 · – Requisitos e modelo funcional de um sistema mínimo –

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 1

Prática laboratorial com o80C51• Organização:

– Requisitos e modelo funcional de um sistema mínimo

– Da especificação à prática de projecto– Comunicação com o PC

– Um gerador de formas de onda

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 2

Requisitos de um sistemamínimo• Considerando que o sistema mínimo pretendido tem

por objectivo principal dar apoio à prática laboratorial,os requisitos de partida foram os seguintes:– Simplicidade, para permitir uma compreensão em

pormenor de todos os aspectos

– Disponibilidade de entradas e de saídas, para permitiralguma variedade nos trabalhos práticos a realizar

– Empregar componentes acessíveis e com baixo custo

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 3

Modelo funcional

• Carga do programa a executar: via RS 232C, a partirde um PC onde é gerado o código objecto

• Entrada / Saída:– Analógica, entre -5 V e +5 V, a que correspondem a

escrita de 00 e FFH, respectivamente, no conversor D/A(relação linear entre os códigos escritos no D/A e o valorda saída)

– Quatro entradas digitais e quatro saídas digitais

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 4

Modelo funcional (cont.)

• A memória externa resume-se a uma NVRAM (MP –para o código recebido via RS 232C – e MD),estando o “monitor residente” na MP interna do µC

• Alocação de endereços:/PSEN /RD /WR A15 Acesso seleccionado

0 1 1 1 Memória externa (leitura: código de instrução)

1 0 1 1 Memória externa (leitura: dados)

1 1 0 1 Memória externa (escrita)

1 1 0 0 Saída analógica

(ender. 90H, linhas P1.0 a P1.3) Saídas digitais (porto 1)

(ender. 90H, linhas P1.4 a P1.7) Entradas digitais (porto 1)

Page 2: Modelo funcional Modelo funcional (cont.)paginas.fe.up.pt/~jmf/Publicacoes/Downloads/Slides_IPSDM/... · 2002-05-14 · – Requisitos e modelo funcional de um sistema mínimo –

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 5

Modelo funcional (cont.)

• Repare-se que o modelo funcional descrito nospermite desde já a escrita de código:

(qual o efeito deste segmento de código?)

.org 8000h

inicio mov dptr,#0 ; DP com endereco D/A

clr a ; carrega ACC com 0

ciclo movx @dptr,a ; envia ACC para D/A

inc a ; proximo valor

sjmp ciclo

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 6

Da especificação à práticade projecto• A passagem à prática de projecto faz-se através do

seguinte conjunto de passos:– Definição do diagrama de blocos da solução global

– Realização do bloco descodificador do sistema– Criação do diagrama esquemático

– Realização da carta de circuito impresso

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 7

Diagrama de blocos

87C51Conversão de nível

Portosérie

P1

AD[0:7]

D[0:7]

A[0:7]

A[8:15]

A[15]/PSEN

/RD/WR

Descodificador

NVRAMRegisto

Entrada / saída digital(4 entradas e 4 saídas)

/mem_rd /mem_cs

da_cs

Bloco do conversor D/A

Saídaanalógica

Comunicaçãovia RS-232C ALE

AmpOps

Registo econv. D/A

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 8

Descodificador do sistema

• Sinais gerados pelo descodificador:– Para a NVRAM: /mem_rd e /mem_cs

– Para a escrita no conversor D/A: da_cs

• Especificação “tipo-PALASM”:

(seria desejável a sua implementação como uma PAL?)

(/mem_rd) = (/psen)*(/rd) ; activo se /psen ou /rd estiverem em 0

(/mem_cs) = /(a15) ; activo se a15 estiver em 1

(da_cs) = /(a15)*/(/wr) ; activo se a15 e /wr estiverem em 0

Page 3: Modelo funcional Modelo funcional (cont.)paginas.fe.up.pt/~jmf/Publicacoes/Downloads/Slides_IPSDM/... · 2002-05-14 · – Requisitos e modelo funcional de um sistema mínimo –

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 9

Diagrama esquemático

• (apresentado na transparência seguinte) Reparar emparticular nos seguintes aspectos:– Filtragem nas entradas digitais

– Forma como está implementada a comunicação RS 232C– Implementação do bloco descodificador

– Tratamento da saída do conversor D/A– Ligação das entradas digitais não usadas

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 10

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 11

Carta de circuito impresso

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 12

Comunicação com o PC

• Libertar-nos do ciclo “programar EPROM /experimentar / corrigir / apagar EPROM / repetir”

• Os programas a executar são escritos em assemblyno PC, onde é produzido o código objecto, que é porsua vez transferido via RS 232C para o sistema

• A transferência do código objecto pode por exemploser efectuada através da aplicação HyperTerminal(acessórios do Windows 95)

Page 4: Modelo funcional Modelo funcional (cont.)paginas.fe.up.pt/~jmf/Publicacoes/Downloads/Slides_IPSDM/... · 2002-05-14 · – Requisitos e modelo funcional de um sistema mínimo –

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 13

O monitor residente e acomunicação com o PC• Permite transferir o código objecto para execução na

NVRAM (cujo sinal de /OE resulta do AND entre ossinais /PSEN e /RD do 87C51)

• O código objecto deve estar em formato Intel Hex e oporto série do PC configurado para 9600 bps, 8 bits,sem paridade e com um stop bit

• São apenas necessárias as ligações (RxD-TxD),(TxD-RxD) e (Gnd-Gnd)

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 14

O monitor residente:Protocolo de transferência• Ao ser reinicializado, o 87C51 envia “=“ para o PC• O PC pode então enviar:

– O código de “Escape” (1BH), se pretender reinicializar osistema (que nesse caso responderá com “=“)

– O código do programa a executar

• No final da transferência, o 87C51 envia “:” para oPC, a que se segue uma indicação do tipo de erro, sealgum tiver ocorrido

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 15

Protocolo de transferência:Tipos de erros• Códigos de erro (em hexadecimal):

– 01: Caracteres não hexadecimais

– 02: Erro de formatação– 04: Código de verificação incorrecto

– 08: Não foram recebidos dados– 10: Excedeu-se a capacidade de memória

– 20: Erro na verificação dos dados em memória

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 16

Protocolo de transferência:Execução do programa• Após a recepção correcta, o 87C51 envia ao PC um

checksum que resulta da soma de todos os bytes dedados que foram recebidos, truncada para 16 bits

• O PC poderá então dar a ordem para execução docódigo, enviando a seguinte sequência de caracteres:“/<endereço>” (e.g. “/8000” para começar em 8000H)

• Se o endereço for aceite, o 87C51 enviará um “@” aoPC e iniciará a execução do programa como indicado

Page 5: Modelo funcional Modelo funcional (cont.)paginas.fe.up.pt/~jmf/Publicacoes/Downloads/Slides_IPSDM/... · 2002-05-14 · – Requisitos e modelo funcional de um sistema mínimo –

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 17

Uso da aplicaçãoHyperTerminal

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 18

Uso da aplicaçãoHyperTerminal (cont.)

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 19

Uso da aplicaçãoHyperTerminal (cont.)

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 20

Geração do código objecto

• A geração do código objecto é feita por um cross-assembler, que lê um ficheiro com o código fonte(escrito em assembly) e produz o ficheiro com ocódigo objecto (por exemplo, à instrução assemblymov 2,#5AH corresponde o código objecto 74, 5A)

• O TASM é um cross-assembler do tipo sharewareque ilustra bem as funções associadas a umaaplicação deste tipo

Page 6: Modelo funcional Modelo funcional (cont.)paginas.fe.up.pt/~jmf/Publicacoes/Downloads/Slides_IPSDM/... · 2002-05-14 · – Requisitos e modelo funcional de um sistema mínimo –

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 21

Fluxo de dados no TASM

• O TASM é um table-driven cross assembler:

TASM

.TAB

.ASM

.LST.OBJ

Ficheiro de entradaem assembly (ASCII)

Correspondênciaentre mnemónicas e

código objecto (ASCII)

Ficheiro com o código objecto(Intel Hex, binário, etc.)

Instruções emassembly e códigoobjecto (ASCII)

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 22

Formato Intel Hex (ASCII)

• :LLAAAATTDD...CC (conteúdo de cada linha)– “:” representa o início da sequência

– “LL” indica o número de bytes de dados presentes– “AAAA” representa o endereço de 16 bits que deve ser

usado para iniciar o armazenamento do código objecto

– “TT” representa o tipo de sequência (00: Dados; 01: Fim)

– “DD...” são os bytes de dados– “CC” é um código de verificação (checksum)

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 23

Geração de uma onda emdente de serra• Retomando o gerador de dente de serra, e invocando

o TASM (tasm -51 serra.asm), obtemos:0003 8000 .org 8000h0004 80000005 8000 90 00 00 inicio mov dptr,#00006 8003 E4 clr a0007 8004 F0 ciclo movx @dptr,a0008 8005 04 inc a0009 8006 80 FC sjmp ciclo0010 80080011 8008 .end0012 8008

tasm: Number of errors = 0

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 24

Geração de uma onda emdente de serra (cont.)

0003 80000004 80000005 8000 90 00 000006 8003 E40007 8004 F00008 8005 040009 8006 80 FC0010 80080011 80080012 8008

Page 7: Modelo funcional Modelo funcional (cont.)paginas.fe.up.pt/~jmf/Publicacoes/Downloads/Slides_IPSDM/... · 2002-05-14 · – Requisitos e modelo funcional de um sistema mínimo –

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 25

Geração de uma onda emdente de serra (cont.)• A forma de onda gerada produz o efeito esperado:

(considerado que o relógiodo 87C51 é de 11,0592MHz, qual seria o valoresperado para afrequência da onda emdente de serra?)

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 26

Um gerador de formas deonda• A consideração de um exemplo mais complexo irá

permitir-nos:– Consolidar os conhecimento adquiridos acerca do

microcontrolador 80C51

– Discutir as questões relacionadas com a metodologia dedesenvolvimento de aplicações

– Ilustrar algumas questões associadas com o projecto decircuitos mistos (analógicos e digitais)

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 27

Caracterização funcional

• Pretende-se a seguinte funcionalidade:– Forma de onda seleccionável (triangular, dente de serra

ascendente e dente de serra descendente)– Deve estar prevista a possibilidade de se acrescentarem

posteriormente mais formas de onda

– Frequência ajustável– Valores máximo e mínimo ajustáveis de forma

independente dentro da excursão máxima possível

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 28

Interface com o utilizador

• Pretende-se um interface com 3 teclas e 4 leds:

Formade Onda Frequência

ValorMáximo

ValorMínimo

Função + -

(teclas)

– A tecla “Função”desloca de formacircular a funçãoseleccionada (o ledaceso)

– As teclas “+” e “-” permitem incrementar / decrementar oparâmetro associado à função seleccionada (se for aforma de onda, significa passar à seguinte / anterior)

Page 8: Modelo funcional Modelo funcional (cont.)paginas.fe.up.pt/~jmf/Publicacoes/Downloads/Slides_IPSDM/... · 2002-05-14 · – Requisitos e modelo funcional de um sistema mínimo –

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 29

Condições iniciais

• Após a (re)inicialização, o gerador de formas de ondapretendido deve passar ao seguinte modo:– A função activa deve ser a de selecção de forma de onda

(aceso o led da esquerda)

– A forma de onda na saída deve ser a triangular– A frequência deve estar no meio da escala

– O valor máximo deve ser de +2,5 V– O valor mínimo deve ser de -2,5 V

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 30

Exemplo de uso

• Serra ascendente, mantendo a frequência inicial ecom limites de +5 V e 0 (após ligar a alimentação):– Carregar em “+” até aparecer a serra ascendente

– Carregar em “Função” duas vezes, para seleccionar oajuste do valor máximo (aceso o led “Valor máximo”)

– Carregar em “+” até que o valor máximo seja de +5 V

– Carregar em “Função” uma vez (passa ao valor mínimo)– Carregar em “+” até que o valor mínimo seja de 0 V

Formade Onda Frequência

ValorMáximo

ValorMínimo

Função + -

(teclas)

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 31

Atribuição de recursos

• Analisando os recursos disponíveis no nosso sistemamínimo, podemos fazer a seguinte atribuição:– (saídas digitais e respectivos leds) P1.0: Forma de onda;

P1.1: Frequência; P1.2: Valor máximo; P1.3: Valor mínimo

– (entradas digitais e respectivas teclas) P1.4: TeclaFunção; P1.5: Tecla +; P1.6: Tecla -

– Havendo apenas uma saída analógica, a atribuição desterecurso está feita por natureza

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 32

Atribuição de recursos(cont.)• Resulta deste

modo a seguintedisposição:

AlimentaçãoSaída analógica

87C51

NVRAM

PortasE

PortasNÃO

Registo

Registo

Conv.D/A

AmpOpscristal

Teclas

Valor Mínimo

leds

Valor Máximo

Frequência

Formade onda

“Função”

“+” “-“

Page 9: Modelo funcional Modelo funcional (cont.)paginas.fe.up.pt/~jmf/Publicacoes/Downloads/Slides_IPSDM/... · 2002-05-14 · – Requisitos e modelo funcional de um sistema mínimo –

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 33

Organização das rotinas adesenvolver• Modelo de

organização:

Inicialização

Formade onda

triangular

Formade ondaem serra

ascendente

Formade ondaem serra

descendente

Atraso

Gestão

Atraso

Gestão

Atraso

Gestão

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 34

Organização da subrotinade gestão do sistema

Teclapremida?

Leiturado

teclado

Tecla“Função”?

Tecla“+”?

Acçõesda

tecla “+”

Retorna Acçõesda

tecla “-”

Retorna

Acçõesda tecla

“Função”

Retorna

S

Retorna

N

S

N

NS

Inicialização

Formade onda

triangular

Formade ondaem serra

ascendente

Formade ondaem serra

descendente

Atraso

Gestão

Atraso

Gestão

Atraso

Gestão

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 35

Exemplo de funcionamento

• Inicialização e passagem à forma de onda seguinte:

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 36

Gerador de formas de onda:Implementação alternativa• Nesta implementação alternativa, introduziremos as

seguintes diferenças:– Pretende-se o menor número possível de componentes

– Controlo remoto (via RS-232C, em vez de ser através deum painel frontal)

– Usaremos as interrupções do T/C 0 para determinar oritmo de actualização da saída do conversor D/A (e porconseguinte a frequência das formas de onda geradas)

Page 10: Modelo funcional Modelo funcional (cont.)paginas.fe.up.pt/~jmf/Publicacoes/Downloads/Slides_IPSDM/... · 2002-05-14 · – Requisitos e modelo funcional de um sistema mínimo –

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 37

Diagramaesquemático

<Doc> 1.0

JMF - gerador programável de formas de onda (Nov. 2001)

A

1 1Tuesday, November 20, 2001

Title

Size Document Number Rev

Date: Sheet of

+5V

-12V

+5V

+12V

-12V

+5V

-12V

+5V

+5V

MAX232

13

8

11

10

1

3

4

52

6

12

9

14

7

R1IN

R2I

N

T1IN T2I

N

C+

C1-

C2+

C2-V+

V-

R1OUT

R2O

UT

T1OUT

T2O

UT

AT89C51

9

18 19

2930

31

12345678

2122232425262728

1011121314151617

3938373635343332

RST

XT

AL2

XT

AL1

PSENALE/PROG

EA/VPP

P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7

P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15

P3.0/RXDP3.1/TXDP3.2/INTOP3.3/INT1P3.4/TOP3.5/T1P3.6/WRP3.7/RD

P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7

DAC08

4

16

14

1512111098765

13 3

1

2

IOUT

CO

MP

VREF+

VREF-LSB/B0B1B2B3B4B5B6MSB/B7

V+ V-

VLC

/IOUT

cabo RS232C

TxDRxDGND

123

saída analógica

1

2

botão de reset

100nF

2K5

+

-

1/2 TL082

3

21

+

-

1/2 TL082

5

67

84

100nF

100nF

10K

100nF

100nF

100nF100nF

2K5

4K7

11,0592MHz

33 pF33pF10K

1uF

0K1

1N4148

10K+

+

+ +

+

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 38

Código do novo gerador deformas de onda• Uma vez que o controlo de funcionamento tem agora

lugar via RS-232C e a actualização da saída doconversor D/A é cadenciada pelo T/C 0, temos asseguintes rotinas para escrever:– Inicialização do sistema– Atendimento das interrupções da porta série

– Atendimento das interrupções do T/C 0

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 39

Rotina de inicialização dosistemaInicialização de parâmetros:

- Valor máximo: 75%- Valor mínimo: 25%- Forma de onda: triangular- Declive inicial: ascendente

Inicialização do microcontrolador:- Periférico série: modo 1, recepção habilitada- T/C 0 e T/C 1: T/C 0 – modo 2, ints habilitadas, TH0 a meio da escala; T/C 1 – modo 2, ints inibidas, TH1 para 9.600 bps

- Interrupções: Habilita PS e T/C 0, com prioridade mais elevada para a PS

- Activa dos dois T/C

Espera pelos pedidos de interrupção

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 40

Interrupções da porta série(chegou um carácter)

Carácter “+”?

Acção “Forma de onda”?

Acção “Frequência”?

Acção “Valor máximo”?

Acção “Valor mínimo”?

Carácter “-”?

Acção “Forma de onda”?

Acção “Frequência”?

Acção “Valor máximo”?

Acção “Valor mínimo”?

Guarda código ASCII em R6

Dec. código da forma de onda

Dec. valor de TH0

Dec. valor máximo

Dec. valor mínimo

Inc. código da forma de onda

Inc. valor de TH0

Inc. valor máximo

Inc. valor mínimo

RETIRETI RETIRETI RETI

RETI RETIRETI RETI

RETI

0023H

Limpa RI

N

N

N

N

NN

N

N

N

N

S

S S S S

S S S S

S

Page 11: Modelo funcional Modelo funcional (cont.)paginas.fe.up.pt/~jmf/Publicacoes/Downloads/Slides_IPSDM/... · 2002-05-14 · – Requisitos e modelo funcional de um sistema mínimo –

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 41

Interrupções do T/C 0(actualiza a saída do D/A)

Forma de onda triangular?

RETI

000BH

Se não atingiu o máximo, incrementa; caso contrário, passa para descendente e decrementa

N

S

Forma de onda serra ascendente?

Forma de onda serra descendente?

Declive ascendente?

N N

Se não atingiu o mínimo, decrementa; caso contrário, passa para ascendente e incrementa

S

N

Se não atingiu o máximo, incrementa; caso contrário, passa para o valor mínimo

Se não atingiu o mínimo, decrementa; caso contrário, passa para o valor máximo

S S

RETI

RETI RETI

Aplica nível DC a meio da escala

RETI

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 42

Configuração doHyperTerminal

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 43

Controlo de uma plataformamóvel• Pretende-se neste caso implementar um interpretador

para a linguagem (pseudo-) LOGO que foi descrita nocapítulo 6 do livro recomendado– No cap. 6 é apresentado um microprocessador dedicado

para implementar esta linguagem, mas agora queremosusar um AT89C51

– A escrita do código LOGO deve ser feita no PC e orespectivo código objecto enviado via RS232C

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 44

+ Bateria -

AT89C51 + ...

Detecção de obstáculos

Sinalização de problemas

(roda giratória)

motor motor

RS232C

(roda) (roda)

A plataforma móvel

Page 12: Modelo funcional Modelo funcional (cont.)paginas.fe.up.pt/~jmf/Publicacoes/Downloads/Slides_IPSDM/... · 2002-05-14 · – Requisitos e modelo funcional de um sistema mínimo –

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 45

O accionamento commotores passo-a-passo

0101

1001

1010

0110

…………

ABCD

P2.7 … P2.0

0 1 0 1 0 1 0 11 0 0 1 1 0 0 11 0 1 0 1 0 1 00 1 1 0 0 1 1 0

Tabela em memória para o movimento para a frente:

Formas de onda nas quatro fases (movimento para a frente):

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 46

Controlo domovimento

; opcode das instruções LOGO:front equ 66h ; fback equ 62h ; bleft equ 6Ch ; lright equ 72h ; rsetout0 equ 20h ; espaçosetout1 equ 21h ; !setout2 equ 22h ; "setout3 equ 23h ; #rstout0 equ 30h ; 0rstout1 equ 31h ; 1rstout2 equ 32h ; 2rstout3 equ 33h ; 3jpin0 equ 70h ; pjpin1 equ 71h ; qjpin2 equ 72h ; rjpin3 equ 73h ; sjp equ 6Ah ; jhalt1 equ 68h ; hhalt2 equ 68h ; h

• As instruções existentesdividem-se por quatrogrupos principais:– Movimento

– Actuação das saídas– Salto– Paragem

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 47

Rotinas existentes• Existem quatro rotinas principais:

– Inicialização do sistema – inicio.a51– Interpretador que executa o código LOGO – interpr.a51– Atendimento das interrupções pedidas pela porta série –

int_ps.a51– Atendimento das interrupções pedidas pelo T/C 0 –

int_tc0.a51 (neste caso o atendimento não é automático,sendo monitorizado o valor da flag TF0 e executada arotina de atendimento através de uma instrução CALL)

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 48

Rotina inicio.a51(inicialização do sistema)• Após a inicialização dos registos, dos contadores, da

porta e do sistema de interrupções, limita-se aesperar que cheguem caracteres via RS232C

; Uso dos registos:; > R0- apontador para a tabela LOGO na recepção RS232C (armazenar); > R1- apontador para a tabela LOGO no execução (para ler a instrução); > R2- não é usado nesta implementação; > R3- Unidades de deslocamento (UD) requeridas para o movimento; > R4- factor multiplicativo (factm) entre cada UD e o número de passos; > R5- não é usado nesta implementação; > R6- usado na leitura das tabelas de passo (contém o offset); > R7- usado na leitura das tabelas de passo (contém o índice)

Page 13: Modelo funcional Modelo funcional (cont.)paginas.fe.up.pt/~jmf/Publicacoes/Downloads/Slides_IPSDM/... · 2002-05-14 · – Requisitos e modelo funcional de um sistema mínimo –

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 49

Rotina interpr.a51(interpretador LOGO)• O código LOGO (designado por “tabela LOGO”) está

armazenado entre 30H (ENDINI) e 7FH (ENDFIN)• A execução deve ser suspensa se for atingido o

endereço final• Qualquer código ilegal deve ser tratado como NOP

(“no operation”)

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 50

Rotina int_ps.a51(atendimento int. porta série)• Recebe o código LOGO e a ordem para o executar• HALT ocupa dois bytes que só surgem neste caso

(serve também para marcar o fim da recepção)• À chegada de HALT, deve acontecer o seguinte:

– Reinicializa R0 (apontador para a tab. LOGO na recepção)e R1 (apontador para a tab. LOGO na execução)

– Inicia a interpretação (execução) do código LOGO recebido

• Se atingir o ENDFIN deixa de incrementar R0

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 51

Rotina int_tc0.a51(atendimento int. T/C 0)• Esta rotina é executada em resultado de uma

instrução CALL, quando se detecta que TF0 = 1• O T/C 0 é que permite cadenciar a sequência de

passos (os motores são controlados pela porta 2)• As combinações de passo estão armazenadas nas

“tabelas de passo” (existe uma tabela para cada tipode movimento: frente, trás, esquerda, direita)

• Ao terminar o movimento o T/C 0 é desactivadoIntrodução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 52

KEIL: Resultado produzidoL51 LINKER/LOCATOR V3.62 06/12/01 22:52:02 PAGE 1

(...)INPUT MODULES INCLUDED:C:\JMF\PUBLIC~1\MP\DIVERSOS\LOGO\INICIO.OBJ (INICIO)C:\JMF\PUBLIC~1\MP\DIVERSOS\LOGO\INT_TC0.OBJ (INT_TC0)C:\JMF\PUBLIC~1\MP\DIVERSOS\LOGO\INT_PS.OBJ (INT_PS)C:\JMF\PUBLIC~1\MP\DIVERSOS\LOGO\INTERPR.OBJ (INTERPR)

LINK MAP OF MODULE: C:\JMF\PUBLIC~1\MP\DIVERSOS\LOGO\LOGO (INICIO)

TYPE BASE LENGTH RELOCATION SEGMENT NAME-----------------------------------------------------* * * * * * * D A T A M E M O R Y * * * * * * *REG 0000H 0008H ABSOLUTE "REG BANK 0"

* * * * * * * C O D E M E M O R Y * * * * * * *CODE 0000H 0003H ABSOLUTE

0003H 0008H *** GAP ***CODE 000BH 0003H ABSOLUTE

000EH 0015H *** GAP ***CODE 0023H 0024H ABSOLUTE

0047H 0009H *** GAP ***CODE 0050H 0024H ABSOLUTE

0074H 008CH *** GAP ***CODE 0100H 0021H ABSOLUTE

0121H 001FH *** GAP ***CODE 0140H 0115H ABSOLUTE

******************************************************************************>>* RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT; USED: 0184H BYTE (18%) *>>******************************************************************************>>LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S)

(JMP INICIO)(JMP INT_TC0)INT_PS.A51INT_TC0.A51INICIO.A51INTERPR.A51

Page 14: Modelo funcional Modelo funcional (cont.)paginas.fe.up.pt/~jmf/Publicacoes/Downloads/Slides_IPSDM/... · 2002-05-14 · – Requisitos e modelo funcional de um sistema mínimo –

Introdução ao Projecto com Sistemas Digitais e MicrocontroladoresPrática laboratorial com o 80C51 - 53

Conclusão

• Objectivo principal do capítulo: Proporcionar osrecursos mínimos que facilitem a passagem à práticalaboratorial com o 87C51

• Pistas para a continuação do estudo:– Aprofundar o conceito de monitor residente

– Sistemas de desenvolvimento