Ir ao conteúdo
  • Cadastre-se

guigo6936

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

0
  1. Ola pessoal, sou novo no forum e nao sei utiliza-lo muito bem ainda então me predoem se estiver postando no local errado, estou começando no ramo de jukebox e preciso fazer umas alterações num codigo que possuo aqui, porém sou novato na area de programação peço que se puderem me ajudem:D estou com dois problemas primeiro que preciso criar uma rotina que conte os creditos inseridos na maq tipo se receber 1 pulso enviar as teclas m crtl i 1 f alt nesta sequencia para kb do pc segundo preciso fazer com que o sistema operacional reconheça o pic como se fosse um teclado sem precisar de auxilo externo para isso ta ae meu code #fuses INTRC_IO,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT,NOMCLR,PUT // Definição dos Fuses #use delay(clock=4000000) // Clock de maquina //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *// //* Definição das Variaveis *// //* *// //* *// //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *// #zero_ram unsigned char cont_pulsos; // Contagem de Pulsos Recebidos unsigned char pulsos_rx; // Contagem de pulsos do Noteiro unsigned char filtro_noteiro; unsigned long tempo_noteiro; unsigned long filtro_10; unsigned long filtro_20; unsigned long filtro_30; unsigned long filtro_40; unsigned long filtro_50; unsigned long filtro_60; unsigned long filtro_70; unsigned long filtro_80; unsigned long filtro_90; unsigned long filtro_100; unsigned long filtro_200; unsigned long filtro_300; unsigned long filtro_400; unsigned long filtro_500; unsigned long filtro_600; unsigned long filtro_700; unsigned long filtro_800; unsigned long filtro_900; //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *// //* Definição dos Flags *// //* *// //* *// //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *// int1 busy_contagem; // Indica que a Contagem está em Operação int1 nota_recebida; // Indica a Recepção de uma Nota pelo o noteiro. int1 tempo_10ms; int1 noteiro_st; int1 bt_1; //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *// //* Entrada *// //* *// //* *// //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *// //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *// //* Saidas *// //* *// //* *// //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *// #define OUT_CLOCK PIN_B1 // Saida de Clock #define OUT_DATA PIN_A3 // Saida de Dados #define inibidor_noteiro PIN_A2 // Inibidor Noteiro // 0-> Noteiro Normal // 1-> Noteiro travado //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *// //* Interrupção Externa *// //* *// //* *// //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *// #INT_EXT void trata_int_externa(void) { } //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *// //* Interrupção Timer 1 *// //* *// //* *// //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *// #INT_TIMER1 void trata_int_timer1(void) { tempo_10ms = 1; set_timer1(65350); } //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *// //* Configuração dos Fuses *// //* *// //* *// //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *// void output_scancode_ps2(unsigned char scancode) { int salida, unos=1; output_high(OUT_CLOCK); output_high(OUT_DATA); delay_us(10); output_high(OUT_CLOCK); output_low(OUT_DATA); delay_us(10); output_low(OUT_CLOCK); output_low(OUT_DATA); delay_us(10); salida = 1; do { output_high(OUT_CLOCK); output_bit(OUT_DATA, scancode&0x01); delay_us(10); output_low(OUT_CLOCK); output_bit(OUT_DATA, scancode&0x01); delay_us(10); if ((scancode & 0x01) == 0x01) {unos++;} scancode = scancode>>1; salida++; }while(salida < 9); output_high(OUT_CLOCK); output_bit(OUT_DATA, unos&0x01); delay_us(10); output_low(OUT_CLOCK); output_bit(OUT_DATA, unos&0x01); delay_us(10); output_high(OUT_CLOCK); output_high(OUT_DATA); delay_us(10); output_low(OUT_CLOCK); output_high(OUT_DATA); delay_us(10); output_high(OUT_CLOCK); output_high(OUT_DATA); delay_ms(5); } //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *// //* MAIN *// //* *// //* *// //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *// void main(void) { unsigned int contador_vezes; // ***** Inicializa IOS ***** // setup_comparator(NC_NC_NC_NC); output_a(0b00001100); // Mantém porta em 0 output_b(0b00000010); // Mantém portb em 0 // ***** Configura IOS ***** // // **** Bits-76543210*******// set_tris_a(0b11000011); // Configura PORTA set_tris_b(0b11110001); // Configura PORTB EXT_INT_EDGE(H_TO_L); SETUP_TIMER_1(T1_INTERNAL | T1_DIV_BY_8); set_timer1(64275); // ***** Configura INT *****// // enable_interrupts(INT_EXT); enable_interrupts(INT_TIMER1); enable_interrupts(GLOBAL); delay_ms(100); while(true) { if(tempo_10ms == 1) { if(input(pin_b0) == 0) { if(noteiro_st == 0) { filtro_noteiro++; if(filtro_noteiro >= 25) { noteiro_st = 1; output_low(inibidor_noteiro); cont_pulsos++; busy_contagem = 1; filtro_noteiro = 0; } } } else { filtro_noteiro = 0; noteiro_st = 0; if(busy_contagem == 1) { tempo_noteiro++; if(tempo_noteiro > 7500) { pulsos_rx = cont_pulsos; cont_pulsos = 0; busy_contagem = 0; nota_recebida = 1; tempo_noteiro = 0; if(nota_recebida == 1) { for(contador_vezes = 1; contador_vezes < pulsos_rx; ++contador_vezes) { output_low(pin_a4); output_scancode_ps2(0x2D); //r delay_ms(20); } nota_recebida = 1; } output_high(inibidor_noteiro); delay_ms(2500); } } else { tempo_noteiro = 0; } } output_low(pin_b2); output_high(pin_b3); #include <16F628A.h> // Processador Utilizado

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!