61
Manual Básico de Operação do Microcontrolador MC68HCJK3 e MC68HCJK1 Disciplina: Microcontroladores “A” Professor Adjunto: Alexandre Campos ([email protected]) Mestrando: Alexandre Luís Michel

Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

Manual Básico de Operação do Microcontrolador MC68HCJK3 e

MC68HCJK1

Disciplina: Microcontroladores “A” Professor Adjunto: Alexandre Campos

([email protected])

Mestrando: Alexandre Luís Michel

Page 2: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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

Page 3: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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

Page 4: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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.

Page 5: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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

Page 6: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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

Page 7: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

7

Fig 4. Mapa da memória

Page 8: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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.

Page 9: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

9

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

Page 10: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

10

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

Page 11: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

11

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

Page 12: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

12

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

Page 13: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

13

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

Page 14: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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

Page 15: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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

Page 16: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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: _______

1IRQ , ______

RST , PTB0, PTB1 e PTB3.

Page 17: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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

Higt Volt: Se fornecido para o pino _______

1IRQ 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 _______

1IRQ 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

Page 18: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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

Page 19: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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, RB de 10 MΩ e RS 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).

Page 20: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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.

Page 21: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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

Page 22: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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

Page 23: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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

Page 24: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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

Page 25: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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 aberto

1 = 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 dados

1 = 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 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.

Page 26: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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 em

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

Page 27: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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

Page 28: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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 a

VSS (ver Tab 3), o valor convertido será $00. Somente valores entre VDD e VSS resultarão em

Page 29: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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

Page 30: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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 de

uma 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

Page 31: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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 exemplo

abaixo é 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

Page 32: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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 é iniciada

automaticamente 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

Page 33: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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 o

conteú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 pinos

de 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 de

comparação de saída corresponde um registrador de comparação e um comparador dedicado, de 16

Page 34: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

34bits. 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á sendo

gerado. 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).

Page 35: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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.

Page 36: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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

Page 37: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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

Page 38: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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

Page 39: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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

Page 40: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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.

Page 41: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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 com

o 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

Page 42: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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)

Page 43: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

43

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

Page 44: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

44

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

Page 45: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

45

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

Page 46: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

46

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

Page 47: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

47

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

Page 48: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

48

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

Page 49: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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 $0080 RomStart EQU $F600 ;Definição do endereço de Memória para JL3, JK3 e JK1 VectorStart 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

Page 50: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

50tam1 ds 1 cont_1 ds 1 cont_2 ds 1 cont_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... rsp clra clrx clr cont_1 clr cont_2 clr cont_3 mov #$00,tam mov #$10,ddrb mov #$ff,ddrd mov #$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 adscr and #$80 cmp #$80 ;compare com 80 bne 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 valor zerado. 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 adr cmp #$0f bls luz15 cmp #$1e bls luz14 cmp #$2d bls luz13

Page 51: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

51 cmp #$3c bls luz12 cmp #$4b bls luz11 cmp #$5a bls luz10 cmp #$69 bls luz9 cmp #$78 bls luz8 cmp #$87 bls luz7 cmp #$96 bls luz6 cmp #$a5 bls luz5 cmp #$b4 bls luz4 cmp #$c3 bls luz3 cmp #$d2 bls luz2 cmp #$ff bls luz1 luz15 mov #$34,tam mov #$1A,tam1 jmp pwm1 luz14 mov #$30,tam mov #$18,tam1 jmp pwm1 luz13 mov #$2C,tam mov #$16,tam1 jmp pwm1 luz12 mov #$2C,tam mov #$16,tam1 jmp pwm1 luz11 mov #$28,tam mov #$14,tam1 jmp pwm1 luz10 mov #$24,tam mov #$12,tam1 jmp pwm1 luz9 mov #$22,tam mov #$11,tam1 jmp pwm1 luz8 mov #$1E,tam mov #$0F,tam1 jmp pwm1

Page 52: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

52luz7 mov #$1C,tam mov #$0E,tam1 jmp pwm1 luz6 mov #$18,tam mov #$0C,tam1 jmp pwm1 luz5 mov #$16,tam mov #$0B,tam1 jmp pwm1 luz4 mov #$12,tam mov #$09,tam1 jmp pwm1 luz3 mov #$10,tam mov #$08,tam1 jmp pwm1 luz2 mov #$0E,tam mov #$07,tam1 jmp pwm1 luz1 mov #$0A,tam mov #$05,tam1 jmp 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

Page 53: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

53 tempo ;Rotina de tempo infinita, apenas sai por interrupção bra tempo bra 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_1 sta copctl ;clear whatchdog lda cont_1 adc #$1 sta cont_1 bcs tempocont_2 bclr 7,tsc rti tempocont_2 mov #$00,cont_1 lda cont_2 adc #$1 sta cont_2 bcs volta bclr 7,tsc cli bclr 4,portb rti volta ;Se encerrado o timer, o programa volta fazendo nova leitura do ADC

bset 4,portb jmp 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 Vector dw nothing ; (No Vector Assigned $FFE2-$FFE3) dw nothing ; (No Vector Assigned $FFE4-$FFE5) dw nothing ; (No Vector Assigned $FFE6-$FFE7)

Page 54: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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 TIM dw nothing ; Overflow do canal 0 do TIM dw nothing ; Overflow do canal 1 do TIM dw nothing ; (No Vector Assigned $FFF8-$FFF9) dw nothing ; ~IRQ1 (por pino externo) dw nothing ; SWI Vector dw 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

Page 55: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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.

Page 56: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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

Page 57: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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üência

devera ser calculado um novo valor de razão cíclica.

Page 58: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

58

ANEXO ÚNICO !!!

Page 59: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

59

CARACTERÍSTICAS ELÉTRICAS DO MICROCONTROLADOR

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

Tab 15. Caracteristicas elétricas

Page 60: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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

Page 61: Manual Básico de Operação do Microcontrolador MC68HCJK3 e ...intranet.ctism.ufsm.br/gsec/Apostilas/MicrocontroladoresHC08.pdf · microcontroladores é de possuírem memória flash

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