Upload
oinominavel
View
2.225
Download
2
Embed Size (px)
Citation preview
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
MICROPROCESSADORES E MICROCONTROLADORES
Microcontrolador 8051Jos Wilson Lima [email protected]
Goinia, 2009
1
Ncleo de Estudo e Pesquisa em Processamento de Energia e Qualidade Prof. Jos Wilson Lima Nerys
1
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Arquitetura do 8051
2
Ncleo de Estudo e Pesquisa em Processamento de Energia e Qualidade Prof. Jos Wilson Lima Nerys
2
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Diagrama de Blocos do 8051
3
Ncleo de Estudo e Pesquisa em Processamento de Energia e Qualidade Prof. Jos Wilson Lima Nerys
3
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Diagrama de Blocos do 8051Em termos de hardware, o diagrama de blocos mostra onde acaba o microprocessador e quais as unidades adicionais presentes num microcontrolador. Assim, enquanto o microprocessador mais freqentemente usado no processamento de informaes em computadores, onde so complementados com os drivers e perifricos que compem o sistema, um microcontrolador mais adequado para sistemas dedicados, tal como um sistema de controle, onde deseja-se um sistema com um mnimo de componentes perifricos e um programa gravado em ROM. CPU A Unidade de Central de Processamento (UCP ou CPU) a responsvel por todo o processamento de informaes do microcontrolador. Contm os principais registradores, tal como o acumulador, que o principal registrador de um microprocessador. Ela contm ainda a Unidade Lgica e Aritmtica (ULA), responsvel pelas operaes de adio, subtrao, multiplicao, diviso, rotao, AND, OR e outras.
4
Ncleo de Estudo e Pesquisa em Processamento de Energia e Qualidade Prof. Jos Wilson Lima Nerys
4
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Diagrama de Blocos do 8051RAM As verses xx51 possuem memria de dados (RAM) de 128 bytes, enquanto a capacidade de memria RAM das verses xx52 de 256 bytes. ROM As verses xx51 possuem memria de programa (ROM) interna de 4 kBytes, enquanto as verses xx52 possuem capacidade de 8 kBytes de memria ROM. A exceo a verso 8032 que no possui memria ROM interna.
CI 8051 8052
ROM Interna 4k 8k
RAM Interna 128 256
Verso sem ROM Interna 8031 8032
Verso com EPROM Interna 8751 8752
Verso com Memria Flash 8951 8952
Verso Memria Flash usada na plataforma AT89S8252
5
Ncleo de Estudo e Pesquisa em Processamento de Energia e Qualidade Prof. Jos Wilson Lima Nerys
5
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Diagrama de Blocos do 8051Contadores/Temporizadores O microcontrolador padro da famlia 8051 possui dois contadores/temporizadores de 16 bits, que podem trabalhar em 4 (quadro) modos diferentes: modo de 13 bits, modo de 16 bits, modo nico de 8 bits com recarga automtica e modo duplo independente de 8 bits. O contador caracterizado por um clock externo, enquanto o temporizador usa o clock interno do microcontrolador. Essa unidade trabalha de forma independente da CPU e pode ser ativada tanto por software quanto por hardware.
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.
6
Ncleo de Estudo e Pesquisa em Processamento de Energia e Qualidade Prof. Jos Wilson Lima Nerys
6
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Diagrama de Blocos do 8051Portas Paralelas As portas paralelas, num total de 4 (quatro), so numeradas de P0 a P3 e so todas de 8 bits. A porta P3 tem dupla funo: alm de servir como canal de entrada e sada de dados tambm pode ser usada para a comunicao serial (P3.0 e P3.1), interrupes externas (P3.2 e P3.3), canal de freqncia para a operao como contador (P3.4 e P3.5) e canal de controle de gravao e leitura de memria externa (P3.6 e P3.7). A porta P0 tem uma caracterstica diferente das outras portas: ela de coletor aberto, o que significa que necessita de um resistor de pull-up e pode drenar uma corrente maior que as demais.
7
Ncleo de Estudo e Pesquisa em Processamento de Energia e Qualidade Prof. Jos Wilson Lima Nerys
7
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Pinagem do 8051 de 40 pinos
8
Ncleo de Estudo e Pesquisa em Processamento de Energia e Qualidade Prof. Jos Wilson Lima Nerys
8
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Programao em Assembly do 8051
9
Ncleo de Estudo e Pesquisa em Processamento de Energia e Qualidade Prof. Jos Wilson Lima Nerys
9
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Programao do 8085 x Programao do 8051Exemplo de programao em linguagem assembly do 8085 e do 8051, para efeito de compao superficial:
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
LEDs ligados e desligados, alternadamente.
Estudo e Pesquisa 10Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
10
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Fluxograma para o 8085
Estudo e Pesquisa 11Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
11
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Fluxograma para o 8051
Estudo e Pesquisa 12Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
12
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de ComputaoLabel Mnemnico 8085 LXI SP,20C0 h MVI A,02 h OUT 20 h MVI B,01h MVI C,00 h Label Mnemnico 8051 $MOD51 ORG 00H LJMP INICIO
Programas para o 8085 e 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Memrias RAM e ROM do 8051
Estudo e Pesquisa 14Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
14
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Memria RAM
Estudo e Pesquisa 16Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
16
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Memria RAMA 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Registradores do 8051
Estudo e Pesquisa 18Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
18
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Parte Baixa da RAM
32 registradores de 8 bits
Estudo e Pesquisa 19Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
19
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Memria RAM Regio enderevel por bit e por byte e Regio enderevel apenas por byteMOV 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Registradores Especiais do 8051
Estudo e Pesquisa 22Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
22
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Registradores EspeciaisDeve 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 superior24 Microcontrolador 8051
MOV RO, #80H MOV A,@RO
Estudo e Pesquisa 24Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Registrador Especial PSW (Endereo: D0H) (Program Status Word)CYCarry
AC
FDUso Geral
RS1
RS0
0VOverflow
P
Paridade
Auxiliar de Carry Para selecionar Banco 1:
RS1 0 0 1 1
RS0 0 1 0 1
Banco Selecionado 0 1 2 3
SETB RS0 SETB PSW.3 SETB D0H.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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Registradores EspeciaisRegistrador 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 D4RS1
Bits individuais dos registradores 87 97 A7 B7 E7 F7 86 96 A6 B6 E6 F6 85 95 A5 B5 E5 F5 84 94 A4 B4 E4 F4 83 93 A3 B3 E3 F3 82 92 A2 B2 E2 F2 81 91 A1 B1 E1 F1 80 90 A0 B0 E0 F0
D3RS0
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Registradores EspeciaisRegistrador 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
Controle de Porta Serial
SCON
98H
9FSM1
9ESM2
9DSM3
9CREN
9BTB8
9ARB8
99TI
98RI
Porta de Dados Seriais
SBUF
99H
Estudo e Pesquisa 27Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
27
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Registradores Especiais
Registrador Habilitador de Interrupo Controle de Prioridade de Interrupo
Mnem IE
End A8H
Bits individuais dos registradores AFEA
AE AD AC AB AAES ET1 EX1
A9ET0
A8EX0
IP
B8H
BF
BE BD BC BB BAPS PT1 PX1
B9PT0
B8PX0
Estudo e Pesquisa 28Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
28
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Registradores Especiais - ObservaesApontador de Pilha (Stack Pointer): SP: 81h - Como valor default, SP aponta para o endereo hexadecimal 07h da memria RAM interna. Ao contrrio do Microprocessador 8085, o endereo do apontador de pilha incrementado a cada endereo guardado na pilha e o byte menos significativo guardado primeiro.
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Registradores Especiais - ObservaesRegistradores dos Temporizadores/Contadores TH e TL armazenam as partes alta e baixa, respectivamente, da contagem dos temporizadores/contadores; TMOD (89 h) define o modo de operao dos temporizadores/contadores e TCON (88 H) controla o incio e o fim de uma contagem.
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Circuitos de Reset e de Clock
Estudo e Pesquisa 31Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
31
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Valores Iniciais aps ResetRegistro PC A B PSW SP DPTR P0 - P3 IP IE TMOD Valor 0000h 00h 00h 00h 07h 0000h FFh xxx00000b 0xx00000b 00h33 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Circuito de Clock
Estudo e Pesquisa 34Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
34
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Ciclo de Clock e Ciclo de MquinaUm ciclo de mquina corresponde a uma seqncia de 6 estados (S1 a S6), cada um equivalente a 2 perodos do oscilador . (1 ciclo de mquina = 12 perodos do oscilador). S1 S2 S3 S4 S5 S6
Ciclo de mquina
Cada instruo executada em pelo menos 1 ciclo de mquina.Estudo e Pesquisa 35Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
35
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Ciclo de Clock e Ciclo de MquinaSe o oscilador (cristal) for de 12 MHz, 1 ciclo de clock corresponde a:
Tclock =
1 f clock
1 = 12 MHz
Tmquina = 12 Tclock = 1sCada 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Circuito Mnimo
EA
Nvel lgico 1
Microcontrolador busca instruo na memria ROM interna
Estudo e Pesquisa 37Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
37
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Instrues do 8051
Estudo e Pesquisa 38Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
38
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Instrues Geraismov 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Instrues Geraismov 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Instrues Geraismov 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Instrues Geraisadd a,reg Adiciona o contedo do registrador reg ao contedo do acumulador: A = A + reg
Exemplo: add a,R1
Se a = 07 H e R1 = 03 H, ento, aps a instruo, a = 0AH.
subb a,byte
Subtrai o contedo do acumulador do byte. A = A byte.
Exemplo: subb a,#05H
Se a = 07 H, ento, aps a instruo, a = 02 H.
Estudo e Pesquisa 42Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
42
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Instrues Geraisrl 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Instrues Geraiscpl 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Instrues Geraismul 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Instrues Geraisanl a,byte Faz uma operao AND entre acumulador e BYTE. A = A (AND) BYTE.
Exemplo: anl a,#0FH
se originalmente a = 35 H, aps a instruo torna-se: A = 05H.
orl A,byte
Faz uma operao OR entre o acumulador e byte. A = A (OR) byte.
Exemplo: orl a,#20H se originalmente a = 07 H, aps a instruo torna-se: A = 27 H.
Estudo e Pesquisa 46Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
46
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Instrues Gerais Comparao, deciso e desviosjmp desvio Desvio incondicional curto (short jump) relativo. Pula at 127 bytes para a frente e at 128 bytes para trs. ajmp desvio Instruo de desvio para distncias correspondentes a at 2048 bytes. (endereo de 11 bits). ljmp desvio Desvio incondicional longo, para qualquer posio da memria de programa. Endereo de 16 bits. jnz desvio Instruo de desvio condicional: (Jump if Not Zero). Vai para desvio se a operao anterior no for zero. Verifica automaticamente a flag de Zero. lcall subrotina Chamada de subrotina. Desvia para o endereo onde a subrotina est localizada. Retorna para a posio seguinte quando encontra a instruo ret.Estudo e Pesquisa 47Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
47
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Instrues Gerais Comparao, deciso e desviojc desvio Desvio condicional para a posio indicada por desvio. Desvia se a flag de CARRY estiver setada. jnc desvio Desvio condicional para a posio indicada por desvio. Desvia se a flag de CARRY no estiver setada. djnz reg,desvio Decrementa registrador reg e pula para a posio desvio se o resultado no for zero. uma combinao das instrues DEC e JNZ do microprocessador 8085. cjne a,#dado,desvio Compara contedo do acumulador com dado e pula para a posio desvio se no forem iguais
Estudo e Pesquisa 48Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
48
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Instrues Gerais Operaes com Bitjb bit,desvio Desvia para a posio desvio, caso o bit esteja setado.
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.
Exemplo: jnb ligado,liga
setb bit
Seta o bit. Torna o bit ligado igual a 1.
Exemplo: setb ligado clr bit Limpa o bit Exemplo: clr ligado
Torna o bit ligado igual a zero.49 Microcontrolador 8051
Estudo e Pesquisa 49Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Diretivas de Programao do 8051 e Programao em Assembly
Estudo e Pesquisa 50Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
50
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Diretivas de Programaoorg endereo Exemplo: org 30 H mov sp,#2Fh Informa ao compilador o endereo onde deve ser armazenada a prxima instruo.
Esta instruo ser armazenada na posio 30 H da memria ROM.
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Diretivas de Programaovarivel 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Programa que gera uma onda quadrada no pino 0 da porta P1:$MOD51 ORG 00H LJMP INICIO ORG 30H INICIO: CPL P1.0 MOV R0,#50 DJNZ R0,$ END ; Biblioteca com definies bsicas do 8051 ; informa ao compilador que a instruo LJMP ser ; armazenada na posio 00H da memria ROM ; Instruo P1.0 ser armazenada na posio 30H ; Complementa o pino P1.0 (pino 0 da porta P1) ; Carrega R0 com o valor decimal 50 ; Decrementa R0 at esse registrador tornar-se ZERO ; Informa ao compilador o FIM do programa
SJMP INICIO ; Volta para o incio do programa
Estudo e Pesquisa 53Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
53
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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 HzEstudo e Pesquisa 54Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
54
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Programa que faz a leitura de uma Tabela e envia valores para P2Rtulo Mnemnico $mod51 org 00h ljmp inicio org 30h Inicio: mov sp,#2Fh mov dptr,#tabela repete: mov a,#00h volta: push acc movc a, @a+dptr cjne a,#0FFh,continua pop acc sjmp repete tabela: db 0Ah db 06H db 05H db 09H db 0FFH end Rtulo Mnemnico pop acc inc a sjmp volta continua: mov P2,a
Estudo e Pesquisa 55Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
55
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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 ENDEstudo e Pesquisa 56Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
56
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Programa que faz uma contagem hexadecimal ininterrupta de 0 RTULO MNEMNICO $MOD51 ORG 00H LJMP INICIO
30H
0
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 ENDEstudo e Pesquisa 57Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
57
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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 ENDEstudo e Pesquisa 58Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
58
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Subrotina de atraso de tempo de 2 msRtulo Mnemnico No. ciclos ATRASO: MOV R0,#10 REPETE: MOV R1,#100 DJNZ R1,$ DJNZ R0,REPETE RET 2 1 2 s 2033 s 1 1 2 2 No. vezes 1 10 1000 10 Tempo de atraso 1 s 10 s 2000 s 20 s
Estudo e Pesquisa 59Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
59
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Programa que faz uma contagem decimal decrescente de 59 a 0RTULO MNEMNICO $MOD51 ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#2FH MOV A,#60H VOLTA: ADD A,#99H DA A MOV P1,A CJNE A,#00H,VOLTA SJMP INICIO ENDEstudo e Pesquisa 60Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
60
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Ambientes de Edio e Simulao
Estudo e Pesquisa 61Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
61
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Ferramentas para o 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Tela Principal do AsmEditor
Estudo e Pesquisa 63Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
63
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Tela de Edio do Simulador PEQui
Estudo e Pesquisa 67Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
67
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Tela Principal do Simulador PEQui
Estudo e Pesquisa 69Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
69
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Tela de Ajuda do Simulador PEQui
Estudo e Pesquisa 70Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
70
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Simulador AVSIM51
Estudo e Pesquisa 71Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
71
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Simulador AVSIM51 para ambiente DOSAcumulador A, Flag de Carry C, contador de programa PC e apontador de pilha SP Temporizadores 0 e 1
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Gravadora para o AT89S8252
Estudo e Pesquisa 73Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
73
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Tela do Programa de Gravao PonyProg2000
Estudo e Pesquisa 74Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
74
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Plataforma de Desenvolvimento com o AT89S8252
Estudo e Pesquisa 75Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
75
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Conexes do microcontrolador com os componentes a serem acionadosSensor direito da esteira Motor de passo da esteira Motor de passo isolado Liga e controla velocidade do motor CC grande Sensor esquerdo da esteira Motor CC grande (sentido de rotao) 0 1 um sentido 1 0 no outro sentido
Motor CC pequeno Sentido de rotao e controle de velocidade
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
Comando para o primeiro display
Comando para o terceiro display
Comando para o segundo display
Comando para o quarto display
Sensor de velocidade do motor CC pequeno
Pedido de interrupo do teclado
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
P3.4 P3.5 P3.6 P3.7 Cdigo da tecla digitada no teclado
Estudo e Pesquisa 77Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
77
Microcontrolador 8051
Lmpada
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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 ENDEstudo e Pesquisa 78Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
78
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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 END80 Microcontrolador 8051
Estudo e Pesquisa 80Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Interrupes do 8051
Estudo e Pesquisa 81Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
81
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
InterrupesO 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)
So 5 as maneiras possveis de interrupo:Interrupo externa 0 (INTO\) - pino 12 (P3.2) Interrupo atravs do timer/counter 0 (temporizador/contador 0) TIMER0 Interrupo externa 1 (INT1\) pino 13 (P3.3) Interrupo atravs do timer/counter 1 (temporizador/contador 1) TIMER1 Interrupo atravs do canal de comunicao Serial (Pinos 10 e 11 = P3.0 e P3.1)
Estudo e Pesquisa 82Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
82
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
InterrupesEndereos de Desvio das Interrupes:
Interrupo Solicitada Reset INT0\ Timer/counter 0 INT1\ Timer/counter 1 Canal Serial
Endereo de desvio 0000h 0003h 000Bh 0013h 001Bh 0023h
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 88hEstudo e Pesquisa 83Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
83
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Interrupes Registrador de Habilitao: IE (Interrupt Enable) = Registrador A8hBit 7 EA EA ES ET1 EX1 ET0 EX0 x x Bit 4 ES Bit 3 ET1 Bit 2 EX1 Bit 1 ET0 Bit 0 EX0
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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,#81HExemplo 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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,#85HExemplo 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Interrupes Registrador de Controle: TCON (Timer Control) = Registrador 88h TCON =IE1TF1 TR1 TF0 TR0
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Interrupes Registrador de Controle: TCON (Timer Control) = Registrador 88h TCON =0 0 0 0
0
0
0
1
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 :
MOV IE,#81H MOV TCON,#01HExemplo 1B A interrupo externa ZERO acionada por transio.
Estudo e Pesquisa 88Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
88
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Interrupes Registrador de Controle: TCON (Timer Control) = Registrador 88h TCON =0 0 0 0
0
0
0
1
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 :
MOV IE,#81H MOV TCON,#01HExemplo 1B A interrupo externa ZERO acionada por transio.
Estudo e Pesquisa 89Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
89
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Interrupes Registrador de Prioridade: IP (Interrupt Priority) = Registrador B8h IP =PSX X X
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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:
Interrupo Externa 0 Temporizador 0 Externa 1 Temporizador 1 Serial
Prioridade Maior
Menor91 Microcontrolador 8051
Estudo e Pesquisa 91Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Interrupes IP =0 0 0 0
0
0
0
1
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.
MOV IE,#85H MOV TCON,#01H MOV IP,#01HExemplo 3 Rotao de bits na porta P1.92 Microcontrolador 8051
Estudo e Pesquisa 92Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Temporizadores/Contadores Microcontrolador 8051
Estudo e Pesquisa 96Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
96
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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 TR0IT1 IE1 IT0 IE0
Estudo e Pesquisa 98Ncleo deWilson Lima Nerys em Processamento de Energia e Qualidade Prof. Jos
98
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Temporizadores Registrador do Temporizador: TMOD (Timer Mode) = Registrador 89h TMOD = GG1 C/T1 M11 M10 G0 C/T0 M01 M00
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Temporizadores Registrador de Controle: TCON (Timer Control) = Registrador 88h TCON = TR TF1 TR1 TF0 TR0IT1 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Temporizadores
Ncleo de Estudo e Pesquisa 101 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
101
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
TemporizadoresO 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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
InstruoMOV TMOD,#01H SETB TR0 SETB TR1
DescrioSeta 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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.
InstruoMOV TMOD,#01H MOV TH0,#20H MOV TL0,#50H SETB TR0 SETB TR1 (65535).
DescrioSeta 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Temporizadores Exemplo 3: Contagem do temporizador 1 no modo 2, com recarga de 7FH.
InstruoMOV TMOD,#20H MOV TH0,#7FH SETB TR1 automtica.
DescrioSeta o Temporizador 1 no modo 2, com recarga
Define valor da recarga para 7FH. Dispara o Temporizador 1
Ncleo de Estudo e Pesquisa 105 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
105
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Temporizadores Exemplo 4: Contagem do temporizador 0 com interrupo.
InstruoMOV TMOD,#01H MOV IE,#82H SETB TR0 65535.
DescrioSeta o Temporizador 0 no modo 1, contagem at
Habilita a interrupo do Temporizador 0. Dispara o Temporizador 0.
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Temporizadores Exemplo 6: Contagem decrescente na P1, atravs de INT0 e crescente na P2, atravs do temporizador 0, com prioridade 1.
InstruoMOV TMOD,#01H MOV IE,#83H 65535.
DescrioSeta 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.
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Programa com uma subrotina de atraso de tempo com temporizadorRTULO MNEMNICO $MOD51 ORG 00H LJMP INICIO RTULO MNEMNICO
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
FIM: NOP ENDNcleo de Estudo e Pesquisa 108 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
108
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Exemplos com Interrupes e Temporizadores do 8051
Ncleo de Estudo e Pesquisa 110 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
110
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Acionamento de Lmpada
Rel: Bobina: 12 V Contatos: 220 V / 1 A Transistor BJT: BC548C
Ncleo de Estudo e Pesquisa 111 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
111
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Acionamento de uma Lmpada IncandescenteRtulo Mnemnico $MOD51 Rtulo Mnemnico ORG 30H INICIO: MOV SP,#2FH ORG 00H LJMP INICIO MOV TMOD,#01H MOV IE,#82H MOV R7,#200 SETB TR0 ORG 0BH LJMP TEMP TEMP: DJNZ R7,PULA SJMP $
A lmpada acende e apaga a cada 200*65 ms 13 s PEQui: Lampada1.asm
CPL P2.0 MOV R7,#200 PULA: CLR TF0 RETI END
Ncleo de Estudo e Pesquisa 112 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
112
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Sensor de Presena
Ncleo de Estudo e Pesquisa 113 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
113
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Acionamento de uma Lmpada Incandescente v2 A lmpada acionada atravs de um sensor de presenaRtulo Mnemnico $MOD51 SENSOR LAMPADA EQU P3.0 EQU P2.7 Rtulo Mnemnico CPL LAMPADA JNB SENSOR,$ LCALL ATRASO SJMP VOLTA ORG 00H LJMP INICIO ATRASO: MOV R5,#200 REP: MOV R6,#200 ORG 30H INICIO: MOV SP,#2FH VOLTA: JB SENSOR,$ LCALL ATRASO DJNZ R6,$ DJNZ R5,REP RET
PEQui: Lampada2.asmNcleo de Estudo e Pesquisa 114 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
END 114 Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Acionamento de Motor de Passo
Ncleo de Estudo e Pesquisa 115 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
115
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Acionamento de Motor de PassoMeio passoPasso 1 2 3 4 5 6 7 8 9 T0 1 0 0 0 0 0 1 1 1 T1 0 0 1 1 1 0 0 0 0 T2 1 1 1 0 0 0 0 0 1 T3 0 0 0 0 1 1 1 0 0 HEX 0A 02 06 04 05 01 09 08 0A
Passo CompletoPasso 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Acionamento de Motor de PassoRtulo $MOD51 SENTIDO BIT 00H SENSOR1 EQU P3.0 SENSOR2 EQU P3.1 ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#2FH CLR SENTIDO COMECO: MOV A,#00H DECIDE: JB SENSOR1,OUTRO CLR SENTIDO OUTRO: JB SENSOR2,VAI SETB SENTIDO VAI: JB SENTIDO,INVERSONcleo de Estudo e Pesquisa 117 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
Mnemnico
Rtulo
Mnemnico MOV DPTR,#DIRETO SJMP FRENTE
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Acionamento de Motor de PassoRtulo Mnemnico Rtulo Mnemnico DB 06H DB 05H DB 09H DB 0FFH REVERSO: DB 09H DB 05H ATRASO: MOV R0,#3FH VOLTA: MOV R1,#3FH DJNZ R1,$ DJNZ R0,VOLTA RET DIRETO: DB 0AH
PEQui: Passo1.asm
DB 06H DB 0AH DB 0FFH RET END
Ncleo de Estudo e Pesquisa 118 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
118
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Acionamento de Motor de Passo Sensores de ExtremidadeRtulo $MOD51 SENTIDO BIT 00H SENSOR1 EQU P2.7 SENSOR2 EQU P2.6 ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#2FH CLR SENTIDO COMECO: MOV A,#00H DECIDE: JNB SENSOR1,OUTRO CLR SENTIDO OUTRO: JNB SENSOR2,VAI SETB SENTIDONcleo de Estudo e Pesquisa 119 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
Mnemnico
Rtulo
Mnemnico MOV DPTR,#DIRETO SJMP FRENTE
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Acionamento de Motor de Passo Sensores de ExtremidadeRtulo Mnemnico Rtulo Mnemnico DB 06H DB 05H DB 09H DB 0FFH REVERSO: DB 09H DB 05H ATRASO: MOV R0,#3FH VOLTA: MOV R1,#3FH DJNZ R1,$ DJNZ R0,VOLTA RET DIRETO: DB 0AH
PEQui: Passo2.asm
DB 06H DB 0AH DB 0FFH RET END
Ncleo de Estudo e Pesquisa 120 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
120
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Acionamento de Motor de Passo Com InterrupoRtulo $MOD51 SENTIDO ORG 00H LJMP INICIO ORG 13H CPL SENTIDO RETI ORG 30H INICIO: MOV SP,#2FH MOV IE,#84H MOV TCON,#04H CLR SENTIDO COMECO: MOV A,#00H BIT 00H Mnemnico Rtulo Mnemnico MOV DPTR,#DIRETO SJMP FRENTE INVERSO: MOV DPTR,#REVERSO FRENTE: PUSH ACC MOVC A,@A+DPRT CJNE A,#0FFH,PULA POP ACC SJMP COMECO PULA: MOV P0,A LCALL ATRASO POP ACC INC A SJMP DECIDE DECIDE: JB SENTIDO,INVERSO
Ncleo de Estudo e Pesquisa 121 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
121
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Acionamento de Motor de Passo Com InterrupoRtulo Mnemnico Rtulo Mnemnico DB 06H DB 05H DB 09H DB 0FFH REVERSO: DB 09H DB 05H ATRASO: MOV R0,#3FH VOLTA: MOV R1,#3FH DJNZ R1,$ DJNZ R0,VOLTA RET DIRETO: DB 0AH
PEQui: Passo3.asm
DB 06H DB 0AH DB 0FFH RET END
Ncleo de Estudo e Pesquisa 122 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
122
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Acionamento de Motor de Corrente Contnua12 V
Driver para acionamento em um nico sentido de rotao1N4001
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Acionamento de Motor de Corrente Contnua Ponte H Driver para acionamento nos dois sentidos de rotao Chaves A e B fechadas sentido direto
Chaves C e D fechadas sentido reverso
Ncleo de Estudo e Pesquisa 124 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
124
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Acionamento de Motor de Corrente Contnua Ponte H L298N
In2 0 0 1 1Ncleo 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Acionamento de Motor de Corrente Contnua Variao de VelocidadeT
VMAX
V max Va
TON Va = VMAX TSupondo T = 255 s
TON
TOFF
f chav =
1 = 3,92 kHz 255s126 Microcontrolador 8051
Ncleo de Estudo e Pesquisa 126 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Acionamento de Motor de Corrente Contnua Variao de VelocidadeA variao de velocidade pode ser obtida variando-se o perodo ligado (TON) de 0 a 255 s, ao mesmo tempo em que o perodo desligado (TOFF) deve variar de 255 s a 0, para manter constante o perodo total (T). Essa contagem do perodo ligado e desligado pode ser feita atravs do temporizador do 8051, modo 2 (com recarga automtica), gerando um sinal PWM. Nesse modo a contagem feita atravs de TL e o valor de TH usado para definir o incio da prxima contagem. Se o temporizador comea sempre no valor dado em TL e vai at FFh (255), e sendo TON = T TOFF, e sendo ainda escolhido T = 255, o procedimento usado no programa : 1. Para o perodo ligado faz-se TL = TOFF; dessa forma, o temporizador conta de TOFF at 255, o que corresponde ao perodo ligado;Ncleo de Estudo e Pesquisa 127 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
127
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Acionamento de Motor de Corrente Contnua Variao de Velocidade2. Para o perodo desligado faz-se TL = TON; dessa forma, o temporizador conta de TON at 255, o que corresponde ao perodo desligado. 3. No incio do programa desliga-se o motor (CLR P2.0 e CLR P2.1) e faz-se TL = TON = 09H, o que faz com que o temporizador, na primeira contagem j conte o perodo desligado, que comea em TON e vai at 255. 4. Aps fazer TL = TON, encontra-se o complementar de TON (CPL A), ou seja, TOFF, e carrega-se em TH. Dessa forma, a prxima contagem comear em TOFF, o que significa que o temporizador contar o perodo ligado. 5. Cada vez que a subrotina de controle executada define-se o prximo valor de recarga, TH. 6. Para aumentar a velocidade aumenta-se o perodo ligado TON. Para diminuir a velocidade, aumenta-se TOFF.128 Microcontrolador 8051
Ncleo de Estudo e Pesquisa 128 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Programa para Acionamento de Motor de Corrente ContnuaRtulo $MOD51 TON EQU 03H Mnemnico Rtulo Mnemnico ORG 30H INICIO: MOV SP,#2FH MOV TMOD,#02H MOV IE,#86H MOV TCON,#04H MOV IP,#02H ORG 00H LJMP INICIO ORG 0BH LJMP PWM ORG 13H LJMP TECLADO CLR P2.0 CLR P2.1 CLR LIGADO MOV TON,#0FH MOV TL0,TON MOV A,TON CLR A MOV TH0,A MOV T0FF,A SJMP $ 129
TOFF EQU 04H LIGADO BIT 00H
129
Ncleo de Estudo e Pesquisa em Processamento de Energia e Qualidade Prof. Jos Wilson Lima Nerys
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Programa para Acionamento de Motor de Corrente ContnuaRtulo Mnemnico SETB P2.0 SETB LIGADO MOV TH0,TON RETI DESLIGA: CLR P2.0 CLR LIGADO MOV TH0,TOFF RETI VOLTA: SETB EX1 TECLADO: SETB TR0 CLR EX1 MOV A,P3 SWAP ANcleo de Estudo e Pesquisa 130 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
Rtulo
Mnemnico ANL A,#0FH CJNE A,#01H,VERIF8 SJMP AUMENTA
PWM: JB LIGADO,DESLIGA
VERIF8: CJNE A,#09H,VERIF5 SJMP DIMINUI VERIF5: CJNE A,#05H,VOLTA SJMP PARA
RETI
130
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Programa para Acionamento de Motor de Corrente ContnuaRtulo Mnemnico ADD A,#08H MOV B,A SUBB A,#0F0H JC PULA MOV B,#0F0H PULA: MOV A,B MOV TON,A CPL A MOV T0FF,A SETB EX1 RETI DIMINUI: MOV A,TOFF ADD A,#08HNcleo de Estudo e Pesquisa 131 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
Rtulo
Mnemnico MOV B,A SUBB A,#0F0H JC PULA2 MOV B,#0F0H
AUMENTA: MOV A,TON
PULA2: MOV A,B MOV TOFF,A CPL A MOV TON,A SETB EX1 RETI
131
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Programa para Acionamento de Motor de Corrente ContnuaRtulo Mnemnico CLR P2.1 CLR TR0 CLR LIGADO MOV TON,#0FH MOV TL0,TON CPL A MOV TH0,A MOV TOFF,A SETB EX1 RETI END PARA: CLR P2.0
Tecla 2 Tecla 8 Tecla 5 Obs.:
aumenta a velocidade diminui a velocidade pra o motor
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.
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Comunicao Serial do 8051
Ncleo de Estudo e Pesquisa 133 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
133
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Princpios da Comunicao SerialA comunicao serial consiste em enviar ou receber pacotes de informao bit a bit. No caso do 8051 o canal de comunicao serial do tipo full duplex, o que significa que ele pode, ao mesmo tempo, receber e transmitir dados.
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Comunicao Serial SncronaNa comunicao serial sncrona, so utilizados dois canais: um para transmitir os dados e um outro para transmitir um sinal de sincronismo. O transmissor, portanto, o responsvel pela sincronizao. A cada sinal de sincronismo recebido o receptor l o canal de dados.
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Comunicao Serial AssncronaNa comunicao assncrona no h um sinal de sincronismo e, portanto, alguns cuidados especiais devem ser tomados: As taxas de recepo e de transmisso devem ser iguais Um bit de incio da transmisso deve ser enviado Um bit de fim de transmisso deve ser enviado O bit de incio de transmisso zero, isto porque o canal normalmente fica em repouso no nvel lgico alto. Assim, a primeira passagem para zero, aps a habilitao da transmisso, interpretada como o sinal de incio. O sinal de parada de nvel lgico alto, aps serem recebidos a quantidade de bits especificada. Alm do bit de incio (Start bit) e do bit de fim (Stop bit), tambm pode existir um terceiro bit extra, que o bit de paridade, usado para verificar a consistncia dos dados.Ncleo de Estudo e Pesquisa 136 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
136
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Comunicao Serial Assncrona
Ncleo de Estudo e Pesquisa 137 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
137
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Comunicao Serial Assncrona(SCON) = SM0 SM1 SM2 REN TB8 RB8 TI RI SM0 SM1 Modo Descrio Baud Rate 0 0 0 Registrador de Deslocamento fosc./12 0 1 1 UART de 8 bits varivel 1 0 2 UART de 9 bits fosc./64 ou fosc./32 1 1 3 UART de 9 bits varivel Smbolo Nome e Significado SM2 Habilita a caracterstica de comunicao de multiprocessadores no modo 2 e 3. Nesses modos, se SM2=1, RI no ser ativado se o nono bit de dado recebido for igual a 0. No modo 1, se SM2=1, RI no ser ativado se um stop bit vlido no for recebido. No modo 0, dever ser 0. REN Bit habitador da recepo serial. Setado/limpado por software para habilitar ou desabilitar a recepo serial. TB8 o nono bit de dado que ser transmitido no modo 2 e 3. Setado ou limpado por software. RB8 No modo 2 e 3, o nono bit de dado que foi recebido. No modo 1, se SM2=0, RB8 o stop bit que foi recebido. No modo 0, RB8 no usado. TI o flag de interrupo de transmisso. Setado por hardware no final do tempo do 8 bit no modo 0 ou no incio do stop bit em outros modos, em qualquer transmisso serial. Dever ser limpado por software. RI o flag de interrupo de recepo. Setado por hardware no final do tempo do 8 bit no modo 0 ou na metade do tempo do stop bit em outros modos, em qualquer recepo serial. Dever ser limpado por software.Ncleo de Estudo e Pesquisa 138 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
138
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Comunicao Serial Modo 0 (Sncrono)Taxa de transmisso fixa e igual freqncia de clock dividida por 12.
f OSC Baud Rate = 12
(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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Comunicao Serial Modo 1 (Assncrono 8 bits)Taxa de transmisso definida pelo usurio seguindo a expresso:
f osc 2 SMOD Baud rate = * (bits / s ) 32 12 * (256 TH 1)So transmitidos 8 bits de dados, alm de um bit de incio e um bit de fim. TH1 SMOD valor de recarga automtica do temporizador 1 operando no modo 2. 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. 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Comunicao Serial Modo 2 (Assncrono 9 bits)Taxa de transmisso fixa e definida pela expresso:
Baud rate = 2SMOD
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Comunicao Serial Modo 3 (Assncrono 9 bits)Taxa de transmisso definida pelo usurio seguindo a expresso:
f osc 2 SMOD Baud rate = * (bits / s ) 32 12 * (256 TH 1)So transmitidos 9 bits de dados, alm de um bit de incio e um bit de fim. TH1 SMOD valor de recarga automtica do temporizador 1 operando no modo 2. 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. 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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Comunicao Serial Taxas de Transmisso mais comunsTimer 1 Modo Valor Recar. X X X X 2 FFh 2 FDh 2 FDh 2 FAh 2 F4h 2 E8h 2 1Dh 2 72h 1 FEEBh
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
Freq. Osc. (MHz) 12 12 12 11,059 11,059 11,059 11,059 11,059 11,059 6 12
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de ComputaoRTULO INSTRUO $MOD51 CONTADOR ORG 00H LJMP INICIO EQU 07H
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Comunicao Serial Programa Modo SncronoRTULO MOSTRAP1: CLR TI MOV CONTADOR,#200 ESPERA: MOV A,#0F0H ANL A,R0 SWAP A ORL A,#20H MOV P1,A LCALL ATRASO INSTRUO RTULO INSTRUO MOV A,#0FH ANL A,R0 ORL A,#10H MOV P1,A LCALL ATRASO DJNZ CONTADOR,ESPERA RET ATRASO: MOV R4,#10 REPETE: MOV R5,#100 DJNZ R5,$ DJNZ R4,REPETE RET END 145 Microcontrolador 8051
Ncleo de Estudo e Pesquisa 145 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Comunicao Serial Programa Modo 1 AssncronoRTULO $MOD51 CONTADOR EQU 07H ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#2FH MOV SCON,#40H MOV TMOD,#20H MOV TL1,#0FDH MOV TH1,#0FDH MOV R0,#00H SETB TR1Ncleo de Estudo e Pesquisa 146 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
INSTRUO
RTULO LOOP: JNB TI,$
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.asm146 Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Comunicao Serial Programa Modo 1 AssncronoRTULO SERIAL: ESPERA: CLR TI MOV CONTADOR,#200 MOV A,#0F0H ANL A,R0 SWAP A ORL A,#20H MOV P1,A LCALL ATRASO ATRASO: REPETE: INSTRUO RTULO INSTRUO MOV A,#0FH ANL A,R0 ORL A,#10H MOV P1,A LCALL ATRASO DJNZ CONTADOR,ESPERA RET MOV R4,#10 MOV R5,#100 DJNZ R5,$ DJNZ R4,REPETE RET END
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Comunicao Serial Programa Modo 1 AssncronoRTULO $MOD51 ORG 00H LJMP INICIO ORG 23H LJMP SERIAL ORG 30H INICIO: MOV SP,#2FH MOV SCON,#40H MOV IE,#90H MOV TMOD,#20H MOV TL1,#0FAH MOV TH1,#0FAH SERIAL: CLR RI MOV R0,SBUF RETI MOSTRA: INSTRUO RTULO INSTRUO MOV R0,#00H SETB TR1 SETB REN LCALL DISPLAY SJMP MOSTRA
Programa que recebe dados no modo 1 assncrono a uma taxa de 4800 bps serial 6.asm
TH1 = 0FAH fosc = 11,059 MHz148 Microcontrolador 8051
Ncleo de Estudo e Pesquisa 148 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Comunicao Serial Programa Modo 1 AssncronoRTULO INSTRUO ANL A,R0 ESPERA: SWAP A ORL A,#20H MOV P1,A LCALL ATRASO MOV P1,A MOV A,#0FH ANL A,R0 ORL A,#10H MOV P1,A LCALL ATRASO RET 149 Microcontrolador 8051 RTULO INSTRUO DISPLAY: MOV A,#0F0H ATRASO: MOV R4,#10 REPETE: MOV R5,#100 DJNZ R5,$ DJNZ R4,REPETE RET END
Ncleo de Estudo e Pesquisa 149 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Comunicao Serial ObservaesA conexo serial entre o microcontrolador 8051 e um computador exige um componente para adaptao dos nveis de tenso porque, enquanto no microcontrolador, tenso zero representa nvel lgico 0 e tenso de 5 V representa o nvel lgico 1, no computador diferente. No computador o nvel lgico 0 representado por uma tenso de + 12 V e o nvel lgico 1 representado por uma tenso de 12 V. Essa adaptao entre os nveis de tenso conseguida com o componente MAX232.
Ncleo de Estudo e Pesquisa 150 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
150
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
Comunicao Serial Observaes
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
;============ Transmisso Serial no Modo Sncrono =============== ;============ SCON = 00 ===============Rtulo Mnemnico $MOD51 ORG 00H LJMP INICIO Descrio
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
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
;============ Recepo Serial no Modo Sncrono =============== ;============ SCON = 00 ===============Rtulo Mnemnico $MOD51 ORG 00H LJMP INICIO ORG 30H INICIO: MOV SP,#2FH SETB REN LOOP: JNB RI,LOOP CLR RI MOV A,SBUF MOV P1,A SJMP LOOP END 153 Microcontrolador 8051 Seta o bit REN, que habilita a recepo via serial Loop de espera. Quando RI = recepo chegou ao final. Limpa o bit RI, para permitir uma nova recepo via serial Transfere para o acumulador o contedo recebido pela serial. Transfere para a porta P1 o contedo do acumulador Volta para a espera de um novo byte via serial Descrio
Ncleo de Estudo e Pesquisa 153 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
; ============== 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 ENDNcleo de Estudo e Pesquisa 154 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
INICIO:
LOOP:
154
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenharia Eltrica e de Computao
; ============== 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 ENDNcleo de Estudo e Pesquisa 155 Jos Wilson Lima Nerys em Processamento de Energia e Qualidade Prof.
INICIO:
LOOP: ; Aguarda fim de recepo ; Guarda em A contedo recebido via serial
155
Microcontrolador 8051
Universidade Federal de Gois Escola de Engenhar