notas de aula prof. andré r. hirakawa prof. paulo s...
TRANSCRIPT
��������������
�� �
Notas de AulaProf. André R. HirakawaProf. Paulo S. CugnascaProf. Carlos E. Cugnasca
����������
�� �
������������� �������
SISTEMAS COMPACTOS: � MEMÓRIAS ROM/RAM INTERNAS� E/S INTERNOS:� 1 CANAL SERIAL (CONSOME P3.0 E P3.1)� 2 TIMERS/CONTADORES (PODEM CONSUMIR
P3.4 E P3.5)� 2 INTERRUPÇÕES EXTERNAS (CONSOMEM
P3.4 E P3.5)� 26 LINHAS E/S (4X8-2-2-2): P0 (2 CARGAS TTL),
P1, P2, P3 (1 CARGA TTL)� MODOS DE BAIXO CONSUMO
������������������ ��
EXPANSÃO DE MEMÓRIA:� ROM: 0000H A FFFFH →→→→ até 64 k bytes
� 80C31: SÓ ROM EXTERNA� 80C51:� CASO EA/ = 1: 4k INT. E ATÉ 60 K EXT.� CASO EA/ = O: SÓ ROM EXTERNA
� RAM: 0000H A FFFFH – até 64 k bytes, ALÉM DA RAM INTERNA
� E/S INTERNOS: PARTE CONSUMIDA PELAS EXPANSÕES (SOBRA P1)
� EXPANSÃO DE MEMÓRIA: P0 →→→→ AD0-7, P2 →→→→ A8-15, P3.6 →→→→ WR/, P3.7 →→→→ RD/
� EXPANSÃO DE E/S: MAPEADA NO ESPAÇO DE MEMÓRIA RAM.
� EX.: DISPLAY, PORTAS PARALELAS, CONVERSOR A/D
������������������ ��
������ ��
� 128 BYTES� REGISTROS ESPECIAIS
128 BYTES
RAM INTERNA USO GERAL E PILHA
127
0
7FH
00H
128 BYTES
REGISTROS DE FUNÇÕES
ESPECIAIS
SFR255
128
FFH
80H
������ ��������
BANCO 0R7...R0
07H
00H
BANCO 1R7...R0
0FH
08H
BANCO 2R7...R0
17H
10H
PODEM SER USADOS COMO REGISTRADORES DE ÍNDICE (R0 E R1)
SELEÇÃO: 2 BITS DO PSWEX.: INTERRUPÇÕES USAM
BANCO 1, PROGRAMA USA BANCO 0
BANCO 3R7...R0
1FH
18H
BITS E BYTES ENDEREÇÁVEIS2FH
20H
BYTES ENDEREÇÁVEIS7FH
30H
���� ��������� �
↓↓↓↓ bit e byte endereçáveis87PCONDPHDPLSPP0808FTH1TH0TL1TL0TMODTCON8897P1909FSBUFSCON98A7P2A0AFIEA8B7P3B0BFIPB8C7C0CFC8D7D0DFPSWD8E7ACCE0EFE8F7BF0FFF8
�������������
PARIDADE
EXP.FUT.
OVERF.0O: BANCO 001: BANCO 110: BANCO 211: BANCO 3
USERDEF.
CARRYAUX.
CARRY
POVRS0RS1F0ACCY
01234567PSW:
�� ��������� ���� ��
� ROM: SÓ PROGRAMAS E LEITURA DE CONSTANTES� ACESSO À ROM EXTERNA GERA SINAL PSEN/ (~RD/
PARA ROM)� FORMA DE LER CONSTANTES DA ROM: USAR O
REGISTRADOR DPTR� EX.: ÚNICA MANEIRA DE SE LER CONSTANTES NA
ROM EXTERNA
end. x
(A) ←←←← conteúdo end. xA, @A + DPTRMOVC
(DPTR) ←←←← dado16DPTR, #dado16MOV
# - IMEDIATO @ - INDIRETO
�� ��������� ���� ��
� RAM INTERNA E RAM EXTERNA (GERA RD/ E WR/):� ENDEREÇOS IGUAIS, MAS ACESSADAS COM INSTRUÇÕES
DIFERENTES� EX.: END. 20H INTERNO – MODO DE END. DIRETO
(20H) ←←←← (A)20H, AMOV
– END. 20H EXT. – MODO DE END. INDEXADO– USANDO Ri (8 BITS, MAIS RÁPIDO)
(A) ←←←← (20H) A, @R0MOVXLeitura
(20H) ←←←← (A) @R0, AMOVXEscrita
(R0) ←←←← 20HR0, #20HMOV
�� ��������� ���� ��
� QUALQUER POSIÇÃO: USAR DPTR (16 BITS)
(A) ←←←← ((DPTR))A, @ DPTRMOVXLeitura
((DPTR)) ←←←← (A)@DPTR, AMOVXEscrita
(DPTR) ←←←← dado16DPTR, # dado16MOV
�����
� SEMPRE NA RAM INTERNA� PONTEIRO DA PILHA: SP (81H)� PUSH / POP : 1 BYTE, END. RETORNO: 2 BYTES
7FH
. . .
60H
INSERSÃO: SP + 1REMOÇÃO: SP - 1
BASE DA PILHAP.EX., 5FH
30H31H5FH
20H2FH
��������������������������
� APENAS PARA AS VERSÕES CHMOS: � EX.: 80C51BH, 80C31BH, 87C51,
80C52BH, ...
����������
� A UCP PÁRA� RAM E DEMAIS COMPONENTES CONTINUAM ATIVOS →→→→
CONSUMO CAI PARA 15% DO ORIGINAL� PORTAS E/S MANTÊM O ÚLTIMO ESTADO� ALE E PSEN/ = 1
� FORMA DE ENTRADA DESSE MODO:� BIT 0 PCON ←←←← 1� FORMAS DE SAÍDA DESSE MODO:
� a. POR INTERRUPÇÃO HABILITADA� 1. COLOCAR 0 NO BIT 0 DE PCON (TIRA DE IDLE)� 2. DESVIA P/ TRATAMENTO INTERRUPÇÃO� 3. RETI LEVA PARA A INSTRUÇÃO SEGUINTE À QUE COLOCOU A UCP EM
IDLE� b. RESET:
� IDEM 1 E 3: NÃO VAI PARA A POSIÇÃO 0000H !
��������� �����
� TODAS AS ATIVIDADES DA UCP SÃO SUSPENSAS� A RAM INTERNA MANTÉM OS DADOS� ALE, PSEN/ VÃO PARA “0”� PORTAS E/S: MANTÉM ÚLTIMO ESTADO (COLOCAR “0” ,
SE POSSÍVEL, POIS REDUZ O CONSUMO)
� CONSUMO:� 10 mA, E Vcc PODE SER REDUZIDO A ~ 2.0 V
� FORMA DE ENTRADA DESSE MODO:� BIT 1 PCON ←←←← 1
� FORMA DE SAÍDA DESSE MODO:� RESET:� RECOMEÇO DO PROGRAMA EM 0000H
��� !" ��� �����#��
� 4 PORTAS DE ENTRADA E SAÍDA, ENDEREÇADAS POR BYTE OU POR BIT, BIDIRECIONAIS.
� ÚTEIS PARA CONTROLAR PERIFÉRICOS, IMPLEMENTAÇÃO DE “HANDSHAKING”, FUNÇÕES LÓGICAS, PORTAS PARALELAS, ETC.
P0 - END. 80H (P0.0 - 80H, P0.1 - 81H, ... , P0.7 - 87H):
• NÃO DISPONÍVEL EM CASO DE EXPANSÃO EXTERNA DE MEMÓRIA (AD0-AD7)
• SUPORTA 8 CARGAS TTL LS. • NÃO POSSUI RESISTORES DE “PULL-UP” INTERNOS.
������� ��$����� ��
P1 - END. 90H (P1.0 - 90H, P1.1 - 91H, ... , P1.7 - 97H):
� SUPORTA 4 CARGAS TTL LS. � POSSUI RESISTORES DE “PULL-UP” INTERNOS.
��� !" ��� �����#��
P2 - END. A0H (P2.0 - A0H, P2.1 - A1H, ... , P2.7 - A7H):
• NÃO DISPONÍVEL EM CASO DE EXPANSÃO EXTERNA DE MEMÓRIA (A8-A15).
• SUPORTA 4 CARGAS TTL LS. • POSSUI RESISTORES DE “PULL-UP” INTERNOS.
��� !" ��� �����#��
P3 - END. B0H (P3.0 - B0H, P3.1 - B1H, ... , P3.7 - B7H):
� ALGUNS BITS NÃO DISPONÍVEIS NO CASO DE USO DOS RECURSOS PORTA SERIAL E TIMERS.
� SUPORTA 4 CARGAS TTL LS. � POSSUI RESISTORES DE “PULL-UP” INTERNOS.
B0HB1HB2HB3HB4HB5HB6HB7HEND.
RXDTXDINT0/INT1/T0T1WR/RD/SINAL
P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7BIT
� ALGUMAS INSTRUÇÕES LÊEM O PINO DA PORTA:MOV C,P1.5 ; FLAG CARRY ←←←← P1.5
� O NÍVEL LÓGICO PODE ESTAR DEGENERADO (CARGAS MAIS ALTAS, P.EX., TRANSISTORES). NESSE CASO, PODE-SE LER A SAÍDA DO LATCH:
� INSTRUÇÕES QUE LÊEM E MODIFICAM (POR EX., COMPLEMENTO) LÊEM A SAÍDA DO LATCH:
CPL P1.5 ; COMPLEMENTA P1.5
� 1 CANAL SERIAL� 2 TIMERS/CONTADORES� EXPANSÕES: MAPEADAS NA MEMÓRIA RAM.
� EXEMPLOS: DISPLAYS, PORTAS DE 8 BITS ADICIONAIS, CONVERSORES AD E DA.
��� !" ��� �����#��
�� !" ���� �����
� INT0/ (MAIS PRIORITÁRIA) E INT1/: BITS DA PORTA P3� INTERRUPÇÕES VETORADAS, COM VETOR FIXO NA
MEMÓRIA DE PROGRAMA� HABILITAÇÃO E DESABILITAÇÃO INDIVIDUAL: BITS DO IE� INTERRUPÇÕES POR SOFTWARE: NÃO POSSUI (TRAP OU
RST), MAS PODEM SER SIMULADAS (ESCRITA NO REGISTRADOR DE INSTRUÇÕES). USO: POR EXEMPLO, CHAMADAS AO SISTEMA OPERACIONAL.
� PRIORIDADES – A INTERRUPÇÃO DE PRIORIDADE MAIOR INTERROMPE A INTERRUPÇÃO DE PRIORIDADE MENOR:
� INT0/, TIMER 0, INT1/, TIMER 1, CANAL SERIAL� MASCARAMENTO PERMITIDO – REGISTRADOR IE� PERMITE A CRIAÇÃO DE DOIS GRUPOS DE PRIORIDADE
(“NESTING”):� INTRi: SENSÍVEL À BORDA DE DESCIDA OU A NÍVEL ("0"),
CONFIGURÁVEL
%��� ������ �����
...
CANAL SERIAL0023H
...
TIMER 1001BH
...
INT1/0013H
...
TIMER 0000BH
...
INT0/0003H
...
RESET0000H
�� ��� ������� �����
���� ��� ����&���'
88H89H8AH8BH8CH8DH8EH8FHEND.
IT0IE0IT1IE1TIMERS 0 E 1SINAL
TCON.0TCON.1TCON.2TCON.3TCON.4TCON.5TCON.6TCON.7BIT
ITi = “1”: INTi\ ACEITA NA TRANSIÇÃO DE “1” PARA “0”, DEVENDO PERMANECER EM 0 POR PELO MENOS 12 PERÍODOS DE CLOCK
ITi = “0”: INTi\ ACEITA SE NA AMOSTRAGEM ESTIVER EM “0” (DEVE VOLTAR PARA “1” ANTES DO RETORNO DA ROTINA DE TRATAMENTO
IEi: O HARDWARE INTERNO O FAZ = “1” QUANDO DETECTADA UMA TRANSIÇÃO DE “1” PARA “0” EM INTi\, E = “0” QUANDO TRATA INTi\
���� ��� ��&���'
A8HA9HAAHABHACHADHAEHAFHEND.
EX0ET0EX1ET1ESEASINAL
IE.0IE.1IE.2IE.3IE.4IE.5IE.6IE.7BIT
���� ��� ��&(��'
B8HB9HBAHBBHBCHBDHBEHBFHEND.
PX0PT0PX1PT1PSSINAL
IP.0IP.1IP.2IP.3IP.4IP.5IP.6IP.7BIT
�������������
� 2 Timer/Counter de 16 bits� Várias formas de entrada� Geração interrupção� Timer 1 utilizado para gerar o Baud rate da UART