Vous êtes sur la page 1sur 16

1. Introduo ao Hardware dos Microcontroladores 8051 O que um microcontrolador?

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

P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 Rst

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

P1.5 P1.6 P1.7

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.

2. Sistema mnimo e ampliado

MCS-51 P0 P1 __ EA

EPROM Q0...Q7

ALE Latch P3 P2 _____ PSEN ___ OE A0...A12

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

P3 .5 C1 10 T2 IN R1 OUT R1 IN R2 OUT R2 IN T2 OUT 12 9 C1 C3 C3 P3 .0 P3 .4 C2

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

JP2 C1 - C3 JP3 C1 - C3 JP4 C1 - C3 JP5 C1 - C2 C1 - C3 JP6 C1 - C3 JP7 C1 - C2 C1 - C3 JP8 C1 - C2 C1 - C3 C1 - C2 C1 - C2 C1 - C2

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

62256 JP7 7 4 HC0 8


PSEN C1 C3 1 3

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

VCC Internal Pull-up P1.X PIN D P1.X Q Latch _ CL Q

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

VCC Internal Pull-up P2.X PIN

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

Alternate Input Function

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.

Registrador IE EA ES ET1 EX1 ET0 EX0

RAM Interna 80C51 F8 F0 E8 E0 D8 D0 C8 C0 B8 B0 A8 A0 98 90 88 80 78 70 68 60 58 50 48 40 38 30 28 20 18 10 08 00


R0 0000 0000 R0 0000 0000 R0 0000 0000 R0 0000 0000 R1 0000 0000 R1 0000 0000 R1 0000 0000 R1 0000 0000 R2 0000 0000 R2 0000 0000 R2 0000 0000 R2 0000 0000 R3 0000 0000 R3 0000 0000 R3 0000 0000 R3 0000 0000 R4 0000 0000 R4 0000 0000 R4 0000 0000 R4 0000 0000 R5 0000 0000 R5 0000 0000 R5 0000 0000 R5 0000 0000 R6 0000 0000 R6 0000 0000 R6 0000 0000 R6 0000 0000 R7 0000 0000 R7 0000 0000 R7 0000 0000 R7 0000 0000 IP XXX0 0000 P3 1111 1111 IE 0XX0 0000 P2 1111 1111 SCON SBUF 0000 0000 XXXX XXXX P1 1111 1111 TCON TMOD TL0 TL1 TH0 TH1 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 P0 SP DPL DPH 1111 1111 0000 0111 0000 0000 0000 0000 PSW 0000 0000 ACC 0000 0000 B 0000 0000

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.

Registrador IP PS PT1 PX1 PT0 PX0

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.

IE Register ____ INT0 0 1 IT0 IE0

IP Register

High Priority Interrupt

TF0

____ INT1

0 1

IT1

IE1

Interrupt Pooling Sequence

TF1

RI TI Individual Enables Global Disables Low Priority Interrupt

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 1: No modo 1, os timer se comportam como um nico registrador de 16 bits. 15 TH 8 7 TL 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

Banco Selecionado Banco 0 Banco 1 Banco 2 Banco 3

Endereo 00H at 07H 08H at 0FH 10H at 17H 18H at 1FH

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.

Vous aimerez peut-être aussi