O mundo dos microcontroladores - Microcontroladores PIC -
Programao em C com exemplos Captulo 1: O mundo dos
microcontroladoresA situao atual em matria de microcontroladores
ocorreu graas ao desenvolvimento da tecnologia de fabricao de
circuitos integrados.Este desenvolvimento tem permitido construir
as centenas de milhares de transistores num chip.Este foi um
pr-requisito para o fabrico de um microprocessador.Os primeiros
microcomputadores foram feitas para adicion-los externo, como
memria, linhas de I / O, os temporizadores ou outros perifricos.O
aumento na densidade de integrao possvel para criar um circuito
integrado contendo o processador e perifricos ambos. assim que foi
desenvolvido o primeiro microcomputador em um nico chip, chamado
microcontrolador mais tarde. 1.1 Introduo 1,2, nmeros, nmeros ...
1.3 DETALHES IMPORTANTES 1,4 microcontroladores PIC1.1
INTRODUOEletronicamente iniciantes acreditam que um
microcontrolador igual a um microprocessador.Isso no verdade.Eles
diferem uns dos outros, em muitos aspectos.O primeiro e mais
importante diferena a sua funcionalidade.Para utilizar o
microprocessador em uma aplicao real, que deve ser ligado com
componentes tais como componentes de barramento de memria ou de
transmisso de dados.Embora o microprocessador considerado uma
mquina de computao poderoso no est pronto para comunicao com
dispositivos perifricos conectados a ele.Para o microprocessador
para se comunicar com um perifrico, voc deve usar circuitos
especiais.Por isso, foi no incio e esta prtica ainda est em vigor
hoje.
Por outro lado, o microcontrolador projetado de modo que voc
tenha todos integrados nos mesmos componentes do chip.No h
necessidade de outros componentes para a sua aplicao, pois todos os
circuitos necessrios, que de outro modo correspondem aos perifricos
j esto construdos.Isso economiza tempo e espao necessrio para a
construo de um dispositivo.
O que pode MICROCONTROLADORES?Para compreender mais facilmente
as razes para o enorme sucesso de microcontroladores, vamos prestar
ateno ao seguinte exemplo.Cerca de 10 anos atrs, projetando um
dispositivo de controle eletrnico de um elevador de um edifcio de
vrios andares foi muito difcil, mesmo para uma equipa de
peritos.Alguma vez voc j pensou sobre o que requisitos devem
atender a um elevador simples?Como lidar com a situao quando duas
ou mais pessoas chamar o elevador ao mesmo tempo?O convite tem a
prioridade?Como resolver problemas de segurana, perda de energia,
falha, abuso?O que acontece depois de resolver estes problemas
bsicos uma concepo meticulosa dispositivos apropriados usando um
grande nmero de fichas processo especializado.Este processo pode
demorar semanas ou meses, dependendo da complexidade do
dispositivo.Quando o processo estiver concludo, hora de projetar
uma placa de circuito impresso e montagem do dispositivo
dispositivo.Un enorme! um outro trabalho difcil e
demorado.Finalmente, quando tudo estiver terminado e testado
corretamente, e passou o momento crucial quando voc se concentrar,
respire profundamente e ligue a fonte de alimentao.Este geralmente
o ponto em que o partido se torna um verdadeiro trabalho desde
dispositivos electrnicos quase nunca funcionam corretamente desde o
incio.Prepare-se para muitas noites sem dormir, correes, melhorias
... e no se esquea de que ainda estamos falando sobre como iniciar
um elevador simples.Quando o dispositivo se torne finalmente
operacional perfeitamente e todos esto satisfeitos, e ser pago para
o trabalho que ele tem feito, muitas empresas esto interessadas em
desenvolver seu trabalho.Claro, se voc tiver sorte, a cada dia vai
lhe trazer uma oferta de emprego de um novo investidor.No entanto,
se voc precisa trabalhar em controlar os elevadores de um novo
prdio com quatro andares, dos quais j lida com seu sistema de
controle.Voc sabe como proceder?Voc acha que talvez voc possa
controlar as demandas de seus clientes?Achamos que voc vai
construir um dispositivo universal que pode ser usado em edifcios
4-40 andares, uma obra-prima da eletrnica.Bem, mesmo se voc comea a
construir uma jia eletrnico, o investidor vai esperarar porta da
frente pedindo uma cmera no elevador ou msica relaxante em caso de
falha elevador.Ou um elevador com duas portas.No entanto, a Lei de
Murphy inexorvel e, certamente, voc no pode tirar vantagem, apesar
de todos os esforos desenvolvidos.Infelizmente, tudo o que foi dito
at agora acontece na realidade.Isto o que "envolver-se em
engenharia eletrnica" realmente significa.Esta a forma como as
coisas eram feitas a emergncia de microcontroladores projetados -
pequeno, poderoso e barato.Desde ento sua programao deixou de ser
uma cincia, e tudo tomou outro rumo ...O dispositivo eletrnico
capaz de controlar um pequeno submarino, um guindaste ou um
elevador como mencionado anteriormente, agora incorporados em um
nico chip.Microcontroladores de oferecer uma ampla gama de aplicaes
e so normalmente apenas um pouco explorado.Cabe a voc decidir o que
voc deseja que o microcontrolador e carregar um programa com as
instrues adequadas.Antes de ligar o aparelho, aconselhvel verificar
o seu funcionamento usando um simulador.Se tudo funcionar como
deveria, incorporando o microcontrolador no sistema.Se voc precisar
alterar, melhorar ou atualizar o programa, faa isso.Quanto
tempo?Para satisfao.Isso pode ser feito sem qualquer problema.
Voc sabia que todas as pessoas podem ser classificadas em um dos
10 grupos, que esto familiarizados com o sistema numrico binrio e
aqueles que no esto familiarizados com ele.Se voc no entende o que
significa que ainda pertence ao segundo grupo.Para alterar seu
status, leia o texto a seguir descreve brevemente alguns dos
conceitos bsicos usados mais tarde neste livro (s para ter certeza
que ns estamos falando nos mesmos termos).1,2, nmeros, nmeros
...Matemtica uma cincia!Tudo to lgico e simples ... O universo de
nmeros pode ser descrita com apenas dez dgitos.No entanto, voc
realmente tem que ser?Ser que precisamos exatamente esses 10
dgitos?Claro que no, apenas uma questo de hbito.Lembre-se as lies
da escola.Por exemplo, o que que o nmero 764 significa?Quatro
unidades, seis dezenas e sete centenas.Muito simples!Voc poderia
expressar de uma forma mais desenvolvida?Claro que ele faz: 4 + 60
+ 700. Ainda mais desenvolvido?Sim: 4 * 1 + 6 * + 10 7 *
100.Poderia este nmero olhar um pouco mais "cientfico"?A resposta
sim mais uma vez: 4 * 100 + 101 + 6 * 7 * 102.O que isso realmente
significa?Por que usar exatamente esses nmeros 100, 101 e 102?Por
que sempre o nmero 10? porque ns usamos 10 dgitos diferentes (0, 1,
2 ... 8, 9).Em outras palavras, porque usar o sistema de numerao na
base 10, ou seja, o sistema decimal.
SISTEMA DE NUMERAO BINRIOE se usssemos apenas dois nmeros 0 e
1?Se pudssemos dizer (1) ou negar (0) que algo existe.A resposta
"nada de especial", gostaramos de usar os mesmos nmeros da mesma
maneira que usamos hoje, mas eles parecem um pouco diferente.Por
exemplo: 11011010.Cuntas so realmente 11.011.010 pginas de um
livro?Para entender isso, seguem a mesma lgica que no exemplo
anterior, mas na ordem inversa.Note-se que a aritmtica apenas dois
dgitos 0 e 1, ou seja, o sistema de numerao na base 2 (sistema de
numerao binria).
Obviamente, este o mesmo nmero representado dois diferentes
sistemas de numerao.A nica diferena entre estas duas representaes
reside no nmero de dgitos necessrios para introduzir um nmero.Dgito
(2) usado para escrever o nmero 2 no sistema decimal, enquanto dois
dgitos (1 e 0) so usados para escrever esse nmero no sistema
binrio.Agora voc concorda que existem 10 grupos de
pessoas?Bem-vindo ao mundo da aritmtica binria!Voc tem alguma idia
de onde ele usado?Salvo em condies laboratoriais controladas
rigorosamente, circuitos electrnicos mais complicados no pode
especificar exactamente a diferena entre dois valores (dois valores
de tenso, por exemplo), se forem demasiado pequenos (menores do que
alguns volts).O motivo o rudo eltrico e fenmenos que ocorrem dentro
do que chamamos de "ambiente de trabalho real" (exemplos desses
fenmenos so mudanas imprevisveis na tenso de alimentao, mudanas de
temperatura, os valores do componente tolerncia etc. ...).Imagine
um computador que opera com nmeros decimais, tratando-as como se
segue: 0 = 0 V, 1 = 5V, 10V 2 = 3 = 15V, 20V ... 4 = 9 = 45V!?Algum
disse baterias?Uma soluo muito mais fcil uma lgica binria 0
indicando a ausncia de tenso, enquanto que 1 indica a presena de
tenso. simplesmente mais fcil de escrever 0 ou 1, em vez de "sem
tenso" ou "sem tenso".Pela lgica zero (0) e lgica de um (1) rostos
perfeitamente eletrnicos e de fcil execuo todas as operaes
aritmticas.Obviamente, ele realmente aplicado aritmtica eletrnica
em que todos os nmeros so representados com apenas dois dgitos e
onde s importante saber se h tenso ou no.Claro, estamos falando de
eletrnica digital.
SISTEMA DE NUMERAO HEXADECIMALNo incio do desenvolvimento dos
computadores era bvio que as pessoas tinham dificuldade em
trabalhar com nmeros binrios.Portanto, um novo sistema de numerao,
que utilizou 16 smbolos diferentes so estabelecidos.Ele chamado o
sistema de numerao hexadecimal.Este sistema composto de 10 dgitos
que so utilizados para (0, 1, 2, 3, ... 9) e seis letras do
alfabeto de A, B, C, D, E e F. O que o objectivo da Esta combinao
aparentemente estranho?Basta olhar para a forma como tudo na
histria dos nmeros binrios se encaixa perfeitamente para uma melhor
compreenso do assunto.
O maior nmero que pode ser representado com 4 bits 1111. O nmero
corresponde ao nmero 15 no sistema decimal.No sistema hexadecimal
esse nmero representado por apenas um dgito F o maior nmero de um
dgito no sistema hexadecimal.Voc percebe a utilidade destas
equivalncias?O maior nmero escrito com oito dgitos binrios tanto o
maior nmero de sistema hexadecimal de dois dgitos.Note-se que um
computador usa nmeros binrios de 8 dgitos.Talvez esta seja uma
coincidncia?
BCD CODEO cdigo BCD (Binary-COdedDecimal- Cdigo binrio decimal)
um cdigo binrio usado para representar nmeros decimais.Ele usado
para circuitos eletrnicos para se comunicar com perifricos usando o
sistema de numerao decimal ou usando o sistema binrio dentro "seu
prprio mundo". composto de nmeros binrios de 4 dgitos que
representam os dez primeiros dgitos (0, 1, 2, 3 ... 8, 9).Apesar de
quatro dgitos pode fazer 16 combinaes possveis no total, o cdigo
BCD normalmente utilizada para o topo dez.
Sistemas de numerao CONVERSOO sistema de numerao binrio
utilizado por microcontroladores, o sistema decimal o que ns
encontramos mais compreensvel, enquanto o sistema hexadecimal tem
um equilbrio entre os dois.Portanto, muito importante aprender como
converter nmeros de um sistema para outro nmero, por exemplo, como
converter uma srie de zeros e uns de uma forma compreensvel para ns
representao.Convertendo binrio em nmeros decimaisOs dgitos em um
nmero binrio tm diferente que depende de sua posio dentro do nmero
que eles esto representando pesos.Alm disso, cada dgito pode ser 1
ou 0, e o seu peso pode ser determinado facilmente por ter a sua
posio a partir da direita.Para fazer uma converso de um nmero
binrio para decimal necessrio multiplicar os pesos com os dgitos
correspondentes (0 ou 1) e adicionar todos os resultados.A magia da
converso de um nmero binrio em decimal faz maravilhas ... ter
dvidas?Considere o seguinte exemplo:
Note que voc precisar usar apenas dois dgitos binrios para
representar todos os nmeros decimais de 0 a 3. Portanto, para
representar nmeros 0-7 necessrio usar trs dgitos binrios para
representar nmeros de 0 a 15-4 dgitos etc.Simplificando, o nmero
pouco maior que pode ser representado usando n dgitos obtida atravs
da elevao da base 2 elevado potncia n.Em seguida, o resultado
subtrado de 1. Por exemplo, se n = 4:24- 1 = 16-1 = 15Portanto, ao
utilizar quatro dgitos binrios podem representar os nmeros decimais
de 0 a 15, valores diferentes so 16 no total.CONVERSO nmeros
hexadecimais em decimaisPara fazer uma converso de um nmero
hexadecimal para decimal, hexadecimal cada dgito deve ser
multiplicado pelo nmero 16 levantou para o valor de sua posio.Por
exemplo:
CONVERSO nmeros hexadecimais para binrioNo h necessidade de
qualquer clculo para converter um nmero hexadecimal em binrio.Os
dgitos hexadecimais so simplesmente substitudos pelos quatro bits
apropriados.Uma vez que o dgito hexadecimal mximo equivalente ao
nmero decimal 15, necessrio o uso de quatro bits para representar
um dgito hexadecimal.Por exemplo:
NMEROS DE MARCAOO sistema de numerao hexadecimal, juntamente com
sistemas binrios e decimais, so considerados os mais importantes
para ns. fcil de executar uma converso de qualquer nmero
hexadecimal em binrio, que tambm fcil de memorizar.Sem No entanto,
essas converses pode causar confuso.Por exemplo, o que a frase
realmente significa: "Voc precisa de 110 produtos em uma linha de
montagem"?Dependendo do sistema em questo (binrio, decimal ou
hexadecimal), o resultado poderia ser de 6 272 110, ou produtos,
respectivamente.Portanto, para evitar mal-entendidos, diferentes
prefixos e sufixos so adicionados diretamente para os nmeros.Ou $
prefixo 0x e sufixo h marca os nmeros no sistema hexadecimal.Por
exemplo, o nmero hexadecimal 10AF pode ser escrita como: $ 10AF,
0x10AF ou 10AFh.Da mesma forma, os nmeros binrios obtido
normalmente sufixo ou 0B%.Se um nmero no tem sufixo ou prefixo
considerado decimal.Infelizmente, esta forma de nmeros de discagem
no padronizado, portanto, depende da aplicao particular.O seguinte
uma tabela comparativa com os valores de 0-255 nmeros representados
em trs sistemas de numerao diferentes.Esta provavelmente a maneira
mais fcil de entender a lgica comum aplicado a todos os sistemas de
numerao.
Os nmeros negativosComo vimos, para introduzir um nmero negativo
em matemtica, basta adicionar o prefixo "-" (sinal de menos).No
entanto, na programao, para concluir o processo de compilao, nmeros
binrios so apenas virando as coisas mais complicadas.Apenas dois
dgitos so utilizados - 0 e 1, enquanto que todos os outros nmeros,
smbolos e sinais so formados por combinaes destes dois dgitos.No
caso de nmeros negativos, a soluo o seguinte: Em nmeros negativos,
o bit mais significativo (o bit mais esquerda) representa o sinal
do nmero (onde 0 positiva e uma negativa).No caso de um nmero de 8
bits para representar um valor numrico so apenas 7 bits de.De
acordo com este tipo de codificar o nmero 127 o maior nmero
assinado positiva que pode ser representada com 8 bits.Alm disso, h
zero (0) positivo e negativo (ver quadro direita).A prxima pergunta
: Como possvel saber o nmero ?Por exemplo, se colocarmos o nmero
10000001, -1 ou 129?No se preocupe, que o compilador alas.Esta a
razo pela qual as variveis so declaradas por escrever o
programa.Bem, que vamos discutir a seguir.
BITA teoria que um pouco a unidade bsica de informao ... Vamos
esquecer por um momento e mostrar por que que, na prtica.A resposta
- nada especial de um bit um dgito binrio.Semelhante a um sistema
decimal em que os dgitos de um nmero no tem o mesmo peso (por
exemplo, os dgitos no nmero 444 o mesmo, mas tem valores
diferentes), o "significado" de um bit depende da posio com nmero
binrio.Neste caso, no faz sentido falar de unidades, centenas
etc.em nmeros binrios, os dgitos so chamados o bit zero (o primeiro
bit para a direita), o primeiro bit (o segundo bit para a direita),
etc.Alm disso, uma vez que o sistema utiliza apenas dois dgitos
binrios (0 e 1), o valor de um bit pode ser 0 ou 1.No fique confuso
se voc est um pouco com o valor de 4, 16 ou 64. Estes so os valores
representados no sistema decimal.Simplesmente, ns nos tornamos to
acostumados a usar casas decimais que essas expresses tornaram-se
comuns.Seria correto dizer por exemplo, "o valor do sexto bit em
qualquer nmero binrio equivalente ao nmero decimal 64".Mas somos
todos humanos e velhos hbitos custam a morrer.Alm disso, como ele
soa "nmero um-um-um-zero-zero, ..."?BYTEUm byte constitudo por 8
bits colocados lado a lado.Se um bit um dgito, lgico que bytes
representar nmeros.Todas as operaes matemticas pode ser feito por
meio deles, como por meio de nmeros decimais comuns.Semelhante a
quaisquer dgitos numricos, os dgitos de um byte no tm o mesmo
significado.O bit mais esquerda tem a maior ponderao, de modo que
chamado o bit mais significativo (MSB).O bit mais direita tem o
menor peso, por isso chamado o bit menos significativo (LSB).Uma
vez que um byte de 8 dgitos podem ser combinados de diferentes
maneiras 256, o maior nmero decimal que pode ser representada com
um byte 255 (uma combinao representa um zero).A mordidela ou
quarteto representa um byte metade.Dependendo metade o nmero em
questo (esquerda ou direita), mordidelas so chamados "alto" ou
"baixo", respectivamente.
Voc provavelmente j pensou sobre como a eletrnica dentro de um
circuito integrado digital, um microcontrolador ou
microprocessador.Como so os circuitos que executam operaes
matemticas complicadas e tomar decises?Voc sabia que os seus
regimes, aparentemente complicadas consistem em apenas alguns
elementos diferentes, chamados circuitos lgicos ou portas
lgicas?1.3 DETALHES IMPORTANTESA operao desses elementos baseado
nos princpios estabelecidos pelo matemtico britnicoGeorge Booleem
meados do sculo 19 - ou seja, antes da inveno da primeira lmpada!Em
suma, a idia principal era expressar formas lgicas por meio de
funes algbricas.Essa idia logo se tornou um produto prtico, que
mais tarde se tornou o que hoje conhecemos como circuito lgico AND
(E), O (OR) ou NO (NOT).O princpio de operao conhecida como lgebra
booleana.Circuitos LgicosAlgumas instrues de programa usado por um
microcontrolador em funo da mesma maneira como portas lgicas, mas
sob a forma de comandos.Abaixo, vamos explicar o princpio do seu
funcionamento.PORTA E (AND)
Uma porta lgica "Y" tem duas ou mais entradas e uma sada.Neste
caso, a porta utilizada tem apenas duas entradas.Uma lgica um (1)
aparece na sua sada apenas se ambas as entradas (A e B) so
transportados alta (1).A tabela direita a tabela verdade que mostra
a relao entre as entradas e sadas do porto.O princpio de
funcionamento o mesmo quando o porto tem mais do que duas entradas:
a sada fornece um lgico um (1) apenas se todas as entradas so
realizadas alta (1).
Qualquer outra combinao de tenses de entrada proporcionar uma
lgica zero (0) na sua sada.Usado no programa, a operao lgica E
realizado por um programa de instrues, que falaremos mais tarde.Por
agora s sei que a lgica do programa e refere-se realizao deste tipo
de operao sobre os bits correspondentes de dois registros
diferentes.PORTA O (OR)
De modo semelhante, a porta OU tambm tem duas ou mais entradas e
uma sada.Se o porto tem apenas duas entradas, o seguinte aplica-se:
a sada fornece um lgico um (1), se uma ou outra entrada (A ou B)
colocada em alta (1).Se a porta ou ter mais de duas entradas, o
seguinte aplica-se: A sada fornece um lgico um (1) se, pelo menos,
uma entrada colocada em alta (1).Se todas as informaes so lgica
zero (0), a sada ser uma lgica zero (0), bem.
Em um programa, a operao lgica OR realizada da mesma maneira que
a operao de Y.PORTA NO (NO)NO porta lgica tem uma entrada e uma
sada, para que ele funciona de maneira muito simples.Quando um
lgico zero (0) aparece na sua entrada, a sada fornece um lgico um
(1) e vice-versa.Isto significa que este porto inverte-se os sinais
e, por isso, chamado investidores.
No programa da operao lgica no executada em um byte.O resultado
um byte com os bits invertidos.Se os bits em um byte considerado
nmero, o montante investido um complemento a esse nmero.O
complemento de um nmero o valor que adicionado ao nmero de atingir
o nmero de 8 dgitos binrios.Em outras palavras, a soma dos nmeros
de 8 dgitos e o seu complemento sempre 255.PORTA XOR (OU
exclusivo)
A XOR (OU exclusivo) um pouco complicado em comparao com os
outros.Ele representa uma combinao de todas as portas acima
descritos.A sada fornece um lgico um (1) apenas se as suas entradas
esto em diferentes estados lgicos.
No programa, esta operao muitas vezes usado para comparar dois
bytes.O restante pode ser utilizado para o mesmo fim (se o
resultado for 0, os bytes so iguais).Ao contrrio do resto, a
vantagem de esta operao lgica que possvel obter resultados
negativos.RECORDSUm registo ou uma clula de memria um circuito
eletrnico que pode salvar o estado de um byte.
SFR REGISTRADORESAo contrrio de registros no tm funo especial e
predeterminado, cada um microcontrolador tem um nmero de
registradores de funes especiais (SFR), com a funo de incumprimento
por parte do fabricante.Os bits so ligados ao circuito interno do
microcontrolador, tais como temporizadores, conversores A / D,
osciladores, etc., o que significa que manipular directamente a
operao destes circuitos, ou microcontrolador.Imaginem oito
interruptores que lidam com a operao de um pequeno circuito dentro
do microcontrolador.Os registos SFR fazer exatamente o mesmo.
Em outras palavras, o bit de registo de estado definido dentro
do programa, uma pequena cabea SFR regista dentro dos circuitos do
microcontrolador, estes circuitos so ligados aos pinos do
microcontrolador usado para um dispositivo perifrico ... Bom,
depende voc.De entrada / sada (E / S)Para fazer com que um
microcontrolador til, deve ser ligada a um dispositivo externo, que
, a um perifrico.Cada microcontrolador tem um ou mais discos
(chamadas portas) conectados a pinos do microcontrolador.Por que
eles so designados como entrada / sada?Porque voc pode alterar a
funo de cada pino que voc deseja.Por exemplo, voc quer que seu
dispositivo para ligar e desligar os trs sinais de LEDs e,
simultaneamente, monitorar o estado lgico de cinco sensores ou
botes.Uma das portas devem ser configurados de tal modo que existem
trs sadas (ligado aos LEDs) e cinco entradas (ligados aos
sensores).Isto feito simplesmente por meio de software, o que
significa que a funo de qualquer pino pode ser alterado durante a
operao.
Uma das caractersticas mais importantes do pino de entrada /
sada (E / S) a corrente mxima que pode entregar / receber.Na
maioria dos microcontroladores corrente a partir de um pino que
suficiente para disparar um LED ou outro dispositivo de corrente
baixa (10-20mA).Os mais pinos de E / S tem, quanto menor for a
corrente mxima de um pino.Em outras palavras, todas as portas de E
/ S compartilham o atual mximo indicado na folha de especificao
tcnica do microprocessador.Outra caracterstica importante que os
pinos podem ter resistores pull-up.Estas resistncias conectar o
pino para a tenso de alimentao de energia positiva e seu efeito
pode ser visto quando a configurao do pino como uma entrada ligada
a um interruptor mecnico ou um boto de presso.As ltimas verses dos
microcontroladores tm resistores pull-up de software
configurvel.Cada porta de E / S est normalmente sob o controlo de
um registo SFR especializado, o que significa que cada bit do
presente registo determina o estado do pino correspondente no
microcontrolador.Por exemplo, escrever uma lgica 1 (um) a um bit do
registrador de controle (SFR), o pino da porta apropriado
automaticamente configurado como uma sada.Isso significa que a
tenso levou ao pino pode ser lido como 0 ou 1 lgico.Caso contrrio,
escrevendo 0 para registrar SFR, o pino da porta apropriado est
configurado como uma sada.Sua tenso (0V ou 5V) corresponde ao
estado do bit apropriado de registro de porta.
MEMORY UNITA unidade de memria do microcontrolador usado para
armazenar dados.A maneira mais fcil de explicar comparar um grande
armrio com muitas gavetas.Se voc verificar as gavetas claramente
que fcil o acesso de qualquer dos seus contedos para ler a etiqueta
na parte frontal da gaveta.
De modo semelhante, cada endereo de memria corresponde a uma
localizao da memria.O contedo de qualquer local pode ser lido e voc
pode acessar a dirigi-la.A memria pode ser escritos ou lidos na
cidade.Existem vrios tipos de memria dentro do
microcontrolador:
Memria ROM (Read Only Memory) - Read Only MemoryA ROM usado para
guardar permanentemente o programa que est sendo executado.O
tamanho do programa que pode ser escrita depende do tamanho da
memria.Microcontroladores atuais normalmente usa endereamento de 16
bits, o que significa que eles so capazes de enderear at 64KB de
memria, ou seja, 65.535 locais.Por exemplo, se voc um novato, seu
programa raramente excedem o limite de vrias centenas de
instrues.Vrios tipos de ROM.
ROM Mask (mascarado) - MROMA ROM de mscara de um tipo de ROM
cujo contedo definido pelo fabricante.O termo "mscara" o processo
de fabrico, em que as partes de chips so incorporados na mscara
usada durante o processo de fotolitografia.No caso da produo de
grandes sries, o preo muito baixo.Esquea a idia de modificar
...
ROM OTP (One Time Programmable ROM) - one-time programmable ROMA
memria programvel one-time permite baixar um programa no chip, mas
como seu nome, disse uma vez.Se um erro depois de baix-lo, a nica
coisa a fazer baixar o programa correto em outro chip
detectado.
EPROM UV (Erasable Programmable ROM UV) - Erasable Programmable
ROM ultravioleta
A encapsulao deste microcontrolador tem uma "janela" reconhecvel
no topo.Isto permite expor a superfcie do chip de silcio de luz
ultravioleta e de eliminar completamente o programa em vrios
minutos.Em seguida, voc pode baixar um novo programa na mesma.A
instalao desta janela complicada, o que obviamente afecta o preo.Do
nosso ponto de vista, infelizmente, negativa ...
Memria FlashEste tipo de memria foi inventado nos anos 80 nos
laboratrios da empresa INTEL, como forma desenvolvida de UV
EPROM.Uma vez que possvel escrever e apagar o contedo da memria
virtualmente nmero ilimitado de vezes, microcontroladores com
memria Flash so ideal para estudar, experimentar e fabricao em
pequena escala.Pela grande popularidade desta memria, a maioria so
fabricados com microconroladores tecnologiaflash dehoje.Se voc
estiver comprando um microcontrolador, esta definitivamente a
escolha perfeita!
Memria RAM (Random Access Memory) - Memria de Acesso
AleatrioDesligar a fonte de alimentao, o contedo da RAM perdido.Ela
utilizada para armazenar temporariamente os dados e resultados
imediatos criados e utilizados durante o funcionamento do
microcontrolador.Por exemplo, se o programa executa a adio (de
qualquer coisa) voc precisa ter um registro que representa o que
chamado de "soma" na vida cotidiana.Para este fim, num dos registos
da memria RAM chamado de "montante" e usada para armazenar os
resultados da adio.
EEPROM (ROM programvel apagvel eletricamente) - ROM programvel
apagvel electricamenteO contedo da EEPROM pode ser alterado durante
a operao (semelhante RAM), mas memorizado permanentemente aps a
perda de fornecimento de energia (semelhante ROM).Portanto, a
EEPROM frequentemente utilizada para armazenar valores criadas
durante a operao, tm de ser armazenados de forma permanente.Por
exemplo, se voc tiver criado uma chave eletrnica ou um alarme seria
timo para permitir que o usurio crie e digite uma senha para sua
conta.Claro, a nova senha deve ser salvo por desligar a fonte de
alimentao.Nesse caso, uma soluo perfeita uma EEPROM do
microcontrolador incorporado.
INTERRUPOA maioria dos programas usam interrupes regulares
durante a execuo do programa.O microcontrolador finalidade
geralmente reagem a mudanas no seu ambiente.Em outras palavras,
quando algo acontece, o microcontrolador reage de alguma forma ...
Por exemplo, pressionando o boto no controle remoto, registros de
microcontroladores e responde a mudana de comando de canal,
aumentando ou diminuindo o volume etc.Se o microcontrolador passar
a maior parte do seu tempo verificando vrios botes de forma
constante - horas, dias, isso seria impraticvel.Portanto, o
microcontrolador "aprendeu um truque" durante a sua evoluo.Ao invs
de continuar a verificar qualquer pino ou pouco, o microconrolador
deixa o seu "trabalho em espera" para "especialista" que reagir
apenas quando acontece alguma coisa digna de nota.O sinal que
informa o processador central de cerca de um tal evento chamada
interrupo.
UNIDADE DE PROCESSAMENTO CENTRAL (CENTRAL PROCESSADOR UNIT -
CPU)Como o seu nome sugere, este um aparelho que controla todos os
processos dentro do microcontrolador. constituda por vrias unidades
menores, dos quais os mais importantes so: Decodificador de instruo
a parte que decodifica as instrues do programa e ativa outros
circuitos com base nesta.O "Conjunto de Instrues", que diferente
para cada famlia de microcontroladores exprime as capacidades deste
circuito; Unidade lgica aritmtica (unidade lgica aritmtica -
ALU)realiza todas as operaes matemticas e lgicas sobre os dados;e
Acumuladorou ficha de trabalho. um registo SFR intimamente
relacionado com a operao da ULA.Ele usado para armazenar todos os
dados no qual executar alguma operao (adicionar, mover).Ele tambm
armazena os resultados prontos para processamento posterior.Um dos
registos SFR, chamado Registro de Status (PSW), est intimamente
relacionado com a bateria.Ela mostra o "estado" de um nmero
armazenado no acumulador (o nmero maior ou menor do que zero, etc.)
em qualquer dado momento.
BUSO nibus composto por 8, 16 ou mais cabos.Existem dois tipos
de nibus: nibus barramento de endereos e dados.O barramento de
endereos consiste em quantas linhas necessrias para memria
endereo.Ele utilizado para transmitir o endereo de memria para a
CPU.O barramento de dados to largo como os dados neste caso de 8
bits ou linhas de largura.Ele utilizado para ligar todos os
circuitos dentro do microcontrolador.
COMUNICAO EM MASSAA ligao em paralelo entre o microcontrolador e
perifricos, atravs da entrada / sada uma soluo perfeita para
distncias curtas - at vrios metros.No entanto, em outros casos em
que necessrio para estabelecer a comunicao entre dois dispositivos,
em longas distncias, no possvel a utilizao de uma ligao em
paralelo.Em vez disso, a conexo serial utilizada.Hoje, a maioria
dos microcontroladores tm incorporado vrios sistemas diferentes
para comunicao serial, como equipamento standard.Qual destes
sistemas ir ser utilizados num caso especfico depende de muitos
factores, os mais importantes so: Quantos dispositivos do
microcontrolador tem a troca de dados? Qual a velocidade de
partilha de dados obrigatria? O que a distncia entre os
dispositivos? Voc precisa transmitir e receber dados
simultaneamente?
Um dos mais importantes em termos de comunicao serial o
Protocolo de que as coisas devem ser estritamente observados. um
conjunto de regras obrigatrias que se aplicam aos dispositivos de
interpretar corretamente os dados que eles trocam uns com os
outros.Felizmente, microcontroladores cuidar disso automaticamente,
de modo que o trabalho do programador / usurio reduzida a escrita e
leitura de dados.
SERIAL VELOCIDADE DE TRANSMISSOVelocidade de transmisso serial
(taxa de transmisso) o termo utilizado para designar o nmero de
bits transmitidos por segundo [bps].Note-se que este termo se
refere a bits, no bytes!O protocolo tipicamente requer que cada
byte transferido em conjunto com vrios bits de controlo.Isso
significa que um byte num fluxo de dados em srie pode consistir em
11 bits.Por exemplo, se a velocidade de transmisso de srie de 300
bps para um mximo de 37 e um mnimo de 27 bytes podem ser
transmitidos por segundo.Os sistemas mais comumente usados de
comunicao serial so:
I2C (circuito integrado Inter) - INTER-CIRCUITO
INTEGRADOInter-circuito integrado um sistema para o intercmbio de
dados seriais entre microcontroladores e especializada gerao de
circuitos integrados. usado quando a distncia entre eles curto (o
receptor eo transmissor so geralmente na mesma placa de circuito
impresso).A ligao estabelecida por meio de duas linhas - um
utilizado para transmitir dados, enquanto o outro usado para
sincronizao (sinal de relgio).Como mostrado na figura, um
dispositivo sempre o principal (master - mestre), o que torna a
abordar um chip subordinado (escravo - escravo) antes do incio da
comunicao.Assim microcontrolador 112 pode se comunicar com outros
dispositivos.Velocidade de transmisso de srie est geralmente 100 Kb
/ s (modo padro) ou 10 Kb / s (modo de transmisso baixa
velocidade).Recentemente, tem havido sistemas com velocidade de
transmisso de srie 3.4 Mb / s.A distncia entre os dispositivos de
comunicao atravs do barramento I2C limitado a poucos metros.
SPI (Serial Peripheral Interface BUS) - barramento serial
interface de perifricosUm nibus de interface perifrica serial um
sistema de comunicao serial que usa at quatro linhas (normalmente s
so necessrios trs) - para receber os dados, para transmitir dados
para sincronizar e (opcional) para selecionar o dispositivo que ele
se comunica.Esta a ligao duplex total, o que significa que os dados
so enviados e recebidos simultaneamente.O dbito mximo de transmisso
mais elevada do que no sistema de ligao I2C.
UART (Universal Asynchronous Receiver / Transmitter) - Universal
Asynchronous Receiver-TransmitterEste tipo de conexo assncrona, o
que significa que uma linha especial para transmitir o sinal de
relgio no usado.Em algumas aplicaes este recurso crucial (por
exemplo, enviar dados remotamente por RF ou luz infravermelha).Uma
vez que apenas uma linha usado para comunicao, tanto o receptor
como o transmissor receber e enviar dados a mesma velocidade que
foi pr-selecionado para manter a sincronizao necessria.Este um modo
simples para transmitir dados, pois representa basicamente uma
converso de dados de 8 bits a partir de paralelo para srie.A taxa
de transmisso no alta, at 1 Mbit / s.
OSC
Uniformes impulsos gerados pelo oscilador para permitir o
funcionamento normal e sincronizada de todos os circuitos do
microcontrolador.O oscilador tipicamente configurada de modo que
utilize um ressoador de cristal de quartzo ou de cermica para a
estabilizao de frequncia.Alm disso, ele pode funcionar como um
circuito autnomo (tal como RC do oscilador). importante dizer que
as instrues do programa no so executadas taxa imposta pelo mesmo
oscilador, mas vrias vezes mais lento.Isso porque cada instruo
executada em vrios ciclos do oscilador.Em alguns microcontroladores
o mesmo nmero de ciclos for preciso para executar todas as
instrues, enquanto outros no o tempo de funcionamento o mesmo para
todas as instrues.Portanto, se o sistema utiliza a cristal de
quartzo com uma frequncia de 20 MHz, o tempo de execuo de uma
instruo de programa de 50 ns, mas a 200, 400 ou 800 nS, dependendo
do tipo de microcontrolador.
CIRCUITO DE ALIMENTAODevemos mencionar duas coisas merece ateno
em relao ao microcontrolador fonte de alimentao do circuito: Brown
para fora uma condio potencialmente perigosa que ocorre quando o
microcontrolador ou desligar se a voltagem da fonte de alimentao
para fora das margens devido ao rudo eltrico.Desde que o
microcontrolador tem vrios circuitos que operam em diferentes nveis
de tenso, esse estado pode causar um comportamento
descontrolado.Para evitar isso, o microcontrolador normalmente tem
um construdo para o circuito de reset marrom para fora.O circuito
repe o microcontrolador imediatamente se a tenso de alimentao cair
abaixo do limite. O pino de reset(reiniciar), muitas vezes rotulado
MCLR (Master Clear Reset), serve para reiniciar o microcontrolador
externo atravs da aplicao de um (1) Software zero (0) ou um,
dependendo do tipo de microcontrolador.Se o circuito marrom para
fora no incorporada, um circuito externo simples para redefinio de
marrom para fora pode conectar o pino MCLR. Temporizadores /
ContadoresO oscilador de cristal de quartzo microcontrolador usado
para a operao.Embora no seja a soluo mais simples, h muitas razes
para us-lo.A frequncia do oscilador definido com preciso e muito
estvel, por isso sempre gera pulsos da mesma largura, o que os
torna perfeitos para temporizao.Esses osciladores so usados em
relgios de quartzo.Se voc precisa para medir o tempo decorrido
entre dois eventos, basta contar os impulsos gerados pelo
oscilador.Isso exatamente o que faz o timer.
A maioria dos programas usam estes temporizadores eletrnicos em
miniatura.Registos SFR so geralmente 8 ou 16 bits, cujo contedo
automaticamente aumentado com cada impulso.Uma vez que o registo
est cheio, gerada uma interrupo!Se o temporizador interno utiliza o
oscilador de quartzo para o seu funcionamento, possvel medir o
tempo entre os dois eventos (o valor do registo, no momento de
iniciar a medio T1, quando a medio terminado T2, o tempo decorrido
Como resultado da subtraco T2 - T1).Se os registros so aumentadas
com os impulsos que vem da fonte externa, tal temporizador torna-se
um contador.Esta uma simples explicao do seu funcionamento. um
pouco mais complicado na prtica.COMO FAZER os temporizadores?Na
prtica, os impulsos gerados pelo circuito oscilador de quartzo so
tomadas uma vez por ciclo da mquina directamente ou divisor, o
aumento do nmero no registador de cronometro.Se uma instruo (um
ciclo de mquina) de quatro perodos do oscilador de quartzo, este
nmero ser alterada de um milho de vezes por segundo (cada
microssegundos) para incorporar quartzo oscila a uma frequncia de 4
MHz.
fcil para medir intervalos de tempo curtos, tal como descrito
acima (at 256 microssegundos, porque o maior nmero que pode conter
um registo).Esta desvantagem bvia pode ser superada de vrias
maneiras: usando o oscilador mais lenta, atravs de registos com
mais bits, o divisor ou interrupo.As duas primeiras solues tm
alguns pontos fracos, por isso recomendamos utilizar o divisor e /
ou interrupo.
Prescaler IN Use um timer OPERAOUm divisor um dispositivo
eletrnico usado para dividir a freqncia por um fator
predeterminado.Isso significa que voc precisa para realizar uma,
duas, quatro ou mais pulsos na sua entrada para gerar um pulso na
sada.A maioria dos microcontroladores tm construdo um ou mais
pr-scalers e sua taxa de diviso pode ser alterada no mbito do
programa.O divisor utilizado quando necessrio medir a perodos mais
longos de tempo.Se o temporizador de vigilncia e partes
temporizador de um divisor, no pode ser utilizado por ambos
simultaneamente.
INTERRUPO NO usar um timer OPERAOSe o registro temporizador 8 de
bits, o maior nmero que pode ser escrito nele 255 (em registros de
16 bits o nmero 65535).Se esse nmero for excedido, o cronmetro
reinicia automaticamente e contando comea novamente do zero.Isso
chamado de estouro ou estouro(overflow).Permitido pelo programa, o
excesso pode causar uma interrupo, o que abre possibilidades
completamente novas.Por exemplo, o estado de fichas usado para
contar segundos, minutos ou dias, pode ser implementada de uma
rotina de interrupo.Todo o processo (excepto a rotina de interrupo)
realizada internamente, permitindo que os circuitos principais do
microcontrolador est a funcionar correctamente.
A figura acima descreve a utilizao de uma interrupo na operao do
temporizador.Para atribuir um divisor para a durao do temporizador
atrasos arbitrrios ocorrer com o mnimo de interferncia na execuo do
programa principal.
CONTADORESSe um temporizador fornecido pela entrada de impulsos,
sendo o pino de entrada no microcontrolador, um contador ocorre.Ele
, obviamente, o mesmo circuito eletrnico.A nica diferena que os
impulsos de contagem so introduzidas pelo pino de entrada e a sua
durao (largura) no est definido.Por isso, eles no podem ser
utilizados para a medio de tempo, mas utilizado para outros fins,
por exemplo: contar os produtos na linha de produo, o nmero de
rotaes de um veio do motor, os passageiros etc.(Dependendo do
sensor utilizado.
Watchdog timer (watchdog)O co de guarda um timer ligado a um
oscilador RC totalmente independente dentro do microcontrolador.Se
o co de guarda est habilitado, cada vez que voc contar para o valor
mximo no estouro de log ocorre um sinal de reset do
microcontrolador e a execuo do programa comear na primeira instruo
gerada.O objetivo impedir que isso acontea usando o comando
apropriado.A ideia baseia-se no facto de cada programa executado em
vrias voltas, mais longo ou mais curto.Se as instrues redefinir o
watchdog timer so colocados em locais estratgicos do programa,
outros comandos que so executados regularmente, funcionamento do co
de guarda no afetar a execuo do programa.Se por qualquer motivo
(rudo eltrico freqente na indstria) contador de programa "presos"
dentro de um loop infinito, o valor do Registro continuaro a
aumentar pelo watchdog timer atingir o valor mximo, o registro vai
transbordar e,Aleluiaocorre repartio!
A/D
Os sinais do mundo real so muito diferentes daqueles que
"entende" o microcontrolador (zeros e uns), ento eles devem ser
convertidos para que o microcontrolador possa entender.Um conversor
analgico-digital um circuito eletrnico destinado a converter os
sinais contnuos em nmeros digitais discretos.Em outras palavras,
este circuito converte um nmero real em um nmero binrio e envia
para a CPU para processamento.Este mdulo utilizado para medir a
voltagem no pino de entrada.O resultado desta medio um nmero (valor
digital) utilizada e processada mais tarde no programa.
Arquitetura internaTodos os microcontroladores atuais usam um
dos dois modelos bsicos de arquitetura
chamadoHarvardevon-Neumann.Eles so duas formas diferentes de troca
de dados entre a CPU ea memria.Arquitetura Von Neumann-
Microcontroladores que usam arquitetura Neumann von- ter um nico
bloco de memria e um barramento de dados de 8 bits.Como todos os
dados so trocados atravs destes oito linhas, este canal est
sobrecarregado, e comunicao em si muito lento e ineficiente.A CPU
pode ler um conjunto de dados de instruo ou de leitura / escrita de
/ para a memria.Os dois processos no podem ocorrer simultaneamente
uma vez que as instrues e dados de usar o mesmo barramento.Por
exemplo, se uma linha de programa diz que o registo de RAM chamado
de "SUM" deve ser aumentado em um (instruo:INCFSUMA), o
microcontrolador ir:1. Leia parte da instruo de programa que
especifica o que deve fazer (neste caso a instruo para aumentar
"INCF")2. Leia a mesma instruo que especifica em que os dados devem
ser executadas (neste caso o contedo do registo "SUM")3. Depois de
ser aumentado, o contedo deste registo deve ser escrito no registro
que foi lido (registro de endereos "SUM")O mesmo bus de dados
utilizado para todas estas operaes intermdias.Arquitetura
Harvard
Microcontroladores usando esta arquitetura tem dois barramentos
de dados diferentes.Uma de 8 bits de largura e se conecta a CPU com
memria RAM.O outro consiste em vrias linhas (12, 14 ou 16) e ligado
CPU e ROM.Portanto, a CPU pode ler as instrues e executar acesso
memria de dados ao mesmo tempo.Uma vez que todos os registos da RAM
so de 8 bits de largura, todos os dados dentro do microcontrolador
so trocados a mesma largura.Durante o processo de programa de
escrita, apenas os dados de 8 bits so tratados.Em outras palavras,
tudo o que voc pode mudar no programa e que pode afetar de 8
bits.Todos os programas escritos para estes microcontroladores sero
armazenados na ROM interna do microcontrolador depois de ser
compilado para cdigo de mquina.No entanto, essas localizaes ROM no
tm 8, mas 12, 14 ou 16 bits.Adicionais 4, 6 ou 8 bits representam
uma declarao que especifica o CPU o que fazer com os dados de 8
bits.As vantagens deste projeto so: Todos os dados do programa so
um byte (8 bits) de largura.Como um barramento de dados utilizado
para a leitura de um programa tem mais linhas (12, 14 ou 16), ambos
de instrues e os dados podem ser lidos simultaneamente usando estes
bits adicionais.Portanto, todas as instrues so executadas num nico
ciclo, excepto as instrues de salto so dois ciclos. O fato de um
programa (ROM) e dados temporria (RAM) so separadas, permitindo que
o processador para executar instrues dois
simultaneamente.Simplificando, durante a leitura ou escrita RAM
(que marca o fim de uma instruo), a prxima instruo lida por outro
nibus realizada. Em microcontroladores que usam a arquitetura
devon-Neumann, voc nunca sabe o quanto de memria um negcio
programa.Geralmente, a maioria das instrues do programa de ocupar
duas posies de memria (um diz o que deve ser feito, enquanto o
outro contm infor maes sobre o qual os dados devem ser
realizados).No entanto, esta no uma frmula rgida comum, mas o
caso.Em microcontroladores que usam uma arquitetura de Harvard,
palavra programa de nibus mais largo do que um byte, permitindo que
cada palavra programa composto de uma instruo e dados.Em outras
palavras, uma localizao de memria - um programa de instrues.
INSTRUES DE JOGO
O nome coletivo para todas as instrues que podem entender o
microcontrolador chamado conjunto de instrues.Quando um programa
conjunto, na verdade instrues especificadas na ordem em que devem
ser executados est escrito.A principal restrio o nmero de comandos
disponveis.Fabricantes aceitar ou abordagens a seguir
descritas:
RISC (Reduced Instruction Set Computer) - Computador com Set de
instrues reduzidoNeste caso, a ideia que o microcontrolador executa
apenas reconhece e operaes bsicas (somar, subtrair, cpia, etc ...)
as operaes mais complicadas so realizadas combinando-as (por
exemplo, a multiplicao realizada atravs da realizao da adio
sucessiva). como tentar explicar a algum algumas palavras como
chegar ao aeroporto em uma nova cidade.No entanto, nem tudo to
escuro.Alm disso, o microcontrolador muito rpido por isso no
possvel ver todos os aritmticos "stunts" que executa.O usurio pode
ver apenas o resultado final de todas as transaces.Finalmente, no
to difcil de explicar onde o aeroporto se as palavras certas so
utilizadas, tais como: direita, esquerda, etc. quilmetros
CISC (Complex Instruction Set Computer) - Computadores com um
conjunto de instrues complexasCISC se ope a RISC!Microcontroladores
destinados a reconhecer mais de 200 instrues diferentes realmente
pode fazer muitas coisas em alta velocidade.No entanto, deve-se
saber como utilizar todas as possibilidades oferecidas por uma
lngua to rica, que nem sempre to fcil ...
COMO ESCOLHER UM microcontrolador?Bem, se voc um novato, e foi
decidido a trabalhar com microcontroladores.Parabns pela escolha!No
entanto, primeira vista, no fcil escolher o microcontrolador mais
adequado como parece primeira vista.O problema no a pequena gama de
dispositivos para escolher, mas muito pelo contrrio!Antes de comear
a projetar um dispositivo baseado em um microcontrolador, considere
o seguinte: quantas entradas / linhas so necessrias para o
funcionamento, o dispositivo iria realizar outras operaes de ligar
/ desligar um rel, voc precisa de algum especializada como o mdulo
de comunicao srie A / D conversor etc.Quando voc tem uma imagem
clara do que voc quer, o intervalo de seleco muito reduzida, e ele
est pensando sobre o preo.Ser que voc tem vrios dispositivos?Vrias
centenas?Um milho?Enfim, agora mais clara.Se voc est pensando em
todas essas coisas em primeiro lugar, tudo vai parecer um pouco
confuso.Por essa razo, ir passo a passo.Em primeiro lugar, escolher
o fabricante, isto , a famlia de microcontroladores ofertas.Ento,
aprender a trabalhar com um modelo especfico.Basta aprender o que
voc precisa para aprender, no de muitos detalhes.Resolver o
problema especfico e uma coisa surpreendente vai acontecer - ser
capaz de lidar com qualquer modelo do mesmo fabricante ...Mais ou
menos, tudo parece andar de bicicleta: depois de vrias quedas
inevitveis no incio, ser capaz de equilibrar e montar qualquer
bicicleta.Claro, ele nunca se esquece tanto ciclismo, e as
habilidades de programao!
1,4 Microcontroladores PICO microcontrolador PIC desenvolvido
pelaMicrochip Technology provavelmente a melhor opo se voc um
novato.H vrias razes que isso verdade ...O verdadeiro nome desta
microcontrolador PIC (Peripheral Controller Interface), conhecido
como o PIC.Seu primeiro predecessor foi criada em 1975 pela
empresaGeneral Instruments.Este chip chamado PIC1650 foi concebido
para fins completamente diferentes.Dez anos mais tarde, a adio de
uma EEPROM, este tornou-se um circuito microcontrolador PIC
real.Alguns anos atrs, a empresaMicrochip Technologyfabricado a
amostra 5000000000.Se voc estiver interessado em aprender mais
sobre isso, continue a ler.Se voc estiver interessado em aprender
mais sobre isso, basta manter a leitura.A idia principal deste
livro fornecer as informaes necessrias para que o usurio seja capaz
de usar microcontroladores em prtica depois de l-lo.Para evitar
explicaes pesados e histrias interminveis sobre as caractersticas
teis de diferentes microcontroladores, este livro descreve o
funcionamento de um determinado modelo que pertence "classe mdia
alta". PIC16F887 - poderoso o suficiente para ser digno de ateno e
simples o suficiente para ser usado por qualquer pessoa.Assim, os
captulos seguintes descrevem esse microcontrolador em detalhes e
tambm se referem a toda a famlia PIC.
FamliaROM [Kb]RAM [bytes]PinesFreqncia de clock.[MHz]Entradas A
/ DResoluo do conversor A / DComparadores16/08 bit
temporizadoresComunicao SerialSadas PWMOutros
Arquitetura do low-end 8-bit palavra de instruo 12-bit
PIC10FXXX0.375-,7516-246-84-80-280-11 x 8---
PIC12Fxxx0,75-1,525 - 3884-80-380-11 x 8--EEPROM
PIC16Fxxx0,75-325-13414-44200-380-21 x 8--EEPROM
PIC16HVXXX1,52518-2020---1 x 8--VDD = 15V
Arquitetura de mdio porte de 8 bits instruo palavra de 14
bits
PIC12Fxxx1,75-3,564-1288200-41011-2 x 16 8 1 x-0-1EEPROM
PIC12HVXXX1.75648200-41011-2 x 16 8 1 x-0-1-
PIC16Fxxx1,75-1464-36814-64200-138 ou 100-21-2 x 16 8 1 xI2C SPI
USART0-3-
PIC16HVXXX1,75-3,564-12814-20200-121022 x 8 x 1 16I2C SPI
USART--
Arquitetura de high-end 8-bit palavra de instruo de 16 bits
PIC18FXXX4-128256 - 393618-8032-484-1610 ou 120-30-2 x 2-03
agosto x 16USB2.0 CAN2.0 I2C SPI USART0-5-
PIC18FXXJXX8-1281024 - 393628-10040 - 4810-161020-2 x 2-03
agosto x 16USB2.0 Ethernet I2C SPI USART2-5-
PIC18FXXKXX8-64768 - 393628 - 446410-131021 x 8 3 x 16I2C SPI
USART2-
Todos os microcontroladores PIC usam uma arquitetura de Harvard,
o que significa que a sua memria de programa est ligado CPU por
mais de 8 linhas.H microcontroladores de 12, 14 e 16 bits,
dependendo da largura do barramento.A tabela acima mostra as
principais caractersticas destas trs categorias.Como voc pode ver
no grfico na pgina anterior, exceto "16 bits monstros" PIC e PIC
24FXXX 24HXXX - todos os microcontroladores so arquitetura Harvard
de 8 bits e pertencer a um dos trs grupos.Portanto, dependendo do
tamanho da palavra programa so primeira, segunda e terceira
categoria de microcontroladores, ou seja, microcontroladores 12, 14
ou 16 bits.Desde que tm similares de ncleo 8 bits, todos usam o
mesmo conjunto de instrues e "esqueleto" bsico de hardware ligado a
unidades perifricas ou menos.Microcontroladores PIC com palavras de
14 bits programa parece ser a melhor escolha para iniciantes.Aqui
est o porqu ...
INSTRUES DE JOGOO conjunto de instrues para o 16F8XX
microcontrolador inclui 35 instrues no total.A razo para um nmero
to pequeno de instrues reside no arquietectura RISC.Isto significa
que as instrues so bem optimizada do ponto de vista da velocidade
de funcionamento, da simplicidade da arquitectura e do cdigo de
compacidade.A desvantagem da arquitetura RISC esperado programador
que aborda estas instrues.Claro, isso s relevante se a linguagem de
programao assembler usado.Este livro refere-se programao em alto
nvel linguagem C, o que significa que a maioria do trabalho foi
feito por outra pessoa.Assim, s voc tem que usar instrues
relativamente simples.
TEMPO DE EXECUO DE INSTRUESTodas as instrues para executar em um
ciclo.As nicas excees podem ser instrues de desvio condicional ou
instrues que alteram o contedo do contador de programa.Em ambos os
casos, dois ciclos de relgio so requeridos para a execuo da
instruo, enquanto o segundo ciclo executado como um NOP (No
Operation).Instrues de ciclo composto por quatro ciclos de clock.Se
um oscilador de 4 MHz usado, o tempo nominal para a execuo da
instruo 1S.Quanto a instrues de desvio, o tempo de execuo da
instruo 2S.Conjunto de instrues de microcontroladores PIC 14
bits:INSTRUODESCRIOOPERAOBANDEIRACLK*
Instrues para a transmisso de dados
K MOVLWMova literal para Wk -> w1
MOVWF fMover o contedo de W afW -> f1
MOVF f, dMover o contedo de modaf -> dZ11, 2
CLRWExclua o contedo da W0 -> WZ1
CLRF fExclua o contedo da f0 -> fZ12
Swapf f, dMordidelas de swap em ff (7: 4), (3: 0) -> f (3:
0), (7: 4)11, 2
Logic - instrues aritmticas
K addlwAdicionar literal para WW + K -> WC, CC, Z1
ADDWF f, dAdicionar o contedo de W fW + f -> dC, CC, Z11,
2
K SUBLWSubtrair W a partir literalkW -> WC, CC, Z1
SUBWF f, dSubtrair W de ffW -> dC, CC, Z11, 2
K ANDLWE W com literalW e K -> WZ1
ANDWF f, dE W com fW e F -> dZ11, 2
K IORLWInclusive OR W com literalW ou k -> WZ1
IORWF f, dInclusive OR W com fW ou f -> dZ11, 2
XORWF f, dOU exclusivo W com literalXOR k W -> WZ11, 2
K XORLWOU exclusivo W com fW XOR f -> dZ1
INCF f, dAdicionar uma aff + 1 -> fZ11, 2
DECF f, dSubtrair 1 aff-1 -> fZ11, 2
RLF f, dF Rodar para a esquerda atravs de carryC11, 2
RRF f, dF Gire para a direita atravs carryC11, 2
COMF f, dComplemento ff -> dZ11, 2
Instrues orientadas por bit
BCF f, bDefina como 0 bit de registro b f0 -> f (b)11, 2
BSF f, bBit definido como 1 log b f1 -> f (b)11, 2
Instrues de controle de programa
BTFSC f, bSalta se pouco b f log 0Ir se f (b) = 01 (2)3
BTFSS f, bSalta se pouco b Reg.f 1Ir se f (b) = 11 (2)3
DECFSZ f, dF diminuio a 1. Salta se o resultado for 0f-1 -> D
saltar se Z = 11 (2)1, 2, 3
INCFSZ f, dF aumento para 1. Salta se o resultado 1f + 1 -> D
saltar se Z = 01 (2)1, 2, 3
GOTO kIr para um endereok -> PC2
CHAMADA kChamar um sub-rotinaPC -> TOS, k -> PC2
RETORNORetornando de uma sub-rotinaTOS -> PC2
K RETLWRetorno com literal em Wk -> W, TOS -> PC2
RETFIEA interupcin retornoTOS -> PC, 1 -> GIE2
Outras instrues
NOPNenhuma operaoTOS -> PC, 1 -> GIE1
CLRWDTReinicie o watchdog timer0 -> WDT, 1 -> TO, 1 ->
PDTO, PD1
SLEEPColoque em repouso0 -> WDT, 1 -> TO, 0 -> PDTO,
PD1
* 1 Se um registro de E / S for alterada, o valor utilizado ser
o valor apresentado nos pinos do microcontrolador.* 2 Se a instruo
executada em TMR registrar e se d = 1, o prescaler sero apagados.*
3 Se a instruo executada em TMR registo e se d = 1, o prescaler
sero apagados.
Arquitetura dos microcontroladores PIC de 8 bits.Quais destes
pertencem aos mdulos do microcontrolador vai depender do tipo de
microcontrolador.
Captulo 2 - A programao de microcontroladoresVoc certamente sabe
que no suficiente apenas para conectar o microcontrolador para
ligar os outros componentes e uma fonte de energia para faz-lo
funcionar, certo?Temos de fazer mais.Voc precisa programar o
microcontrolador.Se voc acha que complicado, voc est errado.Todo o
procedimento muito simples.Basta ler o texto para entender o que
queremos dizer. 2.1 linguagens de programao CARACTERSTICAS
PRINCIPAIS 2.2 MikroC 2.3 TIPOS DE DADOS MikroC 2.4 Variveis e
constantes 2,5 OPERADORES 2.6 As estruturas de controle TIPOS DE
DADOS AVANADA 2.7 2.8 FUNES 2.9 RECURSOS de pr-processamento 2.10
mikroC PRO para PIC 2.11 PROGRAMAO DE USAR O PIC mikroC PRO para
PIC 2.1 linguagens de programao
O microcontrolador executa o programa carregado na memria
flash.Este chamado o cdigo executvel compreende uma srie de uns e
zeros, aparentemente sem sentido.Dependendo da arquitetura do
microcontrolador, as palavras de cdigo binrio constitudo por 12, 14
ou 16 bits de largura.Cada palavra interpretado pelo processador
como uma instruo para ser executada durante o funcionamento do
microcontrolador.Todas as instrues que o microcontrolador pode
reconhecer e executar so chamados coletivamente conjunto de
instrues.Como mais fcil de trabalhar com o sistema de numerao
hexadecimal, o cdigo executvel frequentemente representado como uma
srie de nmeros hexadecimais chamado cdigo
hexadecimal.Microcontroladores PIC, nas palavras do programa de 14
bits de largura, o conjunto de instrues tem 35 instrues
diferentes.Assembly Language
Como o processo de escrever cdigo executvel foi
consideravelmente rdua, por isso, foi criada a primeira linguagem
de programao chamada Assembler (ASM).Aps a sintaxe bsica de
assembler, que era mais fcil escrever e entender o cdigo.As
instrues de montagem consistem de abreviaturas significativas e
cada instruo corresponde a uma localizao da memria.Um programa
chamado compila assembler (traduz) instrues em linguagem de
montagem em cdigo de mquina (cdigo binrio).Programa Heste compila
instruo por instruo sem otimizao.Como pode controlar em detalhe
todos os processos postos em prtica dentro do chip, esta linguagem
de programao ainda popular.
Vantagens de linguagens de programao de alto nvelApesar de todos
os lados bons, linguagem assembly tem algumas desvantagens: Mesmo
uma transao no programa escrito em conjunto consiste em vrias
direes, tornando-se muito longas e pesadas. Cada tipo de
microcontrolador tem seu prprio conjunto de instrues que um
programador precisa saber para escrever um programa Um programador
tem de saber o hardware do microcontrolador para escrever um
programaPrograma escrito em C (O mesmo programa compilado para
cdigo assembly):
Linguagens de programao de alto nvel (Basic, Pascal, C, etc.)
foram criados com a finalidade de superar as desvantagens da
montadora.Em linguagens de programao vrias instrues de montagem
seniores so substitudas por uma sentena.O programador no tem que
saber o conjunto de instrues ou recursos de hardware do
microcontrolador utilizado. impossvel saber exatamente como cada
sentena executada de qualquer maneira, no importa.Embora voc sempre
pode inserir no programa escrito em seqncia de montagem.Se voc j
escreveu um programa para uma linguagem de montagem
microcontrolador PIC, voc provavelmente sabe que a arquitetura RISC
carece de algumas instrues.Por exemplo, no existe nenhuma instruo
apropriada para a multiplicao de dois nmeros.Claro que, para cada
problema h uma soluo e este no exceo, graas aritmtica que permite
decompor operaes complexas em muitas operaes simples.Neste caso, a
multiplicao pode ser substitudo facilmente por adio sucessiva (axb
= A + A + A + ... + a).Estamos no incio de uma longa histria ... No
se preocupe, quando usando uma dessas linguagens de programao, tais
como alto nvel C, porque o compilador automaticamente encontrar a
soluo para este problema e similares.B para multiplicar nmeros,
basta digitar a * b.
Linguagem CA linguagem C tem todas as vantagens de uma linguagem
de programao de alto nvel (descrito acima) e permite-lhe executar
algumas operaes em ambos os bytes e bits (em operaes lgicas, shift
etc).Caractersticas C pode ser muito til ao programar
microcontroladores.Alm disso, padronizado C (padro ANSI), muito
porttil, de modo que o mesmo cdigo pode ser usado muitas vezes em
diferentes projectos.Tornando-o acessvel a qualquer pessoa que
conhece esta lngua, independentemente da utilizao prevista para o
microcontrolador.C uma linguagem compilada, o que significa que os
arquivos de origem que contm o cdigo C traduzido em linguagem de
mquina pelo compilador.Todas estas caractersticas fizeram o C uma
das linguagens de programao mais populares.
A figura acima um exemplo geral do que acontece quando compilar
programa de uma linguagem de programao de alto nvel
baixo.CARACTERSTICAS PRINCIPAIS 2.2 MikroCAqui apresentamos os
principais elementos da linguagem mikroC desenvolvido pela
mikroElektronika.Esta linguagem muito semelhante ao padro C, no
entanto, em certos aspectos, que difere do padro ANSI em algumas
caractersticas.Algumas destas diferenas esto relacionadas com
melhorias destinadas a facilitar a programao de microcontroladores
PIC, enquanto outros so o resultado da limitao da arquitectura de
hardware do PIC.Aqui ns apresentamos caractersticas especficas de
linguagem mikroC microcontroladores PIC programao.O termo C usada
para referir-se as caractersticas comuns das linguagens C e
MikroC.
Este livro descreve uma aplicao muito especfica da linguagem de
programao C utilizada no mikroC PRO para PIC.Neste caso, o
compilador for utilizado para microcontroladores PIC programao.
FASES DE COMPILAOO processo de compilao envolve vrias etapas e
executado automaticamente pelo compilador.Por uma compreenso bsica
de como ele pode ser til para entender o conceito de linguagem
mikroC.O arquivo de origem contm o cdigo que voc escreve em mikroC
para programar o microcontrolador.O pr-processador pelo compilador
utilizada automaticamente quando o processo de compilao.O
compilador procura directivas de pr-processador (que sempre comeam
com '#') no cdigo e modificar o cdigo-fonte em conformidade com as
directivas.Nesta fase, eles so conduzidos incluso arquivo, macro
definio e constantes, etc., o que facilita o processo.Mais tarde,
vamos descrever estas polticas em detalhe.O analisador(parser)
remove todo o cdigo informaes inteis (comentrios, espaos).Em
seguida, ocompiladortraduz o cdigo em um arquivo binrio chamado
arquivo .mcl.Oligante(linker) recupera todas as informaes
necessrias para executar os arquivos externos e os agrupa em um
nico arquivo (.DBG).Alm disso, um projeto pode conter mais de um
arquivo de origem e o programador pode usar funes pr-definidas e
agrupadas em arquivos chamados bibliotecas.Finalmente, ogerador
hexproduz um arquivo hex.Este o ficheiro a ser carregado para o
microcontrolador.
Todo o processo de compilao que inclui todos os passos acima
chamado de"construo".
PROGRAMA DE ESTRUTURAA principal idia de escrever um programa em
C para "quebrar" um problema maior em vrios pedaos menores.Suponha
que voc precise escrever um programa para o microcontrolador para
medir a temperatura e exibir os resultados em um LCD.O processo de
medio realizado por um sensor de temperatura que converte a tenso.O
microcontrolador utiliza o conversor A / D para converter a tenso
(valor analgico) de um nmero (valor digital), que ento enviado para
o LCD por vrios condutores.Consequentemente, o programa dividido em
quatro partes, cada uma das quais corresponde a uma ao especfica:1.
Habilitar e configurar o A / D construdos;2. Medir o valor
analgico;3. Calcular temperatura;e4. Enviar os dados no formato
apropriado para o LCD;
Linguagens de programao como de alto nvel C permitir-lhe para
resolver este problema com facilidade para escrever quatro funes a
serem executadas ciclicamente nonstop.A ideia geral a de dividir o
problema em vrios pedaos, cada um dos quais pode ser escrito como
uma nica funo.Todos os programas escritos em mikroC conter pelo
menos uma chamada na funo main () entre chaves {} instrues a serem
executadas.Esta a primeira funo a ser executada no incio da execuo
do programa.As outras funes pode ser chamado na funo principal.Em
outras palavras, podemos dizer que a funo main () obrigatria,
enquanto outros so opcionais.Se voc no tiver escrito um programa em
C, voc provavelmente vai encontrar tudo isso confuso.No se
preocupe, aceit-lo como para agora e mais tarde entender a
sintaxe.
E agora, o seu primeiro programa 'real'!A figura mostra a
estrutura do programa, apontando as partes onde .
Como escrever cdigo em C muito importante.Por exemplo, C difere
maisculas de minsculas, assim que a funo main () no pode escrever
main () ou Main ().Alm disso, observe que duas linhas de cdigo
dentro da funo termina com um ponto e vrgula.Em C todas as sentenas
devem terminar com um ponto e vrgula ';', para que o compilador
pode isolar e traduzi-los em cdigo de mquina.
REVISESOs comentrios so partes do programa usado para esclarecer
as instrues do programa ou fornecer mais informaes.O compilador
ignora os comentrios e no compilado para cdigo
executvel.Simplificando, o compilador capaz de reconhecer
caracteres especiais utilizados para designar onde os comentrios de
incio e fim e no faz nada se o texto entre eles durante a
compilao.Dois tipos de tais personagens.Alguns designar as longas
observaes que abrangem vrias linhas marcadas pela sequncia de
programa especial /*...*/, enquanto outros designar as breves
comentrios que se encaixam em uma nica linha //.Embora os
comentrios no podem afectar a execuo do programa, eles so to
importantes quanto qualquer outra parte do programa.Aqui est o
porqu ... Muitas vezes necessrio para melhorar, modificar,
atualizar, simplificar um programa ... possvel interpretar at mesmo
programas simples sem usar o comentrio.
2.3 TIPOS DE DADOS MikroCNa linguagem C, os dados tem um tipo,
ou seja, cada um dos dados utilizados no programa deve ter um tipo
especificado.Isso permite que o compilador possa saber o tamanho
dos dados (nmero de bytes necessrios na memria) e sua
representao.Existem vrios tipos de dados que podem ser utilizados
na linguagem de programao mikroC dependendo do tamanho dos dados e
a gama de valores.A tabela mostra a gama de valores que os dados
podem ter, quando utilizada na sua forma bsica.TIPO DE
DADOSDESCRIOTAMANHO (NMERO DE BITS)FAIXA DE VALORES
charTexto (caracteres)8de 0-255
intValores inteiros16-32.768-32.767
floatValores de ponto flutuante32de 1,17549435082 10-38a
6,80564774407 1038
doubleValores em dupla preciso de ponto flutuante32de
1,17549435082 10-38a 6,80564774407 1038
* Devido s limitaes impostas pelo hardware do microcontrolador,
impossvel alcanar uma maior preciso dos dados como o tipo
float.Portanto, o tipo double equivale a float no mikroC.Pela adio
de um prefixo (qualificador) para qualquer tipo de dados inteiro ou
natureza, a gama de valores possveis alterado e o nmero de bytes de
memria necessria.Por padro, o tipo de dados int so assinados,
enquanto o caractere no estejam assinados.O qualificador assinado
(a assinatura) que indica que os dados podem ser positivo ou
negativo.Unsigned prefixo indica que os dados podem ser apenas
positivo.Note-se que o prefixo opcional.TIPO DE DADOSTIPO DE DADOS
PREFIXOTAMANHO (NMERO DE BITS)FAIXA DE VALORES
charsigned char8de -128 a 128
intunsigned int160 a 65535
short int8de 0-255
signed short int8de -128 a 127
long int32de 0-4294967295
signed longo int32de-2.147.483.648 a 2.147.483.647
Integer (int)Um inteiro um nmero sem parte fracionada que pode
ser expressa nos seguintes formatos: Hexadecimal (base 16) nmeros
que comeam com 0x (ou 0X).Inteiros hexadecimais constitudos por
algarismos (0-9) e / ou as letras (A, B, C, D, E, F).Por exemplo:
'0x1A'. Decimal (base de 10): o nmero de dgitos o (0-9).O primeiro
dgito no pode ser 0. Neste formato, voc pode digitar o sinal de
nmero ('+' ou '-').Por exemplo: 569, -25, 1500. Octal (base 8): os
nmeros correspondem base de 8 usando apenas 8 dgitos (0-7).Inteiros
Octal comeando com 0. Por exemplo: '056'. Binrio: quando um inteiro
comea com 0b (ou 0B) so representadas como uma srie de bits ('0' e
'1').Por exemplo: 0B100111110x11 // equivalente hexadecimal para
decimal 1711 // formato decimal-152 decimal formato //011 //
equivalente octal do decimal 90b11 // binrio para decimal
equivalente 3Tipo de ponto flutuante (float)O ponto float usado
para nmeros reais com ponto decimal.Tipo de dados do float pode ser
representado de diversas maneiras.Uma coisa sempre flutuador
consign (assinado).0. // = 0.0-1,23 -1,23 // =23.45e6 // = 23,45 *
10 ^ 62e-5 // = 2.0 * 10 ^ -53E + 10 // = 3.0 * 10 ^ 10.09E34 // =
0,09 * 10 ^ 34Tipo personagem (char)O tipo char considerado como um
todo pelo compilador.No entanto, normalmente usado para dados de
caracteres.Um tipo de dados de caracteres colocada entre aspas e um
caractere ASCII codificado.59 // todo'p' // ASCII carter 'p'Uma
seqncia de caracteres chamado string (string).Strings so colocados
entre aspas duplas, por exemplo:"Pressione o boto RA0"2.4 Variveis
e constantesDefiniesUma varivel um objeto nomeado pode conter dados
que podem ser modificados durante a execuo do programa.Em C, as
variveis tm o tipo, o que significa que necessrio especificar o
tipo de dados que atribudo a uma varivel (int, float etc.).As
variveis so armazenados na memria RAM e o espao de memria que ocupa
(em bytes) que depende do seu tipo./ * Duas linhas de programa
consecutivo. Na primeira linha do programaa varivel definido *
/
int a = 1000; // varivel int equivalente a 1000a = 15; // igual
a 15 Uma constante tem as mesmas caractersticas que uma varivel,
exceto que seu valor atribudo no pode ser alterado durante a execuo
do programa.Ao contrrio de variveis, as constantes so armazenados
na memria flash do microcontrolador para salvar o mximo de espao
RAM.O compilador reconhece o nome eo prefixo const.Em mikroC, o
compilador reconhece automaticamente o tipo de uma constante de
dados, por isso no necessrio especificar melhor o tipo./ * Duas
linhas de programa consecutivo * /
const A = 1000 // o valor da constante A definido comoA = 15; //
Error! Voc no pode alterar o valor da constanteCada varivel ou
constante deve ter um identificador que a distingue de outras
variveis e constantes.Referem-se aos exemplos de cima, e A so
identificadores.Regras de nomeaoEm mikroC, identificadores pode ser
to longo como voc quer.No entanto, existem vrias restries: Os
identificadores podem incluir qualquer um dos caracteres alfabticos
AZ (AZ), os dgitos 0-9 eo caractere sublinhado '_'.O compilador
sensvel diferena entre maisculas e minsculas.Os nomes de funes e
variveis, muitas vezes so escritos em letras minsculas, enquanto
nomes de constantes so capitalizados. Identificadores no pode
comear com um dgito. Os identificadores podem no corresponder s
palavras-chave em lngua mikroC, porque so palavras reservadas para
o compilador.O compilador mikroC reconhece 33 palavras-chave:MIKROC
- PALAVRAS-CHAVE
absolutdadosseretornotypedef
asmomissoem linharxtypeid
emexcluirintsfrtypename
carrofazeriocurtoUnio
bocadonicolongoassinadono assinado
boolmaismutveltamanho deuso
pausaenumnamespaceestticovirtual
casoexplcitooperadorstructvazio
capturaexternorginterruptorvoltil
carbonizarfalsopascalmodeloenquanto
classeflutuadorprivadoESTA
cdigoparaprotegidojogar
constamigopblicoverdadeiro
continuarv pararegistrartentar
Exemplos de identificadores vlidos e invlidos:temperatura_V1 //
OKPresso // OKno_corresponder // OKdat2string // OKSUM3 //
OK_vtexto // OK7temp // NO - voc no pode comear com um nmero%
ms_alto // NO - no pode conter caracteres especiais se / / NO - no
pode coincidir com uma palavra-chavej23.07.04 // NO - no podem
conter caracteres especiais (ponto)nome da varivel // NO - no pode
conter em brancoDeclarao da varivelCada varivel deve ser declarada
antes de ser usado no programa.Uma vez que as variveis so
armazenados na memria RAM, necessrio reservar espao para a passagem
(um, dois ou mais bytes).Ao escrever um programa, voc sabe o tipo
de dados que voc deseja usar e que tipo de dados esperados como
resultado de uma operao, enquanto o compilador no sabe.No se esquea
que o programa lida com as variveis com os nomes dados.O compilador
reconhece-los como nmeros na memria RAM sem saber o seu tamanho e
formato.Para melhorar a capacidade de leitura de cdigo, as variveis
so declarados, muitas vezes, no incio das funes: varivel;Voc pode
declarar mais de uma varivel de uma s vez, se eles tm o mesmo tipo.
variable1, variable2, variavel3;Para alm do nome e tipo, as
variveis so atribudos valores iniciais muitas vezes apenas ao lado
de sua declarao.Este no um passo obrigatrio, mas "uma questo de
moralidade".Ele parece com o seguinte:unsigned int peso; // declara
uma varivel chamada pesopeso = 20; // Atribua o valor 20 para a
varivel pesoUm mtodo mais rpido chamado de instruo de inicializao
(atribuio de valores iniciais):unsigned int peso = 20; // peso
declarado e seu valor de 20Se vrias variveis com o mesmo valor
inicial atribudo, o processo pode ser simplificado:unsigned int
weight.1 = weight2 = weigh3 = 20;int valor_inicial =
un_mnimo_de_petrleo = 0; Tenha cuidado para no declarar a mesma
varivel novamente dentro da mesma funo. Voc pode editar o contedo
de uma varivel, atribuindo um novo valor como muitas vezes quiser
Quando voc declarar uma varivel, sempre pensar sobre os valores que
a varivel deve conter durante a execuo do programa.No exemplo
acima, no weight1 ser representado por um nmero decimal com ponto
ou um nmero com um valor negativo.Declarando ConstantesSemelhante s
variveis, as constantes devem ser declaradas antes de serem
utilizados no programa.Em mikroC, no obrigatrio para especificar a
constante de declarar tipo.Alm disso, a constante deve ser
inicializado no momento em que forem declarados.O compilador
reconhece constantes por seu prefixo const usado na instruo.Duas
instrues a seguir so equivalentes:const int MNIMO = -100; //
Declare constante MNIMO const MNIMO = -100; // Declare MNIMO
constanteConstantes podem ser de qualquer tipo, incluindo
cadeias:const T_MAX = 3.260E1; // ponto flutuante constante T_MAX
const I_CLASS = 'A'; // carter constante I_CLASS const Message =
"Pressione o boto esquerdo"; // seqncia de mensagem
constanteConstantes de enumerao so um tipo especial de constantes
inteiras que torna mais compreensvel quando a atribuio de nmeros
ordinais ao programa constante.Por defeito, o valor de 0 para a
primeira constante nas cintas atribudo automaticamente o valor 1
para o segundo, o valor de 2 para o terceiro, etc.enum
{fornecedores gua, leo, CLORO}; // GUA = 0; OIL = 1; CLORO = 2Voc
pode inserir diretamente o valor de uma constante na lista de
enumeraes.O aumento parado por atribuir um valor a um elemento de
matriz, em seguida, ele reinicia a partir do valor atribudo.Veja o
seguinte exemplo:enum {fornecedores gua, leo = 0, cloro}; // GUA =
0; Diesel = 0; CLORO = 1Constantes de enumerao so usados como
segue:int Velocidad_de_ascensorenum {motor_de_ascensor parar,
iniciar NORMAL, MXIMA};Velocidad_de_ascensor = NORMAL; //
Velocidad_de_ascensor = 2Definir novos tipos de dadosA
palavra-chavetypedefpermite criar facilmente novos tipos de
dados.typedef unsigned int positivo; // positivo um sinnimo para o
tipo int sem sinalpositivo a, b; // Variveis tipo positivo b soa =
10; // Varivel igual a 10b = 5; // varivel B equals 5Escopo de
variveis e constantesUma varivel ou constante reconhecida pelo
compilador com base no seu identificador.Um identificador sem
sentido se o compilador pode reconhecer.O escopo de uma varivel ou
constante a gama de programa em que o identificador no tem
sentido.O mbito determinado pelo lugar em que uma varivel ou
constante declarada.Tentando acessar uma varivel ou constante fora
seus resultados de escopo em um erro.Uma varivel ou constante
invisvel fora do seu mbito.Todas as variveis e constantes que
usamos em um programa deve ser declarado no incio do cdigo.As
variveis e constantes pode ser global ou local.Uma varivel global
declarado no cdigo-fonte, fora todas as funes, enquanto uma varivel
local declarada dentro do corpo da funo ou dentro de um aninhada em
um bloco de funo.
A variveis globais que voc pode acess-los a partir de qualquer
parte do cdigo, mesmo funes no interior desde que seja declarado.O
mbito de uma varivel global limitada pelo final do ficheiro de
origem que tem sido declarada.O escopo de variveis locais limitado
pelo bloco entre chaves {} em que so declarados.Por exemplo, se
eles so declarados no incio do corpo da funo (como na
funoprincipal) o seu mbito , do ponto de declarao e final dessa
funo.Referem-se ao exemplo anterior.A variveis locais declaradas
nomain ()no pode acess-los a partir doFuncin_1e vice-versa.Um bloco
composto um grupo de declaraes e afirmaes (que podem ser tambm
blocos) entre chaves.Um bloco pode ser uma funo, uma estrutura de
controlo, etc.Uma varivel declarada dentro de um bloco so
considerados local, isto , "existe" apenas dentro do bloco.No
entanto, as variveis declaradas fora do mbito ainda so
visveis.Embora a constante no pode ser alterado no programa, siga
as mesmas regras como variveis.Isso significa que eles so visveis
dentro do bloco com exceo de constantes globais (declarada fora de
qualquer funo).As constantes so declarados normalmente no Cdigo
fora de qualquer funo (como variveis globais).Classe de
armazenamentoClasses de armazenamento so usados para definir o
escopo e durao variveis, constantes e funes dentro de um
programa.MikroC pode ser usado em diferentes tipos de
armazenamento: auto uma classe de armazenamento padro para as
variveis locais, por isso raramente utilizado.Ele utilizado para
definir uma varivel local tem a hora local.A classe de
armazenamento automtico no pode ser usado com variveis globais.
esttica uma classe de armazenamento padro para variveis
globais.Ele especifica que a varivel visvel dentro do arquivo.Uma
varivel local declarada com o prefixoestticopode acess-los no
arquivo de origem (ou seja, comportam-se como variveis globais).
extern: A palavra-chaveexterno utilizado quando o programa composto
por diferentes ficheiros de origem.Isso permite que voc use uma
varivel, uma constante ou uma funo declarada em outro arquivo.Claro
que, para compilar e vincular esse arquivo corretamente, ele deve
ser includo em seu projeto.Nos exemplos seguintes, o programa
consiste em dois ficheiros:File_1 e File_2.OFile_1usa uma varivel e
uma funo declarada emFile_2.Arquivo 1:extern int cnt; // cnt
varivel visvel no File_1 extern void Ol (); // Funo Ol () pode ser
usado em File_1
void main () { PORTA = cnt ++; // Qualquer alterao na File_1 cnt
ser visvel em File_2 Ola (); // Funo Ol () pode ser chamado a
partir daqui}Arquivo 2:int cnt = 0;void Ola ();
void Ola () { // Alteraes que afetam. // cnt em File_1 so
visveis aqui..}2,5 OPERADORESUm operador um smbolo que denota uma
aritmtica, lgica ou que determinada operao.Simplificando, vrias
operaes aritmticas e lgicas so realizadas por operadores.H mais de
40 operaes disponveis na linguagem C, mas, no mximo, 10-15 deles na
prtica usada.Cada operao realizada em um ou mais operandos que pode
ser varivel ou constante.Alm disso, cada operao caracterizada pela
prioridade de execuo e associamento.Operadores aritmticosOperadores
aritmticos so usados em operaes aritmticas e sempre retornam
resultados numricos.Existem dois tipos de operadores, unrio e
binrio.Ao contrrio de operaes unrias que so executadas em um
operando, operaes binrias so realizadas em dois operandos.Por
outras palavras, dois nmeros so necessrios para executar uma operao
de binrio.Por exemplo: a + b ou a / b.OPERADOROPERAO
+Adio
-Subtrao
*Multiplicao
/Diviso
%Resto da diviso
int a, b, c; // declara trs inteiros a, b, ca = 5; //
Inicializar parab = 4; // Inicializar bc = a + b; // C = 9% 2 C =
C; // c = 1. Esta operao muitas vezes usado para buscar //
paridade. Neste caso, o resultado 1 // o que significa que a
varivel // um nmero imparOperadores de atribuioExistem dois tipos
de alocao na linguagem C: Operadores simples atribuir valores s
variveis utilizando o carter comum '='.Por exemplo: a = 8 Atribuies
compostos so especficas para a linguagem C consistem em dois
caracteres, como mostrado na tabela direita.Eles so usados para
simplificar a sintaxe e permitir uma execuo mais
rpida.OPERADOREXEMPLO
ExpressoEquivalente
+ =a + 8 =a = a + 8
- =um - 8 =a = a - 8
* =a * = 8a = a * 8
/ =um / 8 =A = A / 8
% =a = 8%a = a 8%
int a = 5; // declarar e inicializar a varivel paraa + = 10; //
a = a + 10 = 15Operadores de incremento e decrementoAs operaes de
incremento e decremento 1 so indicados por "++" e "-".Esses
personagens podem preceder ou seguir uma varivel.No primeiro caso
(x ++), a varivel x ser incrementado em uma unidade, antes de ser
utilizada na expresso.Caso contrrio, a varivel vai ser utilizada na
expresso antes de ser aumentado em 1. O mesmo se aplica para a
operao decremento.OPERADOREXEMPLODESCRIO
++Para ++Varivel "a" aumentado em 1
a ++
---bVarivel "a" diminudo por um
B--
int a, b, c;a = b = 5;c = 1 + a ++; // c = 6b = c + a ++ // b =
7 + 6 = 13Operadores relacionaisOs operadores relacionais so usados
em comparaes, a fim de comparar dois valores.Em mikroC, se uma
expresso for avaliada como falsa (false), o operador retorna 0,
enquanto que se a orao for avaliada como verdadeira (true) retorna
1. Isto usado em expresses como "se a expresso avaliada como
verdadeira ento ... 'OPERADORDESCRIOEXEMPLOCONDIO DA VERDADE
>maior do queb>seb maior do queum
> =maior ou iguala> = 5Seumafor maior do que ou igual
a5
> 2; // Envie os 2 bits mais significativos RC7, RC6 }
enquanto (1); // Permanecer no circuito}Registo ADCON1
ADFM - A / D resultado Formato Select bit(formato pouco
resultado de seleo do A / D) 1 - resultado da converso justificado
direita.Os seis bits mais significativos do registo ADRESH no so
utilizados. 0 - resultado da converso justificado esquerda.Os seis
bits menos significativos do registo ADRESL no so utilizados.VCFG1
- Tenso de bit de referncia(ajuste de tenso de referncia bits)
selecciona a fonte de tenso de referncia mais baixo do que
necessrio para a operao do conversor A / D. 1 - baixa tenso de
referncia aplicada ao pino Vref- 0 - tenso de alimentao de energia
Vss usado como uma fonte de baixa tenso de referncia.VCFG0 - Tenso
pouco Referncia(ajuste de tenso de referncia bit) seleciona pode
ser necessria a fonte de alta tenso corridas de referncia para a A
/ D. 1 - alta tenso de referncia aplicada ao pino Vref +. 0 - tenso
de alimentao de energia Vdd usado como uma fonte de alta voltagem
de referncia.Para medir a tenso em um pino de entrada pelo A / D,
voc deve fazer o seguinte:Passo 1- configurao da porta: Escrever um
lgico um (1) a um bit do registo de TRIS, resultando na configurao
do pino apropriado para uma entrada. Escrevendo uma lgica 1 (um) a
um bit do registo ANSEL, resultando na configurao do pino
apropriado para uma entrada analgica.Passo 2- Configurao do
conversor A / D: Tenso de referncia definido no registo ADCON1.
Selecione um sinal de relgio do A / D no registo ADCON0. Escolha um
dos canais de entrada do Registro CH0-CH13 ADCON0. Selecione o
formato de dados atravs da ADFM ADCON1 registro. Ativar o A / D
para colocar um pouco ADON do registo ADCON0.Passo 3- Definir a
interrupo (opcional): Redefinir o bit ADIF. Coloque um a ADIE, PEIE
e bits GIE.Passo 4- decorrido o tempo de aquisio Timeout
(aproximadamente 20US).Passo 5- Comece colocando uma converso a GO
/ DONE pouco da admi- ADCON0 Reg.Passo 6- Aguarde at que a converso
A / D est completa. Voc precisa verificar o ciclo do programa se o
GO / DONE bit zero ou esperar uma interrupo (deve ser previamente
habilitado).Passo 7- Ler os resultados de A / D: ADRESH e ADRESL
ler os registros.Comparador AnalgicoAlm do A / D, um outro mdulo,
que at recentemente tem sido incorpodo apenas em circuitos
integrados pertencentes ao chamado "componente analgico".Devido ao
facto de que no h quase nenhum dispositivo automtico complexo que
em algumas formas destes circuitos no usar dois comparadores de
alta qualidade, juntamente com os componentes adicionais so
integrados no microcontrolador e ligado aos seus pinos.Como uma
obra de comparao?Basicamente, o comparador analgico um amplificador
que compara a magnitude das tenses nas duas entradas.Ele tem duas
entradas e uma sada.Dependendo da tenso de entrada for mais elevada
(valor analgico), um lgico zero (0) ou um lgico um (1) (valores
digitais) ser emitido.
Quando a tenso analgica Vin - maior do que a tenso analgica +
Vin, a sada do comparador um baixo nvel digital. Quando a tenso
analgica + Vin maior do que a tenso Vin analgico, a sada do
comparador um elevado nvel digital.O microcontrolador PIC16F887 tem
dois desses comparadores de tenso cujas entradas esto ligadas aos
pinos I / S RA0-RA3, enquanto as sadas esto ligados ao pino RA4 e
RA5.H tambm uma fonte de tenso de referncia interna no prprio chip,
que discutiremos mais tarde.Estes dois circuitos so controlados
pelos bits armazenados nos seguintes registos: CM1CON0 est no
controle do comparador C1; CM2CON0 est no controle do comparador
C2; CM2CON1 est no controle do comparador C2;Tenso interna
REFERNCIA SOURCEUma das duas voltagens analgicas existentes nas
entradas de comparao geralmente estvel e imutvel.Ele chamado de
'tenso de referncia' (Vref).Para gerar isso, voc pode usar tanto
uma tenso externa como uma fonte de tenso interna especial.A
voltagem de referncia Vref derivado depois de seleccionar uma
fonte, atravs de uma rede de resistncias que consiste escada 16,
formando um divisor de tenso.A fonte de tenso selecionvel VRCON
VRSS registo pouco.Alm disso, a fraco da tenso fornecida pela rede
de resistncias seleccionvel pelo VR0-VR3 e usado como bits de tenso
de referncia.Veja a figura a seguir:
A voltagem de referncia do comparador tem dois intervalos com 16
diferentes nveis de tenso cada.A seleco da gama controlada pela VRR
registo pouco VRCON.A tenso de referncia selecionado CVref pode ser
a sada para o pino RA2 / AN2 VROE se o bit definido para um.Embora
a ideia principal era obter a tenso de referncia varivel para a
operao dos mdulos analgicos, assim, um conversor simples A / D
obtida.Este conversor muito til em algumas situaes.A operao
controlada registo VRCON.Comparadores e INTERRUPOSempre que houver
uma mudana de estado lgico na sada de um comparador, o bit
sinalizador CMIF PIR registo definido como um.Esta mudana tambm ir
provocar uma interrupo, se os bits seguintes so definidos para um:
O registro CMIE PIE bit = 1; O bit PEIE do registo INTCON = 1;e O
bit GIE do registo INTCON = 1.Se uma interrupo activada, uma mudana
na sada de um comparador quando o microcontrolador est no modo de
suspenso, pode fazer com que o microcontrolador para sair inactivo
e, em seguida, executar no modo normal.MODO DE FUNCIONAMENTO SLEEP
(modo de suspenso)Se ativado antes de entrar modo de suspenso, o
comparador permanece ativa durante o modo de sono.Se o comparador
no utilizado para "acordar" o dispositivo, o consumo de energia
pode ser reduzido no modo de repouso, desligando o comparador.Isso
feito para redefinir o bit de registro CxON CMxCON0.Para o
comparador de "acordar" o microcontrolador do modo de suspenso,
mordeu Secretaria CxIE IE2 eo bit PEIE do registo INTCON deve ser
um.A instruo aps a instruo do sono sempre corre para fora do modo
de espera.Se o bit GIE do registo INTCON definido para um, o
dispositivo ir executar a rotina de interrupo do servio.Registro
CM1CON0
Os bits desta registo est no controle do comparador C1.Ele
afecta principalmente a configurao das entradas.Para explicar de
forma mais clara, veja a figura a seguir, em que os componentes
directamente afectados pelos bits deste registo so mostradas
apenas.
C1ON - Comparador C1 Ativar bit(bit permitindo o comparador C1)
permite que o C1 comparador. 1 - Comparador C1 est habilitado. 0 -
Comparador C1 est desativado.C1OUT - C1 comparador de bits de
sada(sada do comparador bit C1) a sada do comparador C1.Se C1POL =
1 (sada do comparador invertido) 1 - C1Vin + tenso de entrada menor
do que a tenso de entrada C1Vin-. 0 - + C1Vin tenso de entrada for
mais elevada do que a tenso de entrada C1Vin-.Se C1POL = 0 (sada do
comparador invertido) 1 - C1Vin + tenso de entrada for mais elevada
do que a tenso de entrada C1Vin-. 0 - + C1Vin tenso de entrada
menor do que a tenso de entrada C1Vin-.C1OE Comparador C1 habilitao
de sada bit(bit de habilitao de sada do comparador C1) 1 -
Comparador de sada est conectada ao pino C1OUT C1OUT *. 0 - sada do
comparador usado internamente.* Para ativar o bit C1OUT aparece no
pino, duas condies devem ser atendidas: C1ON = 1 (comparador deve
estar ligado) e os correspondentes TRIS bit = 0 (pino deve ser
configurado como uma sada).C1POL - Comparador de sada C1 Polaridade
Select bit(seleo de bits de sada de polaridade do comparador C1) o
investimento do Estado permite a sada do comparador C1. 1 - C1 sada
do comparador invertido. 0 - Comparador de sada C1 no invertido.C1R
- Comparador C1 Referncia Select bit(bit fonte de tenso de
referncia seleo do C1 comparador) 1 - C1Vin entrada no inversora +
est ligada fonte de tenso de referncia C1Vref. 0 - + C1Vin
no-inversora est conectada ao pino C1IN +.C1CH1, C1CH0 - Comparador
C1 Channel Select bit(seleo de canais pouco do C1
comparador)C1CH1C1CH0C1VIN- ENTRADA DO COMPARADOR
00C1Vin- entrada est conectada ao pino C12IN0-
01C1Vin- entrada est conectada ao pino C12IN1-
10C1Vin- entrada est conectada ao pino C12IN2-
11C1Vin