







































































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
Apostila do CEFET-SP
Tipologia: Notas de estudo
1 / 79
Esta página não é visível na pré-visualização
Não perca as partes importantes!








































































Conceitos, Aplicações e Projetos versão 6. 2004 Wilson Ruiz
Harpia harpyja Harpia ou Águia Real Brasil
Número dos Pinos
Nome Descrição resumida de sua função
1 a 8 P1.0 a P1. Port 1
Porta de I/O número 1
9 RST/ VPD
“Reset” do sistema (é necessário a aplicação de um nível alto TTL, durante 2 ou mais ciclos de máquina) 10 a 17 P3.0 a P3. Port 3
Porta de I/O número 3 Possibilita também funções especiais relacionadas ao Canal Serial, Interrupções e “Timer/Counter” 18 XTAL 2
Ligação do cristal oscilador
19 XTAL 1
Ligação do cristal oscilador
20 Vss Terra 21 a 28 P2.0 a P2. Port 2 ou A8 a A
Porta de I/O número 2 Saída do byte mais significativo do endereço, para memória externa.
29 PSEN’ Program Store Enable “Strobe” da memória de programa externa. Quando o sistema lê instruções ou operandos na memória externa, vai para nível zero e não é ativado (nível 1) durante busca na memória interna de programa. 30 ALE / PROG
Address Latch Enable Saída para habilitar o “latch” de endereços. Serve para separar, a parte menos significativa do endereço, dos dados, na aplicação de memória externa. Entrada do pulso de programação durante a gravação da EPROM. 31 EA’ / Vpp
External Access Enable – Programming Supply Voltage Entrada de seleção da memória de programa. Quando em nível zero, a CPU trabalha apenas com a memória de programa externa.. Se em nível lógico 1, a CPU executa instruções da memória de programa interna, desde que o PC seja menor que 4096. Este pino recebe +21 volts durante a programação da ROM interna. Recebe +21V durante a programação da EPROM 32 a 39 P0.0 a P0. ou AD0 a AD
Porta de I/O número 0 Fornece o byte menos significativo de endere ço multiplexado com os dados.
40 Vcc + 5 volts
MAPA DA MEMÓRIA DE PROGRAMA (ROM)
65535 = FFFFh
60K bytes ‡
4096 = 1000h
ROM externa 60 Kbytes
expansão
4095 = 0FFFh
4K bytes ‡
0 = 0000h
ROM Interna do chip conteúdo inviolável 4 Kbytes
Modo mínimo
65535 = FFFFh
64K bytes ‡
0 = 0000h
ROM Externa 64 Kbytes
Para o 8051: pino EA’=1 ‡ OU fl Para o 8031: pino EA’ = 0
MAPA DA MEMÓRIA DE DADOS (RAM)
255 = FFh
128 bytes superiores ‡
128 = 80h
Registros de funções especiais 128 bytes
127 = 7Fh 128 bytes inferiores ‡
0 = 00h
RAM Interna uso geral e stack 128 bytes
65535 = FFFFh
64K bytes ‡
0 = 0000h
RAM Externa Uso geral
RAM interna ‡ E fl RAM externa ***** A RAM externa não é endereçada diretamente pela CPU. O endereço de acesso deve estar em um registrador usado pela CPU como índice.
Este byte, localizado no espaço SFR (Special Status Word – RAM interna de 80h a FFh), possui alguns bits de status que refletem o estado da CPU. Mostrado na figura abaixo, contém as flags: Carry, Auxiliay Carry, Overflow, Paridade, dois bits (RS1 e RS0) de seleção de banco de registradores e dois bits de status definidos pelo usuário.
Registrador PSW ( Program Status Word )
Flag Descrição C = PSW.7 Flag carry C = 1 indica o transporte no bit 7 (vai 1 ou vem 1), C = 0 caso contrário AC = PSW.6 Flag auxiliar carry C = 1 indica o transporte entre os bits 3 e 4 (vai 1 ou vem 1), C = 0 caso contr. F0 = PSW.5 Flag de uso geral Pode-se setar ou resetar esta flag, indicando o status da condição escolhida RS1 = PSW.4 RS1 RS0 = 00 ‡ banco 0 RS1 RS0 = 10 ‡ banco 2 RS0 = PSW.
Seleção do banco de registradores (^) RS1 RS0 = 01 ‡ banco 1 RS1 RS0 = 11 ‡ banco 3 OV = PSW.2 Flag de overflow OV = 1 indica uma condição de erro, o resultado não pode ser representado como um no^ sinalizado (ex. soma de nos negativos resultando em positivo) P = PSW.0 Flag de paridade P = 0 p/ paridade par do acumulador e P = 1 p/ paridade impar do acumulador
AS INTERRUPÇÕES DA FAMÍLIA 8051 (e equivalentes)
Essa família de microcontroladores apresenta 5 / 6 formas de ser interrompido:
OBSERVAÇÕES:
ß Todas as interrupções podem ser habilitadas ou não (exceto o RESET).
ß Se o pedido da interrupção que ocorrer for de nível menor ou igual (mesmo número) ao da que já está sendo atendida, este ficará aguardando o término da mesma para ser executado.
ß No caso de uma interrupção de prioridade menor estar em andamento, esta poderá ser interrompida por uma de prioridade maior, que ao seu término possibilita que a primeira seja concluída.
Mapa da memória de programa
ENDEREÇO NOME DA INTERRUPÇÃO Intervalo
0000h ... 0002h
Reset 3 bytes
0003h ... 000Ah
INT0 8 bytes
000Bh ... 0012h
Timer/Counter 0 8 bytes
0013h ... 001Ah
INT1 8 bytes
001Bh ... 0022h
Timer/Counter 1 8 bytes
0023h ... 002Ah
Canal Serial 8 bytes
002Bh ... 0032h
Timer/Counter 2 Somente para 8032 / 52
8 bytes
0033h
‡ IP (Interrupt Priority) – Endereço B8h Tem por função fixar qual nível de prioridade das interrupções, sendo assim possível alterar a prioridade de atendimento de uma interrupção durante o processamento.
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 X X X PS PT1 PX1 PT0 PX
PS (Priority Serial):
PT1 (Priority Timer 1):
PT0 (Priority Timer 0):
Temporizador/Contador 0.
PX1 (Priority External 1):
PX0 (Priority External 0):
É possível ajustar as interrupções externas para serem detectadas pela transição de “1” para “0” ou pelo nível “0”.
‡ TCON (Timer Control) – Endereço 88h
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 IE1 IT1 IE0 IT
IT1: Bit para a escolha da forma de reconhecimento do INT
pino INT1’.
IT0: Bit para a escolha da forma de reconhecimento do INT
pino INT0’.
IE1: Bit para o hardware de controle da interrupção INT
IE0: Bit para o hardware de controle da interrupção INT
‡ TMOD (Timer Mode) – Endereço 89h
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Gate.1 C/T’ .1 M 1 .1 M 0.1 Gate .0 C/T’.0 M 1.0 M 0.
Gate.1 e Gate.0:
Exemplo: ß p/ Gate.0 = 0 ‡T/C 0, será habilitado (contando) fazendo-se TR0 = 1 ( no registrador TCON).
ß p/ Gate.0 = 1 ‡T/C 0, será habilitado (contando) somente p/ TR0 = 1 e o pino INT 0’ = 0.
Exemplo de aplicação: Determinação da largura de um pulso, colocando-se a entrada do sinal externo no pino de interupção correspondente e fazendo com que T/C funcione com sinal interno. Desta maneira somente haverá contagem quando o sinal externo for = 1. O software calculará o tempo decorrido entre dois pulsos do sinal aplicado.
C/T’.1 e C/T’.0 :
C/T’.0 Função escolhida para Timer / Counter 0 = 1 Contagem (para sinal externo) = 0 Temporização (sinal será interno)
C/T’.1 Função escolhida para Timer / Counter 1 = 1 Contagem (para sinal externo) = 0 Temporização (sinal será interno)
OBS: Para qualquer um dos T/C, se o sinal for interno (timer), a freqüência será a de clock dividida por 12 e o pino de entrada correspondente fica disponível.
M1.1 e M0.1 : M1.0 e M0.0 :
MODOS DE OPERAÇÃO DOS T/C’s.
MODO 0
TH0 ou TH1 | TL0 ou TL | Contagem (bits 15...8) | ignorar (bits 7...5) Prescaler (bits 4...0)
ß Registrador TH0 (endereço 8Ch) ou registrador TH1 (endereço 8Dh) recebe o valor inicial da contagem (valor escrito pelo software, até FFh). ß Ao ocorre um overflow nesse registrador, o T/C em uso gera um pedido de interrupção interno, que poderá ser ou não aceito pela CPU. ß O valor presente nesse registrador pode ser lido pelo software a qualquer momento. ß O sinal de contagem (interno ou externo) será dividido pelo valor binário presente nos bits “0” a “4” do registrador TL0 (endereço 8Ah) ou TL (endereço 8Bh), no T/C usado. ß Os bits “5”a “7” devem ser ignorados em caso de leitura.
Exemplo: É desejada uma contagem com as seguintes características: De 9Bh até FFh e que a cada 20 pulsos aplicados na entrada externa do T/C 0 (pino T0), este incremente seu registro de uma unidade. Assim temos: 9Bh – FFh = 64h = 100 contagens em decimal, sendo desejado então que a cada 100 contagens internas uma interrupção seja gerada e, possibilitar assim que um determinado controle do sistema seja feito pela CPU. Dessa forma temos uma interrupção a cada 2000 sinais externos. Isso é conseguido programando-se T/C 0 como contador no modo 0, carregando-se TH0 com 9Bh e TL0 com 14h (20 decimal). A rotina de interrupção, além do tratamento desta, deverá escrever o valor inicial em TH0 (máx. contagem = 255 x 32)