A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

EEL Microprocessadores

Apresentações semelhantes


Apresentação em tema: "EEL Microprocessadores"— Transcrição da apresentação:

1 EEL7030 - Microprocessadores
Prof. Raimes Moraes GpqCom – EEL UFSC

2 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.

3 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;

4 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

5 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

6 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

7 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

8 Pinos do 8051

9 Organização da Memória
9

10 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

11 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

12 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

13 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

14 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

15 Registradores

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

17 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

18 Organização da Memória

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

20 Organização da RAM Interna

21 Organização da RAM Interna

22 Organização da RAM Interna

23 Special Function Registers

24 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]

25 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 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).

26 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

27 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 #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

28 ORG 0000H MOV R1,#3 MOV R3,#4 MOV MOV DPTR,#MENS MOVC MOV DPTR,#20H SJMP $ MENS: DB ' ABCDE' END

29 Fontes de Interrupção

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

31 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.

32 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.

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

34 Interrupções

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

36 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’.

37 reset equ 00h ltint equ 03h ; local tratador state equ 20h org reset ;PC=0 depois de reset jmp inicio org ltint0 jmp handler inicio: mov ie,# b ; habilita int mov tcon,# b ; 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 mov p1,a inc r1 cjne r1,#16,volta jmp $ handler: mov state,#1h reti tabela: db 'Microcontrolador' end

38 Temporizadores / Contadores
Modos 0 e 1 TMOD

39 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)

40 reset equ 0h ltmr equ 0bh ; local tratador state equ 20h org reset ;PC=0 depois de reset jmp inicio org ltmr0 jmp handler inicio: mov ie,# b ; 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 mov p1,a inc r1 cjne r1,#16,volta jmp $ handler : mov state,#1h reti tabela: db 'Microcontrolador' end

41

42 Temporizadores / Contadores
Modos 2 TMOD

43 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)

44 Transmissão Serial

45 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.

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

47 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

48

49 Conexões Ideal Mínimo

50 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

51

52 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

53 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

54 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.

55 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) ] }

56 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).

57 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

58 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

59 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

60 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

61 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

62 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

63 Port 0 63


Carregar ppt "EEL Microprocessadores"

Apresentações semelhantes


Anúncios Google