Sei sulla pagina 1di 57
www.mackenzie.com.br APOSTILA MICROPROCESSADORES II SEGUNDO SEMESTRE 2005 PROF. MST. IVAIR REIS N. ABREU

www.mackenzie.com.br

www.mackenzie.com.br APOSTILA MICROPROCESSADORES II SEGUNDO SEMESTRE 2005 PROF. MST. IVAIR REIS N. ABREU

APOSTILA MICROPROCESSADORES II

www.mackenzie.com.br APOSTILA MICROPROCESSADORES II SEGUNDO SEMESTRE 2005 PROF. MST. IVAIR REIS N. ABREU
www.mackenzie.com.br APOSTILA MICROPROCESSADORES II SEGUNDO SEMESTRE 2005 PROF. MST. IVAIR REIS N. ABREU

SEGUNDO SEMESTRE 2005

PROF. MST. IVAIR REIS N. ABREU

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II PLANEJAMENTO DIDÁTICO PEDAGÓGICO DA DISCIPLINA MICROPROCESSADORES II

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

PLANEJAMENTO DIDÁTICO PEDAGÓGICO DA DISCIPLINA MICROPROCESSADORES II SEGUNDO SEMESTRE 2005 ESCOLA DE ENGENHARIA - PROF. MESTRE IVAIR R. NEVES ABREU

UNIDADE: Engenharia

DISCIPLINA: Microprocessadores II

PROFESSOR: Ivair R. Neves Abreu

Departamento: Eletrônica

ETAPA: 8

CARGA HORÁRIA: 2 aulas

SEMESTRE LETIVO: SEGUNDO

Introdução:

de Qualidade Total (TQM) tendo como base o principio PDCA ou seja, PLAN, DO, CHECK e ACT. O planejamento é o próprio documento proposto, com objetivos, pré-requisitos, plano de aulas, avaliação e bibliografia deixando bem claro a proposta do curso de forma a ajustar as expectativas necessárias. A ênfase no ciclo não apenas o processo de avaliação (comum em cursos pedagógicos) leva a entender que o objetivo é o processo de capacitação do aluno dentro do objetivo proposta através de um plano de aulas gradual, acompanhada de verificações contínuas e principalmente processo de ação corretiva.

a proposta deste planejamento pedagógico baseia-se no processo

Internet -> no site www.ivair.com.br, ler texto de Sistema PDCA (download) e acessar links de Sistemas da Qualidade.

09/09/2005

x------------------------------------------------------------------x Pré-Requisito -> 14 semanas -> Objetivo Final

22/11/2005

PRÉ-REQUISITOS: Microprocessadores I, Eletrônica Digital (Combinacional e Sequencial) e Programação Estruturada (Linguagem C).

OBJETIVO: ampliar a capacidade de projeto (HD) de sistemas programáveis (ênfase na utilização de periféricos) e programação estruturada (SW) Assembly e C. Estudo de periféricos LCD, teclado matricial, comunicação serial e conversor A/D. Estudo de sistemas para processamento digital de sinais

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II (DSP) e comparativo entre diferentes microcontroladores (Microchip,

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

(DSP) e comparativo entre diferentes microcontroladores (Microchip, Texas Instruments, Motorola, Cypress, Rabbit, etc).

EMENTA:

Revisão de Conceitos de Microprocessadores (Arquitetura e Linguagem Assembler) e Microcontrolador (família 8051). Periférico Display de Cristal Líquido. Periférico Teclado matricial (estudo de interrupção e temporização) Comunicação Serial Conversor Analógico / Digital. Introdução de Processadores para aplicações de PDS Estudo dos microcontroladores MSP430, Z8, 6811 e PIC.

METODOLOGIA Aula expositiva com auxílio de recursos audivisuais (principalmente

retroprojetor). O aluno deverá constantemente participar através de aplicação de

exercícios e projetos.

servirá de apoio didático durante as exposições. Trabalhos levarão o aluno a refletir sobre pontos avançados não abordados diretamente na sala de aula.

Uma apostila envolvendo todos os pontos abordados

CRITÉRIO DE AVALIAÇÃO

((P1 X 0,7) + (LAB X 0,2) + (T1 X 0,1)) X 0,5 + (P2 X 0,5)

onde: P1 = primeira prova semestral - 04/10/2005 P2 = segunda prova semestral. - SECRETARIA (a partir de 24/11) T1 = seminário Microcontroladores - 08/11/2005 Lab = laboratório

Média > 7 -> aluno aprovado 5,5<média<6.9 -> aprovado se freqüência > 80% Se média < 5 -> aluno reprovado

BIBLIOGRAFIA

- APLICAÇÕES PRÁTICAS DO MICRONTROLADOR 8051. Vidal Pereira da Silva Jr. - Érica

- DESBRAVANDO O PIC - AMPLIADO E ATUALIZADO PARA PIC16F628A. David de Souza e Nicolas Lavínia. Érica.

- MICROCONTROLADORES MSP430. Fabio Pereira. Érica

- THE 8051 FAMILY OF MICROCONTROLLERS. Richard H. Barnett. Prentice Hall.

- THE 8051 MICROCONTROLLER.

I. Schott Mackenzie. Prentice Hall.

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II - Using the MCS-51 Microcontroller 8051. HANG, Han-Way, 2000.

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

- Using the MCS-51 Microcontroller 8051. HANG, Han-Way, 2000. Ed. Oxford University

- C and the 8051. SCHULTZ, Thomas, 2001. Ed. Prentice Hall

- APOSTILA MICROPROCESSADORES APLICAÇÕES. Ivair Reis Neves Abreu

Internet:

www.microcontroller.com

www.8052.com

www.vidal.com.br

www.asm51.eng.br

www.icmaster.com www.microchip.com www.ti.com www.zilog.com www.motorola.com. www.cypress.com

www.asm51.eng.br

Plano de Aula: Segundo Semestre de 2005

Início: 09/08 Término: 22/11 Feriados: 15/11 Prazo entrega final das notas: 14/12 Falta Prevista: ---- Reposição: --- Aulas Previstas: 15 aulas de teoria.

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II 1) - Revisão da Arquitetura do Microcontrolador 8051 Planejamento

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

1) - Revisão da Arquitetura do Microcontrolador 8051

Planejamento (P):

Este capítulo capacitará o aluno a:

- Rever os conceitos de sistema programável.

- Rever conjunto de instruções do microcontrolador 8051.

- Projetos de CLPs Digitais.

Execução (D)

1.1) - Família de Microcontroladores INTEL MCS-51:

Os principais recursos destes microcontroladores são:

- Memória de Programa de 4 kbytes: ROM (8051), EPROM (8751). Versão

"romless" (8031).

- 256 bytes de RAM (registradores)

- 4 ports (latchs bidirecionais programáveis) com 8 bits.

- 2 temporizadores ("timers") de 16 bits

- 1 unidade serial assíncrona (UART) "full-duplex".

- 5 interrupções (2 externas, 2 "timers" e 1 "UART").

- Oscilador interno para geração de temporização.

- Acesso a até 64 Kbytes de RAM externa (dados) e 64 Kbytes de EPROM

(programa) externa através do controle de 2 sinais de leitura (PSEN -> área de programa - RD -> área de dados). Esta estrutura é conhecida como 'arquitetura HARVARD'.

- 256 instruções otimizadas para controle.

1.2) - Sistema Mínimo com o 8051:

- 32 sinais de entrada/saída

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II FIGURA 1.1 - Interface serial (RxD e TxD), interrupções

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II FIGURA 1.1 - Interface serial (RxD e TxD), interrupções externas

FIGURA 1.1

- Interface serial (RxD e TxD), interrupções externas (INT0 e INT1), "timer" duplo externo (T0 e T1).

(INT0 e INT1), "timer" duplo externo (T0 e T1). FIGURA 1.2 1.3) - Códigos de operação

FIGURA 1.2

1.3) - Códigos de operação do microcontrolador 8051:

1.3.1) - Instruções de transferência de informação:

APOSTILA DE TEORIA o d e s t i n o - MOVdestino,fonte - MOVA,Rn

APOSTILA DE TEORIA

o destino

- MOVdestino,fonte

- MOVA,Rn

MACKENZIE

MICROPROCESSADORES II

;transfere (copiando) o dado da fonte para

 

-

MOVA,direto

-

MOVA,@Ri

-

MOVA,#dado

-

MOVRn,A

-

MOVRn,direto

-

MOVRn,#dado

-

MOVdireto,A

-

MOVdireto,Rn

-

MOVdireto,direto

-

MOVdireto,@Ri

-

MOVdireto,#dado

-

MOV@Ri,A

-

MOV@Ri,direto

-

MOV@Ri,#dado

-

MOV DPTR,#dado (16) ;carrega DPTR com dado de ;16 bits (pois a memória ;externa tem capac. de

 

;64k)

-

MOVC

A,@A+DPTR

;leitura de tabela da ROM com endereço

armazenado em A (offeset) + DPTR (início da tabela)

- MOVC

A,@A+PC

;idem com end. inicial em PC

- MOVX

A,@Ri

;le dado de mem. ext. ;endereçado por Ri

- MOVX

A,@DPTR

- MOVX

@Ri,A

- MOVX

@DPTR,A

;escreve dado no acum. na ;memória ext.

- XCH A,Rn

- XCH A,direto

- XCH A,@Ri

- A,@Ri

XCHD

;troca dados do acum. com reg.

;troca apenas nibble inferior

1.3.2) - Instruções Aritméticas:

- Instruções de Soma:

- ADD A,Rn

- ADD A,direto

- ADD A,@Ri

- ADD A,#dado

;Acum + Rn = Acum.

- ADDC

A,Rn

;Acum + Rn + Carry = Acum.

- ADDC

A,direto

- ADDC

A,@Ri

- ADDC

A,#dado

- ADDC

A,Rn

- INC

A

;Acum+1 = Acum

- INC Rn

APOSTILA DE TEORIA MACKENZIE - INC direto - INC @Ri - INC DPTR - Instruções

APOSTILA DE TEORIA

MACKENZIE

- INC direto

- INC @Ri

- INC DPTR

- Instruções de Subtração:

MICROPROCESSADORES II

- SUBB

A,Rn

;Acum - Rn = Acum.

- SUBB

A,direto

- SUBB

A,@Ri

- SUBB

A,#dado

- DEC A

- DEC Rn

- DEC direto

- DEC @Ri

;Acum-1=Acum

- Multiplicação: o resultado de 16 bits é armazenado no Acumulador (LSB) e no registrador B (MSB).

- MUL A,B ;multiplica dado de A por B

- Divisão: a parte inteira do resultado é armazenado no acumulador e o resto no registrador B.

- DIV A,B ;divide A por B

- Ajuste decimal: soma o número 6 ao nibble superior a 9. Instrução para ajuste decimal.

- DA

A

1.3.3) - Instruções Lógicas:

- Instruções AND:

- ANL A,Rn

;A ^ Rn = A

- ANL A,direto

- ANL A,@Ri

- ANL A,#dado

- Instruções OU:

- ORL A,Rn

;A OU Rn = A

- ORL A,direto

- ORL A,@Ri

- ORL A,#dado

- Instruções OU-EXCLUSIVO:

- XRL A,Rn

- XRL A,direto

;A OU-EXC Rn = A

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II - XRL A,@Ri - XRL A,#dado - Rotação: divisão/multiplicação

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

- XRL A,@Ri

- XRL A,#dado

- Rotação: divisão/multiplicação binária

- RR

A

;acumulador 1 posição para a

;rotaciona todo os bits do

;direita. O bit 1 é deslocado para ;o oitavo bit

;rotacionado para o carry e o bit ;deste para o oitavo bit do ;acumulador

- RRC A

;o primeiro bit o acumulador é

- RL

- RLC A

- Complementação:

A

;idem a RR mas invertendo a direção

;idem a RLC mas invertendo a dir.

CPL A

- ;complementa todos os bits do acum.

- ;zera acumulador

- SWAP

CLR A

A

;troca os nibbles do acumulador

1.3.4) - Instruções de Transferência de Controle:

- end(8) ;carrega PC com endereço de 8 bits

- end(11);carrega PC com endereço de 11 bit

- end(16);carrega PC com endereço de 16 bit

- JMP @A+DPTR ;carrega PC com endereço (A+DPTR)

- JNZ end(8) ;se Z=0, salta para endereço

- end(8) ;se Z=1, salta para endereço

SJMP

AJMP

LJMP

JZ

- end(11) ;salta para a subrotina de endereço indicado. PCH-

ACALL

>(SP+1), PCL->(SP+2) e SP->SP+2

- end(16)

- RET

LCALL

;idem com end. de 16 bits

;resgata endereço da pilha, retornando ao ponto

da chamada de subrotina. SP->PCL,

SP-1->PCH e SP=SP-2

- RETI

;retorno de subrotinas de interrupção.

PUSH

- direto

;salva na pilha (SP+1) dado direto

- POP direto

;resgata da pilha (SP-1) dado direto

;se A direto, saltam ;se A #dado, saltam ;se Rn #dado, saltam

- A,direto,end(8)

CJNE

- A,#dado,end(8)

CJNE

CJNE

CJNE

- Rn,#dado,end(8)

- @Ri,#dado,end(8) ;se (Ri)#dado, saltam

- DJNZ

Rn,end(8)

;decrementa Rn. Se Rn0, ;retorna ao endereço

- DJNZ

direto,end(8)

;idem utilizando dado ;direto como contador.

1.3.5) - Instruções Booleanas:

APOSTILA DE TEORIA MACKENZIE - ;zera bit Cy CLR C - ;zera bit especificado CLR

APOSTILA DE TEORIA

MACKENZIE

- ;zera bit Cy

CLR C

- ;zera bit especificado

CLR bit

- SETB

C

;seta bit Cy

- SETB

bit

;seta bit especificado

- ;complementa Cy

CPL C

MICROPROCESSADORES II

-

CPL bit

;complementa bit

-

ANL C,bit ;operação "and" entre o Cy e o bit

- ANL C,/bit;operação "and" entre o Cy e o inverso ;do bit especificado

- ORL C,bit ;operação "OU" entre o Cy e o bit

- ORL C,/bit;operação "OU" entre o Cy e o inverso ;do bit especificado

- MOVC,bit ;copia bit especificado para o Cy

- MOVbit,C ;copia Cy para o bit

- JNC end(8);salta para o endereço especificado se ;Cy é zero

-

JC ;Cy é um

end(8);salta para o endereço especificado se

-

JB

bit,end(8) ;salta para o endereço espec.

 

;se bit=1

-

JNB bit,end(8) ;salta para o endereço espec. ;se bit=0

-

JBC bit,end(8) ;salta e zera o bit se o mesmo ;estiver setado

Verificação (C):

1.4) - Exercícios

1) - Fazer um projeto de um sistema de controle de iluminação residencial com as seguintes características:

- 8031

- EPROM 2764

- Comunicação serial RS232

- 1 sensor fotoelétrico

- 5 lâmpadas externas

- 1 chave para a sala 1

- 3 lâmpadas para a sala 1

- 1 chave para a sala 2

- 3 lâmpadas para a sala 2

- Fazer um programa para as lâmpadas externas serem controladas pelo sensor

fotoelétrico e as lâmpadas das salas 1 e 2 serem controladas pelas chaves.

2) - Idem para o microtrolador 89S51 e mais 4 salas com 3 lâmpadas cada.

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II 3) - Projeto de um alarme com o 89S52,

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

3) - Projeto de um alarme com o 89S52, memória RAM 62512, 6 sensores de janela, 2 sensores de presença, 1 chave liga-desliga, 1 buzina, 2 lâmpadas. Fazer um firmware para, se ligado o alarme, ligar as saidas 10 segundos depois que qualquer entrada estiver ativada depois de verificada a chave liga / desliga (caso do usuário desligar o alarme).

Ação (A):

- Se os exercícios (Check) acima indicarem pontos de dúvidas é fundamental para o bom andamento do resto do curso recomenda-se a revisão do respectivo conceito.

- Mesmo não havendo dúvidas é altamente recomendável os exercícios serem compilados, simulados e quando possível emulados (gravados na memória Flash / Eprom do kit) com as ferramentas do laboratório.

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II 2) - Display LCD programável Planejamento (P): Este capítulo

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

2) - Display LCD programável

Planejamento (P):

Este capítulo capacitará o aluno a:

- Projetar interfaces com displays de LCD (segmentos e módulos) com acesso através de ports ou com endereçamento de memória.

- Utilizar rotinas de configuração e escrita em displays de LCD.

- Projetar CLP utilizando ports e módulos de LCD.

Execução (D):

Links:

http://www.intech-lcd.com.hk/

www.displaytec.com.br

2.1) - Display LCD com acionamento direto nos segmentos

Composto de 3 camadas (2 de vidro e o líquido cristal líquido no meio). A camada superior possuiu a “impressão” dos segmentos ativos ligados a pinos individuais. A camada inferior de vidro compõe o polarizador (ligados a pinos de controle) normalmente ligado a um sinal alternado entre 30 Hz e 100 Hz.

Para acender o segmento específico, basta ligar o segmento com potencial invertido em relação ao polarizador. Em função desta característica, é comum a utilização de chips de controle ou um firmware dedicado a gerar as funções necessárias pelos ports.

APOSTILA DE TEORIA MACKENZIE Exemplo: Decodificador BCD - LCD (4056) MICROPROCESSADORES II Figura 2.1 -

APOSTILA DE TEORIA

MACKENZIE

Exemplo: Decodificador BCD - LCD (4056)

MICROPROCESSADORES II

DE TEORIA MACKENZIE Exemplo: Decodificador BCD - LCD (4056) MICROPROCESSADORES II Figura 2.1 - Decodificador 4056
DE TEORIA MACKENZIE Exemplo: Decodificador BCD - LCD (4056) MICROPROCESSADORES II Figura 2.1 - Decodificador 4056

Figura 2.1 - Decodificador 4056 (STM)

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II Figura 2.2 - Display LCD 3 e ½ caracteres

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II Figura 2.2 - Display LCD 3 e ½ caracteres (Intech)

Figura 2.2 - Display LCD 3 e ½ caracteres (Intech)

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II Projeto de um display LCD 3 e ½ segmentos

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

Projeto de um display LCD 3 e ½ segmentos com o microcontrolador 8051:

Verificação (C):

Exercícios:

1) - Projetar um sistema com o 89S51 e um display de 8 dígitos (ver modelo disponível).

2) - Laboratório: montar na área de expansão do Kit com sistema para um display de 3 e ½ segmentos utilizando o CI 4056. Fazer um programa para escrever no display os números 1 2 3 4

Ação (A):

Estudar conceito de display LCD com segmentos no caso de falta de compreensão do primeiro exercício.

2.2) - Módulo de Display LCD:

Atualmente estão disponíveis no mercado uma grande variedade de Displays de Cristal Líquido com circuitos de controle e processamento interno que

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II visam facilitar o projeto de hardware e a rotina

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

visam facilitar o projeto de hardware e a rotina de programação destes tipos de dispositivos de saída. A figura a seguir mostra os principais controles destes tipos de displays:

mostra os principais controles destes tipos de displays: Figura 2.3 -Arquitetura básica dos displays L.C.D. Figura

Figura 2.3 -Arquitetura básica dos displays L.C.D.

Figura 2.3 -Arquitetura básica dos displays L.C.D. Figura 2.4 - Display 16 x 2 ( www.displaytec.com.br

Figura 2.4 - Display 16 x 2 (www.displaytec.com.br)

Descrição dos sinais:

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II - D0-D7 : barramento de dados com dupla função:

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

- D0-D7: barramento de dados com dupla função: envio dos comandos de

programação do display (posicionamento do cursor, endereço do caracter a ser utilizado, etc.) e dos dados a serem escritos no display.

_

- C/D (RS): em nível baixo, indica que o barramento de dados D0-D7

carrega a informação de controle (configuração geral do display). Em nível alto, informação de dados (informação a ser mostrado no display). Sinal normalmente ligado ao endereço A0 (endereço ímpar -> dado; endereço par -> controle)

- E: sinal que em nível alto habilita o display. Nos modelos com 4 linhas,

utilizamos um sinal E1 para a habilitação das 2 primeiras linhas e um sinal E2 para a habilitação das 2 últimas linhas.

_

- R/W: sinal de entrada indicando em nível baixo processo de escrita

(barramento de dados como entrada) e em nível alto processo de leitura (barramento de dados como saída).

- Vo: entrada de tensão para controle de luminosidade do display

- Vss/GND: entrada de alimentação única de +5 Vcc.

Comercialmente, citamos abaixo alguns dos modelos disponíveis:

- Display 8 caracteres x 1 linha, caracter com 7 pontos verticais e 5 pontos horizontais

- Display 16x1, caracter 8x5

- Display 16x1, caracter 11x5

- Display 16x2, caracter 8x5

- Display 20x2, caracter 8x5

- Display 20x4, caracter 8x5

- Display 40x1, caracter 8x5

- Display 40x2, caracter 8x5

- Display 40x4, caracter 8x5

Para display de 40 x 2 ou 40 x 4 temos 2 sinais de seleção Enable (E).

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II Figura 2.5 - Display 40 x 4 ( www.displaytec.com.br

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II Figura 2.5 - Display 40 x 4 ( www.displaytec.com.br )

Figura 2.5 - Display 40 x 4 (www.displaytec.com.br)

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II 2.3) - Sistema mínimo com o display L.C.D. :

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

2.3) - Sistema mínimo com o display L.C.D. :

Figura 2.6 - Sistema mínimo display L.C.D com endereçamento de memória

Figura 2.7 - Sistema Mínimo com o display L.C.D. utilizando Ports

APOSTILA DE TEORIA Verificação (C): Exercícios: MACKENZIE MICROPROCESSADORES II 1) - Projetar uma interface com

APOSTILA DE TEORIA

Verificação (C):

Exercícios:

MACKENZIE

MICROPROCESSADORES II

1) - Projetar uma interface com módulo de LCD 20 x 2 utilizando endereçamento por memória E000-FFFFh

2) - Utilizando um microprocessador 2051 (www.atmel.com) com 2 ports, projetar uma interface LCD com displays 40x4

Ação (A):

- Havendo problemas no resultado dos exercícios propostos, estudar o conceito de módulo de LCD (ver bibliografia básica).

2.4) - Programação Módulo do Display:

2.4.1) Controle (C/D = 0)

Com o sinal C/D colocado em nível baixo temos a configuração básica do display. Os principais comandos são listados abaixo:

- Configura display para 1 linha (8 bits) -> 30H

- 2 linhas (8 bits) -> 38H

- Display ativado com cursor fixo -> 0EH

- Display ativado com cursor intermitente -> 0CH

- Cursor apagado -> 08H

- Mensagem com deslocamento à esquerda -> 07H

- Mensagem com deslocamento à direita -> 05H

- Cursor com deslocamento à esquerda -> 04H

- Cursor com deslocamento à direita -> 06H

- Limpa display e retorna o cursor -> 01H

- Desloca somente cursor à esquerda -> 10H

- Desloca somente cursor à direita -> 14H

Exemplo:

1) - Inicializar display com 2 linhas, ligado com cursor intermitente, deslocamento à esquerda e limpando o display.

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II ;* PRIMEIRA MANEIRA DE IMPLEMENTAR UMA INICIALIZAÇÃO MOV DPTR,#00

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

;* PRIMEIRA MANEIRA DE IMPLEMENTAR UMA INICIALIZAÇÃO

MOV DPTR,#00

MOV A,#38H

MOVX

CALL TEMPO15

;COLOCA END.A0 (C/D) = 0 -> CONTR. ;2 LINHAS

@DPTR,A

;ESPERA 15 MSEG.

;DISPLAY INTERMITENTE @DPTR,A

MOV A,#0CH

MOVX

CALL TEMPO15

MOV A,#05H

MOVX

CALL TEMPO15 MOV A,#01H

;DESLOCAMENTO A DIREITA @DPTR,A

2) - Idem para 1 linha, sem cursor, deslocamento à direita e limpando o display.

Para o posicionamento do cursor/mensagem dentro do display basta fornecermos como comando o endereçamento da tabela de endereçamento do display fornecida abaixo:

1P

2P 3P

39P 40P

1 L -> 80H 81H 82H

A6H A7H

2 L -> C0H C1H C2H

E6H E7H

Exemplo:

1) - Posicionar o cursor na primeira posição do display.

mov

r0,#00 ;controle

mov

a,#80h

;posiciona cursor

movx @r0,a

2) - Posicionar o cursor no meio da primeira linha do display de 20 caracteres.

2.4.2) Programação de Dados (C/D = 1)

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II Para a escrita de dados no display, colocamos o

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

Para a escrita de dados no display, colocamos o comando C/D em nível ALTO (endereço impar). O display necessita ser inicializado e o cursor posicionado na posição do primeiro caracter. Uma vez posicionado este caracter, automaticamente o display incrementa a posição do cursor, não necessitando de reprogramações constantes do posicionamento do display.

Exemplo:

1) - Escrever a letra ‘CASA’ no meio da primeira linha de um display 16 x 2.

mov

r0,#00 ;controle

mov

a,#85h

;posiciona no meio do display

movx @r0,a

call

tempo15

mov

ro,#01 ;dado

mov

a,#’c’ ;escreve ‘c’ em ascii

movx @ro,a

call

tempo15

mov

a,#’a’ ;escreve ‘a’ em ascii

movx @ro,a

call

tempo15

mov

a,#’s’ ;escreve ‘s’ em ascii

movx @ro,a

call

tempo15

mov

a,#’a’ ;escreve ‘a’ em ascii

movx @ro,a

call

tempo15

ret

2) - Idem para a segunda linha

Verificação (C):

2.4) - Exercícios:

1) - Escrever a palavra ‘ENGENHARIA MACKENZIE’ no centro da primeira linha de um display 2 x 16.

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II 2) - Escrever seu nome completo (abreviado se necessário)

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

2) - Escrever seu nome completo (abreviado se necessário) centralizado na primeira linha e seu código de matrícula centralizado na segunda linha.

3) - Fazer um projeto de um sistema com o 8031 com um display de 32 caracteres, RAM de 8Kbytes 6264 (endereço 2000h - 3fffh) e EPROM de 8kbytes 2764. Utilizar o endereço 0001H para acesso os registros de dado do display e o endereço 0000H para controle. Fazer uma rotina para escrever na primeira linha a palavra 'ENGENHARIA' e na segunda a palavra 'MACKENZIE'.

4) – Piscar com intervalo de 1 segundo as mensagens:

NOME

TURMA

CODIGO

SALA

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II 3) - Sistema de Temporização e Interrupção do 8051

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

3) - Sistema de Temporização e Interrupção do 8051 - Teclado Matricial

Planejamento (P):

Este capítulo capacitará o aluno a:

- Entender o conceito de interrupção e temporização.

- Aplicar estes conceitos a microcontroladores.

- Projeto de Teclados Matriciais.

- Programação de uma rotina de leitura de teclado matricial.

- Exercícios integrando LCD e Teclado Matricial.

3.1) - Sistema de Interrupção:

O conceito básico de interrupção foi abordado no curso anterior Microprocessadores I.

Particularizando o conceito para o microcontrolador 8051, esta família possui 5 interrupções com vetores fixos, com a prioridade mais alta podendo ser programada pelo registrador IP. O nível de prioridade default e os vetores de interrupção são apresentados abaixo:

IE0 (interrupção externa 0) TF0 (interrupção do timer 0) IE1 (interrupção externa 1) TF1 (interrupção do timer 1) SRT (interface serial)

-> 0003H -> + prioridade -> 000BH -> 0013H -> 001BH -> 0023H -> - prioridade

As interrupções do 8051 são do tipo “nesting” , ou seja, a interrupção acontecendo INTERROMPE o programa e a interrupção que está sendo executada, desde que tenha a prioridade mais alta (ver IP abaixo). Se o nível for a mesma será obedecida a prioridade interna acima. As interrupções externas são sensíveis a borda de subida ou a nível (alto). As interrupções do timer são ativadas internamente e a interrupção serial pelo fim da transmissão ou recepção da UART.

- Registrador de habilitação do sistema de interrupção:

IE:

| EA | x | x | ES | ET1 | EX1 | ET0 | EX0 |

EA:

em nível baixo, desabilita todas as interrupções

ES:

em nível baixo, desabilita interrupção serial

ET1:

em nível baixo, desabilita interrupção do timer 1

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II EX1: em nível baixo, desabilita interrupção externa 1 ET0:

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

EX1: em nível baixo, desabilita interrupção externa 1

ET0:

EX0: em nível baixo, desabilita interrupção externa 0

- Registrador do nível de prioridade:

IP:

PS: em nível alto, interrupção serial prioridade 1. Caso contrário, 0. PT1:em nível alto, interrupção timer 1 prioridade 1. Caso contrário, 0. PX1:em nível alto, interrupção externa 1 prioridade 1. Caso contrário, 0. PT0:em nível alto, interrupção timer 0 prioridade 1. Caso contrário, 0. PX0:em nível alto, interrupção externa 0 prioridade 1. Caso contrário, 0.

em nível baixo, desabilita interrupção do timer 0

| x | x | x | PS | PT1 | PX1 | PT0 | PX0 |

Verificação (C):

Exercícios:

1) - Inicializar um programa habilitar as interrupções TIMER0, EXT1 e SERIAL. Prioridade máxima para a unidade SERIAL (incluir na rotina CONFIG)

2) - Desabilitar apenas a unidade SERIAL, gerar um pulso de 0,5 segundos e ativar a interrupção serial.

3) - Supondo uma chave (ativa em nível alto) ligada a IE0 (pino 3.2), gerar um pulso de 5 segundos em P1.0 cada vez que a chave for acionada. Enviar para o LCD a mensagem CHAVE ATIVADA pelo mesmo tempo. Compilar, simular e emular no KIT do laboratório este processo.

4) - Idem para a IE1 (pino 3.3).

5) - Projetar um sistema de acesso com catraca do o 89S51 com a seguinte configuração:

CONTROLADOR DE

- Display de LCD (end. 2000-3fffh). ACESSO.

- Catraca com sensor tipo “reed switch” entrando a interrupção IE0. Contar o

número de eventos incrementando o registrador 30H (a partir do zero) tocando um

buzzer (P1.0) por 0,5 segundos a cada acesso. Quando o valor do registrador 30H chegar a 100 pessoas, acionar o buzzer por 5 segundos colocando pelo mesmo tempo a mensagem LOTACAO MAXIMA 256 PESSOAS.

- Uma chave em P1.2 inicializa o contador e volta ao início.

Compilar, simular e emular o programa no KIT do laboratório.

Mensagem padrão:

APOSTILA DE TEORIA Ação (A): MACKENZIE MICROPROCESSADORES II - Havendo problemas no resultado dos exercícios

APOSTILA DE TEORIA

Ação (A):

MACKENZIE

MICROPROCESSADORES II

- Havendo problemas no resultado dos exercícios propostos, estudar o conceito de módulo de interrupção externa. Importante a utilização das ferramentas de laboratório.

3.2) - Aplicação de interrupção externa -> Sistema de Leitura direta de teclas.

A chave é lida de forma direta pelo microcontrolador. Apesar da grande simplicidade de programa para a leitura das chaves, apresenta como desvantagem a ocupação ao nível de hardware de grande número de ports.

Ex.: Leitura de 16 chaves -> Port 1 e 2 (16 ports). Fazer um programa para ler

cada chave é colocar sua condição nos bits 20.0H a 21.7H (endereços binários 00

a 0Fh).

Figura - Varredura direta de 16 teclas

Pode-se observar que o acionamento de qualquer tecla provoca uma interrupção INT0. Portanto, o programa de tratamento das teclas deve-se localizar no endereço da interrupção externa 0 (03H):

;* PROGRAMA DE LEITURA DE 16 TECLAS DOS PORTS P1 E P2

ORG 0

JMP

INICIO

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II INICIO: ORG 03h JMP LETEC ;SALTA PARA A LEITURA

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

INICIO:

ORG 03h

JMP

LETEC

;SALTA PARA A LEITURA DAS TECLAS

ORG 30H

MOV SP,#PILHA

MOV IE,#10000001B

;INICIO NORMAL DO PROGRAMA

.

.

.

;* ROTINA DE TRATAMENTO DO TECLADO

LETEC:

PUSH PSW

MOV

C,P1.0

;LE TECLA 0

MOV 20.0,C

;COLOCA TECLA 0 NA AREA BOOLEANA

MOV C,P1.1

MOV 20.1,C

 

.

.

.

MOV

C,P2.7

;LE ÚLTIMA TECLA

MOV 21.7,C

POP

PSW

RETI

Verificação (C):

Exercício

1) - Fazer um programa utilizando a rotina de leitura de teclado acima para a tecla 3 ligar um led (P3.4) e a tecla 4 desligar o mesmo led. Emular este programa no simulador AVSIM51.

2) - Idem com 4 leds (em P1.0 a P1.3) sendo que o primeiro led é controlado pela chaves 1 e 2, o segundo led pelas chaves 3 e 4, etc. Utilizar IE1 para o teclado.

3.3) - Sistema de temporização (Timers ) 8051:

O microcontrolador da família 8051 possui 2 timers de 16 bits. Seu número programado é incrementado por pulsos externos (dos pinos Tin1 e Tin2) ou pelo

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II clock interno de 1/12 fcristal. Quando o número do
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
clock interno de 1/12 fcristal. Quando o número do timer chega a zero, a
interrupção respectiva (TF0 - end. 000bH ou TF1 - end. 001bH) é acionada.

Figura - Timer 8051 - Modo 1 (fonte: Atmel)

Registradores do sistema de temporização:

- Registrador TH0 e TL0: registradores de 8 bits do timer 0 localizado na

área de registradores especiais (SFR) que somados formam o contador de 16 bits.

- Registrador TH1 e TL1: registradores de 8 bits do timer 1 localizado na

área de registradores especiais (SFR) que somados formam o contador de 16 bits.

- Registrador de modo:

---------------------- ----------------------

TMOD: | GATE | C/T | M1 | M0 | GATE | C/T | M1 | M0 | ---------------------- ----------------------

TIMER 0

TIMER 1

GATE: utilizado quando se deseja um controle do timer externo através do pino externo INT0 ou INT1 (dependendo do timer utilizado). Quando este bit está em 1 e o pino INT externo está setado, o bit TR1 do registrador TCON controla o funcionamento do timer.

-

C/T: em nível alto, coloca o timer como contador dos pulsos da entrada Tin1 (externa). Em nível baixo, o timer é acionada pelo sinal de freqüência 1/12 do oscilador interno.

M1

M0

:

controla modo de operação do timer

0

0

->

possuiu um divisor de 5 bits (TL) e um

 

contador de 8 bits (TH)

0

1

->

sem divisor, possuiu contador de 16 bits

1

contador de 8 bits (TH). O byte TH é recarregado a cada ciclo em TL

0

->

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II 1 1 -> para timer. - Registrador de controle

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

1

1

->

para timer.

- Registrador de controle

------------------------------------------------------

TCON:

----------------------- -------------------------------

TF0: bit de status. Em nível alto indica overflow do

| TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0|

timer 0.

TR0: em nível alto habilita o funcionamento do timer 0. Precisa ser setado para o timer operar.

IE0: bit de status. Em nível alto indica que houve

pulso na

entrada do pino Tin0. IT0: em nível alto indica pulso positivo na entrada do Tin0. Em nível baixo indico pulso negativo.

pino

Ex.: Configurar o timer 0 para temporização de 16 bits e timer 1 para temporizador de 8 bits com carregamento automático. Colocar o número 0AB5H no timer 0 e 20H no timer 1.

Verificação (C):

Exercícios

1) - Qual o tempo máximo possível de ser implementado pelos timer 0 e 1 se utilizarmos um cristal de 12 Mhz para o cristal externo.

2) - Idem ao exercício anterior utilizando um cristal de 1 Mhz externo.

3) - Se utilizarmos o timer 0 controlado pela entrada externa 0 (pino T0), qual o tempo máximo de temporização se recebermos um sinal externo quadrado de 1 Khz?

4) - Calcular o valor a ser configurado o timer do 8051 para fc = 12 Mhz e tempo do timer de 10 mseg. Fazer o programa de configuração.

5) - Idem para fc = 6 Mhz e tempo de 20 mseg.

6) - Fazer um projeto de um CLP para controlar nível de tanque. Fazer uma rotina para a cada 100 mseg (supor que o cristal do microcontrolar é de 6 Mhz) o sensor de nível de um posição da chave localizada no port P1.0 seja armazenado na posição de memória booleana 20.0H. Se a chave estiver em nível alto, ligar uma válvula de alívio localizado no port P1.1. Caso contrário, desligar a válvula. Utilizar o timer 0 para implementar a temporização. Escrever em um LCD <

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II CONTROLE DE 1 TANQUE>. IMPORTANTE: COMPILAR ESTE PROGRAMA E

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

CONTROLE DE 1 TANQUE>. IMPORTANTE: COMPILAR ESTE PROGRAMA E SIMULAR NO AMBIENTE DO LABORATÓRIO (SIMULADOR + KIT).

7) - Idem para 4 tanques (P1.0 a P1.3 para os sensores e P1.4 a P1.7 para as

válvulas). Utilizar Timer 1 com tempo de leitura de 30 msegundos e cristal de 12

Mhz.

Escrever em um LCD < CONTROLE DE 4 TANQUES>.

8) - Fazer um programa para o port P1.0 gerar um pulso de 0,5 segundo quando 10 garrafas passarem por um feixe luminoso. Utilizar o timer 0 configurado como contador.

9) - Gerar um sinal de 10 Khz no port P1 utilizando o Timer 0. Idem para 5 Khz e 2 kHz.

10) - Fazer um relógio de 1 segundo (utilizando T0, fc = 12 Mhz). Colocar no display o valor do dígito. Dica: criar um contador de 20 eventos para um timer de 50 msegundos.

11) - Utilizando o kit do laboratório, fazer o led do kit piscar 2 vezes por segundo utilizando o timer 0. Escrever no LCD <LED PISCANDO 2 HZ>

Ação (A):

- Havendo problemas no resultado dos exercícios propostos, estudar o conceito de temporização. Importante a utilização das ferramentas de laboratório.

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II 3.4) - Sistema de varredura de Teclado/Display. As teclas

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

3.4) - Sistema de varredura de Teclado/Display.

As teclas estão localizadas na intersecção de linhas (ports de saída) e colunas (ports de entrada). Ao acionar uma determinada tecla, o sinal da linha é colocado na coluna para ser lida. Um sistema de varredura (com freqüência superior da freqüência de toque das teclas) garante um sinal em nível alto (ou baixo) durante um pequeno período suficiente para ser reconhecido pelo port de entrada em caso de acionamento de alguma tecla.

Figura - Teclado de 16 teclas com varredura matricial

O programa abaixo faz a leitura de 16 chaves utilizando o PORT 1. Utilizar os 4 bits P1.0 a P1.3 para gerar os sinais de varredura. Fazer um programa para ler cada chave é colocar sua condição nos bits 20.0H a 21.7H. Ler o teclado a cada 10 mseg. utilizando o timer 0.

;* timer 0 -> 0d8efH (calculado no exercício 5 - item 2.3)

;* definição dos ports

COLUNA1

BIT

P1.0

COLUNA2

BIT

P1.1

COLUNA3

BIT

P1.2

COLUNA4

BIT

P1.3

LINHA1

BIT

P1.4

LINHA2

BIT

P1.5

LINHA3

BIT

P1.6

LINHA4

BIT

P1.7

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II ;* definição da área boolena CHAVE1 EQU 0 ;*POSIÇÃO

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

;* definição da área boolena

CHAVE1

EQU

0

;*POSIÇÃO 20.0

CHAVE2

EQU

1

CHAVE3

EQU

2

CHAVE4

EQU

3

CHAVE5

EQU

4

CHAVE6

EQU

5

CHAVE7

EQU

6

CHAVE8

EQU

7

CHAVE9

EQU

8

CHAVE10

EQU

9

CHAVE11

EQU

0aH

CHAVE12

EQU

0bH

CHAVE13

EQU

0cH

CHAVE14

EQU

0dH

CHAVE15

EQU

0eH

CHAVE16

EQU

0fH

;POSIÇÃO 21.7

;* INICIO DO PROGRAMA

 

ORG

0

JMP

INICIO

ORG

0BH

;TIMER 0

JMP

LECHAVE

ORG

30H

INICIO:

MOV

SP,#60H

MOV

IE,#10000010B

MOV

TH0,#0D8H

;HABILITA TIMER 0 ; TIMER 0 - 10 MSEG.

MOV

TL0,#0EFH

MOV

TMOD,#00010001B

SETB

TR0

;LIGA TIMER0

CLR

TR1

;DESLIGA TIMER1

.

;*SUBROTINA DA INTERRUPÇÃO

LECHAVE:

MOV

TH0,#0D8H

MOV

TL0,#0EFH

MOV

20H,#00H

;ZERA ÁREA BOOLENA

MOV

21H,#00H

SETB

LINHA1

;SETA LINHA1

APOSTILA DE TEORIA SETB LINHA2 SETB LINHA3 SETB LINHA4 MACKENZIE ;* INICIA VARREDURA DA LINHA1

APOSTILA DE TEORIA

SETB

LINHA2

SETB

LINHA3

SETB

LINHA4

MACKENZIE

;* INICIA VARREDURA DA LINHA1

MICROPROCESSADORES II

 

CLR

LINHA1

;ZERA LINHA 1

JB

COLUNA1,SALTO1

;SE A TECHA1 NAO

ESTIVER

;ACIONADA, SALTA

 

SETB

CHAVE1

;INDICA CHAVE1 ACIONADA

SALTO1:

JB

COLUNA2,SALTO2

;SE A TECLA2 NAO

ESTIVER

 

SETB

CHAVE2

;ACIONADA, SALTA ;INDICA CHAVE2 ACIONADA

SALTO2:

JB

COLUNA3,SALTO3

SETB

CHAVE3

SALTO3:

JB

COLUNA4,SALTO4

SETB

CHAVE4

SALTO4:

SETB

LINHA1

;LIBERA LINHA 1

CLR

LINHA2

;ZERA LINHA 2

JB

COLUNA1,SALTO5

;SE A TECHA5 NAO

ESTIVER

;ACIONADA, SALTA

 

SETB

CHAVE5

;INDICA CHAVE5 ACIONADA

SALTO5:

JB

COLUNA2,SALTO6

;SE A TECLA6 NAO

ESTIVER

 

SETB

CHAVE6

;ACIONADA, SALTA ;INDICA CHAVE6 ACIONADA

SALTO6:

JB

COLUNA3,SALTO7

SETB

CHAVE7

SALTO7:

JB

COLUNA4,SALTO8

SETB

CHAVE8

SALTO8:

SETB

LINHA2

;LIBERA LINHA 2

CLR

LINHA3

;ZERA LINHA 3

JB

COLUNA1,SALTO9

;SE A TECHA9 NAO

ESTIVER

 

SETB

CHAVE9

;ACIONADA, SALTA ;INDICA CHAVE9 ACIONADA

SALTO9:

JB

COLUNA2,SALTO10;SE A TECLA10 NAO ESTIVER ;ACIONADA, SALTA

SETB

CHAVE10

;INDICA CHAVE10 ACIONADA

SALTO10:

JB

COLUNA3,SALTO11

SETB

CHAVE11

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II SALTO11: JB COLUNA4,SALTO12 SETB CHAVE12 SALTO12:

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

SALTO11:

JB

COLUNA4,SALTO12

SETB

CHAVE12

SALTO12:

SETB

LINHA3

;LIBERA LINHA 3

CLR

LINHA4

;ZERA LINHA 4

JB

COLUNA1,SALTO13;SE A TECHA13 NAO ESTIVER

SETB

CHAVE13

;ACIONADA, SALTA ;INDICA CHAVE13 ACIONADA

SALTO13:

JB

COLUNA2,SALTO14;SE A TECLA14 NAO ESTIVER ;ACIONADA, SALTA

SETB

CHAVE14

;INDICA CHAVE10 ACIONADA

SALTO14:

JB

COLUNA3,SALTO15

SETB

CHAVE15

SALTO15:

JB

COLUNA4,SALTO16

SETB

CHAVE16

SALTO16:

SETB

LINHA4

;LIBERA LINHA 4

RETI

;RETORNA DA INTERRUPCAO

Verificação (C):

Exercícios 1) - Fazer um projeto de um teclado telefônico de 12 teclas utilizando os ports P1.1 a P1.7 (igual ao KIT do Laboratório). Fazer uma rotina LETECLADO guardando a condição das teclas na área booleana 20.0 a 21.3. Criar um flag F_TEC que indicará sempre que uma tecla for acionada. A área booleana será zerada no tratamento da tecla. No programa principal, a tecla <*> irá ligar o led do kit (P3.3) e a tecla <#> irá desligar o led do kit. Testar o programa no kit do laboratório. 2) - Idem para a tecla 0 desligar o rele do kit e a tecla 1 ligar o rele do kit. 3) - Colocar um buzzer no kit do laboratório (P3.5). Acionar o buzzer 0,1 segundo a cada acionamento do teclado. 4) - Fazer uma rotina para enviar a tecla digitada na o meio da segunda linha do display.

Ação (A):

TESTE TECLADO

X

- Havendo problemas no resultado dos exercícios propostos, estudar o conceito de temporização. Importante a utilização das ferramentas de laboratório.

APOSTILA DE TEORIA MACKENZIE 4) - Sistema de Comunicação Serial MICROPROCESSADORES II Planejamento (P): Este

APOSTILA DE TEORIA

MACKENZIE

4) - Sistema de Comunicação Serial

MICROPROCESSADORES II

Planejamento (P):

Este capítulo capacitará o aluno a:

- Entender o conceito de comunicação serial.

- Elaborar rotinas de inicialização, transmissão e recepção.

- Exercícios integrando LCD, Teclado Matricial e Comunicação Serial.

4.1) - Introdução e conceitos básicos:

A comunicação serial proporciona a comunicação entre 2 pontos ou uma

rede de pontos através de um número reduzido de vias (2 vias no caso da

comunicação full-duplex ou 1 via no caso da comunicação half-duplex, rede de fibras óticas, cabo coaxial utilizado em redes padrão ETHERNET). A comunicação serial proporciona maior economia a infraestrutura de transferência de dados (menor número de vias nos cabos, menor número de canais nos

repetidores de linha, etc.), maior imunidade a ruídos, maior alcance.

como desvantagem básica a menor velocidade de processamento (variando de

300 b.p.s - baunds até redes de alta velocidade de 100 Mbits/seg) em se comparando com a velocidade de transferência paralela interna dos computadores (através dos barramentos internos).

Para baixas velocidades, podemos subdividir a comunicação serial em comunicação assíncrona e síncrona:

Apresenta

4.1.1) - Comunicação Assíncrona:

A comunicação assíncrona envia dados de início (start bit) e fim de

transmissão (stop bit). Bits de paridade são opcionais. Apesar da simplicidade e alta utilização é utilizada apenas em sistemas de baixa velocidade, devido a perda de rendimento introduzido pelos sinais START BIT, STOP BIT e PARIDADE.

introduzido pelos sinais START BIT, STOP BIT e PARIDADE. Figura - Estrutura básica da comunicação assíncrona

Figura - Estrutura básica da comunicação assíncrona

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II Os dispositivos seriais programáveis presentes dentro de chips

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

Os dispositivos seriais programáveis presentes dentro de chips dedicados ou microcontroladores recebem o nome de UART (UNIDADE ASSÍNCRONA DE RECEPÇÃO TRANSMISSÃO)

4.1.2) - Comunicação Síncrona:

Na comunicação síncrona a transmissão de um bloco de caracter com adição de controles apenas no início e final do bloco. O número de blocos transmitidos varia bastante. Um caracter de CHECK-SUM garante a integridade da comunicação. Um protocolo padrão garante a qualidade e integridade da comunicação (através de comandos como NACK e ACK)

da comunicação (através de comandos como NACK e ACK ) Figura - Estrutura básica de comunicação

Figura - Estrutura básica de comunicação síncrona.

Os dispositivos seriais programáveis assíncronos/síncronos presentes dentro de chips dedicados ou microcontroladores recebem o nome de USART (UNIDADE SÍNCRONA / ASSÍNCRONA DE RECEPÇÃO TRANSMISSÃO)

4.1.3) - Interface padrão RS-232:

Segue orientação V.24 da CCITT. Aumenta a imunidade a ruído incrementando os níveis de tensão dos bits 0 e 1 transmitidos.

a ruído incrementando os níveis de tensão dos bits 0 e 1 transmitidos. Figura - Sinais

Figura - Sinais padrão TTL e RS-232

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II A implementação mais comum é realizada através de line-drivers

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

A implementação mais comum é realizada através de line-drivers

integrados (como os chips 1488 - TTL/RS232 e 1489 - RS323/TTL).

4.1.4) - Sinais típicos de uma interface padrão serial:

Os sinais mais comuns encontrados em comunicação serial assíncrona são mostrados abaixo. Uma aplicação típica desta configuração é implementada na comunicação computador/MODEM (interface utilizada para modulação / demodulação para comunicação na rede telefônica).

- TXD: transmissão de dados.

- RXD: recepção de dados.

- RTS (request to send): sinal de saída de propósito geral. Normalmente

ativo em 0, tem como principais aplicações validar dados transmitidos (como um

sinal STROBE) ou determinar se o sinal é de transmissão ou recepção nas comunicações full-duplex.

- CTS (clear to send): sinal de entrada como resposta ao sinal RTS,

indicando entendimento do sinal RTS. Em muitos sistemas, este sinal necessita estar em 0 para funcionamento do sistema.

- DTR (data terminal ready): sinal de saída de propósito geral.

- DSR (data set ready): sinal de entrada de propósito geral.

- CD (carrier detect): sinal de entrada indicando que a portadora foi detectada pelo modem.

.

4.2) - Comunicação serial no 8051:

O port serial do microcontrolador 8051 é full-duplex, ou seja, pode-se transmitir e receber uma comunicação simultaneamente. Como existe um buffer de recepção (SBUF) é possível esperar-se a leitura deste buffer sem a perda do próximo dado de recepção. Este mesmo buffer SBUF é utilizado para a transmissão de dados.

O port serial opera de 4 modos:

- Modo 0: comunicação serial de 8 bits (sem START e STOP BIT). Bit LSB é o primeiro. Baud-rate fixo em 1/12 da freqüência do cristal.

- Modo 1: comunicação serial de 10 bits (com START e STOP BIT). Na

recepção, o STOP BIT vai para o RB8 do registrador SCON se SM2=0. Baud-rate programável de acordo com carga do timer 1.

- Modo 2: comunicação serial de 11 bits (com START, STOP BIT e

PARIDADE). O bit de paridade é programável através do bit TB8 de SCON. Na recepção, o bit de paridade é guardado em RB8 de SCON. O baud rate é programável pelo bit SMOD do registrador PCON. Com SMOD=0, baud rate é

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II 1/64 da freqüência do cristal. Com SMOD=1, baud-rate é

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

1/64 da freqüência do cristal. Com SMOD=1, baud-rate é 1/32 da freqüência do cristal.

- Modo 3:idem ao modo 2,mas com baud-rate programável pelo timer 1.

ao modo 2,mas com baud-rate programável pelo timer 1. Figura - Comunicação Serial 8051 - Modo

Figura - Comunicação Serial 8051 - Modo 0 (fonte: ATMEL)

4.3 - Registradores de Controle 8051

A comunicação serial do 8051 trabalha basicamente com 3 registradores:

- Registrador PCON: registrador com o bit SMOD e bits para gerenciamento de energia nas versões CMOS

PCON:

----------------------------------------

SMOD - - - GF1 GF2 PD IDL

----------------------------------------

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II SMOD: nos modos 1,2 e 3 de operação do

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

SMOD: nos modos 1,2 e 3 de operação do SBUF, SMOD=1 dobra a taxa de transmissão binária. GF1 e GF2: bits genéricos. PD e IDLE: gerenciam modos de economia de energia. PD suspende por completo as operações do processador (voltando apenas com o reset) e o modo IDLE deixa ativados apenas os periféricos internos (timer, uart, interrupções, etc.) representando uma economia de energia de 85%. Sai do modo IDLE através de interrupções ou reset.

Ex.:

1) - Colocar o processador em modo IDLE.

MOV PCON,#00000001B

2) - Colocar o processador em modo POWER DOWN

- Registrador SBUF: registrador armazenador do dado de transmissão e recepção.

- SCON: registrador de controle serial:

SM0 SM1 SM2 REN TB8 RB8 TI RI

SM0 - SM1: modo de operação

0

0

modo 0

0

1

modo 1

1

0

modo 2

1

1

modo 3

SM2: no modo 1, se SM2=1, RI não será ativado se não for recebido o STOP BIT. Se SM2=0, RI será sempre ativado e RB8 recebe o STOP BIT. No modo 2/3, se SM2=1, RI não será ativado se o bit de paridade for 0. Se SM2=0, RI é sempre ativado, independente do bit de paridade. No modo 0, SM2=0 sempre.

REN: em nível alto habilita recepção. TB8: armazena programação dos bits de paridade dos modos 2 e 3. RB8: nos modos 2/3, armazena o bit de paridade recebido. No modo 1, se SM2=0, RB8 armazena o STOP BIT sendo utilizado por rotinas de correção de erro. No modo 0, RB8 não é utilizado. TI: bit indicador de dado transmitido. Necessita ser limpo por

software.

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II RI: bit indicador de dado recebido. Necessita ser limpo

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

RI: bit indicador de dado recebido. Necessita ser limpo por

software.

Nos modos 1 e 3, há a necessidade de utilizar-se o timer 1 para a geração do baud-rate. O timer 1 deve ser programado para o modo de autocarregamento, visto no estudo dos timers. O valor de carga em função do cristal é fornecido no manual (onde temos a fórmula de cálculo para outros cristais) e reproduzida abaixo:

smod

Taxa = 2 ----

x (freq. cristal) --------------

32

12 x (256 - TH1)

Para o cristal de 11.059 Mhz e 6 Mhz temos os valores tabelados abaixo considerando SMOD=0:

Baud-rate

fcristal

Carga do timer

9,6 k

11.059 Mhz

FD h ( SMOD = 1)

F4 h

4,8 k

11.059 Mhz

FD h ( SMOD = 0)

2,4 k

11.059 Mhz

1,2 k

11.059 Mhz

E8 h

110

6 Mhz

72 h

Colocando SMOD = 1 dobramos a taxa de transmissão.

Exemplos:

1) - Programar o registrador SCON e o TIMER 1 para 8 bits de dado, sem paridade, habilitação de RX e baud-rate de 9600 baunds. Supor a utilização de cristal de 11.059 Mhz

MOV TH1,# 0FD h ;carrega cristal 1 com reload

MOV

MOV TCON,# 010X0000b ;roda timer 1

TMOD,# 0010XXXXb ; programa timer 1 c/ reload

MOV IE,# 10011XXXb

;habilita inter. serial e t1

MOV

PCON,#10000000B

;SMOD = 1

MOV

SCON, # 01010000b ;modo 1 e rx habilitado

2) - Idem para 8 bits, com paridade, habilitação RX e baud-rate de 2400 baunds.

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II 3) - Fazer uma rotina de interrupção serial para

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

3) - Fazer uma rotina de interrupção serial para colocar o dado recebido no endereço indicado por R0. Utilizar a rotina de inicialização do exemplo 1. ORG 0

JMP

INICIO

ORG 23H

JMP

SERIAL

ORG 30H

INICIO: MOV TH1,# 0FD h ;carrega cristal 1 com reload

SERIAL:

MOV

MOV TCON, # 010X0000b ;roda timer 1

MOV IE,# 10011XXXb

MOV

TMOD,# 0010XXXXb ; programa timer 1 c/ reload

;habilita inter. serial e t1

SCON, # 01010000b ;modo 1 e rx habilitado

PUSH

ACC

MOV A,SBUF

MOV @R0,A

CLR

RI

POP

ACC

RETI

4) - Idem esperando o dado através do bit RI

WAITRX:

JNB

MOV A,SBUF

MOV @R0,A

CLR

RI,WAITRX

RI

5) - Transmitir o dado presente na posição de memória indicada por R0. Utilizar a inicialização do exemplo 1

TXBUF:

ORG 30 h MOV TH1,# 0FD h ;carrega cristal 1 com reload

MOV TMOD,# 0010XXXXb ; programa timer 1 c/ reload MOV TCON, # 010X0000b ;roda timer 1

MOV IE,# 10011XXXb

MOV SCON, # 01010000b ;modo 1 e rx habilitado

;habilita inter. serial e t1

MOV A,@R0

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II MOV SBUF,A JNB TI,$ ;CARREGA DADO A SER TX

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

MOV SBUF,A

JNB

TI,$

;CARREGA DADO A SER TX ;ESPERA TRANSMITIR

CLR

TI

6) - Idem transmitindo a palavra MACK em ASCII.

TX:

MOV A,’M’

CALL TX1

MOV A,’A’

CALL TX1

MOV A,’C’

CALL TX1

MOV A,’K’

CALL TX1

TX1:

MOV SBUF,A

JNB

TI,$

CLR

TI

RET

Verificação (C):

Exercícios:

1) - Fazer uma rotina para transmitir uma string de uma tabela. Transmitir para um computador a 9600 bps a string <ENGENHARIA MACKENZIE> . Testar utilizando o Hiperterminal ou qualquer outro programa de comunicação.

2) - Fazer uma rotina para armazenar o dado recebido no endereço 30H (DADO_RX). Setar o flag F_RX quando houver recepção de dados. Se receber a letra <A>, acender o led (P3.3). Se receber a letra <B> apagar o led. Testar este programa com um computador e o KIT.

Ação (A):

- Havendo problemas no resultado dos exercícios propostos, estudar o conceito de comunicação serial. Importante a utilização das ferramentas de laboratório.

APOSTILA DE TEORIA MACKENZIE 5) – Conversores Analógico/Digitais MICROPROCESSADORES II Planejamento (P): Este

APOSTILA DE TEORIA

MACKENZIE

5) – Conversores Analógico/Digitais

MICROPROCESSADORES II

Planejamento (P):

Este capítulo capacitará o aluno a:

- Aplicar o conceito de conversão analógico / digital a microcontroladores.

- Elaborar rotinas de leitura e tratamento de sinais seriais.

- Exercícios integrando LCD, Teclado Matricial, Comunicação Serial e conversor A / D.

5.1) - Introdução:

Sinal Analógico (não discreto) -> Sinal Digital (discreto)

Fatores para conversão:

-

2

Número de bits de conversão:

n

determina o número de valores discretos da conversão ->

- Valor de Referência: determina o valor máximo de conversão (fundo escala do valor analógico deve ser ajustado para este valor)

- Freqüência de Amostragem: determina o período entre duas amostras. Pelo Teorema de

Nyquest, a freqüência de amostragem é no mínimo 2 vezes a freqüência máxima do sinal.

APOSTILA DE TEORIA MACKENZIE fa = 2 x fmax MICROPROCESSADORES II - Resolução: determina o

APOSTILA DE TEORIA

MACKENZIE

fa = 2 x

fmax

MICROPROCESSADORES II

- Resolução: determina o valor analógico máximo em relação ao fundo escala

V = Vmax / 2 n

Ex: Para um valor Vmax = 5V, n=12 bits, qual a resolução do sinal?

V = Vmax / 2 n

V= 5 / 4096 = 1,22 mV

Exemplos:

1) - Termômetro :

0 - 100 C Vref = 2,5 V n = 8 bits

Qual a resolução em temperatura, considerando que 100 C é equivalente a 2,5 V? Se aumentar o número de bits para 10 bits, qual a nova resolução? Se aumentar a Vref = 5 V e 10 bits, qual a nova resolução?

2) - Qual a freqüência de amostragem no canal de telefonia?

5.2) – Conversor A/D ADC 0804

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II Figura - Sistema Mínimo 89S51 / ADC0804 (endereço 2000H

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II Figura - Sistema Mínimo 89S51 / ADC0804 (endereço 2000H -
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II Figura - Sistema Mínimo 89S51 / ADC0804 (endereço 2000H -

Figura - Sistema Mínimo 89S51 / ADC0804 (endereço 2000H - 3FFFH)

APOSTILA DE TEORIA 5.3) – Rotinas Básicas: MACKENZIE 5.3.1) – Rotina de Leitura (LEADC:) Verificação

APOSTILA DE TEORIA

5.3) – Rotinas Básicas:

MACKENZIE

5.3.1) – Rotina de Leitura (LEADC:)

Verificação (C):

Exercícios:

MICROPROCESSADORES II

1) - Projetar um circuito com as seguintes características:

- 89S51

- RAM 62256 (8000-FFFFh)

- LCD (end. 0-1fffh)

- Serial RS232

- Conversor ADC0808 (end. 2000h-3fffh) com 8 sensores de temperatura.

- 1 ventilador (P1.1)

- 1 aquecedor (P1.2)

- Firmware ligando o ventilador se o terceiro sensor indicar o valor maior que 80h e ligar o aquecedor se o valor for menor que 30h.

2) -Idem para a leitura dos outros 7 sensores.

Ação (A):

- Havendo problemas no resultado dos exercícios propostos, estudar o conceito de comunicação serial. Importante a utilização das ferramentas de laboratório.

APOSTILA DE TEORIA MACKENZIE 6) - Processamento Digital de Sinal MICROPROCESSADORES II Planejamento (P): Este

APOSTILA DE TEORIA

MACKENZIE

6) - Processamento Digital de Sinal

MICROPROCESSADORES II

Planejamento (P):

Este capítulo capacitará o aluno a:

- Conceituar Processamento Digital de Sinais. - Diferenciar um PDS de um microcontrolador voltado a controle.

6.1) INTRODUÇÃO AO PROCESSAMENTO DIGITAL DE SINAIS

Supressores de eco, eliminadores de interferências, detecção de incêndios florestais, análise de imagens de satélites metereológicos, estudo de dados sísmicos, acompanhamento de testes nucleares ou simplesmente análise de parâmetros vocais para identificação ou reconhecimento de voz. Estas são algumas aplicações possíveis do Processamento Digital de Sinais (DSP). DSP diz respeito a representação de sinais através de uma seqüência numérica/simbólica e o seu posterior processamento para estimar parâmetros do

sinal original e/ou modificá-lo. Este processamento é normalmente realizado com o auxílio de algoritmos matemáticos, o qual o mais comum é a soma de produtos, representada pela fórmula:

n

Vout = Σai.bi

i

(1.1)

onde ai e bi representam coeficientes numéricos de uma seqüência

qualquer de dados obtida de uma determinada entrada amostrada e Vout é a

saída processada.

Apesar de ser uma ferramenta que ficou mais conhecida recentemente com o aperfeiçoamento da integração em alta escala dos circuitos integrados e o

aperfeiçoamento de algoritmos numéricos, o DSP teve suas origens nos séculos

XVII e XVIII com o desenvolvimento de análises numéricas tais como

interpolação, integração e diferenciação. Podemos dizer que até recentemente o processamento de sinais elétricos era basicamente analógico, com algumas honrosas exceções, datadas da década de 50, onde dados geofísicos eram gravados em fitas magnéticas para um posterior processamento em computadores digitais cujo tamanho em nada lembram os modernos "laptops" ou

"notebooks" presentes em nossa vida cotidiana. Durante este período, os computadores digitais foram mais uma alternativa para a simulação e aperfeiçoamento de sistemas analógicos, com a conversão analógico/digital, processamento e conversão digital/analógica final. Este processo foi muito

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II comum na implementação dos primeiros codificadores de voz (VOCODERS)

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

comum na implementação dos primeiros codificadores de voz (VOCODERS) pelos Laboratórios Bell e Lincon (M.I.T.), onde as simulações computacionais foram fundamentais no ajuste dos filtros necessários para sua execução. Apesar desta predominância dos sistemas analógicos, o processamento digital lentamente começou a diferenciar-se, principalmente com o aumento da complexidade dos algoritmos. Rotinas para filtros homomórficos ou a análise cepstral foram desenvolvidos apesar de não serem praticáveis pela ainda incipiente tecnologia dos semicondutores. Estes novos algoritmos se mostravam bastantes úteis nos sistemas de remoção de eco ou de compressão de voz. A grande dificuldade na implementação das técnicas citadas na época era o cálculo da Transformada de Fourier, praticamente impossível com os computadores analógicos. Este problema foi minimizado em meados da década de 60, com o desenvolvimento de uma classe de algoritmos conhecida como Transformada Rápida de Fourier (FFT). A grande vantagem destas rotinas era a redução do tempo de processamento, fator fundamental para os sistemas computacionais lentos e caros da época. Outro fator introduzido pela FFT foi sua concepção de tempo discreto, ao contrário dos sistemas de tempo contínuo vigentes, auxiliando em muito o desenvolvimento dos algoritmos puramente digitais, diminuindo aquela impressão que o DSP era simplesmente uma aproximação dos sistemas analógicos. Mas mesmo com estes aperfeiçoamentos, a velocidade ainda era o grande obstáculo, principalmente para aplicações que exigiam tempo real de processamento como os sistemas de reconhecimento da voz. A grande mola propulsora do DSP foi o desenvolvimento da técnica de fabricação de circuitos integrados a partir da década de 70. O surgimento de circuitos integrados em alta escala (LSI) permitiu a implementação de processadores digitais inteiros em um único chip. Circuitos integrados especializados na execução de algoritmos aritméticos possibilitaram a implementação de aplicações em tempo real. Algoritmos para filtros digitais com taxas de amostragens na faixa de megahertz tornaram-se práticos. Processamento de voz e imagens em tempo real já tornou- se possível. Outras áreas começaram a ser bastante beneficiadas, como a de telecomunicações, aumentando a economia e flexibilidade tanto nos sistemas de chaveamento como transmissão. Passaremos a analisar os requisitos básicos de um circuito integrado dedicado a realizar operações de DSP, diferenciando-se desta forma dos microprocessadores de uso geral do mercado. Utilizaremos como exemplo o DSP TMS320C25 da Texas Instruments, a despeito de existir um grande número de fabricantes no mercado tais como a Analog Devices, AT&T, Motorola e NEC, etc.

6.2) - Características da arquitetura de um circuito integrado dedicado a DSP:

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II Os chips dedicados a funções que envolvam DSP apresentam

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

Os chips dedicados a funções que envolvam DSP apresentam algumas características comuns que passaremos a analisar:

6.2.1) - Arquitetura Harvard: em contraste com a arquitetura "von Neumann", que apresenta um único espaço de memória para códigos de operação e dados, os sistemas baseados na arquitetura Harvard possuem duas estruturas separadas de memória para os códigos do programa e para os dados. Apesar disto exigir um controle maior por parte do processador (pois passam a existir dois controles de barramentos de endereço e dois controles de barramentos de dados), o poder de processamento torna-se muito mais poderoso e principalmente mais rápido, fatores decisivos na execução dos algoritmos numéricos existentes nas aplicações dos DSPs.

6.2.2) - Unidades para multiplicação e deslocamento separados da unidade lógica aritmética principal: devido a necessidade de realizar operações de multiplicação e deslocamentos nos algoritmos numéricos, existem unidades separadas para a realização destas operações, otimizando-as. Devido a natureza repetitiva destas operações, um sistema de prevenção de "estouro" (overflow) do resultado é necessário.

6.2.3) - Flexibilidade e rapidez na execução das instruções: além de unidades separadas para realização de algoritmos numéricos, é necessária a realização destas operações em ciclos de busca ("fetch") curtos, decodificação e execução otimizada de forma a diminuir o tempo de execução das instruções e aumentando consequentemente a velocidade do sistema. Alguns processadores DSP realizam instruções inteiras aritméticas em um único ciclo de máquina. Outros, como é o caso do TMS320C25, utilizam uma estrutura denominada "pipeline", onde em um único ciclo de clock são realizados simultaneamente o ciclo de busca de uma determinada instrução, o ciclo de decodificação da instrução anterior e o ciclo de execução de outra instrução.

6.2.4) - Operações de "loop" incondicional e condicional: algoritmos repetitivos envolvendo operações lógica/aritméticas constituem uma das principais estruturas utilizadas nos programas de aplicativos de DSPs. Estas estruturas, do tipo "If

Next", necessitam de instruções de salto incondicional ou

condicional que dependem de determinadas condições contidas principalmente nos registradores de "status" do processador, tais como condição de estouro (OVM)), "carry" (C), zero (Z) ou teste/controle (TC).

Then" ou "For

Como já ressaltado, o circuito integrado DSP TMS320C25 será utilizado como exemplo ilustrativo das características descritas acima. Este circuito integrado faz parte da segunda geração de DSPs da Texas, apresentando como principais características: ciclo de instrução de até 100 ns (para clock de 40

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II MHz), 544 posições de 16 bits de RAM interna,

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

MHz), 544 posições de 16 bits de RAM interna, 4048 posições de 16 bits de ROM interna, 128 K/16 bits de acesso de memória de programa/dados externa e acumulador principal de 32 bits. A figura 1 nos mostra um diagrama em blocos da arquitetura interna do chip em questão.

em blocos da arquitetura interna do chip em questão. Figura - Arquitetura TMS320C25 (fonte: Texas Instruments)

Figura - Arquitetura TMS320C25 (fonte: Texas Instruments)

Com o auxílio desta ilustração analisaremos a seguir as características gerais fornecidas acima que possibilitam o TMS320C25 desempenhar-se bem em situações críticas como em tempo real nos aplicativos com DSPs.

Pode-se observar a existência dos sinais PS e DS, responsáveis pelo controle da natureza do barramento de dados e controle. Com o sinal PS em nível baixo, temos o caracterizado o acesso à memória de programa. Já com o sinal DS em nível baixo temos o controle da memória de dados, caracterizando a arquitetura Harvard explicada no item 2.1). A figura a seguir nos mostra um detalhamento maior da unidade aritmética do TMS320C25. Pode-se observar unidades independentes para multiplicação,

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II com a presença de um registrador temporário de 16

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

com a presença de um registrador temporário de 16 bits (TR) e um registrador de de produto (PR) de 32 bits para armazenamento do resultado. Temos também uma unidade de deslocamento (bloco "Scaling Shifter") com capacidade também de 16 bits. Finalmente a figura mostra a unidade aritmética principal (ALU) com capacidade de 32 bits, acumulador principal composto de 2 registradores de 16 bits (ACCH e ACCL), bit carry (C) e dois registradores especiais para execução de rotações para a esquerda (SFL) e direita (SFR), dotando desta forma o sistema com uma grande capacidade de processamento aritmético, conforme indicado no item 6.2.2).

aritmético, conforme indicado no item 6.2.2). Figura - Estrutura ULA x MUL TMS320C25 Como já foi

Figura - Estrutura ULA x MUL TMS320C25

Como já foi ressaltado, para agilizar a execução das instruções, o TMS320C25 utiliza a operação "pipeline", representada na figura a seguir. Pode- se observar a execução simultânea de busca, decodificação e execução de 2 ou 3 instruções simultaneamente, aumentando grandemente a velocidade de execução das rotinas.

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II Figura - Sistema Pipeline Finalmente, o TMS320C25 é dotado

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II Figura - Sistema Pipeline Finalmente, o TMS320C25 é dotado de

Figura - Sistema Pipeline

Finalmente, o TMS320C25 é dotado de uma série de instruções de salto condicional e incondicional viabilizando a execução de estruturas com "loops", tão fundamentais nas rotinas de DSP, tornando-as mais simplificadas e menores.

6.3) - Conclusão:

Apesar do grande avanço que sistemas baseados em D.S.P. sofreram com

o desenvolvimento da integração em alta escala produzindo chips específicos ,

tais como o analisado neste artigo, e com algoritmos numéricos mais poderoso, não se vê saturação nas aplicações deste sistemas. Nos próximos anos a área de telecomunicações, de processamento de imagem e som e sistemas de controle serão ainda muito beneficiadas, proporcionando economia e flexibilidade aos sistemas citados.

6.4) - Bibliografia para P.D.S.:

- DISCRETE-TIME SIGNAL PROCESSING. Oppenhein e Schafer. Prentice

Hall,1989

- A SIMPLE APPROACH TO DIGITAL SIGNAL PROCESSING. Marven, Craing e Ewers Gillian. Wiley Interscience.

- DIGITAL SIGNAL PROCESSING A LABORATORY APPROACH USING PC-

DSP. Alkin, Oktay. Prentice Hall

- DIGITAL SIGNAL PROCESSING APPLICATIONS WITH THE TMS320 FAMILY. Texas Instruments.

APOSTILA DE TEORIA Verificação (C): Exercícios: MACKENZIE MICROPROCESSADORES II 1) - Mostrar 3 diferenças na

APOSTILA DE TEORIA

Verificação (C):

Exercícios:

MACKENZIE

MICROPROCESSADORES II

1) - Mostrar 3 diferenças na arquitetura de uma CPU voltada para controle de um sistema voltado para análise de sinais.

2) - Cite 5 aplicações típicas de PDS. Qual a característica da arquitetura do PDS favorecem a escolha para cada uma das 5 aplicações.

3) - Pesquisar a atual família de PDS da Texas Instruments (TMSC2xx, TMS320C5xx e

TMS320C6xx).

4) - Pesquisar um algoritmo de filtro digital FIR e encontrar um programa em Assembler para o TMS320Cxxx.

5) - Pesquisar as características do Start Kit para a família TMS320C5xx e o ambiente de desenvolvimento disponibilizado para a família de PDS da Texas.

Ação (A):

- Havendo problemas no resultado dos exercícios propostos, estudar o conceito de Processamento Digital de Sinais.

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II SEMINÁRIOS DE MICROPROCESSADORES Apresentar os seguintes itens no

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

SEMINÁRIOS DE MICROPROCESSADORES

Apresentar os seguintes itens no trabalho relativo ao microcontrolador escolhido:

- CARACTERISTICAS BÁSICAS

- ARQUITETURA BÁSICA

- MAPEAMENTO DA MEMÓRIA INTERNA/EXTERNA

- DESCRIÇÃO BÁSICA DOS REGISTRADORES DE CONTROLE (TIMER, INTERRUPÇÃO, SERIAL, WATCH-DOG, ETC.)

- CONJUNTO DE INSTRUÇÕES MOSTRANDO APENAS O SIGNIFICADO BÁSICO DAS MESMAS.

- APLICAÇÃO TÍPICA

LISTA DE MICROCONTROLADORES:

MICROCHIP (WWW.MICROCHIP.COM)

PIC10F200

PIC16F628A

PIC18F1320

TEXAS INSTRUMENTS (WWW.TI.COM)

MSP430F135

MOTOROLA (WWW.MOTOROLA.COM)

68HC11

NATIONAL SEMICONDUCTOR (www.national.com)

COP 8

CYPRESS (www.cypress.com)

PSOC

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II PRIMEIRO TRABALHO DE MICROPROCESSADORES II Turma: 8F 1)a) -

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

PRIMEIRO TRABALHO DE MICROPROCESSADORES II Turma: 8F

1)a) - Fazer uma rotina para habilitar as interrupções seriais, timer 1 e externa 0, dando prioridade para a comunicação serial. b)- Um microcontrolador desenvolvido no Laboratório de Microprocessadores do Mackenzie (MACK3) possui uma entrada de reset ativa em nível baixo, entrada de cristal até 20 Mhz, memória FLASH de 4 Kbytes (sem acesso a memória externa)

e 2 ports de comunicação (Port PA com 8 bits e Port PB com 6 bits). Fazer um esquema mostrando a ligação do MACK3 com um display LCD de 2 linhas x 20 caracteres.

2) - Imaginando que você esteja fazendo um trabalho voluntário para o

GreenPeace, foi encomendado um controlador ecológico para impedir um gasto

desnecessário de energia de escola com até 5 salas com as seguintes

características:

-Microcontrolador 8031 com Eprom 27512, Cristal de 32 Khz, Reset automático e manual. -Display LCD 2 x 16 com endereço de acesso 4000H-5FFFH. -Entrada de 5 sensores de presença infra-vermelho. -Saída para 5 contatores que controlarão 5 sistemas de iluminação. -Comunicação Serial. -Entrada de um botão de emergência ligada a INTERRUPÇÃO 0.

3) - Em relação ao projeto acima, fazer os seguintes programas separadamente:

a)-Fazer um programa para que o primeiro sensor ligue a segunda saída em nível alto e desligue em nível baixo. Ficar em loop.

b)-Fazer um programa para escrever no display a mensagem "GREEN PEACE"

"CONTROLADOR". Configurar o display para 2 linhas, sem cursor, deslocamento

a direita. Fazer a rotina de escrita no display.

c)-Fazer um programa para incrementar a posição 50H da memória interna todas as vezes que o botão de emergência for acionado. Utilizar a interrupção.

4) a) - Qual a função dos sinais Enable e C/D em um módulo de display? O que é

um back-light em um display de LCD? Mostre 1 vantagem e uma desvantagem de um display de LCD.

b) - Mostrar um esquema de um sistema com o 8951 e um módulo com o Display

de LCD utilizando apenas os Ports P0 e P1 (modo de acionamento direto sem mapeamento de memória). Fazer uma rotina para escrever a letra do seu primeiro nome no display.

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II c) - Suponha que você esteja projetando um microcontrolador

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

c) - Suponha que você esteja projetando um microcontrolador com um

temporizador T de 16 bits, vetor com endereço 06h e com contador DECRESCENTE a cada pulso de entrada do timer. Os registradores de controle são iguais ao do timer T0 do 8051. Explicar o conceito do vetor 06h. O que existe (qual rotina) neste endereço do programa?

Supondo que a freqüência de contagem na ENTRADA do timer seja de 100 Khz, calcular o valor do temporizador T para o tempo de 3 milisegundos. Fazer uma rotina de inicialização para o timer T.

5)- Você é o engenheiro da empresa ELEICOES ELETRONICAS e é

responsável pelo projeto de uma urna eletrônica com as seguintes características:

-Microcontrolador 8951, cristal de 8 Mhz, Reset automático e manual.

-Display de LCD com endereço entre 0 e 1fffH -Entrada para 10 teclas numéricas e 3 teclas de função (CORRIGE, BRANCO, CONFIRMA). Um sistema lógico ativa a interrupção externa 1 quando é acionada uma tecla. -1 alto-falante (buzzer).

6) - Fazer em Linguagem Assembler separadamente os seguintes programas:

a) (1,5 pontos) - Inicializar o display (2 x 16 linhas, com cursos piscando,

escrevendo da esquerda para a direita). Escrever no display:

URNA ELETRONICA CANDIDATO:

b) (1,5 pontos)- Fazer um programa para guardar a posição das teclas na

memória a partir do endereço 25H. Se for digitada a tecla CORRIGE, ligar o buzzer por 1 segundo.

7) - Fazer um projeto com um microcontrolador 8031 com as seguintes

características:

- Projeto de um torno microprocessado CNC.

- Cristal com freqüência de 11.059 Mhz e reset automático.

- Display LCD inteligente possuindo 2 linhas e 20 caracteres (endereço 00-

1FH).

- Comunicação full-duplex com dado de 8 bits, start e stop/bit, sem paridade, 9600 baunds e interface RS232 com line drivers MAX 232.

- Saída para controle de 2 motores trifásicos, 3 indicadores luminosos (lâmpadas) e uma chave.

- Conversor ADC 808 de 8 canais (endereço 20H-3FH).

8) - Fazer os seguintes programas para o projeto acima:

APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II - Inicialização da interface serial, do sistema de interrupção

APOSTILA DE TEORIA

MACKENZIE

MICROPROCESSADORES II

- Inicialização da interface serial, do sistema de interrupção habilitando a

interrupção serial e display configurando-o para deslocamento de mensagens a esquerda e sem cursor. Colocar comentários indicando cada comando.

- Rotina para escrever na linha superior do display o seu nome completo

centralizado (abreviar os nomes do meio se necessário) e o seu número de matrícula na linha de baixo.

- Rotina para receber dados pela interface serial através da interrupção serial, colocando os dados recebidos na posição de memória 50H.

- Ler o canal 3 do conversor ADC, colocar o valor lido no endereço 40 H.

- Ligar os 2 motores se a chave estiver em nível alto

9)- Vamos supor que você esteja programando um novo microcontrolador que possua um temporizador interno com as seguintes características:

Contador DECRESCENTE de 16 bits. Entrada para o temporizador externo (pino

TENTR) que decrementa o temporizador de 1 unidade a cada pulso. Interrupção com endereço 0010H Registradores de modo (TMOD) e controle (TCON) idênticos ao 8051. Mneumônicos para programação em linguagem Assembler compatível com o

8051.

a)- Supondo a entrada de um sinal de 100 Khz na entrada TENTR, qual o número a ser colocado dentro do timer para o mesmo fornecer um tempo de 10 mseg? Justificar mostrando o cálculo b)- Fazer um programa em linguagem Assembler para incrementar apenas o registrador R3 a cada 10 mseg.

10)- Fazer um projeto com o microcontrolador 8031 com as seguintes características

a) - Cristal de 8 Mhz. Reset automático e manual. Saída para controle de 3

motores (representar o acionamento apenas de 1 motor).

externo (interrupção externa 1). Entrada de 1 chave para controle dos motores. Display de L.C.D. com endereçamento de 2000H a 3FFFH. b) - Fazer um programa para ler a chave a cada 1 mseg. Se a chave estiver em nível alto, ligar todos os motores. Caso contrario, desligá-los. c)- Fazer um programa para incrementar o registrador R5 a cada pulso do contador externo (elaborar apenas a rotina de interrupção) .

Entrada do contador