Pwm_Adc_3_Digit_4550


Codes are under testing and not perfect...


 //all port test

//POETD.b0 to a
//.....
//.....
//PORTD.b6 to g
#define dig1 PORTD.f5
#define dig10 PORTD.f6
#define dig100 PORTD.f7

 unsigned int show=0;
unsigned char num1,num10,num100,cnt,i;
unsigned char pattern;

    unsigned char display(unsigned char num)
    {
    unsigned char dig[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,
     0x7D,0x07,0x7F,0x6F};
     pattern=dig[num];
     return(~pattern);
     }

 void interrupt()
 {
                TMR0l=245;     //2.5ms interrupt
                INTCON=0x20;   //check
                portd=0;
    if(show==1)
    {
            PORTB=display(num1);
            dig1=1;
            dig10=0;
            dig100=0;


    }
    if(show==10)
    {
            PORTB=display(num1);
             dig1=1;
            dig10=0;
            dig100=0;

            PORTB=display(num10);
            dig1=0;
            dig10=1;
            dig100=0;


    }
    if(show==100)
    {
     PORTB=display(num1);
            dig1=1;
            dig10=0;
            dig100=0;

            PORTB=display(num10);
            dig1=0;
            dig10=1;
            dig100=0;

            PORTB=display(num100);
            dig1=0;
            dig10=0;
            dig100=1;


    }



 }


void main()
     {


TRISA=0;
TRISC=0;
TRISD=0;
TRISB=0;

ADCON1=0x3f;  //make all nit sigital on portb
TMR0l=245;     //2.5ms interrupt
INTCON=0xA0;
T0CON=0xC4;
Pwm1_init(5000);


for(;;)
       {

        cnt=Adc_Read(0);
        delay_ms(100);

       Pwm1_Change_Duty(cnt);
       Pwm1_Start();

      // if(cnt>999)cnt=0;
//       cnt=cnt+1;
     if(cnt<10)
     {
            show=1;
            num1=cnt;


     }
      if(cnt>=10 && cnt<=99)

      {
      show=10;
      num1=cnt%10;
      num10=cnt/10;

       }

       if(cnt>99)
       {
          show=100;
            num100=cnt/100;
            num10=(cnt/10)%10;
            num1=cnt%10;

       }
     }

     }

Comments

Popular posts from this blog

Inductance caculator

Pointer to object array