igorh721 Postado Março 20, 2011 Denunciar Share Postado Março 20, 2011 Aqui está o esquema, montado no Proteus.o programa:#include<18F4520.h>#use delay(clock=20000000)#fuses HS,NOWDT,NOMCLR,LVP,NOBROWNOUT#define s1 input(pin_a0)#define s2 input(pin_a1)#define s3 input(pin_a2)char codigo (int valor){ char num [10]= { 0b00111111, 0b00000110, 0b01011011, 0b01001111, 0b01100110, 0b01101101, 0b01111101, 0b00000111, 0b01111111, 0b01100111, }; return num [valor]; }void unidade (int valor){ output_d(codigo(valor)); output_high(pin_d3);} void main() { int x=0 while (1) { if(input(pin_a0)==1) { delay_ms(500); x=++; delay_ms(500); x=++; delay_ms(500); x=++; delay_ms(500); x=++; delay_ms(500); x=++; delay_ms(500); x=++; delay_ms(500); x=++; delay_ms(500); x=++; delay_ms(500); x=++; delay_ms(500); } else { output_low(pin_c0); } } } é pra uma chave contar acrescentar um número até 9, já a segunda é para decrementar...Alguém pode me ajudar a fazer pelo menos a primeira chave?tá achando erros que só Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 CPP Postado Março 20, 2011 Denunciar Share Postado Março 20, 2011 Olá igorh721,Não dá pra ver direito o ID dos pinos do uC, mas seu código tem umas sintaxes estranhas, pelo menos eu não conheço.Apesar disso vou tentar ajustar algumas coisas no seu código ok.Se você tiver interesse, esse outro forum é mais especializado em programação de uC.http://www.forumnow.com.br/vip/mensagens.a...;tópico=3005345Abs#include<18F4520.h> #use delay(clock=20000000) // não CONHECO A DIRETIVA "use" #fuses HS,NOWDT,NOMCLR,LVP,NOBROWNOUT // NÃO CONHECO A DIRETIVA "fuses" // VOCE DEFINE s1, s2 E s3 MAS NÃO USA EM LUGAR NENHUM #define s1 input(pin_a0) #define s2 input(pin_a1) #define s3 input(pin_a2) char codigo (int valor) { char num [10]= {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x67}; return num [valor]; } void unidade (int valor) { output_d(codigo(valor)); output_high(pin_d3); } void main() { int x=0 while (1) { if (input(pin_a0)==1) { for (x = 0; x < 10; x++) { // ACREDITO QUE AS FUNCOES output_d, output_high E output_low DEVEM ENVIAR O SINAL AO DISPOSITIVO DESEJADO CERTO? unidade(x); delay_ms(500); output_low(pin_c0); } } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 igorh721 Postado Março 20, 2011 Autor Denunciar Share Postado Março 20, 2011 Mais alguém pode me dar um help aqui??? :wacko: Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
igorh721
Aqui está o esquema, montado no Proteus.
o programa:
#include<18F4520.h>
#use delay(clock=20000000)
#fuses HS,NOWDT,NOMCLR,LVP,NOBROWNOUT
#define s1 input(pin_a0)
#define s2 input(pin_a1)
#define s3 input(pin_a2)
char codigo (int valor)
{
char num [10]=
{
0b00111111,
0b00000110,
0b01011011,
0b01001111,
0b01100110,
0b01101101,
0b01111101,
0b00000111,
0b01111111,
0b01100111,
};
return num [valor];
}
void unidade (int valor)
{
output_d(codigo(valor));
output_high(pin_d3);
}
void main()
{
int x=0
while (1)
{
if(input(pin_a0)==1)
{
delay_ms(500);
x=++;
delay_ms(500);
x=++;
delay_ms(500);
x=++;
delay_ms(500);
x=++;
delay_ms(500);
x=++;
delay_ms(500);
x=++;
delay_ms(500);
x=++;
delay_ms(500);
x=++;
delay_ms(500);
x=++;
delay_ms(500);
}
else
{
output_low(pin_c0);
}
}
}
é pra uma chave contar acrescentar um número até 9, já a segunda é para decrementar...
Alguém pode me ajudar a fazer pelo menos a primeira chave?tá achando erros que só
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.