Académique Documents
Professionnel Documents
Culture Documents
C Dispositivo semicondutor que integra todas as partes bsicas de um microprocessador e ainda, memrias voltil e no voltil, pinos para entrada e sada de dados, conversores, timers, interface serial etc... conforme modelo e fabricante. Exemplos: 80C51, PIC e COP8.
1.1 Estrutura de hardware bsica do 8051 O diagrama simplificado abaixo ilustra os componentes de hardware que compe o 8051. Os microcontroladores diferem basicamente na capacidade e tipos de memrias, na quantidade de pinos de I/O, na velocidade de operao, e em caractersticas disponibilizadas pelos diversos fabricantes. Alguns fabricantes do 8051 so a ATMEL, TEMIC, PHILLIPS e RAMTRON.
External Interrupt Timer 1 Interrupt Control ROM 256 Bytes RAM Timer 0
Counter Inputs
BUS
CPU
OSC
BUS Control
4 I/O Ports
Serial Port
TXD P0 P2 P1 P3
RXD
Address / Data
1.2 Pinagem
1 2 3 4 5 6 7 8 9 (DIP)
40 Vcc 39 P0.0 38 P0.1 37 P0.2 36 P0.3 35 P0.4 34 P0.5 33 P0.6 32 P0.7 31 EA 30 ALE 29 PSEN 28 P2.7 27 P2.6 26 P2.5 25 P2.4 24 P2.3 23 P2.2 22 P2.1 21 P2.0
Corner P1.3 P1.2 P1.0 43 P0.0 42 P0.1 41 P0.2 40 P0.3 39 P0.4 38 P0.5 37 P0.6 36 P0.7 (PLCC) 35 EA 34 NC 33 ALE 32 PSEN 31 P2.7 30 P2.6 29 P2.5 WR P3.6 18 RD P3.7 19 XTAL2 20 XTAL1 21 Vss 22 NC 23 P2.0 24 P2.1 25 P2.2 26 P2.3 27 P2.4 28 P1.4 P1.1 44 Vcc
7 8 9
Rst 10 RXD P3.0 11 NC 12 TXD P3.1 13 INT0 P3.2 14 INT1 P3.3 15 T0 P3.4 16 T1 P3.5 17
RXD P3.0 10 TXD P3.1 11 INT0 P3.2 12 INT1 P3.3 13 T0 P3.4 14 T1 P3.5 15 WR P3.6 16 RD P3.7 17 XTAL2 18 XTAL1 19 Vss 20
O quadro na prxima pgina fornece uma descrio das funes dos pinos, observe que os pinos da porta 3 alm de serem utilizados como pinos de I/O tambm possuem funes especiais conforme descrito abaixo: P3.0 pino 10 Recepo de dados seriais (RX). P3.1 pino 11 Transmisso de dados seriais (TX). P3.2 pino 12 Interrupo externa 0, INT\0. P3.3 pino 13 Interrupo externa 1, INT\1. P3.4 pino 14 Entrada externa para T/C0 (T0). P3.5 pino 15 Entrada externa para T/C1 (T1). P3.6 pino 16 Strobe de escrita na memria de dados externa (WR). P3.7 pino 17 Strobe de leitura na memria de dados externa (RD).
NC
Pino 1a8
Descrio
P1, porta bidirecional de 8 bits com pinos endereveis individualmente e com resistores de pull-up internos, forando nvel lgico alto quando utilizados como entrada e no estiver nenhum nvel lgico presente. Quando aplicado nvel lgico 1 durante dois ou mais ciclos de mquina ocorre o reset do C. Um resistor in9 terno de pull-down permite colocar apenas um capacitor externo para obter o reset por power-on (ao ligar). 10 a 17 P3, porta bidirecional de 8 bits com pinos endereveis individualmente e com resistores de pull-up internos, possuindo tambm funes especiais. 18 Sada do amplificador inversor do oscilador. 19 Entrada do amplificador inversor do oscilador. 20 Terra 21 a 28 P2, porta bidirecional de 8 bits com pinos endereveis individualmente e com resistores de pull-up internos, tambm usada para acesso parte mais significativa da memria externa (A8...A15). 29 PSEN\ Habilita o acesso memria de programa externa durante a busca de instrues. Permanece em nvel lgico 1 durante o acesso da memria de programa interna. 30 ALE Fornece o sinal para armazenamento da parte menos significativa do endereo durante o acesso s memrias externas de programa ou dados. 31 EA\ Quando em nvel lgico 1 executa instrues a partir da memria de programa interna e quando em nvel 0 a partir da memria de programa externa. 32 a 39 Porta bidirecional de 8 bits com pinos endereveis individualmente e com dreno aberto, fornece tambm a parte menos significativa multiplexada de acesso memria externa (AD0...AD7). 40 VCC
1.3 Principais caractersticas de hardware: CPU de 8 bits; 32 linhas de I/O bidirecionais e individualmente endereveis; 256 bytes de RAM; Dois contadores/temporizadores programveis de 16 bits; Interface serial full-duplex; Estrutura de interrupes com 5 fontes; Gerador de clock; Capacidade de endereamento externo de at 64Kbytes.
MCS-51 P0 P1 __ EA
EPROM Q0...Q7
A figura acima ilustra o 8051 implementado como sistema mnimo, ou seja, o mnimo de HW externo necessrio ao seu funcionamento. Note que o pino EA\ ligado ao GND, indica que o modelo utilizado no possui ROM interna, portanto far a leitura das instrues do programa a ser executado a partir da ROM externa, que no caso uma EPROM. O pino ALE habilita o latch que pode ser um 74HC373 de modo a separar a parte baixa dos endereos quando o microcontrolador estiver lendo a EPROM. O pino PSEN\ habilita o pino OE\ para que a memria esteja pronta para leitura. A porta P0 enderea a parte baixa dos endereos enquanto a P2 enderea a parte alta. Na pgina seguinte um diagrama mais detalhado mostra o circuito de reset e o circuito de clock, que so fundamentais ao funcionamento do sistema. O circuito de reset geralmente composto de um capacitor de 10uF e uma chave ligados ao pino 9, e o reset se torna efetivo quando o pino 9 mantido em nvel alto por dois ou mais ciclos de mquina, aps o circuito do oscilador comear a funcionar. O circuito de clock composto de um cristal geralmente de 12MHz ou 11.0592MHz e dois capacitores de 33pF. Na sequncia apresentado um sistema ampliado com memria EPROM, RAM e com o uso de algumas das funes especiais da porta P3. Neste circuito a porta P3 utilizada para implementar comunicao serial com o uso do CI MAX232 atravs dos pinos 10 e 11, RX e TX respectivamente e dos pinos WR e RD para acesso a memria de dados externa, RAM, 62256. Os sinais de RD\ e WR\ somente so ativados no caso de leitura e escrita, respectivamente, na memria de dados externa (as instrues que acessam a memria de dados externa MOVX - so distintas das que acessam a memria interna MOV).
X1
1
1 1 .0 5 9 2 MHz C2 3 3 pF C1 1 0 uF
19 XTAL1 RST EA 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 P2 0 / A8 P2 1 / A9 P2 2 / A1 0 P2 3 / A1 1 P2 4 / A1 2 P2 5 / A1 3 P2 6 / A1 4 P2 7 / A1 5 D0 D1 D2 D3 D4 D5 D6 D7 PSEN ALE RXD TXD INT0 INT1 T0 T1 WR RD P0 0 / P0 1 / P0 2 / P0 3 / P0 4 / P0 5 / P0 6 / P0 7 / AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 29 30 D0 D1 D2 D3 D4 D5 D6 D7 1 11 3 4 7 8 13 14 17 18 OC C 1D 2D 3D 4D 5D 6D 7D 8D 1Q 2Q 3Q 4Q 5Q 6Q 7Q 8Q 2 5 6 9 12 15 16 19 A0 A1 A2 A3 A4 A5 A6 A7 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A1 0 A1 1 A1 2 A1 3 A1 4 A1 5 XTAL2 9 31 18
1
C3 3 3 pF U1 U2
2
P3 .0 P3 .1 P3 .2 P3 .3 P3 .4 P3 .5 P3 .6 P3 .7 P3 0 / P3 1 / P3 2 / P3 3 / P3 4 / P3 5 / P3 6 / P3 7 / P1 0 / T2 P1 1 / T2 EX P1 2 P1 3 P1 4 P1 5 P1 6 P1 7 P1 .0 P1 .1 P1 .2 P1 .3 P1 .4 P1 .5 P1 .6 P1 .7 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 17
U3
7 4 HC3 7 3
A8 A9 A1 0 A1 1 A1 2 A1 3 A1 4 A1 5
10 9 8 7 6 5 4 3 25 24 21 23 2 26 27 1
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A1 0 A1 1 A1 2 A1 3 A1 4 A1 5
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8
11 12 13 15 16 17 18 19
D0 D1 D2 D3 D4 D5 D6 D7
8 0 C3 2
PSEN
22
G/ VPP
20
2 7 C5 1 2
Tit le
SISTEMA M NIMO
Size
Nu m b er
Rev
A4
A B C
1 .0
03/ 2002
Dr a wn b y Sh eet 1
of
A
X1 1 1 .0 5 9 2 MHz
C 2
C2 D1
+V VI G 2 VO 1 3
C3 U9 3 3 pF
XTAL2 18
RST
1 0 0 nF C1 1
1 0 0 nF C1 2
19
C2 C1 31 EA/ VPP 39 38 37 36 35 34 33 32 1D 2D 3D 4D 5D 6D 7D 8D 1Q 2Q 3Q 4Q 5Q 6Q 7Q 8Q A8 A9 A1 0 A1 1 A1 2 A1 3 A1 4 A1 5 21 22 23 24 25 26 27 28 D0 D1 D2 D3 D4 D5 D6 D7 3 4 7 8 13 14 17 18 2 5 6 9 12 15 16 19 D0 D1 D2 D3 D4 D5 D6 D7 A0 A1 A2 A3 A4 A5 A6 A7 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A1 0 A1 1 A1 2 A1 3 PSEN ALE/ PROG P0 0 / P0 1 / P0 2 / P0 3 / P0 4 / P0 5 / P0 6 / P0 7 / P2 0 / A8 P2 1 / A9 P2 2 / A1 0 P2 3 / A1 1 P2 4 / A1 2 P2 5 / A1 3 P2 6 / A1 4 P2 7 / A1 5 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 PSEN OC C C3 P3 .0 P3 .1 P3 .2 P3 .3 P3 .4 P3 .5 P3 .6 P3 .7 P3 0 / P3 1 / P3 2 / P3 3 / P3 4 / P3 5 / P3 6 / P3 7 / P1 0 / T2 P1 1 / T2 EX P1 2 P1 3 P1 4 P1 5 P1 6 P1 7 RXD TXD INT0 INT1 T0 T1 WR RD P1 .0 P1 .1 P1 .2 P1 .3 P1 .4 P1 .5 P1 .6 P1 .7 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 17 29 30 1 11
JP1
RST
C 1 9
XTAL1
C8
U1 U2
3 3 nF C1 0
1 0 0 uF C9
VAL
7805
1 0 0 nF
C1 1 0 uF
3 3 pF
1 N4 0 0 1
D0 D1 D2 D3 D4 D5 D6 D7
1 2 3 4 5 6 7 8
CN1
CON8 M
U4
10 9 8 7 6 5 4 3 25 24 21 23 2 26 27 1 C2 A1 4 C3 PSEN 22 C2 A1 5 C3
7 4 HC3 7 3
2
AT8 9 C5 2 JP8
C2 C3 P3 .3 C1
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A1 0 A1 1 A1 2 A1 3 A1 4 A1 5
Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8
11 12 13 15 16 17 18 19
D0 D1 D2 D3 D4 D5 D6 D7
8 k2
R1
A0 A1 A2 A3 A4 A5 A6 A7
1 2 3 4 5 6 7 8
CN2
CON8 M
A8 A9 A1 0 A1 1 A1 2 A1 3 A1 4 A1 5
1 2 3 4 5 6 7 8
CN3
JP2
C1
CON8 M
JP3
C1
G/ VPP 20
2 7 C5 1 2
C3 C2
1 0 uF
1 C1 + C1 C2 + C2 14 TX DTR RX DSR 7 13 8 V6 V+ 3 2
C4 C5
4 5
U6
C6 1 0 uF
JP4
C1
P1 .0 P1 .1 P1 .2 P1 .3 P1 .4 P1 .5 P1 .6 P1 .7
1 2 3 4 5 6 7 8
CN4
CON8 M
U5 C7 1 0 uF
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A1 0 A1 1 A1 2 A1 4 10 9 8 7 6 5 4 3 25 24 21 23 2 26 1
1 0 uF
C2
JP9
P3 .1 T1 IN T1 OUT
11
3
JP1 0 MAX2 3 2
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A1 0 A1 1 A1 2 A1 3 A1 4
D0 D1 D2 D3 D4 D5 D6 D7
11 12 13 15 16 17 18 19
D0 D1 D2 D3 D4 D5 D6 D7
P3 .0 P3 .1 P3 .2 P3 .3 P3 .4 P3 .5 P3 .6 P3 .7
1 2 3 4 5 6 7 8
CN5
CON8 M
100k
R2
CS1 CS2
1 2 3 4
CN6
P1 U3 U7 :C
9 C2
150k JP5
CON4 M
CONFIGURACOES JP1 C1 - C3 ROM EXTERNA 2764/ 128 27256/ 512 2764/ 128/ 256 27512 ROM 8 K ROM 6 4 K 6264 62256 RAM 2 0 0 0 H RAM 0 0 0 0 H DADOS
11 P3 .6 8 10 9 6 4 5 G1 G2 A G2 B A1 3 A1 4 A1 5
C1 - C2
ROM INTERNA
1 2 3 A B C
C1 - C2
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
15 14 13 12 11 10 9 7
8 10
C1 A1 3 C3
20
CS
U7 :B 7 4 HC0 8
CS1 CS2 4 6 C3
P3 .6
27
WE
JP6 U7 :D
12 11 13 5 C2 C1
22
A0 A1
OE
7 4 HC0 8 7 4 HC1 3 8
C2
U7 :A U8 :C U8 :B 7 4 HC0 2 U8 :D
5 4 6 3 2 1 P3 .7 2
D0 D1 D2 D3 D4 D5 D6 D7
1 2 3 4 5 6 7 8 9 10 11 12 13 14
CN9
TX RX
DSR DTR
1 2 3 4 5 6
CN7
CON6 M
+V
1 2 3 4
CN8
7 4 HC0 8 U8 :A
CON1 4 M
CON4 M
Tit le
SISTEMA AMPLIADO
Size
DADOS/ PROG. EXEC. NORMAL PASSO A PASSO
P3 .7 12 13
Nu m b er
Rev
7 4 HC0 2 7 4 HC0 2
7 4 HC0 2
A3
A B C
1 .0
Da t e
03/ 2002
Dr a wn b y Sh eet 1
of
Os sinais de RD\, WR\ e PSEN\ nunca esto ativos simultaneamente conforme mostra a tabela abaixo: PSEN\ 1 1 1 0 3. Ciclo de mquina Um ciclo de mquina consiste de uma seqncia de 6 estados numerados de S1 a S6. Cada estado leva 2 perodos de clock para estar completo, assim um ciclo de mquina leva 12 perodos de clock para estar completo. A execuo das instrues baseada nesta diviso de tempo, bem como os SW executados pelo 8051. Na pgina seguinte apresentado o diagrama do ciclo de mquina bem como os sinais derivados desta base de tempo. Desta forma um sistema microcontrolado que utilize um cristal de 12MHz, ter um ciclo de mquina de 1s, pois 12MHz 12 = 1MHz. 4. Estrutura e operao das portas de I/O As quatro portas presentes no 8051 so bidirecionais, consistindo cada um num latch (que o prprio registrador Px no SFR), num driver de sada e num buffer de entrada. As portas 1, 2 e 3 so providas de resistores pull-up internos, enquanto que a porta 0 apresenta sadas em open drain. Qualquer uma das linhas pode ser usada independentemente como entrada ou sada, uma vez que as portas so endereveis por bit (bit addressable). Para utilizarmos as portas como entradas, devemos colocar nvel lgico 1 no latch de entrada, para que o pino fique num nvel alto atravs do pullup, mas possa ser colocado em nvel baixo pela ao de um sinal externo. Na porta 0, no existe o resistor de pull-up interno, de forma que torna-se imperativo o uso de pull-ups externos. Quando ocorre o endereamento, a estrutura da porta permite que sejam colocados 1s ou 0s conforme o necessrio. A estrutura das portas est representada a seguir, ilustrando o funcionamento das mesmas. Para escrever um dado em um dispositivo atravs de um das portas, devemos simplesmente mover o dado para o registrador respectivo no SFR. Devemos lembrar sempre que os valores de corrente fornecidos pelas portas so da ordem de poucos miliampres, de forma que precisamos de drivers de corrente na maioria dos casos. Os resistores pull-up internos fornecem baixos valores de corrente e na maioria dos projetos determinamos a ativao dos dispositivos de sada atravs de nveis baixos, pois neste caso a corrente pode ser significativamente maior. Os buffers de sada das portas 1, 2 e 3 fornecem corrente suficiente para 4 cargas TTL cada um, enquanto que a porta 0 pode fornecer corrente para at 8 cargas TTL. RD\ 1 1 0 1 WR\ 1 0 1 1 Funo Nenhum acesso externo Escrita na memria de dados Leitura da memria de dados Leitura da memria de programa
Ciclo de mquina
S1 S2 S3 S4 S5 S6 S1 S2
S3
P1
P2
P1
P2
P1
P2
P1
P2
P1
P2
P1
P2
P1
P2
P1
P2
P1
P2
CLK
ALE
PSEN\
P0
R D
PCL
R D
PCL
R D
PCL
P2
P C H
P C H
Este diagrama ilustra o ciclo de mquina para busca de uma instruo na memria de programa externa.
O registrador Program Counter ( PC ), tem a funo de indicar o endereo da prxima instruo a ser executada. Enquanto o microcontrolador estiver executando uma instruo, o PC j contm o endereo da prxima instruo a ser executada. J os acessos a memria de dados externa usam como ponteiro o registrador DPTR. Ambos possuem 16 bits divididos em alto (H) e baixo (L).
Estudando o diagrama ento, temos que o PC contm o endereo da prxima instruo a ser executada e necessrio enviar este endereo para indicar a posio que ser deseja acessar, junto com o comando de leitura (PSEN\). No S1/P2, o microcontrolador coloca o sinal ALE em nvel alto para avisar que vai comear a enviar o endereo da posio a ser acessada, ao mesmo tempo que coloca PSEN\ em alto para terminar a operao de leitura realizada no ciclo anterior. Em S2/P1, so enviados pela P0 os bits menos significativos do endereo (PCL) e, por P2, os bits mais significativos (PCH). Em S2/P2, o microntrolador coloca o sinal de ALE em nvel baixo para sinalizar que ir utilizar a P0 para ler os dados da memria de programa.
Addr/Data Control Read Latch Int. BUS Write To Latch Read PIN
VCC Read Latch P0.X PIN Int. BUS Write To Latch Read PIN
D P0.X Q Latch _ CL Q
MUX
Port 0 Bit
Address Control Read Latch Int. BUS Write To Latch Read PIN
Port 1 Bit
D P2.X Q Latch _ Q CL
MUX
Port 2 Bit
VCC Read Latch Int. BUS Write To Latch Alternate Output Function Internal Pull-up P3.X PIN
D P3.X Q Latch _ CL Q
Port 3 Bit
Read PIN
5. Modos de endereamento Modo imediato: Neste modo, identificado pelo smbolo #, o valor manipulado pela instruo o prprio valor aps o #. Exemplo: MOV A,#10 No exemplo o registrador acumulador recebe o valor 10. Modo direto: Neste modo, o valor manipulado o contedo da RAM interna, cujo endereo diretamente especificado na instruo. Exemplo: MOV A,10 No exemplo, o acumulador recebe o contedo da posio 10 da RAM interna.
Modo a registrador: O 8051 possui 4 banco de registradores identificados por R0 a R7. Quando este modo est sendo utilizado, manipula-se o contedo da memria do banco selecionado, uma vez que apenas um est ativo de cada vez ( bits RS0 e RS1 do registrador PSW ). Portanto o endereo de memria manipulado depende do banco selecionado. Exemplo: MOV A, R0 No exemplo o acumulador recebe o contedo da posio 00h se o banco 0 estiver selecionado, 08h se for o banco 1, 10h se for o banco 2 e 18h se for o banco 3. Modo indireto: Neste modo, identificado pelo smbolo @, o valor manipulado o contedo da posio de memria cujo endereo est armazenado no registrador R0 ou R1. um modo muito til para manipulao de tabelas na RAM ou na alterao dinmica do contedo dos registradores. Exemplos: MOV A, @R0 ; MOV @R1, A Os exemplos acima so vlidos para RAM interna. Abaixo exemplos vlidos para RAM externa. Exemplos: MOVX A,@R0 ; MOVX @R1, A 6. Sistema de interrupes A interrupo um pedido de prioridade que tem por finalidade interromper o processamento normal, e saltar para o endereo onde se encontra a rotina de atendimento fonte de interrupo. Utiliza-se as interrupes de um C para dar versatilidade ao HW, possibilitando a execuo de diferentes tarefas. 6.1 Estrutura das interrupes ___ ___ No 8051 so 5 as fontes de interrupo, duas externas INT0 e INT1, duas relativas aos timers, e uma relativa a porta serial. Cada interrupo pode ser habilitada ou desabilitada individualmente, setando ou resetando um bit no registrador denominado IE (Interrupt Enable). Este registrador contm ainda um bit que desabilita todas as interrupes, e sua estrutura completa mostrada abaixo. O bit em 0 desabilita a interrupo e o bit em 1 habilita a interrupo.
FF F7 EF E7 DF D7 CF C7 BF B7 AF A7 9F 97 8F
PCON 0XXX 0000
87 7F 77 6F 67 5F 57 4F 47 3F 37 2F 27 1F 17 0F 07
EA (IE.7) Desabilita todas as interrupes. Quando em 1, permite que sejam desabilitadas individualmente. ES (IE.4) Interrupo da porta serial. ET1 (IE.3) Interrupo do timer 1. EX1 (IE.2) Interrupo externa 1. ET0 (IE.1) Interrupo do timer 0. EX0 (IE.0) Interrupo externa 0. Vetor das interrupes Cada uma das fontes de interrupo possui uma faixa de 8 bytes na qual de ser escrita a rotina de atendimento, abaixo esto indicados os endereos: Fonte INT\0 T/C0 INT\1 T/C1 Serial Faixa de endereos 0003h a 000Ah 000Bh a 0012h 0013h a 001Ah 001Bh a 0022h 0023h a 002Ah
A interrupo vetorada portanto fica caracterizada pelo endereo fixo para rotina de atendimento, definido pelo fabricante. Cada fonte de interrupo pode ser programada quanto sua prioridade de atendimento, atravs de um outro registrador localizado na rea de SFR e denominado IP (interrupt priority). A rotina de prioridade de interrupo determina que se uma interrupo de baixo nvel estiver sendo executada, esta pode ser interrompida por uma interrupo de alto nvel, sendo continuada aps o trmino da mesma. O contrrio no verdadeiro, ou seja, uma interrupo de alto nvel no interrompida por uma interrupo de nvel inferior, nem igual ao dela. Se duas interrupes de mesmo nvel so recebidas simultaneamente, o C internamente determina qual ser atendida em primeiro lugar. A figura abaixo ilustra o contedo do registrador IP. O Bit em 0 desabilita a interrupo e o bit em 1 habilita a interrupo.
PS (IP.4) Prioridade de interrupo da porta serial. PT1 (IP.3) Prioridade de interrupo timer 1. PX1 (IP.2) Prioridade de interrupo externa 1. PT0 (IP.1) Prioridade de interrupo do timer 0. PX0 (IP.0) Prioridade de interrupo externa 0.
IP Register
TF0
____ INT1
0 1
IT1
IE1
TF1
7. Timers/Counters Os pares de registradores (TH0, TL0, e TH1, TL1) so registradores de contagem de 16 bits, nos quais programamos os valores de contagem/temporizao dos respectivos contadores. O registrador TMOD (Timer Mode), permite o controle do modo de operao dos timers existentes no microcontrolador, bem como a definio quanto operao como timer ou como contador. A funo Timer se caracteriza pelo uso do clock interno do C (F. cristal / 12), ou seja, 12 pulsos da freqncia do cristal. A funo Counter se caracteriza pelo uso dos pinos T0 e T1, pinos 4 e 5 da porta P3 respectivamente, para contagem de eventos.
Gate
TIMER 1 C/T M1
M0 Gate
TIMER 0 C/T M1
M0
Gate: Se = 0, o T/C habilitado apenas pelo bit TRx correspondente no re gistrador TCON. Se = 1, alm do bit TRx estar habilitado o pino da interrupo externa dever estar em 1 para que ocorra a contagem. Se C/T = 0 opera como Timer e o clock a freq. do xtal/12. Se C/T = 1 opera como Counter atravs dos pinos T0 e T1. M1 e M0: Modo de operao. M1 1 1 0 0 M0 1 0 1 0 Modo 3 2 1 0
A operao dos timers/counters depende tambm de um registrador denominado TCON (Timer Control), de onde podemos inicializ-lo e monitorar suas condies de funcionamento. Neste mesmo registrador encontramos os flags de interrupes externas, os quais esto ativos quando da ocorrncia da interrupo. REGISTRADOR TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TF1 (TCON.7): Flag de overflow do T/C 1. Setado pelo C no overflow. Resetados aps o atendimento ou pelo usurio. TR1 (TCON.6): Bit de disparo do timer 1. TF0 (TCON.5): Flag de overflow do T/C 0. Setado pelo C no overflow. Resetados aps o atendimento ou pelo usurio. TR0 (TCON.4): Bit de disparo do timer 0. IE1 (TCON.3): Flag da Interrup. Ext 1, zerado por HW aps atendim. IT1 (TCON.2): Ajuste da interrupo externa 1 = 1 Borda de descida = 0 Nvel 0 em INT1\ ou INT0\ IE0 (TCON.1): Flag da Interrup. Ext 0, zerado por HW aps atendim. IT0 (TCON.0): Ajuste da interrupo externa 0 = 1 Borda de descida = 0 Nvel 0 em INT1\ ou INT0\
7.1 Modos de operao Podemos ter trs modos distintos de operao dos timers selecionveis atravs do registrador TMOD. Modo 0: No modo 0, o timer um contador de 8 bits, em TH0 ou TH1, com um divisor at 32 em TL0 ou TL1, perfazendo, na realidade, um timer de 13 bits. 7 TH 0 7 TL Divisor 0
Modo 2: Contador/Temporizador de 8 bits com recarga automtica, Autoreload, neste modo a contagem se d em TL e quando ocorre o Overflow o contedo de TH copiado para TL. 15 TH Valor da recarga OVERFLOW Modo 3: O modo 3 deve ser utilizado quando necessitamos de dois T/C independentes de 8 bits, um em TH0 e o outro em TL0. TL0 operando com os controles do Timer 0 e TH0 operando com os controles do Timer 1. Caso o T/C0 seja programado para o modo 3, pode-se programar o T/C1 para qualquer um dos outros modos, porm este no poder gerar pedido de interrupo, pois o bit de requisio estar sendo utilizado por T/C0, mesmo assim o overflow neste contador poder ser usado para chavear o gerador de taxa de transmisso do canal serial. 8 7 TL Contagem 0
8. Registrador PSW ( Program Status Word ) O registrador da palavra de controle (PSW) contm vrios bits de status que indicam o estado atual da CPU. A tabela a seguir indica a posio dos bits dentro do registrador. CY AC F0 RS1 RS0 OV P
CY (PSW7):
Carry flag, indica vai um nas operaes lgicas e aritmticas. AC (PSW6): Auxiliary carry flag, utilizado no DA A. F0 (PSW5): Flag de uso geral. RS1 (PSW4): Seleo do banco de registradores. RS0 (PSW3): Seleo do banco de registradores. OV (PSW2): Overflow em operaes aritmticas de soma e subtrao envolvendo nmeros representados em complemento de 2. - (PSW1): Flag definvel pelo usurio. P (PSW0): Flag de paridade
RS1 0 0 1 1
RS0 0 1 0 1
Os bits RS0 e RS1 so utilizados para selecionar um entre quatro bancos de registradores, disponveis nos primeiros 32 bytes da RAM interna. O bit de paridade indica a quantidade de bits em um no acumulador: se P=1, o acumulador contm um nmero mpar de uns; se P=0, o nmero de uns no acumulador par. 9. Registradores Acumulador (ACC) e B (B) O acumulador o registrador onde se processam as operaes de lgica e aritmtica e o registrador secundrio B empregado apenas nas operaes nas operaes de multiplicao e diviso. 10. Stack Pointer (SP) e Data Pointer (DPTR) O Stack Pointer (ponteiro de pilha) inicializado com o valor de 07h. Todos os dados armazenados na RAM por meio de instrues que utilizam a pilha sero armazenados a partir do endereo 07h. As instrues que utilizam a pilha so: PUSH, POP, LCALL, ACALL, RET E RETI. O Data Pointer consiste em dois registradores de 8 bits (DPH byte alto, e DPL byte baixo), que podem ser manipulados tanto como dois registradores separados de 8 bits como um nico de 16 bits. Utilizado para endereamento indireto da memria de programa e da memria externa de dados.