1 / 98

A família 80C51

A família 80C51. Organização: Microcontroladores versus microprocessadores Os microcontroladores da família 80C51 Interface com o exterior Modelo de programação Processamento dos pedidos de interrupção Modos de endereçamento e tipos de instruções

kenny
Download Presentation

A família 80C51

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. A família 80C51 • Organização: • Microcontroladores versus microprocessadores • Os microcontroladores da família 80C51 • Interface com o exterior • Modelo de programação • Processamento dos pedidos de interrupção • Modos de endereçamento e tipos de instruções • Exemplo: Simulação de um registo de deslocamento

  2. Microcontroladores (Cs) e microprocessadores (Ps) • Um microcontrolador é fundamentalmente um componente que integra os três blocos principais na arquitectura de um computador: CPU, memória e E/S • Entre Cs e Ps existem as seguintes diferenças: • Os Cs dispõem de E/S interna de vários tipos • Os Cs podem dispor de ROM / EPROM • Os Cs são sobretudo vocacionados para tarefas de controlo, onde 8 bits são a solução mais comum

  3. Os Cs da família 80C51 • A família 80C51 apresenta uma arquitectura interna algo complexa, o que a poderia desaconselhar como veículo para a introdução a este domínio. Contudo: • Trata-se de componentes com grande uso na prática, para os quais existe uma enorme variedade de aplicações de apoio ao projecto, comerciais ou do domínio público • A complexidade não é tanto devida à arquitectura do CPU interno, mas mais pela necessidade de se multiplexarem muitos sinais em poucos pinos

  4. 80C51: Arquitectura do núcleo de base

  5. Variantes dentro da família 80C51 • As variantes principais que estão disponíveis nesta família têm as seguintes características principais:

  6. Organização de memória • A família 80C51 distingue entre memória de programa (MP) e memória de dados (MD): • A MP contém o programa a executar (instruções e operandos), enquanto a MD serve apenas para dados • Uma vez que existe apenas um barramento de endereços e um barramento de dados, a distinção entre MP e MD é feita através do sinal de leitura (MP: /PSEN, MD: /RD) • Na MP efectuam-se apenas operações de leitura, sendo que na MD se efectuam operações de leitura e escrita

  7. Organização de memória (cont.) • Ainda a distinção MP / MD: • A existência de dois tipos de memória obriga o 80C51 a ter internamente dois apontadores (PC, DP) • A selecção do sinal de leitura apropriado (/PSEN ou /RD) é feita automaticamente pela instrução a executar • MP e MD não são necessariamente ROM e RAM, podendo mesmo coexistir no mesmo componente de memória, e.g. uma NVRAM (de onde viria o sinal de leitura, neste caso?)

  8. Organização de memória (cont.) • Os recursos internos de MP e MD podem ser complementados externamente:

  9. Organização de memória (cont.) • O 80C51 inicializa a execução do programa a partir do endereço 0 (zero), que poderá ser de MP interna ou externa, de acordo com o estado do pino /EA: • Quando /EA=0, o 80C51 começa a execução do programa pela MP externa • Nos casos em que existe MP interna, forçar /EA=0 significa que esta memória não deve ser considerada (no entanto, se existir MP interna, será normalmente por aí que se iniciará a execução do programa)

  10. Organização de memória (cont.) • Alguns aspectos importantes quanto à MD: • Os 128 endereços superiores permitem de facto aceder a 256 posições, de acordo com o modo de endereçamento (conforme seja directo ou indirecto, como veremos adiante) • Do total de 384 posições assim existentes, 128 correspondem aos registos de funções especiais (SFR, special function registers) (por exemplo, o DP ocupa dois destes 128 SFR)

  11. Interface com o exterior • Barramentos:

  12. Interface com o exterior (cont.) • Repare-se ainda que: • O barramento de endereços é partilhado com os portos de E/S paralela 0 e 2 • O porto 0 é também partilhado com o barramento de dados • AD[0..7]: A multiplexagem dados / endereços (oito bits menos significativos) é feita no domínio temporal (primeiro o endereço e depois os dados)

  13. Interface com o exterior (cont.) • Atendendo à multiplexagem temporal em AD[0..7], o 80C51 proporciona o sinal de controlo (ALE) para uma latch externa que memoriza a metade menos significativa do endereço:

  14. Interface com o exterior (cont.) • Barramento de controlo: • RST (reset) • /EA-VPP • /PSEN • ALE - /PROG • /INT0 e /INT1 (entradas de interrupção) • T0 e T1 • /WR • /RD • XTAL1 e XTAL2 (pinos do oscilador interno)

  15. Configuração de pinos

  16. Diagramas temporais • Leitura da MP externa:

  17. Diagramas temporais (cont.) • Leitura da MD externa:

  18. Diagramas temporais (cont.) • Escrita na MD externa:

  19. Modelo de programação • Diagrama de blocos da arquitectura de base:

  20. A RAM (MD) interna revisitada

  21. Os registos de funções especiais (SFR)

  22. Pedidos de interrupção • A arquitectura do núcleo de base do 80C51 suporta cinco fontes de interrupção: • Duas interrupções externas (pinos /INT0 e /INT1) • Duas interrupções provenientes dos timers • Uma interrupção proveniente do porto série • Cada uma destas fontes pode ser habilitada ou inibida e a cada uma pode ser atribuída alta ou baixa prioridade (em ambos os casos, individualmente)

  23. Pedidos de interrupção (cont.) • Sobre a prioridade das interrupções: • O atendimento a uma interrupção de baixa prioridade pode ser interrompido por uma interrupção de alta prioridade, mas não vice-versa (e se forem interrupções da mesma prioridade?) • No que respeita a pedidos simultâneos, será atendido primeiro o que tiver mais alta prioridade; se forem iguais, será realizada uma sequência de pooling para determinar qual será atendido primeiro

  24. Pedidos de interrupção (cont.) • O atendimento a um pedido de interrupção começa com o armazenamento do valor actual do PC na stack, a que se segue uma chamada à respectiva rotina de atendimento:

  25. Modos de endereçamento • Será adoptada nesta apresentação a mesma classificação e organização que são seguidas na folha de características do componente (Philips) • Por cada modo de endereçamento, apresenta-se uma explicação sumária e alguns exemplos ilustrativos da sua utilização

  26. Endereçamento directo • O operando é especificado através de um endereço de oito bits que se encontra na posição de MP seguinte à que contém o código da instrução (só pode ser usado com as posições internas de RAM e com os SFR):

  27. Endereçamento indirecto • É usado um registo para especificar o endereço do operando (tanto pode ser usado com as posições de RAM internas como externas):

  28. Endereçamento ao registo • O próprio código da instrução contém um campo com três bits que identifica qual dos registos R0 a R7 deve ser usado (dentro do banco seleccionado):

  29. Endereçamento específico dos registos • No caso das instruções que são específicas de certos registos (por exemplo, do acumulador):

  30. Endereçamento imediato • O valor do operando está contido na posição de MP seguinte à que contém o código da instrução:

  31. Endereçamento indexado • É usado para a leitura de valores armazenados na MP, servindo como apontador um registo de 16 bits (DP ou PC):

  32. Ainda os modos de endereçamento • Apesar de a folha de características do 80C51 não o referir explicitamente, este componente suporta também um modo de endereçamento a que é habitualmente dada a designação de endereçamento relativo (e.g. jb P1.2,marca) • Neste modo, e em vez do endereço de destino, o operando consiste na diferença (offset) entre esse endereço e o endereço actual

  33. Ainda os modos de endereçamento (cont.) • O offset é apresentado como um byte em complemento para dois, o que permite saltos de até 127 bytes para a frente ou 128 bytes para trás:

  34. Ainda os modos de endereçamento (cont.) • Esta solução permite poupar um byte na especificação do endereço, sendo o valor do offset calculado pela aplicação que gera o código objecto • Exemplo:

  35. Tipos de instruções • O importante não é conhecer todas as instruções (nem isso seria possível), mas sim conhecer bem as características dos seus cinco grupos principais: • Instruções aritméticas (arithmetical) • Instruções lógicas (logical) • Transferência de dados (data transfer) • Instruções Booleanas (Boolean) • Instruções de salto (jump)

  36. Instruções aritméticas

  37. Instruções aritméticas (cont.) • Exemplos:

  38. Instruções lógicas

  39. Instruções lógicas (cont.) • Exemplos:

  40. Instruções de transferência de dados • Estas instruções sub-dividem-se em três grupos principais: • Transferência de dados na MD interna • Transferência de dados na MD externa • Leitura de tabelas armazenadas na MP • Cada um destes tipos será agora considerado individualmente

  41. Transferência de dados: MD interna

  42. Transferência de dados: MD interna (cont.) • Exemplos:

  43. Transferência de dados: MD externa

  44. Transferência de dados: Leitura de tabelas na MP

  45. Instruções Booleanas

  46. Instruções Booleanas (cont.) • Exemplos:

  47. Instruções de salto • Estas instruções sub-dividem-se em dois grupos principais: • Salto não condicional • Salto condicional • Cada um destes tipos será agora considerado individualmente

  48. Instruções de salto não condicional

  49. Instruções de salto não condicional (cont.) • Exemplos:

  50. Instruções de salto condicional

More Related