Você está na página 1de 58

www.mackenzie.com.

br

APOSTILA
MICROPROCESSADORES II - EEUM

SEGUNDO SEMESTRE 2006


PROF. IVAIR REIS N. ABREU
02/08/2006
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

PLANEJAMENTO DIDÁTICO PEDAGÓGICO DA DISCIPLINA


MICROPROCESSADORES II SEGUNDO SEMESTRE 2006

ESCOLA DE ENGENHARIA UPM

UNIDADE: Engenharia Elétrica DISCIPLINA: Microprocessadores II

PROFESSOR: Mst. Ivair Reis Neves Abreu

Departamento: Eletrônica ETAPA: 8 CARGA HORÁRIA: 2 aulas

Introdução: a proposta deste planejamento pedagógico baseia-se no processo


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 e não apenas no 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 proposto através de um plano de aulas gradual,
acompanhada de verificações contínuas e principalmente processo de ação
corretiva.

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

07/06/2006 10/12/2006
x------------------------------------------------------------------x
Pré-Requisito -> 14 semanas -> Objetivo Final

OBJETIVOS: o aluno deverá adquirir os conceitos básicos de sistemas com


microcontroladores, processadores digitais de sinal e “embbeded PC” . Com estes
conceitos será obtido a capacitação em projetos com microcontroladores e seus principais
periféricos (LCD, Teclado Matricial, Comunicação Serial e Conversor A/D) e programação
destes sistemas em linguagem Assembler com ênfase em estruturas utilizadas em
linguagem C.

EMENTA:

2
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

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 MSP430, Z8, Freescale 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

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

onde: P1 = primeira prova semestral - 02/10/2006


P2 = segunda prova semestral. - SECRETARIA
T1 = Trabalho 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

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 MSP430, 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

3
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

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


- 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.
- 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.freescale.com
www.cypress.com
www.asm51.eng.br

Plano de Aula: Segundo Semestre de 2006

Início: 07/08/2006
Término: 27/11/2006
Prazo entrega final das notas: 14/12/2006
Falta Prevista: -
Aulas Previstas: 13 aulas de teoria.

4
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

1) - Revisão da Arquitetura do Microcontrolador 8051

Planejamento (P):

Este capítulo capacitará o aluno nos seguintes pontos:

- Revisão dos conceitos de sistemas programáveis.


- Revisão da arquitetura 8051.
- Revisão do conjunto de instruções 8051.
- Revisão dos conceitos de LCD
- Exercícios de CLP + LCD.

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) - Arquitetura do Microntrolador 8051:

5
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

Figura – Arquitetura MCS-51

1.2.1) - Pinagem:

- Vcc,Gnd: alimentação única de 5 V.

- X1-X2: conectada ao cristal externo (12 Mhz típico).


O sistema de temporização interno divide a frequência do
cristal por 12, proporcionando um ciclo típico de máquina de
1 mseg.

- RST: entrada de inicialização ativa em nível alto


__
- EA ("external acess"): em nível baixo, desabita os 4
kbytes de memória de programa interna. Toda a busca de
instrução é realizada externamente (através de uma EPROM).
Em nível alto habilita a memória interna.

- ALE ("Address Latch Enable"): na utilização de


memória de programa externa, este pino tem a função de
indicar a presença de endereço (em nível alto) ou dado (em
nível baixo) no barramento de endereço/dado multiplexado
(AD0-AD7).
____

6
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

- PSEN ("Program Strobe Enable"): em nível baixo indica


leitura de uma instrução da área de programa. Normalmente
ligado ao pino RD da memória de programa.

- Port P0 (P0.0-P0.7): seus 8 pinos podem ter dupla


função. Se não houver memória externa, são utilizados como
sinais de entrada/saída do "latch" bidirecional P0. Se
houver memória externa, atua como 8 sinais multiplexados de
dados/endereço (AD0-AD7). O sinal de ALE indica a condição
deste barramento.

- Port P1 (P1.0-P1.7): 8 pinos de entrada/saída do


"latch" bidirecional P1.

- Port P2 (P2.0-P2.7): seus 8 pinos também podem ter


dupla função. Se não houver memória externa com mais de 256
endereços, são utilizados como sinais de entrada/saída do
"latch" bidirecional P2. Se houver necessidade de
endereçamento maior que 8 bits, atua como 8 sinais de
endereço A8-A15.

- Port P3 (P3.0-P3.7): novamente, seus 8 sinais tem


dupla função:

- P3.0:
RxD (recepção serial) / port P3.0
- P3.1:
TxD (transmissão serial) / port P3.1
- P3.2:
INT0 (interrupção 0) / port P3.2
- P3.3:
INT1 (interrupção 1) / port P3.3
- P3.4:
T0 (entrada Timer 0) / port P3.4
- P3.5:
T1 (entrada Timer 1) / port P3.5
- P3.6:
WR (sinal de escrita da RAM externa)/port
P3.6
- P3.7: RD (sinal de leitura da RAM externa)/port
P3.7

1.2.2) - A memória RAM interna:

- Área de Registradores R0-R7 (00-1FH): o 8051 possui 4


bancos de registradores selecionados através dos bits RS1 e
RS0 do registrador PSW. Normalmente estes registradores
armazenam endereços da área de rascunho (modo de
endereçamento indireto).

- Área Booleana (binária) (20H-2FH): 16 bytes


endereçados bit a bit (totalizando 128 bits). Pode-se
acessar cada bit individualmente indicando uma determinada
condição binária (por exemplo: a tecla A de um teclado foi
acionada). Estes bits são acessados pelas instruções
booleanas do 8051.

7
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

- Área de Rascunho (30H-7FH): memória de uso geral onde


se localiza a pilha do sistema.

- Área de Registradores Especiais (SFR) (80H-FFH): área


onde se localiza todos os registradores com função especial.
O número destes registradores varia de acordo com as funções
disponíveis dentro do processador. Os registradores
especiais mais comuns são:

- PO (80H): port P0.


- P1 (90H).
- P2 (A0H).
- P3 (B0H).
- ACC (E0H): acumulador.
- B (F0H)
- PSW (D0H): registrador de status
- SP (81H): apontador de pilha
- DPL (82H): byte menos significativo do
registrador DPTR.
- DPH (83H): byte mais significativo do
registrador DPTR.
- PCON (87H): registrador de controle de consumo
do 8051.
- IE (A8H): registrador de habilitação do sistema
de interrupções.
- IP (B8H): registrador indicador de prioridade do
sistema de interrupção.
- TMOD (89H): registrador de modo dos timers.
- TCON (88H): registrador de controle do timer 1
- T2CON (C8H): registrador de controle do timer 2.
- TL0 (8AH): byte inferior do timer 1.
- TH0 (8CH): byte superior do timer 1.
- TL1 (8DH): byte inferior do timer 2.
- TH1 (8BH): byte superior do timer 2.

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

(Ver conjunto de instruções anexo 1 e 2)

1.4) – Projeto Básico de Controle:

1.4.1) - CLP Básico:

- 1 sensor fotoelétirco / 1 lâmpada


- Firmware para controlar lâmpada através do sensor fotoelétrico.

8
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

Fazer o mesmo projeto com o 10F200 e 16F628A (www.microchip.com)

1.4.2) - Forno de Microondas com o 8031.

- Saídas: 1 motor de prato


1 lâmpada
1 válvula microondas
1 bip (buzzer)
- Entradas: 1 chave liga/desliga
1 chave da porta
2 chaves gerais

- Firmware: Se a chave liga/desliga estiver acionada e a porta fechada ligar todas as saídas
(menos o bip) por 1 minuto. Após este tempo, acionar o bip por 0,5 segundo e voltar ao
ínicio do processo. Se a porta abrir durante o tempo de 1 minuto, desligar as saídas e
esperar a porta fechar para finalizar processo.

Verificação:

1.5) – Exercício:

1) - Sistema de Automação de Iluminação de um escritório com o 89S51 (www.atmel.com)


- Saídas: 2 lâmpadas externas.
8 lâmpadas internas (1 para cada sala).

- Entradas: 1 sensor fotoelétrico para controle das lâmpadas externas.


1 sensor de presença em cada sala.

- Firmware:
lâmpadas externas-> ligar quando o sensor fotoelétrico estiver indicando escuro.
lâmpadas internas -> ligar quando for detectada a presença de alguma pessoa na
saída. Desligar na ausência.

2) - Fazer um projeto com as seguintes características:

- 89S53
- Teclado 16 teclas
- Comunicação serial RS232
- Conversor A/D de 8 canais (ADC0808) -> 0-1fffh
- Display 16x2 -> 2000h-3fffh
- 1 chave liga/desliga
- 1 solenóide

9
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

- 1 lâmpada
- 1 sensor fotoelétrico

Em relação da projeto físico acima, fazer os seguintes programas:

3) - Considere que você trabalhe em uma empresa e um grande cliente da área


automobilística solicitou o projeto de um computador de bordo com as seguintes
características: processador 89S51 com WatchDog interno, display LCD ligado aos ports, 2
saídas de leds, 2 saída para solenóide, 2 botoeiras, 1 saída buzina e um modem GSM ligado
a interface serial.
a)–Fazer o circuito do computador acima considerando a ligação do display LCD no port P0
e o sinais de controle no port P1.
b) – Piscar seqüencialmente os 2 leds (intervalo de 0,5 segundos). Se o segundo botão
estiver em zero ligar o primeiro solenóide. Caso contrário desligar o primeiro solenóide.
Ficar em loop.

Ação

- Rever os conceitos de arquitetura do microcontrolador 8051.


- Rever conjunto de instruções 8051.
- Procurar o professor ou monitor para tirar dúvidas

1.6) - Interface para Display de Cristal Líquido (L.C.D.):

A figura a seguir mostra os principais controles destes tipos de displays:

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

10
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

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

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

11
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

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

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

12
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

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

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

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

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.

Verificação (C):

Exercícios:

1) – Fazer um projeto de um CLP com as seguintes características:

13
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

- 89S52 com sensor de presença em P3.2, ventilador P3.3 e uma lâmpada em P3.4. LCD no
endereço E000-FFFFh.

- Fazer uma firmware para escrever no LCD

" REVISAO "


" MICROCONTROLADOR"

e 1 segundo depois indicar no LCD a condição de SALA VAZIA / SAIDAS


DESLIGADAS ou SALA OCUPADA / SAIDAS LIGADAS.

14
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

2) – Supervisório (Watch Dog) e Controle Potência

Planejamento (P):

Este capítulo capacitará o aluno nos seguintes pontos:

- Inicialização do Supervisório WDT do 89S51.


- Modos Idle e Power Down do 89S51

Execução (D):

2.1 – Supervisório (watch dog)

O registrador Watch Dog é um timer incrementado pelo sinal do oscilador (1/12


fcristal) que quando atinge o valor de 3fffh (14 bits) inicializa o sistema. Para
ativar o Watch Dog ou reinicializá-lo basta escrever 01Eh e 0E1h na seqüência no
registrador WDTRST (registrador SFR -> endereço 0A6h)

Rotina de Inicialização:

wdtrst equ 0a6h

INIWDT: mov wdtrst,#01eh


mov wdtrst,#0e1h

Para clock de 12 Mhz o WDT precisa ser reinicializado a cada (1 x 3fffh = 16,8
mseg.)

2.2 – Controle de Potência:

Registrador PCON: registrador SFR (endereço 087h)

PCON: SMOD - - - GF1 GF2 PD IDL

SMOD: nos modos 1,2 e 3 de operação do SBUF, SMOD=1 dobra a


taxa de transmissão binária (será estudada na comunicação serial).
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

15
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

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.

pcon equ 087h

mov pcon,#00000010b ;modo power down


mov pcon,#00000001b ;model idle

Verificação (C)

1) – Fazer um projeto de um sistema de controle de iluminação com as seguintes


características:

- 89S51
- 1 chave (P1.0) para desligar sistema.
- Cristal de 11.059Mhz
- 1 sensor de presença (P1.1).
- 3 lâmpadas (P1.2 a P1.4).
- 3 ventiladores (P1.5 a P1.7)
- Display LCD (endereço 2000-3fffh).

Ligar as saídas se houver presença na sala. Colocar no LCD a mensagem


< SAIDAS ATIVADAS>. Caso contrário desligar as saídas e colocar a mensagem
< SAIDAS DESATIVADAS>. Se for acionada a chave P1.0 colocar o sistema em
Power Down. Inicializar o sistema de WDT.

Ação

- Rever os conceitos de WDT e controle de potência do 8051.

16
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) -> 0003H -> + prioridade


TF0 (interrupção do timer 0) -> 000BH
IE1 (interrupção externa 1) -> 0013H
TF1 (interrupção do timer 1) -> 001BH
SRT (interface serial) -> 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

17
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

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

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:

- Display de LCD (end. 2000-3fffh). Mensagem padrão: CONTROLADOR DE


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.

18
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

Ação (A):

- 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

19
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

ORG 03h
JMP LETEC ;SALTA PARA A LEITURA DAS TECLAS

ORG 30H ;INICIO NORMAL DO PROGRAMA


INICIO: MOV SP,#PILHA
MOV IE,#10000001B
.
.
.

;* 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.

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.

20
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

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

21
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

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 0 -> contador de 8 bits (TH). O byte TH é
recarregado a cada ciclo em TL
1 1 -> 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. 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 pino
Tin0. Em nível baixo indico pulso negativo.

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

22
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

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

23
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

24
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 ;HABILITA TIMER 0
MOV TH0,#0D8H ; 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

25
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

SETB LINHA2
SETB LINHA3
SETB LINHA4
;* INICIA VARREDURA DA LINHA1
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
;ACIONADA, SALTA
SETB CHAVE2 ;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
;ACIONADA, SALTA
SETB CHAVE6 ;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
;ACIONADA, SALTA
SETB CHAVE9 ;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

26
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
;ACIONADA, SALTA
SETB CHAVE13 ;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.
TESTE TECLADO
X
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.

27
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

4) - Sistema de Comunicação Serial

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

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.

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

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

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.

Figura - Sinais padrão TTL e RS-232

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

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

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

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

32
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

19,2 k 11.059 Mhz FD h ( SMOD = 1)


9,6 k 11.059 Mhz FD h ( SMOD = 0)
4,8 k 11.059 Mhz F4 h (SMOD = 1)
2,4 k 11.059 Mhz F4 h (SMOD = 0)

Para cristal de 22,1 Mhz a taxa de transmissão acima é dobrada.

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 TMOD,# 0010XXXXb ; programa timer 1 c/ reload
MOV TCON,# 010X0000b ;roda timer 1
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.

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

...
WAITRX: JNB RI,WAITRX
MOV A,SBUF
MOV @R0,A
CLR RI
...

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


inicialização do exemplo 1

...
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 ;habilita inter. serial e t1
MOV SCON, # 01010000b ;modo 1 e rx habilitado
...
TXBUF: MOV A,@R0

34
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

MOV SBUF,A ;CARREGA DADO A SER TX


JNB TI,$ ;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.

35
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

5) – Conversores Analógico/Digitais

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:

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

36
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

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?

5.2) – Conversor A/D ADC 0804

37
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

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

38
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

5.3) – Rotinas Básicas:

5.3.1) – Rotina de Leitura (LEADC:)

Verificação (C):

Exercícios:

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.

39
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

5.4) – Micrcontroladores com A/D embarcado

MSP430F135 -> www.ti.com

figura – Arquitetura MSP430F135 (www.ti.com)

40
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

PIC18F1320 -> www.microchip.com

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

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

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

44
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

Anexo - Conjunto de Instruções MCS-51


Fonte: Manual ATMEL MICROCONTROLLERS 8051 HARDWARE MANUAL (www.ivair.com.br)

45
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

46
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

47
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

48
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

Anexo - Instruções e Alteração do FLAG (PSW)


Fonte: Manual ATMEL MICROCONTROLLERS 8051 HARDWARE MANUAL (www.ivair.com.br)

49
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

Anexo - Conjunto de Instruções - Códigos de OperaçãoFonte:


Manual ATMEL MICROCONTROLLERS 8051 HARDWARE MANUAL (www.iv

50
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

51
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

52
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

53
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

54
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

55
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

56
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

Anexo – Esquema KIT89S51

57
APOSTILA DE TEORIA MACKENZIE MICROPROCESSADORES II

Anexo – Serigrafia Kit 89S51

58

Você também pode gostar