Introdução a Microcontroladores PIC

1.267 visualizações

Publicada em

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.267
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
44
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Introdução a Microcontroladores PIC

  1. 1. 1.1 INTRODUÇÃO Novatos na electrónica geralmente pensam que o microcontrolador é o mesmo que o microprocessador. Isso não é verdade. Eles diferem uns dos outros, em muitos aspectos. O primeiro e mais importante diferença a favor do microcontrolador é a sua funcionalidade.A fim de que o microprocessador pode ser usado, outros componentes, a memória vem em primeiro lugar, tem de ser adicionada a ele.Mesmo que ele é considerado uma máquina de computação poderosa, não é ajustado para se comunicar com o ambiente periférico. A fim de permitir que o microprocessador para comunicar com o ambiente periférico, circuitos especiais deve ser usado. Isto é como era no início e continua a ser o mesmo hoje. Por outro lado, o microcontrolador é concebido para ser tudo isso em um. Não há outros componentes externos especializados são necessários para a sua aplicação, porque todos os circuitos necessários que de outra forma pertencem aos periféricos já estão construídos na mesma. Ele economiza tempo e espaço necessário para projetar um dispositivo. ALL THE MICROCONTROLLER PODE FAZER A fim de tornar mais fácil para você entender as razões de um grande sucesso de microcontroladores tal, vamos chamar sua atenção por alguns minutos para o seguinte exemplo. Cerca de dez anos atrás, a concepção de um dispositivo electrónico que controla o elevador em um prédio de vários andares foi extremamente difícil, mesmo para uma equipe de especialistas. Alguma vez você já pensou sobre o que os requisitos de um elevador comum deve atender? Como lidar com a situação quando duas ou mais pessoas chamar o elevador ao mesmo tempo? Que chamada tem prioridade? Como lidar com a questão de segurança? A perda de energia elétrica? Fracasso? Uso indevido? ... O que vem depois de resolver estas questões básicas é um meticuloso processo de concepção eletrônica apropriadas usando um grande número de chips especializados. Dependendo da complexidade do dispositivo, este processo
  2. 2. pode levar semanas ou meses. Quando terminar, é hora de projetar uma placa de circuito impresso e um dispositivo de montar. Um grande dispositivo! É mais um trabalho de longa duração e de tentar. Finalmente, quando tudo estiver terminado e testado por muitas vezes, o momento crucial vem quando você concentrar-se, respire fundo e mudar a fonte de alimentação. Este é geralmente o ponto em que o partido se transforma em um verdadeiro trabalho desde dispositivos eletrônicos quase nunca começa a operar imediatamente. Prepare-se para muitas noites sem dormir, correções, melhorias ... e não se esqueça, ainda estamos falando sobre o funcionamento de um elevador comum. Quando o dispositivo finalmente começa a funcionar perfeitamente e todo mundo está satisfeito e você finalmente receber o pagamento pelo trabalho que têm feito, muitas empresas que constroem vai tornar-se interessado em seu trabalho. Claro, se você tiver sorte, um dia vai lhe trazer uma oferta de travamento de um novo investidor. No entanto, um novo edifício tem quatro andares mais. Você sabe do que se trata? Você acha que pode controlar o destino? Você vai fazer um dispositivo universal que pode ser usada em edifícios de 4 a 40 histórias, uma obra-prima da eletrônica? Tudo bem, mesmo se você conseguir fazer uma jóia tão eletrônico, o investidor irá esperar na frente de sua porta pedindo uma câmera no elevador. Ou para música relaxante no caso de falha de elevador. Ou para de duas portas do elevador. De qualquer forma, a lei de Murphy é inexorável e você certamente não vai ser capaz de fazer uma vantagem de todo o esforço que você fez. Infelizmente, tudo o que foi dito agora é verdade. Isto é o que 'manipulação eletrônica' realmente significa. Não, espere, vamos corrigir a nós mesmos, que é como ele foi até os primeiros microcontroladores foram projetados - pequenos, potentes e baratos microcontroladores. Desde o momento em sua programação deixou de ser uma ciência, tudo tomou outra direção ... Eletrônica capazes de controlar um pequeno submarino, um guindaste ou o elevador acima indicado agora é construído em um único chip. Microcontroladores de oferecer uma ampla gama de aplicações e apenas alguns deles são usados normalmente. Cabe a você decidir o que você quer que o microcontrolador para fazer e despejar um programa que contém instruções apropriadas para ele. Antes de ligar o dispositivo, o seu funcionamento deve ser testado por um simulador. Se tudo funciona bem, construir o microcontrolador no dispositivo. Se você precisar alterar, melhorar ou atualizar o programa, basta fazê-lo. Até quando? Até que você se sentir satisfeito. Isto é tudo.
  3. 3. Você sabe que todas as pessoas podem ser classificadas em um dos 10 grupos-aqueles que estão familiarizados com o sistema de número binário e aqueles que não estão familiarizados com ele. Você não entende? Isso significa que você ainda pertencem ao último grupo. Se você quer mudar o seu estado de ler o texto a seguir uma breve descrição de alguns dos conceitos básicos usados ainda neste livro (só para ter certeza que estamos na mesma página). 1,2 números, números, números ... A matemática é uma boa ciência tal! Tudo é tão lógico ... Todo o universo pode ser descrito com apenas dez dígitos. Mas, isso realmente tem que ser assim? Será que precisamos de exatamente dez dígitos? Claro que não, é apenas uma questão de hábito. Lembre-se das lições da escola. Por exemplo, o que é que o número 764 significa: quatro unidades, seis dezenas e sete centenas. É tão simples quanto isso! Poderia ser descrito de uma forma mais complicada? Claro que poderia:. 4 + 60 + 700 Ainda mais complicado? Sim: 4 * 1 + 10 + 6 * 7 * 100. Poderia este número olhar mais científico? A resposta é sim mais uma vez: 4 * 100 + 6 * 101 + 7 * 102. O que isso realmente significa? Por que usamos exatamente esses números: 100, 101 e 102? Por que é sempre sobre o número 10? Porque usamos dez dígitos diferentes (0, 1, 2, ... 8, 9). Em outras palavras, usamos base 10 sistema de números, ou seja, sistema de numeração decimal. Sistema de numeração binário O que aconteceria se apenas dois dígitos são usados-0 e 1? Ou, se não não sei como determinar se algo é de 3 ou 5 vezes maior do que qualquer outra coisa? Ou se estamos restritos ao comparar dois tamanhos, ou seja, se só podemos afirmar que algo existe (1) ou não existe (0)? A resposta é "nada de especial", gostaríamos de continuar a usar os números da mesma forma como fazemos agora, mas seria um pouco diferente. Por exemplo:. 11011010 Quantas páginas de um livro que o número 11011010 incluir? Para saber isso, você apenas tem que seguir a mesma lógica que no exemplo anterior, mas em ordem inversa. Tenha em mente que tudo isso é sobre a matemática com apenas dois dígitos-0 e 1, ou seja, base 2 sistema de números (sistema numérico binário).
  4. 4. É, obviamente, o mesmo número representado em dois sistemas numéricos diferentes. A única diferença entre estas duas representações é o número de dígitos necessários para escrever um número. Um dígito (2) é usado para escrever o número 2 no sistema decimal, enquanto dois dígitos (1 e 0) são usados para escrever em sistema binário. Você agora concordam que existem 10 grupos de pessoas? Bem-vindo ao mundo da aritmética binária! Você tem alguma idéia de onde ele é usado? Exceto para condições de laboratório rigorosamente controladas, os circuitos eletrônicos mais complicados não pode determinar com precisão a diferença entre dois tamanhos (dois valores de tensão, por exemplo) se eles são muito pequenos (menores do que alguns volts). As razões são ruídos elétricos e algo chamado de "ambiente real de trabalho" (mudanças imprevisíveis de tensão de alimentação, mudanças de temperatura, a tolerância com os valores dos componentes internos etc.) Imagine um computador que opera em cima de números decimais, tratando-as da seguinte forma: 0 = 0 V, 1 = 5V, 2 = 10V, 3 = 15V, 4 = 20V ... 9 = 45V. Alguém disse baterias? Uma solução muito mais simples é uma lógica binária em que 0 indica que não existe tensão e 1 indica que há uma tensão. É mais fácil escrever 0 ou 1 em vez de frases completas "não há tensão" ou "não há tensão ', respectivamente. Trata-se de lógica zero (0) e lógica de um (1), que perfeitamente lidar com eletrônica e facilmente executa todas as operações matemáticas infinitamente complexas.Obviamente, o sistema eletrônico que estamos falando se aplica a matemática em que todos os números são representados por dois dígitos apenas e onde só é importante saber se há uma tensão ou não. Claro, estamos falando de eletrônica digital. SISTEMA número hexadecimal No início do desenvolvimento dos computadores percebeu-se que as pessoas tinham muitas dificuldades em lidar com números binários. Por esta razão, um novo sistema de numeração, com 16 símbolos diferentes foi estabelecida. Ele é chamado de sistema de numeração hexadecimal e consiste de dez dígitos que são usados para (0, 1, 2, 3, ... 9) e seis letras do alfabeto A, B, C, D, E e F. Você provavelmente quer saber sobre o objetivo desta combinação aparentemente bizarra? Basta olhar como ele se encaixa perfeitamente a história sobre números binários e você vai entender. O maior número que pode ser representado por 4 dígitos binários é o número 1111. Ele corresponde ao número 15 no sistema decimal, enquanto que no sistema hexadecimal é representado por apenas um dígito F. É o maior número de 1 dígito no sistema hexadecimal .Você vê como habilmente ele é usado? O maior número escrito com oito dígitos binários é, ao mesmo tempo que o maior número de 2 dígitos hexadecimais. Não se esqueça que os computadores usam números binários de 8 dígitos. Por acaso?
  5. 5. BCD CODE Código BCD é um código binário para números decimais apenas (B inary-C oded D ecimal). Ele é usado para ativar os circuitos eletrônicos para se comunicar tanto com os periféricos que utilizam sistema de numeração decimal ou dentro de "seu próprio mundo" usando o sistema binário. Trata-se de números binários de 4 dígitos que representam os dez primeiros dígitos (0, 1, 2, 3 ... 8, 9). Apesar de quatro dígitos pode dar no total de 16 combinações possíveis, o código BCD normalmente utiliza apenas os dez primeiros. SISTEMA DE NÚMERO DE CONVERSÃO Sistema numérico binário é mais comumente usado, o sistema decimal é mais compreensível, enquanto o sistema hexadecimal é algo entre eles. Portanto, é muito importante aprender como converter números de um sistema numérico para outro, ou seja, como transformar uma sequência de zeros e uns em valores compreensíveis. Binário para decimal NÚMERO DE CONVERSÃO Dígitos em um número binário têm valores diferentes, dependendo da posição que eles têm em que número. Além disso, cada posição pode conter 1 ou 0 e o seu valor pode ser facilmente determinada por contagem da sua posição a partir da direita. Para fazer a conversão de um número binário para decimal é necessário multiplicar os valores com os dígitos correspondentes (0) OR1 e adicionar todos os resultados. A magia de binário para decimal conversão de número funciona ... Você duvida? Veja o exemplo abaixo: Note-se que, a fim de representar os números decimais de 0 a 3, você precisará usar apenas dois dígitos binários. Para números maiores, dígitos binários extras deve ser usado. Assim, a fim de representar os números decimais de 0 a 7 você precisa de três dígitos binários, para os números de 0 a 15 você precisa de quatro dígitos, etc Simplificando, o maior número binário constituído por n dígitos é obtido quando a base 2 é levantada pelo n. O resultado deve ser subtraído de 1 Por exemplo, se n = 4.: Fevereiro 4-1 = 16 - 1 = 15 Por conseguinte, por meio de 4 dígitos binários é possível representar os números decimais de 0 a 15, o que equivale a 16 valores diferentes no total. Hexadecimal em decimal NÚMERO DE CONVERSÃO De modo a fazer a conversão de um número hexadecimal em decimal, cada dígito hexadecimal deve ser multiplicado pelo número 16 apresentada pelo seu valor da posição. Por exemplo: Hexadecimal para Binário conversão de número Não é necessário realizar todos os cálculos, a fim de converter números hexadecimais para binário. Dígitos hexadecimais são simplesmente substituídos por dígitos binários apropriados. Desde o dígito máximo hexadecimal é equivalente ao número decimal 15, precisamos usar quatro dígitos binários para representar um dígito hexadecimal. Por exemplo:
  6. 6. Uma tabela comparativa abaixo contém os valores de números de 0-255 em três sistemas numéricos diferentes. Esta é provavelmente a maneira mais fácil de entender a lógica comum aplicado a todos os sistemas. Marcação de números Sistema numérico hexadecimal é, juntamente com sistemas binários e decimais considerados o sistema de número mais importante para nós. É fácil de fazer a conversão de qualquer número hexadecimal em binário e também é fácil de lembrar. No entanto, essas conversões podem causar confusão. Por exemplo, o que significa a frase "É preciso contar até 110 produtos na linha de montagem 'realmente significa? Dependendo se é sobre o sistema binário, decimal ou hexadecimal, o resultado poderia ser 6, 110 ou 272 produtos, respectivamente! Por conseguinte, a fim de evitar confusão, diferentes prefixos e sufixos são directamente adicionados aos números. O prefixo $ ou 0x, bem como o sufixo h marca os números em sistema hexadecimal. Por exemplo, o número hexadecimal 10AF pode parecer quanto $ 10AF, 0x10AF ou 10AFh. Da mesma forma, os números binários geralmente se o prefixo% ou 0b. Se um número não tem nem sufixo ou prefixo é considerado decimal. Infelizmente, esta forma de números de marcação não é padronizado, portanto, depende da aplicação concreta. BIT Teoria diz que um bit é a unidade básica de informação ... Vamos esquecer por um momento e dar uma olhada no que é na prática. A resposta é nada especial, um pouco é apenas um dígito binário. Semelhante ao sistema de numeração decimal, em que algarismos de um número não têm o mesmo valor (por exemplo, os dígitos no número decimal 444 são as mesmas, mas têm valores diferentes), o "significado" de bits depende da sua posição no número binário . Desde que não há nenhum ponto de falar sobre as unidades, dezenas, etc em números binários, os seus números são referidos como o (mais à direita bit) bit zero, primeiro bit (segundo a partir da direita), etc Além disso, uma vez que o sistema binário utiliza dois dígitos só (0 e 1), o valor de um bit pode ser 0 ou 1.
  7. 7. Não fique confuso se você se deparar com um pouco de ter valor 4, 16 ou 64. Significa apenas que o seu valor é representado no sistema decimal. Simplificando, temos ficou muito acostumados com o uso de números decimais que tais expressões tornaram-se comuns. Seria correto dizer, por exemplo, "o valor do sexto bit de qualquer número binário é equivalente ao número decimal 64 '. Mas somos humanos e os velhos hábitos custam a morrer ... Além disso, como soaria "número um-um-zeroone de zero ... '? BYTE Um byte é constituído por oito bits agrupados. Se um bit é um dígito, é lógico que bytes representar números. Todas as operações matemáticas podem ser realizadas sobre eles, como em cima de números decimais comuns. Semelhante a dígitos de qualquer número, dígitos bytes não tem o mesmo significado também. O maior valor tem o bit mais à esquerda chamado o bit mais significativo (MSB). O bit mais à direita tem o menor valor e, por conseguinte, é chamado o bit menos significativo (LSB). Desde oito zeros e uns de um byte podem ser combinados em maneiras diferentes de 256, o maior número decimal que pode ser representado por um byte é 255 (uma combinação representa um zero). Um nibble é referido como uma metade de byte. Dependendo do que a metade do registo que estamos falando (esquerda ou direita), há 'alta' e petiscos "baixos", respectivamente. Alguma vez você já se perguntou o que a eletrônica dentro de circuitos integrados digitais, microcontroladores ou processadores parece?O que os circuitos que executam operações matemáticas complexas e tomar decisões se parece? Você sabe que seu esquema aparentemente complicado compreendem apenas alguns elementos diferentes chamados circuitos lógicos ou portas lógicas? 1.3 deve saber detalhes A operação desses elementos é baseada em princípios estabelecidos por um matemático britânico George Boole, em meados do século 19, antes mesmo da primeira lâmpada foi inventada. Originalmente, a idéia principal era expressar formas lógicas através de funções algébricas. Tal pensamento foi logo transformado em um produto prático que muito mais tarde avaliado em o que hoje é conhecido como AND, OR e NOT circuitos lógicos. O princípio de sua operação é conhecida como álgebra booleana. Circuitos lógicos Algumas das instruções de programa dar os mesmos resultados que as portas lógicas. O princípio de sua operação serão discutidos no texto abaixo. E Portão A porta lógica "E" tem duas ou mais entradas e uma saída. Vamos supor que o portão usado neste exemplo tem apenas duas entradas. A lógica de um (1) aparecerá em sua saída somente se ambas as entradas (A e B) são movidos alta (1). Tabela à direita mostra a dependência mútua entre as entradas e saída.
  8. 8. Quando utilizado num programa, uma lógica AND operação é executada pelo programa de instruções, o que será discutido mais tarde. Por enquanto, é o suficiente para lembrar que a lógica E em um programa refere-se os bits correspondentes de dois registos. OR GATE Da mesma forma, portas OR também tem duas ou mais entradas e uma saída. Se o portão tem apenas duas entradas é aplicável o seguinte. Um Alogic (1) aparecerão em sua saída se uma entrada (A ou B) é impulsionado alta (1). Se a porta OR tem mais de duas entradas, em seguida, o seguinte se aplica.Alogic um (1) aparece na sua saída, se, pelo menos, uma entrada é colocada em alta (1). Se todas as entradas estão à lógica zero (0), a saída será a lógica zero (0), bem. No programa, a lógica OU a operação é executada da mesma maneira que a lógica AND. NÃO PORTÃO A porta lógica NOT tem apenas uma entrada e uma única saída. Ele opera de uma forma extremamente simples. Quando a lógica zero (0) aparece na sua entrada, uma lógica de um (1) aparece em sua saída e vice-versa. Significa que este portão inverte o sinal e é muitas vezes chamado inversor, por isso. No programa, a lógica não operação é executada em cima de um byte.O resultado é um byte com os bits invertidos. Se os bits de bytes são considerados um número, o valor invertido é, na verdade, um complemento da
  9. 9. mesma. O complemento de um número é um valor que adicionado ao número torna atingir o maior número binário de 8 dígitos. Em outras palavras, a soma de um número de 8 dígitos e o seu complemento é sempre 255. EXCLUSIVE OR GATE O EXCLUSIVE OR (XOR) portão é um pouco complicado em comparação com outros portões. Ele representa uma combinação de todos eles. A lógica de um (1) aparece em sua saída somente quando suas entradas têm diferentes estados lógicos. No programa, esta operação é comumente usado para comparar dois bytes.Subtracção pode ser utilizado para o mesmo fim (se o resultado for 0, os bytes são iguais). Ao contrário de subtracção, a vantagem de esta operação lógica é que não é possível obter resultados negativos. CADASTRE-SE Em suma, um registo ou uma célula de memória é um circuito eletrônico que pode memorizar o estado de um byte. REGISTOS SFR Em adição aos registos que não têm qualquer função especial e predeterminado, cada microcontrolador tem um número de registos (SFR), cuja função é predeterminada pelo fabricante. Seus pedaços estão conectados (literalmente) para os circuitos internos do microcontrolador, como temporizadores, conversor A / D, osciladores e outros, o que significa que eles são diretamente no comando da operação destes circuitos, ou seja, o microcontrolador. Imaginem oito interruptores que controlam o funcionamento de um pequeno circuito dentro dos Registradores de Função microcontrolador-Special fazer exatamente isso.
  10. 10. Em outras palavras, o estado de bits do registro é alterado a partir do programa, os registos executar pequenos circuitos dentro do microcontrolador, esses circuitos são através de pinos do microcontrolador ligados à eletrônica periférico que é usado para ... Bem, é até você. Portas de entrada / saída A fim de tornar o microcontrolador útil, tem que ser ligada a electrónica adicional, ou seja, os periféricos. Cada microcontrolador tem um ou mais registos (chamadas portas) ligados aos pinos do microcontrolador. Por entrada / saída? Porque você pode mudar a função do pino da forma que quiser. Por exemplo, suponha que você deseja que o seu dispositivo para ligar / desligar três LEDs de sinal e simultaneamente monitorar o estado lógico de cinco sensores ou botões. Algumas das portas necessitam de ser configurados de modo a que existem três saídas (ligadas aos LEDs) e cinco entradas (ligados a sensores). É simplesmente realizada por software, o que significa que uma função do pino pode ser alterada durante a operação. Uma das especificações importantes de entrada / saída (I / O) pinos é a corrente máxima que eles podem lidar. Para a maioria dos microcontroladores, a corrente obtida a partir de um pino é suficiente para activar um LED ou qualquer outro dispositivo de corrente baixa (10-20 mA). Os mais de I / O pins, a corrente máxima inferior de um alfinete. Em outras palavras, a corrente máxima indicada na folha de especificações de dados para o microprocessador é compartilhado entre todas as portas de E / S.
  11. 11. Outra função importante é que o pino pode ter resistências pull-up. Estes resistores conectar pinos para a tensão de alimentação positiva e entrará em vigor quando o pino é configurado como uma entrada ligada a um interruptor mecânico ou um botão de pressão. As versões mais recentes de microcontroladores têm pull-up resistores configuráveis por software. Cada porta I / O é geralmente sob o controle da SFR especializada, o que significa que cada bit desse registo determina o estado do pino microcontrolador correspondente. Por exemplo, ao escrever a lógica de um (1) a um bit do registrador de controle (SFR), o pino da porta apropriado é automaticamente configurado como uma entrada e tensão levou a ele pode ser lido como lógico 0 ou 1. Caso contrário, por escrito, de zero à SFR, o pino de porta apropriada é configurado como uma saída. Sua tensão (0V ou 5V) corresponde ao estado de bit apropriado registo porto. MEMORY UNIT A memória é a parte do microcontrolador utilizado para armazenamento de dados. A maneira mais fácil de explicar é a compará-lo com um armário com muitas gavetas. Suponhamos, as gavetas são claramente marcado de modo a que o seu conteúdo pode ser encontrada com facilidade pela leitura da etiqueta na parte da frente da gaveta. De modo semelhante, cada endereço de memória corresponde a uma localização da memória. Os conteúdos de qualquer local pode ser acedida e lida pelo seu endereçamento. Memória pode ser escrita ou lida.Existem vários tipos de memória dentro do microcontrolador: Read Only Memory (ROM) Read Only Memory (ROM) é utilizada para guardar permanentemente o programa que está sendo executado. O tamanho de programa que pode ser escrita depende do tamanho dessa memória. Microcontroladores de hoje costumam usar endereçamento de 16 bits, o que significa que eles são capazes de endereçar até 64 KB de memória, ou seja, 65.535 localidades. Como um novato, o programa irá raramente excedem o limite de várias centenas de instruções. Existem vários tipos de ROM. ROM mascarado (MROM) ROM mascarada é um tipo de ROM, cujo conteúdo é programado pelo fabricante. O termo 'mascarado' vem do processo de fabricação, onde as regiões do chip são mascarados antes de o processo de fotolitografia. No caso de uma produção em larga escala, o preço é muito baixo. Esqueça ... One Time Programmable ROM (OTP ROM) Uma vez ROM programável permite que você baixar um programa para ele, mas, como seu nome indica, apenas uma vez. Se for detectado um erro depois de baixar, a única coisa que você pode fazer é baixar o programa correto para outro chip. UV Erasable Programmable ROM (EPROM UV)
  12. 12. Tanto o processo de fabricação e características dessa memória são completamente idênticos aos OTP ROM. No entanto, o pacote do microcontrolador com esta memória tem uma 'janela' reconhecível no seu lado de topo. Ele permite que os dados sejam apagados sob luz ultravioleta forte. Depois de alguns minutos, é possível fazer download de um novo programa para ele. A instalação desta janela é complicado, que normalmente afeta o preço. Do nosso ponto de vista, infelizmente negativo ... Memória Flash Este tipo de memória foi inventado na década de 80 nos laboratórios da Intel e foi representado como o sucessor do EPROM UV. Uma vez que o conteúdo dessa memória pode ser escrito e apagado praticamente um número ilimitado de vezes, microcontroladores com o Flash ROM são ideais para a aprendizagem, experimentação e produção em pequena escala. Devido à sua grande popularidade, a maioria dos microcontroladores são fabricados em tecnologia flash de hoje. Então, se você estiver indo para comprar um microcontrolador, o tipo de olhar é definitivamente para o Flash! Memória de acesso aleatório (RAM) Uma vez que a fonte de alimentação está desligado o conteúdo da RAM é apagada. É utilizado para o armazenamento de dados temporários e resultados intermédios criados e utilizados durante o funcionamento do microcontrolador. Por exemplo, se o programa executa um aumento (de qualquer outro), é necessário dispor de um registo que representa o que na vida diária é chamado a "soma".Por este motivo, um dos registos de memória RAM é chamado de "soma" e usado para armazenar resultados de adição. ROM programáveis apagáveis electricamente (EEPROM) O conteúdo da EEPROM pode ser alterado durante a operação (semelhante ao RAM), mas mantém-se permanentemente gravadas, mesmo após a perda de potência (semelhante a ROM). Assim, EEPROM é muitas vezes usado para armazenar valores, criados durante a operação, que devem ser guardados permanentemente. Por exemplo, se você projetar uma fechadura electrónica ou um alarme, que seria ótimo para permitir que o usuário crie e digite a senha, mas é inútil se perdido cada vez que a fonte de alimentação se apaga. A solução ideal é um microcontrolador com uma EEPROM incorporado. INTERRUPÇÃO A maioria dos programas usam as interrupções na sua execução regular. A finalidade do microcontrolador é principalmente para responder a alterações na sua envolvente. Em outras palavras, quando um evento ocorre, o microcontrolador faz alguma coisa ... Por exemplo, quando você aperta um botão em um controle remoto, o microcontrolador irá registrá-lo e responder alterando um canal, aumentar o volume ou para baixo, etc Se o microcontrolador passou a maior parte de seu tempo infinitamente verificando alguns botões durante horas ou dias, não seria prático em tudo. É por isso que o microcontrolador aprendeu um truque durante a sua evolução. Em vez de verificar cada pino ou bit constantemente, os delegados de microcontroladores a 'esperar questão "para um" especialista "que irá responder apenas quando algo digno de atenção acontece. O sinal que informa a unidade central de processamento cerca de um tal evento é chamado de uma interrupção. PROCESSADOR CENTRAL UNIT (CPU) Como o próprio nome sugere, esta é uma unidade que monitora e controla todos os processos dentro do microcontrolador. É constituída por várias subunidades, das quais as mais importantes são:
  13. 13.  Decodificador de instrução é uma parte da eletrônica que decodifica as instruções do programa e executa outros circuitos, com base em que. O "conjunto de instruções", que é diferente para cada família de microcontroladores expressa as capacidades deste circuito;  Aritmética unidade lógica (ULA) realiza todas as operações matemáticas e lógicas sobre os dados; e  Acumulador é um SFR intimamente relacionado com a operação da ULA. É uma espécie de mesa de trabalho usada para armazenar todos os dados sobre os quais alguma operação deve ser realizada (adição, mudança / mover etc.) É também armazena resultados prontos para utilização em processamento adicional. Um dos SFR, chamada deRegistro de Status (PSW), está intimamente relacionado com o acumulador. Ela mostra em qualquer momento o "status" do número armazenado no acumulador (número é maior ou menor do que zero, etc.) Acumulador é também chamado de registro de trabalho e é marcado como registo W ou apenas W, portanto. BUS Um barramento consiste de 8, 16 ou mais fios. Existem dois tipos de ônibus: o barramento de endereços e barramento de dados. O barramento de endereços consiste em quantas linhas forem necessárias para tratar de memória. Ele é usado para transmitir endereços do CPU para a memória. O barramento de dados é tão largo como os dados, no nosso caso, é de 8 bits ou fios de largura. Ele é utilizado para ligar todos os circuitos dentro do microcontrolador. COMUNICAÇÃO SERIAL Ligação em paralelo entre o microcontrolador e periféricos através de portas de entrada / saída é a solução ideal em distâncias mais curtas de até vários metros. Contudo, em outros casos em que é necessário para estabelecer a comunicação entre dois dispositivos em distâncias mais longas que não é possível a utilização de uma ligação paralela. Em vez disso, a comunicação serial é utilizada. Hoje, a maioria dos microcontroladores têm construído em vários sistemas diferentes para comunicação serial, como equipamento de série. Qual destes sistemas serão utilizados depende de muitos fatores, dos quais os mais importantes são:  Quantos dispositivos o microcontrolador tem para trocar dados com?  Qual a velocidade da troca de dados tem que ser?  O que é a distância entre dispositivos?  É necessário enviar e receber dados ao mesmo tempo?
  14. 14. Uma das coisas mais importantes relativos a comunicação serial é o protocolo que deve ser estritamente observados. É um conjunto de regras que devem ser aplicadas a fim de que os dispositivos podem interpretar corretamente os dados que eles mutuamente taxas.Felizmente, o microcontrolador automaticamente cuida disso, para que o trabalho do programador / usuário é reduzido a escrita simples (dados a serem enviados) e ler (dados recebidos). TAXA DE TRANSMISSÃO A taxa de transmissão termo é utilizado para designar o número de bits transferidos por segundo [bps]. Note-se que ele se refere a bits, não bytes. É geralmente requerido pelo protocolo que cada byte é transferido, juntamente com vários bits de controlo. Isso significa que um byte no fluxo de dados em série pode consistir em 11 bits. Por exemplo, se a taxa de transmissão é de 300 bps, em seguida, máximo de 37 e mínimo 27 bytes podem ser transferidos por segundo. Os sistemas de comunicação serial mais comumente utilizados são: I 2 C (INTER CIRCUITO INTEGRADO) Circuito Inter-integrado é um sistema de intercâmbio de dados seriais entre os microcontroladores e circuitos integrados especializados de uma nova geração. É usado quando a distância entre eles é de curta duração (receptor e transmissor são geralmente na mesma placa de circuito impresso). A conexão é estabelecida através de dois condutores. Um é utilizado para a transferência de dados, a outra é usada para a sincronização (sinal de relógio). Como pode ser visto na figura a seguir, um dispositivo é sempre um mestre. Ele executa endereçamento de um único chip escravo antes do início da comunicação. Desta forma, um microcontrolador pode se comunicar com 112 dispositivos diferentes. Taxa de transmissão é geralmente de 100 Kb / s (modo padrão) ou 10 Kb / s (modo de taxa de transmissão lenta). Sistemas com a taxa de transmissão de 3,4 Mb / seg recentemente apareceu. A distância entre os dispositivos que se comunicam através de um barramento I2C é limitado a vários metros.
  15. 15. SPI (Serial Bus Interface Periférica) Um barramento de interface periférica de série (SPI) é um sistema de comunicação serial que usa até quatro condutores, geralmente três. Um condutor é utilizado para receber dados, um para dados de envio, um para a sincronização e outro, alternativamente, para seleccionar um dispositivo para comunicar com. É uma conexão full-duplex, o que significa que os dados são enviados e recebidos simultaneamente. A taxa máxima de transmissão é mais elevada do que no sistema de comunicação I2C. UART (Universal Asynchronous Receiver / Transmitter) Este tipo de comunicação é assíncrona, o que significa que uma linha especial para a transferência de sinal de relógio não é utilizado.Em algumas aplicações, tais como a conexão de rádio ou ondas infravermelhas controle remoto, este recurso é crucial. Uma vez que apenas uma linha de comunicação é utilizado, tanto o receptor e transmissor de operar com a mesma taxa predefinida, de modo a manter a sincronização necessária. Esta é uma maneira muito simples de transferência de dados, uma vez que, basicamente, representa a conversão de dados de 8 bits de paralelo para o formato de série. Taxa de transmissão não é alta, até 1 Mbit / seg. OSCILADOR Mesmo os impulsos gerados pelo oscilador de permitir a operação sincronizada e harmónica de todos os circuitos dentro do microcontrolador. O oscilador é geralmente configurados de modo a utilizar um cristal de quartzo ou ressoador cerâmico para a estabilidade de frequência, mas que também pode funcionar como um circuito independente (como RC do oscilador). É importante dizer que as instruções não são executadas a uma taxa imposta pelo próprio oscilador, mas várias vezes mais lento.Isto acontece porque cada instrução é executada em vários passos. Em alguns microcontroladores, é necessário o mesmo número de ciclos para executar todas as instruções, enquanto que em outros, o número de ciclos é diferente para diferentes instruções. Por conseguinte, se o sistema utiliza um cristal de quartzo, com uma frequência de 20 MHz, o tempo de execução de uma instrução não é 50ns, mas de 200, 400 ou 800 ns, dependendo do tipo de MCU! CIRCUITO DE ALIMENTAÇÃO
  16. 16. Há duas coisas dignas de atenção sobre o circuito de alimentação do microcontrolador:  Brown para fora é uma condição potencialmente perigosa que ocorre no momento em que o microcontrolador está sendo desligado ou quando a tensão de alimentação cai para um mínimo devido ao ruído elétrico. Como o microcontrolador é composto por vários circuitos com diferentes níveis de tensão de funcionamento, este estado pode causar o seu desempenho fora de controle. Para evitar isso, o microcontrolador tem geralmente um circuito integrado para redefinição de marrom para fora que redefine toda a eletrônica assim que o microcontrolador incorre em um estado de emergência.  Pino de reposição é normalmente marcado como MCLR (Master Clear Reset). É usado para reposição externa do microcontrolador através da aplicação de uma lógica zero (0) ou um (1) a ele, o qual depende do tipo de microcontrolador. No caso de o circuito de marrom para fora não é construído em um circuito externo simples para redefinição de marrom para fora pode ser conectado ao pino MCLR. Temporizadores / Contadores O oscilador do microcontrolador utiliza cristal de quartzo para o seu funcionamento. Mesmo que ele não é a solução mais simples, há muitas razões para usá-lo. A frequência do oscilador é como definido com precisão e muito estável, de modo que ele gera impulsos estão sempre com a mesma largura, o que os torna ideais para a medição de tempo. Tais osciladores também são utilizados em relógios de quartzo. Se é necessário medir o tempo entre os dois eventos, que é suficiente para contar impulsos gerados pelo oscilador.Este é exatamente o que o temporizador faz. A maioria dos programas usam desses cronômetros eletrônicos 'em miniatura. Estes são comumente 8 - ou SFRs 16 bits cujo conteúdo é automaticamente incrementado por cada pulso que vem. Uma vez que o registo é completamente carregada, uma interrupção pode ser gerada! Se o temporizador utiliza um oscilador de quartzo interno para o seu funcionamento, então ele pode ser usado para medir o tempo entre os dois eventos (se o valor do registo é T1, no momento de medição é iniciado, e T2, no momento em que termina, em seguida, o tempo decorrido for igual o resultado da subtracção T2-T1). Se registros usar pulsos provenientes de fonte externa, em seguida, como um temporizador é transformado em um balcão.
  17. 17. Esta é apenas uma simples explicação da própria operação. No entanto, é mais complicado na prática. COMO O TIMER OPERAR? Na prática, os impulsos gerados pelo oscilador de quartzo são uma vez por cada ciclo da máquina, directamente ou através de um divisor, trazido para o circuito que incrementa o número armazenado no registador de cronometro. Se uma instrução (um ciclo de máquina) tem a duração de quatro períodos do oscilador de quartzo, em seguida, esse número será incrementado um milhão de vezes por segundo (cada microssegundo) pela incorporação de quartzo com a freqüência de 4MHz. É fácil medir intervalos curtos de tempo, até 256 microssegundos, na forma descrita acima, pois é o maior número que um registrador pode armazenar. Esta restrição pode ser facilmente superada em várias formas, como por meio de um oscilador mais lento, registra com mais bits, divisor ou interrupções. As duas primeiras soluções têm alguns pontos fracos, por isso é mais recomendado usar prescalers ou interrupções. USANDO UM PRESCALER temporizador OPERAÇÃO Um divisor é um dispositivo eletrônico usado para reduzir a freqüência por um fator predeterminado. A fim de gerar um pulso na sua saída, que é necessário para levar um, dois, quatro ou mais impulsos sobre a sua entrada. A maioria dos microcontroladores têm um ou mais prescalers embutido e sua taxa de divisão pode ser alterada a partir do programa. O divisor é utilizado quando é necessário medir a períodos mais longos de tempo. Se um divisor é partilhada por temporizador e temporizador de vigilância, que não pode ser utilizado por ambos simultaneamente. Usando interrupção temporizador OPERAÇÃO Se o registo do temporizador consiste de 8 bits, o maior número que pode armazenar é 255. Quanto a 16-bit registra-lo é o número 65.535. Se esse número for excedido, o cronômetro será reiniciado automaticamente e contando vai começar do zero novamente. Esta condição é chamada de um estouro. Se activado dentro do programa, o excesso pode provocar uma interrupção, o que dá possibilidades completamente novas. Por exemplo, o estado de registros utilizados para contagem de segundos, minutos
  18. 18. ou dias pode ser alterada em uma rotina de interrupção. O processo todo (exceto para a rotina de interrupção) é realizado automaticamente nos bastidores, que permite que os principais circuitos do microcontrolador a funcionar normalmente. Esta figura ilustra o uso de uma interrupção na operação do temporizador. Atrasos de duração arbitrária, tendo quase nenhuma influência sobre a execução do programa principal, pode ser facilmente obtida, atribuindo o prescaler para o timer. CONTADORES Se o temporizador recebe pulsos frm o pino de entrada do microcontrolador, então ele se transforma em um contador. Obviamente, isto é o mesmo circuito electrónico capaz de operar em dois modos diferentes. A única diferença é que, neste caso, impulsos a serem contados vir sobre o pino de entrada do microcontrolador e a sua duração (largura) é definida na maior parte. É por isso que elas não podem ser utilizados para a medição de tempo, mas também para outros fins, tais como produtos de contagem sobre uma linha de montagem, o número de rotação do eixo, etc passageiros (dependendo do sensor em uso). Watchdog timer Um watchdog timer é um temporizador ligado a um oscilador RC completamente separada dentro do microcontrolador. Se o watchdog timer estiver ativado, cada vez que ele conta até o valor máximo, o reset do microcontrolador e ocorre a execução do programa começa a partir da primeira instrução. O objetivo é evitar que isso aconteça por meio de um comando específico. De qualquer forma, a ideia baseia-se no facto de cada programa é executado em várias mais curtos ou mais ciclos. Se as instruções de que reinicia o temporizador do cão de guarda são definidos nos locais apropriados do programa, além de comandos que está sendo executado regularmente, então a operação do watchdog timer não afetará a execução do programa. Se por algum motivo, geralmente ruído elétrico na indústria, o contador de programa 'fica preso "em algum local da memória a partir do qual não há retorno, o watchdog timer não será apagado, então o valor do registro que está sendo constantemente incrementado chegará ao máximo et voila ! reset ocorre!
  19. 19. A D CONVERTER / Sinais externos são geralmente fundamentalmente diferentes das do microcontrolador compreende (uns e zeros) e tem que ser, por conseguinte, convertidos em valores compreensíveis para o microcontrolador. Um conversor analógico-digital é um circuito eletrônico que converte os sinais contínuos para números digitais discretos.Por outras palavras, este circuito converte um valor analógico num número binário e transmite-a para o CPU para processamento adicional. Este módulo é, portanto, utilizado para medição de tensão pino de entrada (valor analógico). O resultado da medição é um número (valor digital) utilizada e processada mais tarde no programa.
  20. 20. Arquitetura interna Todos os microcontroladores atualizados usar um dos dois modelos básicos de design chamado Harvard ea arquitetura von- Neumann. Eles representam duas formas diferentes de troca de dados entre CPU e memória. VON-NEUMANN ARQUITETURA Microcontroladores utilizando a arquitetura von-Neumann têm apenas um bloco de memória e um barramento de dados de 8 bits. Como todos os dados são trocados através destes 8 linhas, o ônibus está sobrecarregado e comunicação é muito lento e ineficiente. A CPU pode ler uma instrução ou ler / escrever dados de / para a memória. Ambos não podem ocorrer ao mesmo tempo que as instruções e dados utilizam a mesma barra. Por exemplo, se uma linha de programa que lê registro de memória RAM chamada "soma" deve ser incrementado por um (instrução: incf SUM), o microcontrolador vai fazer o seguinte: 1. Leia a parte da instrução de programa especificando o que deve ser feito (neste caso, é a instrução 'incf' para incremento). 2. Leia a outra parte da mesma instrução especificando dados sobre a qual deve ser executada (neste caso é a "soma" register). 3. Depois de ser incrementado, o conteúdo deste registo deve ser escrito para o registro da qual foi lido ("soma" endereço de registro). O mesmo bus de dados é utilizado para todas estas operações intermediárias. HARVARD ARQUITETURA
  21. 21. Microcontroladores usando arquitetura Harvard ter dois barramentos de dados diferentes. Uma é de 8 bits de largura e liga a CPU RAM. A outra consiste em 12, 14 ou 16 linhas e se conecta a CPU ROM. Deste modo, o processador pode ler a memória de dados de instrução e de acesso ao mesmo tempo.Uma vez que todos os registos de memória RAM são de 8 bits, todos os dados a serem transaccionados são da mesma largura. Durante o processo de writin um programa, apenas os dados de 8 bits são considerados. Em outras palavras, tudo o que você pode mudar a partir do programa e tudo o que pode influenciar é de 8 bits de largura. Todos os programas escritos para estes microcontroladores serão armazenados na ROM interna microcontrolador depois de ser compilado em código de máquina. No entanto, os locais de memória ROM não tem 8, mas 12, 14 ou 16 bits. O resto dos bits 4, 6 ou 8 representa instruções especificando, para a CPU do que fazer com os dados de 8 bits. As vantagens de uma tal concepção são as seguintes:  Todos os dados no programa é um byte (8 bits) de largura. Como o barramento de dados usado para a leitura programa tem 12, 14 ou 16 linhas, tanto a instrução e os dados podem ser lidos simultaneamente usando essas peças bits. Por este motivo, todas as instruções são instruções de ciclo único, com exceção da instrução de salto que é a instrução de dois ciclos.  Devido ao facto de o programa (ROM) e dados temporárias (RAM) são separada, o processador pode executar duas instruções de cada vez. Simplificando, enquanto RAM leitura ou gravação está em andamento (o fim de uma instrução), a próxima instrução do programa é lido através do outro ônibus.  Ao utilizar microcontroladores com arquitetura von-Neumann, nunca se sabe o quanto de memória está a ser ocupado pelo programa. Basicamente, a maioria das instruções do programa de ocupar duas posições de memória (um contém informações sobre o que deve ser feito, enquanto o outro contém informações sobre quais os dados que deve ser feito). No entanto, não é uma regra dura e rápida, mas o caso mais comum. Em microcontroladores com a arquitetura Harvard, o ônibus palavra programa é mais amplo do que um byte, que permite que cada palavra programa para consistir de instruções e dados, ou seja, um local de memória - uma instrução de programa. Conjunto de Instruções Todas as instruções compreensíveis para o microcontrolador são chamados em conjunto o conjunto de instruções. Quando você escreve um programa em linguagem assembly, você realmente especificar instruções em
  22. 22. tal ordem que deve ser executado. A principal restrição é aqui um certo número de instruções disponíveis. Os fabricantes costumam adotar qualquer abordagem descrita a seguir: RISC (Reduced Instruction Set Computer) Neste caso, o microcontrolador reconhece e executa somente operações básicas (adição, subtração, copiando etc.) Outras operações mais complicadas, são realizadas pela combinação deles. Por exemplo, a multiplicação é realizada através da realização da adição sucessiva. É o mesmo que se você tentar explicar a alguém, usando apenas algumas palavras diferentes, a forma de chegar ao aeroporto em uma nova cidade. No entanto, não é tão negro como ele é pintado. Primeiro de tudo, esta linguagem é fácil de aprender. O microcontrolador é muito rápido, de modo que não é possível ver todos os 'acrobacias' aritméticas que realiza. O usuário só pode ver os resultados finais. Enfim, não é tão difícil de explicar onde o aeroporto é se você usar as palavras certas, como a esquerda, direita, etc quilômetros CISC (Complex Instruction Set COMPUTADOR) CISC é o oposto ao RISC! Microcontroladores destinados a reconhecer mais de 200 instruções diferentes podem fazer um monte de coisas em alta velocidade. No entanto, é preciso entender como tirar tudo o que um tal ricas ofertas de línguas, o que não é nada fácil ... Como fazer a escolha certa? Ok, você é o novato e você tomou a decisão de ir em uma aventura de trabalhar com os microcontroladores. Parabéns pela escolha! No entanto, não é tão fácil de escolher o microcontrolador direito que possa parecer. O problema não é uma gama limitada de dispositivos, mas o oposto! Antes de começar a projetar um dispositivo baseado no microcontrolador, pense no seguinte: quantas linhas de entrada / saída que vai precisar para a operação? Deve executar algumas outras operações do que simplesmente virar relés on / off? Será que ela precisa de algum módulo especializado, como a comunicação serial, conversor A / D, etc? Quando você cria uma imagem clara do que você precisa, o intervalo de selecção é consideravelmente reduzido e é hora de pensar em preço. Você está planejando para ter vários mesmos dispositivos? Várias centenas? Um milhão? De qualquer forma, você começa o ponto. Se você pensar em todas essas coisas para a primeira vez, em seguida, tudo parece um pouco confuso. Por esta razão, ir passo a passo. Em primeiro lugar, selecione o fabricante, ou seja, a família de microcontroladores você pode facilmente obter. Estudar um modelo específico. Saiba o quanto você precisa, não entrar em detalhes. Solucionar um problema específico e algo incrível vai acontecer, você vai ser capaz de lidar com qualquer modelo de pertencer a essa família de microcontroladores. Lembre-se de aprender a andar de bicicleta. Depois de várias contusões, no início, você foi capaz de manter o equilíbrio, então a montar facilmente qualquer outra bicicleta. E, claro, você nunca vai esquecer de programação, assim como você nunca vai esquecer andar de bicicleta! 1,4 microcontroladores PIC Microcontroladores PIC projetados por Microchip Technology provavelmente a melhor escolha para iniciantes. Aqui está o porquê ... O nome original deste microcontrolador é PIC (Peripheral Controller Interface), mas é mais conhecido como PIC. Seu ancestral, o chamado PIC1650, foi projetado em 1975 pelo General Instruments. Foi concebido para fins totalmente diferentes. Cerca de dez anos mais tarde, este circuito foi transformado em um microcontrolador PIC real, adicionando memória EEPROM. Hoje, Microchip Technologydivulga o fabrico da amostra 5000000000. Se você estiver interessado em aprender mais sobre isso, apenas continue lendo. A idéia principal com este livro é fornecer ao usuário informações necessárias a fim de que ele é capaz de usar microcontroladores em prática depois de lê-lo. A fim de evitar explicações tediosas e história interminável sobre os recursos úteis de diferentes microcontroladores, este livro descreve o funcionamento de um determinado modelo pertencente à "alta classe média". É o merece atenção PIC16F887-poderoso o suficiente para ser e simples o suficiente para ser facilmente apresentado a todos. Assim, os capítulos seguintes descrevem este microcontrolador em detalhes, mas referem-se a toda a família PIC também.
  23. 23. Família ROM [Kbytes] RAM [bytes] Pinos Freq Relógio.[MHz] A / D Entradas Resolução do conversor A / D Compar- dores Timers bit - 8/16 Comunicação Serial. Base-Linha 8 - arquitetura bit, 12-bit Instruction Palavra Comprimento PIC10FXXX 0,375- ,75 16 - 24 6-8 4-8 0-2 8 0-1 1 x 8 - PIC12FXXX 0,75-1,5 25 - 38 8 4-8 0-3 8 0-1 1 x 8 - PIC16FXXX 0,75-3 25-134 14-44 20 0-3 8 0-2 1 x 8 - PIC16HVXXX 1.5 25 18 - 20 20 - - - 1 x 8 - Médios 8 - arquitetura bit, 14-bit Instruction Mundo Comprimento PIC12FXXX 1,75-3,5 64-128 8 20 0-4 10 1 1 - 2 x 8 1 x 16 - PIC12HVXXX 1.75 64 8 20 0-4 10 1 1 - 2 x 8 1 x 16 - PIC16FXXX 1,75-14 64-368 14-64 20 0-13 8 ou 10 0-2 1 - 2 x 8 1 x 16 USART I2C SPI PIC16HVXXX 1,75-3,5 64-128 14-20 20 0-12 10 2 2 x 8 1 x 16 USART I2C SPI High-End 8 - arquitetura bit, 16-bit Instruction Palavra Comprimento PIC18FXXX 4-128 256 - 3936 18-80 32 - 48 4-16 10 ou 12 0-3 0-2 x agosto 2-3 x 16 USB2.0 CAN2.0 USART I2C SPI PIC18FXXJXX 8-128 1024 - 3936 28- 100 40 - 48 10 - 16 10 2 0-2 x agosto 2-3 x 16 USB2.0 USART Ethernet I2C SPI PIC18FXXKXX 8-64 768 - 3936 28 - 44 64 10-13 10 2 1 x 8 3 x 16 USART I2C SPI Todos os microcontroladores PIC usar arquitetura de Harvard, o que significa que a sua memória de programa é ligado à CPU ao longo de mais do que oito linhas. Dependendo da largura do canal, existem 12 -, 14 - e os microcontroladores de 16 bits. Tabela acima mostra as principais características destas três categorias. Como pode ser visto na tabela da página anterior, exceto '16-bit monsters'-PIC 24FXXX e PIC-24HXXX todos microcontroladores PIC têm arquitetura Harvard 8-bit e pertencem a um dos três grandes grupos. Assim, dependendo do tamanho da palavra programa existem primeira, segunda e terceira categoria microcontrolador, ou seja, 12 -, 14 - ou microcontroladores de 16 bits. Tendo semelhante núcleo de 8 bits, todos eles usam o mesmo conjunto de instruções eo hardware "esqueleto" básico ligado a mais ou menos periférica unidades. Conjunto de Instruções O conjunto de instruções para o 16F8XX inclui 35 instruções no total. A razão para um pequeno número de instruções, tais reside na arquitectura RISC. Isso significa que as instruções são bem otimizado dos aspectos da velocidade de operação, a simplicidade na arquitetura e código de compacidade. A única coisa ruim sobre a arquitetura RISC é que o programador é esperado para lidar com estas instruções. Claro, isso é relevante apenas se você usar a linguagem assembly para a programação. Este livro refere-se à programação, linguagem de programação C mais elevada, o que significa que a maior parte do trabalho foi feito por outra pessoa. Você apenas tem que usar instruções relativamente simples. TEMPO DE EXECUÇÃO DE INSTRUÇÕES
  24. 24. Todas as instruções são instruções de ciclo único. A única exceção pode ser instruções de desvio condicional (se a condição for cumprida) ou instruções efectuadas sobre o contador de programa. Em ambos os casos, dois ciclos são necessários para a execução da instrução, enquanto que o segundo ciclo é executado como um NOP (No Operation). Instruções de ciclo simples consistem em quatro ciclos de clock. Se oscilador 4 MHz é utilizada, o tempo nominal para a execução da instrução é 1μS. Quanto a instruções de salto, o tempo de execução da instrução é 2μS. Conjunto de instruções de microcontroladores PIC de 14 bits: I N S T R U Ç Ã O D E S C R I Ç Ã O O P E R AÇ Ã O B AN D E I R A C L K * Instruções de transferência de dados MOVLW k Mova constante para W k -> w 1 MOVWF f Move W para f W -> f 1 MOVF f, d Mova f para d f -> d Z 1 1, 2 CLRW Limpar W 0 -> W Z 1 CLRF f Limpar f 0 -> f Z 1 2 Swapf f, d Mordidelas de swap em f f (7:4), (3:0) -> f (3:0), (7:4) 1 1, 2 Instruções aritméticas de lógica ADDLW k Adicionar W e constante W + k -> W C, CC, Z 1 ADDWF f, d Adicionar W ef W + f -> d C, CC, Z 1 1, 2 SUBLW k Subtrair W a partir de constante kW -> W C, CC, Z 1 SUBWF f, d Subtrair W a partir de f fW -> d C, CC, Z 1 1, 2 ANDLW k Lógico E com W com uma constante W e K -> W Z 1 ANDWF f, d Lógico E com W com f W e F -> d Z 1 1, 2 ANDWF f, d Lógico E com W com f W e F -> d Z 1 1, 2 IORLW k OR lógico com W com uma constante W OR k -> W Z 1 IORWF f, d OR lógico com W com f W ou f -> d Z 1 1, 2 XORWF f, d Lógico OU exclusivo com W com uma constante W XOR k -> W Z 1 1, 2 XORLW k Lógico W OU exclusivo com com f W XOR f -> d Z 1 INCF f, d Incremento f por 1 f +1 -> f Z 1 1, 2 DECF f, d Decrementa f por 1 f-1 -> f Z 1 1, 2 RLF f, d Gire f esquerdo através carry C 1 1, 2 RRF f, d Rodar f para a direita através carry C 1 1, 2 COMF f, d Complemente f f -> d Z 1 1, 2 Instruções orientada por bits BCF f, b Limpar bit b em f 0 -> f (b) 1 1, 2 BSF f, b Limpar bit b em f 1 -> f (b) 1 1, 2 Instruções de Controle de Programa BTFSC f, b Teste bit b de f. Ir a seguinte instrução se clara. Ignorar se f (b) = 0 1 (2) 3 BTFSS f, b Teste bit b de f. Ir a seguinte instrução se definir. Ignorar se f (b) = 1 1 (2) 3 DECFSZ f, d Decrementa f. Ir a seguinte instrução se clara. f-1 -> d saltar se Z = 1 1 (2) 1, 2, 3
  25. 25. INCFSZ f, d Incremento f. Ir a seguinte instrução se definir. f +1 -> d saltar se Z = 0 1 (2) 1, 2, 3 GOTO k Ir para endereço k -> PC 2 CHAMADA k Chamada de sub-rotina PC -> TOS, k -> PC 2 RETORNO Retorno de sub-rotina TOS -> PC 2 RETLW k Retorno com constante em W k -> W, TOS -> PC 2 RETFIE Retorno de interrupção TOS -> PC, 1 -> GIE 2 Outras instruções NOP Nenhuma operação TOS -> PC, 1 -> GIE 1 CLRWDT Limpar watchdog timer 0 -> WDT, 1 -> A, 1 -> PD TO, PD 1 SLEEP Vá para o modo de suspensão 0 -> WDT, 1 -> A, 0 -> PD TO, PD 1 * 1 Quando um registo de I / O é modificado como uma função de si, o valor utilizado será o valor actual dos próprios pinos. * 2 Se a instrução é executada no registo TMR e se d = 1, o prescaler será apagado. * 3 Se o PC é modificada ou o resultado do teste é um lógico (1), a instrução requer dois ciclos.
  26. 26. A arquitetura de microcontroladores PIC de 8 bits. Qual destes módulos são de pertencer a um microcontrolador depende do seu tipo.

×