Micro Control Adores Hc 08

download Micro Control Adores Hc 08

of 24

Transcript of Micro Control Adores Hc 08

  • 8/19/2019 Micro Control Adores Hc 08

    1/61

     

    Manual Básico de Operação do

    Microcontrolador MC68HCJK3 e

    MC68HCJK

    Disciplina: Microcontroladores “A”Professor Adjunto: Alexandre Campos

    ([email protected])

    Mestrando: Alexandre Luís Michel 

  • 8/19/2019 Micro Control Adores Hc 08

    2/61

      2 

    I.  INTRODUÇÃO

     No passado as tecnologias existentes no mercado obrigavam a pequenos e médio industriais

    investir quantia razoável de dinheiro em equipamentos adicionais ao microcontrolador, como

    apagadores ultravioleta, programadores e em alguns casos softwares que permitisse editar,compilar, simular, realizar conexões e programa-los. Os novos microcontroladores e ferramentas de

    desenvolvimento disponíveis para os usuários de microcontroladores de 8 bits da Motorola possuem

    todas estas facilidades mediante um programa interno de fábrica, que permite começar projetos de

    forma muito simples, rápida e sem nenhum custo adicional.

    II.  BREVE DESCRIÇÃO DO MICROCONTROLADOR MC68HC908JK3/JK1

    O microcontrolador MC68HC909JK3 e todos os membros da família HC08 da Motorola,caracterizam-se por seu baixo custo e alto desempenho. Eles utilizam a unidade de processamento

    denominada CPU08 e estão disponíveis em diversas variedades de apresentação (20,28 e 40 pinos)

    e em diversos tamanhos de memória. (1.5K, 4K e 32K). Dentro das principais características destes

    microcontroladores é de possuírem memória flash (apagamento e gravação eletricamente), canais de

    conversores analógico/digital (ADC). Na Tab 1 podem ser observadas as características mais

    importantes da CPU08 e na Tab 2 as características do microcontrolador MC68HC908JK3

    (simplificado para JK3).

    Tab 1. Características da cpu08

    Características da CPU08 

    Conjunto de instruções amplo com vários modos de endereçamento

    Instruções de transferência de Memória para Memória

    Instrução de Multiplicação rápida 8x8

    Instrução de Divisão rápida 16/8

    Instruções de BCD (Binary Coded Decimal)

    Fácil suporte de linguagens de alto nível como C

  • 8/19/2019 Micro Control Adores Hc 08

    3/61

      3 

    Tab 2. Características do MC68HC908JK3

    Características da JK3 

    CPU08 de 8 bits

    Freqüência de operação interna de 8 MHz

    4K Bytes de memória de programa (FLASH)

    128 bytes de memória RAM

    12 canais de conversor analógico-digital (8 bits)

    15 Entradas/Saídas

    2 temporizadores (timers) de 16 bits (saída por comparação e/ou captura de entrada)

    Versões HC (cristal) e HRC (resistor e capacitor)

    Modos de baixo consumo (Stop e Wait)Watchdog (COP)

    8 fontes de interrupção (por vetores)

    4 LED drives

    III.  DESCRIÇÃO DOS PINOS DO JK3

     Na Fig 1 pode ser observado a distribuição dos pinos do microcontrolador JK3 e na Tab 3 as

    funções dos mesmos.

    Fig 1. pinagem do microcontrolador

  • 8/19/2019 Micro Control Adores Hc 08

    4/61

      4 

    Tab 3. pinagem do JK3

    Nome do Pino Descrição Entrada/Saída Nível de Tensão

    VDD Alimentação Positiva Entrada 5 V ou 3V

    VSS Terra Saída 0V

    RST Reset (ativo baixo) Entrada VDD

    IRQ1

    •  Interrupção Externa

    • 

    Define modo de inicialização

    (programação ou aplicação)

    Entrada VDD ou VHI

    OSC1 Entrada do Oscilador Entrada Analógico

    OSC2 Saída do Oscilador Saída Analógica

    PTB (0:7)

    •  8 Portas I/O de 8 bits

    • 

    8 Entradas analógicas do ADC

    (0:7)

    Entrada/Saída

    Entrada

    VDD

    Analógica

    PTD (2:7)

    •  6 Portas I/O de 8 bits

    •  PTD (3:2) 2 Entradas analógicas

    do ADC (8:9)

    •  PTD (4:5) 2 Pinos do Timer

    •  PTD (6:7) 2 saídas em coletor

    aberto (25 mA) 

    Entrada/Saída

    Entrada

    Entrada/Saída

    Saída

    VDD

    Analógica

    VDD

    VDD

    IV.  ARQUITETURA INTERNA DO JK3

     Na Fig 2 pode-se visualizar um diagrama interno do microcontrolador e na Fig 3 são mostrados

    os registradores internos da CPU08 mediantes os quais se processam as instruções, as operações e

    armazenam-se os resultados. A função de cada um deles será descrita a continuação.

  • 8/19/2019 Micro Control Adores Hc 08

    5/61

      5

     Fig 2. Diagrama interno do Microcontrolador

    Acumulador (A):  É um registrador de 8 bits de propósito geral usado nas operações lógicas e

    aritméticas

    Index Register (H:X):  É um registrador de 16 bits utilizado como apontador no modo de

    direcionamento indexado.

    Program counter (PC): É um registrador de 16 bits que contem o endereço da próxima instrução.

    Apontador de Pilha (SP): É um registrado de 16 bits que contem o endereço de posição disponível

    na pilha.

    Conditon coder ou registrador de flags (CCR):  É um registrador de 8 bits que contém o bit de

    mascaramento das interrupções e outras 5 flags de estado, as quais indicam certas condições

    originadas por instruções previamente executadas (por exemplo uma operação executada resulta um

    valor negativo, então será setado um bit deste registrador para indicar o resultado negativo).

  • 8/19/2019 Micro Control Adores Hc 08

    6/61

      6

     Fig 3. Registradores internos da CPU08

    V.  MAPA DE MEMÓRIA

     Na Fig 4 é mostrado o mapa de memória completo do JK3, o qual é composto por:

     64 bytes de Registradores I/O endereçado de $0000 a $003F (ver item VI).

     128 bytes de memória RAM endereçado de $0080 a $00FF.

     4096 byte de memória FLASH para o JK3 endereçado de $EC00 a $FBFF ou 1536 bytes para o

    JK1 (ver item VII).

     Registradores I/O adicionais (ver item VIII).

     960 bytes do Monitor ROM endereçado de $FC00 a $FDFF e $FE10 a FFCF (ver item IX).

     48 bytes para uso dos vetores de interrupção (ver item X).

  • 8/19/2019 Micro Control Adores Hc 08

    7/61

      7

     Fig 4. Mapa da memória

  • 8/19/2019 Micro Control Adores Hc 08

    8/61

      8  No mapa de memória se encontram os endereços dos registradores internos, a posição que

    ocupam na RAM e a parte designada ao programa do usuário. De igual maneira, se observa uma

    zona na qual se concentram armazenado o programa de fabrica (Monitor ROM) pelo qual é

     permitido fazer simulações, debug e programações no microcontrolador. Na região mais alta da

    memória se encontram os vetores de interrupção.

    VI.  REGISTRADORES I/O DE CONTROLE, STATUS E DADOS.

    Estes registradores controlam as diversas funções a serem executadas pelo microcontrolador.

    Estes registradores são usados para configurações de funções, para controlar o estado de alguma

    operação executada ou mesmo para o armazenamento temporário de um valor gerado por alguma

    instrução.

    Estes registradores como pode ser visto nas Fig 5, Fig 6, Fig 7, Fig 8 e Fig 9, se encontram no

    endereço de memória de $0000 a $003F, com exceção de alguns Registradores I/O adicionais. que

    serão tratados posteriormente.

  • 8/19/2019 Micro Control Adores Hc 08

    9/61

      9

     Fig 5. Registradores I/O (folha 1 de 5)

  • 8/19/2019 Micro Control Adores Hc 08

    10/61

      10

     Fig 6. Registradores I/O (folha 2 de 5)

  • 8/19/2019 Micro Control Adores Hc 08

    11/61

      11

     Fig 7. Registradores I/O (folha 3 de 5)

  • 8/19/2019 Micro Control Adores Hc 08

    12/61

      12

     Fig 8. Registradores I/O (folha 4 de 5)

  • 8/19/2019 Micro Control Adores Hc 08

    13/61

      13

     Fig 9. Registradores I/O (folha 5 de 5)

  • 8/19/2019 Micro Control Adores Hc 08

    14/61

      14VII.  MEMÓRIA FLASH

    A memória flash é à parte da memória do microcontrolador onde é feita a gravação do programa

     pelo usuário, ela pode ser lida, programada e apagada.

    A memória flash consiste de um conjunto de 4096 bytes (JK3) ou 1536 bytes (JK1), juntamente

    com 48 bytes adicionais de uso dos vetores de interrupção (ver item X). Operações de programação

    ou apagamento da flash são controladas pelo Registrador de Controle da Flash (FLCR).

    Fig 10. Registrador FLCR

    Devido à característica de apagamento e programação da memória flash no próprio circuito de

    aplicação, existe uma proteção contra apagamentos ou programações não intencionais. Esta

     proteção é dada pelo registrador FLASH Block Protect (FLBPR).

    Fig 11. Registrador FLBPR

    Este registrador determina a faixa da memória que será protegida, conforme exemplos dados na

    Tab 4.

    Tab 4. Faixas de proteção da FLASH

  • 8/19/2019 Micro Control Adores Hc 08

    15/61

      15VIII.  REGISTRADORES I/O ADICIONAIS.

    A maioria dos registradores I/O localizam-se no endereço de memória de $0000 até $003F

    (vistos na seção VI). Registradores adicionais tem o seguinte endereçamento.

    IX.  MONITOR ROM

    O Monitor ROM vem gravado de fabrica e é através do qual se estabelece comunicação entre o

    microcontrolador e um microcomputador permitindo então debug, programação, apagamento e

    testes da CPU.

    O monitor ROM recebe e executa comandos originados de um microcomputador. A Fig 12

    mostra um exemplo de circuito utilizado para fazer o interfaceamento entre a CPU e um

    microcomputador utilizando-se da porta serial (RS-232).

  • 8/19/2019 Micro Control Adores Hc 08

    16/61

      16

     Fig 12. Circuito de interfaceamento entre CPU08 E Microcomputador

    Para poder-se estabelecer comunicação entre o microcontrolador e o computador além do

    circuito de interfaceamento, é necessário que a CPU esteja no modo monitor. No modo monitor o

    JK3 esta rodando o código que foi permanentemente gravado na sua memória durante a fabricação,

    que consiste de rotinas para comunicação com o microcomputador, a qual uma vez estabelecida

    transfere o controle da CPU para o computador. O JK3 entra no modo monitor apos um reset e

    depende de níveis lógicos dos seguintes pinos: _______ 

    1 IRQ , ______ 

     RST , PTB0, PTB1 e PTB3.

  • 8/19/2019 Micro Control Adores Hc 08

    17/61

      17  Existem duas possibilidades de entrada no modo monitor: High Volt e Blank Vector.

    Higt Volt: Se fornecido para o pino _______ 

    1 IRQ  uma alta tensão (1,5 x VDD) durante um reset, força o

    microcontrolador a entrar no modo monitor, similarmente a maioria das CPUs da Motorola. Com

    este método a entrada de clock (OSC1) devera ser 4,9152 MHz ou 9.8304 MHz, conforme Tab 5.

    Outra condição importante para estabelecer comunicação através deste método é serem respeitadas

    as condições lógicas necessárias aos pinos PTB0, PTB1 e PTB3 (ver Tab 5).

    Blank Vector: Este método de comunicação só poderá ser estabelecido se o Reset Vector esteja

    limpo ou seja quando a memória Flash da CPU estiver totalmente limpa. O Reset Vector somente

     poderá ser limpo através de uma operação de apagamento total da memória. Este método não

    necessita de alta tensão em _______ 

    1 IRQ  e nem de níveis de tensão pré determinados em PTB0, PTB1 e

    PTB3. A freqüência de clock neste modo devera ser de 9,8304 MHz, conforme Tab 5.

    Como em destaque na Fig 12 o quadro indica chaves ou jumpers colocados na placa de

    implementação as quais possibilitarão fornecer os níveis certos de tensão nos pinos, necessários a

    entrada no modo monitor, para programação do microcontrolador.

    Obs: Uma alternativa para entrar no Modo Monitor, através do Blank Vector, com a memória

    flash programada, seria a gravação juntamente com o programa do usuário de uma rotina que a cada

    reset teste certos níveis de tensão em determinados pinos e caso todas condições fosse satisfeitas o

     programa executaria um apagamento total da memória (Mass_Erase), possibilitando assim ter-se

    então o Reset Vector branco. A única desvantagem deste método seria o apagamento total da

    memória.

    Tab 5. Condições de entrada no modo monitor

  • 8/19/2019 Micro Control Adores Hc 08

    18/61

      18  A definição do ”Baud Rate” que o microcomputador ira usar para estabelecer a comunicação

    com a CPU é dependente diretamente do nível de tensão em PTB3, no modo High Volt, conforme

    Tab 5.

    X.  VETORES DE INTERRUPÇÃO

    Os vetores de interrupção ocupam 48 bytes na memória e é através destes que a CPU define

    qual a ação a ser tomada após a ocorrência de uma interrupção causada pelas diversas fontes

    descritas na Tab 6, levando-se em conta a sua prioridade.

    Tab 6. Vetores de interrupção

    Estas fontes de interrupção possuem os seus próprios registradores, os quais identificam a sua

     presença, são eles:

    Fig 13. Registrador INT1

    Fig 14. Registrador INT2

  • 8/19/2019 Micro Control Adores Hc 08

    19/61

      19

     

    Fig 15. Registrador INT3

    XI.  OSCILADOR (OSC)

    Existem duas possibilidades de prover a referencia de clock ao microcontrolador dependendo do

    tipo de CPU:

     MC68HC908JK3: Uso de cristal oscilador (Fig 16)

     MC68HRC908JK3: Uso de oscilador RC (Fig 17)

    Fig 16. Cristal oscilador

     Neste caso os pinos OSC1 e OSC2 do microcontrolador são usados. Os valores dos capacitores

    e resistores podem ser obtidos em [1]. Valores típicos para um cristal de 9.8304 MHz são: C1 e C2

    de 20pF, R B de 10 MΩ e R S podendo ser suprimido.

    Fig 17. Oscilador RC

     Neste caso somente o pino OSC1 é utilizado, podendo então OSC2 ser usado como pino de uso

    geral (PTA6).

  • 8/19/2019 Micro Control Adores Hc 08

    20/61

      20XII.  PORTAS I/O

    Quinze entradas ou saídas bidirecionais formam as três portas paralelas componentes do

    microcontrolador. Todas os pinos I/O são programados como entradas ou saídas. Apenas deve-se

    levar em conta que a porta A, não esta disponível nos microcontroladores JK3 e JK1 (20 pinos) e

    apenas se encontra no JL3 (40 pinos), microcontrolador da mesma família.

    XIII.  PORTA A

    A porta A é uma porta de 7-bits de função especial, pois é ela que permite todos os seus sete

     pinos serem divididos com o módulo de interrupção por teclado (KBI). Cada pino da porta A é

    configurado por software e poderá estar em coletor aberto caso esteja definido como entrada. PTB0

    a PTB5 possuem capacidade de comandar diretamente um LED (diodo emissor de luz).

    O registrador de dados da porta a (PTA) contém um latch para cada um dos sete pinos da porta

    o qual armazenara os níveis lógicos em seus respectivos pinos caso seja definido como entrada ou

    conterá os dados escritos na porta caso de saída.

    Fig 18. Registrador PTA

    A porta A também poderá ser habilitada para funcionar como pino de entrada de interrupção

    externa para teclado, através do registrador especifico para esta função (KBAIER).

    Outra função especial da porta é ter os pinos configurados como entrada em coletor aberto,

    através do registrador PTAPUE. Cada um dos pinos é configurado individualmente e requer que

    sejam definidos como entrada para trabalhar neste modo.

  • 8/19/2019 Micro Control Adores Hc 08

    21/61

      21

     Fig 19. Registrador PTAPUE

    PTA6EN  – Configura a função do pino OSC2, pino o qual pode ser definido como I/O se for

    utilizado oscilador RC.

    1 = Pino OSC2 configurado como I/O (PTA6)

    0 = Pino OSC2 configurado como saída de clock do oscilador

    PTAPUE[6:0] – Pinos de habilitação da entrada em coletor aberto

    1 = Pinos da porta A configurados para possuírem entrada em coletor aberto

    0 = Entrada em coletor aberto desabilitada

    A porta A também possui um registrador (DDRA) que configura a direção dos dados (entrada

    ou saída).

    Fig 20. Registrador DDRA 

    DDRA[6:0] – Registrador de direção de dados

    1 = Pinos [6:0] da porta A configurados como saída.

    0 = Pinos [6:0] da porta A configurados como entrada.

     Na Fig 21 pode ser visto o circuito da porta A. Pode-se notar que se DDRA esta com nível um a

    latch da saída é habilitada e os dados escritos em PTA aparecerão nos pinos do microcontrolador ao

    mesmo tempo que a latch de leitura de dados é desabilitada, não sendo então permitida a leitura de

    dados externos apenas dos próprios que foram escritos. Quando DDRA possui nível lógico zero a

  • 8/19/2019 Micro Control Adores Hc 08

    22/61

      22latch de saída é desabilitada, ao mesmo tempo que a latch de entrada é habilitada permitindo então a

    leitura de dados externos aplicados nos pinos do microcontrolador.

    Fig 21. Diagrama de blocos da Porta A

    XIV.  PORTA B

    A porta B é uma porta de 8-bits de função especial, pois é ela que permite todos os seus oito

     pinos sejam divididos com o Conversor Analógico/Digital. Cada pino da porta b é configurado por

    software e poderá ser uma entrada analógica de dados do conversor A/D.O registrador de dados da porta B (PTB) contém um latch para cada um dos oito pinos da porta

    o qual armazenara os níveis lógicos em seus respectivos pinos caso seja definido como entrada ou

    conterá os dados escritos na porta caso de saída.

    Fig 22. Registrador PTB

    A porta B também poderá ser habilitada para funcionar como entrada analógica do Conversor

    Analógico/Digital (ADC), através de registrador especifico.A porta B também possui um registrador (DDRB) que configura a direção dos dados (entrada

  • 8/19/2019 Micro Control Adores Hc 08

    23/61

      23ou saída).

    Fig 23. Registrador DDRB 

    DDRB[7:0] – Registrador de direção de dados

    1 = Pinos [7:0] da porta B configurados como saída.

    0 = Pinos [7:0] da porta A configurados como entrada (ADC).

     Na Fig 24 pode ser visto o circuito da porta B. Pode-se notar que se DDRB esta com nível

    lógico um, a latch da saída é habilitada e os dados escritos em PTB aparecerão nos pinos do

    microcontrolador ao mesmo tempo que a latch de leitura de dados é desabilitada, não sendo então

     permitida a leitura de dados externos apenas dos próprios que foram escritos. Quando DDRB possui

    nível lógico zero a latch de saída é desabilitada, ao mesmo tempo que a latch de entrada é habilitada

     permitindo então a leitura de dados externos aplicados nos pinos do microcontrolador.

    Fig 24. Diagrama de blocos da Porta B

    XV.  PORTA D

    A porta D é uma porta de 8-bits de função especial, pois é ela que permite que dois pinos sejam

    divididos com o Modulo de Timer, quatro pinos com o Conversor Analógico/Digital (ADC). Os pinos PTD6 e PTD7 possuem alta capacidade de corrente (25 mA) e poderão ser programados

  • 8/19/2019 Micro Control Adores Hc 08

    24/61

      24como entrada em coletor aberto. PTD2, PTD3, PTD6 e PTD7 possuem capacidade de comandar

    diretamente um LED (diodo emissor de luz).

    O registrador de dados da porta D (PTD) contém um latch para cada um dos oito pinos da porta

    o qual armazenara os níveis lógicos em seus respectivos pinos caso seja definido como entrada ou

    conterá os dados escritos na porta caso de saída.

    Fig 25. Registrador PTD

    A pinos da porta D, PTD0, PTD1, PTD2, PTD3, poderão ser habilitados para funcionar como

    entrada analógica do módulo de conversão ADC, através de registrador especifico. Os pinos PTD4

    e PTD5 podem ser usados pelo módulo de Timer para geração de sinal PWM, Modulo de Saída

    comparada ou Modulo de captura de entrada, dependendo de registradores específicos.

    Outra função especial da porta D é ter os pinos PTD6 e PTD7 configurados como entrada em

    coletor aberto ou saída com alta capacidade de corrente, através do registrador PDCR.

    Fig 26. Registrador PDCR

  • 8/19/2019 Micro Control Adores Hc 08

    25/61

      25SLOWD – Habilita os pinos PTD6 e PTD7 a operar com alta capacidade de corrente (25 mA)

    1 = Pinos PTD6 e PTD7 configurado como saídas de alta corrente (dreno aberto).

    0 = Pinos PTD6 e PTD7 com saída de alta corrente desabilitada

    PTDPU – Pinos de habilitação da entrada em coletor aberto1 = Pinos PTD6 e PTD7 da porta D configurados para possuírem entrada em coletor aberto

    0 = Entrada em coletor aberto desabilitada

    A porta D também possui um registrador (DDRD) que configura a direção dos dados (entrada

    ou saída).

    Fig 27. Registrador DDRD 

    DDRD[7:0] – Registrador de direção de dados1 = Pinos [7:0] da porta A configurados como saída.

    0 = Pinos [7:0] da porta A configurados como entrada.

     Na Fig 28 pode ser visto o circuito da porta D. Pode-se notar que se DDRD esta com nível um a

    latch da saída é habilitada e os dados escritos em PTD aparecerão nos pinos do microcontrolador ao

    mesmo tempo que a latch de leitura de dados é desabilitada, não sendo então permitida a leitura de

    dados externos apenas dos próprios que foram escritos. Quando DDRD possui nível lógico zero alatch de saída é desabilitada, ao mesmo tempo que a latch de entrada é habilitada permitindo então a

    leitura de dados externos aplicados nos pinos do microcontrolador.

  • 8/19/2019 Micro Control Adores Hc 08

    26/61

      26

     Fig 28. Diagrama de blocos da Porta D

    XVI.  EXEMPLO DE PROGRAMAÇÃO E CONFIGURAÇÃO DAS PORTAS I/O

     Na programação e uso das portas I/O deve-se primeiramente configurar o registrador que define

    se a mesma terá a função de entrada ou saída (Fig 20, Fig 23 e Fig 27).

    Basicamente pode-se usar o comando “mov” para escrever nos registradores que configuram as

     portas. No exemplo abaixo são mostrados três comandos:

    mov #$ff,ddrd   Todos pinos da porta d configurados como saída

    mov #$00,ddra   Todos pinos da porta a configurados como entrada

    mov #$10,ddrb   PTB4 configurado como saída, os demais pinos entradas

    Deve-se notar nos exemplos que o número escrito nos registradores se encontram na notação

    hexadecimal. Para uma melhor visualização do efeito do ato de escrita nestes registradores, deve-se

    converter este numero em binário, onde então será visualizado o estado de cada um dos pinos emseparado. Como visto no exemplo, a ação de escrita em um dos registradores DDR“x”, definira a

    direção de dados da porta pino a pino separadamente. Na Fig 29 é ilustrado o exemplo onde o

    número $10 foi escrito em ddrb.

  • 8/19/2019 Micro Control Adores Hc 08

    27/61

      27

     Fig 29. Direção dos pinos da Portas B

    Quando é pretendido o uso das portas, pode-se proceder de maneira semelhante a anterior,

    escrevendo nos registradores PT“x” os dados os quais representarão o nível lógico da porta, caso

    esta esteja configurada como saída.

    mov #$ff,ptd   Todos pinos da porta d possuem nível alto

    mov #$00,pta   Todos pinos da porta a possuem nível baixo

    mov #$10,ptb   PTB4 possui nível alto, os demais níveis

     baixos

    Se os pinos da porta estão configurados como entrado o registrador PT“x” conterá o valor dos

    níveis lógicos existentes no momento da leitura. A mostra um exemplo em que alguns níveis

    lógicos estão aplicados na porta B.

    Fig 30. Níveis lógicos aplicados na Portas B

     Níveis na porta B   10101010   PTB contem o valor 10101010 bin ou AA hex

    XVII.  CONVERSOR ANALÓGICO/DIGITAL

    O microcontrolador JK3 possui 12 canais de conversão analógica/digital, com resolução de 8

     bits, conversão simples ou contínua, possui também um flag de conversão completa ou geração de

    interrupção e clock de conversão (tempo de conversão) selecionável (prescaler).

  • 8/19/2019 Micro Control Adores Hc 08

    28/61

      28  Os conversores A/D internos no JK3 podem ter suas entradas analógicas configuráveis através

    de registrador específico (ADSCR), podem as mesmas fazer o uso de pinos da porta B (PTB0 a

    PTB7) ou porta D (PTD0 a PTD3). A Fig 31 mostra o diagrama de blocos do conversor A/D.

    Fig 31. Diagrama de blocos do conversor A/D

    A configuração dos pinos das portas como entrada analógicas dos conversores, forçam com que

    os mesmos sejam usados como entradas ficando independentes dos registradores DDRx das portas

    (ver item XII). O restante dos canais do ADC/pinos das portas podem ser usados normalmente

    como pinos I/O de uso geral.

    XVIII.  FAIXAS DE CONVERSÃO

    As referencias tomadas pelo conversor A/D para executar a conversão são VDD (valor máximo)

    e VSS (valor mínimo). Quando a tensão de entrada do conversor A/D (entrada analógica) for igual a

    VDD (ver Tab 3), o valor convertido será $FF (full scale) ao passo que se o valor de entrada igual aVSS (ver Tab 3), o valor convertido será $00. Somente valores entre VDD e VSS resultarão em

  • 8/19/2019 Micro Control Adores Hc 08

    29/61

      29conversões corretas, tensões maiores que VDD, resultarão em $FF e menores que VSS em $00.

    XIX.  CONVERSÃO CONTINUA

     No modo de conversão continua, o ADC converte continuamente o valor no canal selecionado,

    escrevendo um novo dado no registrador de dados do conversor a cada conversão. O resultado da

    conversão anterior será sobrescrito se lido ou não o seu valor. Este modo de conversão continuara

    até que seja limpo o bit ADCO do registrador ADSCR.

    XX.  REGISTRADORES I/O

    Estes registradores monitoram e controlam a operação do ADC.

     ADSCR –Registrador de estado e controle do ADC ADR – Registrador de dados do ADC

     ADICLK - Registrado do Clock

    XXI.  REGISTRADOR DE ESTADO E CONTROLE DO ADC

    A seguir serão descritas as funções do registrador de estado e controle do ADC (ADSCR), que é

    mostrado na Fig 32.

    Fig 32. Registrador ADSCR

    COCO – Bit de conversão completada (somente se interrupção do A/D desabilitada (AIEN = 0))

    1 = Conversão A/D completada.

    0 = conversão A/D não completada.

    AIEN – Bit de habilitação de interrupção (gera uma interrupção se quando uma conversão A/D é

    completada)

    1 = Interrupção do ADC habilitada.

    0 = Interrupção do ADC desabilitada.

    ADCO – Bit de habilitação de conversão continua

  • 8/19/2019 Micro Control Adores Hc 08

    30/61

      30  1 = Conversão continua.

    0 = Apenas uma conversão.

    ADCH [4:0] – Bits de seleção de canal do ADC, conforme Tab 7.

    Tab 7. Seleção do Canal do ADC 

    Obs: A conversão A/D é iniciada automaticamente após a primeira subida do clock depois deuma escrita no ADSCR.

    XXII.  REGISTRADOR DE DADOS DO ADC

     No registrador de dados do ADC (ADR), é armazenado o resultado de uma conversão A/D. Este

    registrador é atualizado a cada nova conversão completada.

    Fig 33. Registrador ADR

  • 8/19/2019 Micro Control Adores Hc 08

    31/61

      31XXIII.  REGISTRADO DO CLOCK DO ADC

    Conforme Tab 8, é selecionada a freqüência de clock da conversão A/D, tomando como base o

    valor de clock interno do microcontrolador.

    Tab 8. Seleção do Canal do ADC

     Na Fig 34 é mostrado o registrador de clock do ADC (ADICLK).

    Fig 34. Registrador ADICLK

    XXIV.  EXEMPLO DE PROGRAMAÇÃO E CONFIGURAÇÃO DO CONVERSOR A/D

     Na programação e uso das portas dos conversores A/D internos no microcontrolador deve-se

     primeiramente configurar os seus registradores registrador (Fig 32, Fig 33 e Fig 34).

    Basicamente pode-se usar o comando “mov” para escrever nestes registradores. No exemploabaixo é mostrada a configuração do Registrador de estado e controle do ADC (ADSCR):

    mov #$06,adscr

    06 hex = 000 00110 bin

      Pino 0 porta B usado para canal do ADC (Tab 7)

      Somente uma conversão

     Interrupção no final da conversão desabilitada

  • 8/19/2019 Micro Control Adores Hc 08

    32/61

      32  Obs: para maiores detalhes sobre a configuração deste registrador deve-se consultar o item

    Registrador de estado e controle do ADC. Note que o bit 7 deste registrador é somente leitura, ele

    indica se a conversão já esta completa.

    Quando uma conversão esta completa, os dados convertidos são guardados no Registrador de

    dados do ADC (ADR) na Fig 33. Vale a pena lembrar que a conversão A/D é iniciadaautomaticamente após a primeira subida do clock depois de uma escrita em ADSCR.

    XXV.  MODULO DE TIMER

    O módulo de interface de timer (TIM) é composto por dois canais que fornecem referencia de

    tempo, com funções de Modulo de captura de entrada, Modulo de Saída comparada e Modulo de

    geração de PWM (pulse-width-modulation). A Fig 35 mostra o diagrama de blocos do TIM.

    Fig 35. Diagrama de blocos do TIM

  • 8/19/2019 Micro Control Adores Hc 08

    33/61

      33  O principal componente de temporização do microcontrolador é o registrador TCNT, de 16 bits.

    O conteúdo de TCNT é incrementado continuamente a cada ciclo de clock a partir de $0000, no

    RESET, até $FFFF. Após $FFFF o registrador reinicia em $0000. Os pinos usados pelo módulo de

    timer são visto na Tab 9.

    Tab 9. Pinos do TIM

    XXVI.  MODULO DE CAPTURA DE ENTRADA

    Com a função de captura de entrada, o TIM pode capturar o tempo com que um evento externo

    ocorre. Quando uma mudança ocorre em um dos pinos do módulo do canal, o TIM armazena oconteúdo do contador, dentro do registrador TIM channel (TCxH e TCHxL). O modulo de captura

    de entrada pode gerar interrupção, caso habilitada.

    A função de captura de entrada é um elemento fundamental da arquitetura de temporização do

    JK3. Para o microcontrolador, o tempo é representado pela contagem presente no registrador

    TCNT. As funções de captura de entrada, usadas para registrar o instante em que determinado

    evento externo ocorre, são executadas salvando o conteúdo de TCNT num registrador de 16 bits,

    quando uma borda de transição predefinida (subida, descida ou ambas) é detectada num dos pinosde captura. Registrando os instantes em que ocorrem sucessivas transições de um sinal em análise,

    um programa pode medir período ou largura de pulso do sinal. Para medir o período, os instantes

    em que ocorrem duas transições sucessivas da mesma polaridade são registrados. Para a medição de

    largura de pulso, registram-se os instantes de ocorrência de duas transições de polaridades

    alternadas. Subtraindo-se os valores registrados obtém-se o intervalo de tempo entre as transições.

    XXVII.  MODULO DE SAÍDA COMPARADA

    Com a função de saída comparada, o TIM pode gerar um pulso periódico com polaridade,

    duração e freqüência programáveis. Quando o contador atinge o valor armazenado em um

    registrador especifico (TMODH e TMODL), o TIM pode setar, limpar ou mudar o sinal no pino do

    canal. O módulo de saída comparada pode gera interrupção, caso habilitada.

    Para este elemento funcional faz-se necessário também o uso do TCNT. As funções de

    comparação de saída permitem gerar um evento em instantes de tempo predefinidos

    correspondentes a valores armazenados em registradores específicos. A cada um dos pinos decomparação de saída corresponde um registrador de comparação e um comparador dedicado, de 16

  • 8/19/2019 Micro Control Adores Hc 08

    34/61

      34 bits. Quando o valor armazenado no registrador de comparação é alcançado pelo TCNT, uma saída

    é gerada ativando o flag de status correspondente ao registrador e iniciando as ações automáticas

    definidas para aquele pino. Um dos usos mais simples da comparação de saída é a produção de

     pulsos com duração específica. A comparação de saída é configurada para automaticamente impor

    um nível alto ou baixo no pino associado, dependendo da polaridade do pulso que está sendogerado. Após esta operação a comparação de saída é reprogramada para restaurar o nível inativo do

     pino na próxima comparação.

    XXVIII.  MODULO DE GERAÇÃO DE PWM

    Com a função PWM, o TIM pode gerar uma onda quadrado modulada por largura de pulso,

    conforme visto na Fig 36.

    Fig 36. Sinal PWM

     No modulo de PWM, é possível gerar um sinal com forma de onda quadrada onde são

    configuráveis o período (freqüência) e largura de pulso (tempo dentro do valor de um período em

    que a saída ficara setada e o restante de tempo resetada ou vice-versa). O período ou freqüência do

    sinal PWM é dado através do overflow do timer ou seja o contador chegar ao final da contagem,

    valor este configurável nos registradores TMODL e TMODH. O tempo entre o overflow do timer e

    uma saída comparada (visto em XXVII) é o tamanho da largura do pulso, valor este configurável

    nos registradores TCHxH e TCHxL.

    Obs: Para um correto funcionamento do modulo de geração de PWM, nunca se deve configurar

    os registradores que informam o tamanho do pulso (TCHxH e TCHxL), com valor maior do que o

    registrador do período do PWM (TMODL e TMODH).

  • 8/19/2019 Micro Control Adores Hc 08

    35/61

      35XXIX.  REGISTRADORES I/O

    Os seguintes registradores I/O controlam e monitoram a operação doTIM.

     TSC - Registrador de estado e controle do TIM

     TCNTH e TCNTL – Registrador do contador do TIM (16 bits)

     TMODH e TMODL – Registrador do modulo do contador do TIM (16 bits)

     TSC0 e TSC1 – Registrador de estado e controle dos canais do TIM

     TCH0H, TCH0L, TCH1H e TCH1L – RegistradoR dos canais do TIM (16 bits)

    XXX.  REGISTRADOR DE ESTADO E CONTROLE DO TIM

    O registrador de estado e controle do TIM é visto na Fig 37.

    Fig 37. Registrador TSC

    TOF – Bit de overflow do TIM, este bit é setado quando o contador reseta, após alcançar o valor

     programado no registrador do modulo do contador do TIM (TMODL e TMODH).1 = Contador alcançou o valor do modulo.

    0 = Contador não alcançou o valor do modulo.

    TOIE – Bit de habilitação da interrupção de overflow do TIM

    1 = Interrupção habilitada no overflow do contador.

    0 = Interrupção não habilitada.

    TSTOP – Bit de stop do TIM

    1 = Contador parado.

    0 = Contador ativo.

    TRST – Bit de reset do TIM

    1 = Prescaler e contador limpos.

    0 = Sem efeito.

  • 8/19/2019 Micro Control Adores Hc 08

    36/61

      36PS[2:0] – Bits de seleção do Prescaler do TIM

    Tab 10. Seleção do prescaler do TIM

    XXXI.  REGISTRADOR DO CONTADOR DO TIM

    Este registrador de 16 bits contém o valor alto (8 bits) e o valor baixo (8 bits) do contador do

    TIM (TCNTH e TCNTL), este registrador é incrementado a cada ciclo de clock.

    Fig 38. Registrador TCNTH

    Fig 39. Registrador TCNTL

  • 8/19/2019 Micro Control Adores Hc 08

    37/61

      37XXXII.  REGISTRADOR DO MODULO DO CONTADOR DO TIM

    Este registrador de 16 bits contém o valor alto (8 bits) e o valor baixo (8 bits) do registrador do

    modulo do contador do TIM (TMODH e TMODL), este registrador armazena o valor do modulo

    (numero de contagens ou ciclos de clock) que o contador ira executar antes do overflow.

    Fig 40. Registrador TMODH

    Fig 41. Registrador TMODL

    Obs: Como regra deve-se primeiro escrever TMODH, para um correto funcionamento do

    módulo.

    XXXIII.  REGISTRADOR DE ESTADO E CONTROLE DOS CANAIS DO TIM

    O registrador de estado e controle dos canais do TIM é visto nas Fig 42 e Fig 43.

    Fig 42. Registrador TSC0

  • 8/19/2019 Micro Control Adores Hc 08

    38/61

      38

     Fig 43. Registrador TSC1

    CH0F e CH1F – Quando o canal 0 ou 1 do TIM é usado como Modulo de captura de entrada, este

     bit é setado a cada mudança de estado no pino. Quando usado como Modulo de Saída comparada,

    este bit é setado no overflow do contador.

    1 = Captura de entrada ou saída comparada no pino do canal 0 ou 1 do timer.

    0 =  Não ocorreu captura de entrada ou saída comparada no pino do canal 0 ou 1 do timer.

    CH0IE e CH1IE – Bit de habilitação de interrupção do canal 0 ou 1 do TIM, interrupção gerada se

    ocorrer uma Modulo de captura de entrada ou Modulo de Saída comparada.

    1 = Interrupção habilitada.

    0 = Interrupção não habilitada.

    Obs: A habilitação das interrupções faz com que os bits CH0F e CH1F sejam limpos.

    MS0B, MS0A, MS1A, ELS0B, ELS1B, ELS0A e ELS1AH0IE – Bits de seleção de modo, tipo de

     borda e nível inicial do canal 0 e 1 do TIM, conforme Tab 11.

    Tab 11. Bits de seleção de modo, tipo de borda e nível inicial dos canais do TIM

  • 8/19/2019 Micro Control Adores Hc 08

    39/61

      39TVO0 e TOV1E  – Bit de controle do comportamento do canal 0 ou 1 do TIM, quando ocorre

    overflow do counter, se o canal é configurado como saída comparada.

    1 = Pino do canal 0 ou 1 do TIM, muda no overflow do timer.

    0 = Pino do canal 0 ou 1 do TIM, não muda no overflow do timer.

    Obs: Se canal configurado como captura de entrada este bit não terá efeito.

    CH0MAX e CH1MAX  – Bit de seleção de máxima razão cíclica do modulo de geração de sinal

    PWM. A saída de um sinal PWM, fica com razão cíclica máxima até um ciclo após o bit ser limpo.

    1 = Razão cíclica 100% ou 1.

    0 = Razão cíclica controlada pelo módulo PWM (ver item XXVIII).

    XXXIV. 

    REGISTRADOR DOS CANAIS DO TIM

    Este registrador de 16 bits contém o valor alto (8 bits) e o valor baixo (8 bits) do registrador dos

    canais do TIM. Quando usado como Modulo de captura de entrada de entrada este registrador

    armazenara o valor de cada captura. Se usado como Modulo de Saída comparada ele armazenara o

    valor, o qual será a referencia para ser executada uma comparação.

    Fig 44. Registrador TCH0H

    Fig 45. Registrador TCH0L

  • 8/19/2019 Micro Control Adores Hc 08

    40/61

      40

     Fig 46. Registrador TCH1H

    Fig 47. Registrador TCH1L

    XXXV.  EXEMPLO DE PROGRAMAÇÃO E CONFIGURAÇÃO DO TIM

    Para exemplificar a programação do TIM, será dado um exemplo onde então serão

    demonstradas as configurações de alguns registradores. O exemplo se baseia no Modulo de geração

    de PWM.Primeiramente deve-se configurar o Registrador de estado e controle do TIM (TSC).

    mov #$f0,TSC

    f0 hex = 11110 000 bin

      Prescaler 0 (Tab 10)

      Reset do Tim (sem efeito)

     Contador do TIM parado

     Interrupção no overflow do Contador habilitado

    Deve-se notar que o bit 7 deste registrador é somente leitura, ele indica que o contador alcançou

    o valor do módulo ou seja ocorreu um overflow do timer. Primeiramente para a configuração do

    registrador o timer deve estar parado como demonstra o exemplo acima.

    Com o Registrador de estado e controle do TIM (TSC) configurado deve-se partir para a

    configuração do Registrador do modulo do contador do TIM (TMODH e TMODL), que nada mais

    é do que um registrador de 16 bits que armazena o valor do modulo (numero de contagens ou ciclos

    de clock) que o contador ira executar antes do overflow.

  • 8/19/2019 Micro Control Adores Hc 08

    41/61

      41mov #$05,TMODH   Bit alto do registrador com valor 05

    mov #$ff,TMODL   Bit baixo do registrador com valor ff

     No exemplo seriam necessários que o contador contasse 5 vezes até ff para ocorrer um overflow

    no timer. Em outras palavras o valor armazenado no bit alto seria quantas vezes o bit baixo teria que

    contar o valor nele armazenado, para então o timer ter um overflow.

    Configurado o Registrador do modulo do contador do TIM o qual define o período do PWM,

    deve-se então configurar a razão cíclica que é o tempo em que a saída ficara com nível 1 e o

    restante do tempo 0. O registrador que define a razão é o RegistradoR dos canais do TIM (TCH0H e

    TCH0L). Este registrador define com qual valor de cada contagem será executada uma comparação

    e então mudado o estado lógico do PWM gerado.

    mov #$00,TCH0H   Bit alto do registrador com valor 00

    mov #$05,TCH0L   Bit baixo do registrador com valor 05

    Obs: este registrador deve ter um valor menor que o anterior que define o período do PWM.

     Neste exemplo a razão cíclica definida para o PWM será de apenas 5 ciclos de clock.

    Outro registrador a ser configurado é o Registrador de estado e controle dos canais do TIM

    (TSC0).mov #$1a,TSC0

    1a hex = 00 0110 10 bin

      Razão cíclica 100% ou 1 (desabilitada)

      PWM muda no overflow do timer (troca de estado)

       A saída do canal do TIM é PWM e na comparação

    a saída é colocada em nível baixo (Tab 11)

     Desabilitada a interrupção do TIM (não usada como módulo PWM)

    Obs: O bit 7 do registrador é somente leitura não usado com o módulo de PWM.

    Depois de configurados todos os registradores do módulo PWM, apenas deve ser lembrado de

    liga-lo, através da resetagem do bit 5 do registrador TSC.

     bclr 5,tsc   Bit 5 do TSC é resetado, ligando o módulo PWM

  • 8/19/2019 Micro Control Adores Hc 08

    42/61

      42XXXVI.  CONJUNTO DE INSTRUÇÕES DO MICROCONTROLADOR

    As Fig 48, Fig 49, Fig 50, Fig 51, Fig 52, Fig 53, Fig 54, Fig 55, mostram o conjunto de

    instruções, as quais são usadas na programação do microcontrolador.

    Fig 48. Conjunto de Instruções (folha 1 de 8)

  • 8/19/2019 Micro Control Adores Hc 08

    43/61

      43 

    Fig 49. Conjunto de Instruções (folha 2 de 8)

  • 8/19/2019 Micro Control Adores Hc 08

    44/61

      44

     Fig 50. Conjunto de Instruções (folha 3 de 8)

  • 8/19/2019 Micro Control Adores Hc 08

    45/61

      45

     Fig 51. Conjunto de Instruções (folha 4 de 8)

  • 8/19/2019 Micro Control Adores Hc 08

    46/61

      46

     Fig 52. Conjunto de Instruções (folha 5 de 8)

  • 8/19/2019 Micro Control Adores Hc 08

    47/61

      47 

    Fig 53. Conjunto de Instruções (folha 6 de 8)

  • 8/19/2019 Micro Control Adores Hc 08

    48/61

      48

     Fig 54. Conjunto de Instruções (folha 7 de 8)

  • 8/19/2019 Micro Control Adores Hc 08

    49/61

      49

     

    Fig 55. Conjunto de Instruções (folha 8 de 8)

    XXXVII.  EXEMPLO GERAL SOBRE PROGRAMAÇÃO DO MICROCONTROLADOR

    A partir de agora será visto um exemplo sobre programação do microcontrolador em assembly,

    onde é lido um valor de tensão através de um conversor A/D e de posse deste dado, é escolhida um

    valor de freqüência e razão cíclica para a operação do módulo de PWM. É executada também uma

    temporização através da qual será mantida a mesma freqüência e razão cíclica do PWM. Com o

    tempo esgotado é então executado um novo ciclo do programa.

    ;Start Program

    RAMStart EQU $0080RomStart EQU $F600 ;Definição do endereço de Memória para JL3, JK3 e JK1VectorStart EQU $FFDE$Include 'jl3regs.inc' ;Arquivo que interpreta os minemônicos

    org ramstart

    ;definição das variáveis na ram e o seu tamanho caso necessário

    tam ds 1

  • 8/19/2019 Micro Control Adores Hc 08

    50/61

      50tam1 ds 1cont_1 ds 1cont_2 ds 1cont_3 ds 1

    ;PROGRAMA

    org romstart

    ;começo do programa memória rom ou flash

    intini ; definição de uma subrotina, que termina quando começa a próxima

    ;Inicialização das portas, interrupções, variáveis e etc...

    rspclraclrxclr cont_1clr cont_2clr cont_3

    mov #$00,tammov #$10,ddrbmov #$ff,ddrdmov #$ff,ddra

    adcini

    ; Rotinas de Inicialização do Conversor ADC

    mov #$06,adscr ;pino 0 portb como canal adc;somente uma conversão;interrupção no final da conv. desabilitada

    esperaconv

    ;Rotina para Espera da Conversão AD ser Completada

    lda adscrand #$80cmp #$80 ;compare com 80bne esperaconv ;se bit 7 (adscr) 0, volta para esperaconv

    ;a rotina faz um AND lógico entre o registrador ADSCR e o número $80 hex o que;mostra que somente o valor do bit 7 deste registrador não terá seu valorzerado. Como já foi o bit 7 deste registrador é o qual avisa se a conversão AD;já esta completa. Ao passo de que se comparada com $80 o resultado desta

    ;operação indicara se a conversão foi ou não completada caso não completada a;rotina volta para o inicio e executa um novo teste

    comparação

    ;Comparação o valor convertido e desvia a rotina pra uma função especifica

    ;dependendo do valor da conversão, na verdade são 15 faixas de valores que

    ;indicam 15 valores de razão cíclica e freqüência do módulo de PWM

    lda adrcmp #$0fbls luz15

    cmp #$1ebls luz14cmp #$2dbls luz13

  • 8/19/2019 Micro Control Adores Hc 08

    51/61

      51  cmp #$3c

    bls luz12cmp #$4bbls luz11cmp #$5abls luz10cmp #$69bls luz9cmp #$78bls luz8cmp #$87bls luz7cmp #$96bls luz6cmp #$a5bls luz5cmp #$b4bls luz4cmp #$c3bls luz3cmp #$d2bls luz2cmp #$ffbls luz1

    luz15mov #$34,tammov #$1A,tam1jmp pwm1

    luz14mov #$30,tammov #$18,tam1

    jmp pwm1luz13

    mov #$2C,tammov #$16,tam1jmp pwm1

    luz12mov #$2C,tammov #$16,tam1jmp pwm1

    luz11mov #$28,tammov #$14,tam1

    jmp pwm1

    luz10mov #$24,tammov #$12,tam1jmp pwm1

    luz9mov #$22,tammov #$11,tam1jmp pwm1

    luz8mov #$1E,tam

    mov #$0F,tam1jmp pwm1

  • 8/19/2019 Micro Control Adores Hc 08

    52/61

      52luz7

    mov #$1C,tammov #$0E,tam1jmp pwm1

    luz6mov #$18,tammov #$0C,tam1jmp pwm1

    luz5mov #$16,tammov #$0B,tam1jmp pwm1

    luz4mov #$12,tammov #$09,tam1jmp pwm1

    luz3mov #$10,tammov #$08,tam1jmp pwm1

    luz2mov #$0E,tammov #$07,tam1jmp pwm1

    luz1mov #$0A,tammov #$05,tam1jmp pwm1

    pwm1

    ;PWM Inicialização e configuração (configuração já detalhada no item XXXV)

    sta copctl ;clear whatchdog

    mov #$f0,TSC ;interrupção do overflow habilitada;contador parado;prescaler 000

    mov #$00,TCH0H;valor da razão cíclica do PWM (alto)

    mov tam1,TCH0L

    ;valor da razão cíclica do PWM (baixo);conforme valor convertido

    mov #$00,TMODH;valor do bit alto do counter

    mov tam,TMODL;valor do bit baixo do counter;conforme valor convertido

    mov #$1a,tsc0 ;interrupção desabilitada;unbuffered PWM;PWM na mudança

    bclr 5,tsc ;liga o counter

    cli

  • 8/19/2019 Micro Control Adores Hc 08

    53/61

      53 

    tempo

    ;Rotina de tempo infinita, apenas sai por interrupção

    bra tempobra tempo

    cont1

    ;a cada overflow que ocorrer no timer é acionada esta subrotina

    ;caso esta subrotina chegue no final da contagem o programa retorna para o

    ;inicio

    ;Vetor de Interrupção por Overflow de Timer canal 0;Cada interrupção incrementa 1 no cont_x;como mostrado anteriormente existe uma rotina de loop infinto, a qual somente é;interrompida caso ocorra um overflow no timer que esta configurado para a;geração de uma interrupção neste caso, onde então o processamento é desviado;para esta subrotina, a qual conta um determinado tempo

    tempocont_1sta copctl ;clear whatchdoglda cont_1adc #$1sta cont_1bcs tempocont_2bclr 7,tscrti

    tempocont_2mov #$00,cont_1lda cont_2

    adc #$1sta cont_2bcs voltabclr 7,tscclibclr 4,portbrti

    volta

    ;Se encerrado o timer, o programa volta fazendo nova leitura do ADC

    bset 4,portbjmp adcini

    nothing

    rti

    org VectorStart

    ;neste ponto do programa são definidos os vetores de interrupção ou seja édefinida qual a subrotina que cada fonte de interrupção ira executar

    dw nothing ; Conversão completa do ADC

    dw nothing ; Keyboard Vectordw nothing ; (No Vector Assigned $FFE2-$FFE3)dw nothing ; (No Vector Assigned $FFE4-$FFE5)dw nothing ; (No Vector Assigned $FFE6-$FFE7)

  • 8/19/2019 Micro Control Adores Hc 08

    54/61

      54  dw nothing ; (No Vector Assigned $FFE8-$FFE9)

    dw nothing ; (No Vector Assigned $FFEA-$FFEB)dw nothing ; (No Vector Assigned $FFEC-$FFED)dw nothing ; (No Vector Assigned $FFEE-$FFEF)dw nothing ; (No Vector Assigned $FFF0-$FFF1)dw cont1 ; Overflow do TIMdw nothing ; Overflow do canal 0 do TIMdw nothing ; Overflow do canal 1 do TIMdw nothing ; (No Vector Assigned $FFF8-$FFF9)dw nothing ; ~IRQ1 (por pino externo)dw nothing ; SWI Vectordw romstart ; Reset

    ;obs: esta ordem não pode ser trocada nem suprimida uma fonte de interrupção, mesmo algumas

    ;delas não sendo usadas é importante que as mesmas estejam presentes nesta tabela.

    XXXVIII.  ATIVIDADES PRATICAS

     Faça a programação, monte o protótipo e teste:

    ATIVIDADE 1 (programação, configuração e uso das portas):

     Programa que leia se uma chave (NA ou NF) foi pressionada e caso afirmativo piscar um

    LED.

     Fazer um seqüencial de Leds (mínimo de 4 leds)

     Adicionando ao circuito da atividade anterior 3 chaves (NA ou NF) e apartir da Tab 12, fazer

    um programa que identifique a seqüência em que foram pressionadas as chaves e execute o que se

     pede.

    Tab 12. pinagem do JK3

    CH1 CH2 CH3 TAREFA

    1º  2º  3º  Seqüencial para direita

    1º  3º  2º  Seqüencial para esquerda

    2º  1º  3º  Piscar todos

    2º  3º  1º  Seqüencial “Vai e Volta”

    3º  1º  2º  Piscar apenas 1º,3º...

    3º  2º  1º  Piscar apenas 2º,4º...

    Obs: O programa não deve aceitar que a mesma tecla seja pressionada mais de uma vez a cada

    ciclo de programa. Para a conexão dos LEDS ao microcontrolador, pode-se usar os 4 pinos da porta

  • 8/19/2019 Micro Control Adores Hc 08

    55/61

      55D que tem capacidade de corrente para tal ou senão usar circuito integrado do tipo buffer,

    optoacoplador ou latch.

    ATIVIDADE 2 (programação, uso do conversor A/D, configuração e uso das portas):

     Programa que converta um valor de tensão variável (0 a 5V) e apartir deste indicar o valor

    convertido em binário, em um display de 8 leds, atualizando o mesmo de tempo em tempo,

    conforme exemplo na Tab 13.

    Tab 13. pinagem do JK3

    Display Número Convertido (hexadecimal)

    00

    55

    FF

    Obs: Como no microcontrolador JK3 e seus derivados de 20 pinos não possua mais de 4 pinos

    com capacidade de corrente suficiente para conexão de LEDS, deve-se fazer uso de circuito

    integrado do tipo buffer, optoacoplador ou latch para realização desta atividade, respeitando os

    limites de dreno de corrente dos respectivos pinos usados.

     Partindo da atividade anterior, mostrar os dados convertidos em dois displays de 7 segmentos

    em hexadecimal, atualizando o mesmo de tempo em tempo. A Fig 56.a mostra o display de sete

    segmentos e suas conexões e a Fig 56.b ilustra as conexões do display com o microcontrolador.

     Notar que o barramento de dados dos dois displays é o mesmo apenas lembrar de atualizar os dados

    e habilitar um de cada vez.

  • 8/19/2019 Micro Control Adores Hc 08

    56/61

      56

     

    (a) (b)

    Fig 56. (a) Display de 7 segmentos (b) Conexão do display com o microcontrolador

    Tab 14. tabela de conversão de dados em código de 7 seg.Caractere A b c d e F g

    0 0 0 0 0 0 0 1

    1 1 0 0 1 1 1 1

    2 0 0 1 0 0 1 0

    3 0 0 0 0 1 1 0

    4 1 0 0 1 1 0 0

    5 0 1 0 0 1 0 0

    6 0 1 0 0 0 0 0

    7 0 0 0 1 1 1 1

    8 0 0 0 0 0 0 0

    9 0 0 0 0 1 0 0

  • 8/19/2019 Micro Control Adores Hc 08

    57/61

      57ATIVIDADE 3 (programação, captura de entrada, configuração e uso das portas):

     Programa que leia uma chave (NA ou NF), e apartir da captura dos tempos de toque na chave

    (mínimo 5 toques), ligar um led nos mesmos intervalos de tempo capturados.

    ATIVIDADE 4 (programação, geração de PWM, configuração e uso das portas):

      Programa que gere um sinal de PWM com freqüência e razão cíclica variáveis. O valor

    destas duas grandezas depende de valores digitados em duas teclas do tipo + ou -, as freqüências são

    entre 1 e 60 KHz (o passo poderá ser variável, mas de preferência de 1 em 1 KHz) e razão cíclica

     para estes valores entre 0 e 1 (0 e 100%). Poderão ser usadas mais que 2 chaves. Lembrando que o

    valor da razão cíclica é dependente do valor da freqüência então ao mudar o valor da freqüênciadevera ser calculado um novo valor de razão cíclica.

  • 8/19/2019 Micro Control Adores Hc 08

    58/61

      58 

    ANEXOÚNICO

    !!!

  • 8/19/2019 Micro Control Adores Hc 08

    59/61

      59

    CARACTERÍSTICAS ELÉTRICAS DOMICROCONTROLADOR

    A Tab 15 mostra algumas características elétricas (máximas) do microcontrolador.

    Tab 15. Caracteristicas elétricas

  • 8/19/2019 Micro Control Adores Hc 08

    60/61

      60  A Tab 16 mostra as especificações elétricas do microcontrolador para uma tensão de

    alimentação de 5V.

    Tab 16. Caracteristicas elétricas

  • 8/19/2019 Micro Control Adores Hc 08

    61/61

      61  A Tab 17 mostra as especificações elétricas do microcontrolador para uma tensão de

    alimentação de 3V.

    Tab 17. Caracteristicas elétricas