Click here to load reader

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 –

  • View
    215

  • Download
    0

Embed Size (px)

Text of Modelo funcional Modelo funcional...

  • Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 1

    Prtica laboratorial com o80C51 Organizao:

    Requisitos e modelo funcional de um sistema mnimo

    Da especificao prtica de projecto Comunicao com o PC

    Um gerador de formas de onda

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 2

    Requisitos de um sistemamnimo Considerando que o sistema mnimo pretendido tem

    por objectivo principal dar apoio prtica laboratorial,os requisitos de partida foram os seguintes: Simplicidade, para permitir uma compreenso em

    pormenor de todos os aspectos

    Disponibilidade de entradas e de sadas, para permitiralguma variedade nos trabalhos prticos a realizar

    Empregar componentes acessveis e com baixo custo

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 3

    Modelo funcional

    Carga do programa a executar: via RS 232C, a partirde um PC onde gerado o cdigo objecto

    Entrada / Sada: Analgica, entre -5 V e +5 V, a que correspondem a

    escrita de 00 e FFH, respectivamente, no conversor D/A(relao linear entre os cdigos escritos no D/A e o valorda sada)

    Quatro entradas digitais e quatro sadas digitais

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 4

    Modelo funcional (cont.)

    A memria externa resume-se a uma NVRAM (MP para o cdigo recebido via RS 232C e MD),estando o monitor residente na MP interna do C

    Alocao de endereos:/PSEN /RD /WR A15 Acesso seleccionado

    0 1 1 1 Memria externa (leitura: cdigo de instruo)

    1 0 1 1 Memria externa (leitura: dados)

    1 1 0 1 Memria externa (escrita)

    1 1 0 0 Sada analgica

    (ender. 90H, linhas P1.0 a P1.3) Sadas digitais (porto 1)

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

  • Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 5

    Modelo funcional (cont.)

    Repare-se que o modelo funcional descrito nospermite desde j a escrita de cdigo:

    (qual o efeito deste segmento de cdigo?)

    .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

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 6

    Da especificao prticade projecto A passagem prtica de projecto faz-se atravs do

    seguinte conjunto de passos: Definio do diagrama de blocos da soluo global

    Realizao do bloco descodificador do sistema Criao do diagrama esquemtico

    Realizao da carta de circuito impresso

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 7

    Diagrama de blocos

    87C51Converso de nvel

    Portosrie

    P1

    AD[0:7]

    D[0:7]

    A[0:7]

    A[8:15]

    A[15]/PSEN

    /RD/WR

    Descodificador

    NVRAMRegisto

    Entrada / sada digital(4 entradas e 4 sadas)

    /mem_rd /mem_cs

    da_cs

    Bloco do conversor D/A

    Sadaanalgica

    Comunicaovia RS-232C ALE

    AmpOps

    Registo econv. D/A

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica 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

    Especificao tipo-PALASM:

    (seria desejvel a sua implementao 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

  • Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 9

    Diagrama esquemtico

    (apresentado na transparncia seguinte) Reparar emparticular nos seguintes aspectos: Filtragem nas entradas digitais

    Forma como est implementada a comunicao RS 232C Implementao do bloco descodificador

    Tratamento da sada do conversor D/A Ligao das entradas digitais no usadas

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 10

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 11

    Carta de circuito impresso

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 12

    Comunicao com o PC

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

    Os programas a executar so escritos em assemblyno PC, onde produzido o cdigo objecto, que porsua vez transferido via RS 232C para o sistema

    A transferncia do cdigo objecto pode por exemploser efectuada atravs da aplicao HyperTerminal(acessrios do Windows 95)

  • Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 13

    O monitor residente e acomunicao com o PC Permite transferir o cdigo objecto para execuo na

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

    O cdigo objecto deve estar em formato Intel Hex e oporto srie do PC configurado para 9600 bps, 8 bits,sem paridade e com um stop bit

    So apenas necessrias as ligaes (RxD-TxD),(TxD-RxD) e (Gnd-Gnd)

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 14

    O monitor residente:Protocolo de transferncia Ao ser reinicializado, o 87C51 envia = para o PC O PC pode ento enviar:

    O cdigo de Escape (1BH), se pretender reinicializar osistema (que nesse caso responder com =)

    O cdigo do programa a executar

    No final da transferncia, o 87C51 envia : para oPC, a que se segue uma indicao do tipo de erro, sealgum tiver ocorrido

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 15

    Protocolo de transferncia:Tipos de erros Cdigos de erro (em hexadecimal):

    01: Caracteres no hexadecimais 02: Erro de formatao 04: Cdigo de verificao incorrecto 08: No foram recebidos dados 10: Excedeu-se a capacidade de memria 20: Erro na verificao dos dados em memria

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 16

    Protocolo de transferncia:Execuo do programa Aps a recepo 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 ento dar a ordem para execuo docdigo, enviando a seguinte sequncia de caracteres:/ (e.g. /8000 para comear em 8000H)

    Se o endereo for aceite, o 87C51 enviar um @ aoPC e iniciar a execuo do programa como indicado

  • Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 17

    Uso da aplicaoHyperTerminal

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 18

    Uso da aplicaoHyperTerminal (cont.)

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 19

    Uso da aplicaoHyperTerminal (cont.)

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 20

    Gerao do cdigo objecto

    A gerao do cdigo objecto feita por um cross-assembler, que l um ficheiro com o cdigo fonte(escrito em assembly) e produz o ficheiro com ocdigo objecto (por exemplo, instruo assemblymov 2,#5AH corresponde o cdigo objecto 74, 5A)

    O TASM um cross-assembler do tipo sharewareque ilustra bem as funes associadas a umaaplicao deste tipo

  • Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica 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)

    Correspondnciaentre mnemnicas e

    cdigo objecto (ASCII)

    Ficheiro com o cdigo objecto(Intel Hex, binrio, etc.)

    Instrues emassembly e cdigoobjecto (ASCII)

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 22

    Formato Intel Hex (ASCII)

    :LLAAAATTDD...CC (contedo de cada linha) : representa o incio da sequncia LL indica o nmero de bytes de dados presentes AAAA representa o endereo de 16 bits que deve ser

    usado para iniciar o armazenamento do cdigo objecto

    TT representa o tipo de sequncia (00: Dados; 01: Fim) DD... so os bytes de dados CC um cdigo de verificao (checksum)

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 23

    Gerao 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

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 24

    Gerao 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

  • Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 25

    Gerao de uma onda emdente de serra (cont.) A forma de onda gerada produz o efeito esperado:

    (considerado que o relgiodo 87C51 de 11,0592MHz, qual seria o valoresperado para afrequncia da onda emdente de serra?)

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 26

    Um gerador de formas deonda A considerao de um exemplo mais complexo ir

    permitir-nos: Consolidar os conhecimento adquiridos acerca do

    microcontrolador 80C51

    Discutir as questes relacionadas com a metodologia dedesenvolvimento de aplicaes

    Ilustrar algumas questes associadas com o projecto decircuitos mistos (analgicos e digitais)

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 27

    Caracterizao funcional

    Pretende-se a seguinte funcionalidade: Forma de onda seleccionvel (triangular, dente de serra

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

    posteriormente mais formas de onda

    Frequncia ajustvel Valores mximo e mnimo ajustveis de forma

    independente dentro da excurso mxima possvel

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 28

    Interface com o utilizador

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

    Formade Onda Frequncia

    ValorMximo

    ValorMnimo

    Funo + -

    (teclas)

    A tecla Funodesloca de formacircular a funoseleccionada (o ledaceso)

    As teclas + e - permitem incrementar / decrementar oparmetro associado funo seleccionada (se for aforma de onda, significa passar seguinte / anterior)

  • Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 29

    Condies iniciais

    Aps a (re)inicializao, o gerador de formas de ondapretendido deve passar ao seguinte modo: A funo activa deve ser a de seleco de forma de onda

    (aceso o led da esquerda)

    A forma de onda na sada deve ser a triangular A frequncia deve estar no meio da escala

    O valor mximo deve ser de +2,5 V O valor mnimo deve ser de -2,5 V

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 30

    Exemplo de uso

    Serra ascendente, mantendo a frequncia inicial ecom limites de +5 V e 0 (aps ligar a alimentao): Carregar em + at aparecer a serra ascendente

    Carregar em Funo duas vezes, para seleccionar oajuste do valor mximo (aceso o led Valor mximo)

    Carregar em + at que o valor mximo seja de +5 V

    Carregar em Funo uma vez (passa ao valor mnimo) Carregar em + at que o valor mnimo seja de 0 V

    Formade Onda Frequncia

    ValorMximo

    ValorMnimo

    Funo + -

    (teclas)

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 31

    Atribuio de recursos

    Analisando os recursos disponveis no nosso sistemamnimo, podemos fazer a seguinte atribuio: (sadas digitais e respectivos leds) P1.0: Forma de onda;

    P1.1: Frequncia; P1.2: Valor mximo; P1.3: Valor mnimo

    (entradas digitais e respectivas teclas) P1.4: TeclaFuno; P1.5: Tecla +; P1.6: Tecla -

    Havendo apenas uma sada analgica, a atribuio desterecurso est feita por natureza

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 32

    Atribuio de recursos(cont.) Resulta deste

    modo a seguintedisposio:

    AlimentaoSada analgica

    87C51

    NVRAM

    PortasE

    PortasNO

    Registo

    Registo

    Conv.D/A

    AmpOpscristal

    Teclas

    Valor Mnimo

    leds

    Valor Mximo

    Frequncia

    Formade onda

    Funo

    + -

  • Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 33

    Organizao das rotinas adesenvolver Modelo de

    organizao:

    Inicializao

    Formade onda

    triangular

    Formade ondaem serra

    ascendente

    Formade ondaem serra

    descendente

    Atraso

    Gesto

    Atraso

    Gesto

    Atraso

    Gesto

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 34

    Organizao da subrotinade gesto do sistema

    Teclapremida?

    Leiturado

    teclado

    TeclaFuno?

    Tecla+?

    Acesda

    tecla +

    Retorna Acesda

    tecla -

    Retorna

    Acesda tecla

    Funo

    Retorna

    S

    Retorna

    N

    S

    N

    NS

    Inicializao

    Formade onda

    triangular

    Formade ondaem serra

    ascendente

    Formade ondaem serra

    descendente

    Atraso

    Gesto

    Atraso

    Gesto

    Atraso

    Gesto

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 35

    Exemplo de funcionamento

    Inicializao e passagem forma de onda seguinte:

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 36

    Gerador de formas de onda:Implementao alternativa Nesta implementao alternativa, introduziremos as

    seguintes diferenas: Pretende-se o menor nmero possvel de componentes

    Controlo remoto (via RS-232C, em vez de ser atravs deum painel frontal)

    Usaremos as interrupes do T/C 0 para determinar oritmo de actualizao da sada do conversor D/A (e porconseguinte a frequncia das formas de onda geradas)

  • Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 37

    Diagramaesquemtico

    1.0

    JMF - gerador programvel 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

    sada analgica

    1

    2

    boto 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+

    +

    + +

    +

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 38

    Cdigo do novo gerador deformas de onda Uma vez que o controlo de funcionamento tem agora

    lugar via RS-232C e a actualizao da sada doconversor D/A cadenciada pelo T/C 0, temos asseguintes rotinas para escrever: Inicializao do sistema Atendimento das interrupes da porta srie

    Atendimento das interrupes do T/C 0

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 39

    Rotina de inicializao dosistemaInicializao de parmetros:

    - Valor mximo: 75%- Valor mnimo: 25%- Forma de onda: triangular- Declive inicial: ascendente

    Inicializao do microcontrolador:- Perifrico srie: modo 1, recepo 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

    - Interrupes: Habilita PS e T/C 0, com prioridade mais elevada para a PS

    - Activa dos dois T/C

    Espera pelos pedidos de interrupo

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 40

    Interrupes da porta srie(chegou um carcter)

    Carcter +?

    Aco Forma de onda?

    Aco Frequncia?

    Aco Valor mximo?

    Aco Valor mnimo?

    Carcter -?

    Aco Forma de onda?

    Aco Frequncia?

    Aco Valor mximo?

    Aco Valor mnimo?

    Guarda cdigo ASCII em R6

    Dec. cdigo da forma de onda

    Dec. valor de TH0

    Dec. valor mximo

    Dec. valor mnimo

    Inc. cdigo da forma de onda

    Inc. valor de TH0

    Inc. valor mximo

    Inc. valor mnimo

    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

  • Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 41

    Interrupes do T/C 0(actualiza a sada do D/A)

    Forma de onda triangular?

    RETI

    000BH

    Se no atingiu o mximo, incrementa; caso contrrio, passa para descendente e decrementa

    N

    S

    Forma de onda serra ascendente?

    Forma de onda serra descendente?

    Declive ascendente?

    N N

    Se no atingiu o mnimo, decrementa; caso contrrio, passa para ascendente e incrementa

    S

    N

    Se no atingiu o mximo, incrementa; caso contrrio, passa para o valor mnimo

    Se no atingiu o mnimo, decrementa; caso contrrio, passa para o valor mximo

    S S

    RETI

    RETI RETI

    Aplica nvel DC a meio da escala

    RETI

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 42

    Configurao doHyperTerminal

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 43

    Controlo de uma plataformamvel Pretende-se neste caso implementar um interpretador

    para a linguagem (pseudo-) LOGO que foi descrita nocaptulo 6 do livro recomendado No cap. 6 apresentado um microprocessador dedicado

    para implementar esta linguagem, mas agora queremosusar um AT89C51

    A escrita do cdigo LOGO deve ser feita no PC e orespectivo cdigo objecto enviado via RS232C

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 44

    + Bateria -

    AT89C51 + ...

    Deteco de obstculos

    Sinalizao de problemas

    (roda giratria)

    motor motor

    RS232C

    (roda) (roda)

    A plataforma mvel

  • Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica 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 memria para o movimento para a frente:

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

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 46

    Controlo domovimento

    ; opcode das instrues LOGO:front equ 66h ; fback equ 62h ; bleft equ 6Ch ; lright equ 72h ; rsetout0 equ 20h ; espaosetout1 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 instrues existentesdividem-se por quatrogrupos principais: Movimento

    Actuao das sadas Salto Paragem

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 47

    Rotinas existentes Existem quatro rotinas principais:

    Inicializao do sistema inicio.a51 Interpretador que executa o cdigo LOGO interpr.a51 Atendimento das interrupes pedidas pela porta srie

    int_ps.a51 Atendimento das interrupes pedidas pelo T/C 0

    int_tc0.a51 (neste caso o atendimento no automtico,sendo monitorizado o valor da flag TF0 e executada arotina de atendimento atravs de uma instruo CALL)

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 48

    Rotina inicio.a51(inicializao do sistema) Aps a inicializao dos registos, dos contadores, da

    porta e do sistema de interrupes, limita-se aesperar que cheguem caracteres via RS232C

    ; Uso dos registos:; > R0- apontador para a tabela LOGO na recepo RS232C (armazenar); > R1- apontador para a tabela LOGO no execuo (para ler a instruo); > R2- no usado nesta implementao; > R3- Unidades de deslocamento (UD) requeridas para o movimento; > R4- factor multiplicativo (factm) entre cada UD e o nmero de passos; > R5- no usado nesta implementao; > R6- usado na leitura das tabelas de passo (contm o offset); > R7- usado na leitura das tabelas de passo (contm o ndice)

  • Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 49

    Rotina interpr.a51(interpretador LOGO) O cdigo LOGO (designado por tabela LOGO) est

    armazenado entre 30H (ENDINI) e 7FH (ENDFIN) A execuo deve ser suspensa se for atingido o

    endereo final Qualquer cdigo ilegal deve ser tratado como NOP

    (no operation)

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 50

    Rotina int_ps.a51(atendimento int. porta srie) Recebe o cdigo LOGO e a ordem para o executar HALT ocupa dois bytes que s surgem neste caso

    (serve tambm para marcar o fim da recepo) chegada de HALT, deve acontecer o seguinte:

    Reinicializa R0 (apontador para a tab. LOGO na recepo)e R1 (apontador para a tab. LOGO na execuo)

    Inicia a interpretao (execuo) do cdigo LOGO recebido

    Se atingir o ENDFIN deixa de incrementar R0

    Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 51

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

    instruo CALL, quando se detecta que TF0 = 1 O T/C 0 que permite cadenciar a sequncia de

    passos (os motores so controlados pela porta 2) As combinaes de passo esto armazenadas nas

    tabelas de passo (existe uma tabela para cada tipode movimento: frente, trs, esquerda, direita)

    Ao terminar o movimento o T/C 0 desactivadoIntroduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica 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

  • Introduo ao Projecto com Sistemas Digitais e MicrocontroladoresPrtica laboratorial com o 80C51 - 53

    Concluso

    Objectivo principal do captulo: Proporcionar osrecursos mnimos que facilitem a passagem prticalaboratorial com o 87C51

    Pistas para a continuao do estudo: Aprofundar o conceito de monitor residente

    Sistemas de desenvolvimento