lunes, 17 de mayo de 2010

Coin2key basta de estar configurando tus multijuegos



Este pequeño programa hecho en el pic 12f629 de mi autoria,tiene como objetivo facilitar la configuración de la entrada de los creditos casi cualquier sistema (como multijuegos ,Sistema de tiempo,Neo geo base o tragamonedas) ...


Su codigo fuente

//*******************************************************************
//*********************Coin2key by jimbo v1.0*************************
#include <12f629.h>
#include
#include

#Fuses INTRC_IO,NOWDT,PROTECT,NOBROWNOUT,NOMCLR,PUT
#use delay (clock=4000000)

#use fast_io(a)

struct
{
char dato : 1;
char enable : 1;

} BANDERAS;

enum
{
menu_1

}MODO;

char i,j;
char leer_A,cont_p,pls;

//*******************************************************************
// INTERRUPCION POR EXT *
//*******************************************************************
#INT_EXT
void Interrup_ext()
{
if(!BANDERAS.enable)
{
cont_p++;
output_high(PIN_A1);
delay_ms(50);
output_low(PIN_A1);

if(leer_A==1 && cont_p==1)
{
BANDERAS.enable=1;
MODO=menu_1;
BANDERAS.dato=1;
pls=1;
}

if(leer_A==2 && cont_p==2)
{
BANDERAS.enable=1;
MODO=menu_1;
BANDERAS.dato=1;
pls=1;
}

if(leer_A==4 && cont_p==3)
{
BANDERAS.enable=1;
MODO=menu_1;
BANDERAS.dato=1;
pls=1;
}

if(leer_A==0 || leer_A==3 || leer_A>=5)
{
pls=0;
cont_p=0;
}
}
}
//*******************************************************************
// INTERRUPCION POR TIMER 1 CADA 50ms *
//*******************************************************************
#INT_TIMER1
void Interrup_TIMER1()
{
set_timer1(-6250);
leer_A=(input_a() & 0b00111000);
leer_A=leer_A>>3;

}
void main()
{
set_tris_a(0b00111100);
setup_timer_1(T1_INTERNAL | T1_DIV_BY_8);
set_timer1(-6250);

setup_comparator(NC_NC_NC_NC);
enable_interrupts(INT_TIMER1);
enable_interrupts(INT_EXT);
enable_interrupts(GLOBAL);

output_a(0x01);
BANDERAS.dato=0;
BANDERAS.enable=0;
pls=0;
delay_ms(100);


while(true)
{

if(BANDERAS.dato)
{
BANDERAS.dato=0;
switch(MODO)
{
case menu_1:
{
for(j=1;j<=pls;j++) { for(i=0;i<=5;i++) { output_low(PIN_A0); delay_ms(10); } for(i=0;i<=5;i++) { output_high(PIN_A0); delay_ms(10); } } cont_p=0; BANDERAS.enable=0; break; } } } } }

//*******************************Fin************************************

Espero que les sirva a muchos en mi caso a sido de mucha ayuda especialmente con los multijuegos eso evita estar a cada rato conectado el disco duro y estar reconfigurando la entrada de las monedas ....

Funcionamiento

Dip 1 on y el resto off 1 moneda
Dip 2 on y el resto off 2 monedas
Dip 3 on y el resto off 3 monedas

in la entrada de la fichero
out la salidad a la interface

2 comentarios:

  1. en tu script me sale include file 12f629.h cannot be opened

    ResponderEliminar
  2. ESTOY INTERESADO EN ESTA INTERFACE QUIERO SABER SI LA VENDES?

    ResponderEliminar