1 / 63

EEL7030 - Microprocessadores

EEL7030 - Microprocessadores. Prof. Raimes Moraes GpqCom – EEL UFSC. Sem RAM, ROM ou dispositivos de I/O. Microprocessador de Propósito Geral. Barramento de Dados. CPU Microprocessador de propósito geral. Portas de I/O. RAM. ROM. Timer. Interface Serial. Barramento de Endereço.

alagan
Download Presentation

EEL7030 - Microprocessadores

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

  4. 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 Microcontrolador

  5. Escolhendo umMicrocontrolador • 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. 8051 Interrupções Externas ROM para memória de programa 4 k bytes Controle de Interrupções Entradas do contador Timer 1 RAM 128 bytes Timer 0 CPU Porta Controle de Barramento 4 Portas de I/O OSC Serial P0 P2 P1 P3 TxD RxD Endereço/Dados

  8. Pinos do 8051

  9. Organização da Memória

  10. Alguns uC da família 8051 da Atmel

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

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

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

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

  15. Registradores

  16. 7 6 5 4 3 2 1 0 F0 RS1 P CY AC RS0 OV F1 D0H PSW - Program Status Word - Bit Addressable 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,

  17. 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 corpo da instrução.

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

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

  20. Organização da RAM Interna

  21. Organização da RAM Interna

  22. Organização da RAMInterna

  23. Special Function Registers

  24. SUBROTINA Exemplo • 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

  25. Mnemônicos para SUBROTINA 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).

  26. Mnemônicos para Desvio

  27. Mnemônicos para Desvio

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

  29. Fontes de Interrupção

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

  31. Interrupções Externas As interrupcões externasINT0 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,#00000101B; habilita INTs por borda MOV TCON,A

  34. Interrupções

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

  36. 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 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 movstate,#0h mov a,r1 movc a,@a+dptr mov p1,a inc r1 cjne r1,#16,volta jmp $ handler: movstate,#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 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 movstate,#0h mov a,r1 movc a,@a+dptr mov p1,a inc r1 cjne r1,#16,volta jmp $ handler : movstate,#1h reti tabela: db 'Microcontrolador' end

  41. Temporizadores / Contadores Modos 2 TMOD

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

  43. Transmissão Serial

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

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

  46. Pin DB25 1 2 3 4 5 6 7 8 20 22 DB9 2 3 7 8 6 5 1 4 9 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 DTE  DCE DTE  DCE DTE  DCE - DTE  DCE DTE  DCE DTE  DCE DTE Conector Macho

  47. Conexões Ideal Mínimo

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

More Related