Buscar

Programaçao PIC aulas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Programação pic aulas:
//aula 1 
// teste de portas entada e saida, contadores e operaçoes matematicas
// para simular usar o pic 16f877A com o portb monitorado por leds
// e um botao no portA4 com acionamento no negativo.
// ao acionar o botão , o portB e multiplicado por 2 ex 1,2,4,8,16....
void main() 
{
//************************declarar as variaveis aqui*****************
int conta; // variavel conta (inteiro 16 bits)
//******************configuraçoes das entradas e saidas**************
TRISB = 0x00; // registrador tris sentido de dados portB "saida"
PORTB = 0X01; // escreve o valor de " no portb"
trisa.ra4 = 1; // registrandor tris manipulado como bit RA4 como entrada
//*********************************************************************
while(1) // laço de loop "inicio"
{
 if (porta.ra4 == 0) // laço if com condiçao da chave acionada "aciona em zero"
 {
 for (conta = 0;conta <7 ;conta++) // laço for contador
 {
 portb = portb * 2;
 Delay_ms (500);
 } // fim do for
 } // fim do if
 else // condiçao contraria do 1.o if " senão"
 {
 portb = 1;
 }
}// fim do laço de loop "while"
}// fim do main
//aula2
 // executa uma rotina 3x no portb ao se acionar um chave no A4 "pulso negativo"
void main() // inicio do main
{
//**************************declaração das variaveis****************************
char i; // variavel "i" como char 8bits
//********************config das portas e registradores*********************
 TRISB = 0x00; // port b config como saida
 trisa.ra4 = 1; // port A4 como entrada
 PORTB = 0x00; // portb começa com o valor de zero
//************************laço loop "while"*******************************
while (1)
{
 if (porta.ra4 == 0) // laço if condicional, so executa quando A4 = 0
 {
 
 for(i=0;i<3;i++) // laço de for, contador incrementa o valor de i em 3x
 {
 delay_ms (500);
 portb = 0x23;
 delay_ms (500);
 portb = 0xbf;
 delay_ms (500);
 portb = 0x10;
 } // fim do for
 
 }// fim do if
 
 PORTB = 0x00;
} //fim do loop
}// fim do main
// aula3
//acionamento de botao simples com a função button
// chaves no RB0 e RB1
// leds no RD0 e RD1
// Chave0 "RB0" ativa led1 "RD1" e chave1 "RB1" ativa led2 "RD0"
// acionamento não retentivo e independente.
// esse modelo o led e botao vao usar definiçoes com nomes especificos
// ******************declaração das definiçoes***********************
 #define bot_0 Button(&PORTB, 0, 50, 0)
 #define bot_1 Button(&PORTB, 1, 50, 0)
 #define led_0 PORTD.RD0
 #define led_1 PORTD.RD1
void main() {
//**********declaração das variaveis*******************************
bit flag1 ; //variavel de flag 1bit
bit flag2 ; //variavel de flag 1bit
//**************config das portas***********************************
 TRISB.RB0 = 1; // RB0 ENTRADA
 TRISB.RB1 = 1; // RB1 ENTRADA
 TRISD.RD0 = 0; // RD0 SAIDA
 TRISD.RD1 = 0; // RD1 SAIDA
 led_0 = 0;
 led_1 = 0;
 flag1 = 0;
 flag2 = 0;
 while(1) // inicio do loop
 {
//*************************************acionamento do led 1*********************
 if (bot_0 && flag1 == 0) // botao0 acionado led1 ligado
 {
 led_1 = 1;
 flag1= 1;
 }
 
 if (!bot_0 && flag1 == 1) // botao0 solto led1 desligado
 {
 led_1 = 0;
 flag1 = 0;
 }
 //****************************************************************************
 
 
 //*********************************acionmento do led 0 ************************
 if (bot_1 && flag2 == 0) // botao1 acionado led0 ligado
 {
 led_0 = 1;
 flag2 = 1;
 }
 if (!bot_1 && flag2 == 1) // botao1 solto led0 desligado
 {
 led_0 = 0;
 flag2 = 0;
 }
//******************************************************************************
 }// fim do loop
 
}//fim do main
// aula3
//acionamento de botao retentivo com a funçao button
// chaves no RB0 e RB1
// leds no RD0 e RD1
// Chave0 "RB0" ativa led1 "RD1" e chave1 "RB1" ativa led2 "RD0"
// acionamento retentivo e independente.
// esse modelo o led e botao vao usar definiçoes com nomes especificos
// ******************declaração das definiçoes***********************
 #define bot_0 Button(&PORTB, 0, 50, 0)
 #define bot_1 Button(&PORTB, 1, 50, 0)
 #define led_0 PORTD.RD0
 #define led_1 PORTD.RD1
void main() {
//**********declaração das variaveis*******************************
bit flag1 ; //variavel de flag 1bit
bit flag2 ; //variavel de flag 1bit
//**************config das portas***********************************
 TRISB.RB0 = 1; // RB0 ENTRADA
 TRISB.RB1 = 1; // RB1 ENTRADA
 TRISD.RD0 = 0; // RD0 SAIDA
 TRISD.RD1 = 0; // RD1 SAIDA
 led_0 = 0;
 led_1 = 0;
 flag1 = 0;
 flag2 = 0;
 while(1) // inicio do loop
 {
//*************************************acionamento do led 1*********************
 if (bot_0 && flag1 == 0) // botao0 acionado led1 ligado
 {
 led_1 = ~led_1; // inverte valor do led 1
 flag1= 1;
 }
 if (!bot_0 && flag1 == 1) // botao0 solto led1 desligado
 {
 flag1 = 0;
 }
 //****************************************************************************
 //*********************************acionmento do led 0 ************************
 if (bot_1 && flag2 == 0) // botao1 acionado led0 ligado
 {
 led_0 = ~led_0; // inverte valor led 0
 flag2 = 1;
 }
 if (!bot_1 && flag2 == 1) // botao1 solto led0 desligado
 {
 flag2 = 0;
 }
//******************************************************************************
 }// fim do loop
}//fim do main
 
 // aula 4
 //display de 7 segmentos nesse exemplo temos um display no portD e
 //o mesmo vai ser incrementado até 9 pelo botao 1 e decrementado ate 0
 //pelo botao 2
// funçao para acionamento do display " biblioteca"*************
char disp7(char numero)
{
 switch (numero)
 {
 case 0:return 0x3f;
 break;
 case 1:return 0x06;
 break;
 case 2:return 0x5B;
 break;
 case 3:return 0x4F;
 break;
 case 4:return 0x66;
 break;
 case 5:return 0x6D;
 break;
 case 6:return 0x7D;
 break;
 case 7:return 0x07;
 break;
 case 8:return 0x7F;
 break;
 case 9:return 0x6F;
 break;
 }
}
//*****************************fim da funcao display******************
 #define bot_1 Button(&PORTB, 0, 50, 0)
 #define bot_2 Button(&PORTB, 1, 50, 0)
void main() {
//************************declaração de variaveis*********************
char dec=0;
signed char conta; // variavel conta 8 bits sinalizado (-127 a +128)
bit flag1;
bit flag2;
//************************config das portas***************************
trisd = 0; // portd display
trisb.rb0 = 1; // b0 botao1
trisb.rb1 = 1; // b1 botao2
portd = 0;
portd = disp7(0);
while (1)
{
 if (bot_1 && flag1 == 0)
 {
 conta++;
 flag1 = 1;
 
 
 }
 if (!bot_1 && flag1 == 1)
 {
 flag1 = 0;
 }
 
 
 
 if (bot_2 && flag2 == 0)
 {
 conta--;
 flag2 = 1;
 }
 if (!bot_2 && flag2 == 1)
 {
 flag2 = 0;
 }
 if (conta < 0)
 conta = 0;
 else 
 if (conta > 9)
 conta = 9;
 
 portd = disp7(conta);
}
}

Outros materiais