Apostila Microcontroladores (Edição 2006)

26 Pages • 4,332 Words • PDF • 241.7 KB
Uploaded at 2021-09-24 07:44

This document was submitted by our user and they confirm that they have the consent to share it. Assuming that you are writer or own the copyright of this document, report to us by using this DMCA report button.


  ÁREA INDÚSTRIA

               

Microcontroladores                 Prof. Me. Mateus Lima Peduzzi – 1 – 

   

Índice

Capítulo 1 Conceitos Básicos em Sitemas Digitais ......................................................7  1. Bases Numéricas .....................................................................................................7  2. Conexão entre Dispositivos Analógicos e Digitais ...................................................8  2.1. Estrutura de Entradas Digitais .........................................................................9  2.2. Circuitos para Aquisição de Dados Digitais ................................................... 10  2.3. Estrutura de Saídas Digitais .......................................................................... 11  2.4. Aplicação de Saídas Digitais .......................................................................... 11  2.5. Drivers de Corrente e Tensão ....................................................................... 12  2.6. Curto‐circuito em saídas digitais................................................................... 12  3. Agrupamento de bits ........................................................................................... 13 

Capítulo 2 Conceitos Básicos em Microcontroladores ............................................ 15  1. Clock ..................................................................................................................... 15  2. Hardware e Software ........................................................................................... 17  3. Memória ............................................................................................................... 18  3.1. Endereços de Memória ................................................................................. 18  3.2. Bits de endereço ........................................................................................... 21  3.3. Seccionamento de memórias ....................................................................... 23  3.4. Bits de dados ................................................................................................. 23  3.5. Diagramas de mapeamento ......................................................................... 24  3.6. Classificação das memórias .......................................................................... 24  3.7. Memória em microcontroladores ................................................................ 25 

Capítulo 3 Introdução aos Microcontroladores da Família PIC ............................... 28  1. Estrutura Interna do PIC ....................................................................................... 28  2. A Memória no PIC ................................................................................................ 31  2.1. Memória de Programa .................................................................................. 31  2.2. Memória de Dados ....................................................................................... 31  3. Principais Configurações ...................................................................................... 34  3.1. Seleção do banco de memória ..................................................................... 34  3.2. Direcionamento do fluxo de bits nas portas................................................. 34  4. As Portas I/O no PIC ............................................................................................. 35  5. Algumas Instruções .............................................................................................. 35  5.1. Instruções de transferência de bytes ........................................................... 35  5.2. Instruções de manuseio de bits .................................................................... 35 

Capítulo 4 Programação no PIC ............................................................................... 36  1. Estrutura de um Programa no MPLAB ................................................................. 36  1.1. Cabeçalho ..................................................................................................... 37  1.2. Palavra de Configuração ............................................................................... 37  1.3. Associação de Nomes a Endereços da RAM ................................................. 37  1.4. Teste de Interrupção .................................................................................... 38  1.5. Linhas de Configuração ................................................................................. 38  1.6. Programa Principal ........................................................................................ 39  1.7. Rotinas .......................................................................................................... 39  1.8. Término do Programa ................................................................................... 39  1.9. Comentários .................................................................................................. 39  1.10. Exemplo de Estruturação de um Programa ................................................ 40  2. Conjunto de Instruções do PIC ............................................................................. 43 

– 3 – 

2.1. Tabela de Instruções ..................................................................................... 45  2.2. Clock e Ciclo de Máquina .............................................................................. 47  3. Instruções de Salto Condicional ........................................................................... 47  3.1. Instruções de Teste de Bits ........................................................................... 48  3.2. Saltos Condicionais com as Instruções de Testes de Bits ............................. 49  3.3. Instruções de Teste de Bytes ........................................................................ 49  3.4. Tempo Gasto pelas Instruções de Salto ........................................................ 50  4. Chamada de Rotinas ............................................................................................ 51  5. Rotinas de Tempo ................................................................................................ 52  5.1. Instrução NOP ............................................................................................... 53  5.2. Rotinas de Tempo com Loop’s ...................................................................... 53   

– 4 – 

 

Prefácio   Esta apostila foi desenvolvida para servir de apoio didático aos alunos da componente  curricular de Microcontroladores da Escola Técnica Federal de Palmas/TO, para os  cursos de Eletrônica e Eletrotécnica (Área Indústria).  Embora este material possa ser utilizado por professores, pesquisadores, estudantes  ou outras pessoas interessadas na área, seu conteúdo visa complementar o estudo  das bases tecnológicas necessárias para atender às competências e habilidades exigi‐ das para esta disciplina. 

– 5 – 

 

Parte I Conceitos Básicos

Capítulo 1

Conceitos Básicos em Sitemas Digitais 1. Bases Numéricas O sistema de numeração binário é o único utilizado por equipamentos digitais, uma vez que estes só trabalham com ZEROS e UNS. A todo o momento será necessário associar grupos de 4 bits com seu valor equivalente hexadecimal. A memorização da Figura 1.1 facilitará o raciocínio para qualquer análise ou operação com dispositivos digitais. Decimal

Binário

Hexadecimal

0

0000

0

1

0001

1

2

0010

2

3

0011

3

4

0100

4

5

0101

5

6

0110

6

7

0111

7

8

1000

8

9

1001

9

10

1010

A

11

1011

B

12

1100

C

13

1101

D

14

1110

E

15

1111

F

Figura 1.1 – Tabela Decimal – Binário – Hexadecimal

Números binários iguais em sistemas digitais não devem necessariamente ser encarados como idênticos independentemente do número de bits. Por exemplo, matematicamente não há diferença entre os valores 0102 e 000102, pois ambos são iguais ao número 210. Porém, quando se trata de dispositivos digitais, deve-se considerar que cada bit corresponde a uma conexão física, um terminal metálico, um ponto de ligação no circuito. Dessa forma, embora os valores citados acima sejam o mesmo, no primeiro caso tem-se apenas 3 bits e no segundo caso tem-se 5 bits, dois terminais a mais.

2. Conexão entre Dispositivos Analógicos e Digitais Embora a tecnologia digital tenha proporcionado grande avanço na qualidade e precisão dos equipamentos, nenhuma informação digital é útil sem um circuito que possa interagir com o ambiente externo ao dispositivo digital, cujas variáveis, elétricas ou não, são totalmente analógicas. O esquema da Figura 2.1 mostra uma configuração típica de sistemas digitais. Percebe-se a necessidade de circuitos que façam a conversão das propriedades analógicas do ambiente externo em níveis de tensão fixos, que serão interpretados como ZERO ou UM pelo componente digital. Da mesma forma, a saída digital precisa passar por um circuito que processará o valor digital, transformando-o em uma tensão ou corrente analógica.

– 8 – 

Figura 2.1 – Configuração típica para sistemas digitais

2.1. Estrutura de Entradas Digitais Uma entrada digital é formada geralmente pela base de um TBJ ou pelo terminal de gate de um MOSFET. O nível de tensão aplicado fará com que o transistor sature ou seja cortado, passando adiante uma informação de existência ou não de energia, caracterizando ZERO ou UM. Devido à natureza do próprio componente, o consumo de corrente em uma entrada digital é geralmente baixo. A Figura 2.2 mostra algumas topologias de entradas digitais a TBJ e MOSFET.

Nos circuitos digitais, o terminal positivo da alimentação pode ser chamado de Vcc ou Vdd, enquanto que o terminal negativo poderá ser GND V

(a) Entrada de um inversor CMOS (MOSFET)

– 9 – 

(b) Entrada de uma porta TTL (TBJ) Figura 2.2 – Exemplos de estrutura interna de entradas digitais

O valor lógico UM é também chamado de nível ALTO. O valor lógico ZERO é também chamado de nível BAIXO

Uma entrada digital, portanto, deve sempre receber um valor de tensão. Se esta tensão for próxima ao valor da alimentação do componente, a entrada digital lerá o valor lógico UM; se o valor da tensão for próximo de zero volts, a entrada digital lerá o valor lógico ZERO. Embora o usuário tenha a liberdade de aplicar qualquer nível de tensão a uma entrada digital, é recomendável que sempre sejam aplicados ou valores próximos da alimentação do componente (caracterizando UM) ou valores próximos de zero (caracterizando ZERO), pois valores intermediários podem fazer com que a camada de depleção dos transistores não responda o suficiente para que o mesmo entre na região de corte ou saturação, levando a uma identificação incorreta do nível lógico de entrada pretendido. 2.2. Circuitos para Aquisição de Dados Digitais Para que seja possível fornecer um bit a um dispositivo digital, é necessário um circuito que imponha uma tensão próxima à alimentação para nível ALTO ou uma tensão próxima de zero para nível BAIXO. Um exemplo básico é mostrado na Figura 2.3.

– 10 – 

Figura 2.3 – Circuito de entrada digital

Quando a chave estiver fechada, a entrada é aterrada e a porta digital receberá o valor ZERO. Coma chave aberta, a tensão da alimentação é repassada à entrada, que lerá o valor UM. O resistor é necessário para que a tensão de alimentação seja vista pelo inversor quando a chave estiver aberta, além de limitar a corrente na chave quando esta estiver fechada. Este resistor é comum de ser utilizado nestes casos e recebe o nome de pull-up. 2.3. Estrutura de Saídas Digitais As saídas digitais têm um comportamento bem diferente das entradas. Uma saída digital se comporta como uma fonte de alimentação. Quando a saída estiver em nível BAIXO, é fornecido zero volts; quando estiver em nível ALTO, é fornecida a tensão de alimentação. Portanto, saídas digitais sempre fornecem valores de tensão ao circuito seguinte, que poderá ser analógico ou digital.

Figura 2.4 – Estrutura interna de uma saída digital

A Figura 2.4 mostra a estrutura interna da saída de um inversor. Neste exemplo, a saída do inversor está em nível ALTO devido à posição da chave. Naturalmente, se estivesse em nível BAIXO, a chave estaria na outra posição. 2.4. Aplicação de Saídas Digitais Por se comportar semelhantemente a uma fonte de tensão, uma saída digital pode ser utilizada para alimentar circuitos de baixa potência. No exemplo da Figura 2.5 tem-se uma porta lógica alimentando um LED e uma das saídas de um microcontrolador alimentando um transistor que aciona uma lâmpada.

– 11 – 

Figura 2.5 – Circuitos alimentados por saídas digitais

Na porta lógica, quando sua saída estiver em ZERO, o LED apagará, caso contrário, acenderá. Já no microcontrolador, quando sua saída estiver em nível ALTO, o transistor saturará e a lâmpada acenderá. O comportamento inverso acontece quando a saída do microcontrolador estiver em nível BAIXO. 2.5. Drivers de Corrente e Tensão Limitações de corrente em saídas digitais, amplificação da capacidade de fornecimento de corrente. Tensão nominal de saídas digitais, circuitos para adaptação de tensão. 2.6. Curto-circuito em saídas digitais Embora o comportamento de saídas digitais seja simples, deve-se tomar cuidado com suas ligações, pois um erro pode provocar um curto-circuito na alimentação, levando à queima da porta. A Figura 2.6 mostra os erros mais comuns e que portanto devem ser evitados.

(a) Saída aterrada / Saída ligada a +Vcc

– 12 – 

(b) Duas saídas interligadas Figura 2.6 – Ligações proibidas em circuitos digitais

Não se deve confundir o comportamento acima descrito com as entradas digitais, onde não há nenhum problema que duas ou mais sejam interligadas ou mesmo conectadas ao terra ou a Vcc. A Figura 2.7 ilustra esta situação.

Figura 2.7 – Ligações normais para entradas digitais

3. Agrupamento de bits As entradas e saídas digitais de circuitos digitais, especialmente os microcontrolados, geralmente aparecem em grupos. Para que não haja confusão na interpretação de valores binários presentes nestas entradas e saídas, deve-se identifica-las com letras seguidas de índices subscritos, como exemplifica a .

Figura 3.1 – Identificação de terminais com grupos de bits

– 13 – 

À esquerda é mostrado um microcontrolador PIC com uma de suas portas tendo 8 bits identificados como RB0, RB1,... até RB7. À direita encontrase uma memória com um grupo de bits denominado D0 a D7 e outro grupo de bits denomidado A0 até A10. Observa-se que a numeração sempre começa por zero. Se cada um desses grupos de bits forem utilizados como um número binário, então o bit mais significativo é representado pelo maior índice.

– 14 – 

Capítulo 2

Conceitos Básicos em Microcontroladores 1. Clock A grande maioria dos circuitos digitais necessita de um sinal digital oscilante para funcionar. Este sinal é chamado de clock.

  Figura 1.1 – Sinal de clock

Como pode ser visto na Figura 1.1, o clock tem formato quadrado e varia entre os níveis lógicos ZERO e UM constante e uniformemente, com a mesma duração para cada estado lógico. Quanto maior a freqüência de clock, mais rápida é a resposta do sistema; porém nem todos os componentes eletrônicos possuem sensibilidade para altas freqüências devido à sua estrutura física. Para o microcontrolador, o clock funciona como um marcador, onde a cada pulso algo acontece internamente. Se não houvesse clock, o microcontrolador não funcionaria e todos os níveis lógicos do sistema permaneceriam no mesmo estado infinitamente. Todo componente digital que necessita de clock, assim como os microcontroladores, possui uma entrada específica para este sinal. Alguns e-

xemplos são mostrados na Figura 1.2, onde o pino de entrada de clock está destacado com um círculo.

Figura 1.2 – Exemplos de componentes com entrada para clock

Existem diversas formas de se gerar o sinal de clock. Nas mais comuns são utilizados semicondutores e componentes reativos (capacitores ou indutores). A Figura 1.3 traz alguns exemplos de geradores de clock. Os microcontroladores já possuem internamente a maioria dos componentes necessários para a geração dos pulsos de clock, sendo necessário conectar somente um componente para a definição da freqüência de oscilação (geralmente um cristal de quartzo) e alguns capacitores opcionais para melhorar a estabilidade.

– 16 – 

Figura 1.3 – Exemplos de circuitos geradores de clock

2. Hardware e Software Os microcontroladores são projetados para seguir uma lista de tarefas. Uma tarefa pode ser uma cópia entre endereços de memória, o acionamento de um dispositivo, a leitura de um interruptor, ou seja, qualquer operação com bits.

– 17 – 

Cada tarefa específica, escrita na linguagem do microcontrolador, é chamada de instrução. A um conjunto de instruções com um objetivo geral dá-se o nome de programa, ou software. Os microcontroladores possuem uma região específica para o armazenamento dos seus programas, para que estes não sejam perdidos quando o sistema é desligado. Para que o programa possa ser executado pelo microcontrolador, é necessário um elemento físico, real, que seja capaz de executar as instruções, isto é, precisa-se de um circuito para o programa torne-se algo útil. A este circuito dá-se o nome de hardware. Sendo assim, os sistemas microcontrolados precisam do hardware e do software, simultaneamente, para que funcionem. Um depende do outro. As pessoas que projetam os programas são os programadores. As pessoas que utilizam o sistema depois de finalizado são os usuários. Existem diversas ferramentas computacionais que permitem a elaboração de um programa, que precisa ser projetado em uma linguagem compatível com o microcontrolador a ser utilizado. Alguns exemplos são o Assembly e a linguagem C. Cada microcontrolador possui o seu próprio Assembly. A linguagem Assembly dos microcontroladores PIC, por exemplo, é completamente diferente do Assembly para 8051, que difere também do Assembly para COP (da National). Já a linguagem C é universal e seus principais comandos são comuns a qualquer microcontrolador ou processador (inclusive o PC). Quando um programa é concluído, este deve ser carregado para a memória do microcontrolador. Antes da realização deste processo é necessário que todo o programa seja convertido para código binário, pois sabe-se que o microcontrolador só é capaz de entender ZEROS e UNS. A este processo dá-se o nome de compilação. Portanto, todo programa deve ser compilado antes de ser gravado no microcontrolador.

3. Memória As memórias são circuitos integrados destinados ao armazenamento de bits, sendo essenciais ao funcionamento de sistemas com microcontroladores, que além de armazenar o programa, precisam a todo o momento transmitir informações entre os demais dispositivos do sistema. 3.1. Endereços de Memória A informação binária em uma memória é armazenada em grupos iguais de um determinado número de bits. Cada grupo de bits recebe o nome de endereço. Portanto, uma memória é subdividida em endereços. A

– 18 – 

Figura 3.1 mostra o mapa de uma memória com 8 endereços. Nota-se que cada endereço é capaz de armazenar 4 bits. Os endereços de uma memória são numerados a partir de zero até o maior valor possível, dependendo da capacidade total. Na figura, observa-se uma memória de 8 endereços, sendo portanto numerados de 0 a 7.

– 19 – 

Endereço 0 Aqui cabem 4 bits Endereço 1 Aqui cabem 4 bits Endereço 2 Aqui cabem 4 bits Endereço 3 Aqui cabem 4 bits Endereço 4 Aqui cabem 4 bits Endereço 5 Aqui cabem 4 bits Endereço 6 Aqui cabem 4 bits Endereço 7 Aqui cabem 4 bits Figura 3.1 – Mapa de uma memória 8x4

É importante salientar que, por se tratar de um componente digital, a memória acessa seus endereços numerando-os no sistema binário, como mostra a Figura 3.2, que contém o mapa de uma memória de 16 endereços. 0000 xxxx

1000 xxxx

0001 xxxx

1001 xxxx

0010 xxxx

1010 xxxx

0011 xxxx

1011 xxxx

0100 xxxx

1100 xxxx

0101 xxxx

1101 xxxx

0110 xxxx

1110 xxxx

0111 xxxx

1111 xxxx

Figura 3.2 – Mapa de uma memória de 8 endereços mapeados em binário

A figura mostra uma única memória, dividida ao meio apenas para aproveitamento de espaço. Embora o código binário seja o realmente utilizado pela memória para o acesso aos seus endereços, é comum trabalhar-se em hexadecimal em projetos e análise de circuitos. O mapa do exemplo citado acima ficaria como na Figura 3.3. 0 xxxx

8 xxxx

– 20 – 

1 xxxx

9 xxxx

2 xxxx

A xxxx

3 xxxx

B xxxx

4 xxxx

C xxxx

5 xxxx

D xxxx

6 xxxx

E xxxx

7 xxxx

F xxxx

Figura 3.3 – Mapa de uma memória de16 endereços mapeados em hexadecimal

3.2. Bits de endereço O acesso aos endereços de uma memória, que é feito no sistema de numeração binário, é realizado através de vias, terminais físicos. Cada uma dessas vias representa um bit. Na memória da Figura 3.3, por exemplo, teríamos 4 vias para acesso aos endereços da memória, pois tem-se 16 endereços no total. A essas vias dá-se o nome de bits de endereço. O número de bits de endereço de uma memória é dado pelo expoente de base 2 do total de endereços. Segue alguns exemplos:

Lembrete: em potências de 2, o expoente sempre será igual ao número de bits.



Seja uma memória de 32 endereços. Sabendo-se que 32 = 25, esta memória, portanto, possui 5 vias de endereço.



Para uma memória de 512 endereços, tem-se 9 bits, pois 29=512.



Fazendo um raciocínio inverso, quantos endereços pode-se formar com 7 bits? A resposta é o resultado da potência 27 = 128 endereços.



Uma memória com 6 bits de endereço tem capacidade para até 64 endereços, pois 26=64.

A memorização da Tabela 2.1 é útil para identificar rapidamente a quantidade de bits e o total de endereços de uma memória. Tabela 2.1 – “Tabuada de potências de 2”

20

1

25

32

21

2

26

64

22

4

27

128

– 21 – 

23

8

28

256

24

16

29

512

Para potências a partir de 210 utiliza-se as aproximações, conforme a Tabela 2.2. Tabela 2.2 – Aproximações de potências de base 2 elevadas

Em potências de 2, o resultado da potência sempre será igual ao total de endereços.

Potência

Aproximação

210

1k (1 kilo)

220

1M (1 Mega)

230

1G (1 Giga)

240

1T (1 Tera)

250

1P (1 Peta)

Com os valores da Tabela 2.1 e da Tabela 2.2 é possível definir aproximar praticamente qualquer quantidade de bits. Alguns exemplos são mostrados abaixo. 

Uma memória de 1k possui 10 bits de endereço, pois 210=1k.



Já uma memória de 128k possui 17 bits de endereço, uma vez que 128k = 27x210 = 217.



Se uma memória possuir 29 bits de endereços, terá capacidade para 512M, pois 229 = 29x220 = 512M.

Os bits de endereço de uma memória costumam ser identificados pela letra “A” seguida de um índice subscrito. Desta forma, cada bit possui uma identificação. Os exemplos seguintes demonstram isso. 

Se uma memória tiver 8 bits de endereços, estes serão nomeados na seguinte ordem: A7, A6, A5, A4, A3, A2, A1 e A0, mantendo-se o padrão de que qualquer numeração digital inicia-se com zero.



Uma memória de 16K terá seus bits nomeados assim: A13, A12, A11, A10, A9, A8, A7, A6, A5, A4, A3, A2, A1 e A0.

É importante lembrar que o bit mais significativo possui índice maior. – 22 – 

3.3. Seccionamento de memórias Às vezes é necessário dividir uma memória em duas partes e conhecer os endereços final e inicial de cada bloco formado por esta divisão. Por exemplo, ao se dividir uma memória de 256 endereços (0 a 255) em duas partes, ter-se-á a primeira seção numerada de 0 a 127 e a segunda seção de 128 a 256. No entanto a numeração das memórias é trabalhada em binário ou hexadecimal e qualquer eventual divisão em sua estrutura também deve ser assim numerada. 

Para uma memória de 256 endereços (8 bits) teria-se: Primeiro endereço:

0000 00002

ou

00h

Último endereço:

1111 11112

ou

FFh

Para se conhecer os endereços dos blocos desta memória após uma divisão em duas partes, deve-se trabalhar com o bit mais significativo, de forma que, quando este for igual a ZERO, temos o primeiro bloco, e quando este for igual a UM, temos o segundo bloco: Primeiro bloco:

Segundo bloco:

0000 00002

ou

00h

0111 11112

ou

7Fh

1000 00002

ou

80h

1111 11112

ou

7Fh

Nota-se que, no segundo bloco, o primeiro endereço (80h) é a continuação do último endereço do primeiro bloco (7Fh). 3.4. Bits de dados Cada endereço de uma memória suporta uma determinada quantidade de bits. A Figura 3.1 por exemplo mostra uma memória cujos endereços suportam 4 bits, sendo por isso identificada como 8x4, ou seja, 8 endereços e 4 bits de dados. Para se conhecer a capacidade total de bits de uma memória, basta multiplicar-se a quantidade de endereços pela quantidade de bits em cada endereço. No exemplo acima, tem-se uma memória com capacidade para armazenar 32 bits (8x4). Na memória da Figura 3.4, tem-se 4 dígitos (16 bits) para identificar seus endereços. Fazendo-se as contas, tem-se 216 = 64k endereços. Obviamente a figura não está mostrando a memória inteira, mas apenas as 16 primeiras posições. Pode-se observar também que em cada endereço cabem 16

– 23 – 

bits, pois outros 4 dígitos armazenam as informações de cada endereço. Sendo assim, esta é uma memória 64k x 16. Se for utilizada a nomenclatura para grupos de bits, pode-se afirmar que esta é uma memória de 64k words, uma vez que cada memória armazena uma word. Na memória da Figura 3.5 cada endereço suporta 8 bits. Como os endereços estão identificados com 3 dígitos hexadecimais, trata-se de uma memória de 12 bits de endereços, ou seja, 4k. Portanto, tem-se aqui uma memória 4k x 8, ou 4k bytes. 3.5. Diagramas de mapeamento As informações presentes em uma memória podem ser representadas graficamente, através de um mapa que mostra todos os endereços e a informação armazenada em cada endereço.

Address significa endereço em inglês.

A Figura 3.4 mostra um exemplo de mapa de memória em coluna única. Salienta-se que, embora os dados armazenados estejam escritos em hexadecimal, em funcionamento real estariam em binário. Esta memória é do tipo 64k x 16, ou 64k words. O endereço 0000h contém o valor 3FFFh arma-

zenado. No endereço 000Bh está gravado o valor 3A0Fh. Figura 3.4 – Mapa em coluna única

A Figura 3.5 mostra uma memória em matriz. Devido à quantidade de dígitos em hexadecimal mostrada na coluna de endereços, conclui-se que aqui não está sendo mostrada a memória por inteiro. A maioria dos endereços possui o valor 00h armazenado. O endereço 20h contém o valor F5h. Já o endereço 1Ah, por exemplo, contém o valor 55h.

Figura 3.5 – Mapa em matriz

3.6. Classificação das memórias – 24 – 

Em geral as memórias podem ser voláteis ou não-voláteis. Memórias voláteis são aquelas que perdem seus dados quando a alimentação é desligada. Evidentemente as não-voláteis mantém os dados mesmo sem alimentação elétrica. Memórias voláteis são do tipo RAM (Random Access Memory), que significa Memória de Acesso Aleatório. As memórias RAM são de rápido acesso, tanto para leitura quanto para escrita. As memórias não-voláteis podem ser: 

ROM (Read-only Memory), Memória apenas de leitura;



PROM (Programable ROM), ROM programável;



EPROM (Erasable PROM), PROM apagável;



EEPROM, (Electrically-erasable PROM), PROM apagável eletricamente;



FLASH

As memórias ROM são fabricadas já com a informação necessária gravada (geralmente um programa) e não pode mais ser reprogramada após sua fabricação, ou seja, quando for utilizada, somente será possível ler os dados armazenados, nunca sobrescrevê-los. Por isso tem o nome de “memória apenas de leitura”. As memórias PROM saem da fábrica com todos os seus endereços preenchidos com UM lógico para serem programadas pelos seus usuários, que devem zerar os bits de dados corretamente de acordo com o programa que projetarem. As PROMs também não podem ser reprogramadas. Os demais tipos de memória não-volátil também funcionam apenas para leitura durante seu funcionamento normal, mas podem ter seus endereços modificados através de procedimentos especiais. As EPROMs também saem de fábrica da mesma forma que as PROMs, mas podem ser apagadas novamente através de incidência de raio ultravioleta. O apagamento de uma EPROM é feito sempre na memória por inteiro. As memórias EEPROM e FLASH funcionam como as EPROMs, mas podem ser apagadas por níveis de tensão, geralmente mais altos que a alimentação comum do sistema. 3.7. Memória em microcontroladores Os microcontroladores possuem dois tipos de memória: uma destinada ao armazenamento do programa (software), chamada de memória de programa, e outra destinada ao armazenamento de informações temporárias, – 25 – 

operações lógicas e aritméticas, transferência de dados, etc, chamada de memória de dados. Segue alguns exemplos para melhor entendimento da diferença entre os dois tipos de memória. 

Como que uma calculadora sabe que ao apertar o botão “2”, o número 2 deve ser escrito na tela? E como ela sabe que ao se apertar o botão “+”, deverá ser realizada uma soma com o próximo número a ser digitado? Isto é possível porque o programa está armazenado na memória de programa. Entretanto, várias informações, que não vemos, são trocadas internamente na calculadora enquanto é utilizada, desde o acendimento/apagamento dos segmentos do display até os códigos dos botões pressionados. Estas informações certamente passam pela memória de dados.



Quando se deseja fazer um bolo seguindo uma receita, toda a informação contida na receita é semelhante à memória de programa. Já os ingredientes, os recipientes e até mesmo aqueles detalhes que só os cozinheiros experientes conhecem são semelhantes à memória de dados.



O programa armazenado em um leitor de cartões magnéticos faz com que a cada cartão lido seja realizada uma consulta à operadora do cliente e decrementado o valor monetário referente à compra se houver saldo, enquanto que o número do cartão lido, o código do banco, as mensagens do visor são supridas pela memória de dados.

A memória de programa deve, obrigatoriamente, ser do tipo não-volátil, pois toda a vez que um sistema microcontrolado for ligado, o programa deve estar presente e pronto para ser executado. Já a memória de dados pode ser de qualquer um dos tipos vistos acima, dependendo da aplicação em questão. Uma agenda eletrônica, por exemplo, precisa de uma memória não-volátil para armazenar nomes, endereços e telefones.

– 26 – 
Apostila Microcontroladores (Edição 2006)

Related documents

26 Pages • 4,332 Words • PDF • 241.7 KB

26 Pages • 5,165 Words • PDF • 1.2 MB

23 Pages • 8,196 Words • PDF • 279.7 KB

0 Pages • PDF • 114.1 KB

263 Pages • 109,771 Words • PDF • 1.4 MB

68 Pages • 22,479 Words • PDF • 18.3 MB

82 Pages • 63,803 Words • PDF • 2.2 MB

267 Pages • 133,283 Words • PDF • 3.6 MB

6 Pages • 1,661 Words • PDF • 328.4 KB

42 Pages • 26,434 Words • PDF • 1.2 MB

88 Pages • 11,520 Words • PDF • 6.3 MB