Вы находитесь на странице: 1из 61

Introduo a

microprocessadores e
microcontroladores
Professor: Davi Sabbag Roveri
Email: dsroveri@gmail.com
Curso: Eng. Eltrica / Eng. Controle e Automao
Disciplina: Microprocessadores e Microcontroladores

2015, 1 Sem

Sumrio aula 03
Famlia MCS-51
Caractersticas gerais e pinagem
Organizao e mapeamento da memria ROM e
RAM
SFR
Pilha
Kits didticos virtuais (MCU 8051 IDE e EdSim)
Exerccios

Famlia MCS-51

Famlia MCS-51

Famlia MCS-51: principais caractersticas


CPU de 8 bits
Otimizada para aplicaes de controle;
Processamento booleano
Incluindo lgica individual de bits;
16 bits de endereamento
64 K bytes para memria de programa;
64 K bytes para memria de dados;
Memria de dados de 128 bytes (on-chip)

Famlia MCS-51

Famlia MCS-51: principais caractersticas


32 linhas de E/S (portas P0, P1, P2 e P3)
8 bits cada; Individualmente endereveis;
Bidirecionais;
1 interface/porta serial
Temporizadores de 16 bits
Entradas de interrupo externa
Modos de economia de energia
Idle Mode e Power-Down Mode

Famlia MCS-51

Famlia MCS-51: principais caractersticas

Famlia MCS-51

Famlia MCS-51

Famlia MCS-51

Famlia MCS-51: principais caractersticas


Tabela com vrios modelos...

MCS-51
Organizao e mapeamento da
memria
(memory mapping)

Famlia MCS-51: Organizao da memria

Organizao da memria
Separao lgica da memria de programa e

memria de dados.

Famlia MCS-51: Organizao da memria

Memria de programa
At 64K bytes
Opo dos primeiros 0K, 4K, 8K ou 16K bytes

serem incorporados no prprio CI. (no AT89S52


teremos 8K bytes)
Sinal PSEN (Program Store Enable) Serve para
habilitar a sada da ROM, ou seja, permite a ela
escrever no barramento de dados no ciclo de
busca de instruo.
Sinal EA (External Access) Determina se ser
usada a ROM interna do chip ou a ROM externa.

Famlia MCS-51: Organizao da memria

Memria de programa
Utilizao dos pinos EA e PSEN:

Famlia MCS-51: Organizao da memria

Memria de programa - exemplo


Mapeamento completo (64KB) de ROM externa:

Famlia MCS-51: Organizao da memria

Memria de dados
RAM interna
RAM externa

Famlia MCS-51: Organizao da memria

Memria de dados (RAM interna)


Endereamento feito por 8 bits (00h FFh)
So
mais
rapidamente
manipulados
armazenados
Total de 256 bytes
Dividida em 2 blocos:
128 bytes superiores (80h-FFh)
128 bytes inferiores (00h-7Fh)

Famlia MCS-51: Organizao da memria

Memria de dados (RAM interna)


128 bytes inferiores/iniciais(00h-7Fh):
Todas as verses desta famlia possuem esta
regio
RAM de uso geral
Subdividida em 3 partes
4 bancos de 8 registradores (R0 R7)
8 bytes cada banco, 32 bytes no total
Faixa de 00h at 1Fh
Acesso direto: pelo nome de cada registro (R3)
Acesso indireto: endereamento pela posio de
memria (03h)

Famlia MCS-51: Organizao da memria

Memria de dados (RAM interna)


128 bytes inferiores:
Tabela com os

bancos de
registradores
Faixa de 00h at

1Fh
Primeiros 32 bytes

Famlia MCS-51: Organizao da memria

Memria de dados (RAM interna)


Seleo do banco se d pelos bits RS0 e RS1

do registrador especial PSW (Program Status


Word).
Ex: SETB RS1 e CLR RS0 = Seleciona o banco

02

Outros bits deste registrador sero detalhados

futuramente.

Famlia MCS-51: Organizao da memria

Memria de dados (RAM interna)


128 bytes inferiores/iniciais(00h-7Fh):
Na faixa de memria seguinte (20h 2Fh)
(aps a regio dos bancos de registradores)
Parte 2

Total

de 16 bytes cujos bits podem ser


individualmente endereveis pela CPU (instruo
do tipo: zere o bit 3 na posio XXh)

Famlia MCS-51: Organizao da memria

Memria de dados (RAM interna)


128 bytes inferiores:
Faixa de 20h at

2Fh
Total de 16 bytes

Famlia MCS-51: Organizao da memria

Memria de dados (RAM interna)


128 bytes inferiores/iniciais(00h-7Fh):
ltima faixa de memria (30h 7Fh)
Total de 80 bytes de armazenamento
Parte 3
Endereamento apenas por bytes
Sem caractersticas especiais
Regio apelidada de Memria de Rascunho

Famlia MCS-51: Organizao da memria

Memria de dados (RAM interna)


rea A
J estudada
So os 128 Bytes inferiores

rea D
Ser estudada a seguir
SFR
Existe em todos os membros da famlia MCS-51

rea I
Ser estudada a seguir
Chips com 128B de RAM no possuem esta rea
Existe apenas nos chips com 256B de RAM interna (xxx2)
reas A+I = 256 bytes

Famlia MCS-51: Organizao da memria

Memria de dados (RAM interna)


Faixa de endereos 80hFFh:
Mesma faixa de endereos, porm so entidades
separadas fisicamente.
rea D: Acessvel apenas por endereamento
direto.
rea I: Acessvel apenas por endereamento
indireto.
(rea
I)

(rea
D)

Famlia MCS-51: Organizao da memria

Memria de dados (RAM interna)


Faixa de endereos 80hFFh:
EXEMPLO:
Acesso indireto (rea I): escrever o
valor AAh no endereo 80h

Acesso direto (rea D): escrever o


valor AAh no endereo 80h

MOV R0, #80h


MOV @R0, #AAh

MOV 80h, #AAh

(rea
I)

(rea
D)

Famlia MCS-51: Organizao da memria

Memria de dados (RAM interna)


Faixa de endereos 80hFFh:
Localizao

dos

SFR

(Special

Function

Registers)
So acessados sempre por endereamento direto

ou atravs de seu nome / mnemnico


Possuem funes especficas dentro do chip
Alguns podem ser setados bit-a-bit e outros
apenas pelo byte.

Quais so os SFR?
P0, P1, ACC, DPTR, SP, PSW, SBUF, TMOD, etc...
Detalhados futuramente.

Famlia MCS-51: Organizao da memria

Memria de dados (RAM interna)


Faixa de endereos 80hFFh:
Exemplos de instrues:
MOV A, 80h carrega o acumulador com o contedo do

registrador especial 80h (Porta P0)


MOV R0, #80h carrega R0 com o valor 80h
MOV A, @R0 carrega o acumulador com o contedo da

posio de memria endereada por R0 (ou seja, carrega o


valor encontrado no endereo 80h)- como endereamento
indireto, est acessando a rea I e no P0.

Famlia MCS-51: Organizao da memria

Memria de dados (RAM interna)


RESUMO

Famlia MCS-51: Organizao da memria

Memria de dados (RAM externa)


Endereamento feito por 16 bits (0000h

FFFFh)
Total de at 64K bytes de armazenamento

Famlia MCS-51: Organizao da memria

Memria de dados (RAM externa)


Uso do registrador de funo especial DPTR

(Data Pointer), composto por 16 bits


Formado pelos registradores especiais de 8 bits
DPH (83h) e DPL (82h)

Como utiliz-lo?
Instruo MOV (manipulao dos registradores
internos e memria RAM interna)
Instruo MOVX (acesso memria externa)

Famlia MCS-51: Organizao da memria

Memria de dados (RAM externa)


Exemplos de instrues:
Armazenar 3Fh na posio 34CBh
MOV DPTR, #34CBh carrega DPTR com o valor do

endereo a ser acessado.


MOV A, #3Fh carrega o acumulador com valor a ser
armazenado.
MOVX @DPTR, A move o valor do acumulador para a
posio apontada por DPTR.

Ler o contedo da posio 13F4h


MOV DPTR, #13F4h
MOVX A, @DPTR

Famlia MCS-51: Organizao da memria

Mapeamento de E/S
Mapeamento

de

interfaces

de

E/S

como

memria
Endereamento da E/S obtido da mesma
maneira como para os endereamentos de
memria
Cada interface ou perifrico dever ter um
endereo
Mapeamento por intermdio de decodificadores
externos (exemplo: CI 74138)

SFR (Special Function Registers):


Tabela com nomes, mnemnicos e
endereos

Tabela dos SFR: Nomes, Mnemnicos, Endereos

Tabela dos SFR

Tabela dos SFR: Nomes, Mnemnicos, Endereos

Tabela dos SFR

Tabela dos SFR: Nomes, Mnemnicos, Endereos

Tabela dos SFR

SFR: Portas

SFR: Portas

Portas P0, P1, P2 e P3


Posies da RAM interna que contm os dados

das portas de E/S do microcontrolador


Funciona como espelho

Uma

escrita
nestes
registros
altera
automaticamente o contedo na sada do chip
A leitura coloca o estado presente nos pinos do
chip dentro da posio (registrador) desejada
Viabilizado atravs de buffers e latches de cada

porta

SFR: Portas

Portas P0, P1, P2 e P3


Portas bidirecionais, de E/S, de 8 bits
P0:
Barramento de endereos menos significativos
Multiplexa com o barramento de dados

P1:
Propsito geral de E/S
Chips com o terceiro timer comprometem os

pinos P1.0 e P1.1


Chips com A/D interno comprometem 1 pino por
canal do A/D utilizado

SFR: Portas

Portas P0, P1, P2 e P3


P2:
Barramento de endereos mais significativos
Propsito geral de E/S (caso nenhuma memria

RAM/ROM/EEPROM externa seja utilizada)

P3:
Utilizado

como

interface

para

os

perifricos

externos
Propsito geral de E/S (caso no seja utilizado
nenhum outro perifrico, interrupes externas e
RAM externa)

SFR: Portas

Comprometimento da P3

SFR: Portas

Comprometimento da P3

SFR: SP (Stack Pointer / Ponteiro da


Pilha)

SFR: SP (Stack Pointer / Ponteiro da Pilha)

Pilha
Regio da RAM interna onde so armazenados

os endereos de retorno das sub-rotinas.


Conforme

sub-rotinas ou interrupes so
chamadas, o endereo de retorno para aquele
mesmo trecho de cdigo empilhado
sequencialmente.

Estrutura de dados do tipo LIFO (Last In First

Out).
til para a CPU saber para onde voltar aps

terminar o tratamento de uma interrupo

SFR: SP (Stack Pointer / Ponteiro da Pilha)

Stack Pointer SP (81h)


Registrador de 8 bits
Contm o endereo de topo da pilha (ou seja,

ltimo endereo de retorno adicionado)


PUSH: a instruo incrementa SP antes de
escrever/adicionar dados na pilha
POP: a instruo l o dado da pilha e somente
depois decrementa SP
O SP tambm indiretamente manipulado pelas

instrues: CALL e RET (Return)

SFR: SP (Stack Pointer / Ponteiro da Pilha)

Stack Pointer SP (81h)


Inicialmente, SP aponta para a posio 07h
Condio de pilha vazia
Armazenamento do 1 dado ser na posio

08h
Pode gerar condio de conflito, pois o endereo

do registrador R0 do banco 1!

Para que os demais bancos de registradores

possam ser usados, o SP deve ser inicializado


em outra posio da RAM
Por exemplo: MOV SP, #30h posio 30h o

incio da memria de rascunho (ltima faixa de


endereos da RAM interna)

SFR: SP (Stack Pointer / Ponteiro da Pilha)

Stack Pointer SP (81h) EXEMPLO


Inicializao do SP na posio 1Fh:

Kits Didticos Virtuais

Kits Didticos Virtuais

EdSim51 Caractersticas gerais


Link: http://www.edsim51.com/
Freeware
Perifricos virtuais:
ADC, DAC, Comparador, UART, Barra com 8 LEDs
8 chaves
Teclado 4x3
4 displays de 7 segmentos multiplexados
Motor DC

Baseado em Java

Kits Didticos Virtuais

EdSim51- Site

Kits Didticos Virtuais

EdSim51- Interface

Kits Didticos Virtuais

EdSim51- Interface

Kits Didticos Virtuais

MCU 8051 IDE Caractersticas gerais


Link: http://www.moravia-microsystems.com/mcu-8051-ide/
Freeware (apenas para Linux)
Interface mais agradvel
Mais funcionalidades
Maior lista perifricos virtuais
Suporta linguagem C

Kits Didticos Virtuais

MCU 8051 IDE Site

Kits Didticos Virtuais

MCU 8051 IDE Interface

Kits Didticos Virtuais

MCU 8051 IDE Interface: Perifricos

Kits Didticos Virtuais

MCU 8051 IDE Interface: Perifricos

Exerccios

Exerccios

Exerccios
1) Considere uma tabela com 50 elementos de 8 bits. A tabela

est armazenada na memria de programa, com incio no


endereo 1000h. Escreva uma sequncia de instrues que
carregue o nono elemento da tabela no acumulador.
2) Escreva uma sequncia de instrues para adicionar o

contedo das posies de memria 30h e 40h. O resultado


deve ser deixado no acumulador.
3) Faa um programa que transfira um dado armazenado na

RAM externa, na posio 1200h, para a posio 30h da RAM


interna.

Exerccios

Exerccios - Respostas
1)
MOV DPTR, #1000h
MOV A, #8h

; carrega o endereo base no DPTR


; carrega o valor 8h no acumulador
MOVC A, @A+DPTR
; acessa o contedo do endereo dado por
A+DPTR e o copia para o acumulador.

2)
MOV

A, 30h
; carrega o contedo do endereo 30h no
acumulador (endereamento direto).
ADD A, 40h ; soma o contedo do endereo 40h ao contedo do
acumulador. O resultado deixado no acumulador.

3)
MOV DPTR, #1200h ; carrega DPTR com o endereo 1200h
MOVX A, @DPTR ; move o contedo do endereo para A
MOV 30h, A

; transfere o valor do acumulador para a posio 30h


da RAM interna.

Dvidas ... ?

Obrigado

Вам также может понравиться