Escolar Documentos
Profissional Documentos
Cultura Documentos
MICROPROCESSADORES E MICROCONTROLADORES
Microcontrolador 8051
Jos Wilson Lima Nerys
jwilson@eee.ufg.br
Goinia, 2009
Ncleo de Estudo e Pesquisa em Processamento de Energia e Qualidade Prof. Jos Wilson Lima Nerys
Microcontrolador 8051
Arquitetura do 8051
Ncleo de Estudo e Pesquisa em Processamento de Energia e Qualidade Prof. Jos Wilson Lima Nerys
Microcontrolador 8051
Ncleo de Estudo e Pesquisa em Processamento de Energia e Qualidade Prof. Jos Wilson Lima Nerys
Microcontrolador 8051
Ncleo de Estudo e Pesquisa em Processamento de Energia e Qualidade Prof. Jos Wilson Lima Nerys
Microcontrolador 8051
CI 8051 8052
ROM Interna 4k 8k
Ncleo de Estudo e Pesquisa em Processamento de Energia e Qualidade Prof. Jos Wilson Lima Nerys
Microcontrolador 8051
Porta Serial H dois pinos para porta serial. O pino RxD o pino de recepo de dados na forma serial e o pino TxD o pino de transmisso de dados na forma serial.
Ncleo de Estudo e Pesquisa em Processamento de Energia e Qualidade Prof. Jos Wilson Lima Nerys
Microcontrolador 8051
Ncleo de Estudo e Pesquisa em Processamento de Energia e Qualidade Prof. Jos Wilson Lima Nerys
Microcontrolador 8051
Ncleo de Estudo e Pesquisa em Processamento de Energia e Qualidade Prof. Jos Wilson Lima Nerys
Microcontrolador 8051
Ncleo de Estudo e Pesquisa em Processamento de Energia e Qualidade Prof. Jos Wilson Lima Nerys
Microcontrolador 8051
Programa onde dois pinos (3 e 7) de uma porta de entrada pr-definida so usados para definir o sentido de rotao de LEDs conectados a uma porta de sada. Pino 7 em nvel alto e Pino 3 em nvel baixo Pino 7 em nvel baixo e Pino 3 em nvel alto Pinos 3 e 7 em nvel alto LEDs giram para a direita LEDs giram para a esquerda
Estudo e Pesquisa 10Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
10
Microcontrolador 8051
Estudo e Pesquisa 11Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
11
Microcontrolador 8051
Estudo e Pesquisa 12Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
12
Microcontrolador 8051
L chaves: IN 21 h ANI 88 h CPI 88 h JNZ testa Ch7 MOV A,C OUT 22 h CMA MOV C,A JMP L chaves testa Ch7: CPI 80 h JNZ testa Ch3 MOV A,B RRC OUT 22 h MOV B,A JMP L chaves testa Ch3: CPI 08 h JNZ L chaves MOV A,B RLC OUT 22 h MOV B,A JMP L chaves
ORG 50H INICIO: MOV SP,#3FH MOV R0,#01H MOV R1,#00H REPETE: JNB P1.7, PULA2 JNB P1.3, PULA MOV A,R1 MOV P2,A CPL A MOV R1,A SJMP REPETE PULA: MOV A,R0 MOV P2,A RR A MOV R0,A SJMP REPETE PULA2: JNB P1.3, REPETE MOV A,R0 MOV P2,A RL A MOV R0,A LJMP REPETE END
Estudo e Pesquisa 13Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
13
Microcontrolador 8051
Estudo e Pesquisa 14Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
14
Microcontrolador 8051
Memria ROM
EA\ = 0 o microcontrolador busca informaes na memria ROM externa EA\ = 1 as informaes so buscadas na memria ROM interna. PSEN\ = 1 a leitura da memria ROM interna est habilitada PSEN\ = 0 a leitura da memria ROM externa est habilitada.
Estudo e Pesquisa 15Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
15
Microcontrolador 8051
Memria RAM
Estudo e Pesquisa 16Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
16
Microcontrolador 8051
Memria RAM
A memria RAM, em qualquer verso, pode ser adicionada em 64 kbytes (0000 a FFFFh), alm dos 128 ou 256 bytes de memria interna. A memria RAM interna subdivida em duas regies bsicas: Endereo de 00 a 7F h (Parte baixa da RAM) Contm 128 bytes. Todas as verses do 8051 possuem essa regio. O acesso pode ser direto ou indireto. Endereo de 7F a FFh (Parte alta da RAM) Essa faixa de endereo s est presente nas verses xx52. Ela contm 128 bytes, cujo acesso sempre atravs de endereamento indireto. Essa faixa de endereos coincide com a faixa de endereos dos registradores especiais. A diferena est no tipo endereamento para acesso. Os registradores especiais so acessados sempre atravs de endereamento direto. A manipulao de dados na memria RAM interna atravs da instruo MOV, enquanto que na RAM externa com uso da instruo MOVX (MOV eXtern). Os sinais RD\ e WR\ so usados na operao com a memria RAM externa.
Estudo e Pesquisa 17Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
17
Microcontrolador 8051
Registradores do 8051
Estudo e Pesquisa 18Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
18
Microcontrolador 8051
32 registradores de 8 bits
Estudo e Pesquisa 19Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
19
Microcontrolador 8051
32 Registradores com endereos de 00H a 1FH 4 Bancos, cada um com 7 registradores denominados R0 a R7
MOV R0,#15H MOV R1,#25 MOV 15H,R1 MOV 10H,R0 MOV @R0,#20H MOV R4,#0101b
Estudo e Pesquisa 20Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
20
Microcontrolador 8051
Memria RAM Regio enderevel por bit e por byte e Regio enderevel apenas por byte
MOV 20H,#35H SETB 20.0H = SETB 00H CLR 18H = CLR 23.0H MOV 25H,#0FFH
Estudo e Pesquisa 21Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
21
Microcontrolador 8051
Estudo e Pesquisa 22Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
22
Microcontrolador 8051
Registradores Especiais
Os Registradores Especiais ficam localizados na regio de 80h a FF h. Os registradores dessa regio, com endereos de final 0 ou 8, so endereveis por byte ou por bit. Os demais, apenas por byte.
Estudo e Pesquisa 23Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
23
Microcontrolador 8051
Registradores Especiais
Deve ser enfatizado que os registradores especiais ocupam os endereos de 80h a FFh, que coincide com os 128 bytes superiores da RAM interna dos microcontroladores xxx2. A diferena entre o acesso aos Registradores Especiais e a parte superior da RAM interna o tipo de endereamento. Os registros especiais so acessados sempre por endereamento direto, enquanto a parte superior da RAM interna acessada somente por endereamento indireto. MOV A, 80H carrega o acumulador com o contedo do registrador especial 80H (Porta P0) Carrega R0 com valor 80H Carrega acumulador com o contedo da posio da memria RAM apontada por R0, ou seja, endereo 80H da memria superior
24 Microcontrolador 8051
Estudo e Pesquisa 24Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
AC
FD
Uso Geral
RS1
RS0
0V
Overflow
Paridade
RS1 0 0 1 1
RS0 0 1 0 1
Banco Selecionado 0 1 2 3
ou ou ou
ORL PSW,#08H
Estudo e Pesquisa 25Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
25
Microcontrolador 8051
Registradores Especiais
Registrador Latch Porta P0 Latch Porta P1 Latch Porta P2 Latch Porta P3 Acumulador Registrador B Apontador de Pilha Registrador de Estado Mnem P0 P1 P2 P3 A ACC B SP PSW End 80H 90H A0H B0H E0H F0H 81H D0H D7 D6 D5 F0 D4
RS1
D3
RS0
D2 OV
D1
D0 P
CY AC
Estudo e Pesquisa 26Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
26
Microcontrolador 8051
Registradores Especiais
Registrador Apontador de Dados LSB do DPTR MSB do DPTR Mnem DPTR DPL DPH End 82-83 82H 83H Bits individuais dos registradores
Controle de Energia
PCON
87H
SCON
98H
9F
SM1
9E
SM2
9D
SM3
9C
REN
9B
TB8
9A
RB8
99
TI
98
RI
SBUF
99H
Estudo e Pesquisa 27Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
27
Microcontrolador 8051
Registradores Especiais
Mnem IE
End A8H
AE AD AC AB AA
ES ET1 EX1
A9
ET0
A8
EX0
IP
B8H
BF
BE BD BC BB BA
PS PT1 PX1
B9
PT0
B8
PX0
Estudo e Pesquisa 28Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
28
Microcontrolador 8051
Registradores DPH (83h) e DPL (82h) - Equivalem aos registradores H e L do 8085, que juntos formam o par HL. No 8051 DPH e DPL formam o registrador de 16 bits DPTR, usado principalmente no manuseio de tabelas.
Estudo e Pesquisa 29Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
29
Microcontrolador 8051
Controle da Porta Serial: SCON (98 H) Registrador que contm todos os bits que definem o modo de operao e o controle da porta serial. SBUF (99 H) o registrador que armazena tanto os dados a serem transmitidos quanto os dados recebidos via serial. Efetivamente h dois registradores de mesmo nome SBUF e mesmo endereo (99 H), um responsvel pela transmisso e outro pela recepo de dados.
Estudo e Pesquisa 30Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
30
Microcontrolador 8051
Estudo e Pesquisa 31Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
31
Microcontrolador 8051
Circuito de Reset
A colocao de um capacitor de 10F em srie com um resistor de 8,2 k conectados ao pino 9 do 8051 garante que o pino 9 fique em nvel lgico alto por pelo menos 2 ciclos de mquina (24 perodos do oscilador) na energizao do sistema. Caso o Microcontrolador seja o 80C51, no necessrio o resistor de 8,2 k, por j existir um resistor interno.
Estudo e Pesquisa 32Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
32
Microcontrolador 8051
Registro TCON TH0 TL0 TH1 TL1 SCON SBUF PCON(NMOS) PCON(CMOS)
Valor 00h 00h 00h 00h 00h 00h Indeterminado 0xxxxxxxb 0xxx0000b
Estudo e Pesquisa 33Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
Circuito de Clock
Estudo e Pesquisa 34Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
34
Microcontrolador 8051
Ciclo de mquina
35
Microcontrolador 8051
Tclock =
1 f clock
1 = 12 MHz
Tmquina = 12 Tclock = 1s
Cada instruo executada em pelo menos 1 ciclo de mquina. Isso significa que, com um cristal de 12 MHz, o tempo mnimo de execuo de qualquer instruo do 8051 1 s. Por exemplo, a instruo MOV executada em 1 ciclo de mquina e, portanto, 1 s. A instruo DJNZ executada em 2 ciclos de mquina e, portanto, 2 s.
Estudo e Pesquisa 36Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
36
Microcontrolador 8051
Circuito Mnimo
EA
Nvel lgico 1
Estudo e Pesquisa 37Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
37
Microcontrolador 8051
Instrues do 8051
Estudo e Pesquisa 38Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
38
Microcontrolador 8051
Instrues Gerais
mov a,#dado Carrega o acumulador com o valor dado. O smbolo # necessrio para diferenciar dado de registrador. Exemplos: mov a,#25H mov a,#25 carrega acumulador com valor 25H carrega acumulador com o decimal 25, que equivale ao hexadecimal 19 H mov a,#01011001b carrega acumulador com o binrio que corresponde a 59 H. mov a,15H - Copia no acumulador o contedo do registrador cujo endereo 15h, ou seja, copia no acumulador o contedo do registrador R5 do banco 2 de registradores.
Estudo e Pesquisa 39Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
39
Microcontrolador 8051
Instrues Gerais
mov a,reg carrega acumulador com o contedo do registrador reg do banco de registradores que estiver selecionado. `reg pode ser R0, ..., R7. Exemplos: mov a,R0 carrega acumulador com contedo do registrador R0 do banco 0.
Se RS1 = 0 e RS0 = 1 (Registrador Especial PSW):
mov a,R1
carrega acumulador com contedo do registrador R1 do banco 1, ou seja, contedo do registrador 09H.
Estudo e Pesquisa 40Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
40
Microcontrolador 8051
Instrues Gerais
mov R0,#20h Carrega registrador R0 com valor 20h mov @R0,#55h Copia o valor 55h na posio apontada pelo registrador R0. Se R0 = 20h, ento copia valor 55h na posio 20h, ou seja, na primeira posio acima do banco de registradores. mov dptr,#200h movc a,@a+dptr Carrega registrador de 16 bits dptr com valor 200h. Carrega acumulador com o contedo da posio apontada por a+dptr.
Se, por exemplo, dptr = 200 H, e a = 04 h, ento carrega acumulador com o contedo da posio 204 H. uma instruo adequada para trabalhar com tabelas.
Estudo e Pesquisa 41Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
41
Microcontrolador 8051
Instrues Gerais
add a,reg Adiciona o contedo do registrador reg ao contedo do acumulador: A = A + reg
subb a,byte
Estudo e Pesquisa 42Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
42
Microcontrolador 8051
Instrues Gerais
rl a Rotaciona o contedo do acumulador para a esquerda (rotate left). Por exemplo, se originalmente A = 21 H (0010 0001b), aps a instruo, tem-se: A = 42 H (0100 0010b). Rotaciona o contedo do acumulador para a direita (rotate right). Por exemplo, se originalmente A = 8C H (1000 1100b), aps a instruo, tem: A = 46 H (0100 0110b). Incrementa contedo do registrador reg. Por exemplo, se R1 = 05H, ento inc R1 resulta em R1 = 06 H. Decrementa contedo do registrador reg. Por exemplo, se R2 = 0B H, ento dec R2 resulta em R2 = 0A H.
rr a
inc reg
dec reg
Estudo e Pesquisa 43Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
43
Microcontrolador 8051
Instrues Gerais
cpl a Complementa o contedo do acumulador. Por exemplo, se originalmente, A = 55 H, ento, aps a instruo, A = AA H. Faz a troca dos nibbles do acumulador, ou seja, o nibble mais significativo passa a ocupar o quatro primeiros bits do acumulador e o nibble menos significativo passa a ocupar os quatro ltimos bits. Por exemplo, se originalmente, A = 35 H, aps a instruo, A = 53 H.
swap a
da a
Faz o ajuste decimal do acumulador. Adiciona 6 ao dgito que esteja no intervalo de A a F. Por exemplo, se originalmente A = 7A H, aps a instruo torna-se A = 80 H.
Estudo e Pesquisa 44Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
44
Microcontrolador 8051
Instrues Gerais
mul ab Multiplica o contedo de A pelo contedo de B. O resultado est em B A. O resultado da multiplicao um nmero de 16 bits, por isso precisa de dois registradores para o resultado. Exemplo: mul ab se A = 25 H e B = 30 H, aps a instruo, tem-se: B = 06 H e A = F0 H, pois o resultado da multiplicao : 6F0 H Divide o contedo de A pelo contedo de B. A recebe o quociente e B o resto. Exemplo: div ab se A = CA H (202) e B = 19 H (25), aps a instruo, tem-se: A = 08 H e B = 02, pois a diviso em decimal : 202/25, que d 8 e resta 2. div ab
Estudo e Pesquisa 45Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
45
Microcontrolador 8051
Instrues Gerais
anl a,byte Faz uma operao AND entre acumulador e BYTE. A = A (AND) BYTE.
orl A,byte
Estudo e Pesquisa 46Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
46
Microcontrolador 8051
47
Microcontrolador 8051
Estudo e Pesquisa 48Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
48
Microcontrolador 8051
Exemplo: jb ligado,desliga Se ligado = 1, ento o programa desvia para a posio deliga. jnb bit,desvio Desvia para desvio, caso o bit NO esteja setado. Se ligado = 0, ento o programa desvia para a posio liga.
setb bit
Exemplo: setb ligado clr bit Limpa o bit Exemplo: clr ligado
Estudo e Pesquisa 49Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
Estudo e Pesquisa 50Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
50
Microcontrolador 8051
Diretivas de Programao
org endereo Exemplo: org 30 H mov sp,#2Fh Informa ao compilador o endereo onde deve ser armazenada a prxima instruo.
varivel equ ender. reg. informa ao compilador que a varivel equivale ao registrador cujo endereo ender. reg. Exemplo: velocidade equ 05H Esta diretiva diz ao compilador que as operaes com a varivel velocidade equivalem s operaes com o registrador R5 do banco 0 (endereo do registrador: 05 H). mov velocidade,#52H equivale instruo mov R5,#52H.
Estudo e Pesquisa 51Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
51
Microcontrolador 8051
Diretivas de Programao
varivel bit ender. bit informa ao compilador que a varivel do tipo bit e ser armazenada no endereo dado por ender.bit. Exemplo: sentido bit 00H Esta diretiva diz ao compilador que a varivel sentido do tipo bit e ser armazenada no endereo 00H da regio acima dos bancos de registradores. O endereo do bit 00H corresponde ao primeiro endereo dessa regio, ou seja, posio 20.0H. db byte Esta diretiva diz ao compilador que o byte a seguir um dado e no uma instruo. Exemplo: db 45H O valor 45H tratado como um dado, no como uma instruo.
Estudo e Pesquisa 52Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
52
Microcontrolador 8051
Estudo e Pesquisa 53Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
53
Microcontrolador 8051
Frequncia da onda quadrada gerada no pino P1.0 para uma frequncia de clock de 12 MHz:
Instruo Ciclos por Tempo por instruo Instruo 1 1 2 2 1 s 1 s 2 s 2 s Nmero de Execues por semiciclo 1 1 50 1 Tempo Total 1 s 1 s 100 s 2 s 104 s
INICIO: CPL P1.0 MOV R0,#50 DJNZ R0,$ SJMP INICIO END
Meio perodo da onda quadrada: 104 s Perodo da onda quadrada : 208 s Frequncia da onda quadrada : 4800 Hz
Estudo e Pesquisa 54Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
54
Microcontrolador 8051
Estudo e Pesquisa 55Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
55
Microcontrolador 8051
Programa que faz uma contagem hexadecimal crescente ininterrupta de 0 a FFH Rtulo Mnemnico $MOD51 ORG 00H LJMP INICIO
ORG 30H INICIO: VOLTA: MOV A,#00H MOV P1,A INC A SJMP VOLTA END
Estudo e Pesquisa 56Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
56
Microcontrolador 8051
Programa que faz uma contagem hexadecimal ininterrupta de 0 RTULO MNEMNICO $MOD51 ORG 00H LJMP INICIO
30H
ORG 30H INICIO: MOV A,#00H VOLTA: MOV P1,A INC A CJNE A,#30H,VOLTA VOLTA2: MOV P1,A DJNZ ACC,VOLTA2 SJMP VOLTA END
Estudo e Pesquisa 57Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
57
Microcontrolador 8051
Programa que faz uma contagem decimal ininterrupta de 0 a 59 RTULO MNEMNICO $MOD51 ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#2FH MOV A,#00H VOLTA: MOV P1,A ADD A,#01H DA A CJNE A,#60H,VOLTA SJMP INICIO END
Estudo e Pesquisa 58Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
58
Microcontrolador 8051
Estudo e Pesquisa 59Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
59
Microcontrolador 8051
60
Microcontrolador 8051
Estudo e Pesquisa 61Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
61
Microcontrolador 8051
Programa AsmEditor Simulador AVSIM51 Simulador PEQui Gravadora Programa de Gravao PonyProg2000 Plataforma com diversos dispositivos
Estudo e Pesquisa 62Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
62
Microcontrolador 8051
Estudo e Pesquisa 63Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
63
Microcontrolador 8051
O AsmEditor permite:
Digitar o mnemnico do programa desejado; Compilar o programa desejado usando o compilador ASM51; Verificar erros, inclusive com a listagem do programa compilado; Simular usando o Simulador AVSIM51 para ambiente DOS; Gravar usando uma gravadora e o programa Ez3, que permite gravar atravs da porta serial; Gravar usando o programa AEC_ISP, que permite gravar atravs da porta paralela.
Estudo e Pesquisa 64Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
64
Microcontrolador 8051
A Figura a seguir mostra a rgua principal do programa AsmEditor, onde, dentre outras, esto presentes as seguintes opes: Iniciar novo documento; Abrir documento existente; Gravar programa digitado com extenso .ASM; Compilar programa Um programa com extenso .hex gerado.
Estudo e Pesquisa 65Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
65
Microcontrolador 8051
A Figura a seguir mostra as opes disponveis para Ferramentas. So elas: Compilar programa; Simulador AVSIM51 em ambiente DOS; Gravador Ez3, que grava programas no microcontrolador AT89C82; Gravador AEC_ISP, que grava atravs da porta paralela o AT89C52 Arquivo .LST, que mostra a listagem do programa com os possveis erros.
Estudo e Pesquisa 66Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
66
Microcontrolador 8051
Estudo e Pesquisa 67Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
67
Microcontrolador 8051
A figura a seguir mostra a rgua principal do programa PEQui, onde as seguintes opes esto disponveis: Iniciar novo programa; Abrir programa existente; Salvar o programa com extenso .ASM; Compilar programa, gerando arquivo .hex; Alternar entre a tela de digitao do mnemnico e o ambiente de simulao; Carregar programa compilado, com extenso .hex, para simulao.
Estudo e Pesquisa 68Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
68
Microcontrolador 8051
Estudo e Pesquisa 69Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
69
Microcontrolador 8051
Estudo e Pesquisa 70Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
70
Microcontrolador 8051
Simulador AVSIM51
Estudo e Pesquisa 71Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
71
Microcontrolador 8051
Memria ROM
Registradores Interrupes Memria Portas de R0 a R7, 0 e 1 e porta RAM entrada e sada DPTR e B serial 72 Microcontrolador 8051
Estudo e Pesquisa 72Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
Estudo e Pesquisa 73Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
73
Microcontrolador 8051
Estudo e Pesquisa 74Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
74
Microcontrolador 8051
Estudo e Pesquisa 75Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
75
Microcontrolador 8051
A Plataforma de Desenvolvimento permite o acionamento de diversos componentes eltricos, tais como: motor de corrente contnua, motor de passo e lmpada incandescente. Possui ainda sensores de presena, transdutores analgico e digital de velocidade, teclado, display de 7-segmentos e display LCD.
Estudo e Pesquisa 76Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
76
Microcontrolador 8051
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
Sensor de presena 1
Sensor de presena 2
P1.0 P1.1 P1.2 P1.3 P1.4 Parte baixa do display de 7-segmentos (cdigo BCD do dado a ser mostrado)
P1.5
P1.6
P1.7
P3.0
P3.1
INT0 P3.2
INT1 P3.3
Estudo e Pesquisa 77Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
77
Microcontrolador 8051
Lmpada
Rotao de bits do acumulador para a esquerda e para a direita RTULO MNEMNICO $MOD51 ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#2FH MOV A,#10000000B VOLTA: RL A MOV P0,A LCALL ATRASO CJNE A,#80H,VOLTA VOLTA2: RR A MOV P0,A LCALL ATRASO CJNE A,#01H,VOLTA2 SJMP VOLTA END
Estudo e Pesquisa 78Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
78
Microcontrolador 8051
Programa que l os valores de uma tabela e mostra na porta P1 o maior desses valores. O maior valor ser guardado em R0. O ltimo elemento da tabela FFh. DPTR aponta para o incio da tabela
Estudo e Pesquisa 79Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
79
Microcontrolador 8051
RTULO MNEMNICO $MOD51 ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#2FH MOV A,#00H MOV R0,#00H MOV DPTR,#TABELA VOLTA: PUSH ACC MOVC A,@A+DPTR CJNE A,#0FFH,PULA MOV P1,R0 LJMP FIM PULA: MOV B,A SUBB A,R0 JC PULA2 MOV R0,B
RTULO MNEMNICO PULA2: POP ACC INC A SJMP VOLTA ORG 100H TABELA: DB 05H DB 35H DB 12H DB 98H DB 0A1H DB 0B5H DB 5AH DB 09H DB 72H DB 40H DB 0FFH FIM: NOP END
80 Microcontrolador 8051
Estudo e Pesquisa 80Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
Interrupes do 8051
Estudo e Pesquisa 81Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
81
Microcontrolador 8051
Interrupes
O microcontrolador 8051 pode ter seu processamento interrompido atravs de uma, de
3 fontes:
Interrupo por Software Uso de uma instruo Interrupo pedida por perifrico Interrupo externa Interrupo pedida por componente interno (Temporizador/Contador ou Porta Serial)
Estudo e Pesquisa 82Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
82
Microcontrolador 8051
Interrupes
Endereos de Desvio das Interrupes:
Registradores que comandam a interrupo: Registrador de Habilitao: IE (Interrupt Enable) = Registrador A8h Registrador de Prioridades: IP (Interrupt Priority) = Registrador B8h Registrador de Controle: TCON (Timer Control) = Registrador 88h
Estudo e Pesquisa 83Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
83
Microcontrolador 8051
Enable All. Com EA = 1, todas as interrupes podem ser habilitadas individualmente. Com EA = 0, ficam todas mascaradas. Enable Serial. Com ES = 1, a interrupo pelo canal serial fica habilitada. Com ES = 0 os pedidos de interrupo da serial so ignorados. Enable Timer 1. Com ET1 = 1, as interrupes pedidas pelo Timer 1 so atendidas. Com ET1 = 0 elas so ignoradas. Enable External Interrupt 1. Com EX1 = 1, as interrupes pedidas atravs do pino P3.3 so atendidas. Com EX1 = 0 elas so ignoradas. Enable Timer 0. Com ET0 = 1, as interrupes pedidas pelo Timer 0 so atendidas. Com ET0 = 0 elas so ignoradas. Enable External Interrupt 0. Com EX0 = 1, as interrupes pedidas atravs pino P3.2 so atendidas. Com EX0 = 0 elas so ignoradas.
Estudo e Pesquisa 84Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
84
Microcontrolador 8051
Interrupes Exemplo 1: IE = 1 0 0 0 0 0 0 1
Sendo IE = 81h, ento EA =1 e EX0 = 1, ou seja, a interrupo externa 0 est habilitada. Nesse caso, havendo um pedido de interrupo atravs do pino P3.2, o processamento ser desviado para o endereo 03h. Uma opo de instruo para habilitar a interrupo 0 :
MOV IE,#81H
Exemplo 1A Interrupo Externa 0 Quando a interrupo externa solicitada, o programa mostra uma contagem crescente na porta P1.
Estudo e Pesquisa 85Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
85
Microcontrolador 8051
Interrupes Exemplo 2: IE = 1 0 0 0 0 1 0 1
Sendo IE = 85h, ento EA =1, EX0 = 1 e EX1 = 1, ou seja, as interrupes externas 0 e 1 esto habilitadas. Nesse caso, havendo um pedido de interrupo atravs do pino P3.2, o processamento ser desviado para o endereo 03h; havendo um pedido atravs de P3.3, o desvio para o endereo 13h. Uma opo de instruo para habilitar a interrupo 0 :
MOV IE,#85H
Exemplo 2A A interrupo INT0 d incio a uma contagem crescente na porta P1. A interrupo INT1 d incio a uma contagem decrescente.
Estudo e Pesquisa 86Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
86
Microcontrolador 8051
IE1
IT1
IE0
IT0
IT1
IE0
IT0
Interrupt 1 Edge Flag - setado pelo hardware quando uma interrupo externa atravs de INT1\ detectada. zerada quando da execuo da instruo RETI (retorno da subrotina de atendimento). (Interrupt 1 Type) - Quando IT1 = 1 a interrupo externa 1 ser reconhecida pela transio de 1 para 0 no pino P3.3. Quando IT1 = 0, a interrupo reconhecida quando o sinal no pino P3.3 est em nvel baixo (0). (Interrupt 0 Edge Flag) - setado pelo hardware quando uma interrupo externa atravs de INT0\ detectada. zerada quando da execuo da instruo RETI (retorno da subrotina de atendimento). (Interrupt 0 Type) - Quando IT0 = 1 a interrupo externa 0 ser reconhecida pela transio de 1 para 0 no pino INTO\. Quando IT0 = 0, a interrupo reconhecida quando o sinal no pino INTO\ est em nvel baixo (0).
Estudo e Pesquisa 87Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
87
Microcontrolador 8051
Sendo TCON = 01h, interrupo externa 0 ser acionada por transio do nvel lgico 1 para 0. Uma opo de instruo para habilitar a interrupo 0 :
Estudo e Pesquisa 88Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
88
Microcontrolador 8051
Sendo TCON = 01h, interrupo externa 0 ser acionada por transio do nvel lgico 1 para 0. Uma opo de instruo para habilitar a interrupo 0 :
Estudo e Pesquisa 89Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
89
Microcontrolador 8051
PS
PT1
PX1
PT0
PX0
Priority of Serial Port Interrupt Sendo PS = 1, a interrupo serial tem prioridade alta. PT1 Priority of Timer Interrupt 1 Sendo PT1 = 1, a interrupo do temporizador 1 tem prioridade alta. PX1 Priority of External Interrupt 1 Sendo PX1 = 1, a interrupo externa 1 tem prioridade alta. PT0 Priority of Timer Interrupt 0 Sendo PT0 = 1, a interrupo do temporizador 0 tem prioridade alta. PX0 Priority of External Interrupt 0 Sendo PX0 = 1, a interrupo externa 0 tem prioridade alta.
90 Microcontrolador 8051
Estudo e Pesquisa 90Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
Interrupes Uma interrupo ter prioridade alta (Prioridade 1) significa que ela ser atendida sempre que solicitada, mesmo quando o programa est executando uma outra interrupo. No caso de todos os canais de interrupo terem prioridade 0 ou 1, a escala de prioridade como segue:
Prioridade Maior
Menor
91 Microcontrolador 8051
Estudo e Pesquisa 91Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
Interrupes IP =
0 0 0 0
Sendo IP = 01h, a interrupo externa 0 tem prioridade 1. As demais interrupes tem prioridade 0. Os comandos a seguir, habilitam as interrupes externas 0 e 1, sendo a ZERO por transio e com prioridade 1.
Estudo e Pesquisa 92Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
Programa que envia uma contagem crescente para a porta P1 a cada solicitao da interrupo INT0, atravs do pino P3.2.
RTULO MNEMNICO $MOD51 ORG 00H LJMP INICIO ORG 03H LJMP ATENDE RTULO MNEMNICO ATENDE: MOV P1,A INC A LCALL ATRASO CJNE A,#00H,ATENDE MOV A,#01H RETI ATRASO: MOV R0,#10 REPETE: MOV R1,#100 DJNZ R1, $ DJNZ R0, REPETE RET FIM: NOP END
ORG 30H INICIO: MOV SP, #2FH MOV IE, #81H MOV TCON, #01H MOV A, #00H CJNE A,#01H, $ SJMP FIM
Estudo e Pesquisa 93Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
93
Microcontrolador 8051
Programa que envia uma contagem crescente para a porta P1 a cada solicitao da interrupo INT0 e uma decrescente a cada solicitao da INT1.
RTULO MNEMNICO $MOD51 ORG 00H LJMP INICIO ORG 03H LJMP ATENDE0 ORG 13H LJMP ATENDE1 ORG 30H INICIO: MOV SP, #2FH MOV IE, #85H MOV TCON, #05H MOV A, #00H SJMP $
Estudo e Pesquisa 94Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
RTULO
MNEMNICO
ATENDE0: PUSH ACC MOV A,#00H VOLTA: MOV P1,A INC A LCALL ATRASO CJNE A,#00H,VOLTA POP ACC RETI
RTULO MNEMNICO ATENDE1: PUSH ACC MOV A,#0FFH VOLTA2: MOV P1,A LCALL ATRASO DEC A CJNE A,#0FFH,VOLTA2 POP ACC RETI ATRASO: MOV R0,#10 REPETE: MOV R1,#100 DJNZ R1, $ DJNZ R0, REPETE RET END
94
Microcontrolador 8051
Programa que faz o deslocamento esquerda dos bits da porta P1 a cada solicitao da interrupo INT0 e deslocamento direita a cada solicitao da INT1.
RTULO MNEMNICO $MOD51 ORG 00H LJMP INICIO ORG 03H LJMP ATENDE0 ORG 13H LJMP ATENDE1 ORG 30H INICIO: MOV SP, #2FH MOV IE, #85H MOV TCON, #05H MOV A, #00H SJMP $ ATRASO: MOV R0,#10 REPETE: MOV R1,#100 DJNZ R1, $ DJNZ R0, REPETE RET RTULO MNEMNICO RTULO MNEMNICO ATENDE0: PUSH ACC MOV A,#01H VOLTA: MOV P1,A LCALL ATRASO RL A CJNE A,#01H,VOLTA POP ACC RETI ATENDE1: PUSH ACC MOV A,#80H VOLTA2: MOV P1,A LCALL ATRASO RR A CJNE A,#80H,VOLTA2 POP ACC RETI
95
Ncleo de Estudo e Pesquisa em Processamento de Energia e Qualidade Prof. Jos Wilson Lima Nerys
95
END
Microcontrolador 8051
Estudo e Pesquisa 96Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
96
Microcontrolador 8051
Temporizadores
O 8051 tem 2 temporizadores/contadores de 16 bits que podem operar de 4 modos distintos: Modo 0 Contador/Temporizador de 8 bits com divisor de frequncia de at 32 vezes. Pode contar at 8192 (32 255). Modo 1 Modo 2 Modo 3 Contador/Temporizador de 16 bits. Pode contar at 65535. 2 contadores/temporizadores de 8 bits com recarga automtica. 2 contadores/temporizadores independentes de 8 bits.
Estudo e Pesquisa 97Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
97
Microcontrolador 8051
Temporizadores Os registradores que comandam o Contador-Temporizador so: Registrador do Temporizador: TMOD (Timer Mode) = Registrador 89h TMOD =
G1 C/T1 M11 M10 G0 C/T0 M01 M00
Registrador de Controle: TCON (Timer Control) = Registrador 88h TCON = TF1 TR1 TF0 TR0
IT1 IE1 IT0 IE0
Estudo e Pesquisa 98Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
98
Microcontrolador 8051
Gate Sendo 0, o disparo do temporizador/contador interno, atravs de TR. Sendo 1, o disparo pode ser atravs de TR ou atravs do pino externo P3.2 (INT0\) ou P3.3 (INT1\). Sendo 0, a operao como temporizador, onde a freqncia de operao 1/12 da freqncia do cristal oscilador. Sendo 1, a freqncia determinada por um componente externo, atravs do pino P3.4 (T0) ou P3.5 (T1).
Estudo e Pesquisa 99Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
C/T\
99
Microcontrolador 8051
Temporizadores Registrador de Controle: TCON (Timer Control) = Registrador 88h TCON = TR TF1 TR1 TF0 TR0
IT1 IE1 IT0 IE0
Quando G = 0, fazendo-se TR = 1, o temporizador inicia a contagem a partir do valor armazenado em TH e TL. TR = 0 pra o temporizador. A cada fim de contagem TF setado (TF = 1) pelo hardware. Se a interrupo do temporizador estiver habilitada, ocorre o desvio para o endereo correspondente, 0Bh para o temporizador 0 e 1Bh para o temporizador 1.
Ncleo de Estudo e Pesquisa 100 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
TF
100
Microcontrolador 8051
Temporizadores
Ncleo de Estudo e Pesquisa 101 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
101
Microcontrolador 8051
Temporizadores
O diagrama do temporizador/contador auxilia na anlise do funcionamento. O bit C/T\ do registrador TMOD, por exemplo, define se o funcionamento como contador (C/T\ = 1), ou como temporizador (C/T\ = 0). Como temporizador, o clock interno, vindo do oscilador. A freqncia 1/12 da freqncia do cristal oscilador. Como contador, o clock externo, vindo atravs de T0 (P3.4).
O pino Gate\ define se o sinal de disparo do contador/temporizador vem atravs de software (bit TR0), ou de um sinal externo, atravs do pino INT0\ (P3.2). Se Gate\ = 0, o comando SETB TR0 dispara o contador/temporizador e CLR TR0 interrompe.
Ncleo de Estudo e Pesquisa 102 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
102
Microcontrolador 8051
Temporizadores Exemplo 1: Contagem ininterrupta de 0 a 65535 do temporizador 0 no modo 1 e de 0 a 8192 do temporizador 1 no modo 0. TMOD =
0 0 0 0 0 0 0 1
Instruo
MOV TMOD,#01H SETB TR0 SETB TR1
Descrio
Seta o Temporizador 0 no modo 1 e o Temporizador 1 no modo 0. Dispara o Temporizador 0. Dispara o Temporizador 1.
Ncleo de Estudo e Pesquisa 103 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
103
Microcontrolador 8051
Temporizadores Exemplo 2: Contagem do temporizador 0 no modo 1 e do temporizador 1 no modo 0, a partir de 2050 H para a primeira contagem.
Instruo
MOV TMOD,#01H MOV TH0,#20H MOV TL0,#50H SETB TR0 SETB TR1 (65535).
Descrio
Seta o Temporizador 0 no modo 1. Conta at FFFF H
Setam incio da contagem para 2050H. A partir da segunda contagem comea em 0000H. Dispara o Temporizador 0. Dispara o Temporizador 1.
Ncleo de Estudo e Pesquisa 104 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
104
Microcontrolador 8051
Instruo
MOV TMOD,#20H MOV TH0,#7FH SETB TR1 automtica.
Descrio
Seta o Temporizador 1 no modo 2, com recarga
Ncleo de Estudo e Pesquisa 105 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
105
Microcontrolador 8051
Instruo
MOV TMOD,#01H MOV IE,#82H SETB TR0 65535.
Descrio
Seta o Temporizador 0 no modo 1, contagem at
Exemplo 5: Acrescenta uma contagem decrescente, de forma que o microcontrolador faa duas tarefas simultneas: a contagem e a operao do temporizador. Usa o temporizador 0 no modo 3.
Ncleo de Estudo e Pesquisa 106 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
106
Microcontrolador 8051
Temporizadores Exemplo 6: Contagem decrescente na P1, atravs de INT0 e crescente na P2, atravs do temporizador 0, com prioridade 1.
Instruo
MOV TMOD,#01H MOV IE,#83H 65535.
Descrio
Seta o Temporizador 0 no modo 1, contagem at Habilita as interrupes do Temporizador 0 e a Externa 0.
MOV TCON,#01H Seta INT0 por transio MOV IP,#02H SETB TR0 SJMP $ Estabelece Prioridade 1 para o Temporizador 0. Dispara o Temporizador 0. Aguarda interrupes num loop infinito.
107 Microcontrolador 8051
Ncleo de Estudo e Pesquisa 107 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
ATRASO: MOV R0,#20 VOLTA: MOV TH0,#3CH MOV TL0,#0AFH SETB TR0
ORG 30H INICIO: MOV SP, #2FH MOV TMOD,#01H LCALL ATRASO SJMP FIM
ESPERA: JNB TF0, ESPERA CLR TF0 DJNZ R0, VOLTA CLR TR0 RET
108
Microcontrolador 8051
RTULO
MNEMNICO $MOD51 ORG 00H LJMP INICIO ORG 1BH LJMP ATENDE1
Programa que gera uma onda quadrada com perodo varivel Temporizador no modo de recarga automtica Uso de interrupo do temporizador
ORG 30H INICIO: MOV SP, #2FH MOV TMOD,#20H MOV TH1,#00H MOV TL1,TH1 SETB TR1 SJMP $ ATENDE1: CPL P1.0 INC TH1 RETI END
Ncleo de Estudo e Pesquisa 109 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
109
Microcontrolador 8051
Ncleo de Estudo e Pesquisa 110 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
110
Microcontrolador 8051
Acionamento de Lmpada
Ncleo de Estudo e Pesquisa 111 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
111
Microcontrolador 8051
Ncleo de Estudo e Pesquisa 112 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
112
Microcontrolador 8051
Sensor de Presena
Ncleo de Estudo e Pesquisa 113 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
113
Microcontrolador 8051
PEQui: Lampada2.asm
Ncleo de Estudo e Pesquisa 114 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
Ncleo de Estudo e Pesquisa 115 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
115
Microcontrolador 8051
Passo Completo
Passo T0 1 1 2 0 3 0 4 1 5 1 T1 0 1 1 0 0 T2 1 1 0 0 1 T3 0 0 1 1 0 HEX 0A 06 05 09 0A
Ncleo de Estudo e Pesquisa 116 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
116
Microcontrolador 8051
Mnemnico
Rtulo
INVERSO: MOV DPTR,#REVERSO FRENTE: PUSH ACC MOVC A,@A+DPRT CJNE A,#0FFH,PULA POP ACC SJMP COMECO PULA: MOV P2,A LCALL ATRASO POP ACC INC A SJMP DECIDE
117
Microcontrolador 8051
PEQui: Passo1.asm
Ncleo de Estudo e Pesquisa 118 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
118
Microcontrolador 8051
Mnemnico
Rtulo
VAI: JB SENTIDO,INVERSO
INVERSO: MOV DPTR,#REVERSO FRENTE: PUSH ACC MOVC A,@A+DPRT CJNE A,#0FFH,PULA POP ACC SJMP COMECO PULA: MOV P2,A LCALL ATRASO POP ACC INC A SJMP DECIDE
119
Microcontrolador 8051
PEQui: Passo2.asm
Ncleo de Estudo e Pesquisa 120 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
120
Microcontrolador 8051
Ncleo de Estudo e Pesquisa 121 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
121
Microcontrolador 8051
PEQui: Passo3.asm
Ncleo de Estudo e Pesquisa 122 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
122
Microcontrolador 8051
BC548
10 k P2.1 BD139
Diodo de roda livre necessrio para circulao da corrente do motor quando a chave principal fechada energia armazenada nos circuitos magnticos do motor dissipada nas resistncias do circuito.
Ncleo de Estudo e Pesquisa 123 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
123
Microcontrolador 8051
Acionamento de Motor de Corrente Contnua Ponte H Driver para acionamento nos dois sentidos de rotao Chaves A e B fechadas sentido direto
Ncleo de Estudo e Pesquisa 124 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
124
Microcontrolador 8051
In2 0 0 1 1
Ncleo de Estudo e Pesquisa 125 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
In1 0 1 0 1 125
Efeito Motor parado Gira no sentido direto Gira no sentido reverso Motor parado Microcontrolador 8051
VMAX
V max Va
TON Va = VMAX T
Supondo T = 255 s
TON
TOFF
f chav =
Ncleo de Estudo e Pesquisa 126 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
127
Microcontrolador 8051
Ncleo de Estudo e Pesquisa 128 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
129
Ncleo de Estudo e Pesquisa em Processamento de Energia e Qualidade Prof. Jos Wilson Lima Nerys
Microcontrolador 8051
Rtulo
PWM: JB LIGADO,DESLIGA
VERIF8: CJNE A,#09H,VERIF5 SJMP DIMINUI VERIF5: CJNE A,#05H,VOLTA SJMP PARA
RETI
130
Microcontrolador 8051
Rtulo
PULA2: MOV A,B MOV TOFF,A CPL A MOV TON,A SETB EX1 RETI
131
Microcontrolador 8051
O driver utilizado resulta em cdigo 01h para a Tecla 2 e 09H para a Tecla 8 e 05h para a Tecla 5.
132 Microcontrolador 8051
Ncleo de Estudo e Pesquisa 132 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
Ncleo de Estudo e Pesquisa 133 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
133
Microcontrolador 8051
Equipamento
8051
Uma grande questo da transmisso serial como informar o receptor do incio e do final do pacote de informao, ou seja, qual o primeiro bit da informao e qual o ltimo. Assim, existem dois tipos de comunicao: sncrona e assncrona.
Ncleo de Estudo e Pesquisa 134 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
134
Microcontrolador 8051
No caso do 8051 a transmisso e tambm a recepo sncrona de dados so feitas atravs do pino RxD (pino P3.0). O pino TxD (pino P3.1) usado para o sinal de sincronismo.
Ncleo de Estudo e Pesquisa 135 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
135
Microcontrolador 8051
136
Microcontrolador 8051
Ncleo de Estudo e Pesquisa 137 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
137
Microcontrolador 8051
138
Microcontrolador 8051
(bits/s)
A recepo tem incio com REN = 1 e RI = 0. Ao final da recepo o bit RI setado por hardware e o contedo recebido transferido para um registrador denominado por SBUF. RI deve ser ressetado antes da prxima recepo. A transmisso iniciada automaticamente quando o contedo do acumulador transferido para o SBUF. H um registrador SBUF para transmisso e outro para recepo Ao final da transmisso o bit TI setado por hardware. TI deve ser ressetado antes da prxima transmisso.
Ncleo de Estudo e Pesquisa 139 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
139
Microcontrolador 8051
A recepo tem incio quando h uma transio do nvel lgico 1 para 0 no pino RxD (pino P3.0) e o bit RI est zerado. Ao final da recepo o RI setado por hardware. A transmisso iniciada quando h uma transferncia de dados para SBUF. Ao final da transmisso o bit TI setado.
Ncleo de Estudo e Pesquisa 140 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
140
Microcontrolador 8051
Baud rate = 2
SMOD
SMOD
f osc * (bits / s ) 64
So transmitidos 9 bits de dados, alm de um bit de incio e um bit de fim. varivel que pode assumir valor 0 ou 1. A recepo tem incio quando h uma transio do nvel lgico 1 para 0 no pino RxD (pino P3.0) e o bit RI est zerado. O nono bit de dados guardado em RB8. Esse bit pode ser o bit de paridade. Ao final da recepo o RI setado por hardware. A transmisso iniciada quando h uma transferncia de dados para SBUF. O nono bit a ser transmitido guardado em TB8. Esse bit pode ser o bit de paridade. Ao final da transmisso o bit TI setado.
Ncleo de Estudo e Pesquisa 141 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
141
Microcontrolador 8051
A recepo tem incio quando h uma transio do nvel lgico 1 para 0 no pino RxD (pino P3.0) e o bit RI est zerado. Ao final da recepo o RI setado por hardware. A transmisso iniciada quando h uma transferncia de dados para SBUF. Ao final da transmisso o bit TI setado.
Ncleo de Estudo e Pesquisa 142 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
142
Microcontrolador 8051
Baud Rate (bits/seg) Modo 0 Mx: 1MHz Modo 2 Mx: 375K Modo 1, 3: 62,5K 19,2K 9,6K 4,8K 2,4K 1.2K 137,5 110 110
SMOD X 1 1 1 0 0 0 0 0 0 0
C/T barra X X 0 0 0 0 0 0 0 0 0
Ncleo de Estudo e Pesquisa 143 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
143
Microcontrolador 8051
Comunicao Serial Programa Modo Sncrono Transmite contagem crescente e mostra no display de 7-segmentos serial 4.asm
ORG 30H INICIO: LOOP: MOV SP,#2FH MOV R0,#00H MOV SBUF,R0 JNB TI,$ LCALL MOSTRAP1 MOV A,R0 ADD A,#01 DA A MOV R0,A SJMP LOOP
Ncleo de Estudo e Pesquisa 144 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
144
Microcontrolador 8051
Ncleo de Estudo e Pesquisa 145 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
INSTRUO
INSTRUO MOV SBUF,R0 LCALL SERIAL MOV A,R0 ADD A,#01 DA A MOV R0,A SJMP LOOP
Transmite e mostra no display de 7segmentos uma contagem crescente, usando o modo de comunicao serial assncrono, modo 1 (8 bits de dados) serial 5.asm
146 Microcontrolador 8051
Baud rate = 9600 bps SMOD = 0 fosc = 11,059 MHz TH1 = FDH
Ncleo de Estudo e Pesquisa 147 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
147
Microcontrolador 8051
Programa que recebe dados no modo 1 assncrono a uma taxa de 4800 bps serial 6.asm
Ncleo de Estudo e Pesquisa 148 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
Ncleo de Estudo e Pesquisa 149 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
Ncleo de Estudo e Pesquisa 150 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
150
Microcontrolador 8051
O cabo de conexo entre o microcontrolador e o PC, para o caso da plataforma, deve ser do tipo invertido, conforme mostra o diagrama a seguir.
Ncleo de Estudo e Pesquisa 151 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
151
Microcontrolador 8051
ORG 30H INICIO: MOV SP,#2FH MOV A,#00H LOOP: MOV SBUF,A JNB TI,$ CLR TI MOV P1,A INC A SJMP LOOP END
O acumulador recebe o valor 00h SBUF recebe o contedo de A, o que inicia automaticamente a transmisso via serial Loop de espera. Quando TI = transmisso chegou ao final. Limpa o bit TI, para permitir uma nova transmisso via serial Transfere para a porta P1 o contedo do acumulador Incrementa valor de a Volta para a transmisso do prximo dado.
Ncleo de Estudo e Pesquisa 152 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
152
Microcontrolador 8051
Ncleo de Estudo e Pesquisa 153 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
; ============== Serial no Modo 1 Assncrono ================ ; ============== SCON = 0100 0000 ================ ; ============== TRANSMISSO $mod51 ORG 00H LJMP INICIO ORG 30H MOV SP,#2FH MOV SCON,#40H ; Serial no modo 1 MOV TMOD,#20H ; Temp 1 no modo 2 MOV TL1,#0FDH ; Baud rate de 9600 bps para clock de 11,059 MHz MOV TH1,#0FDH MOV A,#00H SETB TR1 MOV SBUF,A JNB TI,$ MOV P1,A INC A CLR TI SJMP LOOP END
Ncleo de Estudo e Pesquisa 154 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
INICIO:
LOOP:
154
Microcontrolador 8051
; ============== Serial no Modo 1 Assncrono ================ ; ============== SCON = 0100 0000 ================ ; ============== RECEPO $mod51 ORG 00H LJMP INICIO ORG 30H MOV SP,#2FH MOV SCON,#40H ; Serial no modo 1 MOV TMOD,#20H ; Temp 1 no modo 2 MOV TL1,#0FDH ; Baud rate de 9600 bps para clock de 11,059 MHz MOV TH1,#0FDH SETB TR1 SETB REN JNB RI,$ MOV A,SBUF MOV P1,A CLR RI SJMP LOOP END
Ncleo de Estudo e Pesquisa 155 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
INICIO:
155
Microcontrolador 8051
INICIO:
; Serial no modo 1 ; Habilita interrupo da serial ; Temp 1 no modo 2 ; Baud rate de 9600 bps para clock de 11,059 MHz
LOOP:
SERIAL:
Ncleo de Estudo e Pesquisa 156 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
156
Microcontrolador 8051
Ncleo de Estudo e Pesquisa 157 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
157
Microcontrolador 8051
Expanso de Memria Um sistema microcontrolado consiste de Hardware e Firmware. O Firmware de sistemas experimentais de propsito geral normalmente um programa monitor que permite ao usurio inspecionar e modificar atributos do sistema, tais como memria e portas [3]. O programa monitor deveria, ainda, permitir baixar e rodar outros programas aplicativos. Uma vez que o programa aplicativo foi plenamente desenvolvido e testado, ele pode ser colocado numa ROM e o sistema microcontrolado pode ser usado como um controlador embarcado (embedded controller).
Ncleo de Estudo e Pesquisa 158 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
158
Microcontrolador 8051
Expanso de Memria Um sistema microcontrolado algumas vezes necessidade de memria alm da disponvel internamente no microcontrolador. O diagrama de blocos a seguir mostra o diagrama geral de um sistema com extenso de memria.
CPU: 8051 A(0 .. 15) D(0 .. 7) RD\ WR\ MEMRIA A(0 .. 15) D(0 .. 7) RD\ WR\
Ncleo de Estudo e Pesquisa 159 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
159
Microcontrolador 8051
8 linhas de dados: I/O0 ... I/O7 WE\ OE\ CE\ Write Enable Output Enable Chip Enable
Ncleo de Estudo e Pesquisa 160 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
160
Microcontrolador 8051
CE\ 0 0
WE\ 1 0
OE\ 0 1
Ncleo de Estudo e Pesquisa 161 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
161
Microcontrolador 8051
Ncleo de Estudo e Pesquisa 162 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
162
Microcontrolador 8051
I/O0 CE\
I/O7 A7
EEPROM AT28C256
A14 A8
OE\ WE\
0V A 0
OE\
0V
Latch
LE
WR\
ALE
Ncleo de Estudo e Pesquisa 163 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
RD\
8 linhas de dados: I/O0 ... I/O7 WE\ OE\ CE\ Write Enable Output Enable Chip Enable
Ncleo de Estudo e Pesquisa 164 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
164
Microcontrolador 8051
I/O0 CE\
I/O7 A7
EEPROM AT28C64
A12 A8
OE\ WE\
0V A 0
OE\
0V
Latch
LE
WR\
ALE
Ncleo de Estudo e Pesquisa 165 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
RD\
Ncleo de Estudo e Pesquisa 166 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
166
Microcontrolador 8051
Mapeamento de Memria A Porta P0 e P2 podem ser usadas para acionar outros dispositivos, alm do acesso memria RAM. Para isso necessrio fazer um mapeamento de memria, de modo que cada dispositivo tenha um endereo, ou regio de endereos associados a ele. Pode-se, por exemplo, compartilhar as Portas P0 e P2 para acionar um motor de passo e um display LCD, alm da memria RAM. A diviso da regio total de memria (64 K) pode ser feita, nesse caso, em 8 regies de 8K. Um componente que pode ser usado nesse processo o decodificador 74LS138, que contm 3 entradas de seleo e 8 sadas.
Ncleo de Estudo e Pesquisa 167 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
167
Microcontrolador 8051
Mapeamento de Memria Dividindo-se a regio total de memria (64 K) em 8 regies iguais, tem-se o quadro a seguir, com a escolha do dispositivo das regies:
Regio 0 1 2 3 4 5 6 7 Endereo Inicial e Final 0000H 1FFFH 2000H 3FFFH 4000H 5FFFH 6000H 7FFFH 8000H 9FFFH A000H BFFFH C000H DFFFH E000H - FFFFH
168 Microcontrolador 8051
Ncleo de Estudo e Pesquisa 168 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
I/O0 CE\
I/O7 A7
EEPROM AT28C64
A12 A8
OE\ WE\
0V A 0
OE\
0V
Latch
LE
WR\
ALE
Ncleo de Estudo e Pesquisa 169 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
RD\
8 linhas de dados: I/O0 ... I/O7 WE\ OE\ CE\ Write Enable Output Enable Chip Enable
Ncleo de Estudo e Pesquisa 170 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
170
Microcontrolador 8051
Ncleo de Estudo e Pesquisa 171 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
171
Microcontrolador 8051
Tabela-verdade do 74LS138
Ncleo de Estudo e Pesquisa 172 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
172
Microcontrolador 8051
Mapeamento de Memria Dividindo-se a regio total de memria (64 K) em 8 regies iguais, tem-se o quadro a seguir, com a escolha do dispositivo das regies:
Regio 0 1 2 3 4 5 6 7 Endereos Inicial e Final 0000 H 1FFF H 2000 H 3FFF H 4000 H 5FFF H 6000 H 7FFF H 8000 H 9FFF H A000 H BFFF H C000 H DFFF H E000 H FFFF H Motor de passo Display LCD Reservado para expanso Reservado para expanso Reservado para expanso Reservado para expanso Reservado para expanso Dispositivo Memria EEPROM
Ncleo de Estudo e Pesquisa 173 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
173
Microcontrolador 8051
Mapeamento de Memria
A15 0 0 A14 0 0 A13 0 0 A12 0 1 A11 0 1 A10 0 1 A9 0 1 A8 0 1 A7 0 1 A6 0 1 A5 0 1 A4 0 1 A3 0 1 A2 0 1 A1 0 1 A0 0 1
0 0
0 0
1 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 0
1 1
0 0
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
EEPROM
Motor de Passo
174
LCD
Microcontrolador 8051
Ncleo de Estudo e Pesquisa 174 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
Mapeamento de Memria Motor de Passo Endereo escolhido para o motor de passo: 2000H a 3FFFH. Driver para o motor de passo UL2004 Transistores Darlington
Usar Latch
Ncleo de Estudo e Pesquisa 175 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
175
Microcontrolador 8051
Ncleo de Estudo e Pesquisa 176 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
176
Microcontrolador 8051
4000H 5FFFH
R/W A1
RS A0
O contedo de A (18H) interpretado pelo LCD como uma instruo deslocamento para a esquerda da mensagem do display
177 Microcontrolador 8051
Ncleo de Estudo e Pesquisa 177 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
Sentido de deslocamento do cursor ao entrar com caractere Deslocamento da mensagem entrar com caractere ao
Ncleo de Estudo e Pesquisa 178 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
178
Microcontrolador 8051
A15 0 0 0
A14 0 0 1
A13 0 1 0
Ncleo de Estudo e Pesquisa 179 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
179
Microcontrolador 8051
Bibliografia [1] Salvador P. Gimenez, Microcontroladores 8051: Teoria do hardware e do software/Aplicaes em controle digital/Laboratrio e simulao, Pearson Education do Brasil, So Paulo, 2002. ISBN: 85.87918-28-1. [2] Vidal Pereira da Silva Jr., Aplicaes Prticas do Microcontrolador 8051, Editora rica, So Paulo, 1994. ISBN: 85-7194-194-7 [3] Sencer Yeralan, Ashutosh Ahluwalia, Programming and Interfacing the 8051 Microcontroller, Addison-Wesley Publishing Company, 1995. ISBN: 0-201-63365-5.
Ncleo de Estudo e Pesquisa 180 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
180
Microcontrolador 8051