Mudanças entre as edições de "MIC29004-2014-1"
(Desfeita a edição 69126 de Roberto.matos (Discussão)) |
|||
Linha 176: | Linha 176: | ||
* Memória | * Memória | ||
− | = Aula 15/05: | + | = Aula 15/05: Assembly 8051 = |
− | * [http://www.8052.com/set8051 | + | * Organização de um Código Assembly |
+ | * Instrução do montador: ORG, DB, END | ||
+ | * Prática com o [http://mcu8051ide.sourceforge.net/ MCU8051IDE]. | ||
+ | * [http://www.8052.com/set8051 Conjunto de Instruções] | ||
+ | * Modos de Endereçamento | ||
* Imediato | * Imediato | ||
Linha 193: | Linha 197: | ||
*:<code>MOVC A, @A+DPTR</syntaxhighlight> | *:<code>MOVC A, @A+DPTR</syntaxhighlight> | ||
− | |||
− | |||
− | |||
== Exemplo == | == Exemplo == |
Edição das 12h45min 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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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:
- Entrar no Windows.
- Baixe o arquivo de projeto. Coloque em um diretório conhecido.
- Clique sobre o arquivo. O PROTEUS será executado e o projeto aberto.
- 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.
- Grave o dado Ah na posição 0 de memória e Bh na posição 8.
- 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.
- 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
- Executar código da memória manualmente? Qual o valor final do Acumulador?
- "Desmontar" o conteúdo da memória de programa.
- Montar os exercícios de Assembly da lista de exercícios e executar.
- Implementar o circuito decodificador da Unidade de Controle.
- 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
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: Assembly 8051
- Organização de um Código Assembly
- Instrução do montador: ORG, DB, END
- Prática com o MCU8051IDE.
- Conjunto de Instruções
- Modos de Endereçamento
- 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>
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.