MICROCONTROLADORES
Ps-graduao
em
Automao Industrial
Prof. Msc. Rogrio Malta Branco
Microcontroladores
Parte I Definies gerais bsicas
Parte II Microcontrolador 8051
Parte III Aplicaes prticas com 8051
Parte IV Comparativos entre famlias
PARTE I
Definies gerais bsicas
Parte I
1.
2.
3.
4.
5.
6.
Introduo
Reviso de conceitos bsicos
O sistema microprocessado
O microcontrolador
Arquiteturas bsicas
Filosofias R.I.S.C e C.I.S.C.
Referncias bibliogrficas:
Mini-curso Saber jan/2001
Nicolosi
Vidal
Paixo
PARTE I - Introduo
Representao da informao
(sistemas de numerao)
2.
3.
Aritmtica binria
Lgica combinacional
(somadores, subtratores
subtratores,, codificadores, decodificadores)
4.
Lgica seqencial
(flip
flip--flops
flops,, registradores)
5.
Memrias
(RAMs
RAMs,, ROMs
ROMs))
Definio
Partes fundamentais
Leitura sugerida:
sugerida Mini-curso Saber
Microcontrolador 8051 detalhado
Aplica. Prticas 8051 (Vidal)
Sist. P - Definio
Tem como propsito executar uma tarefa
especfica gravada em sua memria de cdigo
ROM, e em geral comunica-se com o mundo real
para obter informaes do sistema que est
inserido e tambm poder atuar sobre ele.
uma mquina sequncial e sncrona,
necessitando de sinais de clock para funcionar.
cpu,
PARTE I O C
1.
2.
3.
4.
Definio
Diferenas entre P e C
Propsito de aplicao
Comparativos com a lgica fixa
O C - Definio
O microcontrolador conhecido como
microcomputador de um s chip , pois rene
num nico componente vrios elementos de um
sistema, antes baseado em microprocessador e
que
eram
desempenhados
por
vrios
componentes independentes tais como RAM,
ROM, comunicao serial, etc.
O C - Diferenas entre P e C
O hardware interno do C diferente, ou
seja, tem mais funes que o do P.
importante enfatizar que, para a maioria
das aplicaes, necessita -se, alm do chip do
P, da ROM, do latch (bus demux), da
adapta o serial, etc...
A figura a seguir ressalta algumas
diferenas: mostra um C e indica neste as
partes correspondentes a um P .
O C - Diferenas entre P e C
O P o chip que cont m: IR, PC, ALU, INT, etc.
O C inclui num s chip, o P, TIMER, SERIAL, e um
pedao da RAM e/ou ROM.
Existem Cs que
englobam ainda uma ROM
ou EPROM dentro do chip,
ento no tem-se nada
fora. Esta uma real
utilizao do C, ou seja,
um chip s com tudo
integrado.
O C Propsito de aplicao
Controlar um processo industrial, servir de interface homemmquina, controlar um terminal bancrio, controlar uma impressora,
um brinquedo, atuar junto a sensores no sistema de injeo de
combustvel de um motor, etc.
Von-Newmann
Harvard
Leitura sugerida:
sugerida Saber 360 Comparativo
Tcnico Parte I
Von-Newman
Nesta arquitetura, os barramentos de dados e
endereos so compartilhados entre memrias de
programas e dados.
Internamente, s existe um barramento por onde
trafegam dados e instrues.
Harvard
Apresenta barramentos de dados e endereos
distintos , assim enquanto uma instruo executada,
outra buscada da memria de programa. Este sistema
de busca/execuo tambm conhecido como
PIPELINE.
Internamente tem-se barramentos distintos para
dados e instrues.
CISC
RISC
Leitura sugerida:
sugerida Saber 360 Comparativo
Tcnico Parte I;
Desbravando o PIC;
Mini-curso Saber
C.I.S.C.
A filosofia COMPLEX INSTRUTION SET
COMPUTER baseia-se em quanto maior a complexidade
da instruo, mais espao ela ocupar no chip.
Ter um complexo set de instrues C.I.S.C. nem
sempre interessante, pois pode comprometer o
desempenho do processador.
A IBM avaliou que de 200 instrues disponveis
em um dado set, apenas 35 eram comumente usadas.
Muitas podiam ser implementadas por meio de outras,
surgindo assim a filosofia R.I.S.C.
R.I.S.C.
A REDUCED INSTRUCTION SET COMPUTER
baseia-se em um SET reduzido de instrues, muito
menos que os microcontroladores da filosofia CISC.
Apresenta a vantagem de ter um aprendizado
muito mais din^mico das instru~es e a desvantagem de
ter de construir muitas funes por no existir uma
instruo direta, o que implica em maior habilidade do
programador.
PARTE II
Definies gerais bsicas
Parte II
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Introduo
Arquitetura interna
Descrio externa
Organizao das memrias
O Reset
Os Ports de I/O
Instrues Assembly
Interrupo
Timers/counters
Canal serial
Referncias bibliogrficas:
Mini-curso Saber jan/2001
Nicolosi
Vidal
Aplication notes Atmel
Parte II - Introduo
No incio da dcada de 80, a Intel lanou o 8051,
fruto de uma evoluo da j existente famlia MCs 48.
Inicialmente existiam: 8051, com ROM interna
programvel de fbrica; 8751, com EPROM interna
programvel pelo usurio; 8031, com a necessidade de ter
chips de EPROM externamente.
Aps, a linha expandiu-se para os modelos: 8052,
com um Timer a mais que o 8051; 8752, com EPROM
interna; 8032, sem ROM/EPROM interna. Surgiu ainda o
8052 basic, com um interpretador basic interno, que
permite a programao em basic.
65 535d
ROM
EXT.
4096d
4095d
PSEN
ROM
EXT.
ROM
INT.
0000d
0000d
Pino EA = 1
Pino EA = 0
ou
PSEN
255d
65 535d
SFRS
128d
127d
RAM
EXT.
USO
GERAL
RD
WR
00d
00d
Exterior ao C
FFFFh
*ROM/EPROM
EXTERNA
*RAM
EXTERNA
PSEN libera
esta memria.
RD e WR
Liberam esta
mem. para
escrita/leitura.
RAM
INTERNA
* 64K Mx.
* 64K Mx.
MOV
MOVC
MOVX
00FFh
0000h
SFRS
128d
127d
USO
GERAL
00d
255d
SFRS
128d
127d
00d
MOV A, P1
BIT enderevel:
USO
GERAL
SETB 7Fh
CLR 09h
255d
SFRS
MOV A, P1
128d
127d
00d
BIT enderevel:
USO
GERAL
SETB P3.7
SETB B7h
CLR P1.0
E7
E6
E5
ACC7
ACC6
ACC5
E4
E3
ACC4 ACC3
E2
E1
E0
ACC2
ACC1
ACC0
Nome: B
End. Bit:
F7
F6
F5
F4
F3
F2
F1
F0
Nome: P0
End. Bit:
87
86
85
84
83
82
81
80
P0.7
P0.6
P0.5
P0.4
P0.3
P0.2
P0.1
P0.0
D7
D6
D5
D4
D3
D2
D1
D0
PSW.7
PSW.6
PSW.5
PSW.4
PSW.3
PSW.2
PSW.1
PSW.0
CY
AC
FO
RS1
RS0
OV
RS0
BANCO
SMOD
GF1
GF0
PD
IDL
Parte II O Reset
O RESET do microcontrolador um pino
fsico do chip, chamado RST.
Deve haver um circuito no referido pino
para que, no ligamento do chip, tenha-se estado
lgico 1, ao menos por dois ciclos de mquina. A
este circuito d-se o nome de Reset automtico
na energizao. Assim, pode-se garantir que o
chip ser iniciado sempre da mesma forma.
importante que exista, um boto para se
forar o Reset quando necesrio .
Parte II O Reset
Parte II O Reset
Program counter
PC
0000H
ACC
00H
Registrador B
00H
Stack Pointer
SP
07H
PSW
00H
Data Pointer
DPTR
0000H
P0,, P1
P0
P1,, P2
P2,, P3
P0..
P0
..P3
P3
FFH
Interrupt Enable
IE
Interupt Priority
IP
TH e TL
00H
Timer Control
TCON
00H
Timer Mode
TMOD
00H
Serial Comunication
SCON
00H
Serial Buffer
SBUF
XXH
Power control
PCON
Ram ao ligar
INDEFINIDO
NO ALTERA
Acumulador
TH e TL
Ex: mov A, P1
orl A,#11111110b
Funo exemplo
INC
INC P1
DEC
DEC P3
CPL
CPL P1
JBC
JBC P1.0,#XX
DJNZ
DJNZ P1,#XX
ANL
ANL P0,A
ORL
ORL P0,A
XRL
XRL P1,#XX
MOV R4,A;
MOV A, R2;
DEC R2;
XRL A,R1;
XCH A,R6;
CJNE R5, #33, VOLTA;
(R4 <= A)
(A <= R2
R2))
(R2 <= R2 - 1)
(A <=A XOR R1
R1))
(A<=R6
A<=R6;; R6<=A
R6<=A))
(Compara R5 c\ 33d e salta
para VOLTA se no igual.
Se igual, segue)
MOV A, 77H;
(A <= cont. end 77H)
MOV 40H,A;
(end. 40h <= A)
MOV 40H, 45H; (end. 40h <= cont. end. 45h)
ADD A,55H;
(A <= A + cont. end. 45h)
ANL A,55;
(A <= A AND cont. end. 55d
55 d)
DEC P1; (Decrementa o registrador P1)
MOV A,#25H;
MOV A, #00100101B;
MOV DPTR,#1FFFH ;
ORL A,#67H;
(A <= 25H)
(A <= 00100101B)
(DPTR <= 1FFFH)
(A <= A OR 67H)
0100 03H
SJMP 03H;
0101 --ROM
INTERNA
Cdigo de
SJMP 03H
PC
PC = PC+03H
----
01FFH NOP;
0200H RET;
----
9FFFH NOP;
9200H RET;
Parte II - Interrupo
A interrupo um evento externo ou interno que
obriga o C a suspender temporariamente suas atividades,
a fim de atender e este evento que o interrompeu.
Aps atendida a interrup o, o C desvia-se
novamente e exatamente para onde estava antes de ter
sido interrompido.
Sempre ao t rmino do atendimento de uma
interrupo necessrio a presen da instruo RETI.
Parte II - Interrupo
Propriedades da Interrupo.
Vetorada ou No- vetorada: Quando ocorre a interrupo, o C deve
dirigir-se para o endereo da interrup o solicitada. Quando este fixo, dizse que a interupo vetorada caso do 8051, com endereos pr-definidos
para cada interrup o. Caso contrrio, no-vetorada, e o programador deve
definir o endereo de atendimento da interrup o.
Mascaramento: Capacidade de permitir ou no que certo dispositivo o
interrompa.
Prioridade: Caso o sistema esteja habiliado a atender mais de uma
interrup o, deve-se a sequncia de prioridades, onde o C saber como agir.
Origem: Pode ser interna ao chip ou externa.
Tipo de disparo: De propriedade externa ao chip, pode-se programar
o chip para ser interrompido externamente por nvel (0 ou 1) ou borda (subida
ou descida).
Parte II - Interrupo
Interrupes no 8051:
No-mascarvel : Reset
Mascarvel : int0, int1, timer0, timer1, serial
Tipo
RESET
EXT. RST
0000h
INT0
EXT. P3.2
0003h
TIMER/COUNTER 0
Int. Perif .
000bh
INT1
EXT. P3.3
0013h
TIMER/COUNTER 1
Int. Perif .
001bh
SERIAL
Int. Perif .
0023h
TIMER/COUNTER 2
Int. Perif .
002bh
Prioridade natural
Interrupo
Parte II - Interrupo
Como programar as interupes:
Interrupt Enable (IE) : Byte de habilitao de interrupes;
EA
ET2
ES
ET1
EX1
ET0 EX0
PT2
PS
PT1 PX1
PT0 PX0
TR1 TF0
TR0
IE1
IT1
IE0
IT0
Parte II - Interrupo
Funcionamento do sistema de interurpo do 8051
(ET2)
(PT2)
Parte II - Interrupo
Exemplo de uso das interrupes:
Programar IE, IP e TCON de modo a:
Soluo:
1) Observar a ordem natural das prioridades;
INT0, T/C0, INT1, T/C1, SER
Prioridade
INT 1(N)
T/C 1
INT 0(B)
Parte II - Interrupo
TCON:
IE:
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
FLAG
FLAG
EA
ET2
ES
ET1
EX1
ET0
EX0
IP:
PT2
PS
PT1
PX1
PT0
PX0
Parte II Timers/Counters
Os Timers/counters so perifricos internos ao
microcontrolador. uma unidade autnoma , que poderia
ser um chip separado. No 8051, tipicamente existe dois
destes perifricos.
Nada mais so do que flip-flops configurados em
divisores por 2, em cascata. No final dos n estgios,
existe um flag que indica o estouro, ou overflow da
contagem.
Quando l pulsos externos, funciona como
contador. Quando l os pulsos gerados por clock
interno (dividido por 12), est operando como timer.
Parte II Timers/Counters
Modos de trabalho do Timer/counter
Os
dois
T/Cs
podem
ser
configurados
separadamente em at 4 modos diferentes de
funcionamento.
Modo 0: Capacidade mx. 13 bits (8 + 5 pr-scaler)
Modo 1: Capacidade mx. 16 bits (8 + 8)
Modo 2: Capacidade mx. 08 bits c\ autocarga
Modo 3: Misto, a ser definido mais tarde.
So utilizados os SFRs:
TCON, TMOD, TH0, TL0, TH1, TF1
Parte II Timers/Counters
Modo 0 13 bits (8 + 5 pr-scaler)
TCON:
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
(CONTROLE)
TMOD:
(CONFIGURAO)
GATE
C/T
M1
T/C1
M0
GATE
M1
M0
C/T
M1
T/C 0
M0
Parte II Timers/Counters
Modo 1 16 bits
TCON:
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
(CONTROLE)
TMOD:
(CONFIGURAO)
GATE
C/T
M1
T/C1
M0
GATE
M1
M0
C/T
M1
T/C 0
M0
Parte II Timers/Counters
Modo 2 (8 bits com autocarga)
TCON:
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
(CONTROLE)
TMOD:
(CONFIGURAO)
GATE
C/T
M1
T/C1
M0
GATE
M1
M0
C/T
M1
T/C 0
M0
Parte II Timers/Counters
Modo 3 (8 bits misto)
O T/C 0 divide-se em
2 contadores de 8
bits.
T/C 0 em modo 3 =>
T/C 1 qquer outro
modo, mas no gera
interrupo.
Os flags TF e TR
so emprestados do
T/C 1 para este
modo.
Parte II Timers/Counters
O bloco liga-desliga
Parte II Timers/Counters
Observaes: tempos curtos / tempos longos
Cada instru o demanda, pelo menos, 1s
de tempo de execuo, logo, contar tempos de 2
s com 12MHz aprox., por exemplo , implicam em
no empregar os T/C s.
Se o tempo desejado for superior a 65ms
(modo 1 quase ao m x., para 12MHz), j deve-se
utilizar tamb m , um contador por software . Ele
poder, por exemplo , decrementar um registrador
a cada estouro de 65ms.
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
Recep. Enabled
Recep. Enabled
Recep. Enabled
Recep. Enabled
MODO
SM0
SM1
COMUNICAO
SIZE
TAXA
8 BITS
F OSC/12
8 BITS
VAR.
9 BITS
Fosc/32 ou Fosc/64
9 BITS
VAR.
PARTE III
Aplicaes prticas com 8051
Parte III
1.
2.
3.
4.
5.
6.
Ports de IO
Timers/Counters
Conversor AD
LCD
Expanso de IO
Serial
Referncias bibliogrficas:
Nicolosi
Vidal
Paixo
Desl. A p\
direita
S
CH = 1 ?
P1 = A
DELAY
Desl. A p\
esquerda
;label
instr operandos
mov TMOD,#00010001b
mov TCON,#0h
clr led0
clr led1
clr led2
clr led3
clr led4
clr led5
clr led6
clr led7
esp:
inv:
delay:
delay:
rep::
rep
mov a,#1
mov p1,a
lcall delay
jnb ch1, inv
rl a
sjmp esp
rr a
sjmp esp
mov r0
r0,#14
,#14
mov th1
th1,#07h
,#07h
mov tl1
tl1,#53h
,#53h
setb tr1
jnb tf1
tf1,$
,$
clr tf1
djnz r0
r0,,rep
clr tr1
ret
end
PARTE IV
Comparativos entre famlias
Parte IV
1.
Introduo
Referncias bibliogrficas:
Nicolosi
Vidal
Paixo