Professional Documents
Culture Documents
h>
#fuses HS, NOWDT
#use delay(clock=4M)
//!#define use_portb_kbd TRUE
//!#include <KBD4x4.c>
//.............................................................................
int barrido[]={0b00000001,
0b00000010,
0b00000100,
0b00001000,
0b00010000,
0b00100000,
0b01000000,
0b10000000};
int nro1[]={0b00011000,
0b00111000,
0b01011000,
0b00011000,
0b00011000,
0b00011000,
0b00011000,
0b01111110};
int nro2[]={0b01111110,
0b01111110,
0b00000110,
0b01111110,
0b01111110,
0b01100000,
0b01111110,
0b01111110};
int nro3[]={0b01111110,
0b01111110,
0b00000110,
0b00011110,
0b00011110,
0b00000110,
0b01111110,
0b01111110};
int nro4[]={0b01100110,
0b01100110,
0b01100110,
0b01111110,
0b01111110,
0b00000110,
0b00000110,
0b00000110};
int nro5[]={0b01111110,
0b01111110,
0b01100000,
0b01111110,
0b01111110,
0b00000110,
0b01111110,
0b01111110};
int nro6[]={0b01111110,
0b01111110,
0b01100000,
0b01111110,
0b01111110,
0b01100110,
0b01111110,
0b01111110};
int nro7[]={0b01111110,
0b01111110,
0b00000110,
0b00000110,
0b00000110,
0b00000110,
0b00000110,
0b00000110};
int nro8[]={0b01111110,
0b01111110,
0b01100110,
0b01111110,
0b01111110,
0b01100110,
0b01111110,
0b01111110};
int nro9[]={0b01111110,
0b01111110,
0b01100110,
0b01111110,
0b01111110,
0b00000110,
0b00000110,
0b00000110};
int nro0[]={0b01111110,
0b01111110,
0b01100110,
0b01100110,
0b01100110,
0b01100110,
0b01111110,
0b01111110};
int mas[]={0b00011000,
0b00011000,
0b00011000,
0b11111111,
0b11111111,
0b00011000,
0b00011000,
0b00011000};
int igual[]={0b00000000,
0b11111111,
0b11111111,
0b00000000,
0b00000000,
0b11111111,
0b11111111,
0b00000000};
int off[]={0b00000000,
0b00000000,
0b00000000,
0b00000000,
0b00000000,
0b00000000,
0b00000000,
0b00000000};
//......................PROTOTIPOS.............................................
void configuracion();
void mostrar(char dato);
void leerSelector1();
void leerSelector2();
void pulsador();
//......................VARIABLES..............................................
int cont=0;
//......................PROGRAMA.PRINCIPAL....................................
void main()
{
configuracion();
while(true)
{
pulsador();
switch(cont)
{
case 0:
mostrar('o');
break;
case 1:
leerSelector2();
break;
case 2:
mostrar('+');
break;
case 3:
leerSelector1();
break;
case 4:
mostrar('=');
break;
case 5:
break;
default:
break;
}//fin del switch
}//fin while
}
void configuracion()
{
set_tris_b(0b00000000);
set_tris_d(0b00000000);
set_tris_d(0b00111111);
setup_adc_ports(NO_ANALOGS);
}
void leerSelector2()
{
int8 dato=input_A();
dato<<=2;
dato>>=5;
switch(dato)
{
case 1: mostrar('1'); break;
case 2: mostrar('2'); break;
case 3: mostrar('3'); break;
case 4: mostrar('4'); break;
case 5: mostrar('5'); break;
case 6: mostrar('6'); break;
case 7: mostrar('7'); break;
case 0: mostrar('0'); break;
default: break;
}
}
void pulsador()
{
int8 pulso=input(PIN_A6);
if(pulso==0)
{
cont++;
if(cont==6) cont=0;
}
//else pulso=input(PIN_A6);
}