MIC29004-2015-1 Microprocessadores - Engenharia
Informações Gerais
- Professor: Eraldo Silveira e Silva
- email: eraldo@ifsc.edu.br
Plano de Ensino
Recursos
- Apostila Memória
- Slides Memória
- Introdução à Microprocessadores
- Arquitetura e Organização do BIP
- Microcontrolador e 8051
Aulas
Dia 09/02/2015
- Apresentação inicial;
- Visão geral do funcionamento de um sistema microprocessado.
Dia 10/02/2015
Objetivos da Aula
O aluno deverá ao final ser capaz de:
- identificar uma célula básica de memória com portas lógicas e flip-flops;
- construir latches a partir de células básicas de memória;
- identificar o papel dos barramentos de dados, controle e endereços em uma memória;
- associar a largura dos barramentos de dados e endereços a capacidade da memória;
- associar memórias.
Desenvolvimento
- Links:
Exercícios
1) Construir um banco de memórias RAM de 64Kbytes a partir de CIs de memória de 16K. Mostrar uma tabela com os endereçamentos associados a este banco.
2) Construir um banco de memória de 1Mbytes usando 1 CI de 512Kbytes, 1 CIs de 256Kbytes e 4 CIs de de 64Kbytes.
Dia 23/02/2015
- Introdução a Memória (cont.):
- Tamanho da memória e Largura da Palavra (N x M)
- Capacidade em bits
- Associação de Memórias
Proteus
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
Dia 24/2/2015=
Resolução dos xercícios de associação de memória
Dia 2/3/2015
Objetivos
- Finalização do assunto memórias;
- Classificação de memórias;
Material
- Slides de Memória;
Links interessantes
Dia 2/3/2015
- Introdução aos microprocessadores usando os slides indicados acima.
Dia 9/3/2015
- Continuação da introdução aos microprocessadores;
- início da apresentação do BIP.
Dia 10/3/2015
- Exercício BIP com Associação de Memória;
- Continuação das trasnparências.
Dia 23/3/2015
- Experimento 2: Simulação do BIP e Geração de Sinais de Controle de Forma Manual
1.Baixar e descomptar em um diretório os arquivos abaixo
2.Instalar a biblioteca e modelo antes de abrir o projeto usando o Menu System->Settings:
3.Abrir o projeto do BIP
4.Simular e gerar os sinais de controle conforme a instrução.
Dia 30/03/2015
Objetivos
- Exercícios de BIPv1 e v2
Exercícios
Aula 31/03/2015
Objetivos
- Apresentar a estrutura do BIP II
Proposta de Trabalhos
Proposta I (Adalvir e Lucas Gomes)
- Acrescentar hardware no BIP 2 para controlar 8 LEDs no endereço de memória 0x7FF. Desabilitar os últimos 512 bytes da RAM para IO;
- Desenvolver um programa de loop infinito para acender de forma incremental os LEDs.
Apresentação: Quinta - 30/4 - 10h00
Proposta II (Helen e Maria)
- Acrescentar hardware no BIP 2 para controlar 8 LEDs no endereço de memória 0x0FF. Desabilitar os primeiros 512 bytes da RAM para permitir acesso ao IO;
- Desenvolver um programa de loop infinito para rotacionar a direita um bit nos LEDs.
Apresentação: Quinta - 30/4 - 10h30
Proposta III (Cantú e Lucas)
- Acrescentar hardware no BIP 2 para ler um número inteiro de 16 bits na posição 0x7ff. Desabilitar os últimos 512 bytes da RAM para IO;
- Implementar um programa para calcular a soma deste número com o valor 18 e armazenar o resultado na posição de memória RAM 0x0e0;
Apresentação: Quinta - 30/4 - 11h00
Proposta IV (Anderson e Rafael)
- Acrescentar hardware no BIP 2 para ler um número inteiro de 16 bits na posição 0x05f. Desabilitar os primeiros 512 bytes da RAM para IO;
- Implementar um programa para calcular subtrair deste número o valor 18 e armazenar o resultado na posição de memória RAM 0x7c0;
Apresentação: Quinta - 30/4 - 11h30
Proposta V (Marcos e Iago)
- Acrescentar um hardware no BIP v2 para mostrar em um display BCD 7 segmentos valores de 0x00 a 0xFF acessado no endereço 0x7FF. Desabilitar os últimos 512 bytes da RAM para IO;
- Implementar um programa para realizar a contagem crescente mostrando somente números pares.
Apresentação: Quinta - 7/5 - 10h00
Proposta VI (irmãs Fertig)
- Acrescentar um hardware no BIP v2 para mostrar em um display BCD 7 segmentos valores de 0x00 a 0xFF acessado no endereço 0x0FF. Desabilitar os primeiros 512 bytes da RAM para IO;
- Implementar um programa para realizar a contagem crescente mostrando somente números ímpares.
Apresentação: Quinta - 7/5 - 10h30
Proposta VII (Kleiton e Gustavo)
- Acrescentar hardware no BIP 2 para controlar 8 LEDs no endereço de memória 0x7FF e ler o estado de uma chave neste mesmo endereço. Desabilitar os últimos 512 bytes da RAM para IO;
- Desenvolver um programa parar rotacionar a direita ou a esquerda os LEDs conforme o estado da chave.
Apresentação: Quinta - 7/5 - 11h00
Proposta VIII (Jessica e Letícia)
- Acrescentar hardware no BIP 2 para controlar 8 LEDs no endereço de memória 0x0FF e ler o estado de 8 chaves neste mesmo endereço. Desabilitar os primeiros 512 bytes da RAM para IO;
- Desenvolver um programa parar piscar todos os LEDs mas somente piscar àqueles habilitados pelas chaves.
Apresentação: Quinta - 7/5 - 11h30
Proposta IX (João e Gabriel)
- Acrescentar um hardware no BIP v2 para mostrar em um display BCD 7 segmentos valores de 0x00 a 0xFF acessado no endereço 0x2FF. Desabilitar o terceiro bloco de 256 bytes da RAM para IO;
- Implementar um programa para realizar a contagem decrescente mostrando somente números pares.
Apresentação: Quinta - 30/4 - 9h30
Aula Dia 13/4/2015
- Introdução ao microcontrolador 8051
- Uso slides e quadro negro
Aula Dia 14/4/2015
- Introdução ao microcontrolador 8051
- Uso slides e quadro negro
Procedimento para associar um arquivo hex a uma memória:
- 1.Edite o arquivo com um editor de texto puro (bloco de notas, gedit) e salve o arquivo em um diretório conhecido.
- 2.No Proteus, clique com o botão da direita e edite as propriedades.
- 3.Na janela Outras Propriedades insira
FILE=C:\Users\eraldo\teste.hex,ASCHEX
- Tenha certeza que o caminho está correto. No gerenciador de sistema de arquivos do windows, podes clicar com a direita e ver propriedades para verificar o caminho correto.
- 4.Salve e verifique que aparece ao lado da memória a propriedade inserida.
- 5.Caso queira mudar novamente podes clicar diretamente no nome ao lado da memória.
Aula Dia 27/4/2015
Media:Aula8-ModosEndereçamento-Exercícios.pdf
Aula Dia 11/05/2015
Objetivo
- Operações com bits
Dia 12/05/2015
Arquivo:Controle-Fluxo-Parte2.pdf
Dia 19/05/2015
Objetivos
- Temporizadores e Contadores no 8051
Referências
Dia 25/05/2015
Exercício
Implementar um gerador de onda retangular de 50Khz com duty cycle controlável através dos bits P1.1 e P1.2 (25%,50%,75%). A saída da onda deve ser no P1.0. Usar o Timer 1 com controle por polling em TF1. Considere um cristal de 12Mhz.
AULA Dia 26/05/2013
Objetivos
- interrrupções
Dia 08/06/2015
Avaliações Projeto I
131001053-6 | ADALVIR ASSUNCAO JUNIOR | C |
122001993-3 | ANDERSON DEMETRIO PLACIDO | B |
132002623-0 | GABRIEL COZER CANTU | A |
132002450-5 | GABRIEL WAGNER GONCALVES | C |
132005742-0 | GUSTAVO WAGNER GONCALVES | C |
132002999-0 | HELENLUCIANY CECHINEL | A |
131004419-8 | IAGO SOARES DOS SANTOS FARIA | A |
131005150-0 | JESSICA DA SILVA HAHN | A |
131001281-4 | JOAO VITOR RODRIGUES | A |
121000492-5 | KATHARINE SCHAEFFER FERTIG | A |
132002417-3 | KLEITON CARLOS DE SOUZA | C |
121000484-4 | KRISTHINE SCHAEFFER FERTIG | A |
132004514-6 | LETICIA APARECIDA COELHO | A |
122001832-5 | LUCAS GOMES DE FARIAS | C |
132002264-2 | LUCAS LUCINDO VIEIRA | A |
131005334-0 | MARCOS VINICIOS PINHO | B |
132004278-3 | MARIA LUIZA THEISGES | A |
142001510-9 | RAFAEL TURNES SILVEIRA | B |
122006713-0 | VINICIUS TEIXEIRA MACHADO | X |
Dia 8/06/2015 Comunicação Serial
Dia 9/6/2015 Proteus e 8051
Código Serial
org 0100h
Start:
; Write your code here
acall init_uart
acall envia_texto
final:
sjmp final
;inicia a uart para baudrate 9600
init_uart:
mov TMOD,#00100000b ; timer 1 em modo 2
mov TH1, #0FDh ; baudrate 9600
setb TR1 ; liga timer 1
mov SCON,#01010000b ; porta serial modo 1
clr TI ; para garantir clear TI mas nao eh necessario
ret
- envia mensagem texto
envia_texto:
mov DPTR,#texto
tx_msg:
mov A,#0
movc A,@A+DPTR
acall envia_car
inc DPTR
jnz tx_msg
fim_tx: ret
;envia um caracter
envia_car:
mov SBUF,A
loop: jnb TI,loop
clr TI
ret
texto: db "Alo Mundo"
- ====================================================================
END
</syntaxhighlight>
Referencias
Projeto 1
- Controle de acesso para 10 usuarios diferentes. Os usuários podem ser programados no sistema.
- teclado
- display LCD
Projeto 2
- Sistema de controle de presença: o aluno entra com um número de matrícula e registra a sua presença em sala. O professor determina os alunos da turma.
- teclado
- display LCD
Projeto 3
- Sistema de Controle de Estoque. Consulta a quantidade de uma peça dado o seu ID. O gerente pode inserir peças no sistema (ID da peça e a quantidade).
- teclado
- display LCD
Aula dia 15/06/2015
- Uso do LCD
Ver link ftp://ftp.dca.fee.unicamp.br/pub/docs/ea079/complementos/Lcd.pdf
Adendo ao trabalho
- Todos os trabalhos deverão implementar um código para que o sistema quando não estiver sendo utilizado mostre uma animação no display. O desenho usado na animação deve ser programa no display. O sistema deve entrar em modo de operação via interrupção.
Aula dia 16/06/2015
Outros
http://www.q.hscott.net/reads/paulos-part-i.pdf
http://www.dca.ufrn.br/~pablo/index.php?corpo=arquitetura.html
http://bipide.com.br/wp-content/uploads/
http://www.eecis.udel.edu/~portnoi/classroom/sistemas_computacao/2006_1/lecture_slides/aula04.pdf
http://usuarios.upf.br/~rebonatto/organizacao/organizacao.pdf