#include "C:\Users\Sergio\Desktop\Proyecto Marcador\Programacion entera\programamarcador.h"
#use I2C(MASTER,SDA=PIN_C4,SCL=PIN_C3)
int disp[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90};
long int t_uni,t_dec,t_cen,t_mil,tiempo=1000,a_uni,a_dec,a_cen,b_uni,b_dec,b_cen,tantoa,tantob;
int faltasa=0,faltasb=0,periodo=0;
char lectura;
void visualizardisplays() //Viualiza en el marcador la informacion
{
t_mil = tiempo/1000; //Ecuaciones para el temporizador
t_cen = (tiempo%1000)/100;
t_dec = ((tiempo%1000)%100)/10;
t_uni = ((tiempo%1000)%100)%10;
a_dec=tantoa/100; //Ecuaciones para los tantos equipo A
a_cen=(tantoa%100)/10;
a_uni=((tantoa%100)%10);
b_dec = tantob/100; //Ecuaciones para los tantos equipo B
b_cen = (tantob%100)/10;
b_uni = ((tantob%100)%10);
i2c_start();
i2c_write(0b01110000); // Dirección (Escritura. SAA nº1
i2c_write(0b00000000); // Direcciono registro de control
i2c_write(0b01000111); // Palabra de Control: Luminosidad +12mA,
i2c_write(disp[t_uni]);
i2c_write(disp[T_dec]);
i2c_write(disp[t_cen]);
i2c_write(disp[t_mil]);
i2c_stop();
i2c_start();
i2c_write(0b01110110); // Dirección (Escritura. SAA nº2
i2c_write(0b00000000); // Direcciono registro de control
i2c_write(0b01000111); // Palabra de Control: Luminosidad +12mA,
i2c_write(disp[periodo]);
i2c_write(disp[a_uni]);
i2c_write(disp[a_cen]);
i2c_write(disp[a_dec]);
i2c_stop();
i2c_start();
i2c_write(0b01110100); // Dirección (Escritura). SAA nº3
i2c_write(0b00000000); // Direcciono registro de control
i2c_write(0b01000111); // Palabra de Control: Luminosidad +12mA,
i2c_write(disp[0]);
i2c_write(disp[b_uni]);
i2c_write(disp[b_cen]);
i2c_write(disp[b_dec]);
i2c_stop();
}
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
visualizardisplays();
while(TRUE)
{
lectura = input(PIN_C7);
if(lectura=='a') //Comienza el tiempo
{
set_timer1(0); // es aqui donde tengo que poner el temporizador pero no sé como hacerlo
}
if(lectura=='b') //Para el tiempo
{
enable_interrupts(int_timer0);
}
if(lectura=='c') //Resetea el tiempo
{
}
if(lectura=='m') //Suma tanto equipo A
{
tantoa++;
}
if(lectura=='n') //Resta tanto equipo A
{
tantoa--;
}
if(lectura=='k') //Suma tanto equipo B
{
tantob++;
}
if(lectura=='l') //Resta tanto equipo B
{
tantob--;
}
if(lectura=='p') //Suma periodo
{
periodo++;
}
if(lectura=='r') //Suma falta equipo A
{
faltasa++;
}
if(lectura=='g') //Suma falta equipo B
{
faltasb++;
}
if(lectura=='h') //Reset Faltas
{
faltasa=0;
faltasb=0;
}
if(periodo>4) //Se poone el periodo a 0 cuando supera 4
{
periodo=0;
}
if(faltasa>5) //Se pone las faltas a 0 cuando superan 5
{
faltasa=0;
}
if(faltasb>5)
{
faltasb=0;
}
delay_ms(50);
// manda las faltas que tiene el equipo A:
switch(faltasa)
{
case 0:
output_bit(PIN_B0,0);
output_bit(PIN_B1,0);
output_bit(PIN_B2,0);
output_bit(PIN_B3,0);
output_bit(PIN_B4,0);
break;
case 1:
output_bit(PIN_B0,1);
output_bit(PIN_B1,0);
output_bit(PIN_B2,0);
output_bit(PIN_B3,0);
output_bit(PIN_B4,0);
break;
case 2:
output_bit(PIN_B0,1);
output_bit(PIN_B1,1);
output_bit(PIN_B2,0);
output_bit(PIN_B3,0);
output_bit(PIN_B4,0);
break;
case 3:
output_bit(PIN_B0,1);
output_bit(PIN_B1,1);
output_bit(PIN_B2,1);
output_bit(PIN_B3,0);
output_bit(PIN_B4,0);
break;
case 4:
output_bit(PIN_B0,1);
output_bit(PIN_B1,1);
output_bit(PIN_B2,1);
output_bit(PIN_B3,1);
output_bit(PIN_B4,0);
break;
case 5:
output_bit(PIN_B0,1);
output_bit(PIN_B1,1);
output_bit(PIN_B2,1);
output_bit(PIN_B3,1);
output_bit(PIN_B4,1);
break;
}
// manda las faltas que tiene el equipo B:
switch(faltasb)
{
case 0:
output_bit(PIN_B5,0);
output_bit(PIN_B6,0);
output_bit(PIN_B7,0);
output_bit(PIN_C0,0);
output_bit(PIN_C1,0);
break;
case 1:
output_bit(PIN_B5,1);
output_bit(PIN_B6,0);
output_bit(PIN_B7,0);
output_bit(PIN_C0,0);
output_bit(PIN_C1,0);
break;
case 2:
output_bit(PIN_B5,1);
output_bit(PIN_B6,1);
output_bit(PIN_B7,0);
output_bit(PIN_C0,0);
output_bit(PIN_C1,0);
break;
case 3:
output_bit(PIN_B5,1);
output_bit(PIN_B6,1);
output_bit(PIN_B7,1);
output_bit(PIN_C0,0);
output_bit(PIN_C1,0);
break;
case 4:
output_bit(PIN_B5,1);
output_bit(PIN_B6,1);
output_bit(PIN_B7,1);
output_bit(PIN_C0,1);
output_bit(PIN_C1,0);
break;
case 5:
output_bit(PIN_B5,1);
output_bit(PIN_B6,1);
output_bit(PIN_B7,1);
output_bit(PIN_C0,1);
output_bit(PIN_C1,1);
break;
}
visualizardisplays();
}
}