Organização de Memórias

Documentos relacionados
SEMINÁRIO ASSEMBLY: Arquitetura 8051

Microcontrolador 8051

Microcontrolador 8051:

MICROCONTROLADOR 8051

Microprocessadores. Organização de Memória

Família 8051 (introdução) 2011/1

Aula 10 Microcontrolador Intel 8051 Parte 2

Microcontroladores 8051

8051 Estudo de Caso. Prof. Carlos E. Capovilla - CECS/UFABC 1

Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina. Temporização Interrupções Rotinas de Atraso

O microcontrolador Quatro partes importantes

Memória de Dados Interna. Memória de Dados Interna

Prof. Adilson Gonzaga

Prof. Adilson Gonzaga

Interrupção. Prof. Adilson Gonzaga

SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES

SEL 337 Aplicação de Microprocessadores II

UTFPR Departamento Acadêmico de Eletrônica Curso Técnico em Eletrônica Microcontroladores 1 - Prof. Cion nov/2010 (atualizado em jul 2015)

UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III

Aula 8 Microcontrolador 8051

Aula 8 Microcontrolador 8051

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 Resposta Esperada

Temporização Interrupções. Prof: Evandro L. L. Rodrigues. Rotinas de Atraso

SEL-433 Aplicação de Microprocessadores I. Prof: Adilson Gonzaga

Interface Serial. Prof. Adilson Gonzaga

SEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga

Microprocessadores. Movimentação de Dados

2.4 Temporização da CPU

Aula 10 Microcontrolador Intel 8051 Parte 1

Interrupções 8051 Porta Serial

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051) Resposta Esperada

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUCAO POSSÍVEL

7. PROGRAMANDO O MICROCONTROLADOR. Microcontroladores - Prof: Demantova

Laboratório de Microprocessadores e Microcontroladores

Estrutura Básica de um Computador

9/3/2009. Aula 4. Engenharia de Sistemas Embarcados. Cenário: Sistema de Controle de LEDs

17/04/2017. Comunicação Serial. Comunicação Serial. Comunicação de Dados em Microprocessadores. . Comunicação Paralela. Comunicação Serial

Aula 4. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Arquitetura de um microcontrolador 8051

Laboratório de Microprocessadores e Microcontroladores

ESTRUTURA E FUNCIONAMENTO DO COMPUTADOR

MICROPROCESSADORES E MICROCONTROLADORES. Prova 1 Resposta Esperada

Disc.: Sistemas Microprocessados Curso Técnico em Eletrônica

Laboratório de Microprocessadores e Microcontroladores

ORGANIZAÇÃO DE MEMÓRIA NO 8051: Microcontroladores - Prof: Demantova 1

Sistemas Embarcados:

COMUNICAÇÃO SERIAL. Prof. Clayrton Henrique Microprocessadores Aula 30 Rev.02

Microcontroladores. Interrupções no Prof. Guilherme Peron Prof. Heitor S. Lopes Prof. Ronnier Rohrich Prof. Rubão

EPUSP PCS2355 Laboratório Digital MICROPROCESSADORES

MICROPROCESSADORES E MICROCONTROLADORES. PROVA 1 - Solução da Versão 1

Temporizadores e Contadores

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUÇÃO POSSÍVEL. Obs.: Todas as questões têm valor 2,0. Boa prova e Feliz Natal e Ano Novo!!!!

Comunicação Serial. Comunicação Serial

Microprocessadores TIMER/COUNTER I

Acetatos de apoio às aulas teóricas

Sistemas Microprocessados. sato<at>utfpr<dot>edu<dot>br

Programação de Microprocessadores. Programação de Microprocessadores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

As 5 partes fundamentais. Linguagem de Programação Pinagem Características Elétricas Ambiente de Desenvolvimento Integrado - IDE

Temporizadores e Contadores (Timer/Counter)

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores

Microprocessadores I. Aula 6 Arquitetura do Microprocessador Pinagem e Diagrama de Temporização

DIAGRAMA DE BLOCOS DE UM MICROCONTROLADOR

Laboratório de Microprocessadores e Microcontroladores

Arquitetura do Disciplina de Microcontroladores. Prof. Ronnier Prof. Rubão

Prof. Adilson Gonzaga

PRÁTICAS. Microcontroladores: (LT36D) Prof: DaLuz. Práticas - 2º sem Microcontroladores LT36D - 26/04/ :56 1/16

Interrupções por hardware

07/06/2015. Outras características importantes em Microprocessadores/Microcontroladores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

MSP430 - Arquitertura

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - Uma Solução Possível

No. de bits. O primeiro IBM PC foi construído com o 8088 (versão de 8 bits do 8086).

Aula 5. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Arquitetura e Ambiente de Desenvolvimento

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - RESPOSTA ESPERADA

EPAC Microcontroladores Organização do curso 30/8/2007

14/3/2016. Prof. Evandro L. L. Rodrigues

Lista de Exercícios 2

2. A influência do tamanho da palavra

Processador. Processador

CONJUNTO DE INSTRUÇÕES

Microprocessadores e Microcontroladores. Professor Lucas Araujo do Nascimento

Departamento de Engenharia Elétrica. ELE Microprocessadores II. Prof. Carlos Antonio Alves Sala 59 Fone

Transcrição:

Intel 8051 O Intel 8051 é um microcontrolador de 8 bits que pertence a família MCS-51 da Intel e foi lançado em 1977. É tido como o microcontrolador mais popular do mundo, pois é muito versátil e possui algumas centenas de fabricantes espalhados pelo mundo. É um microcontrolador CISC (Complex Instruction Set Computer), logo oferece um vasto conjunto de instruções, portanto pode ser usado tanto para uma simples tarefas como para tarefas mais complexas.

Características 3 Portas de I/O bidirecionais endereçáveis por bit. 1 Canal serial UART com interrupção e 3 modos de operação. 2 Timers/Contadores de 8/16 bit com 4 modos de operação cada um. 5 Entradas de interrupção com arquitetura nesting. 128+128 bytes de memória RAM interna, sendo apenas 128 bytes de uso geral. 8 Kbytes de memória PROM interna (desabilitáveis). Até 64Kbytes de memória RAM externa (não compartilhada). Até 64Kbytes de memória ROM externa (não compartilhada). Pino de saída de oscilador de meia onda (1/4 do clock). Clock de 1 a 12Mhz. 4 bancos de registradores. Arquitetura CISC.

Organização de Memórias A memória reservada para armazenar o programa a ser executado pela CPU no 8051 pode ocupar até 64 KB. O microcontrolador pode ou não utilizar a ROM interna; *Se utilizar, mapeará os primeiros 4kb do endereço (0000H 0FFFH). *Caso a ROM interna não for utilizada, então toda a memória será externa.

Organização de Memórias

Registradores Em geral, os microcontroladores possuem um maior numero de registradores que os microprocessadores.

Registradores Principais registradores: Registrador A: é um acumulador, responsável pelas principais operações, sobretudo as logicas e aritméticas. Registrador B: é uma registrador de uso geral. Registradores R0 até R7: também são registradores de uso geral. Registradores DH e DL: também são registradores de uso geral, mas podem ser utilizados com um registrador de 16 bits, chamado DPTR. Registrador PC: contem o endereço da próxima instrução a ser executada. Registrador SP: aponta para o topo da pilha. Registrador PSW: seus bits contém todos os flags do 8051, além de 2 bits exclusivos para a seleção do banco de registradores para determinadas operações (ex.: acesso aos registradores).

Registradores Existe um conjunto de registadores especiais,que têm funções específicas dentro do microcontrolador. São eles:

Registradores TH1, TH0, TL1, TL0 (Timer High e Timer Low): são registradores de 8 bits cada que, em conjunto (high e low), formam os registradores de contagem para cada Timer (TIMER0 e TIMER1). TCON (Timer Control Register): controla as atividades dos TIMERS. TMOD (Timer Mode Register): permite a programação dos modos de atuação de cada TIMER PCON (Power Control Register): Altera a forma de funcionamento do microcontrolador com relação ao consumo de potência quando há falta de energia, por exemplo. SCON (Serial Port Control Register): Junto com o SBUF controla todas as atividades do periférico seria. SBUF (Serial Buffer): Registrador que armazena dados recebidos da serial ou que serão transmitidos pela mesma.

Registradores IE (Interrupt Enable): habilita qual fonte de interrupção será utilizada. IP (Interrupt Priority): define a prioridade de cada interrupção. O acesso a memoria interna é composta pelos bancos de registradores, que possibilita o endereçamento à memória pelo nome de cada registrador, além de endereçamento pela posição de memória.

Clock A operação de clock do 8051 pode ser feita de duas maneiras: interna ou externamente. A utilização do clock externo é útil quando o 8051 está ligado a outros componentes que já possuam clock. No caso de utilização de clock interno, uma simples configuração envolvento dois capacitores e um cristal na freqüência desejada farão o trabalho.

Interrupções O 8051 pode ter sua execução interrompida de 5 maneiras: Duas de entradas externas (INT0 e INT1). Duas pelos temporizadores/contadores (Timer 0 e Timer 1). Uma pelo canal de comunicação serial.

Interrupções Os endereços de desvio das interrupções são fixos e dados pela tabela a seguir:

Interrupções O fato de uma interrupção estar ativa não impede que outra seja ativada ao mesmo tempo. Uma interrupção de alta prioridade interrompera uma de baixa prioridade caso ela esteja sendo executada. Apos o termino da tarefa de alta prioridade, ele voltara a executar a de baixa prioridade ou voltara a execução normal do programa. Uma interrupção de nível baixo poderá ser interrompida por outra de nível alto, mas não por outra de nível baixo. Uma interrupção de nível alto não poderá ser interrompida por qualquer outra fonte de interrupção.

Interrupções Se houverem duas interrupções de mesma prioridade o processamento será de acordo com a figura a seguir:

Interrupções Quando o 8051 atende uma interrupção o SP recebe o valor do PC. Os outros registradores não terão seus conteúdos salvos. Caso haja necessidade disso, a rotina de interrupção deverá tratar. O 8051 possui 2 registros de 8 bits cada um, que servem para controle e configuração de interrupções. São eles: IE (Interrupt Enable) que tem por finalidade indicar qual das interrupções será ou não habilitada. IP (Interrupt Priority) nele é estabelecido o nível de prioridade das interrupções.

Timers O 8051 possui dois timer/contadores de 16 bits. Quando esta trabalhando na função de timer, o registrador de contagem é adicionado a todos os ciclos de máquina. Dessa maneira, pode-se chamá-lo de contador de ciclos de máquina. Como um ciclo possui 12 períodos de clock, a contagem é feita 1/12 da frequência do cristal. Quando ele se encontra na função de contador, o registrador é adicionado como resposta a uma mudança de 1 para 0 em seu pino de entrada externa correspondente (T0 ou T1). Essa operação leva 2 ciclos de máquina para ser executada, 24 períodos de clock do oscilador, ou seja, a contagem é feita 1/24 da frequência do oscilador.

Canal Serial A interface serial do 8051 conta com dois registradores de dados, uma deles é usado na transmissão e o outro na recepção. O conjunto de instruções, contudo, referencia ambos pelo nome SBUF. A distinção entre eles é feita de acordo com a natureza da operação, escrita ou leitura. O controle do canal serial é feito pelo registrador SCON e pelo bit SMOD do registrador PCON.

Canal Serial Os bits SM0 e SM1 do registrador SCON selecionam o modo de funcionamento, de acordo com a tabela a seguir:

Canal Serial REN (Reception Enable) habilita a recepção. Quando esta em 1, o primeiro start bit em RxD implica recepção de um dado em SBUF. TI é o bit de requisição de interrupção da transmissão. É setado pelo hardware após a transmissão do oitavo bit de dados quando no modo 0, e no inicio da transmissão do stop bit nos outros modos. RI é o bit de requisição de interrupção na recepção.é setado pelo hardware no momento da recepção do oitavo bit de dados no modo 0, ou durante a recepção de um stop bit nos outros modos. TI e RI devem ser reinicializados pelas rotinas de tratamento das respectivas interrupções de modo a habilitar novas interrupções.

Algoritmos Multiplicação O seguinte algoritmo utiliza a instrução MUL. Como essa apenas multiplica o conteúdo do registrador B como o acumulador A, considerando ambos UNSIGNED, o tratamento de sinais dos operandos faz-se necessário. O resultado de 16 bits é armazenado pela instrução MUL em B e A; sendo o resultado tratado de acordo com os sinais dos operandos logo em seguida e, finalmente, armazenados em R0 e R1.

Algoritmos ; Algoritmo da Multiplicação utilizando instrução MUL ; Rotina que multiplica os valores de R2 e R3, armazenando a resposta em R0+R1 ; Neste caso, multiplicamos -3 (FDhex, ou 253dec) * 7 ; O resultado armazenado em R0+R1 é FFEBhex (-21dec, em complemento de 2)

Algoritmos ; Setando variáveis... MOV R0,#0H ; Resposta MSBits MOV R1,#0H ; Resposta LSBits MOV R2,#253 ; Multiplicador MOV R3,#7 ; Multiplicando MOV R4,#0 ; Informação dos sinais MOV A,R2 MOV R5,A ; Temporário Multiplicador MOV A,R3 MOV R6,A ; Temporário Multiplicando

Algoritmos ; Verificação dos sinais dos operandos MOV A,#80H ; Máscara do MSBit do registrador ANL A,R5 ; Verifica o sinal de R2 (pré-armazenado em R5) CJNE A,#80H,NaoNegativo1 INC R4 MOV A,R5 ; R2 é negativo, portanto retira-se seu sinal DEC A ; DEC e CPL convertem o número de complemento de 2 CPL A ; para notação normal MOV R5,A ; R5 é re-setado com o valor em módulo de R2

Algoritmos NaoNegativo1: ; R2 não é negativo, verificar R3 MOV A,#80H ; Máscara do MSBit do registrador ANL A,R6 ; Verifica o sinal de R3 (pré-armazenado em R6) CJNE A,#80H,Mult INC R4 MOV A,R6 ; R2 é negativo, portanto retira-se seu sinal DEC A ; DEC e CPL convertem o número de complemento de 2 CPL A ; para notação normal MOV R6,A ; R6 é re-setado com o valor em módulo de R3

Algoritmos ; Realizando a multiplicação. A instrução MUL multiplica A * B (endereço 0F0H) Mult: MOV A,R6 ; Setando Multiplicando MOV 0F0H,A MOV A,R5 ; Setando Multiplicador MUL AB ; Multiplicando os operandos (Resultado = MSBits em B, LSBits em A) MOV R1,A ; Alocando os resultados MOV A,0F0H MOV R0,A

Algoritmos ; Tratando os sinais MOV A,R4 CJNE A,#1H,Fim ; Se houver 0 ou 2 operandos negativos, resposta é positiva ; Caso contrário, Fazer o complemento de 2 MOV A,R1 ; Complemento de 2 dos 8 LSBits da resposta CPL A ADD A,#1H; Como há uma adição, se ouver carry ele deverá ser tratado MOV R1,A

Algoritmos MOV A,R0 ; Complemento de 2 dos 8 MSBits da resposta CPL A ADDC A,#0H ; ADDC soma o bit de carry se este estiver ativo. MOV R0,A Fim: ; A resposta encontra-se em R0 (8 MSBits) e R1 (8 LSBits) ; No caso de resposta negativa, está estará em complemento de 2 END

Algoritmos Salvamento de Contexto Quando uma instrução PUSH é chamada, ela incrementa o SP em 1 antes de executar a operação, portanto armazenar SP com um PUSH é, na realidade, armazenar SP+1

Algoritmos PUSH 081h ;SP (o valor correto de SP é SP-1) PUSH 0h ;R0 PUSH 1h ;R1 PUSH 2h ;R2 PUSH 3h ;R3 PUSH 4h ;R4 PUSH 5h ;R5 PUSH 6h ;R6 PUSH 7h ;R7 PUSH 080h ;P0 PUSH 082h ;DPL PUSH 083h ;DPH PUSH 087h ;PCON PUSH 088h ;TCON PUSH 089h ;TMOD PUSH 08ah ;TL0

Algoritmos PUSH 08bh ;TL1 PUSH 08ch ;TH0 PUSH 08dh ;TH1 PUSH 090h ;P1 PUSH 098h ;SCON PUSH 099h ;SBUF PUSH 0a0h ;P2 PUSH 0a8h ;IE PUSH 0b0h ;P3 PUSH 0b8h ;IP PUSH 0d0h ;PSW (nenhum flag é acionado quando se executa PUSH's) PUSH 0e0h ;A PUSH 0f0h ;B END