Академический Документы
Профессиональный Документы
Культура Документы
Introduo Linguagem C
Palavras Reservadas
Toda linguagem de programao possui um conjunto de palavras definidas para
interpretao do prprio compilador, sendo assim, essas palavras no devero ser
utilizas pelo usurio para outras finalidades alm das definidas pelo compilador.
Essas palavras so chamadas de reservadas e em linguagem C, temos as seguintes:
auto
break
case
char
const
continue
default
do
double
else
enum
extern
far
float
for
goto
if
Int
long
near
overlay
ram
register
return
rom
short
signed
sizeof
static
struct
switch
typedef
union
unsigned
void
volatile
while
Identificadores
Os identificadores so nomes dados s funes, variveis, constantes, etc e no devem
conter caracteres acentuados, espaos, e devem sempre comear com uma letra ou
o smbolo _ que tratado como letra.
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
Pgina |2
www.acepic.com.br
Tamanho
Valores
char
8 bits
128 a 127
unsigned char
8 bits
0 a 255
signed char
8 bits
-128 a 127
int
16 bits
-32768 a 32767
unsigned int
16 bits
0 a 65535
short
16 bits
-32768 a 32767
unsigned short
16 bits
0 a 65535
short long
24 bits
-8388608 a 8388607
24 bits
0 a 16777215
long
32 bits
-2147483648 a 2147483647
unsigned long
32 bits
0 a 4294967295
float
32 bits
-1,17549435082e-38 a 6,80564774407e38
double
32 bits
-1,17549435082e-38 a 6,80564774407e38
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
Pgina |3
www.acepic.com.br
Variveis
As variveis so uma representao simblica onde so armazenados dados do
programa ou dados externos como uma tecla pressionada ou uma tenso lida, etc. As
variveis podem conter letras e nmeros, sempre comeando com letras e no devem
ter nome de palavras reservadas pelo compilador como, por exemplo, for, do, int, etc.
Declarao de Variveis
Declarar uma varivel simplesmente informar ao compilador que uma varivel
chamada X do tipo Y e declarada da seguinte forma:
<tipo> + <nome da varivel>;
Podemos tambm declarar e inicializar uma varivel da seguinte forma:
<tipo> + <nome da varivel> = <valor da varivel>;
Exemplos:
Variveis Globais
So declaradas no incio de nosso cdigo e que podem ser acessadas em qualquer
ponto do programa:
Exemplo:
int conta;
unsigned int c;
void main()
{
conta = 10;
c = c + 1;
while (1);
}
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
Pgina |4
www.acepic.com.br
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
Pgina |5
www.acepic.com.br
Operadores
Temos, na linguagem C, vrios operadores e podemos verific-los abaixo:
Operadores de Atribuio
So utilizados para atribuir valores s variveis:
Operador
=
Descrio
Associa um valor varivel
Exemplo
a=2
Aritmticos:
Operador Descrio
Exemplo
a+b
+=
a += b
a-b
-=
a -= b
a*b
*=
a *= b
a/b
/=
a /= b
a%b
%=
a %= b
++
Soma 1 ao argumento
a++
--
Subtrai 1 ao argumento
a--
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
Pgina |6
www.acepic.com.br
Exemplo
==
Compara se igual a
a == 5
!=
Compara se diferente de
a != 5
>
a>5
<
a<5
>=
a >= 5
<=
a <= 5
E (AND)
OU (OR)
OU EXCLUSIVO (XOR)
Complemento (NOT)
>>
Deslocamento direita
<<
Deslocamento esquerda
||
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
Pgina |7
www.acepic.com.br
Declaraes de controle:
Comando if (se):
O comando if uma comando de deciso e utilizado para avaliar uma determinada
condio e determinar se ela verdadeira, caso seja, executa o bloco contido dentro
desta condio. Sua forma geral :
if (exp) comando;
Se o resultado da condio referente a expresso (exp) for verdadeiro, o comando ser
executado, caso contrrio, o programa segue sem executar o comando.
if (exp)
{
comando1;
comando2;
}
Para o caso acima, a mesma explicao anterior se encaixa, sendo que agora, se a
condio da expresso for verdadeira, sero executados comando1 e comando2.
Exemplos:
if (conta>50) conta = 0;
Neste caso, se a varivel conta atingir um valor maior que 50, o comando conta = 0 ser
executado e a varivel conta ser zerada.
if (conta>50)
{
conta = 0;
conta1++;
}
Neste caso, se a varivel conta atingir um valor maior que 50, os comandos
conta = 0 e conta1++ sero executados e assim a varivel conta ser zerada e a varivel
conta1 ser incrementada em 1, respectivamente.
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
Pgina |8
www.acepic.com.br
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
Pgina |9
www.acepic.com.br
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 11
www.acepic.com.br
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 12
www.acepic.com.br
Lao DO-WHILE:
Este lao uma variao do comando WHILE, sendo que neste caso o comando ser
executado antes de testar se a condio verdadeira. Sua forma :
do
{
comando;
}
while(exp);
O comando ser executado pelo menos uma vez antes de verificar a condio da
expresso.
Exemplo:
int x;
int y;
do
{
x++;
} while(y!=1);
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 13
www.acepic.com.br
Notao numrica
Em linguagem C, podemos usar as 4 formas de representao numrica, decimal,
binria, hexadecimal e octal, sendo as mais comuns somente as 3 primeiras.
Notao decimal: a representao desta notao direta, ou seja, como estamos
acostumados a escrever:
Ex.: PORTB = 10;
Notao binria: esta representao vem precedida de 0b ou 0B, indicando a
notao:
Ex.: PORTB = 0b00000010;
ou
PORTB = 0B00000010;
Notao Hexadecimal: esta representao vem precedida de 0x ou 0X, ex:
Ex.: PORTB = 0x0A;
ou
PORTB = 0X0A;
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 14
www.acepic.com.br
O PIC 18F4520
Introduo
O PIC 18F4520 baseado na arquitetura Harvard com instrues do tipo RISC
(Conjunto reduzido de instrues). Este microcontrolador utiliza a tecnologia nanoWatt
desenvolvida pela Microchip, permitindo menor consumo de energia. Veja suas
caractersticas abaixo:
O modelo utilizado no curso possui 40 pinos, sendo que 36 podem ser
configurados como portas de entrada/sada (I/O);
Frequncia de operao: DC a 40 MHz;
Memria Flash de 32KB;
Memria de dados RAM de 1536 bytes;
Memria de dados EEPROM de 256 bytes;
20 fontes de interrupo;
13 canais de converso analgica-digital (A/D) de 10 bits cada;
1 mdulo de comparao, captura e PWM (CCP);
1 mdulo de comparao, captura e PWM melhorado (ECCP);
1 mdulo SPI;
1 mdulo I2C;
2 comparadores analgicos;
1 timer de 8 ou 16 bits (TIMER0), 2 timers de 16 bits (TIMER1 e TIMER3) e 1
timer de 8 bits (TIMER2);
1 comunicao EUSART (modo USART melhorado);
1 mdulo de deteco de alta/baixa tenso (HLVD).
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 15
www.acepic.com.br
Pino
Nome
1
MCLR/VPP/RE3
2
RA0/AN0
RA1/AN1
RA2/AN2/VREF/CVREF
RA3/AN3/VREF+
RA4/T0CKI
/C1OUT
RA5/AN4/SS
/HLVDIN/C2OUT
Tipo
Descrio
E
Master Clear Reset/ Entrada de tenso de
programao/ Entrada de uso geral (bit 3 PORTA E).
E/S
Entrada/sada de uso geral (bit 0 PORTA A) / Entrada
do canal analgico 0
E/S
Entrada/sada de uso geral (bit 1 da PORTA A) /
Entrada do canal analgico 1.
E/S
Entrada/sada de uso geral (bit 2 da PORTA A) /
Entrada do canal analgico 2 / Entrada de tenso
negativa de referncia para o conversor A/D / Sada de
Vref do comparador analgico.
E/S
Entrada/sada de uso geral (bit 3 da PORTA A) /
Entrada do canal analgico 3 / Entrada de tenso
positiva de referncia para o conversor A/D.
E/S
Entrada/sada de uso geral (bit 4 da PORTA A) /
Entrada de clock externo para o Timer 0 / Sada do
comparador 1.
E/S
Entrada/sada de uso geral (bit 5 da PORTA A) /
Entrada do canal analgico 4 / Seleco para o modo
SPI escravo / Entrada do mdulo de deteco de alta
tenso / Sada do comparador 2.
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 16
www.acepic.com.br
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 19
www.acepic.com.br
Oscilador
No PIC18F4520, podemos encontrar 10 tipos de osciladores que podem ser
configurados atravs dos bits de configurao. Estes bits de configurao conhecido
como fuses.
Os tipos de osciladores so:
LP Cristal de baixa freqncia;
XT Cristal com freqncias intermedirias;
HS Cristal de alta freqncia;
HSPLL Cristal de alta freqncia com PLL;
RC Oscilador RC externo com sada de clock dividido por 4 no pino RA6;
RCIO Oscilador RC externo com o pino RA6 como pino de entrada/sada;
INTIO1 Oscilador interno com sada de clock no pino RA6 e pino RA7 como
entrada/sada;
INTIO2 Oscilador interno com os pinos RA6 e RA7 como pinos de
entrada/sada;
EC Oscilador externo com entrada de clock no pino RA7 e sada dividida por 4
no pino RA6;
ECIO Oscilador externo com entrada de clock no pino RA7 e com RA6 como
entrada/sada.
Nos tipos LP, XT e HS so utilizados oscilador a cristal e a freqncia destes podem ser
verificadas nos datasheets dos microcontroladores.
No tipo HSPLL, o sinal de clock utilizado como sincronismo para um circuito PLL
(Phase Locked Loop) que gera na sada deste circuito um sinal de 4 vezes a freqncia
do sinal de referncia. Neste caso, possvel, por exemplo que o microcontrolador
opere em 40MHz utilizando um cristal de 10MHz.
Nos tipos RC e RCIO so utilizados um circuito RC externo, sendo que para o RC,
gerado um sinal no pino RA6 com uma freqncia dividida por 4 da freqncia
originada pela fonte de clock.
Nos tipos INTIO1 e INTIO2, o sinal de clock interno e gerado partir de um oscilador
RC interno. O usurio pode escolher clocks de 31,25KHz, 125KHz, 250KHz, 500KHz,
1MHz, 2MHz, 4 MHz e 8MHz. Os sinal de 4MHz e 8MHz podem ser aplicados ao PLL e
assim, obter freqncias de 16MHz e 32MHZ, respectivamente. No tipo INTIO1, o sinal
de clock pode ser obtido no pino RA6.
Nos tipos EC e ECIO, o microcontrolador receber um sinal de clock gerado por um
oscilador externo no pino RA7 e no tipo EC, este sinal dividido por 4 poder ser obtido
no pino RA6.
Os registradores de controle responsveis pela seleo e controle dos osciladores, so
OSCTUNE e OSCCON.
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 20
www.acepic.com.br
RESET
O PIC18F4520, assim como a linha 18F, possui diversas fontes de reset, conforme
abaixo:
POR (Power-on-reset): Quando da deteco da
microcontrolador;
Nvel 0 no pino MCLR;
Nvel 0 no MCLR com o microcontrolador em modo sleep;
Estouro do Watchdog;
BOR (Brown-out-reset): Queda de tenso de alimentao;
Instruo RESET;
Estouro da pilha.
alimentao
do
Memria
Os microcontroladores PIC tm basicamente 3 tipos de memrias , sendo estas
memria de programa, memria de dados e memria EEPROM.
Na memria de programa so armazenadas as instrues (cdigo do programa). Essa
memria do tipo no voltil, ou seja, seus dados no sero perdidos se a
alimentao do microcontrolador for retirada.
Abaixo segue o mapa da memria de programa para os PICs 18F2420/2520/4420/4520.
Primeiro projeto
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 23
www.acepic.com.br
Ciclo de Mquina
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 24
www.acepic.com.br
Conforme podemos ver acima, cada ciclo de mquina executa duas funes ao mesmo
tempo, ou seja, ao mesmo tempo em que uma instruo executada, a prxima
instruo localizada e carregada no registro de instruo. A essa tecnologia dado o
nome de PIPELINE e que resulta no aumento da velocidade de processamento.
Sendo assim, para obtermos a freqncia para o clculo do ciclo, devemos ento,
dividir o sinal de entrada de clock interno ou externo por 4.
Por exemplo:
Suponde que contamos com um cristal de 20MHz como fonte de clock para o
microcontrolador, ento teremos:
Frequncia de mquina:
Ciclo de mquina:
Portas de I/O
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 25
www.acepic.com.br
Registrador TRIS
O registrador TRIS, como j vimos, o responsvel pelo direcionamento no sentido do
fluxo de dados de uma determinada porta. Esse registrador possui 8 bits, sendo cada
bit correspondente a um determinado pino de I/O.
Podemos identificar os registradores de acesso como TRISA, TRISB, TRISC, TRISD e
TRISE.
Podemos ler ou escrever no registrador TRIS, conforme a sintaxe abaixo:
TRISx = valor;
Valor = TRISx;
Onde:
x: nome da porta (A, B, C, D ou E)
valor: valor de 8 bits.
Exemplo:
Vamos configurar a porta D da seguinte forma: Os pinos 0, 2 e 5 desta porta devero
ser configurados como sada e o restante como entrada.
A sintaxe ser conforme abaixo:
TRISD = 0b11011010;
Registrador PORT
O registrador PORT, assim como informado antes, o responsvel por informar o
estado dos pinos de uma porta. Este registrador tambm de 8 bits e atravs dele
possvel escrever ou ler os pinos de uma determinada porta.
Sintaxe:
PORTx = valor;
valor = PORTx;
Onde:
x: Nome da porta (A, B, C, D ou E);
valor: valor de 8 bits;
Exemplo:
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 27
www.acepic.com.br
Configurao do PIC18F4520
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 28
www.acepic.com.br
OSC
LP
XT
HS
RC
EC
ECIO6
HSPLL
RCIO6
INTIO67
INTIO7
FCMEN
OFF
ON
Oscilador
Oscilador LP
Oscilador XT
Oscilador HS
Oscilador RC externo, pino RA6 configurado como CLK0.
Clock externo
Clock externo, pino RA6 configurado como I/O
Oscilador HS com PLL habilitado
Oscilador RC externo, pino RA6 configurado como I/O
Oscilador interno, pinos RA6 e RA7 configurados como
I/O.
Oscilador interno, pino RA6 configurado como CLK0 e
pino RA7 configurado como I/O.
PWRT
BOREN
ON
OFF
OFF
ON
NOSLP
SBORDIS
BORV
WDT
WDTPS
0
1
2
3
OFF
ON
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 31
www.acepic.com.br
LPT1OSC
OFF
ON
PBADEN
OFF
ON
CCP2MX
OFF
ON
STVREN
OFF
ON
LVP
OFF
ON
XINST
OFF
ON
DEBUG
ON
OFF
CP1
ON
OFF
CP2
ON
OFF
ON
OFF
CP3
CPB
CDP
WRT0
ON
OFF
ON
OFF
ON
OFF
WRT1
ON
OFF
WRT2
ON
OFF
WRT3
ON
OFF
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 33
www.acepic.com.br
WRTC
WRTD
EBTR0
ON
OFF
ON
OFF
EBRT1
ON
OFF
EBRT2
ON
OFF
EBRT3
ON
OFF
EBRTB
ON
OFF
Exemplo:
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 34
www.acepic.com.br
BORV
0
1
2
3
Tenso(V)
4,59
4,33
2,79
2,11
Bem, ento agora temos o nosso projeto criado e esta tela mostra o resumo do que
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 39
www.acepic.com.br
Agora devemos escrever o cdigo fonte, salv-lo e acrescentar ao projeto. Para isso,
clique em File no menu principal e escolha a opo New.
Ser mostrada esta tela que , justamente, onde escreveremos o cdigo do programa
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 40
www.acepic.com.br
while(1)
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 41
www.acepic.com.br
Aps salvar o cdigo fonte, clique com o boto direito do mouse em Source Files que
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 42
www.acepic.com.br
Na janela que abrir, na aba Directories, escolha Library Search Path, conforme
abaixo e, em seguida, clique no boto New.
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 44
www.acepic.com.br
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 45
www.acepic.com.br
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 47
www.acepic.com.br
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 48
www.acepic.com.br
OBS.: Se a mensagem mostrada for BUILD ERROR, ento reveja os passos para criao
do projeto e o cdigo que voc escreveu.
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 49
www.acepic.com.br
Entendendo o cdigo.
Na primeira linha do programa, utilizamos a diretiva #include. Esta diretiva faz a
incluso de um arquivo ao projeto. Neste caso, estamos incluindo a biblioteca do PIC
18F4520 ao projeto. O arquivo p18F4520.h chamado de header (cabealho) e nele
temos funes e estruturas para o tratamento dos registradores.
#include <p18F4520.h>
Em seguida fazemos a configurao dos bits de controle do microcontrolador. Esta
configurao ser a forma como o microcontrolador trabalhar.
#pragma config OSC = HS
#pragma config WDT = OFF
#pragma config PWRT = ON
#pragma config BOREN = ON
#pragma config BORV = 1
#pragma config PBADEN = OFF
#pragma config LVP = OFF
Temos ento:
Conectado ao microcontrolador, temos um cristal de 8MHz, ento configuramos o
oscilador como HS (oscilador cristal de alta velocidade).
Desabilitamos o temporizador watchdog (WDT = OFF);
Habilitamos a funo que informa ao PIC que ele deve comear a rodar o programa
aps 72ms de sua energizao (PWRT = ON).
Habilitamos tambm o Brown-out reset (BOREN = ON) e tambm definimos a tenso
de Brown-out (BORV=1). Assim, se a tenso de alimentao para o PIC for menor do
que mais ou menos 4,3V, o microcontrolador ser resetado.
Em seguia informamos que os pinos RB0, RB1, RB2 e RB3 devero ser configurados
como portas de entrada e sada.
Finalizamos desabilitando a funo de programao por baixa tenso.
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 50
www.acepic.com.br
A primeira instruo desta funo informa faz com que todos os bits do registrador
TRISD sejam levados a 0. Assim, estamos configurando toda a PORTA D como sada.
TRISD = 0b00000000;
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 51
www.acepic.com.br
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 52
www.acepic.com.br
#include <delays.h>
void main()
{
TRISD = 0b00000000;
while(1)
{
PORTD = 0b11111111;
Delay10KTCYx(100);
PORTD = 0b00000000;
Delay10KTCYx(100);
}
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 53
www.acepic.com.br
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 54
www.acepic.com.br
Gravando o microcontrolador
Instalao do WinPic800
-Instale o programa WINPIC800 que est na pasta \Programas\WinPic.
Abrindo o arquivo WinPic800_V3_62.exe, ser mostrada o seguinte quadro:
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 55
www.acepic.com.br
Se quiser criar um atalho na rea de trabalho, deixe marcado como est e clique em
Ok. A tela seguinte aparecer:
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 56
www.acepic.com.br
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 57
www.acepic.com.br
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 58
www.acepic.com.br
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 59
www.acepic.com.br
Conexo e gravao
-Se possuir o kit de desenvolvimento, conecte o cabo serial que acompanha o kit na
placa e porta serial do PC.
-Ligue a fonte de alimentao.
-Pressionar a chave Grav/Run (deix-la baixa) na Placa;
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 60
www.acepic.com.br
Gravando o microcontrolador
Abrindo o Arquivo
-Clique em Arquivo, logo aps em Abrir e procure a pasta onde se encontram os
arquivos do projeto que acabamos de criar e abra o arquivo PISCA_LED.hex.
Acionamento de Botes
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 62
www.acepic.com.br
Circuito:
Cdigo:
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 63
www.acepic.com.br
Diretiva define
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 64
www.acepic.com.br
while(1)
{
if (BOT0 == 0)
LED1 = 1;
Else
LED1 = 0;
}
}
Funes
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 65
www.acepic.com.br
Prottipo de funo
Um programa em linguagem C pode ficar muito grande e muito complexo e, s vezes,
uma funo pode ser chamada antes que ela seja definida. Neste caso, o compilador
gera um erro, veja o exemplo abaixo:
void main ()
{
short c;
c = soma (2,3);
while(1);
}
short soma (short a, short b)
{
return a + b;
}
Veja que a funo soma est definida aps a funo principal (main). Neste caso,
como a funo soma foi definida aps a sua chamada, o compilador retornar um
erro dizendo que o identificador soma no foi declarado.
Podemos solucionar este tipo de problema ao declararmos previamente a funo, ou
seja, informaremos ao compilador que existe uma funo com aquele nome que
estamos chamando. Isto conhecido como prototipagem de funo.
O prottipo de funo deve ser declarado obedecendo os mesmos tipos e parmetros
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 67
www.acepic.com.br
______________________________________________________________________
ACEPIC tecnologia e Treinamento LTDA.
P g i n a | 68
www.acepic.com.br