Mudanças entre as edições de "MIC29004-2014-1"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
(Desfeita a edição 69126 de Roberto.matos (Discussão))
Linha 198: Linha 198:
  
 
== Exemplo ==
 
== Exemplo ==
<code>
+
<code>
 +
;INSTRUÇÕES DO 8051
 +
 
ORG 0
 
ORG 0
 
Inicio:
 
Inicio:

Edição das 12h43min de 15 de maio de 2014

Microprocessadores: Diário de Aula 2014-1

Professor: Roberto de Matos
Encontros: 3ª e 5ª feira às 15:40.
Atendimento paralelo: 2ª feira das 15:40 às 17:30.

Material

Listas de Exercício

Aula 11/02: Apresentação

  • Apresentação do professor.
  • Apresentação dos alunos: Nome, perfil, preferências, etc.
  • Apresentação da disciplina: conteúdo, bibliografia e avaliação.
  • Aula Introdutória: Projetos práticos com Microcontroladores

Aula 13/02: Histórico

  • Evolução dos processadores

Aula 18/02: Introdução a Memória

  • Latch D e Tristate
  • Célula básica de memória
  • Circuito genérico de memória
  • Barramentos de dados, endereços e controle
  • Tamanho da memória e Largura da Palavra (N x M)
  • Capacidade em bits
  • Associação de Memórias

Aula 20/02: Lab. Proteus – Memória

Multiples of bytes
Decimal
Value Metric
1000 kB kilobyte
10002 MB megabyte
10003 GB gigabyte
10004 TB terabyte
10005 PB petabyte
10006 EB exabyte
10007 ZB zettabyte
10008 YB yottabyte
Binary
Value JEDEC IEC
1024 KB kilobyte KiB kibibyte
10242 MB megabyte MiB mebibyte
10243 GB gigabyte GiB gibibyte
10244 - - TiB tebibyte
10245 - - PiB pebibyte
10246 - - EiB exbibyte
10247 - - ZiB zebibyte
10248 - - YiB yobibyte
Fonte: http://en.wikipedia.org/wiki/Kilobyte
  • Consolidar o conhecimento sobre memórias e barramentos de endereços, dados e controle através de um experimento no Proteus.
  • Roteiro:
  1. Entrar no Windows.
  2. Baixe o arquivo de projeto. Coloque em um diretório conhecido.
  3. Clique sobre o arquivo. O PROTEUS será executado e o projeto aberto.
  4. Observe que o projeto está parcialmente pronto. Você pode entrar em modo simulação. O sistema está preparado para que se possa inserir ou ler manualmente posições de memória.
  5. Grave o dado Ah na posição 0 de memória e Bh na posição 8.
  6. Note o Chip Select está habilitado sempre. Coloque uma chave adicional para colocar o Chip Select e repita a operação de gravação anterior.
  7. Utilize a nova configuração para gravar o seu número de matrícula a partir da posição 0.

Exercícios

  • Usando a memória do experimento como bloco base, realize a ligação entre elas de modo que se construa um banco de memória de 32 palavras de 8 bits.
  • Usando a memória do experimento como bloco base, realize a ligação entre elas de modo que se construa um banco de memória de 64 palavras de 4 bits.
  • Quais os tamanhos dos barramentos de endereço e dado para uma Memória de 512x8 bits?
  • Determine a capacidade final em bits e o endereço inicial e final em Hexadecimal das memórias com as seguintes características:
    • 512x4
    • 4Kx8
    • 128Kx8
    • 2Mx16

Aula 25/02: Lab. Proteus – Memória (cont.)

Exercícios

  • Usando a memória do experimento como bloco base, realize a ligação entre elas de modo que se construa um bancos de memórias de:
    • 16 palavras de 8 bits.
    • 32 palavras de 4 bits.

Aula 27/02: Tipos de Memória

  • ROM (PROM, EPROM, EEPROM, FLASH);
  • RAM (DRAM, SRAM, DDR)
  • Diferença das células

Aula 04/03: Não Houve Aula - CARNAVAL

Aula 06/03: Introdução à Arquitetura de Computadores

Aula 11/03: Não Houve Aula

Aula 13/03: Não Houve Aula - Treinamento Proteus

Aula 17/03: Arquitetura BIP

Aula 20/03: Organização BIP

Aula 25/03: Exercício Proteus

  1. Executar código da memória manualmente? Qual o valor final do Acumulador?
  2. "Desmontar" o conteúdo da memória de programa.
  3. Montar os exercícios de Assembly da lista de exercícios e executar.
  4. Implementar o circuito decodificador da Unidade de Controle.
  5. Quais são as BOM da UC e UE?

Proteus

  • Barramentos (conexão, bifurcação)
  • Terminal Mode
  • Labels
  • Teclas de atalhos

Aula 27/03: Exercício Proteus (cont.)

  • Simulação das instruções (busca, decodificação e execução)
  • Montagem de programa
  • Criação do Circuito decodificador

Proteus

  • Arquivos de Inicialização da Memória
  • Watch window (16-bits)


Aula 01/04: Integração do Decodificador

  • Geração da decodificação do BIP a partir do Opcode.
  • Compreensão do conceito de "monociclo" (busca, decodificação e execução).

Proteus

  • Criação de componente
  • Criação de modelos de componentes simuláveis

Aula 08/04: BIP II - Organização e arquitetura

ALU Bip I


Aula 10/04: BIP II - Modificações PC, Decodificador e ALU

Solving Large Karnaugh Maps with Smaller Ones

Aula 17/04: BIP II - Projeto Decodificador BIP II

Aula 22/04: BIP II - Teste Decodificador BIP II

  • Decodificador BIP II
  • Teste decodificador.
  • Reproduza cada um dos seguintes programas para assembly, atribuindo às variáveis valores que lhe permitam testar o seu programa.

a) if (a>=b) b=b+1;

b) if (a>b) a=a+1;

c) if (a==b) a=a+1;

d) Adicione "else" nos exercícios anteriores.

e) a=0;c=5;

  while (a<c){

a=a+1;

  }

f) a=0;

  for (i=0; i<5 ;i++){

a=a-1;

  }

</syntaxhighlight>


Aula 24/04: Revisão para Prova – Dúvidas Lista de Exercício

Aula 29/04: Não Houve Aula – Convocação RDP

Aula 01/05: Não Houve Aula – Dia do Trabalhador

Aula 06/05: 1ª Prova

Aula 08/05: Microcontroladores

  • Microcontrolador vs Microprocessador
  • Aplicações
  • Limitações

Aula 13/05: 8051

  • Introdução
  • Arquitetura Interna
  • Memória

Aula 15/05: Modos de Endereçamento 8051

  • Imediato
    MOV A, #100</syntaxhighlight>
  • Direto
    MOV A, 20</syntaxhighlight>
  • Indireto
    MOV A, @R0</syntaxhighlight>
  • Registro
    MOV A, R0</syntaxhighlight>
  • Registro Específico
    MOVX A, @DPTR</syntaxhighlight>
  • Indexado
    MOVC A, @A+DPTR</syntaxhighlight>
  • Organização de um Código Assembly
  • Instrução do montador: ORG, DB, END
  • Prática com o MCU8051IDE.

Exemplo

INSTRUÇÕES DO 8051

ORG 0 Inicio: mov 20h,#30h ;Ender. Imediato (valor constante esta' no opcode) mov 30h,#07ah ;Ender. Imediato (valor constante esta' no opcode) mov r0,30h ;Ender. Direto (operando especifica ENDERECO de 8 bits da RAM interna)

mov a,r0 ;Ender. via registrador (opcode contem 3 bits indicando qual registrador usar) mov a,20h ;Ender. Direto (operando especifica ENDERECO de 8 bits da RAM interna) mov a,#20h ;Ender. Imediato (valor constante esta' no opcode) mov a,@r0 ;Ender. Indireto (registrador R0, R1, contem endereco do operando)

mov dptr,#tabela ;Ender. Imediato (valor constante esta' no opcode)


tabela: db 10h,20h,30h,0BBh,0AAh

end

</syntaxhighlight>

Exercícios

Endereçamento direto da IDATA

  • Construir um trecho de código para colocar a mensagem "ALO" na memória RAM interna, a partir do endereço 30H. Usar endereçamento imediato e direto.
  • Construir um trecho de código para copiar 5 bytes consecutivos da memória RAM interna a partir do endereço 50H para um destino a partir de 42H. Usar somente endereçamento direto e por registrador.
  • Repetir o exercício anterior usando somente endereço direto.
  • Copiar 5 bytes consecutivos de uma área interna de memória de dados, a partir da posição 40H para a posição 66H. Usar endereçamento indireto e imediato.

Endereçamento indireto da XDATA

  • Zerar as posições de memória RAM externa (XDATA) de número 80FFH, 9765H e FEA5H.
  • Colocar a mensagem "ALO" nas posições de memória externa de dados 0670h,0671h e 0672h.
  • Copiar os bytes das posições 4654H, 7687H e FADEH da XDATA para as posições 0000H, 0005H e A000H respectivamente.

Endereçamento indexado do CODE

  • Uma mensagem "ALO" foi gravada na área CODE a partir da posição de memória 5465H. Copie esta mensagem para a área de memória interna de dados, a partir das posições 76H.
  • Repetir o exercício anterior mas agora copiando para a RAM externa de dados para um destino a partir de F555H.