1) - Revisão da Arquitetura do Microcontrolador 8051

Propaganda
www.mackenzie.com.br
APOSTILA
MICROPROCESSADORES 2
ESCOLA DE ENGENHARIA
PROF. IVAIR REIS N. ABREU
www.ivair.com.br
SEGUNDO SEMESTRE 2004
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
Índice
Revisão: 05/08/2004
1) - REVISÃO DA ARQUITETURA DO MICROCONTROLADOR 8051 ..................................................... 7
1.1) - FAMÍLIA DE MICROCONTROLADORES INTEL MCS-51: ......................................................................... 7
1.2) - SISTEMA MÍNIMO COM O 8051: .............................................................................................................. 7
1.3) - CÓDIGOS DE OPERAÇÃO DO MICROCONTROLADOR 8051: ....................................................................... 8
1.3.1) - Instruções de transferência de informação: .................................................................................. 8
1.3.2) - Instruções Aritméticas: .................................................................................................................. 9
1.3.3) - Instruções Lógicas: ...................................................................................................................... 10
1.3.4) - Instruções de Transferência de Controle: ................................................................................... 10
1.3.5) - Instruções Booleanas:.................................................................................................................. 11
1.4) - EXERCÍCIOS.......................................................................................................................................... 12
2) - DISPLAY LCD PROGRAMÁVEL........................................................................................................... 13
2.1) - INTRODUÇÃO: ...................................................................................................................................... 13
2.2) - SISTEMA MÍNIMO COM O DISPLAY L.C.D. : ........................................................................................... 14
2.4) - ESCRITA DE DADOS NO DISPLAY: .......................................................................................................... 16
2.5) - EXERCÍCIOS: ........................................................................................................................................ 17
3) - SISTEMA DE TEMPORIZAÇÃO E INTERRUPÇÃO DO 8051 ............................................................ 18
3.1) - SISTEMA DE INTERRUPÇÃO: ................................................................................................................. 18
3.2) - EXERCÍCIOS.......................................................................................................................................... 18
3.3) - APLICAÇÃO DE INTERRUPÇÃO EXTERNA -> SISTEMA DE LEITURA DIRETA DE TECLAS. ......................... 19
3.4) - EXERCÍCIO ........................................................................................................................................... 20
3.5) - SISTEMA DE TEMPORIZAÇÃO: ............................................................................................................... 20
3.3) - EXERCÍCIOS.......................................................................................................................................... 21
4) - SISTEMA DE VARREDURA DE TECLADO/DISPLAY....................................................................... 23
4.1) - EXERCÍCIOS.......................................................................................................................................... 25
5) - SISTEMA DE COMUNICAÇÃO SERIAL .............................................................................................. 26
5.1) - INTRODUÇÃO E CONCEITOS BÁSICOS: ................................................................................................... 26
5.1.1) - Comunicação Assíncrona: ........................................................................................................... 26
5.1.2) - Comunicação Síncrona: .............................................................................................................. 26
5.1.3) - Interface padrão RS-232: ............................................................................................................ 27
5.1.4) - Sinais típicos de uma interface padrão serial: ............................................................................ 27
5.2) - COMUNICAÇÃO SERIAL NO 8051: ......................................................................................................... 28
6) – CONVERSORES ANALÓGICO/DIGITAIS E DIGITAIS ANALÓGICOS ........................................... 32
6.1) - INTRODUÇÃO: ...................................................................................................................................... 32
6.2) – CONVERSOR A/D ADC 0808 ............................................................................................................... 33
DOWNLOAD -> HTTP://WWW.NATIONAL.COM/ADS-CGI/VIEWER.PL/DS/AD/ADC0808.PDF ....... 33
6.3) - EXERCÍCIOS.......................................................................................................................................... 34
7) - PROCESSAMENTO DIGITAL DE SINAL ............................................................................................. 35
7.1) INTRODUÇÃO AO PROCESSAMENTO DIGITAL DE SINAIS ....................................................... 35
2
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
7.2) - CARACTERÍSTICAS DA ARQUITETURA DE UM CIRCUITO INTEGRADO DEDICADO A DSP: ........................ 36
7.3) - CONCLUSÃO: ........................................................................................................................................ 39
ANEXO I .......................................................................................................................................................... 40
SEMINÁRIOS DE MICROPROCESSADORES ......................................................................................... 40
3
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
AULA 1
PLANEJAMENTO DIDÁTICO PEDAGÓGICO DA DISCIPLINA
MICROPROCESSADORES II SEGUNDO SEMESTRE 2004
ESCOLA DE ENGENHARIA - PROF. MESTRE IVAIR R. NEVES ABREU
UNIDADE: Engenharia
DISCIPLINA: Microprocessadores II
PROFESSOR: Ivair R. Neves Abreu
Departamento: Eletrônica
ETAPA: 8
CÓDIGO
CRÉDITOS
CARGA HORÁRIA: 2 aulas SEMESTRE LETIVO: SEGUNDO
OBJETIVOS: o aluno deverá adquirir os conceitos básicos de sistemas com
microcontroladores e processadores digitais de sinal a nível de projeto físico e
programação em linguagem de montagem (e máquina) para teste do sistema elaborado.
Projetos básicos de sistemas práticos com microcontroladores e P.D.S. deverão ser
projetados.
EMENTA:
Revisão de Conceitos de Microprocessadores (Arquitetura e Linguagem Assembler)
e Microcontrolador (família 8051)
Sistema de Interrupção Microcontrolador 8051
Estudo de Interfaces para Controle com Microcontroladores 8051
Projetos com microcontroladores 8051.
Estudo dos microcontroladores TMS370, Z8, 6811 e PIC.
Introdução ao estudo de Processadores Digitais de Sinais
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.
Uma apostila envolvendo todos os pontos abordados 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.
CRITÉRIO DE AVALIAÇÃO
4
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
((P1 X 0,7) + (LAB X 0,2) + (T1 X 0,1)) X 0,5 + (P2 X 0,5)
onde: P1 = primeira prova semestral
P2 = segunda prova semestral.
T1 = seminário Microcontroladores
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
Calendário de Provas:
P1
P2
T1
-> 05/10/2004
-> definido pela secretária
-> a ser agendado
CONTEÚDO PROGRAMÁTICO
- Revisão de Conceitos de Microprocessadores (Arquitetura e Linguagem
Assembler) e Microcontrolador (família 8051)
- Estudo do Sistema de Interrupção do microcontrolador 8051. Aplicações.
- Estudo do Sistema de Temporização do microcontrolador 8051. Aplicações.
- Interface para teclados e displays com varredura. Aplicações.
- Interface para display de cristal líquido. Aplicações.
- Conversores A/D e D/A com microcontroladores
- Projetos completos de sistemas de controle com microcontroladores 8051.
- Estudo dos microcontroladores TMS370, Z8, 6811 e PIC (Seminários).
- Introdução ao estudo de Processadores Digitais de Sinais. Diferenças básicas em
relação aos processadores tradicionais. Estudo da Arquitetura do TMS320. Sistemas
Mínimo com o TMS320. Estudo da rotina de filtro finito (FIR) e digitalização de sinais de
áudio.
BIBLIOGRAFIA
-
APLICAÇÕES PRÁTICAS DO MICRONTROLADOR 8051. Vidal Pereira da
Silva Jr. - Érica
THE 8051 FAMILY OF MICROCONTROLLERS. Richard H. Barnett.
Prentice Hall.
THE 8051 MICROCONTROLLER. I. Schott Mackenzie. Prentice Hall.
Using the MCS-51 Microcontroller 8051. HANG, Han-Way, 2000. Ed. Oxford
University
5
APOSTILA DE TEORIA
-
MACKENZIE
MICROPROCESSADORES II
C and the 8051. SCHULTZ, Thomas, 2001. Ed. Prentice Hall
APOSTILA MICROPROCESSADORES II. Ivair Reis Neves Abreu
Internet:
www.microcontroller.com
www.8052.com
www.vidal.com.br
www.questlink.com
www.microchip.com
www.ti.com
www.zilog.com
PLANEJAMENTO DAS AULAS:
- Semanas úteis: 17 semanas – 2 avaliações
- Semanas de aulas: 15 semanas
1 Semana:
Apresentação da disciplina
2 Semana:
Revisão de Sistemas com Microcontrolador 8051
3 Semana:
Sistema de Interrupção do 8051
4 Semana:
Sistema de Temporização do 8051 / Exercícios de Temporização
5 Semana:
Sistema de Teclado Matricial. Projetos
6 Semana:
Interfaces de display de 7 segmentos com o 8051. Projetos
7 Semana:
Display de Cristal Líquido. Projetos
8 Semana:
Sistema de Comunicação Serial / UART 8051 - Projetos
9 Semana:
Estudo de Conversores A/D e D/A para microcontroladores
10 Semana:
Projetos com conversores e microcontroladores
11 Semana: Introdução a Processamento Digital de Sinais – TMS320
12 Semana:
Arquitetura e Conjunto de Instruções TMS320
6
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
AULA 2
1) - Revisão da Arquitetura do Microcontrolador 8051
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
FIGURA 2
- Interface serial (RxD e TxD), interrupções externas (INT0 e
INT1), "timer" duplo externo (T0 e T1).
7
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
FIGURA 3
1.3) - Códigos de operação do microcontrolador 8051:
1.3.1) - Instruções de transferência de informação:
- MOV destino,fonte
;transfere (copiando) o dado da fonte
para o destino
- MOV A,Rn
- MOV A,direto
- MOV A,@Ri
- MOV A,#dado
- MOV Rn,A
- MOV Rn,direto
- MOV Rn,#dado
- MOV direto,A
- MOV direto,Rn
- MOV direto,direto
- MOV direto,@Ri
- MOV direto,#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
8
APOSTILA DE TEORIA
MACKENZIE
- MOVX
A,@Ri
- MOVX
- MOVX
- MOVX
A,@DPTR
@Ri,A
@DPTR,A
-
MICROPROCESSADORES II
;le dado de mem. ext.
;endereçado por Ri
XCH A,Rn
XCH A,direto
XCH A,@Ri
XCHD
A,@Ri
;escreve dado no acum. na
;memória ext.
;troca dados do acum. com reg.
;troca apenas nibble inferior
1.3.2) - Instruções Aritméticas:
- Instruções de Soma:
-
ADD A,Rn
;Acum + Rn = Acum.
ADD A,direto
ADD A,@Ri
ADD A,#dado
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
INC direto
INC @Ri
INC DPTR
- Instruções de Subtração:
-
SUBB
A,Rn
;Acum - Rn = Acum.
SUBB
A,direto
SUBB
A,@Ri
SUBB
A,#dado
DEC A
;Acum-1=Acum
DEC Rn
DEC direto
DEC @Ri
- 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
9
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
- 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
ANL
ANL
ANL
A,Rn
A,direto
A,@Ri
A,#dado
;A ^ Rn = A
- Instruções OU:
-
ORL
ORL
ORL
ORL
A,Rn
A,direto
A,@Ri
A,#dado
;A OU Rn = A
- Instruções OU-EXCLUSIVO:
-
XRL
XRL
XRL
XRL
A,Rn
A,direto
A,@Ri
A,#dado
- Rotação:
- RR
- RRC A
- RL
- RLC A
;A OU-EXC Rn = A
divisão/multiplicação binária
A
;rotaciona todo os bits do
;acumulador 1 posição para a
;direita. O bit 1 é deslocado para
;o oitavo bit
;o primeiro bit o acumulador é
;rotacionado para o carry e o bit
;deste para o oitavo bit do
;acumulador
A
;idem a RR mas invertendo a direção
;idem a RLC mas invertendo a dir.
- Complementação:
- CPL A
- CLR A
- SWAP
;complementa todos os bits do acum.
;zera acumulador
A
;troca os nibbles do acumulador
1.3.4) - Instruções de Transferência de Controle:
- SJMP
end(8) ;carrega PC com endereço de 8 bits
10
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
- AJMP
end(11);carrega PC com endereço de 11 bit
- LJMP
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
- JZ
end(8) ;se Z=1, salta para endereço
- ACALL
end(11) ;salta para a subrotina de endereço indicado.
PCH->(SP+1), PCL->(SP+2) e SP->SP+2
- LCALL
end(16)
;idem com end. de 16 bits
- RET
;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
-
CJNE
CJNE
CJNE
CJNE
DJNZ
- DJNZ
A,direto,end(8)
A,#dado,end(8)
Rn,#dado,end(8)
@Ri,#dado,end(8)
Rn,end(8)
direto,end(8)
;se A  direto, saltam
;se A  #dado, saltam
;se Rn  #dado, saltam
;se (Ri)#dado, saltam
;decrementa Rn. Se Rn0,
;retorna ao endereço
;idem utilizando dado
;direto como contador.
1.3.5) - Instruções Booleanas:
-
CLR C
;zera bit Cy
CLR bit
;zera bit especificado
SETB
C
;seta bit Cy
SETB
bit
;seta bit especificado
CPL C
;complementa Cy
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
- MOV C,bit ;copia bit especificado para o Cy
- MOV bit,C ;copia Cy para o bit
- JNC end(8);salta para o endereço especificado se
;Cy é zero
- JC
end(8);salta para o endereço especificado se
;Cy é um
- 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
11
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
AULA 3
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 8051 e mais 4 salas com 3 lâmpadas cada.
12
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
2) - Display LCD programável
2.1) - Introdução:
Atualmente estão disponíveis no mercado uma grande variedade de
displays de Cristal Líquido com circuitos de controle e processamento
interno que 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:
Figura 4 -Arquitetura básica dos displays L.C.D.
Descrição dos sinais:
- 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: 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
13
APOSTILA DE TEORIA
-
Display
Display
Display
Display
Display
Display
Display
Display
16x1,
16x1,
16x2,
20x2,
20x4,
40x1,
40x2,
40x4,
MACKENZIE
caracter
caracter
caracter
caracter
caracter
caracter
caracter
caracter
MICROPROCESSADORES II
8x5
11x5
8x5
8x5
8x5
8x5
8x5
8x5
2.2) - Sistema mínimo com o display L.C.D. :
Figura 5 - Sistema mínimo com o display L.C.D com endereçamento de
memória
Figura 6 - Sistema Mínimo com o display L.C.D. utilizando Ports
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
14
APOSTILA DE TEORIA
-
MACKENZIE
MICROPROCESSADORES II
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.
;* PRIMEIRA MANEIRA DE IMPLEMENTAR UMA INICIALIZAÇÃO
MOV
MOV
MOVX
CALL
MOV
MOVX
CALL
MOV
MOVX
CALL
MOV
DPTR,#00
A,#38H
@DPTR,A
TEMPO15
A,#0CH
@DPTR,A
TEMPO15
A,#05H
@DPTR,A
TEMPO15
A,#01H
;COLOCA END.A0 (C/D) = 0 -> CONTR.
;2 LINHAS
;ESPERA 15 MSEG.
;DISPLAY INTERMITENTE
;DESLOCAMENTO A DIREITA
;* SEGUNDA MANEIRA DE IMPLEMENTAR UMA INICIALIZAÇÃO
MOV
R0,#00
;CARREGA CONTROLE
MOV
R3,#00
;INICIALIZA PONDEIRO
MOV
DPTR,#TAB_INI
;CARREGA INDEXADOR
VOLTA_IN:
MOV
A,R3
MOVC A,@A+DPTR
INC
R3
;INCREMENTA PONTEIRO
CJNE A,#0FFH,SALTO
;SE NAO CHEGOU NO FINAL SALTA
JMP
FIM_INI
;ENVIA DADO PARA INICIALIZACAO
SALTO:
MOVX @R0,A
;ENVIA DADO PARA O DISPLAY
CALL TEMPO15
JMP
VOLTA_IN
;PROXIMO DADO DA TABELA
.
.
.
TAB_INI:
DB 38H,0CH,05H,01H,0FFH ; DADOS PARA INICIALIZAÇAO
END
2) - Idem para 1 linha, sem cursor, deslocamento à direita e limpando o
display.
15
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
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
2 L -> C0H C1H C2H
A6H A7H
E6H E7H
Exemplo:
1) - Posicionar o cursor na primeira posição do display.
mov
mov
movx
r0,#00
a,#80h
@r0,a
;controle
;posiciona cursor
2) - Posicionar o cursor no meio da primeira linha do display de 20
caracteres.
AULA 4
2.4) - Escrita de dados no display:
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
mov
movx
call
mov
mov
movx
call
mov
movx
call
mov
movx
call
mov
movx
call
r0,#00
a,#85h
@r0,a
tempo15
ro,#01
a,#’c’
@ro,a
tempo15
a,#’a’
@ro,a
tempo15
a,#’s’
@ro,a
tempo15
a,#’a’
@ro,a
tempo15
;controle
;posiciona no meio do display
;dado
;escreve ‘c’ em ascii
;escreve ‘a’ em ascii
;escreve ‘s’ em ascii
;escreve ‘a’ em ascii
16
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
ret
2) - Idem para a segunda linha
2.5) - Exercícios:
1) - Escrever a palavra ‘ENGENHARIA MACKENZIE’ no centro da primeira
linha de um display 2 x 16.
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
CODIGO
TURMA
SALA
17
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
AULA 5
3) - Sistema de Temporização e Interrupção do 8051
3.1) - Sistema de Interrupção:
O microcontrolador 8051 possui 5 interrupções, 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
TF0
IE1
TF1
SRT
(interrupção externa 0)
(interrupção do timer 0)
(interrupção externa 1)
(interrupção do timer 1)
(interface serial)
->
->
->
->
->
0003H
000BH
0013H
001BH
0023H
- 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 interruções
ES:
em nível baixo, desabilita interrupção serial
ET1: em nível baixo, desabilita interrupção do timer 1
EX1: em nível baixo, desabilita interrupção externa 1
ET0: em nível baixo, desabilita interrupção do timer 0
EX0: em nível baixo, desabilita interrupção externa 0
- Registrador do nível de prioridade:
________________________________________
IP:
| x | x | x | PS | PT1 | PX1 | PT0 | PX0 |
PS: em
PT1:em
PX1:em
PT0:em
PX0:em
nível
nível
nível
nível
nível
alto,
alto,
alto,
alto,
alto,
interrupção
interrupção
interrupção
interrupção
interrupção
serial
timer 1
externa
timer 0
externa
prioridade
prioridade
1 prioridade
prioridade
0 prioridade
Ex.: 1) - Habilitar as interrupções TIMER0, EXT1 e SERIAL.
máxima para a unidade SERIAL.
Prioridade
2) - Desabilitar apenas a unidade SERIAL.
3.2) - Exercícios
1) - Supondo que a entrada da primeira interrupção externa (‘IE0’) seje
utilizada para contagem de eventos de 16 bits, fazer um programa para que
as posições de memória 30H e 31H sejam incrementadas a cada evento.
2) - Idem para a interrupção externa 1, sendo o contador implementado a
partir das posições de memória 40H e 41H.
18
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
3) - Supondo que um teclado externo interrompa o microcontrolador 8031
utilizando a interrupção externa 1, colocar o conteudo da tecla acionada
(armazenada na memória externa do teclado com endereço 0 - utilizar a
instrução MOVX) no endereço 50H da memória interna.
4) - Idem para um conversor A/D utilizando a interrupção IE1 e endereço
de acesso 20H..
5) - Utilizando a entrada ‘IE0’, fazer uma rotina para o registrador R0
indicar o número de vêzes que um feixe luminoso é interrompido.
AULA 6
3.3) - 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.
Figura 7 - 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
INICIO:
ORG
JMP
0
INICIO
ORG
JMP
3
LETEC ;SALTA PARA A LEITURA DAS TECLAS
ORG
MOV
MOV
30H
;INICIO NORMAL DO PROGRAMA
SP,#PILHA
IE,#10000001B
19
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
.
.
.
;* 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
3.4) - Exercício
1) - Fazer um programa para ler 8 teclas localizadas no PORT P1 e
armazenar o resultado nos bits 23.0 a 23.7. Se a quarta chave estiver em
1, ligar um ventilador localizado no Port P2.0. Prever debouced de 10
mseg. Utilizar INT1 para interrupção.
3.5) - Sistema de temporização:
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 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.
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 1
TIMER 0
GATE: utilizado quando se deseja um controle do timer externo
através do pino externo INT0 ou INT1 (dependendo do timer utilizado).
20
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
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
frequência 1/12 do oscilador interno.
M1
M0
:
controla modo de operação do timer
0
0
0
1
1
0
1
1
->
possuiu um divisor de 5 bits e um
contador de 8 bits
->
sem divisor, possuiu contador de 16 bits
->
contador de 8 bits (TH). O byte TH é
recarregado a cada ciclo em TL
->
para timer.
- Registrador de controle
______________________________________________
-----------------------------------------------------TCON: | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0|
----------------------- ------------------------------TF0: bit de status. Em nível alto indica overflow do
timer 0.
TR0: em nível alto habilita o funcionamento do timer 0.
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
pino Tin0. Em nível baixo indico pulso negativo.
Precisa
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.
3.3) - 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?
AULA 7
21
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
4) - Fazer uma rotina para a cada 100 mseg (supor que o cristal do
microcontrolar é de 6 Mhz) a posição da chave localizada no port P1.0
seja colocada na posição de memória booleana 20.0H. Se a chave estiver
em nível alto, ligar um motor localizado no port P1.1. Caso contrário,
desligar o mesmo motor. Utilizar o timer 0 para implementar a
temporização.
5) - Fazer uma rotina para a cada 10 mseg (supor que o cristal do
microcontrolador é de 12 Mhz) as posições de 4 chaves localizadas nos
ports P1.0, P1.1, P1.2 e P1.3 sejam colocadas nas posições booleanas
20.0H, 20.1H, 20.2H e 20.3H e controlem 4 motores localizados nos ports
P1.4, P1.5, P1.6 e P1.7. Utilizar o timer 1 para implementar a
temporização.
6) - Fazer com que as posições 30 H e 31 H sejam incrementadas a cada 1
mseg. Usar o timer 1 para implementar a temporização. Utilizar cristal
de 12 Mhz.
7) - Utilizando o timer 0 programado para 10 mseg. fazer com que a
posição 40 H e 41 H sejam incrementadas a cada 10 mseg. Utilizar cristal
de 1 Mhz.
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) - Colocar a mensagem abaixo no display. A cada 20 mseg. ler o sensor
P1.0. Ligar uma lâmpada (P1.1) se o sensor estiver em nível baixo e
desligar a lâmpada se o sensor estiver em nível alto.
22
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
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 8 - Teclado de 16 teclas com varredura matricial
O programa abaixo faz a leitura de 16 chaves utilizando o PORT 2.
Utilizar os 4 bits P2.0 a P2.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
COLUNA2
COLUNA3
COLUNA4
LINHA1
LINHA2
LINHA3
LINHA4
BIT
BIT
BIT
BIT
BIT
BIT
BIT
BIT
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
;* definição da área boolena
CHAVE1
CHAVE2
CHAVE3
CHAVE4
CHAVE5
CHAVE6
CHAVE7
CHAVE8
CHAVE9
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
0
1
2
3
4
5
6
7
8
;*POSIÇÃO 20.0
23
APOSTILA DE TEORIA
CHAVE10
CHAVE11
CHAVE12
CHAVE13
CHAVE14
CHAVE15
CHAVE16
;* INICIO DO PROGRAMA
INICIO:
MACKENZIE
EQU
EQU
EQU
EQU
EQU
EQU
EQU
9
0aH
0bH
0cH
0dH
0eH
0fH
MICROPROCESSADORES II
;POSIÇÃO 21.7
ORG
JMP
0
INICIO
ORG
JMP
0BH
LECHAVE
ORG
MOV
MOV
MOV
MOV
MOV
SETB
CLR
30H
SP,#60H
IE,#10000010B
TH0,#0D8H
TL0,#0EFH
TMOD,#00010001B
TR0
TR1
;TIMER 0
;HABILITA TIMER 0
;LIGA TIMER0
;DESLIGA TIMER1
.
.
.
;*SUBROTINA DA INTERRUPÇÃO
LECHAVE:
MOV
TH0,#0D8H
MOV
TL0,#0EFH
MOV
20H,#00H
MOV
21H,#00H
SETB
LINHA1
SETB
LINHA2
SETB
LINHA3
SETB
LINHA4
;* INICIA VARREDURA DA LINHA1
CLR
LINHA1
JB
COLUNA1,SALTO1
SETB
JB
CHAVE1
COLUNA2,SALTO2
SETB
JB
SETB
JB
SETB
SETB
CLR
JB
CHAVE2
COLUNA3,SALTO3
CHAVE3
COLUNA4,SALTO4
CHAVE4
LINHA1
LINHA2
COLUNA1,SALTO5
SALTO5:
SETB
JB
CHAVE5
COLUNA2,SALTO6
SALTO6:
SETB
JB
CHAVE6
COLUNA3,SALTO7
SALTO1:
SALTO2:
SALTO3:
SALTO4:
;ZERA ÁREA BOOLENA
;SETA LINHA1
;ZERA LINHA 1
;SE A TECHA1 NAO ESTIVER
;ACIONADA, SALTA
;INDICA CHAVE1 ACIONADA
;SE A TECLA2 NAO ESTIVER
;ACIONADA, SALTA
;INDICA CHAVE2 ACIONADA
;LIBERA LINHA 1
;ZERA LINHA 2
;SE A TECHA5 NAO ESTIVER
;ACIONADA, SALTA
;INDICA CHAVE5 ACIONADA
;SE A TECLA6 NAO ESTIVER
;ACIONADA, SALTA
;INDICA CHAVE6 ACIONADA
24
APOSTILA DE TEORIA
SALTO7:
SALTO8:
SALTO9:
SALTO10:
SALTO11:
SALTO12:
SALTO13:
SALTO14:
SALTO15:
SALTO16:
MACKENZIE
SETB
JB
SETB
CHAVE7
COLUNA4,SALTO8
CHAVE8
SETB
CLR
JB
LINHA2
LINHA3
COLUNA1,SALTO9
MICROPROCESSADORES II
;LIBERA LINHA 2
;ZERA LINHA 3
;SE A TECHA9 NAO ESTIVER
;ACIONADA, SALTA
CHAVE9
;INDICA CHAVE9 ACIONADA
COLUNA2,SALTO10;SE A TECLA10 NAO ESTIVER
;ACIONADA, SALTA
CHAVE10
;INDICA CHAVE10 ACIONADA
COLUNA3,SALTO11
CHAVE11
COLUNA4,SALTO12
CHAVE12
SETB
JB
SETB
JB
SETB
JB
SETB
SETB
CLR
JB
SETB
JB
SETB
JB
SETB
JB
SETB
SETB
RETI
LINHA3
;LIBERA LINHA 3
LINHA4
;ZERA LINHA 4
COLUNA1,SALTO13;SE A TECHA13 NAO ESTIVER
;ACIONADA, SALTA
CHAVE13
;INDICA CHAVE13 ACIONADA
COLUNA2,SALTO14;SE A TECLA14 NAO ESTIVER
;ACIONADA, SALTA
CHAVE14
;INDICA CHAVE10 ACIONADA
COLUNA3,SALTO15
CHAVE15
COLUNA4,SALTO16
CHAVE16
LINHA4
;LIBERA LINHA 4
;RETORNA DA INTERRUPCAO
AULA 8
4.1) - Exercícios
1) - Fazer um projeto para leitura de dip-switch de 8 chaves utilizando o
sistema de varredura estudado. Colocar a condição das 8 chaves na área
booleana do sistema. Se a chave 1 estiver na condição zero, colocar o
dado 0ffH no port 1. Caso contrário, zerar o mesmo port. Utilizar o
timer0 configurado para 10 mseg. para ler o dip-switch.
2) - Fazer um projeto para o controle de um teclado de 64 teclas.
Colocar sua condição na área booleana. Utilizar uma rotina de
interrupção controlada pelo timer 1 com temporização de 10 mseg para a
temporização da leitura das teclas.
3) - Projeto de um teclado telefônico
25
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
5) - Sistema de Comunicação Serial
5.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.
Apresenta 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:
5.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.
Figura 11 - Estrutura básica da comunicação assíncrona
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)
5.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
26
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
integridade da comunicação. Um protocolo padrão garante a qualidade e
integridade da comunicação (através de comandos como NACK e ACK)
Figura 12 - 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)
5.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.
Sinal RS232 - Alta imunidade a ruído
Figura 13 - Sinais padrão TTL e RS-232
A implementação mais comum é realizada através de line-drivers
integrados (como os chips 1488 - TTL/RS232 e 1489 - RS323/TTL).
5.1.4) - Sinais típicos de uma interface padrão serial:
Os sinais mais comuns encontrados em comunicação serial assíncrona
é mostrado abaixo. Uma aplicação típica desta configuração é
27
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
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
trasmitidos (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.
Muitos dos sinais de propósito acima tem suas funções ligadas ao
protocolo.
AULA 9
5.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 frequê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. Baudrate 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 é
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.
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
28
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:
e recepção.
- SCON:
registrador armazenador do dado de transmissão
registrador de controle serial:
SM0 SM1 SM2 REN TB8 RB8 TI RI
SM0 - SM1:
0
0
0
1
1
0
1
1
modo
modo
modo
modo
modo
de operação
0
1
2
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:
TB8:
em nível alto habilita recepção.
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.
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:
29
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
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
4,8
2,4
1,2
110
11.059
11.059
11.059
11.059
6 Mhz
FD
FD
F4
E8
72
k
k
k
k
Mhz
Mhz
Mhz
Mhz
h ( SMOD = 1)
h ( SMOD = 0)
h
“
h
“
h
“
Colocando SMOD = 1 dobramos a taxa de transmissão.
Ex.: 1) - Programar o registrador SCON e o TIMER 1 para 8 bits de dado,
sem paridade, habilitacao de RX e baud-rate de 9600 baunds. Supor a
utilização de cristal de 11.059 Mhz
MOV
MOV
MOV
MOV
MOV
MOV
TH1,# 0FD h ;carrega cristal 1 com reload
TMOD,# 0010XXXXb ; programa timer 1 c/ reload
TCON,# 010X0000b ;roda timer 1
IE,# 10011XXXb
;habilita inter. serial e t1
PCON,#10000000B
;SMOD = 1
SCON, # 01010000b ;modo 1 e rx habilitado
2) - Idem para 8 bits, com paridade, habilitação RX e baud-rate de 2400
baunds.
3) - Fazer uma rotina de interrupção serial para colocar o dado recebido
no endereço indicado pôr 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
MOV
TMOD,# 0010XXXXb ; programa timer 1 c/ reload
MOV
TCON, # 010X0000b ;roda timer 1
MOV
IE,# 10011XXXb
;habilita inter. serial e t1
MOV
SCON, # 01010000b ;modo 1 e rx habilitado
...
SERIAL:
PUSH
ACC
MOV
A,SBUF
MOV
@R0,A
CLR
RI
POP
ACC
RETI
4) - Idem esperando o dado através do bit RI
30
APOSTILA DE TEORIA
WAITRX:
...
JNB
MOV
MOV
CLR
...
MACKENZIE
MICROPROCESSADORES II
RI,WAITRX
A,SBUF
@R0,A
RI
5) - Transmitir o dado presente na posição de memória indicada por R0.
Utilizar a inicialização do exemplo 1
TXBUF:
...
ORG
MOV
MOV
MOV
MOV
MOV
...
MOV
MOV
JNB
CLR
...
30 h
TH1,# 0FD h ;carrega cristal 1 com reload
TMOD,# 0010XXXXb ; programa timer 1 c/ reload
TCON, # 010X0000b ;roda timer 1
IE,# 10011XXXb
;habilita inter. serial e t1
SCON, # 01010000b ;modo 1 e rx habilitado
A,@R0
SBUF,A
TI,$
TI
;CARREGA DADO A SER TX
;ESPERA TRANSMITIR
6) - Idem tranmitindo a palavra MACK em ASCII.
TX:
TX1:
MOV
CALL
MOV
CALL
MOV
CALL
MOV
CALL
...
MOV
JNB
CLR
RET
A,’M’
TX1
A,’A’
TX1
A,’C’
TX1
A,’K’
TX1
SBUF,A
TI,$
TI
7) - Fazer uma rotina para transmitir uma string de uma tabela terminando
com 0ffh.
31
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
AULA 10
6) – Conversores Analógico/Digitais e Digitais Analógicos
6.1) - Introdução:
Sinal Analógico (não discreto) -> Sinal Digital (discreto)
Fatores para conversão:
- Número de bits de conversão: determina o número de valores discretos da conversão ->
2n
- 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.
fa = 2 x fmax
- Resolução: determina o valor analógico máximo em relação ao fundo escala
 V = Vmax / 2n
Ex: Para um valor Vmax = 5V, n=12 bits, qual a resolução do sinal?
 V = Vmax / 2n
 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?
3) - Qual a freqüência de amostragem para um fidelidade de som considerando a quarta harmônica?
32
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
6.2) – Conversor A/D ADC 0808
download -> http://www.national.com/ads-cgi/viewer.pl/ds/AD/ADC0808.pdf
Sistema Mínimo 8031 / ADC0808 (endereço 2000H - 3FFFH)
33
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
AULA 11
6.3) - Exercícios
1) - Projetar um circuito com as seguintes características:
- 8031
- Eprom 2764
- LCD (end. 0-1fffh)
- Serial RS232
- Conversor ADC0808 (end. 2000h-3fffh) com 8 sensores de temperatura.
- 1 ventilador (port p1.1)
- 1 aquecedor (port 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.
34
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
AULA 12
7) - Processamento Digital de Sinal
7.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
(1.1)
Vout = ai.bi
i
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 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.
35
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
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.
7.2) - Características da arquitetura de um circuito integrado dedicado a DSP:
Os chips dedicados a funções que envolvam DSP apresentam algumas
características comuns que passaremos a analisar:
7.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.
7.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.
7.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
36
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
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.
7.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 ... Then" ou "For ... 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).
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 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.
Figura 1
37
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
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 2 nos mostra um detalhamento maior da unidade aritmética
do
TMS320C25.
Pode-se
observar
unidades
independentes
para
multiplicação, 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
7.2.2).
figura 2
Como já foi ressaltado, para agilizar a execução das instruções, o
TMS320C25 utiliza a operação "pipeline", representada na figura 3. Podese observar a execução simultânea de busca, decodificação e execução de 2
38
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
ou 3 instruções simultaneamente, aumentando grandemente a velocidade de
execução das rotinas.
figura 3
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.
7.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.
7.4) - Bibliografia para P.D.S.:
- DISCRETE-TIME
Hall,1989
SIGNAL
PROCESSING.
Oppenhein
- A SIMPLE APPROACH TO DIGITAL SIGNAL PROCESSING.
Gillian. Wiley Interscience.
e
Schafer.
Prentice
Marven, Craing e Ewers
- DIGITAL SIGNAL PROCESSING A LABORATORY APPROACH USING PC-DSP.
Oktay. Prentice Hall
Alkin,
- DIGITAL SIGNAL PROCESSING APPLICATIONS WITH THE TMS320 FAMILY.
Instruments.
Texas
39
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
ANEXO I
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)
1. PIC12C508
2. PIC16F628
TEXAS INSTRUMENTS (WWW.TI.COM)
3. MSP430F135
MOTOROLA (WWW.MOTOROLA.COM)
4. 68HC11
NATIONAL SEMICONDUCTOR (www.national.com)
6. COP 8
CYPRESS (www.cypress.com)
7. PSOC
40
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 memoria 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 voce 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.
-Saida para 5 contatores que controlarão 5 sistemas de iluminação.
-Comunicação Serial.
-Entrada de um botao de emergencia 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 saida em nível alto e desligue em nivel
baixo. Ficar em loop.
b)-Fazer um programa para escrever no diplay 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 botao de
emergencia 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.
c) - Suponha que voce esteje 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 seje 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.
41
APOSTILA DE TEORIA
MACKENZIE
MICROPROCESSADORES II
-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 digitado a tecla CORRIGE, ligar o buzzer por 1 segundo.
7) - Fazer um projeto com um microcontrolador 8031 com as seguintes característicias:
- Projeto de um torno microprocessado CNC.
- Cristal com frequê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:
- 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ê esteje 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. Saida para controle de 3 motores (representar o
acionamento apenas de 1 motor). Entrada do contador 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) .
42
Download