Sistemas Embarcados:

Documentos relacionados
Sistemas Embarcados:

Microcontrolador 8051:

Microcontrolador 8051

Aula 10 Microcontrolador Intel 8051 Parte 2

MICROCONTROLADOR 8051

Microcontroladores 8051

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

O microcontrolador Quatro partes importantes

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

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

Organização de Memórias

Aula 8 Microcontrolador 8051

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

Aula 8 Microcontrolador 8051

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

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

Microprocessadores. Organização de Memória

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

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

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

Estrutura Básica de um Computador

SEL 337 Aplicação de Microprocessadores II

Interrupção. Prof. Adilson Gonzaga

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUCAO POSSÍVEL

Prof. Adilson Gonzaga

Prof. Adilson Gonzaga

Aula 10 Microcontrolador Intel 8051 Parte 1

Prof. Adilson Gonzaga

FACULDADE LEÃO SAMPAIO

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

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

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

Apontamentos sobre o 8051 Prof. Eng Luiz Antonio Vargas Pinto Versão revista e ampliada em 01/07/2009 Revisada em 28/02/2006 Revisada em 18/11/2007

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

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

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 Resposta Esperada

NOTAS DE AULA 06 MICROCONTROLADOR 8051

Tópicos: 1 - Modos de endereçamento do Pilha e instruções de Pilha. 3 - Instruções que usam pilha: - instrução CALL - instrução RET

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

EXERCÍCIOS RESOLVIDOS

7. PROGRAMANDO O MICROCONTROLADOR. Microcontroladores - Prof: Demantova

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

EPUSP PCS2355 Laboratório Digital MICROPROCESSADORES

COMPUTADOR 2. Professor Adão de Melo Neto

Solução Lista de Exercícios Processadores

Processador. Processador

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - RESPOSTA ESPERADA

Temporizadores e Contadores

Microprocessadores. Movimentação de Dados

Temporizadores e Contadores (Timer/Counter)

DIAGRAMA DE BLOCOS DE UM MICROCONTROLADOR

ESTRUTURA E FUNCIONAMENTO DO COMPUTADOR

Microcontroladores. Conjunto de Instruções do Prof. Guilherme Peron Prof. Heitor Lopes Prof. Ronnier Rohrich Prof. Rubão

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

LISTA 01 DE EXERCÍCIOS DO 4º BIMESTRE PARA ESTUDO NOME: NOME:

SEMINÁRIO ASSEMBLY: Arquitetura 8051

UCP 8051 (parte 02) Professor Adão de Melo Neto

Laboratório de Microprocessadores e Microcontroladores

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

SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES

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

MICROPROCESSADORES E MICROCONTROLADORES. Prova 1 Resposta Esperada

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

Laboratório de Microprocessadores e Microcontroladores

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

Jadsonlee da Silva Sá

Laboratório de Microprocessadores e Microcontroladores

Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios

Hardware e Software. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores

Microprocessadores I ELE Conjunto de Instruções do Microprocessador 8085 Aula 9 - PILHA E SUBROTINAS -

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

2.4 Temporização da CPU

2. A influência do tamanho da palavra

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

a) Obtenha a tabela verdade das operações com 01 bit

Laboratório de Microprocessadores e Microcontroladores

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

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

Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP. Memórias de Dados e de Programa

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

MICROCONTROLADOR 8051

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

2. A influência do tamanho da palavra

Organização Básica III

Transcrição:

Sistemas Embarcados Microcontroladores Prof. Protásio Laboratório de Microengenharia/DEE/CEAR/UFPB

Fundamentos de microcontroladores Bit (Binary digit) Zero lógico (Ø) e Um lógico (1) 0V e 5V ou 3,3V Byte Conjunto de 8 bits que representa valores entre 00H (=0 10 ) à FFH (=255 10 ) Registrador Conjunto de células de memória (geralmente, flip-flop do tipo D) interligados a fim de formar um só conjunto de dados 1 Ø V1 max V1 min V0 max 0V D FF CK Q D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 2

Fundamentos de microcontroladores Instrução Define uma única ação (tarefa) que a UCP pode executar por vez Exemplos de tarefa Leitura e escrita em registradores MOV A, R0 Mover o conteúdo do registrador R0 para o Acumulador A MOV R1, A Mover o conteúdo do acumulador para R1 OBS o registrador acumulador (A) é o que recebe o resultado da operação da ULA R/M Registrador/Memória R/M R/M R/M A Acumulador A Datapath 1 A Datapath 2 Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 3

Fundamentos de microcontroladores Instrução Define uma única ação (tarefa) que a UCP pode executar por vez Exemplos de tarefa Leitura e escrita em registradores MOV A, R0 Mover o conteúdo do registrador R0 para o Acumulador A O registrador acumulador é o que recebe o resultado da operação da ULA MOV R1, A Mover o conteúdo do acumulador para R1 Leitura e escrita em uma posição da memória Operação lógica ou aritmética Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 4

Fundamentos de microcontroladores Tamanho de instrução em bytes Instruções de 1 byte Na memória de programa (code memory ou program memory) a instrução ocupa comente 1 espaço de memória Exemplo MOV A, R0 Opcode E8H Memória PC Program Counter E8H Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 5

Fundamentos de microcontroladores Tamanho de instrução em bytes Instruções de 2 bytes Exemplo MOV A,#25H Move o valor imediato 25h para o acumulador Opcode 74H Memória PC 74H 25H 2 bytes Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 6

Fundamentos de microcontroladores CPU Unidade central de processamento Registradores (REGs) Unidade de Controle(UC) Unidade de lógica e aritmética (ULA) A R0 R1 R7 CPU Banco de Registradores ULA UC Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 7

Fundamentos de microcontroladores ULA Realiza as operações lógicas e aritméticas. Por exemplo, soma, subtração, multiplicação, divisão, operações lógicas AND, OR, XOR, NOT, deslocamento de bits à direita e esquerda, incremento e decremento, comparações A ULA seta os flags de sinalização de acordo com o resultado da última operação no registrador de flag Registrador de flag CY AC OV P CY carry flag AC auxiliar carry OV overflow flag Overflow. Ocorre quando o resultado de uma operação aritmética é maior que 255 e assim não pode ser armazenado em um só registrador. P parity flag Parity bit. Se o valor armazenado no acumulador for par então P = 1, caso contrário P = 0. A R0 R1 R7 ULA Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 8

Fundamentos de microcontroladores Unidade de Controle (UC) É a unidade que executa as ações da UCP busca (fetch), decodificação e execução de instruções. Busca Buscar a instrução na memória apontada pelo PC Decodificação Identificação da instrução Execução Execução da instrução A UC é a unidade mais complexa da CPU que controla a ação da ULA e realiza a movimentação de dados e instruções de e para a CPU através de sinais de controle de microoperações internas da CPU de acordo com o clock. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 9

Fundamentos de microcontroladores Unidade de Controle (UC) A UC contem entre outros dispositivos Decodificador de instruções Dispositivo utilizado para identificar as operações a serem realizadas relacionadas à instrução a ser executada; Registrador de instruções (RI) Regitrador que armazena a instrução a ser executada; ROM de microprogramação Memória não volátil que armazena as microinstrução (sinalização das microoperações internas) necessários para a execução de cada instrução da CPU Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 10

Fundamentos de microcontroladores Registradores Os registradores são espaços de armazenamento interno à CPU e de mais rápido acesso. Por isso, são também denominados de registradores internos São formandos por flip-flops A CPU pode realizar operações de leitura e escrita Podem armazenar 1 byte (8 bits) dados 2 bytes (word, 16 bits) dados ou endereços OBS um microcontrolador é denominado de 8 bits, se ele for capaz de processar informações de 8 em 8 bits por vez (operações aritméticas e de movimentação de dados), Analogicamente, para microcontroladores de 16 e 32. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 11

EEPROM PORT Fundamentos de microcontroladores Microcontrolador Dispositivo que incorpora uma CPU, unidades de memória e dispositivos periféricos integrados em um mesmo chip. ADC COUNTER PWM DAC CPU CLOCK RAM ROM Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 12

Fundamentos de microcontroladores Elementos de microcontroladores CPU Em geral, as CPUs de microcontroladores são de baixíssimo poder de processamento (geralmente, um microprocessador de um ou mais gerações anteriores). E de baixo custo. As CPUs são também denominadas de Núcleo de processamento CPU core Existem vários microcontroladores baseados em núcleos 8051 ARM Etc. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 13

Fundamentos de microcontroladores Elementos de microcontroladores Memória classificação quanto à volatividade Memória não-voláteis ROM (Read Only Memory) PROM/OPT (Programmable ROM/ One Time Programming) EPROM (Erasable and Programmable ROM) EEPROM (Electrically Erasable Programmable ROM) FLASH Memória voláteis RAM (Random Access Memory) Memória classificação quanto ao uso Memória de programa ou de código (em geral, não-volátil) Memória de dados (em geral, volátil) Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 14

Microcontrolador 8051

Microcontrolador 8051 Microcontrolador da família MCS-51 da Intel Características CPU de 8 bits otimizada para aplicações de controle Capacidade de processamento booleano (tratamento individual de bit) 4Kbytes de memória interna de programa 128 bytes de memória RAM interna de dados 64K de endereçamento de memória de programa 64K de endereçamento de memória de dados Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 16

Microcontrolador 8051 Características 32 linhas de E/S bidirecionais, endereçadas individualmente 2 temporizadores/contadores de 16 bits 5 entradas de interrupção com dois níveis de prioridade 3 internas 2 externas 1 oscilador interno de clock Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 17

Microcontrolador 8051 Organização interna básica (versão básica) Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 18

Microcontrolador 8051 Pinagem VCC (40) Alimentação (+) GND (20) Terra (-) P0.0 a P0.7 (32-39) Porta de E/S bidirecional de dreno aberto Por ser dreno aberto, a corrente máxima depende do resistor de pull-up. AD0 a AD7 (32-39) Pinos multiplexados de endereço e dados para acesso à memória externa. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 19

Microcontrolador 8051 P0.0 a P0.7 (32-39) Porta de E/S bidirecional de dreno aberto Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 20

Microcontrolador 8051 Pinagem P1.0 a P1.7 (1-8) Porta de E/S bidirecional com pull-ups internos P2.0 a P2.7 (21-28) Porta de E/S bidirecional com pull-ups internos A8 a A15 (21-28) Pinos de endereço para acesso à memória externa. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 21

Microcontrolador 8051 Pinagem P3.0 a P3.7 (10-17) Porta de E/S bidirecional com pull-ups internos RXD, TXD (10-11) Serial ~INT0, ~INT1 (12-13) Interrupções externas T0, T1 (14-15) Entrada externa de clock do timer0 e do timer1 WR, RD (16-17) Sinal de escrita e leitura da RAM externa Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 22

Microcontrolador 8051 Pinagem RST (9) Reset Um nível lógico 1 por dois ciclos de máquina reseta o chip ALE/~PROG (30) ALE = Address Latch Enable Indica à memória externa que os pinos AD0-AD7,A8-A15 têm o endereço Instruções de acesso à memória externa habilitam esse sinal ~PROG Pulso de programação da EPROM. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 23

Microcontrolador 8051 Pinagem ~PSEN (29) Program Store Enable Pulso de leitura de memória externa ~EA/VPP (31) EA External access Enable Quando ligado à VSS, executa o programa na memória externa. VPP Recebe a tensão de programação de 21V da EPROM interna. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 24

Microcontrolador 8051 Pinagem XTAL1, XTAL2 (19, 18) Entrada para o oscilador interno. Obs usando um cristal de 12MHz, o ciclo de clock será de 1/ (12M) = 0,083µs Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 25

Mapa de memória de dados do 8051 FFH FFH 128 BYTES DE RAM SUPERIOR Endereçamento indireto REGISTRADORES DE FUNÇÕES ESPECIAIS (SFR) Endereçamento direto 128 BYTES DE RAM INFERIOR Endereçamento Direto e Indireto 80H 7FH 80H 30H 2FH 20H 1FH 00H Endereçável por bit Registradores de Propósito Geral 128 BYTES DE RAM INFERIOR Endereçamento Direto e Indireto Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 26

Mapa de memória de dados do 8051 FFH FFH 128 BYTES DE RAM SUPERIOR Endereçamento indireto REGISTRADORES DE FUNÇÕES ESPECIAIS (SFR) Endereçamento direto MOV A,33H Move o conteúdo do endereço 33h para o acumulador 80H 7FH 80H 30H 2FH 20H 1FH 00H Endereçável por bit Registradores de Propósito Geral OBS endereçamento imediato MOV A, #2 Move o valor 2 para o acumulador MOV A, @R0 Move o conteúdo do endereço contido no registrador R0 para o acumulador O valor 2 está na memória de programa Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 27

RS1 (PSW.4) RS0 (PSW.3) Mapa de memória de dados do 8051 FFH FFH 128 BYTES DE RAM SUPERIOR REGISTRADORES DE FUNÇÕES ESPECIAIS (SFR) PSW Program Status Word REGISTER Endereçamento indireto Endereçamento direto 80H 7FH 30H 2FH 20H 1FH 00H Endereçável por bit Registradores de Propósito Geral 80H 1F R7 R6 R5 R4 R3 BANCO 3 R2 R1 18 R0 17 R7 BANCO 2 R6 R5 R4 R3 R2 R1 10 R0 0F R7 BANCO 1 R6 R5 R4 R3 R2 R1 08 R0 07 R7 R6 R5 R4 R3 BANCO 0 R2 R1 00 R0 0 0 0 1 1 0 1 1 Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 28

Mapa de memória de dados do 8051 FFH FFH 80H 7FH 128 BYTES DE RAM SUPERIOR Endereçamento indireto 80H REGISTRADORES DE FUNÇÕES ESPECIAIS (SFR) Endereçamento direto JNB 0x20.2, Address Pula para Address se o bit 20H.2 for 0 30H 2FH 20H 1FH 00H Endereçável por bit Registradores de Propósito Geral 27 00 01 02 03 04 05 07 Endereçável por Bit 20 00 01 02 03 04 05 07 Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 29

REGISTRADORES DE FUNÇÕES ESPECIAIS (SFR) ACC B Acumulador. As instruções específicas do acumulador referem-se a este simplesmente como A. MOV A, #100 A = 100 (em decimal) Registrador B Usado em operações de multiplicação e divisão. Pode ser usado para outras operações. MUL AB BA = B A FFH F0H E0H D0H B8H B0H A8H A0H 99H 98H 90H 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 87H 83H 82H 81H 80H B ACC PSW IP P3 IE P2 SBUF SCON P1 CKCON AUXR TH1 TH0 TL1 TL0 TMOD TCON PCON DPH DPL SP P0 Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 30

REGISTRADORES DE FUNÇÕES ESPECIAIS (SFR) PSW (Program Status Word) FFH F0H E0H D0H B8H B0H A8H A0H 99H 98H 90H 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 87H 83H 82H 81H 80H B ACC PSW IP P3 IE P2 SBUF SCON P1 CKCON AUXR TH1 TH0 TL1 TL0 TMOD TCON PCON DPH DPL SP P0 Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 31

REGISTRADORES DE FUNÇÕES ESPECIAIS (SFR) SP (Stack Pointer) Registrador de 8 bits que é incrementado antes de um dado ser armazenado por uma instrução PUSH ou CALL. No reset, o valor de SP = 07H Exemplo Suponha SP = 07H e A = 33H PUSH A Ao fim da execução tem-se 33H no endereço 08H da RAM interna e SP = 08H POP 34H Ao fim da execução tem-se 33H no endereço 34H da RAM interna e SP = 07H FFH F0H E0H D0H B8H B0H A8H A0H 99H 98H 90H 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 87H 83H 82H 81H 80H B ACC PSW IP P3 IE P2 SBUF SCON P1 CKCON AUXR TH1 TH0 TL1 TL0 TMOD TCON PCON DPH DPL SP P0 Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 32

REGISTRADORES DE FUNÇÕES ESPECIAIS (SFR) DPTR (Data Pointer) 16 bits DPH high byte 8 bits DPL low byte 8 bits O registrador DPTR é usado para endereçamento indireto de Operação de leitura na memória de programa Operação de escrita/leitura na memória de dados externa FFH F0H E0H D0H B8H B0H A8H A0H 99H 98H 90H 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 87H 83H 82H 81H 80H B ACC PSW IP P3 IE P2 SBUF SCON P1 CKCON AUXR TH1 TH0 TL1 TL0 TMOD TCON PCON DPH DPL SP P0 Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 33

REGISTRADORES DE FUNÇÕES ESPECIAIS (SFR) DPTR (Data Pointer) Exemplos MOV DPTR,#0123H Carrega o DPTR com o dado imediato #0123H INC DPTR Incrementa DPTR DPTR = DPTR + 1 MOVX A, @ DPTR Ler o conteúdo da memória externa de DADOS apontado pelo endereço em DPTR e salva em A MOVC A, @A + DPTR Ler o conteúdo da memória de PROGRAMA (CODE) apontado por (A + DPTR) e salva em A FFH F0H E0H D0H B8H B0H A8H A0H 99H 98H 90H 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 87H 83H 82H 81H 80H B ACC PSW IP P3 IE P2 SBUF SCON P1 CKCON AUXR TH1 TH0 TL1 TL0 TMOD TCON PCON DPH DPL SP P0 Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 34

REGISTRADORES DE FUNÇÕES ESPECIAIS (SFR) P0, P1, P2 e P3 Registradores (Latchs) das Portas bidirecionais Port 0, Port 1, Port 2 e Port 3. Fonte http//www.mikroe.com/ FFH F0H E0H D0H B8H B0H A8H A0H 99H 98H 90H 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 87H 83H 82H 81H 80H B ACC PSW IP P3 IE P2 SBUF SCON P1 CKCON AUXR TH1 TH0 TL1 TL0 TMOD TCON PCON DPH DPL SP P0 Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 35

REGISTRADORES DE FUNÇÕES ESPECIAIS (SFR) SBUF (Serial Data Buffer) De fato, são dois registradores separados Um para transmissão (transmit buffer) Quando um dado é enviado para o SBUF, vai para o transmit buffer e é transmitido serialmente Outro para recepção (receive buffer) Quando um dado é lido do SBUF, este vem do receive buffer que foi recebido serialmente SCON (Serial Control Register) Registrador de controle da comunicação serial Fonte http//www.mikroe.com FFH F0H E0H D0H B8H B0H A8H A0H 99H 98H 90H 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 87H 83H 82H 81H 80H B ACC PSW IP P3 IE P2 SBUF SCON P1 CKCON AUXR TH1 TH0 TL1 TL0 TMOD TCON PCON DPH DPL SP P0 Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 36

REGISTRADORES DE FUNÇÕES ESPECIAIS (SFR) Registradores de Timer/Counter Par de registradores do Timer/Counter0 TH0, TL0 (16 bits) Par de registradores do Timer/Counter1 TH1, TL1 (16 bits) TCON Controle de Timer/Counter TMOD Modo de operação de Timer/Counter Fonte http//www.mikroe.com FFH F0H E0H D0H B8H B0H A8H A0H 99H 98H 90H 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 87H 83H 82H 81H 80H B ACC PSW IP P3 IE P2 SBUF SCON P1 CKCON AUXR TH1 TH0 TL1 TL0 TMOD TCON PCON DPH DPL SP P0 Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 37

REGISTRADORES DE FUNÇÕES ESPECIAIS (SFR) IE Habilitação de interrupção IP Prioridade de interrupção PCON Power Control Idle ou power down FFH F0H E0H D0H B8H B0H A8H A0H 99H 98H 90H 8DH 8CH 8BH 8AH 89H 88H 87H 83H 82H 81H 80H B ACC PSW IP P3 IE P2 SBUF SCON P1 TH1 TH0 TL1 TL0 TMOD TCON PCON DPH DPL SP P0 Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 38

Mapa de memória de programa do 8051 0xFFFF 0xFFFF EA = 1 ROM Externa (até 64K) EA = 0 ROM Externa (até 64K) 0x1000 0x1000 0x0FFF 0x0FFF ROM embarcada (4K) 0x0000 0x0000 EA Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 39

Mapa de memória de programa do 8051 Espaços reservados na memória de programa 0xFFFF Porta Serial Timer 1 Interrupções Int. Ext. 1 Timer 0 Int. Ext. 0 Reset (PC) PC = Contador de Programa 0x0023 0x001B 0x0013 0x000B 0x0003 0x0000 ROM (4K) 8 bytes 3 bytes Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 40

Expansão de Memória do 8051 Fonte http//www.mikroe.com Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 41

Ciclo de Instrução do 8051 Um ciclo de instrução consiste de 6 estados S1, S2, S3, S4, S5, S6 Cada estado é dividido em duas fases P1 1º ciclo de clock P2 2º ciclo de clock Dessa forma, um ciclo de instrução consiste de 12 ciclos de clock. De S1P1 S6P2 Com um cristal de 12MHz, então o ciclo de instrução é igual a (1/12M)*12 = 1µs Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 42

Programação Assembly 8051

Programação Assembly Ferramentas de simulação MCU 8051 IDE v1.4.7 An open source IDE for MCS-51 based microcontrollers for POSIX Systems, this software is licenced under the GNU GPL v2 licence. Download at http//mcu8051ide.sourceforge.net Proteus 8.0 Ferramenta para o design de projetos eletrônicos baseado em SPICE. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 44

MCU 8051 IDE Execute o MCU 8051 IDE Criação de Projeto Project -> New Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 45

MCU 8051 IDE Execute o MCU 8051 IDE Criação de Projeto Project -> New Digite um nome para o projeto Indique a pasta que será salvo o projeto Defina o processador Finalize OBS Em Select MCU, pode-se obter informações gerais sobre a CPU Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 46

MCU 8051 IDE Área de edição de código Simulador Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 47

MCU 8051 IDE Na área de edição de código, insira o seguinte código ;**************************************** ;*** PROGRAMA PISCA LED ****** ;**************************************** ORG 0000H ; Diretiva que informa ao montador o endereço da próxima instrução LJMP INICIO ; Pula para o endereço (rótulo) "INICIO" ORG 0030H INICIO CPL P2.0 ; Complementa o estado do bit 0 da porta P2 MOV R0,#50 ; Move o valor 50 em decimal para o registrador R0 DJNZ R0,$ ; Decrementa o valor em R0 e pula para "$"(mesmo endereço) se for ; diferente de zero SJMP INICIO ; Pula para o endereço "INICIO" END ; Diretiva que informa ao montador o FIM DO PROGRAMA Após, salve o código File Save Monte o código Tools compile ou F11 Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 48

MCU 8051 IDE O arquivo.hex é o que de fato deve ser transferido ao microcontrolador Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 49

MCU 8051 IDE Iniciando a simulação Simulator Start/Shutdown ou F2 A linha verde indica onde está a simulação Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 50

MCU 8051 IDE Simulação passo-a-passo Simulator Step ou F7 Executa a instrução corrente e pula para próxima instrução Abaixo ver-se que a instrução LJMP INICIO foi executada Ou seja, foi realizado o pulo para o endereço INICIO Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 51

MCU 8051 IDE Simulação passo-a-passo Próximo F7 Executa CPL P2.0 Observe que o valor de P2 muda Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 52

MCU 8051 IDE Simulação passo-a-passo Próximo F7 Executa MOV R0,#50 Observe que a RAM de Dados é modificada Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 53

MCU 8051 IDE Simulação passo-a-passo Próximo F7 Executa DJNZ R0,$ Observe que o valor em R0 é decrementado Observe que o ponteiro (linha verde) continua no mesmo lugar. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 54

MCU 8051 IDE Simulação passo-a-passo Próximos 50 clicks em F7 Executa a instrução DJNZ Loop R0,$ 50x Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 55

MCU 8051 IDE Simulação passo-a-passo Próximo F7 Executa JMP INICIO Volta ao endereço INICIO Próximo F7 Executa CPL P2.0 E continua o laço INFINITO Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 56

MCU 8051 IDE Programa a cada 50 interações, o estado do bit 0 da porta 2 é modificado Se um LED for ligado a este pino, então este piscará Questão? Qual a frequência em que o LED piscará? Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 57

Cálculo da execução do programa Considerando um cristal de 12MHz Período de clock (Tc) = 83,3 ns 1/12MHz Ciclo de Instrução (Ti) = 1 µs 83,3 ns * 12 Instrução Número de Ciclos de Instrução por instrução Número de Ciclos de Instrução por loop CPL P2.0 1 1 MOV R0, #50 1 1 DJNZ R0,$ 2 2*50 SJMP INICIO 2 2 Tempo de execução do loop (T L ) = (1+1+2*50+2)* 1 µs = 104 µs Assim, o LED ficará ON por 104 µs e OFF por 104 µs Frequência de Oscilação do LED = 1/(2*T L ) 4,8 khz Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 58

Cálculo da execução do programa Qual a frequência caso o valor de inicial de R0 seja 250? Qual a frequência do LED caso o programa seja modificado para o abaixo ORG 0000H ; Diretiva que informa ao montador o endereço da próxima instrução LJMP INICIO ; Pula para o endereço (rótulo) "INICIO" ORG 0030H INICIO CPL P2.0 ; Complementa o estado do bit 0 da porta P2 MOV R0,#250 ; Move o valor 250 em decimal para o registrador R0 MOV R1,#250 ; Move o valor 250 em decimal para o registrador R1 LOOP DJNZ R0,$ ; Decrementa o valor em R0 e pula para LOOP se for diferente de zero DJNZ R1,LOOP ; Decrementa o valor em R1 e pula para LOOP se for diferente de zero SJMP INICIO ; Pula para o endereço "INICIO" END ; Diretiva que informa ao montador o FIM DO PROGRAMA Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 59

Inserção de breakpoints Compile o programa anterior e execute-o passo a passo (???). Para executar um trecho de programa de uma vez, pode-se inserir breakpoint. Click acima da numeração da linha desejada para inserção de um breakpoint Para executar até o breakpoint Simulator Run ou F9 Observe o tempo de execução Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 60

Arquivo de listagem Contem informações sobre o código montado e código montado. File Open Filter = Code listing (*.lst) PISCA_LED.lst Código de Máquina Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 61

Arquivo *.hex Contém o código de máquina que será gravado no microcontrolador File Open Filter = All files (*) PISCA_LED.hex Arquivo PISCA_LED.hex 03000000020030CB 0C003000B2A078FA79FAD8FED9FC80F46E 00000001FF Start code character em ASCII Byte count Número de bytes do código Address Endereço inicial da sequência de bytes de código Record type Valor entre 00 e 05 que especifica o tipo de campo de dado Data Sequência de bytes de código Checksum Byte de detecção de erro Exemplos - 00 indica que campo de dados (instruções) - 01 indica fim de arquivo. Em geral, o endereço especificado é 0000 Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 62

Simulação no Proteus Monte o circuito abaixo no Proteus e rode o código visto Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 63

Exemplos de circuitos com o 8051 Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 64

Exemplos de circuitos com o 8051 Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 65

Tarefas Utilizando o MCU 8051 IDE e/ou o Proteus, monte os seguintes circuitos Contador de eventos (use uma chave para emular o evento) em que o número de evento em binário apareça em 8 LED. Contador de eventos (use uma chave para emular o evento) em que o número de evento em decimal apareça em 1 display de 7 segmentos. Cronômetro com mostrador de minutos e segundos. Sistema de verificação de senha via teclado numérico (keypad) 9x9. Se senha ok, LED on. Se senha incorreta, LED off e ALARME. Prof. Protásio / Laboratório de Microengenharia/DEE/CEAR/UFPB 66