Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
5Activity
0 of .
Results for:
No results containing your search query
P. 1
ApostilaCPIC

ApostilaCPIC

Ratings: (0)|Views: 318|Likes:
Published by TEXBRAG

More info:

Published by: TEXBRAG on Jan 20, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

09/29/2013

pdf

text

original

 
 
APOSTILA DE MICROCONTROLADORES PIC E PEFIFRICOS
sandrojuca@cefetce.br 
 
APOSTILA DEMICROCONTROLADORESPIC E PERIFÉRICOS
 
Sandro Jucá
 
2
 
PROGRAMAÇÃO EM C PARA MICROCONTROLADORES PIC
Um microcontrolador é um sistema computacional completo, no qual estãoincluídos internamente uma CPU (
Central Processor Unit 
), memórias RAM (dados),
 flash
 (programa) e E
2
PROM, pinos de I/O (
 Input/Output 
), além de outros periféricos internos,tais como, osciladores, canal USB, interface serial assíncrona USART, módulos detemporização e conversores A/D, entre outros, integrados em um mesmo componente(chip).O microcontrolador PIC® (
 Periferal Interface Controler 
), da MicrochipTechnology Inc. (empresa de grande porte, em Arizona, nos Estados Unidos da América), possui uma boa diversidade de recursos, capacidades de processamento, custo eflexibilidade de aplicações.
ASSEMBLY X LINGUAGEM C
 A principal diferença entre uma linguagem montada (como assembly) e a linguagemde programação C está na forma como o programa objeto (HEX) é gerado. Em assembly, o processo usado é a montagem, portanto devemos utilizar um MONTADOR (assembler),enquanto que em linguagem C o programa é compilado. A compilação é um processo maiscomplexo do que a montagem. Na montagem, uma linha de instrução é traduzida para umainstrução em código de máquina. Já em uma linguagem de programação, não existemlinhas de instrução, e sim estruturas de linguagem e expressões. Uma estrutura pode ser condicional, incondicional, de repetição, etc... As expressões podem envolver operandos eoperadores mais complexos. Neste caso, geralmente, a locação dos registros de dados daRAM é feita pelo próprio compilador. Por isso, existe a preocupação, por paret docompilador, de demonstrar, após a compilação, o percentual de memória RAM ocupado, pois neste caso é relevante, tendo em vista que cada variável pode ocupar até 8 bytes (tipo
double
).Para edição e montagem (geração do código HEX) de um programa em assembly,os softwares mais utilizados são o MPASMWIN (mais simples) e o MPLAB. Para edição ecompilação em linguagem C (geração do código HEX), o programa mais utilizado é o PICC Compiler CCS®.Os microcontroladores PIC possuem apenas 35 instruções em assembly para afamília de 12 bits (PIC12) e 14 bits (PIC16), descritas nas tabelas abaixo, e 77 instruções para a família de 16 bits (PIC18).
 
3 Como pode ser visto, a família PIC16F (14 bits com aproximadamente 35instruções) não possui uma instrução em assembly que realize multiplicação ou divisão dedois operandos, o que curiosamente é presente na linguagem assembly da família MCS51(256 instruções que satisfazem a maioria das aplicações industriais). Portanto, para realizar uma multiplicação, é necessário realizar somas sucessivas, ou seja, em vez de multiplicar uma variável por outra, realizar somas de uma variável em uma terceira área de memória,tantas vezes quando for o valor da segunda variável. (X * 5 = X + X + X + X + X).Mas em
linguagem C é possível se utilizar o operador de multiplicação (*)
, deforma simples e prática.
Ao compilar, a linguagem gerada irá converter a multiplicaçãoem somas sucessivas
sem que o programador se preocupe com isso.

Activity (5)

You've already reviewed this. Edit your review.
1 thousand reads
1 hundred reads
Eder Navarro liked this
samuel8882 liked this
jbressan liked this

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->