Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


microcontrolador 8051, Notas de estudo de Mecatrônica

apostila microcontrolador 8051

Tipologia: Notas de estudo

2012

Compartilhado em 18/02/2012

leo-silva-48
leo-silva-48 🇧🇷

5

(1)

6 documentos

1 / 78

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
1
Faculdade de Ciˆencia e Tecnologia
Engenharia de El´etrica
Disciplina: Microprocessadores e Microcontroladores
Professor: Vitor Le˜ao Filardi
Apostila de Programa¸ao em 8051
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e

Pré-visualização parcial do texto

Baixe microcontrolador 8051 e outras Notas de estudo em PDF para Mecatrônica, somente na Docsity!

Faculdade de Ciˆencia e Tecnologia

Engenharia de El´etrica

Disciplina: Microprocessadores e Microcontroladores

Professor: Vitor Le˜ao Filardi

Apostila de Programa¸c˜ao em 8051

  • 1 Primeira Unidade
    • 1.1 Explica¸c˜ao Intuitiva
    • 1.2 Princ´ıpios B´asicos
      • 1.2.1 Conceitos B´asicos da Computa¸c˜ao
      • 1.2.2 Blocos B´asicos de microcomputadores
    • 1.3 Arquitetura do Microprocessador/Microcontrolador
    • 1.4 A CPU Internamente
    • 1.5 O Microcontrolador
      • 1.5.1 Mem´oria
      • 1.5.2 Circuito de Reset
      • 1.5.3 O Gerador de Clock
      • 1.5.4 Interrup¸c˜ao
      • 1.5.5 Registro de Controle das Interrup¸c˜oes
      • 1.5.6 Tempo para Atendimento das Interrup¸c˜oes
      • 1.5.7 Ajuste das Interrup¸c˜oes Externas para serem Ativas em N´ıvel ou Transi¸c˜ao
      • 1.5.8 Hardware para expandir as possibilidade de Interrup¸c˜ao Externa
      • 1.5.9 Exerc´ıcios Resolvidos
      • 1.5.10 Conjunto de Instru¸c˜oes
  • 2 Segunda Unidade
    • 2.1 Ciclos de M´aquina
    • 2.2 Portas de I/O
      • 2.2.1 Princ´ıpio de Funcionamento e Utiliza¸c˜ao
      • 2.2.2 Caracter´ısticas Gerais e de Tempo dos Ports
      • 2.2.3 Uso das Portas de I/O para a Expans˜ao da Mem´oria de Dados e Programa
      • 2.2.4 Sele¸c˜ao de Programa Externo ou Interno
      • 2.2.5 Uso dos Pinos da Porta 3 como fun¸c˜oes Alternativas
      • 2.2.6 Capacidade de Corrente nos Pinos de I/O
    • 2.3 Modos de Endere¸camento das Instru¸c˜oes
      • 2.3.1 Endere¸camento por Registrador
      • 2.3.2 Endere¸camento Direto
      • 2.3.3 Endere¸camento Indireto
      • 2.3.4 Endere¸camento Imediato
      • 2.3.5 Endere¸camento Relativo
      • 2.3.6 Endere¸camento Absoluto
      • 2.3.7 Endere¸camento Longo
      • 2.3.8 Endere¸camento Indexado
    • 2.4 Temporizadores e Contadores
      • 2.4.1 Introdu¸c˜ao
      • 2.4.2 Registros Envolvidos
      • 2.4.3 Modos de opera¸c˜ao
      • 2.4.4 Exerc´ıcios
  • 3 Terceira Unidade 4 SUM ARIO´
    • 3.1 Comunica¸c˜ao Serial
      • 3.1.1 Introdu¸c˜ao
      • 3.1.2 Registros Envolvidos
      • 3.1.3 Modos de Opera¸c˜ao
      • 3.1.4 Cuidados com a Porta Serial
      • 3.1.5 Comunica¸c˜ao entre v´arios
      • 3.1.6 Comunica¸c˜ao serial entre o 8051 e o PC
      • 3.1.7 Exerc´ıcios
    • 3.2 Programa¸c˜ao em Assembly
      • 3.2.1 Introdu¸c˜ao te´orica
      • 3.2.2 Estrat´egias de elabora¸c˜ao de programas
      • 3.2.3 Fluxogramas

Referˆencias Bibliogr´aficas

GIMENEZ, S. P. Microcontroladores 8051. [S.l.]: Editora Pearson Education do Brasil, 2002.

NICOLOSI, D. E. C. Microcontrolador 8051 Detalhado. [S.l.]: Editora Erica, 2000.´

SILVA, V. P. da. Aplica¸c˜oes Pr´aticas do Microcontrolador 8051. [S.l.]: Editora Erica, 1998.´

Cap´ıtulo 1

Primeira Unidade

O que ´e Microcontrolador

1.1 Explica¸c˜ao Intuitiva

Vamos fazer de conta que somos meros aprendizes de cozinheiros, o chefe de cozinha teve que sair e chega um pedido de uma torta de chocolate do gerente da casa. O primeiro passo que nos vamos dar ´e em dire¸c˜ao ao livro de receitas onde dever´a ter impresso a rotina de como fazer uma ”Torta de Chocolate”

Tudo bem at´e aqui. E agora como vamos acessar a receita da torta? De que se comp˜oe uma receita?

Pois bem, vamos procurar a p´agina que cont´em o t´ıtulo ”Torta de Chocolate”, encontra-se ent˜ao a receita que ´e equivalente a um ”software” de constru¸c˜ao da torta, que est´a gravada em um p´agina ”ABC” do livro de receitas. Notemos que, na p´agina, apenas lemos; n˜ao escrevemos nada l´a, ou seja, em trocado de mi´udo ser´a a nossa futura ”ROM” - Read Only Memory - e p´agina o nosso endere¸co, pois toda vez quisermos tal informa¸c˜ao basta acessar tal endere¸co e obtˆe-l´a.

Poder´ıamos ainda necessitar de uma cobertura para a torta caso fossemos mostrar servi¸co para o chefe da casa, vejamos que no livro de receita exista em uma outra p´agina a rotina ”Cobertura para Tortas” e que esta por sua vez estava seperada por servir para mais de um tipo de torta, e poder´ıamos partir para a sua execu¸c˜ao e depois retornar a torta, o que ´e chamado tamb´em como subrotina de um programa.

Agora se fossemos complicar um pouco mais a nossa receita e fossemos fazer uma receita e meia da torta? Precisar´ıamos de uma folha de rascunho (a mem´oria ”RAM”) para ajustarmos a receita,uma vez que na receita da torta n˜ao devo anotar nada nela. Esta mem´oria tempor´aria, ser´a utilizada para c´alculos, e depois podemos nos desfazer do seu conte´udo, ou seja, jogar no lixo.

Vejamos como ficaria esta estrutura intuitiva na figura abaixo.

Quais s˜ao as diferen¸cas sutis e importantes entre o microprocessador e o cozinheiro e suas an- ota¸c˜oes?

Bem, ´e que o microprocessador, por ser uma m´aquina limitada, n˜ao atende ao rico vocabul´ario do ser humano cozinheiro que, al´em de rico, ´e sofisticado, impreciso e de m´ultipla interpreta¸c˜ao, que s´o uma m´aquina inteligente como o homem entede ( vejamos o exemplo: para o homem as seguintes palavras s˜ao equivalentes: fazer = realizar = trabalhar. Para o microprocessador, o vocabul´ario ´e bem reduzido e espec´ıfico; n˜ao existem adjetivos, sinˆonimos, etec...).

Ent˜ao vimos que o microprocessador entende apenas algumas instru¸c˜oes b´asicas e se nos quisermos que ele fa¸ca alguma coisa precisamos estudar e compreender precisamente a sua linguagem e limitar-

Microprocessadores e Microcontroladores - 1aUnidade - Prof. Vitor Le˜ao Filardi

C o z i n h e i r o

Livro de Receitas

Complexa)

Escrevo

Leio

Ingredientes

Utensilios

HARDWARE SOFTWARE

So (Linguagem Leio

Folha de Rascunho

M i c r o p r o

c. (^) Especifica

Perifericos:

Etc....

HARDWARE SOFTWARE

So Linguagem Leio

Teclado,mouse (Programa de

WRITE

READ RAM (Dados)

ROM

Figura 1.1: Analogia da estrutura Intuitiva

se a ela para fazer a m´aquina trabalhar. Este ´e o ASSEMBLER do microprocessador, que ´e o seu conjunto de instru¸c˜oes.

1.2 Princ´ıpios B´asicos

1.2.1 Conceitos B´asicos da Computa¸c˜ao

Antes de iniciarmos o estudo de microcomputadores, vamos nos familiarizar com os termos t´ecnicos e saber o seu significado individualmente.

1.Bit: abrevia¸c˜ao de d´ıgito bin´ario (binary digit), que corresponde ao valor zero l´ogico(0) ou ao valor um l´ogico(1). Podemos fazer uma analogia ao sistema num´erico como sendo uma unidade de um valor qualquer.

2.Byte: representa¸c˜ao num´erica composta de 8 bits. Pode representar n´umeros de 00h(=0 10 ) a FFh(=255 10 ). Essa representa¸c˜ao ´e vastamente utilizada na representa¸c˜ao das instru¸c˜oes que o microcontrolador ´e capaz de executar. Novamente fazendo analogia, teremos o similaridade como as dezenas, centenas etc..., lembrando que em eletrˆonica digital corresponde como sendo uma palavra.

3.Registradores: conjunto de flip-flop, geralmente do tipo D que s˜ao interligados em paralelo entre si. Eles s˜ao respons´aveis pelo armazenamento de uma informa¸c˜ao que pode ter 8, 16, 32, 64 ou 128 bits, dependendo de quantos flip-flops do tipo D est˜ao interligados entre si. Os registradores apresentam caracter´ısticas vol´ateis e , quando eles s˜ao desenergizados, perdem suas informa¸c˜oes.

P´agina 8

Microprocessadores e Microcontroladores - 1aUnidade - Prof. Vitor Le˜ao Filardi

CPU

A CPU ´e respons´avel pela inteligˆencia da m´aquina, ou seja, ´e ela que tem a capacidade de tomar decis˜oes (a¸c˜oes) no sistema microcomputadorizado, por meio da execu¸c˜ao de um programa. ´E ela que executa o programa armazenado na mem´oria do microcomputador, que foi projetado por um progra- mador. Ao executar um programa, ela ´e respons´avel pela obten¸c˜ao das informa¸c˜oes a serem analisadas por meio de dispositivos de entrada (teclado, canal de comunica¸c˜ao serial etc.), pelo processamento (interpreta¸c˜ao, manipula¸c˜ao, ordena¸c˜ao, modifica¸c˜ao, c´alculos l´ogicos ou matem´aticos etc.) das in- forma¸c˜oes e pela resposta (a¸c˜ao) do sistema microcomputadorizado a uma determinada situa¸c˜ao de controle para a qual ele foi projetado a fim de controlar, por meio de um dispositivo de sa´ıda (escrita na mem´oria de v´ıdeo, transmiss˜ao de dados para outro microcomputador, acionamento de um rel´e, acionamento de um bip,etc.). Assim, por exemplo, um microcomputador projetado para funcionar como um caixa eletrˆonico de banco deve fazer as seguintes opera¸c˜oes: leitura das informa¸c˜oes conti- das no cart˜ao magn´etico (obten¸c˜ao de informa¸c˜oes), decodifica¸c˜ao da senha digitada no teclado pelo usu´ario, busca de saldo banc´ario nos bancos de dados do banco (processamento), disponibiliza¸c˜ao do saldo banc´ario no monitor de v´ıdeo e a impress˜ao em papel do referido saldo banc´ario (resposta do sistema por meio da a¸c˜ao de gerar informa¸c˜oes no monitor de v´ıdeo e tamb´em pela impress˜ao em papel das informa¸c˜oes organizadas solicitadas pelo usu´ario).

De maneira simplificada, pode-se dizer que a unidade de processamento central (microprocessador) apresenta duas fun¸c˜oes b´asicas:

a)Leitura (busca) e interpreta¸c˜ao do programa alocado na mem´oria, instru¸c˜ao por in- stru¸c˜ao: como o programa fica alocado na mem´oria do microcomputador, e n˜ao dentro do micro- processador/CPU, em primeiro lugar, o microprocessador precisa buscar as instru¸c˜oes, uma por uma, na mem´oria. Isso ´e feito por meio da opera¸c˜ao de leitura de um byte na mem´oria que corresponde a uma determinada instru¸c˜ao e depois ´e realizada a interpreta¸c˜ao da instru¸c˜ao lida (decodifica¸c˜ao), pois o microprocessador tem uma determinada quantidade de instru¸c˜oes que ele ´e capaz de executar. Dessa maneira, ele precisa verificar qual dessas instru¸c˜oes deve ser executada. Assim, ao finalizar essa etapa, o microprocessador/CPU sabe o que deve fazer. O pr´oximo passo ´e a execu¸c˜ao da in- stru¸c˜ao.

b)Execu¸c˜ao do programa, instru¸c˜ao por instru¸c˜ao: a palavra execu¸c˜ao de uma instru¸c˜ao pode significar a transferˆencia de dados dos registradores internos do microprocessador/CPU para a mem´oria ou para os dispositivos de entrada e sa´ıda, e vice-versa. Pode tamb´em significar a ex- ecu¸c˜ao de opera¸c˜oes l´ogicas e aritm´eticas etc.

Esse processo de buscar, interpretar e executar instru¸c˜ao por instru¸c˜ao ´e uma atividade cont´ınua do microprocessador e, dessa forma, um programa ´e processado por inteiro. A unidade de processamento central (microprocessador) ´e constitu´ıda por trˆes partes principais: a unidade l´ogica e aritm´etica, os registradores internos e o bloco de temporiza¸c˜ao e controle.

a)Unidade L´ogica e Aritm´etica (ULA): muitas vezes, tamb´em ´e chamada de ALU (Arithmetic Logic Unit). Ela ´e respons´avel, principalmente, pela execu¸c˜ao das instru¸c˜oes correspondentes as opera¸c˜oes aritm´eticas e l´ogicas. Al´em disso, uma caracter´ıstica muit´ıssimo importante que deve ser destacada, referentea ULA, ´e que, ao executar uma instru¸c˜ao de uma opera¸c˜ao aritm´etica ou l´ogica, ela tamb´em define a condi¸c˜ao num´erica do resultado por meio de alguns bits sinalizadores, chamados de flags de sinaliza¸c˜ao, tornando-os iguais a um (setando-os) ou tornando-os iguais a zero (resetando-os), e pela utiliza¸c˜ao de outras instru¸c˜oes que s˜ao ca- pazes de testar esses flags de sinaliza¸c˜ao. Isso faz com que o sistema microcomputadorizado possa gerenciar uma determinada situa¸c˜ao de projeto ou desempenhar uma determinada tarefa bem-definida.

b)Registradores internos: s˜ao compostos por m registradores de n bits interligados em paralelo entre si. Os valores m e n dependem das caracter´ısticas de cada microprocessador/microcontrolador P´agina 10

Microprocessadores e Microcontroladores - 1aUnidade - Prof. Vitor Le˜ao Filardi

(p. ex.: 32 registrado- res de 8 bits etc.). Como s˜ao formados por flip-flops, ´e poss´ıvel realizar opera¸c˜oes de leitura e escrita de informa¸c˜oes. Quando a CPU ´e ”desenergizada”por apresentar car- acter´ısticas vol´ateis, essas informa¸c˜oes s˜ao perdidas. Geralmente, eles s˜ao capazes de armazenar:

  • um byte se forem constitu´ıdos por registradores de 8 bits;
  • um duplo byte ou address ou word, se forem constitu´ıdos por registradores de 16 bits;
  • um duplo address ou duplo word, se forem constitu´ıdos por registradores de 32 bits etc.

Um microcomputador ´e chamado de microcomputador de 8 bits se ele for capaz de processar in- forma¸c˜oes de oito em oito bits por vez (opera¸c˜oes de movimenta¸c˜ao de informa¸c˜oes e opera¸c˜oes aritm´eticas e l´ogicas). Analogamente, para os microcomputadores de 16 e 32 bits, quanto maior for a quantidade de bits processados em paralelo por vez, maior ser´a sua capacidade de processamento. A unidade utilizada para medir a capacidade de processamento ´e o Mips (milh˜oes de informa¸c˜oes por segundo).

c)Bloco de temporiza¸c˜ao e controle: respons´avel pelo controle do fluxo de informa¸c˜oes do micro- processador para as unidades de mem´oria e para as unidades de entrada e sa´ıda. E esse bloco que´ define os sinais de controle de temporiza¸c˜ao para o sincronismo do fluxo de informa¸c˜oes no sistema microcomputadorizado (p. ex.: libera¸c˜ao de informa¸c˜oes da ULA para os registradores, mem´oria e unidades de entrada e sa´ıda etc.) por meio da defini¸c˜ao dos sinais de leitura (read), de escrita (write), de inicializa¸c˜ao do sistema (reset), de libera¸c˜ao dos barramentos de dados e endere¸cos, entre outros.

Unidades de Mem´orias As unidades de mem´orias s˜ao divididas em duas partes: mem´oria de armazenamento de programa e mem´oria de armazenamento de informa¸c˜oes (dados, bytes, bits etc.).

a)Mem´oria de armazenamento de programa: todo microcomputador deve ter uma ´area de mem´oria na qual ser´a armazenado o programa que definir´a as tarefas que o microcomputador / CPU deve executar. Esse programa define a fun¸c˜ao de um microcomputador e tamb´em diz ao mi- crocomputador, instru¸c˜ao por instru¸c˜ao, o que ele deve fazer ao longo do tempo. Esse programa deve ser implementado por um programador t´ecnico, conhecedor do hardware do sistema microcomputa- dorizado e das instru¸c˜oes do microprocessador. O microcomputador n˜ao funcionar´a se n˜ao existir um programa armazenado em sua mem´oria de programa. Assim, uma vez energizado o microcom- putador, esse programa ser´a buscado e executado pelo microprocessador. Esse programa define a caracter´ıstica funcional do microcomputador (p. ex.: operar como um forno de microondas, como uma m´aquina de lavar roupas ou como uma inje¸c˜ao eletrˆonica de autom´ovel etc.). Esse programa n˜ao pode ser perdido na ausˆencia de energia el´etrica, pois isso acarretaria a perda da funcionalidade desse microcomputador, para a qual foi projetado. Assim, o tipo de mem´oria em que esse programa deve ser armazenado ´e a mem´oria n˜ao-vol´atil.

b)Mem´oria de armazenamento de informa¸c˜oes: todo microcomputador deve ter uma ´area de armazenamento de informa¸c˜oes. Essa mem´oria deve permitir a escrita e a leitura de informa¸c˜oes. Para entender melhor, considere um microcomputador controlando uma determinada atividade. Caso existam informa¸c˜oes definidas pelo mundo externo por meio de chaves, sensores, teclados etc., elas devem ser lidas e armazenadas na mem´oria, para depois serem lidas novamente e analisadas (tratadas) pelo microprocessador por meio de um programa. Como exemplo, considere o aciona- mento das teclas do teclado de um microcomputador, ou seja, uma vez acionada uma tecla, a CPU dever´a ler a informa¸c˜ao que foi gerada pelo hardware associado a essa tecla e executar o armaz na- mento dessa informa¸c˜ao na mem´oria. Depois, dever´a fazer a leitura dessa informa¸c˜ao, a fim de analis´a-la (interpret´a- la), para verificar qual tecla foi acionada. Al´em disso, a informa¸c˜ao dever´a ser mostrada no monitor de v´ıdeo. Repare que foram necess´arias, nesse exemplo, v´arias opera¸c˜oes P´agina 11

Microprocessadores e Microcontroladores - 1aUnidade - Prof. Vitor Le˜ao Filardi

nem todos os microprocessadores/microcontroladores n˜ao trocam informa¸c˜oes diretamente com os dispositivos de entrada e saida.

4.Oscilador: E o elemento que gera o ”marcapasso”da CPU, que permite que o microprocessador´ realize as suas tarefas internas e externas de maneira sincronizada e com velocidade predetermi- nada.

5.Reset: E o elemento que faz a CPU iniciar suas rotinas internas e realizar tamb´´ em a primeira leitura de instru¸c˜ao no endere¸co 0000h.

6.Interrup¸c˜oes: S˜ao pinos de acesso externo que permitem interromper o microprocessador, que ent˜ao interrompe suas tarefas atuais e atende aquelas planejadas pela interrup¸c˜ao solicitada.

Microprocessador ou Nao−Volatil (ROM) Volatil (RAM)

Mem´oria

ou

E/S

Unidade Cental de I/O Processamento

Bus Endereco

BUS Dados

Oscilador

Reset

Interupcao

BUS de Temp. Controle

Figura 1.2: Arquitetura b´asica de um microprocessador

Como o computador s´o interpreta c´odigos bin´arios, n˜ao existe a necessidade que n´os programadores converse no mesmo n´ıvel, podemos utilizar os outros tipos de codifica¸c˜ao Octal, Hexadecimal, Deci- mal e por Nomes Simb´olicos, que representam uma instru¸c˜ao, como por exemplo: ”add”= ”Soma”= C´odigo Hexa 24 ou 00100100 em bin´ario (no exemplo, add=add A,#valor), para o microprocessador

  1. A CPU s´o entende d´ıgitos bin´arios, mas n´os a memorizarmos por ”add”, que ´e mais f´acil de se lembrar. Assim atrav´es de um software (interpretador) ir´a transformar este ”add”em 00100100, quando gravamos a ROM.

1.4 A CPU Internamente

Veremos algumas de suas funcionalidades mais importantes

a)Registradores: S˜ao equivalentes a uma RAM, s´o que interna a CPU. Servem para armazenamento tempor´ario de informa¸c˜oes de utilidade interna e externaa CPU. Existem registradores com fun¸c˜ao definida: por exemplo, aquele que ´e imagem ou espelho de uma porta de ”I/O”. O sinal na porta de I/O pode ser lido diretamente no registrador equivalente; por exemplo, a porta PO”tem um reg-¨ istrador imagem de ”PO”, cujo conte´udo ´e o reflexo do que h´a na entrada f´ısica dessa porta. Existem registradores de Fun¸c˜ao Geral, que podem ser acessados pelas instru¸c˜oes do Mp (microprocessador) e ainda podem ser conhecidos por nomes (registradores R0, R1 etc.) ou sem nomes (registradores 20h, 21h, etc.). P´agina 13

Microprocessadores e Microcontroladores - 1aUnidade - Prof. Vitor Le˜ao Filardi

b)Contador de Programa (Program Counter ou PC): E o indicador de endere¸´ co de mem´oria ex- terna. Ele serve para endere¸car a pr´oxima instru¸c˜ao a ser lida pelo Mp, a fim de que ela ”saiba”onde estava e para onde deve ir (ler nova instru¸c˜ao no pr´oximo endere¸co).

c)Registradores de Instru¸c˜ao (Instruction Register ou IR): E o local para onde se dirige o´ c´odigo da instru¸c˜ao que foi retirada da ROM por meio do endere¸co dado pelo PC no ciclo de busca (fetch) da instru¸c˜ao da mem´oria. O IR ´e necess´ario para que, depois da busca, um decodificador possa decodificar, ”abrir”a instru¸c˜ao e envi´a-la `a unidade de processamento (ALU-Aritmetic Logic Unit), a fim de que, neste local, ela seja ”executada”.

d)Unidade de Decodifica¸c˜ao (Decode Unit): E o local em que a instru¸´ c˜ao ´e decodificada, e tamb´em s˜ao gerados os controles que, junto com a Unidade de Controle, permitem executar a instru¸c˜ao na ALU.

e)Unidade L´ogica e Aritm´etica (ALU-Arithmetic Logic Unit): E o local em que s˜´ ao realizadas as opera¸c˜oes de: l´ogica, aritm´etica e decis˜ao/compara¸c˜ao. E o ”c´´ erebro”da m´aquina.

f)Acumulador (Accumulator): E um registrador principal e muito ”popular”, pois v´´ arias in- stru¸c˜oes se referem a ele para operar.

g)Unidade de Controle (Control Unit): E o local em que se processa o controle do fluxo das´ informa¸c˜oes a fim de realizar a instru¸c˜ao recebida.

Exemplo de Funcionamento: Suponha que o Mp foi ler uma instru¸c˜ao na ROM. Os seguintes passos ser˜ao dados:

1.O endere¸co de PC ´e posto na via de endere¸co (que ´e o endere¸co desta pr´oxima instru¸c˜ao a ser lida).

2.O sinal de controle da ROM, ´e ativado (pois vamos ler a ROM e n˜ao a RAM).

3.A instru¸c˜ao ´e lida da ROM, no endere¸co dado pelo PC (no caso, o endere¸co ”n”), e ´e lida pela via de dados. Estes trˆes itens correspondem ao ciclo de busca ou fetch.

4.A instru¸c˜ao ´e carregada e armazenada no IR (Registrador de Instru¸c˜oes).

5.O PC ´e incrementado para ler a pr´oxima instru¸c˜ao (apontar´a para ”n+1”).

6.Inicia-se outro ciclo, o de execu¸c˜ao interna da instru¸c˜ao, auxiliado pela Unidade de Controle e pelos registradores, decodificado pela Unidade de Decodifica¸c˜ao e executado pela ALU.

1.5 O Microcontrolador 8051

O 8051 ´e um microcontrolador r´apido com clock t´ıpico de 12 MHz sendo que existem vers˜oes de at´e 30 MHz, fornecidas por diversos fabricantes, e suas caracter´ısticas de hardware e software permitem us´a-lo como um poderoso controlador, sobretudo em sistemas para l´ogica seq¨uencial e combinat´oria. Entre as suas caracter´ısticas de hardware, podemos destacar:

1)2 Kbytes de mem´oria de programa (Flash)

2)128 Bytes de mem´oria RAM

3)Duas portas de I/O de 8 bits

4)Comparador de tens˜ao on-chip

5)Controlador de interrup¸c˜ao de 6 entradas com estrutura Nesting*

6)Canal serial UART Full-Duplex program´avel P´agina 14

Microprocessadores e Microcontroladores - 1aUnidade - Prof. Vitor Le˜ao Filardi

Figura 1.3: Organiza¸c˜ao Interna do 8051

pois 1 AND X resulta X, logo n˜ao alteramos os bits 7, 6, 4, 3, 2, 1 e 0. Mas temos que 0 AND X resulta 0, e desta forma zeramos o quinto bit.

Quando o sistema trabalha com bits, basta dar uma instru¸c˜ao do tipo ”zere o bit 5 na posi¸c˜ao N”e teremos efetuado a opera¸c˜ao, sem nos preocuparmos com os demais bits.

A parte baixa da mem´oria RAM interna (daqui a diante chamaremos apenas de RAM) est´a di- vidida em por¸c˜oes distintas, que incluem 4 bancos de registradores de 8 bytes cada, uma por¸c˜ao de 16 bytes cujos bits s˜ao individualmente endere¸c´aveis pela CPU e o restante da mem´oria, que somente pode ser endere¸cado byte a byte.

Os bancos de registradores s˜ao simples posi¸c˜oes de mem´oria RAM que permitem seu endere¸camento pelo nome dado a cada registro, al´em de seu endere¸camento pela posi¸c˜ao de mem´oria.

P´agina 16

Microprocessadores e Microcontroladores - 1aUnidade - Prof. Vitor Le˜ao Filardi

Figura 1.4: Organiza¸c˜ao da RAM Interna do 8051

A vantagem dos bancos de registradores est´a em seu uso pelo sistema, como ´ındice para en- dere¸camento e pela facilidade de lembran¸ca de seu nome, al´em de serem amplamente utilizados por compiladores de linguagem de alto n´ıvel.

Por exemplo, ´e mais f´acil lembrar que um certo dado est´a no registro R2 do que lembrar que o mesmo est´a na posi¸c˜ao 02 de mem´oria (Supondo Banco 0).

P´agina 17

Microprocessadores e Microcontroladores - 1aUnidade - Prof. Vitor Le˜ao Filardi

Endere¸cos Individuais dos bits Endere¸cos dos bytes 7F 7E 7D 7C 7B 7A 79 78 2F 77 76 75 74 73 72 71 70 2E 6F 6E 6D 6C 6B 6A 69 68 2D 67 66 65 64 63 62 61 60 2C 5F 5E 5D 5C 5B 5A 59 58 2B 57 56 55 54 53 52 51 50 2A 4F 4E 4D 4C 4B 4A 49 48 29 47 46 45 44 43 42 41 40 28 3F 3E 3D 3C 3B 3A 39 38 27 37 36 35 34 33 32 31 30 26 2F 2E 2D 2C 2B 2A 29 28 25 27 26 25 24 23 22 21 20 24 1F 1E 1D 1C 1B 1A 19 18 23 17 16 15 14 13 12 11 10 22 0F 0E 0D 0C 0B 0A 09 08 21 07 06 05 04 03 02 01 00 20

Tabela 1.2: Endere¸cos de Mem´oria endere¸cavel por byte e bit

Temos tamb´em alguns registros de fun¸c˜oes especiais que tˆem seus bits endere¸c´aveis, sendo que al- guns deles tˆem, inclusive, um nome mnemˆonico, para maior facilidade de desenvolvimento de software em compiladores.

Antes de estudarmos o mapa de mem´oria dos registros de fun¸c˜oes especiais, vamos estudar cada um deles em separado para melhor compreens˜ao do funcionamento interno do 89C2051.

Em seguida ao nome de cada registro, temos seu endere¸co em hexadecimal na RAM:

P1 (90) - Porta P

P3 (B0) - Porta P

S˜ao posi¸c˜oes da RAM que contˆem os dados das portas de I/O do micro, caso as mesmas sejam usadas como tal.

Uma escrita num desses registros altera automaticamente o conte´udo presente na sa´ıda do chip, e uma leitura dos mesmos coloca o estado presente nos pinos (ou nos latchs de sa´ıda, conforme veremos adiante) dentro da posi¸c˜ao desejada. Essa opera¸c˜ao ´e poss´ıvel devido aos buffers e latchs de cada porta, que s´o s˜ao ativos na leitura ou escrita das mesmas.

P´agina 19

Microprocessadores e Microcontroladores - 1aUnidade - Prof. Vitor Le˜ao Filardi

SP (81) - Stack Pointer

E um registrador de 8 bits que cont´^ ´ em o endere¸co de topo de uma ”pilha”realizada com os registradores, em que se acumulam endere¸cos de retorno, quando se trabalha com sub-rotinas e interrup¸c˜oes. Vocˆe pode EMPURRAR (PUSH) dados para a pilha (STACK) ou TIRAR (POP) dados da pilha (STACK).

A instru¸c˜ao PUSH incrementa o SP ”antes”de escrever os dados e a instru¸c˜ao POP lˆe o dado da pilha e ”depois decrementa”o SP. A pilha ´e formada inicialmente dentro da RAM interna quando se tem o RESET da m´aquina, e neste caso o SP ´e carregado com valor 07h. Isto ´e, qualquer dado a ser armazenado na pilha causar´a primeiro o incremento do SP, isto ´e, ir´a para 08h, e depois ser´a gravado o dado na pilha nesta posi¸c˜ao 08h. Isto ´e, ela estar´a ocupando a posi¸c˜ao 08h da RAM que ´e o registrador R0 do banco 1! Se vocˆe quiser utilizar esse banco e os outros seguintes, ´e melhor, logo de ´ınicio, carregar o SP com outro valor de ponteiro, a partir do qual ele ir´a formar a pilha.

TH1 (8D) - Timer High 1

TL1 (8B) - Timer Low 1

TH0 (8C) - Timer High 0

TL0 (8A) - Timer Low 0

S˜ao os registros de dados dos temporizadores/contadores (1 e 0 respectivamente). Contem os val- ores contados, no caso de usarmos as fun¸c˜oes desse importante perif´erico do 89C2051.

TCON (88) - Timer Control Register

TMOD (89) - Timer Mode Register

Registradores de controle e de modo de opera¸c˜ao dos temporizadores/contadores. E nestes reg-´ istros que efetuamos a programa¸c˜ao de como queremos que esses perif´ericos trabalhem. Vale lembrar que o 89C2051 possui dois temporizadores/contadores internos.

PCON (87) - Power Control

Este registro permite-nos adaptar o chip para situa¸c˜oes em que n˜ao h´a processamento, mas n˜ao desejamos perder o conte´udo das mem´orias internas do chip, como pode ocorrer numa falha da ali- menta¸c˜ao, assim podemos controlar o consumo de energia do sistema.

SCON (98) - Serial Port Control Register

SBUF (99) - Serial Buffer

No SCON, colocamos os bits que nos permitir˜ao trabalhar com a porta de comunica¸c˜ao serial con- forme desejamos, e o SBUF ´e o registro no qual a porta armazenar´a o dado recebido, ou escrevemos o dado a ser transmitido.

IE (A8) - Interrupt Priority

IP (B8) - Interrupt Enable

Estes registros permitem-nos escolher qual ou quais interrup¸c˜oes ser˜ao habilitadas (ou desabili- tadas) e qual a prioridade (maior ou menor) de cada uma.

P´agina 20