Barramento
CPU de Dados
Micropro
cessador
de RAM ROM Portas Timer Interface
propósito de I/O Serial
geral
Barramento de
Prof. Raimes Moraes Endereço
GpqCom – EEL
Vantagem: flexibilidade, sistema expansível ;
UFSC Desvantagem: custo, roteamento de placa e dimensões do circuito.
Microcontrolador
Microcontrolador
CPU + Periféricos
Periféricos:
1
4/5/2010
8051 Pinos
Interrupções Externas
ROM para
do
memória de
8051
Controle de Entradas
Interrupções programa RAM Timer 1
do
4 kib 128 bytes Timer 0
contador
CPU
Controle de
Barramento
4 Portas de Porta
OSC
I/O Serial
P0 P2 P1 P3 TxD RxD
Endereço/Dados
PSEN OE
EA
2
4/5/2010
P0 date INSTR
P1
74HC373 EPROM
80C51BH Latch
P0 date INSTR
P1
P3
ALE
P2
G
ADDR Exemplo de Leitura da Memória 74HC373 EPROM
EA
PSEN OE
de Programa Externa 80C51BH
EA Latch
ALE G ADDR
P2
P3
PSEN OE
CE
Interface do
RD WR
8051
DATA
Com
Memória de RAM
ADDR
Programa e DECODER
Dados
ADDR
Externas
CE
WR
RD
FFFFh:
MOV A,@Ri FFFFh:
MOV A,#data
EXTERNAL
MOV DPTR,#data16
EXTERNAL
Rn - registrador R0 a R7 do banco correntemente selecionado. XXXXh: RAM
3
4/5/2010
RAM INTERNA
FFh:
8052
SFR
MEMÓRIA
REGISTERS
00h:
20h
11 1Fh
18h 4 Banks of
10 17h
10h 8 registers
01 0Fh R0 - R7
08h
00 07h Reset Value of
00h Stack Pointer
END. CÓDIGO
Special Function Registers SUBROTINA
Exemplo 000A CALL 2028H
000D MOV A,B
1 Salva atual PC (000Dh) na pilha. (O
PC é atualizado ao obter o código
da instrução CALL da memória);
PILHA END. DADO
2 Sobrescreve PC com endereço da
subrotina; (PC = 2028H)
SP 07H
3 Executa subrotina;
4
4/5/2010
MOV R1,#3
Mnemônico Descrição MOV R3,#4
CJNE A, direct, <rel addr> Compara A e memória. Salta se INC @R1
não igual MOV A,@R1
CJNE A, #data <rel addr> Compara A e dado. Salta se não MOV DPTR,#MENS
igual
MOVC A,@A+DPTR
CJNE Rn, #data <rel addr> Compara Rn e dado. Salta se não
igual MOV DPTR,#20H
CJNE @Rn, #data <rel addr> Compara Rn e memória. Salta se MOVX @DPTR,A
não igual SJMP $
DJNZ Rn, <rel addr> Decrementa Rn e salta se não
zero MENS: DB '124567890ABCDE'
DJNZ direct, <rel addr> Decrementa memória e salta se
não zero END
5
4/5/2010
Temporizadores / Contadores
Interrupções Externas Registradores
TCON
MSB LSB
As interrupcões externas INT0 e INT1 podem ser ativadas
por nível ou borda. TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 88H
Depende dos bits IT0 e IT1 do registrador TCON. ITx - Interrupt control bit. 1 => borda de descida
0 => nível lógico baixo
Temporizadores / Contadores
Registradores
Interrupções
TCON
MSB LSB
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 88H
Interrupções
6
4/5/2010
Temporizadores / Contadores
Modos 0 e 1
TIMER 1 TIMER 0
reset equ 0h
Programação dos Timers ltmr0
state
equ 0bh ; local tratador
equ 20h
Temporizadores / Contadores
Modos 2
OSC /12
C/T=0
Tx PIN
TLx overflow
(8 bits) TFx
C/T=1
INTERRUPT
CONTROL
TRx
GATE
THx
(8 bits)
INTx PIN
TIMER 1 TIMER 0
7
4/5/2010
TR1 CONTROL
TH0 overflow
TF1
(8 bits)
OSC /12 INTERRUPT
C/T=0
T0 PIN
TL0 overflow
(8 bits) TF0
C/T=1
INTERRUPT
CONTROL
TR0
GATE
No modo 3,
Timer 0 implementa dois contadores de 8 bits.
INT0 PIN TR1 e TF1 são redirecionados para o Timer 0 (TH0)
Pin
DB25 DB9 Signal Name Direction
1 CD Chassis Ground -
2 2 TD Transmit Data DTE DCE
3 3 RD Receive Data DTE DCE
4 7 RTS Request To Send DTE DCE
5 8 CTS Clear To Send DTE DCE
6 6 DSR Data Set Ready DTE DCE
7 5 SG Signal Ground -
8 1 DCD Data Carrier Detect DTE DCE
20 4 DTR Data Terminal Ready DTE DCE
22 9 RI Ring Indicator DTE DCE
DTE
Conector Macho
8
4/5/2010
Conexões
Ideal
Handshaking
• Troca de sinais para estabelecer comunicação
condicional
• Processo
– Transmissor ativa RTS
Mínimo – Receptor detecta CTS por interrupção ou
polling
– Receptor ativa RTS
– Transmissor aguarda CTS
– Transmissor envia dados
1 0 2 ASSÍNCRONO - FD 11 Fclock/32
ou /64
1 1 3 ASSÍNCRONO - FD 11 Variável
9
4/5/2010
TB1 TB1
Read pin ⌦P0.x Read pin
8051 8051
1 output 0 0 M1
Write to latch Clk Q M1 Write to latch Clk Q
TB1 TB1
10
4/5/2010
Port 0
11