





Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Documento que descreve a pinagem dos microcontroladores mcs-51, incluindo os pinos de alimentação, portas de i/o, interrupções e temporização. Além disso, são apresentados diagramas de tempo para melhor compreensão.
Tipologia: Provas
1 / 9
Esta página não é visível na pré-visualização
Não perca as partes importantes!






O encapsulamento dos microcontroladores varia muito, de acordo com as funções desempenhadas. Basicamente são usados 3 tipos de encapsulamento :
Os 8051 e 8052 estão disponíveis em 40 DIP, 44 PLCC e 44 QFP. Alguns exemplos:
Estudar-se-á a pinagem do 8051 no encapsulamento DIP40 (HMOS) → 8051 AH (40) Vcc → Alimentação de +5V. Consumo: Icc = 125 mA, com todas as saídas desconectadas. (20) Vss → Terra. (32-39) P0 → Porta 0 (AD0...AD7). Além de porta paralela, está multiplexada com o byte menos significativo (LSB) dos endereços e dos dados. Admite 8 cargas LS TTL. (21-28) P2 → Porta 2 (A8...A15). Além de porta paralela, está multiplexada com o byte mais significativo (MSB) dos endereços. Admite 4 cargas LS TTL. (1-8) P1 → Porta 1. Admite 4 cargas LS TTL. (10-17) P3 → Porta 3. Compartilhada com uma série de recursos Admite 4 cargas LS TTL. P3.0 → RXD , entrada serial P3.1 → TXD , saída serial P3.2 → *INT0 , interrupção externa 0 P3.3 → *INT1 , interrupção externa 1 P3.4 → T0 , entrada para o timer 0 (contador neste caso) P3.5 → T1 , entrada para o timer 1 (contador neste caso) P3.6 → *WR, escrita na memória de dados externa
P3.7 → *RD, leitura na memória de dados externa (9) RST → Reset. Com o oscilador funcionando, deve ser mantido um nível alto durante 24 períodos. (30) ALE/PROG → Address Latch Enable. Pulso para acionar o latch que captura o LSB do endereço (com sua borda ascendente). Ele é emitido à razão de 1/6 da freqüência do oscilador e pode ser usado para acionar entradas externas. Um ALE é omitido durante o acesso à Memória de Dados Externa. Também é usada na gravação da ROM interna. (29) *PSEN → Program Store Enable. Pulso de leitura para a Memória de Programa Externa. Quando o programa está sendo executado na memória de programa externa ele aparece como 1/6 da freqüência de clock. Quando há acesso à memória de dados externa, 2 PSEN são perdidos. (31) *EA/VPP → External Access Enable. Informa à CPU se o programa está na Memória de Programa Externa ou na ROM Interna. Também usado para gravação da ROM Interna. *EA = 1 (Vcc) → (0000H - 0FFFH) ROM Interna → (1000H - FFFFH) Memória de Programa Externa *EA = 0 (Vss) → (0000H - FFFFH) Memória de Programa Externa (19) XTAL1 → Entrada do amplificador inversor do oscilador interno. Deve ser conectado à terra se for usado um clock externo (HMOS) ou ao clock externo (CHMOS). (20) XTAL2 → Saída do amplificador inversor do oscilador interno. Se for usado clock externo, serve como entrada para o mesmo (HMOS) ou não é conectado (CHMOS).
P3. P3.
P3. P3.
P3. P3.
P3. P3.
RST
P1. P1.
P1. P1.
P1. P1.
P1. P1.
XTAL XTAL Vss
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19 20
22
23
24
25
26
27
28
29
30
31
32
33
21
34
35
36
37
38
39 Vcc^40 P0. P0. P0. P0. P0. P0. P0. P0. *EA / VPP ALE / PROG *PSEN P2. P2. P2. P2. P2. P2. P2. P2.
RXD TXD *INT *INT T T *WR *RD
A
A
A
A
A
A
A
A
AD AD AD AD AD AD AD AD
Figura 3.1. Pinagem do 8051.
EST 2 P1 P
EST 1 P1 P
EST 3 P1 P
EST 4 P1 P
EST 5 P1 P
EST 6 P1 P
EST 1 P1 P
EST 2 P1 P
DATA IN PCL OUT^
DATA IN
DATA PCL OUT (^) IN PCL OUT
PCH OUT PCH OUT (^) PCH OUT
PC -- Program Counter PCL -- LSB do Program Counter PCH -- MSB do Program Counter
(AD0-7)
(A8-15)
Figura 3.2. Fetch de programa, Memória Externa.
Cada período de Clock recebe o nome de Fase (Phase). Cada estado é composto por 2 períodos de Clock ou 2 fases, denominadas P1 e P2. Observar que EST1=EST4, EST2=EST5, etc. O Program Counter (PC) é composto por dois registros de 8 bits: PC = PCH + PCL. As freqüências de ALE e PSEN são iguais a 1/6 da freqüência do cristal, mas o "Duty Cycle (DC) é diferente para cada uma. ALE tem o DC=33% (1/3) enquanto que PSEN tem o DC=50% (1/2). f(ALE) = f(PSEN) = f(XTAL)/ DC(ALE) = 33% ==> 33% alto e 67% baixo DC(PSEN) = 50% ==> 50% alto e 50% baixo
EST 5 P1 P
EST 4 P1 P
EST 6 P1 P
EST 1 P1 P
EST 2 P1 P
EST 3 P1 P
EST 4 P1 P
EST 5 P1 P
DATA IN PCL se Prog Ext
DPL ou Ri
PCH ou P2 SFR DPH ou P
FLOAT
PCH ou P2 SFR
(AD0-7) (A8-15)
Figura 3.3. Leitura na Memória de Dados Externa.
EST 5 P1 P
EST 4 P1 P
EST 6 P1 P
EST 1 P1 P
EST 2 P1 P
EST 3 P1 P
EST 4 P1 P
EST 5 P1 P
PCL se Prog Ext
DPL ou Ri
DPH ou P
DATA OUT
PCH ou P2 SFR PCH ou P2 SFR
(AD0-7)
(A8-15)
Figura 3.4. Escrita na Memória de Dados Externa.
A leitura e a escrita na Memória de Dados Externa usam o dobro de tempo quando são comparadas com um acesso à memória de programa. Notar que f(ALE) não tem f(XTAL)/6 pela ausência de um pulso de ALE e que não existe *PSEN. Perde-se um pulso de ALE e dois pulsos de PSEN. Então, f(ALE) = f(PSEN) = f(XTAL)/6 mas, quando há acessos à Memória de Dados Externa, se perdem 1 pulso de ALE e 2 pulsos de *PSEN. Nos acessos à Memória de Dados Externa é usado um endereço de 16 bits. Esse endereço pode ser formado por um registro ponteiro de dados de 16 bits, DPTR (DPTR = DPH + DPL) ou por R0 ou R1 e o conteúdo do SFR P2. MSB LSB DPTR → DPH e DPL P2 e Ri → SFR P2 e R0 ou R
Exemplos: leitura escrita Com DPTR → MOVX A,@DPTR ou MOVX @DPTR,A Com P2 e Ri → MOVX A,@Ri ou MOVX @Ri,A (onde i=0 ou i=1)
Notar que quando se usa DPTR para endereçar a memória externa, os 16 bits dos endereços são emitidos por P0 e P2 mas ao se usar Ri, os 16 bits são formados pelo conteúdo de Ri (LSB) e o que estava no SFR P2, ou seja, não se altera o conteúdo de P2.
A entrada RST é assíncrona e é amostrada durante a fase 2 (P2) do estado 5 (E5). Depois do RST ser amostrado como alto, ainda se mantém atividade nos pinos durante 19 períodos de clock. Os pinos só cessarão a atividade 19 a 31 períodos de clock depois de RST ser ativada. Após o RST, os pinos ALE e PSEN vão para 1. Depois de RST=0 (desativada), são necessários 1 a 2 períodos de clock para que ALE e PSEN comecem. Por isso, outros dispositivos externos não podem ser sincronizados com o tempo interno do Reset do 8051. A RAM Interna não é afetada pelo reset. Depois do RESET, a CPU é inicializada com os seguintes dados: SP = 7 ESTADO DOS REGISTROS SBUF =? APÓS O RESET P0,P1,P2,P3 = FFH OUTROS SFR = 0
Uma maneira fácil de realizar o "Power on Reset" e o "Reset Manual" é mostrada na figura 3.7.
RESET
VCC
C (^) 10 uF
R 8,2 K
Figura 3.7. Circuito para RESET do 8051 (HMOS).
O esquema da figura 3.7 é válido para HMOS. Nas famílias CHMOS o resistor 8,2 KΩ pode ser omitido pois há um "pull-down" interno; além disso, o capacitor deve ser reduzido a 1 μF. Quando é energizado, o circuito (RC) assegura no pino RST um nível alto durante uma quantidade de tempo que depende dos valores de R e C. Para ter um "Power On Reset" seguro é necessário que o pino RESET seja mantido em alto durante o tempo necessário para que o oscilador inicie e a isto se adicionam os 24 períodos de clock para o RESET efetivo.
Tempos que serão computados no power up:
Com este circuito de Reset Vcc cai rapidamente a 0. Com isto, a tensão do pino RST pode cair momentaneamente abaixo de 0 mas não causa danos. Com a chave em paralelo com um capacitor pode-se gerar o RESET manual. Para que se possa projetar um RESET eficiente e preciso é necessário analisar o circuito RC de primeira ordem.
Vcc
C 10 uF
R 8,2 K V R
T
V
R
R
Figura 3.8. Análise do circuito para RESET do 8051.
Da análise do circuito se pode escrever a equação:
A pergunta, quando se calcula um circuito de RESET, é: Qual RC me garante que o RESET fique ativado por um tempo maior que o especificado? Para que se possa responder a esta pergunta é necessário saber qual a tensão de comutação do Schmitt-Trigger do 8051 e qual é o modelo elétrico da entrada RESET (ou seja, quanta corrente consome). Essas informações não estão facilmente disponíveis nem nos Data Sheets.
Exemplo: com o 8051 usando cristal de 1 MHz: 10 ms → estabilizar Vcc 10 ms → partida do oscilador 24 μs → necessários para o Reset (24 períodos de clock) 20024 μs → Tempo do Reset = 20,024 ms =(aprox.) 20 ms Supondo que o Schmitt Trigger comute a 3,5 V (na transição de alto para baixo; valores abaixo de 3,5 V na entrada geram 0 na saída) e usando os valores de R e C da figura 3.7, calcula-se. ln(3,5) - ln(5) = -(t/RC) t = RC ( ln(3,5) - ln(5) ) = 29 ms > 20 ms OK! Pelo que parece, o circuito de RESET sugerido deve funcionar.