Пример #1
0
void DispNum(uint8_t num,uint8_t dp,uint8_t time)
{

	uint8_t digit1,digit2,digit3;
	digit3=num%10;
	num=num/10;
	digit2=num%10;
	num=num/10;
	digit1=num%10;

	for(;time;time--)
	{
		PORTD=(0<<5)|(1<<6)|(1<<7);
		SevenSegment(digit1, (dp==3));
		_delay_ms(5);
	
		PORTD=(1<<5)|(0<<6)|(1<<7);
		SevenSegment(digit2, (dp==2));
		_delay_ms(5);
	

		PORTD=(1<<5)|(1<<6)|(0<<7);
		SevenSegment(digit3, (dp==1));
		_delay_ms(5);

	}

	PORTD=(1<<5)|(1<<6)|(1<<7);	//kijelzõ kikapcsolása
	SevenSegment(10, 0);
}
Пример #2
0
void Current (int current)
{
	DispNum(current,2,DISPTIME);
	PORTD=(1<<5)|(1<<6)|(0<<7);
	SevenSegment('A', 0);
	_delay_ms(DISPTIME*15);
	PORTD=(1<<5)|(1<<6)|(1<<7);
}
Пример #3
0
void Voltage(int voltage)
{
	DispNum(voltage,2,DISPTIME);
	PORTD=(1<<5)|(1<<6)|(0<<7);
	SevenSegment('V', 0);
	_delay_ms(DISPTIME*15);
	PORTD=(1<<5)|(1<<6)|(1<<7);
}
Пример #4
0
int main(void) {

    short int x, d1, d2, d3;

    TRISB = 0x00;
    SEG = 0x00;

    //TRISCbits.DSP1 = 0x00;
    TRISCbits.RC2 = 0x00;
    TRISCbits.RC1 = 0x00;
    TRISAbits.RA5 = 0x00;

    TRISAbits.RA1=1;   // canal A1 do Trimpot como Entrada
    ADCON1bits.PCFG=0b1011; // pagina DS39626E-page 224 do Datasheet 18F2525
    //o valor de 1011 esta na tabela para definir AN0 a AN3 como analogicos
    //e o restante dos outros ANs como digitais




    SEG=0xFF;
    for(x=0;x<5;x++)
    {
        DSP1=0b1; DSP2=0b1; DSP3=0b1;
        Delay10KTCYx(100);
        DSP1=0b0; DSP2=0b0; DSP3=0b0;
        Delay10KTCYx(100);
    }

    x=0;
    while (1)

    {



        //d1 = x / 100;
        //DSP1=0b1; DSP2=0b0; DSP3=0b0;
        //SevenSegment(d1);

        d2 = x / 10;
        DSP2=0b1; DSP3=0b0;
        SevenSegment(d2);

        PORTCbits.RC0 = 0b1;

        ADCON0bits.CHS=0b0001;  //usa o AN1 para CONversao DS39626E-page 223
                                // AN1 = Trimpot
        ADCON0bits.ADON=1;  // liga o AD para CONversao
        Delay1KTCYx(2);     // delay aproximado de 1 ms

        ADCON0bits.GO=1;    // inicia a CONversao
        while (ADCON0bits.GO) ;
                            //  aguarda o termino da CONversao
        Delay1KTCYx( ADRESH );


        d3 = x % 10;
        DSP2=0b0; DSP3=0b1;
        SevenSegment(d3);

        PORTCbits.RC0 = 0b0;

        //DSP1=0b0; DSP2=0b0; DSP3=0b0;

        ADCON0bits.CHS=0b0001;  //usa o AN1 para CONversao DS39626E-page 223
                                // AN1 = Trimpot
        ADCON0bits.ADON=1;  // liga o AD para CONversao
        Delay1KTCYx(2);     // delay aproximado de 1 ms

        ADCON0bits.GO=1;    // inicia a CONversao
        while (ADCON0bits.GO) ;
                            //  aguarda o termino da CONversao
        Delay1KTCYx( ADRESH );



        x++;
        if (x>99) x=0;

        

    }
}