Microcontrolador 8051

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