Você está na página 1de 3

/*

* File: Tac_Dig.c
* Author: Israel
*
* Created on 1 de mayo de 2016, 23:51
*/
#define _XTAL_FREQ 48000000
#include <xc.h>
#include <pic18f4550.h>
const unsigned short DIGITOS[] =
{
0x3F, //Cdigo del dgito 0
0x06, //Cdigo del dgito 1
0x5B, //Cdigo del dgito 2
0x4F, //Cdigo del dgito 3
0x66, //Cdigo del dgito 4
0x6D, //Cdigo del dgito 5
0x7D, //Cdigo del dgito 6
0x07, //Cdigo del dgito 7
0x7F, //Cdigo del dgito 8
0x6F, //Cdigo del dgito 9
0x3F, //Cdigo del dgito 0
};
//int U;
//int D;
int con=0;
void main(void) {
ADCON1=0B00001111; //TODAS LAS TERMINALES DEFINIDAS COMO DIGITALES
TRISAbits.RA1=1; //RA1 Y RA2 SON ENTRADAS PARA LOS PULSADORES
TRISAbits.RA2=1;//Arranque
TRISAbits.RA3=1;//Paro
TRISAbits.RA4=0;//Salida para el motor
TRISB=0B00000000; //PUERTO B SE CONECTA LOS LEDS INDICADORES
TRISC=0B00000000;
unsigned short U;
unsigned short D;
PORTC=0B00000001;
PORTB=0x3F;
__delay_ms(5);
PORTC=0B00000010;
PORTB=0x3F;
__delay_ms(5);
while( 1 ) //Bucle infinito
{
if(PORTAbits.RA2==1)
{
while(PORTAbits.RA2==1);
PORTAbits.RA4=1;//Arranque
if (PORTAbits.RA1==1)
{
con++;
while(PORTAbits.RA1==1);
}
U=con%10;
D=con/10;
switch(U)
{
case 0:
PORTC=0B00000001;

PORTB=0x3F;
__delay_ms(5);
break;
case 1:
PORTC=0B00000001;
PORTB=0x06;
__delay_ms(5);
break;
case 2:
PORTC=0B00000001;
PORTB=0x5B;
__delay_ms(5);
break;
case 3:
PORTC=0B00000001;
PORTB=0x4F;
__delay_ms(5);
break;
case 4:
PORTC=0B00000001;
PORTB=0x66;
__delay_ms(5);
break;
case 5:
PORTC=0B00000001;
PORTB=0x6D;
__delay_ms(5);
break;
case 6:
PORTC=0B00000001;
PORTB=0x7D;
__delay_ms(5);
break;
case 7:
PORTC=0B00000001;
PORTB=0x07;
__delay_ms(5);
break;
case 8:
PORTC=0B00000001;
PORTB=0x7F;
__delay_ms(5);
break;
case 9:
PORTC=0B00000001;
PORTB=0x6F;
__delay_ms(5);
break;
}
switch(D)
{
case 0:
PORTC=0B00000010;
PORTB=0x3F;
__delay_ms(5);
break;
case 1:
PORTC=0B00000010;
PORTB=0x06;
__delay_ms(5);

break;
case 2:
PORTC=0B00000010;
PORTB=0x5B;
__delay_ms(5);
break;
case 3:
PORTC=0B00000010;
PORTB=0x4F;
__delay_ms(5);
break;
case 4:
PORTC=0B00000010;
PORTB=0x66;
__delay_ms(5);
break;
case 5:
PORTC=0B00000010;
PORTB=0x6D;
__delay_ms(5);
break;
case 6:
PORTC=0B00000010;
PORTB=0x7D;
__delay_ms(5);
break;
case 7:
PORTC=0B00000010;
PORTB=0x07;
__delay_ms(5);
break;
case 8:
PORTC=0B00000010;
PORTB=0x7F;
__delay_ms(5);
break;
case 9:
PORTC=0B00000010;
PORTB=0x6F;
__delay_ms(5);
break;
}
}
if(PORTAbits.RA3==1)//Paro
{
PORTAbits.RA4=0;
while(PORTAbits.RA3==1);
}
}
return;
}

Você também pode gostar