Escolar Documentos
Profissional Documentos
Cultura Documentos
A arte de aprender Linguagem C com mikroC PRO for PIC Introduo a Linguagem C
Pgina 2 de 40
Prefcio
Esta obra foi concebida com o intuito de preparar os estudantes,
professores e profissionais da rea tcnica para a criao de projetos
utilizando como ferramenta uma linguagem de programao de alto nvel, neste
material escolhemos abordar a linguagem C, que uma das linguagens mais
poderosas e portveis, fato este que a tornou amplamente utilizada,
primeiramente para a criao de programas aplicativos para PC e mais tarde em
sistemas embarcados microcontrolados.
Trabalhar com uma linguagem de alto nvel, como C, para criar programas
para microcontroladores, exige do profissional alm de um bom conhecimento de
lgica de programao e habilidade com ela, um slido conhecimento da estrutura
de hardware do microcontrolador a ser utilizado, de forma a extrair deste o
mximo da funcionalidade de seus perifricos internos.
Esta obra estuda o software, propiciando um conhecimento completo ao
profissional e tornando-o apto a desenvolver suas prprias aplicaes, alm
disso, vale a pena ressaltar a preocupao, por parte do Centro de Tecnologia
Microgenios, em priorizar um estudo gradual e prtico, para isso usamos os kits
de desenvolvimento, como base para a realizao de diversas experincias que
complementam e fixam o aprendizado.
Um ponto de destaque da abordagem do treinamento o uso e detalhamento da
IDE de desenvolvimento MikroC (www.mikroe.com) a qual apesar das limitaes da
verso de demonstrao gratuita mostra-se uma excelente ferramenta de
desenvolvimento e simulao.
De maneira alguma este material apresentado como nica fonte de estudo
sobre o assunto, devendo aqueles que necessitarem se aprofundar nos tpicos aqui
estudados buscar outras fontes de pesquisa.
Por fim a equipe Microgenios agradece a ateno de todos e deseja bons
estudos e projetos.
Conceito ................................................................ 7
Compilador .............................................................. 7
CAPITULO 1 .........................................................................................................................8
A arte de aprender Linguagem C com mikroC PRO for PIC Introduo a Linguagem C
Pgina 4 de 40
Prottipos de Funes .................................................. 26
Os identificadores ..................................................... 27
CAPITULO 2 .......................................................................................................................37
Um pouco de histria
A arte de aprender Linguagem C com mikroC PRO for PIC Introduo a Linguagem C
Pgina 6 de 40
Conceito
Compilador
O que so variveis?
Tipos de dados
O tipo char pode ser utilizado tanto para manipulao de valores entre 0 e
255 quanto para representao de caracteres da tabela ASCII. Cada varivel do
tipo char pode representar somente um caractere ASCII.
O tipo int utilizado para representar nmeros inteiros de 16 bits (0 a
65535).
Esses dois primeiros tipos so os mais utilizados em linguagem C.
O tipo char e int representam nmeros inteiros e no podem ser utilizados
para representar nmeros fracionrios. Para isso, deve ser utilizado o tipo
float, tambm chamado de ponto flutuante.
O tipo float deve ser evitado ao mximo e restrito apenas s operaes que
realmente necessitarem de um tipo de dados como este.
Modificadores de Tipo
Declarao de variveis
int soma ;
unsigned char i,j,k ;
float salrio;
unsigned int idade;
short int y;
long caminho, estado;
unsigned valor;
Variveis locais:
Ao contrrio das variveis globais, uma varivel local somente existe no
escopo da funo em que foi declarada. Isto significa que uma varivel local
somente existe enquanto a funo esta sendo executada. No momento que ocorre o
retorno da funo, as variveis locais so descartadas;
Acompanhe o exemplo abaixo:
A arte de aprender Linguagem C com mikroC PRO for PIC Introduo a Linguagem C
Pgina 10 de 40
void subrotina () //funo de sub-rotina qualquer do programa
{
int tempo;
tempo = tempo * 2;
}
Repare no programa exemplo acima que temos duas funes, a funo main() e
a funo subrotina(). Dentro de cada uma dessas funes foi criada uma varivel
chamada "tempo" do tipo int, essas variveis so locais e somente tem validade
dentro da funo que a declarou, ou seja, a varivel "tempo" da funo
subrotina() NO tem nenhuma ligao com a varivel "tempo" da funo main(),
pois so variveis locais;
Se por ventura cometermos o seguinte erro abaixo, acompanhe:
Tipos de Operadores
Os Operadores Aritmticos:
Os operadores aritmticos so utilizados para efetuar operaes matemticas
entre dados e so classificados em duas categorias, sendo binrio ou unrio. Os
operadores binrios atuam em operaes de exponenciao, diviso, adio e
subtrao. Os unrios atua na inverso de valores, atribuindo o sinal de
positivo ou negativo.
operador ao
+ Adio
- Subtrao ou menos unrio
* Multiplicao
/ Diviso
% Resto da diviso inteira
Adio e Subtrao
Os operadores de adio e subtrao so muito simples de serem utilizados,
acompanhe:
c = a + b;
d = d + b;
c = c - a;
a = d - a + c;
Multiplicao e Diviso
Os operadores de multiplicao e de diviso, em C, so de fcil
assimilao;
c = a * b;
d = d * d;
c = c / a;
a = (d * a) / c;
O operador %
O operador % utilizado para retornar o mdulo(resto) de uma operao de
diviso inteira. Vejamos um exemplo:
7 / 3 = 2, em uma diviso inteira, sendo o resto igual a 1.
Assim, o valor de 7 / 3 = 2 e o valor de 7 % 3 = 1.
c++; //equivale a c = c + 1;
c++; //incrementa em 1 unidade o valor da varivel C
d--; //incrementa em 1 unidade o valor da varivel D
variavel_a = variavel_b++;
variavel_a = variavel_b--;
A arte de aprender Linguagem C com mikroC PRO for PIC Introduo a Linguagem C
Pgina 12 de 40
variavel_a = variavel_b++;
diferente de
variavel_a = ++variavel_b;
int a, b, c;
a = 0;
b = a++;
c = ++a;
Neste caso, aps a execuo dos trs comandos, o valor de "a" ser igual a
2, o valor da varivel "b" ser igual a 0 e o valor da varivel "c" ser igual a
2.
Operadores Relacionais;
Os operadores relacionais servem para comparar expresses. So muito
utilizado para comparar condies de controle do fluxo de execuo de programas.
Operador Operao realizada
> maior que
>= maior ou igual a
< menor que
<= menor ou igual a
== igual a
!= diferente de
Estes operadores sero muito utilizado para construir expresses
condicionais, como veremos mais adiante em nosso curso.
if (c>0 || a==0) b = a; /* condio verdadeira de teste: se a varivel "c" for maior que
0 ou a for igual a 0 ento "b" igual a varivel "a".*/
int a, b;
a = 100;
b = 28;
a = a & b;
O Operador OR (|)
O operador OR muito similar ao operador AND, sua operao tambm
realizada para cada bit do operando. Esse operando funciona da seguinte maneira,
verifica se nos dois operandos um respectivo bit, se em qualquer dos dois for 1
coloca no resultado 1 no bit respectivo, caso contrario coloca 0. Exemplo:
int a, b;
a = 100;
b = 28;
a = a | b;
A arte de aprender Linguagem C com mikroC PRO for PIC Introduo a Linguagem C
Pgina 14 de 40
forem diferentes coloca no resultado 1 no bit respectivo, caso contrario coloca
0. Exemplo:
int a, b;
a = 100;
b = 28;
a = a ^ b;
int a, b, c;
a = 1;
b = 240;
b = ~a
c = ~b
int a, b, c;
a = 10;
b = 10;
b = a >> 1;
c = b << 5;
//Primeiro Programa
/* Programa Pisca-Pisca (1 segundo)
Este programa tem por objetivo ascender e apagar um led conectado no pino RB0 do PIC em
intervalos de 1 segundo aproximadamente;
Curso Online: Microcontroladores PIC - Programao em C
*/
void main()
{
TRISB = 0; //define PORTB como sada
PORTB = 0; //coloca nvel lgico 0 em todos os pinos do PORTB
while(1)
{
PORTB.RB0 = 1; // Coloca pino RB0 em 1
Delay_ms(1000); // Aguarda 1000 ms (milisegundos)
PORTB.RB0 = 0; // Coloca pino RB0 em 0
Delay_1sec(); // Aguarda 1 segundo
}
}
//Primeiro Programa
void main()
while(1)
{
PORTB.RB0 = 1; // Coloca pino RB0 em 1
Delay_ms(1000); // Aguarda 1000 ms (milisegundos)
PORTB.RB0 = 0; // Coloca pino RB0 em 0
Delay_1sec(); // Aguarda 1 segundo
}
NOTA:
COLOQUE EM PRTICA ESTE PEQUENO PROJETO. COPIE E COMPILE ESTE PROGRAMA EXEMPLO
NO COMPILADOR MIKROC, ISSO LHE AJUDAR NOS SEUS ESTUDOS.
//Segundo Programa
/* Programa Pisca -Pisca (100 milisegundos)
Este programa tem por objetivo ascender e apagar um led conectado no pino RB0 do PIC em
intervalos de 1 segundo aproximadamente;
Curso Online: Microcontroladores PIC - Programao em C
*/
void main()
{
TRISB = 0; //define PORTB como saida
PORTB = 0; //coloca nvel lgico 0 em todos os pinos do PORTB
while(1)
{
PORTB = 255; //seta todos os pinos do port
TRISD = 255; //seta todos os pinos do portd
Delay_ms(100); //aguarda 1000 ms (milisegundos)
PORTB = 0; //resseta todos os pinos do PORTB
PORTD = 0; //resseta todos os pinos do PORTD
Delay_ms(100); //aguarda 1000 ms (milisegundos)
}
}
A arte de aprender Linguagem C com mikroC PRO for PIC Introduo a Linguagem C
Pgina 18 de 40
Formas e representao numricas e de caracteres
Representao decimal:
Para representarmos um nmero em decimal basta colocar seu valor sem
nenhuma abreviatura, conforme o linha abaixo:
NOTA:
NUNCA DEVEMOS REPRESENTAR UM NMERO DECIMAL INICIANDO COM 0 (ZERO), POIS O
MIKROC INTERPRETAR O NMERO COMO OCTAL.
EX:
diferente de
Representao Hexadecimal:
Para representar um nmero em hexadecimal devemos colocar o prefixo 0x (ou
0X) antes do nmero hexadecimal. (0 a F)
ou
ou
Exerccios de fixao:
Representao decimal:
PORTB = 38;
Representao binria:
PORTB = 0b00100110;
Representao hexadecimal:
PORTB = 0x26;
Representao octal:
PORTB = 046;
NOTA:
COMANDOS QUE FAZEM PARTE DA ESTRUTURA DO C, COMO POR EXEMPLO: IF, WHILE, FOR,
SWITH , VOID MAIN, ENTRE OUTROS, OBRIGATRIAMENTE DEVERO SER DECLARADOS EM
MNSCULO.
A arte de aprender Linguagem C com mikroC PRO for PIC Introduo a Linguagem C
Pgina 20 de 40
PORTA.RA5 = 0; // -->> faz referncia ao pino RA5 do PIC.
PORTD.RD7 = 1; // -->> faz referncia ao pino RD7 do PIC.
TRISB.RB0 = 1; // -->> faz referencia ao bit 0 do registrador TRISB
T0CON.PSA = 0; // -->> faz referncia ao bit 3
Estrutura de um programa em C
[<tipo>] nome_da_funcao([<parmetros>])
[<declarao de parmetros>]
{
/*
Este trecho reservado para o corpo da funo_nome, com a declarao de suas
variveis locais, seus comandos e funes de trabalho. Esta funo pode ser
chamada de sub-rotina do programa.
*/
[return ou return() ou return(valor)]
}
void main([<parmetros>])
{
/*
Este trecho reservado para o corpo da funo, com a declarao de suas
variveis locais, seus comandos e funes de trabalho. Aqui esto os
primeiros comandos que sero executados no programa.
*/
}
Toda a informao situada entre colchetes "[" e "]" indica informaes que
podem ou no estar presentes em um programa.
Vamos comentar cada bloco de programa:
O primeiro bloco: Os comentrios gerais
#include "minhas_funcoes.h"
/* inclumos em nosso programa as bibliotecas de funes que esto no arquivo
minhas_funcoes.h.
*/
int a ; //definimos a varivel a como inteiro e como sendo global
int b; //definimos a varivel b como inteiro e como sendo global
[<tipo>] nome_da_funcao([<parmetros>])
[<declarao de parmentros>]
{
/*
Este trecho reservado para o corpo da nome_da_funcao, com a declarao de
suas variveis locais, seus comandos e funes de trabalho. Esta funo pode
ser chamada de sub-rotina do programa.
*/
Este ltimo bloco trata-se de uma funo que carrega o nome nome_da_funcao.
Seu tipo pode ou no ser explicitado. Caso no seja, qualquer funo ser do
tipo int por default.
Esta funo no faz parte da funo main() e dever ser chamada em algum
momento pelas funo main() ou por outra funo para seja executados seus
comandos. Podemos no momento da chamada da funo enviar parmetros (estudaremos
mais sobre as funes a seguir).
No final da funo, encontramos o comando return, cujo objetivo retornar
a funo que a chamou um valor de retorno da funo.
No obrigatrio o uso do comando return, caso no precisemos retornar
nenhum valor na funo.
Exemplo de funo de subrotina:
void funcao(void) {
PORTB = ~ PORTB;
return;
}
A arte de aprender Linguagem C com mikroC PRO for PIC Introduo a Linguagem C
Pgina 22 de 40
void main([<parmetros>])
{
/*
Este trecho reservado para o corpo da funo, com a declarao de suas
variveis locais, seus comandos e funes de trabalho. Aqui esto os
primeiros comandos que sero executados no programa.
*/
}
void main()
{
PORTB = 0;
TRISB = 0;
PORTB = ~PORTB;
Delay_ms(1000);
}
NOTA:
ANTES DE CHAMARMOS QUALQUER FUNO DO PROGRAMA, COMO POR EXEMPLO EXECUTAR UMA
SUBROTINA QUALQUER, DEVEMOS GARANTIR QUE NOSSO COMPILADOR J A RECONHECEU. NO
MOMENTO DA COMPILAO, O PR-COMPILADOR, RESPONSVEL PELO RECONHECIMENTO DA
ESTRUTURA DO PROGRAMA, NO PODE ENCONTRAR UMA CHAMADA DE UMA FUNO SEM ANTES DE
RECONHECE-LA. PARA EVITAR ESSE ERRO DE COMPILAO, RECOMENDADO QUE COLOQUEMOS
O PROTTIPO DE FUNO NO PROGRAMA A CADA INSERO DE UMA NOVA FUNO.
void InitMain()
{
PORTB = 0;
TRISB = 0;
ADCON1 |= 0x0F;
PORTA = 255;
TRISA = 255;
PORTC = 0x00;
TRISC = 0;
PWM1_Init(5000);
}//~
void main()
{
initMain();
j = 127;
oj = 0;
PWM1_Start();
while (1)
{
if (Button(&PORTA, 0,1,1))
j++ ;
if (Button(&PORTA, 1,1,1))
j-- ;
if (oj != j)
{
PWM1_Set_Duty(j);
oj = j;
PORTB = oj;
}
Delay_ms(200);
}
}//~!
A arte de aprender Linguagem C com mikroC PRO for PIC Introduo a Linguagem C
Pgina 24 de 40
/*
* Project name:
PWM_Test_01 (PWM library Demonstration)
* Copyright:
(c) MikroElektronika, 2009.
* Test configuration:
MCU: P18F4520
Dev.Board: BIGPIC3
Oscillator: HS, 10.0 MHz
Ext. Modules: -
SW: MikroC PRO v2.50
* NOTES:
None.
*/
void InitMain()
{
PORTB = 0;
TRISB = 0;
ADCON1 |= 0x0F;
PORTA = 255;
TRISA = 255;
PORTC = 0x00;
TRISC = 0;
PWM1_Init(5000);
}//~
j = 127;
oj = 0;
PWM1_Start();
while (1) {
if (Button(&PORTA, 0,1,1))
j++ ;
if (Button(&PORTA, 1,1,1))
j-- ;
if (oj != j)
{
PWM1_Set_Duty(j);
oj = j;
PORTB = oj;
}
Delay_ms(200);
}
}//~!
Prottipos de Funes
A arte de aprender Linguagem C com mikroC PRO for PIC Introduo a Linguagem C
Pgina 26 de 40
void minha_rotina ();
/*prottipo de funo, esta linha de programa deve ser colocada no topo do programa ,
junto com as declaraes;*/
void main()
{
// aqui esta meu programa principal
}
Os identificadores
Estruturas de Controle
if (condio) comando;
ou
void main() {
char a = 10;
char b = 0 ;
if (a) b--;
}
A varivel "a" foi atribuda o valor 10, que diferente de zero (0).
Conseqentemente, o comando if ser executado e a condio de decremento da
varivel b ser executado;
if (a) b--;
if (expresso)
comando 1
else
comando 2
Exemplo:
if (x > 5)
z = 10;
else
z = 20;
A arte de aprender Linguagem C com mikroC PRO for PIC Introduo a Linguagem C
Pgina 28 de 40
if (a > b) b = a; /* se a expresso a > b for verdadeira, a varivel "b" assume o valor
da "a"*/
if (b < a) b = 10; /* se a expresso a < b for verdadeira, a varivel "b" assume o valor
10*/
if (a != b) b = 55; /* se a expresso a !=b (diferente) for verdadeira, a varivel "b"
assume o valor 55*/
if ( (a + b) > (b + d) ) b++; /* se a expresso (a + b) > (b + d) for verdadeira, a
varivel "b" ser incrementada em uma unidade.*/
Observaes importantes:
O operador de atribuio de igualdade (=) em C diferente do operador
relacional de igualdade (==). Para testar a condio de uma varivel qualquer,
utilizamos o operador relacional de igualdade (==). Acompanhe:
if (a == b) c = 10;
diferente de
if (a = b) c = 10;
if ( PORTB == PORTC)
{ //blocos de comandos
a++;
PORTB.F0 = 1;
d = c + e;
}
Exemplo:
void main()
{
int contador = 10;
int sinal = 5;
O comando switch
O comando switch uma forma mais clara e elegante de tomar deciso dentro
de um programa em C. Diferente do comando if, a estrutura switch no aceita
expresso para a tomada de deciso, mas s aceita constante.
switch (varivel)
{
case constante1:
declarao1A;
declarao1B;
declarao1N;
break;
case constante2:
declarao2A;
declarao2B;
declarao2N;
break;
default;
declarao_default;
}
A arte de aprender Linguagem C com mikroC PRO for PIC Introduo a Linguagem C
Pgina 30 de 40
Acompanhe o exemplo:
void main()
{
int contador = 10;
int sinal = 5;
switch(contador)
{
case 2:
sinal++;
break;
case 1:
sinal = 2;
break;
case 10:
contador--;
break;
default:
sinal = 0;
}
}
Estruturas de Repetio
O comando For
O lao for utilizado quando necessitamos de um ciclo de repeties
controlado, pois em sua declarao podemos inicializar e incrementar ou
decrementar a varivel de controle. Antes de serem executados os comandos do
lao For-next, primeiramente avaliada a condio do teste. Caso seja
verdadeira, so executados os comandos do lao. A cada ciclo que executado o
fao for, a varivel de controle ser incrementada ou decrementada no valor
programado no incremento.
Veja a estrutura do comando For :
Microgenios Treinamentos, Kits de desenvolvimento e muito mais...
Pgina 31 de 40
for (inicializao ; condio ; incremento/decremento ) comando;
ou
em que:
inicializao: expresso vlida utilizada normalmente para inicializao da
varivel de controle do lao.
condio: condio para que decide pela continuidade ou no do lao de
repetio, enquanto esta condio for verdadeira, o lao for permanecer em
execuo.
Incremento/decremento: "valor incrementado em" a cada repetio do lao
for.
Exemplo:
int contador;
for (contador = 0 ; contador = 10 ; contador++ ) PORTB = contador;
int v, d = 10;
for (v = 0 ; v <= d ; v++)
{
Comando A;
Comando B;
}
int atraso;
for (atraso = 0 ; atraso < 1000 ; atraso++);
A arte de aprender Linguagem C com mikroC PRO for PIC Introduo a Linguagem C
Pgina 32 de 40
O lao for acima faz com que o processamento fique incrementando
constantemente a varivel atraso em 1 at que esta varivel seja igual ao valor
1000;
Observe o fragmento de programa seguinte vlido dentro do loop for:
No exemplo acima a varivel n ser incrementada 100 vezes, desde que o pino
RB0 permanea em estado lgico alto. Se o pino RB0 em algum momento do lao cair
para nvel lgico baixo, o loop ser imediatamente encerrado.
Programa Exemplo:
Aproveitando que estamos estudando as estruturas do lao de repetio for,
vamos elaborar um programa que pisca um led conectado ao pino RD0 do PIC
utilizando os recursos do lao for.
Acompanhe o esquema abaixo:
void main()
{
TRISD = 0;
while(1)
{
atraso(); //chama rotina de perda de tempo
PORTD = ~PORTD; // inverte os estados do PORTD do PIC
}
}
O lao while
void main()
{
while (1) /* condio a ser testada. Neste exemplo a condio sempre ser verdadeira
(1);*/
{
declarao 1;
declarao 2;
declarao n;
}
}
A arte de aprender Linguagem C com mikroC PRO for PIC Introduo a Linguagem C
Pgina 34 de 40
void main()
{
int a = 25;
while (a = 5)
{
a++;
PORTB = a;
}
}
Repare que no exemplo acima o valor a condio do lao while falsa, neste
caso os comandos do lao no sero executados no programa at que a condio
seja verdadeira, ou seja, at que a = 5.
O lao do - while
O comando do - while forma uma estrutura de repetio diferente dos
comandos while e for estudado anteriormente. Sua diferena fundamental com
relao as outras tradicionais laos de loop while e for est no fato da
avaliao da condio de teste ser no final do lao de repetio, contrrio dos
outros laos que estudamos, que testam as condies no incio de cada ciclo.
formato geral:
ou
do
{
comando 1;
comando 2;
} while (condio de teste);
void main()
{
int a = 0; //declara a varivel a como inteiro com o valor 0
do
{
a++; //incrementa a varivel a em uma unidade
PORTD = ~PORTD; //inverte os estados do PORTD
}
while(a > 100); // enquanto a < 100 permanece no loop do-while;
}
Break
O comando break, na linguagem C, utilizado para interromper (quebrar)
qualquer lao de repetio instantaneamente. No momento da execuo do loop, ao
encontrar o comando break, o lao de repetio finalizado.
Exemplo:
Continue
O comando continue reinicia novamente o teste da condio do lao de
repetio. Toda a vez que no lao for encontrado o comando continue, os comandos
seguintes no sero executados no lao.
Exemplo:
void main()
{
int a = 0;
do
{
a++; //incrementa a varivel A em uma unidade
continue; //retorna para o incio do lao de repetio
PORTD = ~PORTD; //inverte os estados dos PORTD
} while(a < 100); /*enquanto a varivel a for menor que 100 a rotina do-while ser
executada*/.
}
A arte de aprender Linguagem C com mikroC PRO for PIC Introduo a Linguagem C
Pgina 36 de 40
CAPITULO 2
Declarao de variveis:
Nas variveis podemos declarar desta forma:
[modificador] [tipo] [letra_do_modificador][letra_do_tipo][nome_variavel];
EX:
Declarao de funes:
Podemos utilizar a mesma formatao para declarao de funes, excluindo a
funo main():
[modificador] [tipo] [letra_do_modificador][letra_do_tipo][nome_funcao]
[parametros];
EX:
Identao:
Um dos recursos mais importantes e necessarios para a escrita de um
programa legvel, ela nada mais que o uso de recuos no seu cdigo para
identificao de blocos de cdigo.
Em nosso curso utilizaremos o recuo de 3 espaos.
Ex:
TABELA ASCII
Dec Binrio Hex ASCII Dec Binrio Hex ASCII Dec Binrio Hex ASCII Dec Binrio Hex ASCII
1 0b00000001 0x01 SOH 65 0b01000001 0x41 A 129 0b10000001 0x81 193 0b11000001 0xC1
2 0b00000010 0x02 STX 66 0b01000010 0x42 B 130 0b10000010 0x82 194 0b11000010 0xC2
3 0b00000011 0x03 ETX 67 0b01000011 0x43 C 131 0b10000011 0x83 195 0b11000011 0xC3
4 0b00000100 0x04 EOT 68 0b01000100 0x44 D 132 0b10000100 0x84 196 0b11000100 0xC4
5 0b00000101 0x05 ENQ 69 0b01000101 0x45 E 133 0b10000101 0x85 197 0b11000101 0xC5
6 0b00000110 0x06 ACK 70 0b01000110 0x46 F 134 0b10000110 0x86 198 0b11000110 0xC6
7 0b00000111 0x07 BEL 71 0b01000111 0x47 G 135 0b10000111 0x87 199 0b11000111 0xC7
8 0b00001000 0x08 BS 72 0b01001000 0x48 H 136 0b10001000 0x88 200 0b11001000 0xC8
9 0b00001001 0x09 HT 73 0b01001001 0x49 I 137 0b10001001 0x89 201 0b11001001 0xC9
10 0b00001010 0x0A LF 74 0b01001010 0x4A J 138 0b10001010 0x8A 202 0b11001010 0xCA
11 0b00001011 0x0B VT 75 0b01001011 0x4B K 139 0b10001011 0x8B 203 0b11001011 0xCB
12 0b00001100 0x0C FF 76 0b01001100 0x4C L 140 0b10001100 0x8C 204 0b11001100 0xCC
13 0b00001101 0x0D CR 77 0b01001101 0x4D M 141 0b10001101 0x8D 205 0b11001101 0xCD
14 0b00001110 0x0E SO 78 0b01001110 0x4E N 142 0b10001110 0x8E 206 0b11001110 0xCE
15 0b00001111 0x0F SI 79 0b01001111 0x4F O 143 0b10001111 0x8F 207 0b11001111 0xCF
16 0b00010000 0x10 DLE 80 0b01010000 0x50 P 144 0b10010000 0x90 208 0b11010000 0xD0
17 0b00010001 0x11 D1 81 0b01010001 0x51 Q 145 0b10010001 0x91 209 0b11010001 0xD1
18 0b00010010 0x12 D2 82 0b01010010 0x52 R 146 0b10010010 0x92 210 0b11010010 0xD2
19 0b00010011 0x13 D3 83 0b01010011 0x53 S 147 0b10010011 0x93 211 0b11010011 0xD3
20 0b00010100 0x14 D4 84 0b01010100 0x54 T 148 0b10010100 0x94 212 0b11010100 0xD4
21 0b00010101 0x15 NAK 85 0b01010101 0x55 U 149 0b10010101 0x95 213 0b11010101 0xD5
22 0b00010110 0x16 SYN 86 0b01010110 0x56 V 150 0b10010110 0x96 214 0b11010110 0xD6
23 0b00010111 0x17 ETB 87 0b01010111 0x57 W 151 0b10010111 0x97 215 0b11010111 0xD7
24 0b00011000 0x18 CAN 88 0b01011000 0x58 X 152 0b10011000 0x98 216 0b11011000 0xD8
25 0b00011001 0x19 EM 89 0b01011001 0x59 Y 153 0b10011001 0x99 217 0b11011001 0xD9
26 0b00011010 0x1A SUB 90 0b01011010 0x5A Z 154 0b10011010 0x9A 218 0b11011010 0xDA
27 0b00011011 0x1B ESC 91 0b01011011 0x5B [ 155 0b10011011 0x9B 219 0b11011011 0xDB
28 0b00011100 0x1C FS 92 0b01011100 0x5C \ 156 0b10011100 0x9C 220 0b11011100 0xDC
29 0b00011101 0x1D GS 93 0b01011101 0x5D ] 157 0b10011101 0x9D 221 0b11011101 0xDD
30 0b00011110 0x1E RS 94 0b01011110 0x5E ^ 158 0b10011110 0x9E 222 0b11011110 0xDE
31 0b00011111 0x1F US 95 0b01011111 0x5F _ 159 0b10011111 0x9F 223 0b11011111 0xDF
32 0b00100000 0x20 SPC 96 0b01100000 0x60 ` 160 0b10100000 0xA0 224 0b11100000 0xE0
33 0b00100001 0x21 ! 97 0b01100001 0x61 a 161 0b10100001 0xA1 225 0b11100001 0xE1
34 0b00100010 0x22 " 98 0b01100010 0x62 b 162 0b10100010 0xA2 226 0b11100010 0xE2
35 0b00100011 0x23 # 99 0b01100011 0x63 c 163 0b10100011 0xA3 227 0b11100011 0xE3
36 0b00100100 0x24 $ 100 0b01100100 0x64 d 164 0b10100100 0xA4 228 0b11100100 0xE4
37 0b00100101 0x25 % 101 0b01100101 0x65 e 165 0b10100101 0xA5 229 0b11100101 0xE5
38 0b00100110 0x26 & 102 0b01100110 0x66 f 166 0b10100110 0xA6 230 0b11100110 0xE6
39 0b00100111 0x27 ' 103 0b01100111 0x67 g 167 0b10100111 0xA7 231 0b11100111 0xE7
40 0b00101000 0x28 ( 104 0b01101000 0x68 h 168 0b10101000 0xA8 232 0b11101000 0xE8
41 0b00101001 0x29 ) 105 0b01101001 0x69 i 169 0b10101001 0xA9 233 0b11101001 0xE9
42 0b00101010 0x2A * 106 0b01101010 0x6A j 170 0b10101010 0xAA 234 0b11101010 0xEA
43 0b00101011 0x2B + 107 0b01101011 0x6B k 171 0b10101011 0xAB 235 0b11101011 0xEB
44 0b00101100 0x2C , 108 0b01101100 0x6C l 172 0b10101100 0xAC 236 0b11101100 0xEC
45 0b00101101 0x2D - 109 0b01101101 0x6D m 173 0b10101101 0xAD 237 0b11101101 0xED
46 0b00101110 0x2E . 110 0b01101110 0x6E n 174 0b10101110 0xAE 238 0b11101110 0xEE
47 0b00101111 0x2F / 111 0b01101111 0x6F o 175 0b10101111 0xAF 239 0b11101111 0xEF
48 0b00110000 0x30 0 112 0b01110000 0x70 p 176 0b10110000 0xB0 240 0b11110000 0xF0
49 0b00110001 0x31 1 113 0b01110001 0x71 q 177 0b10110001 0xB1 241 0b11110001 0xF1
50 0b00110010 0x32 2 114 0b01110010 0x72 r 178 0b10110010 0xB2 242 0b11110010 0xF2
51 0b00110011 0x33 3 115 0b01110011 0x73 s 179 0b10110011 0xB3 243 0b11110011 0xF3
52 0b00110100 0x34 4 116 0b01110100 0x74 t 180 0b10110100 0xB4 244 0b11110100 0xF4
53 0b00110101 0x35 5 117 0b01110101 0x75 u 181 0b10110101 0xB5 245 0b11110101 0xF5
54 0b00110110 0x36 6 118 0b01110110 0x76 v 182 0b10110110 0xB6 246 0b11110110 0xF6
55 0b00110111 0x37 7 119 0b01110111 0x77 w 183 0b10110111 0xB7 247 0b11110111 0xF7
56 0b00111000 0x38 8 120 0b01111000 0x78 x 184 0b10111000 0xB8 248 0b11111000 0xF8
57 0b00111001 0x39 9 121 0b01111001 0x79 y 185 0b10111001 0xB9 249 0b11111001 0xF9
58 0b00111010 0x3A : 122 0b01111010 0x7A z 186 0b10111010 0xBA 250 0b11111010 0xFA
59 0b00111011 0x3B ; 123 0b01111011 0x7B { 187 0b10111011 0xBB 251 0b11111011 0xFB
60 0b00111100 0x3C < 124 0b01111100 0x7C | 188 0b10111100 0xBC 252 0b11111100 0xFC
61 0b00111101 0x3D = 125 0b01111101 0x7D } 189 0b10111101 0xBD 253 0b11111101 0xFD
62 0b00111110 0x3E > 126 0b01111110 0x7E ~ 190 0b10111110 0xBE 254 0b11111110 0xFE
63 0b00111111 0x3F ? 127 0b01111111 0x7F 191 0b10111111 0xBF 255 0b11111111 0xFF
64 0b01000000 0x40 @ 128 0b10000000 0x80 192 0b11000000 0xC0 0 0b00000000 0x00 NULL
A arte de aprender Linguagem C com mikroC PRO for PIC Introduo a Linguagem C
Pgina 2 de 40