Diferenças entre Microcontroladores e Microprocessadores
Diferenças entre Microcontroladores e Microprocessadores
1 INTRODUÇÃO
Novatos em eletrônica costumam pensar que o microcontrolador é o mesmo que o microprocessador. Isso não é
verdade. Eles diferem entre si de muitas maneiras. A diferença primeira e mais importante em favor do microcontrolador é
a sua funcionalidade. A fim de que o microprocessador pode ser usado, outros componentes, a memória vem em primeiro
lugar, deve ser adicionado a ele. Mesmo que seja considerada uma poderosa máquina de computação, não é ajustado
para se comunicar com o ambiente periférico. A fim de permitir o microprocessador para se comunicar com o ambiente
periférico, circuitos especiais devem ser usados. Isto é como era no princípio e continua a ser o mesmo hoje.
Por outro lado, o microcontrolador foi projetado para ser tudo isso em um. Nenhum outro especializado componentes
externos são necessários para sua aplicação, pois todos os circuitos necessários que de outra forma pertencem a
periféricos já estão construídos na mesma. Ele economiza tempo e espaço necessário para projetar um dispositivo.
A fim de tornar mais fácil para você entender as razões para um sucesso tão grande de microcontroladores, vamos
Cerca de dez anos atrás, concepção de um dispositivo eletrônico controlando o elevador em um prédio de vários
andares foi muito 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 exigem tem prioridade? Como lidar com questão de segurança? Perda de energia elétrica? Falha?
Uso indevido? ... O que vem depois de resolver essas questões básicas é um processo meticuloso de concepção
eletrônica apropriada usando um grande número de chips especializados. Dependendo da complexidade do dispositivo,
este processo pode levar semanas ou meses. Quando terminar, é hora de projetar uma placa de circuito impresso e
montar dispositivo. Um dispositivo de enorme! É mais um trabalho de longa duração e tentando. Finalmente, quando tudo
está terminado e testado por muitas vezes, o momento crucial vem quando você se concentrar, tomar uma respiração
Isso 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
Quando o dispositivo, finalmente, começa a funcionar perfeitamente e todos estão satisfeitos e você finalmente receber
o pagamento pelo trabalho que têm feito, muitas empresas de construção vai se interessar por seu trabalho. Claro, se
você tiver sorte, outro dia lhe trará uma oferta de travamento de um novo investidor. No entanto, um novo edifício tem
quatro andares mais. Você sabe o que é isso? 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 de produtos eletrônicos? Tudo bem,
mesmo se você conseguir fazer tal jóia um eletrônico, o investidor vai esperar na frente de sua porta pedindo uma câmera
no elevador. Ou para uma relaxante música, no caso da falha do elevador. Ou por duas portas de elevador. De qualquer
forma, a lei de Murphy é inexorável e você certamente não 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, é assim que foi até os primeiros microcontroladores foram projetados - pequeno,
microcontroladores poderosos e baratos. Desde o momento em sua programação deixou de ser uma ciência, tudo tomou
Eletrônicos capazes de controlar um pequeno submarino, um guindaste ou o elevador acima mencionados já está
construído em um único chip. Microcontroladores oferecem uma ampla gama de aplicações e apenas alguns deles são
normalmente utilizados. Cabe a você decidir o que você quer que o microcontrolador para fazer dump e um programa
contendo instruções apropriadas para ele. Antes de ligar o aparelho, 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é se sentir satisfeito. Isto é tudo.
Sabe que todas as pessoas podem ser classificadas em um dos 10 grupos, aqueles que estão familiarizados com o
sistema numérico binário e aqueles que não estão familiarizados com ela. Você não entende? Isso significa que você
ainda pertencem ao último grupo. Se você quiser alterar o seu estado leia o texto a seguir descreve brevemente alguns
dos conceitos básicos utilizados ainda neste livro (só para ter certeza que estamos na mesma página).
A matemática é uma ciência tão boa! Tudo é tão lógico... Todo o universo pode ser descrito com dez dígitos apenas.
Mas, isso realmente tem que ser assim? Precisamos exatamente dez dígitos? Claro que não, é apenas uma questão de
hábito. Lembre-se as lições da escola. Por exemplo, qual é 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 + 6 + 7 * 10 * 100. Este número poderia olhar mais científico? A resposta é sim
mais uma vez: 4 * 100 + 101 + 6 * 7 * 102. O que isso realmente significa? Por que usamos exatamente estes 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
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 são restritas 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 números
da mesma forma como o fazemos agora, mas seria um pouco diferente. Por exemplo: 11011010. Quantas páginas de um
livro que o número 11011010 incluir? A fim de aprender 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,
É, obviamente, o mesmo número representado em dois sistemas de número diferente. A única diferença entre essas
duas representações é o número de dígitos necessário 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 escrevê-la 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
Exceto para condições de laboratório rigorosamente controlada, os circuitos mais complicados eletrônico 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 (menos de alguns volts). As razões são ruídos elétricos e algo chamado de "ambiente de trabalho real
'(mudanças imprevisíveis de tensão de alimentação, mudanças de temperatura, tolerância a valores de componentes
embutidos etc.) Imagine um computador que opera sobre números decimais, tratando-as da seguinte forma: 0 = 0 V, 1 =
Uma solução muito mais simples é uma lógica binária, onde 0 indica que não há 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. É sobre a
lógica zero (0) e lógica de um (1) que os aparelhos eletrônicos perfeitamente lidar com e facilmente realiza todas as
operações infinitamente complexa matemática. Obviamente, o sistema eletrônico estamos falando de matemática em que
se aplica todos os números são representados por apenas dois dígitos e onde só é importante saber se há uma tensão ou
números binários. Por esta razão, um sistema novo número, com 16 símbolos diferentes foi criada. É chamado sistema
de numeração hexadecimal e consiste de dez dígitos que estamos acostumados a (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. 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 ele é usado com habilidade? O maior número escrito com oito dígitos
binários é, ao mesmo tempo o maior número hexadecimal de 2 dígitos. Não se esqueça que os computadores usam
CÓDIGO BCD
Código BCD é um código binário para números decimais ( B -veterinários C oded D ecimal ). É usado para ativar os
circuitos eletrônicos para se comunicar tanto com os periféricos usando sistema de numeração decimal ou dentro dos
próprios o seu mundo "usando o sistema binário. É composto por números de 4 dígitos binários 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
Sistema numérico binário é mais comumente usado, o sistema decimal é mais compreensível, enquanto o sistema
hexadecimal é algo entre eles. Portanto, é muito importante para 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ível.
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 seu valor pode ser facilmente determinado através da contagem a 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 ou1) e adicione todos os resultados. A magia do binário para conversão de número decimal
funciona...
números maiores, dígitos binários extras devem ser usados. Assim, para representar números decimais 0-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 que consiste de n dígitos é obtido quando a base 2 é levantada pelo n. O resultado deve ser subtraído de 1. Por
exemplo, se n = 4:
2 4 - 1 = 16-1 = 15
Assim, usando 4 dígitos binários, é possível representar números decimais de 0 a 15, o que equivale a 16 valores
diferentes no total.
A fim de fazer a conversão de um número hexadecimal em decimal, cada dígito hexadecimal deve ser multiplicado pelo
Não é necessário para realizar todos os cálculos para converter números hexadecimais para binário. Dígitos
hexadecimais são simplesmente substituídos por dígitos binários apropriado. Desde o dígito hexadecimal máximo é
equivalente ao número decimal 15, nós precisamos utilizar quatro dígitos binários para representar um dígito
provavelmente a maneira mais fácil de entender a lógica comum aplicado a todos os sistemas.
NÚMEROS DE MARCAÇÃO
Sistema de numeração hexadecimal é, juntamente com os sistemas binário e decimal considerado o sistema de número
mais importante para nós. É fácil 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 ele é sobre o sistema, binário decimal ou
hexadecimal, o resultado poderia ser produtos de 6, 110 ou 272, respectivamente! Assim, a fim de evitar mal-entendidos,
diferentes prefixos e sufixos são diretamente adicionados aos números. O prefixo 0x ou $, assim como o sufixo h marcas,
os números no sistema hexadecimal. Por exemplo, o número hexadecimal 10AF pode parecer quanto $ 10AF, ou 0x10AF
10AFh. Da mesma forma, números binários normalmente obter o prefixo ou 0b%. Se um número não tem nem sufixo
prefixo nem é considerado decimal. Infelizmente, esta maneira de números de marcação não é padronizado, portanto,
BIT
A teoria diz que um bit é a unidade básica de informação ... Vamos esquecer isto por um momento e dar uma olhada no
que ela é na prática. A resposta não é nada especial, um pouco é apenas um dígito binário. Semelhante ao sistema de
numeração decimal em que os dígitos de um número não têm o mesmo valor (por exemplo dígitos do número decimal
444 são as mesmas, mas têm valores diferentes), a 'importância' de bit depende de sua posição no número binário .
Como não há ponto de falar sobre as unidades, dezenas etc, em números binários, seus dígitos são referidos como o bit
zero (bit mais à direita), primeiro bit (o segundo da direita), etc Além disso, desde o sistema binário utiliza dois dígitos
Não pode ser confundido se você se deparar com um bit com valor 4, 16 ou 64. Significa apenas que seu valor é
representado no sistema decimal. Basta colocar, nós temos muito acostumados com o uso de números decimais que tais
expressões se tornaram comuns. Seria correto dizer, por exemplo, "o valor do bit sexta de qualquer número binário é
equivalente ao número 64 decimal. Mas nós somos humanos e hábitos velhos morrem duramente ... Além disso, como
BYTE
Um byte é composto por oito bits agrupados. Se um bit é um dígito, é lógico que bytes representam os números. Todas
as operações matemáticas podem ser realizadas sobre eles, como sobre números decimais comum. Semelhante ao de
qualquer número de dígitos, os dígitos de bytes não tem o mesmo significado que qualquer um. O maior valor tem o bit
mais à esquerda chamado o bit mais significativo (MSB). O bit mais à direita tem o menor valor e por isso é chamado o bit
menos significativo (LSB). Desde oito zeros e uns de um byte pode ser combinado em 256 formas diferentes, o maior
número decimal que pode ser representado por um byte é 255 (uma combinação representa um zero).
Um nibble é referido como metade de um byte. Dependendo do que a metade do registo que estamos falando
Alguma vez você já se perguntou o que eletrônicos dentro de circuitos integrados digitais, microcontroladores ou
processadores parece? O que fazer circuitos realizar operações matemáticas complexas e tomar decisões se parece?
Você sabe que seu esquema aparentemente complicada compreendem apenas alguns elementos diferentes chamados
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 avaliados no que hoje é conhecido como AND, OR NOT e circuitos lógicos. O princípio de sua operação é
Circuitos Lógicos
Algumas das instruções do programa dar os mesmos resultados como portas lógicas. O princípio de sua operação será
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á na sua saída apenas se as duas entradas (A e B) são acionados alta (1).
Quando usado em um programa, uma lógica e operação é realizada pela instrução de programa, que será discutido
posteriormente. Por enquanto, é suficiente para lembrar que a lógica E em um programa refere-se aos bits
OR GATE
Da mesma forma, OU portas também têm dois ou mais entradas e uma saída. Se o portão tem apenas duas entradas a
seguir se aplica. Alogic um (1) aparecerá na sua saída, se uma ou outra entrada (A OR B) é impulsionado alta (1). Se a
porta OR tem mais de duas entradas, em seguida, aplica-se o seguinte. Alogic um (1) aparece em sua saída, se pelo
menos uma entrada é impulsionado alta (1). Se todas as entradas estão à lógica zero (0), a saída será na lógica zero (0)
também.
NÃO GATE
A porta lógica NÃO tem apenas uma entrada e apenas uma saída. Atua de forma extremamente simples. Quando a
lógica zero (0) aparece em sua entrada, uma lógica de um (1) aparece em sua saída e vice-versa. Isso significa que esta
No programa, a operação lógica NOT é feita em cima de um byte. O resultado é um byte com pedaços invertidos. Se os
bits byte são consideradas como um número, o valor invertido é na verdade um complemento do mesmo. O complemento
de um número é um valor que adicionado ao número torna alcançar o maior número binário de 8 dígitos. Em outras
O portão EXCLUSIVE OR (XOR) é um pouco complicado em comparação com outros portões. Ela representa uma
combinação de todos eles. A lógica de um (1) aparece em sua saída somente quando suas entradas têm estados lógicos
diferentes.
No programa, esta operação é comumente usado para comparar dois bytes. Subtração podem ser usados para o
mesmo fim (se o resultado for 0, bytes são iguais). Ao contrário da subtração, a vantagem desta operação lógica é que
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.
SFR REGISTOS
Além de registros que não têm qualquer função especiais e pré-determinado, cada microcontrolador tem um número de
registros (SFR), cuja função é pré-determinado pelo fabricante. Seus bits estão ligados (literalmente) para circuitos
internos do microcontrolador, tais 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. Imagine oito switches que
exatamente isso.
Em outras palavras, o estado de bits registo é alterado a partir do programa, registra executar pequenos circuitos dentro
do microcontrolador, esses circuitos são via pinos do microcontrolador ligados à eletrônica periférica que é usado para ...
A fim de fazer o microcontrolador útil, tem que ser ligado a uma eletrônica adicional, ou seja, periféricos. Cada
microcontrolador tem um ou mais registros (chamados portos) conectados aos pinos do microcontrolador. Por input /
output? Porque você pode alterar uma função pin como você deseja. Por exemplo, suponha que você deseja que o seu
dispositivo para ativar / desativar três LEDs de sinal e, simultaneamente, monitorar o estado lógico de cinco sensores ou
botões de pressão. Alguns dos portos precisam ser configurados de modo que há três saídas (ligado à LEDs) e cinco
entradas (ligado a sensores). É simplesmente realizada por software, o que significa que uma função do pino pode ser
maioria dos microcontroladores, atuais obtidos a partir de um pino é suficiente para ativar um LED ou algum dispositivo de
baixo outra corrente (10-20 mA). Quanto mais pinos I / O, menor corrente máxima de um alfinete. Em outras palavras, a
corrente máxima indicada na ficha de especificações de dados para o microprocessador é compartilhado entre todas as
portas I / O.
Outra função do pino importante é que ele pode ter resistências de pull-up. Estes resistores conectar os pinos para a
tensão positiva de alimentação e entrará em vigor quando o pino é configurado como uma entrada conectada a um
interruptor mecânico ou um botão de pressão. As versões mais recentes dos microcontroladores têm resistores pull-up
Cada porta I / O é normalmente sob o controle do SFR especializados, o que significa que cada bit do registrador
determina o estado do pino microcontrolador correspondente. Por exemplo, escrevendo uma lógica (1) a um bit do
registrador de controle (SFR), o pino porta apropriada é automaticamente configurado como entrada e tensão trouxe a ele
pode ser lido como lógico 0 ou 1. Caso contrário, por escrito zero para a SFR, o pino porta apropriada é configurado como
uma saída. Sua tensão (0V ou 5V) corresponde ao estado de bit apropriado da porta registo.
UNIDADE DE MEMÓRIA
A memória é a parte do microcontrolador utilizado para armazenamento de dados. A maneira mais fácil de explicar é
compará-lo com um armário com muitas gavetas. Suponha-se, as gavetas estão claramente marcados para que seu
conteúdo pode ser encontrada com facilidade através da leitura da etiqueta na parte frontal da gaveta.
Da mesma forma, cada endereço de memória corresponde a uma posição de memória. O conteúdo de qualquer local
pode ser acessado e lido 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) é usado para salvar permanentemente o programa sendo executado. O tamanho do
programa que pode ser escrita depende do tamanho desta memória. Microcontroladores de hoje costumam usar 16-bit de
endereçamento, 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, seu programa raramente excedem o limite de várias centenas de instruções. Existem vários tipos de
ROM.
Mascarados ROM é um tipo de ROM o conteúdo do que está programado pelo fabricante. "Mascarado" o termo vem do
processo de fabricação, onde as regiões do chip são mascarados off antes do processo de fotolitografia. No caso de uma
Uma ROM tempo programável permite que você baixar um programa para ele, mas, como seu nome indica, uma única
vez. Se for detectado um erro após o download, a única coisa que você pode fazer é baixar o programa correto para outro
chip.
Erasable Programmable ROM UV (UV EPROM)
Tanto o processo de fabricação e as características dessa memória são completamente idênticos aos ROM OTP. No
entanto, o pacote do microcontrolador com esta memória tem uma "janela" reconhecível em seu lado superior. Ele
permite que dados sejam apagados sob luz ultravioleta forte. Depois de alguns minutos é possível baixar um programa
Instalação desta janela é complicada, que normalmente afeta o preço. Do nosso ponto de vista, infelizmente negativo ...
Memória Flash
Este tipo de memória foi inventada na década de 80 nos laboratórios da Intel e foi representado como o sucessor do
EPROM UV. Como o conteúdo dessa memória pode ser escrita e apagada praticamente um número ilimitado de vezes,
microcontroladores com Flash ROM são ideais para a produção de experimentação de aprendizagem, e de pequena
escala. Devido à sua grande popularidade, a maioria dos microcontroladores são fabricados na tecnologia flash de hoje.
Então, se você estiver indo para comprar um microcontrolador, o tipo de olhar é definitivamente para Flash!
Uma vez que a fonte de alimentação está desligado o conteúdo da RAM é apagada. Ele é usado para armazenar dados
temporários e resultados intermediários criados e utilizados durante a operação do microcontrolador. Por exemplo, se o
programa realiza uma adição (de qualquer), é necessário ter um registo que representa o que na vida cotidiana é
chamado de 'soma'. Por esta razão, um dos registos de memória RAM é chamado de 'soma' e usado para armazenar os
resultados da adição.
O conteúdo da EEPROM pode ser alterado durante a operação (similar ao RAM), mas continua a ser salvas
permanentemente, mesmo após a perda do poder (semelhante ao ROM). Assim, EEPROM é freqüentemente usado para
armazenar valores, criada durante a operação, que deve ser permanentemente guardados. Por exemplo, se você projetar
uma fechadura electrónica ou um alarme, que seria ótimo para habilitar o usuário para criar e digitar 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.
INTERRUPT
A maioria dos programas usar interrupções em sua execução regular. O objetivo do microcontrolador é principalmente
para responder às mudanças no seu entorno. 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 pela mudança de um canal, aumentar o volume para cima ou para baixo etc Se o microcontrolador passou a
maior parte de seu tempo infinitamente verificando alguns botões por horas ou dias , não seria prático em tudo.
É por isso que o microcontrolador tenha aprendido um truque durante a sua evolução. Em vez de verificar cada pino ou
bit constantemente, os delegados microcontrolador o "wait questão 'a um' especialista ', que irá responder apenas quando
O sinal que informa a unidade de processamento central sobre um evento como esse é chamado de uma interrupção.
Como o próprio nome sugere, este é uma unidade que monitora e controla todos os processos dentro do
Um ônibus é composto por 8, 16 ou mais fios. Existem dois tipos de ônibus: o barramento de endereços e barramento
de dados. O barramento de endereços é composto por quantas linhas necessárias para endereçamento de memória. Ele
é usado para transmitir o endereço da CPU para a memória. O barramento de dados é tão grande como os dados, no
nosso caso, é de 8 bits ou fios de largura. É usado para conectar todos os circuitos dentro do microcontrolador.
COMUNICAÇÃO SERIAL
Ligação paralela entre o microcontrolador e periféricos via de entrada / saída portas é a solução ideal em distâncias
mais curtas até vários metros. No entanto, em outros casos em que é necessário para estabelecer a comunicação entre
dois dispositivos em distâncias mais longas, não é possível usar a conexão paralela. Em vez disso, a comunicação serial
é usado.
Hoje, a maioria dos microcontroladores têm construído em vários sistemas diferentes de comunicação serial como um
equipamento de série. Qual destes sistemas serão utilizados depende de muitos fatores dos quais os mais importantes
são:
conjunto de regras que devem ser aplicados a fim de que os dispositivos podem interpretar corretamente os dados trocam
mutuamente. Felizmente, o microcontrolador automaticamente cuida disso, para que o trabalho do usuário programador /
é reduzido para escrever simples (dados a serem enviados) e ler (receber dados).
TAXA BAUD
O termo taxa de transmissão é utilizado para designar o número de bits transferidos por segundo [bps]. Note-se que ele
se refere a bits, não bytes. Geralmente é exigido pelo protocolo que cada byte é transferido, juntamente com vários bits
de controle. Isso significa que um byte no fluxo de dados de série pode ser constituída de 11 bits. Por exemplo, se a taxa
de transmissão é de 300 bps, em seguida, no máximo 37 e mínimo de 27 bytes podem ser transferidos por segundo.
Inter-circuito 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 elas é de curta duração (receptor e transmissor
estão geralmente na mesma placa impressa). Conexão é estabelecida através de dois condutores. Um é usado para
transferência de dados, o outro é usado para sincronização (sinal de clock). Como visto na figura abaixo, um dispositivo é
sempre um mestre. Ele realiza o endereçamento de um chip de escravos antes do início da comunicação. Desta forma
um microcontrolador pode se comunicar com 112 dispositivos diferentes. Taxa de transmissão é geralmente 100 Kb / s
(modo padrão) ou 10 Kb / s (modo de baixa taxa de transmissão). Sistemas com a taxa de transmissão de 3,4 Mb / sec
têm aparecido recentemente. A distância entre dispositivos que se comunicam em um barramento I2C é limitada a vários
metros.
A série periférica interface de barramento (SPI) é um sistema para comunicação serial que utiliza até quatro condutores,
geralmente três. Um condutor é usado para receber dados, uma para o envio de dados, um para sincronização e uma
alternativa para a seleção de um dispositivo para se comunicar. É uma conexão full-duplex, o que significa que os dados
Este tipo de comunicação é assíncrona, o que significa que uma linha especial para a transferência de sinal do relógio
não é utilizado. Em algumas aplicações, tais como conexão de rádio ou controle remoto infravermelho ondas, esta
característica é crucial. Uma vez que apenas uma linha de comunicação é usado, o receptor e transmissor operar na
mesma velocidade pré-definidas, a fim de 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 8 bits de dados de paralelo para o formato
OSCILLATOR
Mesmo pulsos gerados pelo oscilador permitir a operação harmônica e sincronizada de todos os circuitos dentro do
microcontrolador. O oscilador é normalmente configurado de modo a utilizar de cristal de quartzo ou cerâmica ressonador
para a estabilidade de freqüência, mas também pode operar como um circuito de stand-alone (como oscilador RC). É
importante dizer que as instruções não são executadas a uma taxa imposta pelo oscilador em si, mas várias vezes mais
lento. Isso acontece porque cada instrução é executada em várias etapas. Em alguns microcontroladores, o mesmo
número de ciclos é necessário para executar todas as instruções, enquanto em outros, o número de ciclos é diferente
para diferentes instruções. Assim, se o sistema utiliza cristal de quartzo com uma frequência de 20 Mhz, o tempo de
execução de uma instrução não é 50ns, mas 200, 400 ou 800 nS, dependendo do tipo de MCU!
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 operação,
este estado pode causar o seu desempenho fora de controle. , A fim de impedi-lo, o microcontrolador tem
geralmente um circuito de marrom para redefinir a eletrônica que redefine a todo assim que o microcontrolador
incorre em um estado de emergência.
Pino de reset é normalmente marcado como MCLR ( Master Reset Limpar ). É utilizado para repor
externa do microcontrolador através da aplicação de um zero a lógica (0) ou um (1) a ele, que depende do tipo
de microcontrolador. No caso do circuito fora marrom não é embutido, um circuito simples externo para marrom
fora reset pode ser ligado ao pino MCLR.
Temporizadores / Contadores
O oscilador do microcontrolador utiliza cristal de quartzo para o seu funcionamento. Mesmo que não é a solução mais
simples, existem muitas razões para usá-lo. A freqüência de oscilador, é precisamente definido e muito estável, de modo
que gera pulsos são sempre da mesma largura, o que os torna ideais para a medição do tempo. Osciladores como
também são usados em relógios de quartzo. Se é necessário medir o tempo entre dois eventos, é suficiente para contar
até pulsos gerados por este oscilador. Este é exatamente o que o temporizador faz.
A maioria dos programas usam esses eletrônicos em miniatura 'cronômetros. Estes são comumente 8 - ou 16-bit SFRs
o conteúdo do que é automaticamente incrementado por cada impulso vindo. Uma vez que um registo é completamente
Se o temporizador utiliza um oscilador interno de quartzo para o seu funcionamento, então ele pode ser usado para
medir o tempo entre dois eventos (se o valor do registro é T1 no momento em que se inicia a medição, e T2 no momento
em que termina, então o tempo decorrido é igual a o resultado da subtração T2-T1). Se registra pulsos provenientes do
Esta é apenas uma explicação simples da operação em si. No entanto, é mais complicado na prática.
Na prática, pulsos gerados pelo oscilador de quartzo são uma vez por cada ciclo de máquina, diretamente ou através de
um divisor, trouxe para o circuito que aumenta o número armazenado no temporizador registo. Se uma instrução (um ciclo
de máquina) tem a duração de quatro períodos oscilador de quartzo, em seguida, esse número será incrementado um
milhão de vezes por segundo (cada microssegundo) por incorporação de quartzo com a freqüência de 4MHz.
É fácil de medir intervalos de tempo curtos, até 256 microssegundos, na forma descrita acima, porque é o maior número
que um registrador pode armazenar. Essa restrição pode ser facilmente superado de diversas maneiras, como através de
um lento oscilador, registra-se com mais bits, divisor ou interrupções. As duas primeiras soluções têm alguns pontos
Um divisor é um dispositivo eletrônico usado para reduzir a frequência por um fator predeterminado. A fim de gerar um
pulso em sua saída, é necessário trazer pulsos 1, 2, 4 ou mais em sua entrada. A maioria de microcontroladores ter um
ou mais prescalers embutido e sua taxa de divisão pode ser alterada a partir do programa. O prescaler é usado quando é
necessário medir longos períodos de tempo. Se um prescaler é compartilhada por cronômetro e timer de monitoria, não
Se o registro do temporizador é composto por 8 bits, o maior número que pode armazenar é 255. Como para 16 bits
registros é o número 65,535. Se esse número for ultrapassado, o temporizador será automaticamente reiniciado e
contando terá início às zero novamente. Esta condição é chamada de um estouro. Se ativado a partir do programa, o
excesso pode causar uma interrupção, o que dá possibilidades completamente novas. Por exemplo, o estado de registros
usados por alguns segundos de contagem, minutos ou dias pode ser alterada em uma rotina de interrupção. Todo o
processo (exceto para rotina de interrupção) é executada automaticamente atrás das cenas, o que permite os principais
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, é o mesmo circuito eletrônico capaz de operar em dois modos diferentes. A única diferença é que neste
caso pulsos a serem contados vir sobre o pino de entrada do microcontrolador e sua duração (largura) é mais indefinida.
É por isso que eles não podem ser utilizados para a medição do tempo, mas para outros fins, tais como contagem de
produtos numa linha de montagem, número de rotação do eixo, os passageiros, etc (dependendo do sensor em uso).
TIMER WATCHDOG
Se o watchdog timer é ativada, cada vez que 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 ponto é evitar que isso aconteça através de um comando
específico.
De qualquer forma, a idéia é baseada no fato de que cada programa é executado em vários loops maior ou menor. Se
as instruções que redefinir o timer de monitoria são definidas nos locais programa apropriado, além de comandos sendo
executados regularmente, então a operação do watchdog timer não afetará a execução do programa. Se por qualquer
motivo, o ruído normalmente elétrica 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, por isso o valor do registo é constantemente incrementado
Sinais externos são geralmente fundamentalmente diferentes daqueles que o microcontrolador entende (uns e zeros) e
têm de ser convertidos em valores, portanto, compreensível para o microcontrolador. Um conversor analógico-digital é um
circuito eletrônico que converte sinais contínuos para discretos números digitais. Em outras palavras, este circuito
converte um valor analógico em um número binário e passa para a CPU para processamento posterior. Este módulo é,
O resultado da medição é um número (valor digital) utilizados e transformados mais tarde no programa.
Arquitetura interna
Todos os microcontroladores atualizado usar um dos dois modelos de projeto básico chamado Harvard e von-Neumann
arquitetura.
Eles representam duas formas diferentes de troca de dados entre CPU e memória.
VON NEUMANN-ARQUITETURA
Microcontroladores usando von-Neumann arquitetura têm apenas um bloco de memória e um bus de 8 bits de dados.
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 de leitura / gravação de dados de / para a memória. Ambos não podem
ocorrer ao mesmo tempo, uma vez que instruções e dados usar o mesmo ônibus. Por exemplo, se uma linha de programa
lê que a memória RAM registo chamado "SUM" deve ser incrementado por um (instrução: SUM INCF), o microcontrolador
1. Leia a parte da instrução de programa especificando o que deve ser feito (neste caso, é o 'INCF'
instrução para incremento).
2. Leia a outra parte da mesma instrução especificando sobre os dados que esta deve ser executada
(neste caso, é a "soma" register).
3. Depois de ser incrementado, o conteúdo deste registo deve ser escrito no registo de que foi lido ("SUM"
endereço de registro).
Microcontroladores com arquitetura Harvard tem dois ônibus de dados diferentes. Um deles é de 8 bits e se conecta a
CPU RAM. A outra consiste em linhas 12, 14 ou 16 e se conecta a CPU ROM. Assim, a CPU pode ler uma instrução e
memória de dados de acesso, ao mesmo tempo. Uma vez que todos os registos de memória RAM são 8 bits de largura,
todos os dados que estão sendo trocadas são da mesma largura. Durante o processo de writin um programa, apenas 8
bits de dados são considerados. Em outras palavras, tudo que você pode mudar a partir do programa e tudo que você
pode influenciar é de 8 bits de largura. Todos os programas escritos para estes microcontroladores serão armazenados
na ROM interna do microcontrolador depois de ser compilados em código de máquina. No entanto, posições de memória
ROM não tem 8, mas de 12 bits, 14 ou 16. O resto do bits 4, 6 ou 8 representa a instrução que especifica para a CPU o
Todos os dados no programa é um byte (8 bits) de largura. Como o barramento de dados usado para a
leitura do programa tem linhas 12, 14 ou 16, ambos de instruções e dados podem ser lidos simultaneamente
usando esses bits de reposição. Por esta razão, todas as instruções são de ciclo único com instruções, com
exceção da instrução de salto que é de dois ciclos de instrução.
Devido ao fato de que o programa (ROM) e dados temporária (RAM) são separados, a CPU pode
executar duas instruções por vez. Simplificando, enquanto RAM ler ou escrever está em andamento (no final de
uma instrução), a próxima instrução do programa é lido através do barramento outros.
Ao usar microcontroladores com a arquitetura von-Neumann, nunca se sabe quanta memória está a ser
ocupado pelo programa. Basicamente, as instruções mais 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 os dados que esta
deveria ser feito). No entanto, não é uma regra dura e rápida, mas o caso mais comum. Em microcontroladores
com arquitetura Harvard, o ônibus palavra programa é mais amplo do que um byte, que permite que cada
palavra programa consistem de instrução e de dados, ou seja, local de memória 1-1 instrução de programa.
SET DE INSTRUÇÕES
Todas as instruções compreensíveis para o microcontrolador são convocados do conjunto de instruções . Quando você
escreve um programa em linguagem assembly, na verdade você especificar instruções em tal ordem que deve ser
executado. A principal restrição aqui é uma série de instruções disponíveis. Os fabricantes geralmente adotam ambas as
Neste caso, o microcontrolador reconhece e executa somente operações básicas (adição, subtração, cópia etc.) Outras,
as operações mais complicadas são realizadas combinando-as. Por exemplo, a multiplicação é feita através da realização
de sucessivas adições. É o mesmo que se você tentar explicar a alguém, usando apenas algumas palavras diferentes,
como 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 aritmética
'acrobacias' realiza. O usuário só pode ver os resultados finais. Enfim, não é tão difícil de explicar onde o aeroporto se
CISC é o oposto ao RISC! Microcontroladores projetado para reconhecer mais de 200 instruções diferentes pode fazer
um monte de coisas em alta velocidade. No entanto, é preciso entender como tirar tudo o que oferece uma tal linguagem
Ok, você é o novato e ter feito uma decisão de ir em uma aventura de trabalhar com os microcontroladores. Parabéns
pela sua escolha! No entanto, ele não é tão fácil escolher o microcontrolador direita, como pode parecer. O problema não
Antes de começar a projetar um dispositivo baseado no microcontrolador, pense o seguinte: quantos de entrada / saída
linhas vou precisar para a operação? Deveria realizar algumas operações para além de simplesmente ligar relés on / off?
Será que ela precisa de algum módulo especializado, tais como comunicação serial, A / D etc conversor? 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 ter vários dispositivos mesmo? Várias centenas de? 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. Antes de mais nada, selecione o fabricante, ou seja, a família de microcontroladores você pode
facilmente obter. Estudo de um modelo específico. Aprender tanto quanto você precisa, não entrar em detalhes. Resolver
um problema específico e algo incrível vai acontecer, você será capaz de lidar com qualquer modelo que pertencem a
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 facilmente montar qualquer outra bicicleta. E, claro, você nunca vai esquecer de programação, assim como você
Microcontroladores PIC projetado pela Microchip Technology provavelmente a melhor escolha para iniciantes. Aqui está
o porquê ...
O nome original deste microcontrolador é PICmicro ( Controller Interface Periférica ), 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 depois, este circuito foi transformado em um microcontrolador PIC real por adição de
memória EEPROM. Hoje em dia, Microchip Technology anuncia a fabricação da amostra 5000000000.
Se você estiver interessado em aprender mais sobre isso, basta manter a leitura.
A idéia principal com este livro é fornecer ao usuário informações necessárias para que ele seja capaz de usar
microcontroladores em prática depois de lê-lo. A fim de evitar explicações tedioso e história sem fim sobre as
características úteis de microcontroladores diferentes, este livro descreve o funcionamento de um modelo específico
pertencente à "classe média alta". É o suficiente PIC16F887-poderoso para valer a pena a atenção e simples o suficiente
para ser facilmente apresentados a todos. Assim, os capítulos seguintes descrevem este microcontrolador em detalhes,
Todos os microcontroladores PIC use arquitetura Harvard, o que significa que sua memória de programa está ligado à
CPU durante mais de 8 linhas. Dependendo da largura de ônibus, há 12 -, 14 - e 16-bit microcontroladores. Tabela acima
microcontroladores PIC têm 8-bit arquitetura Harvard e pertencem a um dos três grandes grupos. Assim, dependendo do
tamanho da palavra programa existem categoria microcontrolador primeiro, segundo e terceiro, ou seja, 12 -, 14 - ou 16-
bit microcontroladores. Tendo núcleo de 8 bits semelhantes, todos eles utilizam o mesmo conjunto de instruções e
SET DE INSTRUÇÕES
O conjunto de instruções para o 16F8XX inclui 35 instruções no total. A razão para um número tão pequeno de
instruções encontra-se na arquitetura RISC. Isso significa que as instruções são bem otimizado dos aspectos da
velocidade de funcionamento, a simplicidade na arquitetura e compacidade código. A única coisa ruim sobre a arquitetura
RISC é que o programador é esperado para lidar com estas instruções. Claro, isso só é relevante se você usar linguagem
assembly para a programação. Este livro refere-se à programação na linguagem de programação C mais elevadas, o que
significa que mais trabalho tem sido feito por outra pessoa. Você apenas tem que usar instruções relativamente simples.
Todas as instruções são de ciclo único instruções. A única exceção pode ser instruções de desvio condicional (se a
condição é satisfeita) 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 ).
Único ciclo de instruções consistem em quatro ciclos de clock. Se oscilador de 4MHz é usado, o tempo nominal para a
execução de instruções é 1μS. Como para instruções de salto, o tempo de execução de instruções é 2μS.
* 1 Quando um registo de I / O é modificado em função de si mesmo, o valor utilizado será o valor presentes nos pinos
de si mesmos.
* 3 Se o PC for modificado ou resultado do teste é a lógica de um (1), a instrução requer dois ciclos.