br
APOSTILA
MICROPROCESSADORES I EEUPM
1
PLANEJAMENTO DIDTICO PEDAGGICO DA DISCIPLINA
MICROPROCESSADORES I
UNIDADE: Engenharia
DISCIPLINA: Microprocessadores I
PROFESSOR: Ivair Reis Neves Abreu
DEPARTAMENTO: Eletrnica
ETAPA: 6 e 7
CARGA HORRIA: 2 aulas tericas / 2 aulas laboratrio
OBJETIVO:
Oferecer oportunidade para desenvolvimento das trs dimenses:
Conhecimento:
Conhecer os conceitos bsicos de sistemas programveis utilizando
microprocessadores, processadores digitais de sinais e microcontroladores.
Habilidades:
Projetar circuitos eletrnicos utilizando conceitos de sistemas programveis e
programar os sistemas projetados utilizando linguagens de montagem (
assembler) e estruturada (linguagem C).
Atitudes:
Compreender as tecnologias embarcadas nos atuais sistemas eletrnicos
incentivando o uso destas tecnologias com ganho de performance e menor custo.
2
EMENTA:
Reviso de Conceitos de Microcomputadores e Microprocessadores.
Arquitetura Bsica do Microcontrolador 8051.
Linguagem Assembler (Montagem) com as Instrues do 8051.
Projetos de Controle com Microcontroladores.
Estudo de Perifricos Bsicos: Display LCD.
METODOLOGIA
Aula expositiva com auxlio de recursos audio-visuais (principalmente
retroprojetor). O aluno dever constantemente participar atravs de aplicao de
exerccios e projetos. Uma apostila envolvendo todos os pontos abordados
servir de apoio didtico durante as exposies. Trabalhos levaro o aluno a
refletir sobre pontos avanados no abordados diretamente na sala de aula.
CONTEDO PROGRAMTICO
1. Reviso de Conceitos de Microprocessadores (Arquitetura e Linguagem
Assembler).
2. Arquitetura do Microcontrolador 8051:
2.1. Definio da Arquitetura Tpica de Microcontrolador.
2.2. Estudo da Arquitetura da Famlia 8051 Intel.
2.3. Sistema Mnimo 8051.
2.4. Linguagem Assembler 8051.
2.5. Definio do Cdigo de Operao de Instrues e Mneumnicos do 8051.
3. Instrues de Tranferncia de Informao, Aritmtica, Lgica, Transferncia
de Controle e Booleana.
3.1. Estudo de rotinas tpicas de controle: rotinas de tempo, escrita e leitura
de perifricos, memrias, etc.
3.2. Projetos de Sistemas Prticos com Microntroladores:
3.3. Alarme residencial / Controle de Iluminao / Automao Industrial.
3.4. Interface com Displays (LCD): Sistema Mnimo e Programao.
CRITRIO DE AVALIAO:
3
BIBLIOGRAFIA
Bsica:
VIDAL, Antonio. Aplicaes Prticas do Microcontrolador 8051, 1998. Ed. rica.
CADY, Frederick M. Microcontrollers and Microcomputers. 1997: Ed. Oxford.
Complementar:
- BARNETT, Richard H. The 8051 Family of Microcontrollers. 1995:
Prentice Hall.
MACKENZIE, Scott. The 8051 Microcontroller. 1995: Ed. Prentice Hall.
HANG, Han-Way. Using the MCS-51 Microcontroller, 2000. Ed. Oxford
University
Internet:
www.ivair.com.br
www.microcontroller.com
www.8052.com
www.vidal.com.br
www.questlink.com
www.microchip.com
www.ti.com
www.zilog.com
www.asm51.eng.br
www.digikey.com
Plano de Aula:
Incio: 07/08 ou 09/08
Trmino: 19/11 ou 22/11
Prazo entrega final das notas: 15/12
Falta Prevista: 08/10 (sexta-feira)
Reposio: ----
Feriado: ---
Aulas Previstas: 14 semanas (1 reservado para avaliao P1 presencial).
4
1) - Conceitos de Sistemas Programveis
Planejamento (P):
Este captulo capacitar o aluno nos seguintes pontos:
- Conceituar Sistema Programvel
- Estrutura de um computador: unidade central de processamento, memria
semicondutora e perifricos de entrada / sada.
- Definio de microprocessadores e microcontroladores.
- Barramentos de dados, endereo e controle.
- Revisar conceitos de eletrnica digital combinacional e seqencial.
- Revisar sistema numrico digital e hexadecimal.
- Arquitetura de memria semicondutora voltil (RAM) e no voltil (ROM).
Projetos com bancos de memria.
- Arquitetura de um microprocessador: unidade lgica aritmtica, decodificador de
instrues e registradores.
- Registradores acumulador, flag, contador de programa (PC) e apontador de pilha
(SP). Conceito de pilha e sub-rotina.
- Sistema de inicializao, reset e watch dog.
- Sistema de temporizao, ciclo de instruo e ciclo de mquina.
- Sistema de interrupo.
- Multiplexao de barramentos (A / D) em microprocessadores.
- Acesso Direto a Memria (DMA).
- Sincronizao de memria / perifricos.
- Estudo da arquitetura do microprocessador 8085.
- Sistema Mnimo 8085.
- Interpretao de diagramas de tempo em microprocessadores.
5
Figura - Estrutura de um sistema programvel
Exemplos:
6
Figura - Arquitetura Computador mais barramentos
Exemplo:
7
Ex:
- Microcontrolador 8051 da Intel (89S51 Atmel; LPC932 NXP)
- Microcontrolador PIC12F628A Microchip
- Microcontrolador MC9RS08LC60 Freescale.
Exemplo:
- DSP TMS320C5XXX da Texas Instruments ( www.ti.com )
- DSPIC da Microchip ( www.microchip.com )
Aplicaes finais tpicas:
- Telecomunicaes como telefone celular.
- Controle de motores.
- Processamento de imagem mdica (tomografia computadorizada).
1.2.2) - Memria:
8
Os seres humanos, de maneira anloga, tm a memria para armazenamento de
funes permanentes (aprendizado, controle dos rgos internos) e
armazenamento de funes temporrias (lembranas armazenadas apenas
durante uma tarefa como dirigir entre a residncia e o local de trabalho).
Resumindo:
O computador pessoal (PC) possui o sistema BIOS + SISTEMA OPERACIONAL
(WINDOWS / LINUX) + APLICATIVO (WORD, EXCEL, GAMES, ETC).
Equipamentos com funes especficas possuem FIRMWARE dedicado.
1.2.3) - Perifricos:
Bloco de comunicao do conjunto CPU / memria com o meio exterior. Pode ser
caracterizado como entrada (teclado, mouse, etc.) ou sada (monitor, impressora,
plotter, etc.). a interface de comunicao com o usurio e a parte do sistema
que normalmente tem acesso.
9
- Decimal -> base 10.
- Binrio -> base 2 -> mais fcil de chavear (atravs de transistores, chaves,
etc.)
- Hexadecimal binrio -> converte cada 4 nmeros binrios (nibble) em nmeros
de 0 (0000B) a F (1111B)
- Decimal binrio (B.C.D.) -> converte cada 4 nmeros binrios em nmeros de
0 (0000B) a 9 (1001B)
- Octal -> converte cada 3 nmeros binrios em nmeros de 0 (000B) a 7
(111B).
Converses importantes: Binrio <-> Decimal
Binrio <-> Hexadecimal
Lembre-se:
1 bit -> 0 e 1
1 byte = 8 bits
1 word = 2 bytes
1 double-word = 4 bytes
EXERCCIOS
10
Decodificadores 3x8 -> procurar na Internet 74HC138
11
Conforme pode ser observado na figura representativa da arquitetura do
computador, os barramentos so meios fsicos (normalmente trilhas de circuito
impresso) interligando a CPU, memria e os perifricos de entrada / sada. Em
um circuito impresso, so as trilhas interligando os diversos pinos dos chips do
sistema.
12
- Barramento de Dados (Data Bus): carrega a informao da instruo (atravs
do cdigo de operao), varivel do processamento (clculo intermedirio de uma
frmula por exemplo) ou informao de um perifrico de E/S (dado digitado em um
teclado). O tamanho da via de dados determina respectivamente o mximo
nmero de instrues (e portanto o potencial de processamento) e a preciso do
processamento aritmtico (atravs do clculo de ponto flutuante) ou o nmero de
smbolos possveis a ser representado (por exemplo, pontos de uma foto).
Exemplo:
Exemplo:
- 8085 -> 16 bits na via de endereo -> 216 = 65512 kbytes
- 8088 -> 20 bits na via de endereo -> 1 Mbyte
13
Figura - Tabela comparativa entre microprocessadores Intel (4004-PentiumIII)
Barramento SPI:
Sugesto de Links:
http://en.wikipedia.org/wiki/SPI_bus
http://ww1.microchip.com/downloads/en/AppNotes/00909B.pdf
14
Barramento I2C: utiliza barramento serial com 2 vias
A sample schematic with one master (a microcontroller), three slave nodes (an ADC, a DAC, and a
microcontroller), and pull-up resistors Rp
Sugesto de Links:
http://en.wikipedia.org/wiki/I%C2%B2C
http://ww1.microchip.com/downloads/en/AppNotes/00974A.pdf
ROM (o fabricante grava uma nica vez), PROM (o usurio grava uma nica vez)
EPROM (o usurio grava milhares de vezes aps um processo de apagamento
por luz ultravioleta)
15
Figura - Arquitetura da memria 27C64
FLASH (EEPROM rpida com nmero menor de gravaes). Hoje possui chips
compatveis com memrias RAM (exemplo AT29C256)
16
Memria Flash Atmel at45db041 (4 Mbits 512 kbytes x 8)
Exemplo:
17
Figura 1.6 - Arquitetura Memria RAM 6264
Exerccios
1) - Procurar na Internet as caractersticas dos CIs: 27C64, 6264, 74HC138,
74HC373
18
1.8) - Arquitetura do Microprocessador:
- Decodificador de Instrues:
- Registradores:
19
Posies de memria internas (latchs tipo D) responsveis pelo armazenamento
temporrio de informaes gerais (registradores genricos) ou especficas.
Registradores para armazenamento de dados ou endereos dentro do
microprocessador. So implementados atravs de latchs internos (podendo ser
comparados a posies de memria dentro do microprocessador). Quanto maior
o nmero de registradores internos maior a velocidade de processamento, pois
no necessrio o acesso memria externa para armazenamento de variveis.
comum os microcontroladores e os D.S.P.s possurem algumas centenas de
posies de memria internas, diminuindo em muito o tempo de acesso
memria. Outro exemplo bastante apropriado a memria caches internas aos
microprocessadores 486 e PENTIUM.
Registradores Especficos:
| S | Z | - | AC | - | P | - | C |
20
Exerccios
- Instruo: CALL 2000H -> carrega o PC com o endereo 2000H. Neste caso, o
contedo anterior do PC (PCH->SP-1 e PCL->SP-2) salva em uma regio de
memria (interna ou externa ao microprocessador) conhecida por PILHA. Ao ser
executada a instruo RET, o programa retorna ao ponto em que foi chamado. A
rotina acessada pela instruo CALL conhecida por subrotina. O contedo do
registrador SP decrementado de dois para possibilitar o salvamento de outros
parmetros na pilha (ou a chamada de outras subrotinas dentro de subrotinas)
21
1.9.1) - Temporizao das Instrues - Ciclo de Instruo:
Exerccios:
1) - Calcular os ciclos M1, M2 e o ciclo de instruo para a instruo MOV A,B
utilizando fc = 6 Mhz, n = 3, M1 = 4 clocks e M2 = 3 clocks.
23
- Watch Dog: circuito supervisrio que inicializa o microprocessador a cada
perodo de tempo configurvel (1 ou 2 segundos normalmente) se no receber um
sinal do microprocessador. Desta forma o programa do sistema deve, em um
tempo menor que o tempo do W.D., gerar este sinal. Se o programa se perder e
no gerar o referido sinal, o W.D. inicializar o microprocessador.
Exerccio:
1) - Determinar o mnimo valor de um capacitor para um circuito de reset
automtico considerando:
Vcc = 5V, Vreset = 2/3 Vcc
R = 100k
Freqncia: 100 Mhz
Nmero de clocks mnimo para reset: 100
1.9.3) - Interrupes:
24
-Atendimento ao teclado: quando uma tecla acionada, o teclado gera um sinal
positivo que ao entrar na interrupo do microprocessador faz o mesmo parar o
processamento, salvar o endereo atual do PC na pilha e saltar para o endereo
indicado no vetor de interrupo (varivel ou fixo).
-Interrupes disponveis no 8085: 5 entradas de interrupes ativadas em nvel
alto por um dispositivo externo. Neste caso, o 8085 interrompe a seqncia de
execuo do programa e salta para um endereo pr-determinado (vetor de
interrupo). As interrupes possuem os seguintes vetores e prioridades:
Interrupes Endereo
prioritrio
^ TRAP 0024H
|
| RST6,5 003CH
|
| RST6,5 0034H
|
| RST5,5 002CH
|
| INTR endereo fornecido por
um controlador de interrupo
25
Exerccios / Pesquisa Complementares
Exemplo:
"O DMA uma caracterstica essencial dos computadores modernos. Permite que
os dispositivos transfiram dados sem sobrecarregar a CPU. De outra maneira, a
CPU teria que copiar todos os dados da fonte at o destino. Isto tipicamente
mais lento do que copiar blocos de dados dentro da memria, j que o acesso a
dispositivo de perifricos atravs de barramentos perifricos mais lento que a
memria de dados. Durante a cpia dos dados a CPU ficaria indisponvel para
outras tarefas.
26
Uma transferncia por DMA essencialmente copia um bloco de memria de um
dispositivo para outro. A CPU inicia a transferncia, mas no executa a
transferncia. Para os chamados third party DMA, como utilizado normalmente
nos barramentos de computadores, a transferncia realizada pelos
controladores DMA que so tipicamente parte do chipset da placa me. Projetos
mais avanados de barramento, como o PCI, tipicamente utilizam bus-mastering
DMA, onde o dispositivo toma o controle do barramento e realiza a transferncia
de forma independente.
Por exemplo, um controlador DMA ISA de um computador tem 16 canais DMA dos
quais 7 esto disponveis para a CPU. Cada canal DMA associado com um
registador de endereo de 16 bits e um registador contador de 16-bit. Para iniciar
uma transferncia o driver do dispositivo inicializa o endereo e o contador com a
direco da transferncia, leitura ou escrita. Ele instrui o hardware DMA para
iniciar a transferncia. Quando a transferncia completa o dispositivo interrompe
a CPU.
Links:
http://en.wikipedia.org/wiki/Direct_memory_access
Ex:
27
Figura - Sinal ALE
29
CPU Memria
Decoficador
CS
Entrada
READY
Tacesso memria
Ex: Qual o perodo de um pulso de espera (Wait State) para o acesso a uma
escrita no disco rgido e a memria RAM dinmica considerando:
***2) Qual o perodo de um pulso de espera (Wait State) para o acesso a uma
memria RAM rpida considerando:
Ciclo de instruo de escrita: 5 clocks
Clock: 500 Mhz
Tempo de Acesso a RAM: 15 nseg.
30
***3) Fazer um circuito de separao de dados / endereo de um processador
com um barramento AD0-AD15, com sinal de ALE. Colocar um Buffer para a via
de dados.
31
Exemplo:
1.
2.
32
Links Adicionais ->
http://www.nxp.com/#/pip/pip=[pip=LPC3220_30_40_50_1]|pp=[t=pip,i=LPC3220_
30_40_50_1]
http://www.embeddedarm.com/products/new-products.php
http://en.wikipedia.org/wiki/Memory_management_unit
33
1.10 - Perifricos Embarcados
1.10.1 - Ports
Exemplo:
Entrada -> chaves, teclados, sensores binrios.
Sada -> rele, led, lmpada, motor, solenide, etc.
34
1.10.3 - Timers - Temporizadores
1.10.6 - PWM
Bloco de Modulao por Fase, normalmente utilizado para gerar sinais com ciclo
de trabalho programvel. Tem como principal aplicao o controle de
luminosidade de lmpadas ou velocidade de motores.
1.10.7 - USB
1.10.8 - Ethernet
35
Interface para controle de um display de Cristal Liquido. Normalmente necessita
de um pino de controle (sinal de 100 Hz), sinais de varredura (no caso de LCD
com vrios segmentos) e um grande nmero de pinos para acesso a cada
segmento do LCD.
36
Figura - Arquitetura interna 8085
37
- Registrador apontador de pilha (SP): registrador de 16 bits com a funo
especfica de armazenar o endereo final da rea de memria denominada pilha
(onde so armazenados parmetros de retorno das subrotinas)
- Decodificador de instrues: bloco lgico interno com a funo de receber as
instrues (cdigos de operao que entram pela via de dados), decodificando-as
e gerando sinais de controle e temporizao.
- Controle Serial: o 8085 possui uma sada serial de dados (SOD) controlada pela
instruo SIM (coloca o oitavo bit do acumulador no pino SOD) e uma entrada
serial de dados (SID), controlada pela instruo RIM (coloca o bit da entrada serial
no oitavo bit do acumulador).
38
- HOLDA: sada ativa em nvel alto indicando barramento em tri-state para o
controlador de D.M.A. ou para o microprocessador paralelo.
SKD85
Exemplo:
39
1) Projetar um sistema mnimo com o 8085 com as seguintes caractersticas:
Clock 4 Mhz
Reset automtico / manual
5 perifricos ligados a 5 interrupes
Sistema DMA (representar em blocos)
Desabilitar sinal READY.
32 Kbytes de memria EPROM (2764)
32 Kbytes de memria RAM (6264)
8 Perifricos (endereo 00 ff). Representar cada perifrico por um bloco.
Temporizao da Instruo OUT <end> (2 bytes) Ex: OUT 20H (D3 20)
40
Exerccio
Link ->
http://www.nxp.com/#/pip/pip=[pip=LPC2880_LPC2888_3]|pp=[t=pip,i=LPC2880_L
PC2888_3
Principais Caractersticas:
41
Innovative event router allows interrupt, power-up, and clock-start capabilities
from up to 107 sources
Multi-channel general purpose DMA controller that can be used with most on-
chip peripherals as well as for memory-to-memory transfers
Serial interfaces:
Hi-Speed or Full-Speed USB 2.0 device (480 Mbit/s or 12 Mbit/s) with on-chip
physical layer
UART with fractional baud rate generation, flow control, IrDA support, and
FIFOs
I2C-bus interface
I2S-bus (Inter IC Sound bus) interface for independent stereo digital audio input
and output
SD/MMC memory card interface
10-bit ADC with 5-channel input multiplexing
16-bit stereo ADC and DACs with gain control
Advanced clock generation and power control reduce power consumption
Two 32-bit timers with selectable prescalers
8-bit/4-bit LCD interface bus
Real-Time Clock (RTC) can be clocked by 32 kHz oscillator or another source
Watchdog timer with interrupt and/or reset capabilities
42
Exerccios:
ARM7 - http://www.nxp.com/#/ps/ps=[i=45994]|pp=[t=pfp,i=45994]
ARM9 - http://www.nxp.com/#/ps/ps=[i=53962]|pp=[t=pfp,i=53962]
http://www.freescale.com/webapp/sps/site/homepage.jsp?nodeId=0162468rH3114
43
2) - Arquitetura de Microcontroladores
Planejamento (P):
- Conceituar Microntrolador
- Conhecer a arquitetura interna da famlia MCS-51
- Sistema Mnimo da famlia MCS-51 com e sem memria externa
- Projetar CLPs utilizando ports de comunicao paralelo.
Execuo (D):
2.1 - Introduo
Aplicao
Multimdia -
PC
Sistema
Aberto (BIOS
+ SO +
X
Aplicativo)
Anlise de
Sinais
Sistema
Dedicado
(Firmware)
-
X
Controle
Booleano
Sinal
Analgico de
baixa
/
X
freqncia
Microcontrolador DSP Microprocessador Tecnologia
8 / 16 bits 16 / 32 bits 32 / 64 bits
44
Quadro comparativo entre Microprocessadores / Microcontroladores
HARVARD'.
- 256 instrues otimizadas para controle.
45
Arquitetura do Microcontrolador 8051:
Arquitetura funcional
46
Pinagem:
47
- P3.0: RxD (recepo serial) / port P3.0
- P3.1: TxD (transmisso serial) / port P3.1
- P3.2: INT0 (interrupo 0) / port P3.2
- P3.3: INT1 (interrupo 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
CY AC F0 RS1 RS0 OV - P
48
- Contador de Programa (PC): registrador de 16 bits que guarda o
endereo da prxima instruo. Quando o 8051 resetado, este registrador
zerado, fazendo o 8051 buscar a primeira instruo da memria.
49
- rea Booleana (binria) (20H-2FH): 16 bytes endereados bit a bit
(totalizando 128 bits). Pode-se acessar cada bit individualmente indicando uma
determinada condio binria (por exemplo: a tecla A de um teclado foi acionada).
Estes bits so acessados pelas instrues booleanas do 8051.
- rea de Rascunho (30H-7FH): memria 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 funo especial. O nmero destes registradores varia
de acordo com as funes disponveis dentro do processador. Os registradores
especiais mais comuns so:
- 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 habilitao do sistema de interrupes.
- IP (B8H): registrador indicador de prioridade do sistema de
interrupo.
- 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.
A seguir o mapa de endereo dos registradores especiais (Databook Atmel 89S51
- www.atmel.com.br).
50
Verificao (C)
- 32 sinais de entrada/sada
51
- Interface serial (RxD e TxD), interrupes externas (INT0 e
INT1), "timer" duplo externo (T0 e T1).
Verificao (C)
Exerccios
- Clock de 12 Mhz
- Reset automtico e manual.
- Controle de 12 motores .
- 12 entradas de chaves.
52
2.2.2 - Microcontrolador LPC935 (famlia LPC9xx)
http://www.nxp.com/documents/data_sheet/P89LPC933_934_935_936.pdf
Principais Caracteristicas:
53
Diagrama em Blocos
54
Pinagem
55
Kit de Desenvolvimento IAR:
http://www.iar.com/website1/1.0.1.0/658/1/?item=prod_prod-s1/224
Esquema Eltrico
56
Verificao (C)
Exerccios
- Clock de 12 Mhz
- Reset automtico e manual.
- Controle de 12 motores .
- 12 entradas de chaves.
57
3) - Linguagem Assembler
Planejamento (P):
Execuo (D):
3.1) - Introduo:
A linguagem Assembler uma linguagem de nvel intermediria, composta
basicamente de mnemnicos (palavra representando o cdigo de operao da
instruo), diretivas (pseudo-instrues), labels e comentrios. Pelo fato de estar
bem prxima a linguagem de microprocessador (linguagem de mquina composta
de bits compreensvel pelo processador), exige um compilador (programa que
converte o programa fonte em linguagem de mquina) bastante simples e portanto
rpido. ideal para utilizao na rea de projeto e testes de microprocessadores,
pois exige conhecimento da estrutura do microprocessador utilizado (ao contrrio
das linguagens superiores transparentes a estrutura do processador). Tem a
desvantagem de no possuir a estrutura de linguagens como PASCAL e C.
Aplicativo
(camada de programao interativa com o usurio)
Linguagem Superior
(camada de programao composta de estrutura de programao (IF THEN < >
ELSE < >))
Linguagem Assembler
(camada de programao composta de mnemnicos dos cdigos de operao).
Linguagem de Mquina
(camada de programao composta por cdigos de operao presentes na
memria e lida pela CPU para executar uma tarefa)
Hardware
(camada fsica)
58
A medida que a linguagem fica mais interativa ao programador, o
compilador (converte os cdigos da camada de linguagem em cdigos de
operao processados pelas CPU) necessita de ser mais complexo e portanto
mais lento (ou exigindo mais velocidade do processo envolvido)
rotina1 /* sub-rotinas */
{
declaraes;
}
.............
rotina N
{
declaraes;
}
Condicional IF:
Testa uma condio, realizando-a se verdadeira. Caso contrrio, ou sai da
estrutura ou executa a declarao contida na estrutura 'else'
if (estrutura de teste)
{
declaraes /* para uma declarao simples no necessrio { }
}
else /* no obrigatrio */
{
declaraes
}
59
Ex:
if (teste = = a+b)
{
c = 1;
d = ++;
}
else
c = 2;
Ex:
if (a = = 5)
teste = 1;
else
if (a = = 7)
teste = 2;
else
if (a = = 9)
{
teste = + +;
a=--;
}
Condicional FOR
Realiza uma determinada operao enquanto uma determinada condio
no for atendida.
Ex:
for (;;)
{
60
motor = desligado;
}
Condicional WHILE
Ex:
soma = 0;
a = 0;
while (a < 101)
{
soma = soma + a;
a++;
}
Condicional DO / WHILE
Estrutura que realiza uma declarao enquanto houver alguma condi;co
seja atendida.
do
{
(declarao);
}
while (condio)
Ex:
do
{ b=++;
motor = ligado;
}
while (chave = ligada)
61
Condicional SWITCH
Testa uma varivel e executa um grupo de declaraes testando uma
condio particular.
switch (varivel)
{
case constante1:
{
(declaraes)
break;
}
case constante2:
{
(declaraes)
break;
}
case constante3:
{
(declaraes)
break;
}
}
62
Operando: contem informaes de registros, valores numricos, labels ou
expresses numricas que complementam o mnemnico.
2) VALOR_CTE equ 05
...
add a,#VALOR_CTE
3) mov dptr,#04ffh + 1
Ex.:
ORG 0BH
JMP LE_IO
ORG 30H
INICIO: MOV SP,#PILHA
MOV IE,#PROG_INT
MOV TMOD,#PROG_T0
MOV TH0,#TIMEH0
MOV TL0,#TIMEL0
SETB TR0
CALL INICIA_DSP
...
;SUBROTINAS
;INICIALIZA DISPLAY LCD
INICIA_DSP: ....
RET
;SUBROTINA INTERRUPCAO
LE_IO: ...
RETI
3.4.2) - Comentrios:
Exemplo:
;***********
64
;* ROTINA EXEMPLO - F.C.I MACKENZIE
;*
;* Data Incio: 01/03/2000
;* Programadores: Jos, Joo e Maria
;* Descrio: esta rotina tem como funo exemplificar a forma de
documentao
;*
;* Histrico de Alteraes:
;* 01/03 -> inicio da programao.
;*
;* Pendncias:
;* - Melhorar rotina de clculo do CheckSun
;*
;************
;***
;* REA DE LABELS
;***
...
...
;*** INCIO DAS SUBROTINAS
ESCR_DSP: ...
RET
Exemplo:
65
;*** SUBROTINA DE RECEPO SERIAL
;*
;* Descrio: rotina acessada pela interrupo serial. L SBUF, carregando o dado no
;* endereo 30H se o mesmo for diferente de 00.
;* Registradores de Entrada: SBUF
;* Registradores de Sada: 30H
;* Registradores alterados: ACC, PSW
MOV A,SBUF
CJNE A,#00,CONT1
MOV 30H,A
CONT1: POP PSW
POP ACC
RETI
- Comentrio Inicial
- rea de Labes (equates)
- Vetores e chamada de Interrupo
- Programa Principal (normalmente em loop)
- rea de Sub-rotinas genricas.
66
- rea de Sub-rotinas de interrupo.
- rea de tabelas (DB, DW, etc.)
67
Modos de endereamento do 8051:
Ex.:
MOV R0,#50H ; o dado 50H carregado em R0
MOV A,@R0 ; o dado do endereo 50H carregado no acumulador.
Ex:
INICIO: MOV SP,70H ;CARREGA SP COM END. DA PILHA
------ ------- --------------------
label cd.oper. operando comentrio
68
- EQU (equate): define equivalncia entre nomes (labels) de dados ou
endereos que sero substitudos no processo de compilao para se obter os
cdigos executveis finais. Tem a funo de otimizar possveis alteraes nos
dados e endereos nomeados pelo EQU.
69
Figura - Simulador Avocet (www.ivair.com.br)
70
transferncia de informao, aritmticas, lgicas, transferncia de controle e
booleana. Todo o conjunto de instrues e seu significado podem ser obtidos no
Manual ATMEL MICROCONTROLLERS 8051 HARDWARE MANUAL (ver em
www.ivair.com.br / ferramentas). As principais tabelas so colocadas no anexo
desta apostila. A seguir so colocadas apenas as principais instrues para as
primeiras prticas.
- MOV A, 30H
- MOV A,# 30H
- MOV A, R0
- MOV A,@ R0
- MOV 50H, 40H
- MOVX A, @ DPTR
- MOVC A,@A+DPTR
Exemplo:
; LABEL
PILHA EQU 60H
;INICIO DA CODIFICACAO
ORG 0 ;POSIO INICIAL DO PROGRAMA
;TABELA
TABELA: DB 42H
END
71
Resultado da compilao
72
Exerccio
Carregar o dgito verificado do seu cdigo de matricula nos registrados R3, R4, na
memria interna 50H, na memria externa 1000H. Criar uma tabela com o cdigo
ASCII da primeira letra do seu nome e carreg-lo na memria externa 1050h.
Simular o exerccio no simulador do laboratrio.
- ADD A,#07
- SUBB A,R7 ; SUBTRAI TAMBEM O CY
- MUL A,B ; RESULTADO MSB -> B e LSB -> ACC
- DIV A,B ;
- INC 40H
- DEC R3
- ANL A,@R1
- ORL A,#0FH
- XLR A,@R0
- CPL A
- RR A
- RLC A ;DESLOCAMENTO A ESQUERDA COM CY.
Exemplo:
org 0
inicio: mov sp,#pilha ;define pilha interna
mov dptr,#memext ;define ponteiro de memria externa
mov a,#55h
loop: mov a,P0 ;le o valor de P0
mov r0,#05h
mov r1,#result
add a,r0
mov @r1,a ;guarda resultado da soma
inc r1
mov r0,#02h
subb a,r0
mov @r1,a
inc r1
mov b,#6fh
mul ab
mov @r1,a
inc r1
mov @r1,b
inc r1
73
mov b,#02h
div ab
mov @r1,a
inc r1
;* rotina lgica
mov a,#0ffh
mov r0,#0ah
anl a,r0
mov @r1,a
inc r1
mov r0,#0a5h
orl a,r0
mov @r1,a
inc r1
xrl a,r0
mov @r1,a
inc r1
mov a,#0a5h
cpl a
swap a
mov @r1,a
inc r1
rl a
rl a
rr a
mov @r1,a
jmp loop
END
74
VERIFICAO (C)
Exerccio
1) - Carregar o dado do PORT P1 nos registradores internos R0-R7 do terceiro
banco.
- CALL rotina
- RET
- RETI
- PUSH ACC
- POP ACC
- CJNE A,#7Ah,SALTO
- DJNZ R3,LOOP
- CLR C
- CLR MOTOR
- SETB RELE
- CPL LED
- JNC LIGA_LED
- JB CHAVE,LIGA_VEN
75
Exemplo 3
Piscar 2 leds com intervalo de tempo de 0,5 segundos (2 Hz) localizados em P3.4
e P3.5. Procurar verificar o funcionamento deste programa no kit de
desenvolvimento. Observar os valores salvos na pilha com endereo inicial 70H
; EXEMPLO 3
; PISCA LED 1 (P3.4) E LED 2 (P3.5) COM FREQUENCIA DE 2 HZ
ORG 0
;SUBROTINA
END
76
Figura - Simulao no AVSIM51 do EXEMPLO3
Exemplo4:
; EXERCCIO
; CLP para controle de 2 motores atravs de 2 botoeiras
; Sensor de corrente para indicar sobre-corrente
; "debouced" das botoeiras de 15 msegundos.
; botoeira liga / desliga motores
ORG 0
INICIO: MOV SP,#PILHA
LOOP: CALL DESLIGA ;DESLIGA SAIDAS
77
;LE BOTOEIRA 2
SALTO1: JB SENSOR,LOOP ;SE SOBRE-CORRENTE
DESLIGA
JB BOTOEIRA2,SALTO2
CALL TEMPO15
JB BOTOEIRA2,LOOP1
CPL MOTOR2 ;INVERTE MOTOR2
JMP LOOP1
;SUBROTINAS
END
Verificao (C)
Exerccios
78
6) - Projetar um sistema de alarme com o 8031 com as seguintes caractersticas:
- Alarme com 1 chave liga/desliga (P3.2), 1 sensor ultra-snico (P3.3) e 1
buzina (P3.4)
- Cristal de 12 Mhz
- Reset automtico e manual
- Memria externa de programa 2764.
- Fazer um programa para ativar o alarme se a chave liga/desliga estiver
ativa. Monitorar o sensor de tal forma que se o mesmo indicar violao e 10
segundos depois de verificado a chave liga/desliga (no caso de alarme ter sido
desligado pelo dono), se o mesmo ainda estiver ativado, disparar a buzina e
deslig-la apenas se o alarme estiver desativado.
- Cristal de 12 Mhz
- Reset automtico
- Comunicao Serial
- Memria ROM de programa interna
- Entrada para chave da porta, 4 bits para o display de LCD
- Controle de teclado de 16 teclas atravs de 8 bits e de 1 chave de incio
de operaao.
- Controle de 1 motor para o prato, lmpada de iluminao interna e 1
vlvula de microondas.
- Firmware ativando o motor, a lmpada e a vlvula se forem acionada a
tecla de incio e se a porta estiver fechada.
79
4) - Display LCD programvel
Planejamento (P):
Execuo (D):
Links:
http://www.intech-lcd.com.hk/
www.displaytec.com.br
80
Figura - Decodificador 4056 (STM)
81
4.2) - Mdulo de Display LCD:
82
informao de dados (informao a ser mostrado no display). Sinal normalmente
ligado ao endereo A0 (endereo mpar -> dado; endereo par -> controle)
- E: sinal que em nvel alto habilita o display. Nos modelos com 4 linhas,
utilizamos um sinal E1 para a habilitao das 2 primeiras linhas e um sinal E2 para
a habilitao das 2 ltimas linhas.
_
- R/W: sinal de entrada indicando em nvel baixo processo de escrita
(barramento de dados como entrada) e em nvel alto processo de leitura
(barramento de dados como sada).
- Vo: entrada de tenso para controle de luminosidade do display
- Vss/GND: entrada de alimentao nica de +5 Vcc.
83
Figura 2.5 - Display 40 x 4 (www.displaytec.com.br)
4.3) - Sistema mnimo com o display L.C.D. :
84
Figura - Sistema Mnimo com o display L.C.D. utilizando Ports
Verificao (C):
Exerccios:
Ao (A):
Exemplo:
86
4.4.2) Programao de Dados (C/D = 1)
Verificao (C):
Exerccios:
NOME TURMA
CODIGO SALA
87
Lista de Exerccios Microprocessadores
88
SEGUNDO TRABALHO DE MICROPROCESSADORES
89