EEL Microprocessadores

Slides:



Advertisements
Apresentações semelhantes
Microcontroladores Uma visão geral.
Advertisements

Métodos de Transmissão
MICROCONTROLADORES Escola Politécnica de Pernambuco - UPE
Barramentos Introdução.
Técnicas para operações E/S
Capítulo 6 As portas (portes) de entrada e saída da família de microcontroladores MCS-51 da Intel e suas aplicações no controle digital de máquina e de.
Capítulo 2 A família de Microcontroladores MCS-51 da Intel
Capítulo 7 Os “Timers”/Contadores da família de microcontroladores MCS-51 da Intel Prentice Hall Microcontroladores 8051.
Chip-Select e Controle de Interrupção
Sistemas Embarcados Microcontroladores PIC
Sistemas Embarcados Microcontroladores PIC
Chip-Select e Controle de Interrupção Sistemas Embarcados.
Arquitetura dos Microprocessadores 8086 e 8088
Arquitetura dos Microprocessadores 8086 e 8088 Sistemas Embarcados.
Arquitetura dos Microprocessadores 8086 e 8088
Configuração de Periféricos
MC542 Organização de Computadores Teoria e Prática
VHDL (outros tópicos) MO801/MC912.
Sistemas Operacionais
Altera NIOS II: uma breve introdução
Conhecendo Hardware Parte 1
EEL Microprocessadores
EEL Microprocessadores
EEL Microprocessadores
Sensor de Temperatura Digital TMP75
RS-232 César Conter Leite PUCRS – Faculdade de Informática
O MICROPROCESSADOR INTEL 8080
Professor: Carlos Roberto da Silva Filho, M. Eng.
Sistemas Digitais Microprocessados
REPRESENTAÇÃO DE INSTRUÇÕES
Implementação da CPU Análise de um computador simplificado Implementação da Unidade de Controle para o computador simplificado.
DSP – TMS320LF2407A.
Interrupções do DSP Desvios do programa principal para um endereço definido com o objetivo de atender a um evento; As interrupções podem ser de hardware.
Experimentos Práticos Introdução aos Sistemas Embarcados
Autor: Fernando de Mesentier Silva
Arquitectura de Computadores II
Interfaces SUMÁRIO: Fundamentos de Comunicação
Sistemas Operacionais I
Módulo MSSP Jadsonlee da Silva Sá
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A - Parte III Jadsonlee da Silva Sá
EEL Microprocessadores
Comparação Processadores Hardwired x Microcoded
Sistemas Operacionais
Escola Politécnica de Pernambuco - UPE Betânia Ribeiro de Almeida
Grupo de Engenharia da Computação Departamento de Informática - UFPE
Sergio Cavalcante Centro de Informática – UFPE
Experimentos Práticos Arquitetura de Software para Celulares
Organização e Arquitetura de Computadores
Prof. Remy Eskinazi - Microcontroladores
Disciplina: Microcontroladores Prof. Remy Eskinazi, MSc UPE - POLI
Aula º sem Microcontroladores LT36D LT36D Prof.: Paulo Denis Garcez da.
Hardware Description Language Aula 4 -VHDL
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Disciplina: Microcontroladores Prof. Remy Eskinazi, MSc UPE - POLI
Arquitetura 8051 Disciplina: Microcontroladores Prof. Remy Eskinazi
Disciplina: Microcontroladores Prof. Remy Eskinazi, MSc
Hardware Description Language Aula 8 –Verilog HDL
Disciplina: Microcontroladores Prof. Remy Eskinazi, MSc
Microprocesadores x Microcontroladores
8088 Assembly Software Básico Mitsuo Takaki.
8 - 1 Organização Básica de Computadores e Linguagem de Montagem Ricardo Pannain ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM A pilha e subrotinas.
Parte 3 Seção de Dados e Unidade de Controle
1 Ports Paralelos no 8051 Disciplina: Microcontroladores Prof. Remy Eskinazi, MSc UPE - POLI.
Engenharia de Sistemas Embarcados Aula 5: Um Conjunto Básico de Ferramentas.
A família 80C51 Organização:
Engenharia de Sistemas Embarcados Aula 4: O Ambiente de Desenvolvimento.
ARQUITETURA DE COMPUTADORES Nível do Conjunto de Instruções
Arquitetura do ARM RISC (Reduced Instruction Set Computer) – Conjunto relativamente grande de registradores – Modelo “load/store “de processamento Operações.
Modos de Endereçamento da família MC8051
Arquitetura 8051 Disciplina: Microcontroladores Prof. Remy Eskinazi
Transcrição da apresentação:

EEL7030 - Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC

Microprocessador de Propósito Geral Sem RAM, ROM ou dispositivos de I/O CPU Microprocessador de propósito geral RAM ROM Portas de I/O Timer Interface Serial Barramento de Dados Barramento de Endereço Vantagem: flexibilidade, sistema expansível ; Desvantagem: custo, roteamento de placa e dimensões do circuito.

Microcontrolador CPU + Periféricos RAM ROM I/O Port Timer Serial COM Port CPU Vantagem: menor custo, menor dimensão, rápido desenvolvimento; Desvantagem: baixa flexibilidade, não expansível;

Microcontrolador Periféricos: - Portas de entrada e saída - Interface Serial (CAN, SPI, USB, RF e etc) - Memórias (ROM, RAM, Flash, XRAM, etc) - Conversores AD e DA - Timers - ... Família de Microcontrolador: CPU + diferentes periféricos

Escolhendo um Microcontrolador Considerar: consumo, velocidade, capacidade de memória, número de portas de entrada e saída, timers, encapsulamento, tamanho, interfaces de comunicação e demais periféricos necessários a aplicação; Custo e disponibilidade no mercado. Facilidade para upgrade (grande família) 3. Disponibilidade de ferramentas de desenvolvimento: assemblers, debuggers, compiladores, emuladores, simuladores, suporte técnico

8051 Características Básicas: CPU de 8 bits; endereça 64 Kb de memória de programa externa; endereça 64 Kb de memória de dados externa; 4 kbytes de memória ROM interna para programas; 128 bytes de memória RAM interna para dados; 4 portas de entrada e saída (8 pinos cada); 5 vetores de interrupção com 2 níveis de prioridade: 2 interrupções externas 2 temporizadores / contadores 1 interface serial

ROM para memória de programa Controle de Barramento 8051 CPU RAM 128 bytes ROM para memória de programa 4 k bytes 4 Portas de I/O Timer 0 Porta Serial OSC Controle de Interrupções Interrupções Externas Timer 1 Controle de Barramento TxD RxD P0 P2 P1 P3 Endereço/Dados Entradas do contador

Pinos do 8051

Organização da Memória 9

Alguns uC da família 8051 da Atmel Device Flash (KiB) USB EEPROM (kiB) RAM (Bytes) F.max (MHz) I/O Pins UART Timers ADC AT89C5115 16 -- 2 512 40 20 1 Yes AT89C5130A-M 1280 48 18/34 AT89C5131A-L 32 AT89C5131A-M AT89C5132 64 2304 44 AT89C51AC2 34 3 AT89C51AC3 60 AT89C51CC01 AT89C51CC02 AT89C51CC03 34/37 AT89C51ED2 2048 AT89C51IC2 AT89C51ID2 AT89C51RB2 AT89C51RC 33 AT89C51RC2

Conexão do 8051 com Memória de Programa Externa date ADDR OE INSTR EPROM 80C51BH P1 P3 P2 P0 PSEN Latch ALE G EA 74HC373

Memória de Programa Externa date ADDR OE INSTR EPROM 80C51BH P1 P3 P2 P0 PSEN Latch ALE G EA 74HC373 Interface do 8051 Com Memória de Programa Externa

Exemplo de Leitura da Memória date ADDR OE INSTR EPROM 80C51BH P1 P3 P2 P0 PSEN Latch ALE G EA 74HC373 Exemplo de Leitura da Memória de Programa Externa

Memória de Programa e Dados date ADDR OE INSTR EPROM 80C51BH P1 P3 P2 P0 PSEN Latch ALE G EA 74HC373 RD DATA RAM DECODER CE WR Interface do 8051 Com Memória de Programa e Dados Externas

Registradores

PSW - Program Status Word - Bit Addressable CY AC F0 RS1 RS0 OV P F1 7 1 2 3 4 5 6 D0H CY PSW.7 Carry flag AC PSW.6 Auxiliary carry flag F0 PSW.5 Definido pelo usuário RS1 PSW.4 Bit 1 do seletor de Register Bank RS0 PSW.3 Bit 0 do seletor de Register Bank OV PSW.2 Overflow flag F1 PSW.1 Definido pelo usuário P PSW.0 Flag de paridade. 1 = impar,

Mnemônicos MOV A, Rn MOV A, direct MOV A,@Ri MOV A,#data MOV DPTR,#data16 Mnemônicos Rn - registrador R0 a R7 do banco correntemente selecionado. direct - endereçamento direto, ou seja, direct é o endereço de uma posição de memória RAM interna. @Ri - endereçamento indireto a uma posição de memória RAM interna Ri=R0 ou R1 #data - endereçamento imediato, onde data é uma constante de 8 bits incluída no corpo da instrução. #data16 - endereçamento imediato, onde data é uma constante de 16 bits incluida no

Organização da Memória MOVX @DPTR,A

RAM INTERNA 00h: FFh: SFR REGISTERS MEMÓRIA 8052

Organização da RAM Interna

Organização da RAM Interna

Organização da RAM Interna

Special Function Registers

SUBROTINA Exemplo END. CÓDIGO 000A CALL 2028H 000D MOV A,B Salva atual PC (000Dh) na pilha. (O PC é atualizado ao obter o código da instrução CALL da memória); Sobrescreve PC com endereço da subrotina; (PC = 2028H) 3 Executa subrotina; Retorna à instrução que se segue ao CALL no programa principal (instrução RET). OBS: O SP é inicializado com o valor 07 quando o microprocessador é energizado/resetado PILHA END. DADO SP 07H SP+1 08H 0DH [PC LSB] 09H 00H [PC MSB]

Mnemônicos para SUBROTINA Mnemônicos para Desvio LCALL: Especifica endereço de 16 bits. A instrução possui 3 bytes (opcode + 16 bits de endereço). Endereço de destino em qualquer lugar da memória (64 kiB). ACALL: Especifica endereço de 11 bits. A instrução possui 2 bytes (opcode + 11 bits de endereço). Endereço de destino distante em até 2k (2^11). Mnemônicos para Desvio LJMP: Especifica endereço de 16 bits. A instrução possui 3 bytes (opcode + 16 bits de endereço). AJMP: Especifica endereço de 11 bits. A instrução possui 3 bytes (opcode + 116 bits de endereço). SJMP: Especifica off-set (-128 to +127) a ser somado ao PC para acessar a próxima instrução. A instrução possui 2 bytes (opcode + offset).

Mnemônicos para Desvio Descrição JZ <rel addr> Salta se A = 0 JNZ <rel addr> Salta se A != 0 JC <rel addr> Salta se C = 1 JNC <rel addr> Salta se C != 1 JB <bit>, <rel addr> Salta se bit = 1 JNB <bit>,<rel addr> Salta se bit != 1 JBC <bit>, <rel addr> Salta se bit =1, limpa bit

Mnemônicos para Desvio Descrição CJNE A, direct, <rel addr> Compara A e memória. Salta se não igual CJNE A, #data <rel addr> Compara A e dado. Salta se não igual CJNE Rn, #data <rel addr> Compara Rn e dado. Salta se não igual CJNE @Rn, #data <rel addr> Compara Rn e memória. Salta se não igual DJNZ Rn, <rel addr> Decrementa Rn e salta se não zero DJNZ direct, <rel addr> Decrementa memória e salta se não zero

ORG 0000H MOV R1,#3 MOV R3,#4 INC @R1 MOV A,@R1 MOV DPTR,#MENS MOVC A,@A+DPTR MOV DPTR,#20H MOVX @DPTR,A SJMP $ MENS: DB '124567890ABCDE' END

Fontes de Interrupção

MOV IE,#10000101B; habilita INT0 E INT1 Fontes de Interrupção MOV IE,#10000101B; habilita INT0 E INT1

Interrupções Externas As interrupcões externas INT0 e INT1 podem ser ativadas por nível ou borda. Depende dos bits IT0 e IT1 do registrador TCON. Os flags que identificam ocorrência destas interrupcões externas são os flags IE0 e IE1 de TCON.

Temporizadores / Contadores Registradores TCON ITx - Interrupt control bit. 1 => borda de descida 0 => nível lógico baixo IEx - External Interrupt flag. Setado pelo hardware quando interrupção detectada. Apagada pelo software qdo salta para o tratador int.

Temporizadores / Contadores Registradores TCON MOV A,TCON ORL A,#00000101B; habilita INTs por borda MOV TCON,A

Interrupções

MOV IP,#00000100B; prioridade INT1 superior às demais Interrupções MOV IP,#00000100B; prioridade INT1 superior às demais

Faça um programa que aceite int0 (acionada por borda) Faça um programa que aceite int0 (acionada por borda). Qdo a int0 for solicitada, escrever na porta P1, caractere por caractere, a cadeia de 16 caracteres: ‘Microcontrolador’.

reset equ 00h ltint0 equ 03h ; local tratador state equ 20h org reset ;PC=0 depois de reset jmp inicio org ltint0 jmp handler inicio: mov ie,#10000001b ; habilita int mov tcon,#00000001b ; borda mov state,#0h ;inicialização mov r0,# state mov dptr,#tabela mov r1,#0 volta: cjne @r0,#1,volta mov state,#0h mov a,r1 movc a,@a+dptr mov p1,a inc r1 cjne r1,#16,volta jmp $ handler: mov state,#1h reti tabela: db 'Microcontrolador' end

Temporizadores / Contadores Modos 0 e 1 TMOD

Programação dos Timers Habilitar interrupções dos timers (EA, ETx) Especificar o modo de funcionamento dos timers (TMOD) Especificar intervalo de contagem (THx e TLx) Disparar contador (setb TRx) Não esquecer tratadores para os timers nos seus devidos endereços. OBS: É possível testar, freqüentemente, se houve encerramento da contagem sem necessidade de habilitar interrupções (polling dos flags TFx) em programas mais dedicados. Exemplo: Faça um programa que escreva na porta P1, a cadeia de 16 caracteres: ‘Microcontrolador’ à taxa de 10 kiB/s ( (1/10000) = 100 us)

reset equ 0h ltmr0 equ 0bh ; local tratador state equ 20h org reset ;PC=0 depois de reset jmp inicio org ltmr0 jmp handler inicio: mov ie,#10000010b ; habilita mov tmod,#01h ; modo 1 mov th0,#0ffh mov tl0,#09ch mov state,#0h ;inicialização mov r0,# state mov dptr,#tabela mov r1,#0 setb tr0 volta: cjne @r0,#1,volta mov th0,#0ffh mov tl0,#09ch mov state,#0h mov a,r1 movc a,@a+dptr mov p1,a inc r1 cjne r1,#16,volta jmp $ handler : mov state,#1h reti tabela: db 'Microcontrolador' end

Temporizadores / Contadores Modos 2 TMOD

Temporizadores / Contadores Modos 3 No modo 3, Timer 1 cessa contagem (o mesmo que TR1=0). Se fora do modo 3, pode ser usado pela serial No modo 3, Timer 0 implementa dois contadores de 8 bits. TR1 e TF1 são redirecionados para o Timer 0 (TH0)

Transmissão Serial

Transmissão Serial EIA RS-232C: padrão industrial para a comunicação serial de dados binários entre um DTE (terminal de dados) e um DCE (comunicador de dados). Foi largamente utilizado em PCs, estando ainda presente em muitos equipamentos.

Níveis Lógicos EIA RS-232C (Electronics Industries Association) Tamanho máximo do cabo: 15 metros Velocidade de transmissão: 1Mbits/s

DCD Data Carrier Detect DTR Data Terminal Ready RI Ring Indicator DB25 1 2 3 4 5 6 7 8 20 22 Signal Name CD Chassis Ground TD Transmit Data RD Receive Data RTS Request To Send CTS Clear To Send DSR Data Set Ready SG Signal Ground DCD Data Carrier Detect DTR Data Terminal Ready RI Ring Indicator Direction - DTE  DCE DTE  DCE DB9 9 Pin DTE Conector Macho

Conexões Ideal Mínimo

Handshaking Troca de sinais para estabelecer comunicação condicional Processo Transmissor ativa RTS Receptor detecta CTS por interrupção ou polling Receptor ativa RTS Transmissor aguarda CTS Transmissor envia dados

Modos de Programação SM0 SM1 MODO TIPO BITS TAXA SÍNCRONO - HD 8 SÍNCRONO - HD 8 Fclock/12 1 ASSÍNCRONO – FD 10 Variável 2 ASSÍNCRONO - FD 11 Fclock/32 ou /64 3

Full Duplex Full duplex (FD): dados são (ou podem ser) transmitidos e recebidos simultaneamente por ambos os dispositivos conectados, requerendo para tal, conexões adequadas

SM2: Habilita comunicação serial com múltiplos processadores nos modos 2 e 3. Nestes modos, se SM2 for colocado em 1, Rl não será setado a menos que o nono bit recebido (RB8) seja 0. Desta forma, é possível que um dispotivo acesse vários 8051 em um mesmo barramento e peça para um deles modificar SM2 para que estabeleça comunicação apenas com o mesmo para TB8=1.

Programação Baud Rate Modo 2 => BR= [ ( 2^SMOD ) / 64 ] x f osc Modo 1 e 3 => Timer 1 em modo de auto carregamento (auto-load /TMOD = 20H). Neste caso, a baud rate é dada por: BR= [ ( 2^SMOD ) / 32 ] x { f osc / [ 12 x (256 - TH1) ] }

Para sair de Idle: por uma interrupção que esteja habilitada ou por Reset. Por interrupção: vai para o tratador e após RETI , continua de onde parou. Por Reset: continua de onde parou. Para sair de Power Down - Somente por Reset (não altera RAM).

Organização Pinos da Porta P1 D Q Clk Q Vcc Load(L1) Read latch Read pin Write to latch Internal CPU bus M1 P1.X pin P1.X TB1 TB2 P0.x 8051 57

Escrevendo “1” em Pino P1.X D Q Clk Q Vcc Load(L1) Read latch Read pin Write to latch Internal CPU bus M1 P1.X pin P1.X TB2 2. output pin is Vcc 1. write a 1 to the pin 1 output 1 TB1 8051 58

Escrevendo “0” em Pino P1.X D Q Clk Q Vcc Load(L1) Read latch Read pin Write to latch Internal CPU bus M1 P1.X pin P1.X TB2 2. output pin is ground 1. write a 0 to the pin output 0 1 TB1 8051 IC 59

Lendo “1” em Pino P1.X D Q Clk Q Vcc Load(L1) Read latch Read pin Write to latch Internal CPU bus M1 P1.X pin P1.X 2. MOV A,P1 external pin=High TB2 write a 1 to the pin MOV P1,#0FFH 1 1 TB1 3. Read pin=1 Read latch=0 Write to latch=1 8051 IC 60

3. Read pin=1 Read latch=0 Write to latch=1 Lendo “0” em Pino P1.X D Q Clk Q Vcc Load(L1) Read latch Read pin Write to latch Internal CPU bus M1 P1.X pin P1.X 2. MOV A,P1 external pin=Low TB2 write a 1 to the pin MOV P1,#0FFH 1 TB1 3. Read pin=1 Read latch=0 Write to latch=1 8051 61

Lendo do Latch de Porta ANL AND lógico ex. ANL P1,A Algumas instruções fazem a leitura do Pino (TB1) e outros da saída do Latch (TB2) Instruções que leêm do latch (“lê-modifica-escreve”). Exemplos: ANL AND lógico ex. ANL P1,A ORL OR lógico ex. ORL P2,A XRL XOR lógico ex. XRL P3,A CPL complementa bit ex. CPL P3.0 INC incremento ex. INC P2 DEC decrementa ex. DEC P2 DJNZ decrementa e salta se não zero ex. DJNZ P3,LABEL MOV PX.Y,C move bit de carry para bit Y da Port X CLR PX.Y limpa bit Y da Port X SET PX.Y seta bit Y da Port X 62

Port 0 63