วันพุธที่ 6 มีนาคม พ.ศ. 2562

Mini Project ไฟจราจรจำลอง PIC16F628A


Mini Project ไฟจราจรจำลอง 






อุปกรณ์

1. PIC16F628A

2. 7SEGMENT common cathode

3. IC 7SEGMENT 7448

4. LED  green,red,yellow

5. CAPACITOR 22pF

6. CRYSTAL 4MHz

7. แหล่งจ่ายไฟ 5 V


Code

void three(void);
       void twenty (void);
       void thirty (void);
       void main()
       {
     TRISA = 0x00;
     TRISB = 0x00;
     PORTB = 0;

  while(1)
   {
      thirty ();
      three ();
      twenty ();
      three ();
      }
}

  void three (void)
  {

    PORTB= 0b00110010;   //3
      delay_ms(500);
     PORTB= 0b00100010;  //2
      delay_ms(500);
     PORTB= 0b00010010; //1
      delay_ms(500);
     PORTB= 0b00000010;   //0

       }
   void twenty (void)
  {
     PORTA=0b00000011; //R2 GR1
     PORTB= 0b00001000;  //20
     delay_ms(500);
     PORTB= 0b10010100;  //19
      delay_ms(500);
     PORTB= 0b10000100;   //18
      delay_ms(500);
     PORTB= 0b01110100;   //17
      delay_ms(500);
     PORTB= 0b01100100;   //16
      delay_ms(500);
     PORTB= 0b01010100;    //15
      delay_ms(500);
     PORTB= 0b01000100;   //14
      delay_ms(500);
     PORTB= 0b00110100;   //13
      delay_ms(500);
     PORTB= 0b00100100;  //12
      delay_ms(500);
     PORTB= 0b00010100; //11
      delay_ms(500);
    PORTB= 0b00000100;  //10
    delay_ms(500);
    PORTB= 0b10010000;  //9
      delay_ms(500);
     PORTB= 0b10000000;   //8
      delay_ms(500);
     PORTB= 0b01110000;   //7
      delay_ms(500);
     PORTB= 0b01100000;   //6
      delay_ms(500);
     PORTB= 0b01010000;    //5
      delay_ms(500);
     PORTB= 0b01000000;   //4
      delay_ms(500);
     PORTB= 0b00110000;   //3
      delay_ms(500);
     PORTB= 0b00100000;  //2
      delay_ms(500);
     PORTB= 0b00010000; //1
      delay_ms(500);
     PORTB= 0b00000000;   //0
      PORTA =0;
  }
  void thirty (void)
  {
       PORTA=0b0001100 ; //GR2 R1
       PORTB= 0b00001100;  //30
     delay_ms(500);
  PORTB= 0b10011000;  //29
      delay_ms(500);
     PORTB= 0b10001000;   //28
      delay_ms(500);
     PORTB= 0b01111000;   //27
      delay_ms(500);
     PORTB= 0b01101000;   //26
      delay_ms(500);
     PORTB= 0b01011000;    //25
      delay_ms(500);
     PORTB= 0b01001000;   //24
      delay_ms(500);
     PORTB= 0b00111000;   //23
      delay_ms(500);
     PORTB= 0b00101000;  //22
      delay_ms(500);
     PORTB= 0b00011000; //21
      delay_ms(500);
  PORTB= 0b00001000;  //20
     delay_ms(500);
     PORTB= 0b10010100;  //19
      delay_ms(500);
     PORTB= 0b10000100;   //18
      delay_ms(500);
     PORTB= 0b01110100;   //17
      delay_ms(500);
     PORTB= 0b01100100;   //16
      delay_ms(500);
     PORTB= 0b01010100;    //15
      delay_ms(500);
     PORTB= 0b01000100;   //14
      delay_ms(500);
     PORTB= 0b00110100;   //13
      delay_ms(500);
     PORTB= 0b00100100;  //12
      delay_ms(500);
     PORTB= 0b00010100; //11
      delay_ms(500);
    PORTB= 0b00000100;  //10
    delay_ms(500);
    PORTB= 0b10010000;  //9
      delay_ms(500);
     PORTB= 0b10000000;   //8
      delay_ms(500);
     PORTB= 0b01110000;   //7
      delay_ms(500);
     PORTB= 0b01100000;   //6
      delay_ms(500);
     PORTB= 0b01010000;    //5
      delay_ms(500);
     PORTB= 0b01000000;   //4
      delay_ms(500);
     PORTB= 0b00110000;   //3
      delay_ms(500);
     PORTB= 0b00100000;  //2
      delay_ms(500);
     PORTB= 0b00010000; //1
      delay_ms(500);
     PORTB= 0b00000000;   //0
       PORTA =0;

  }

คลิปการทำงาน







วันศุกร์ที่ 8 กุมภาพันธ์ พ.ศ. 2562

โครงงานที24


code

void beep(void);
 main()
{
 int time1,time2;
 TRISB = 0xF0;

   while(1)
  {
    PORTB.F1=0;
    PORTB.F2=0;
    PORTB.F3=0;
  while(~PORTB.F4&PORTB.F5&PORTB.F6)
  {
    PORTB.F1=1;
    PORTB.F2=0;
    PORTB.F3=0;
    for(time1=0;time1<20000;time1++)
    {
    while(PORTB.F4&~PORTB.F5&PORTB.F6)
    {
     PORTB.F1=1;
     PORTB.F2=1;
     PORTB.F3=0;
     for(time2=0;time2<10000;time2++)
     {
     while(PORTB.F4&PORTB.F5&~PORTB.F6)
            {
             PORTB.F1=1;
             PORTB.F2=1;
             PORTB.F3=1;
             beep();
             Delay_ms(1000);
            }
            }
         }
         }
       }
      }
  }
void beep(void)
{
  int i ;

  for(i=0;i<200;i++)
   {
     PORTB.F0=1;
     Delay_us(200);
     PORTB.F0=0;
     Delay_us(200);
   }

}

โครงงานที่22


code

int conv7segment(int number);
main()
{
 int minute,sec;
 TRISB= 0x00;
 TRISA= 0x00;
 CMCON= 0x07;
 PORTA.F0=0;
 PORTA.F1=1;
   for(minute=9;minute>0;minute--)
   {
   PORTB = conv7segment(minute);
   for(sec=0;sec<=59;sec++)
    {
     PORTA.F7=1;
     Delay_ms(500);
     PORTA.F7=0;
     Delay_ms(500);
    }
   }
  PORTB = conv7segment(0);
  PORTA.F0=0;
  PORTA.F1=1;
}
int conv7segment(int number)
{
  switch(number)
  {
  case 1: return 0x06;
  case 2: return 0x5b;
  case 3: return 0x4f;
  case 4: return 0x66;
  case 5: return 0x6d;
  case 6: return 0x7d;
  case 7: return 0x07;
  case 8: return 0x7f;
  case 9: return 0x6f;
  case 0: return 0x3f;
  }
}


โครงงานที่20



code

int Read_VR (void);
main()
{
int i,time;
  TRISB = 0x00;
  CMCON = 0x07;
 while(1)
  {
 for(i=1;i<129;i=i*2)
    {
  PORTB = i;
  time = Read_VR ()*2;
  Vdelay_ms(time);
    }
  }
}
  int Read_VR(void)
  {
  int i;
  i = 0;
   TRISA = 0xf0;
   PORTA.F0 = 1;
   Delay_ms(10);
   TRISA = 0xF1;
     while(PORTA.F0 == 1)
     {
     i++;
     }
     i = i/10;
     return i ;
     }

โครงการที่19


code


 int Read_VR(void);
void alarm(void);
main()
{
TRISB = 0xF0;
CMCON = 0x07;
while(1)
{
while(Read_VR()<5)
{
   alarm();
   }
  }
 }
 int  Read_VR(void)
 {
   int i;
   i =0;
   TRISA = 0xF0;
   PORTA.F0 =1;
   Delay_ms(10);
   TRISA = 0xF1;
     while(PORTA.F0 == 1)
{
     i++;
   }
     i = i/10;
     return i ;
}
void alarm(void)
{
  int i ;
  PORTB.F1 = 1;
  for(i=0;i<500;i++)
   {
   PORTB.F0=1;
   Delay_us(500);
   PORTB.F0=0;
   Delay_us(500);
   }
 PORTB.F1=0;
 for(i=0;i<250;i++)
 {
   PORTB.F0=0;
   Delay_us(1000);
    }
  }

โครงงานที่19



code

int Read_VR(void);
main()
{
int i,time;
 TRISB = 0x00;
 CMCON = 0x07;
 while(1)
 {
  for(i=1;i<129;i=i*2)
  {
   PORTB = i;
   time = Read_VR()*2;
   Vdelay_ms(time);
   }
 }
}
int Read_VR(void)
{
 int i;
 i =0;
 TRISA = 0xF0;
 PORTA.F0 = 1;
 Delay_ms(10);
 TRISA = 0xF1;
       while(PORTA.F0 == 1)
       {
        i++;
        }
        i = i/10;
        return i ;
}

โครงงานที่18 ไซเรน 2เสียง หน้า 364 เลขที่ 14



code

void sound1(void);
void sound2(void);
void Vdelay_us(int time);
main()
{
TRISB=0xFC;
PORTB.F1=0;
while(1)
{
while(PORTB.F2==0)
{
sound1();
}
while(PORTB.F3==0)
{
sound2();
}
}
}
void Vdelay_us(int time )
{
int i;
for(i=0;i<time;i++)
{
}
}
void sound1 (void)
{
int i ;
PORTB.F1=1;
for (i=80;i>20;i--)
{
PORTB.F0=1;
Vdelay_us(i);
PORTB.F0=0;
Vdelay_us(i);
}
PORTB.F1=0;
for(i=20;i<80;i++)
{
PORTB.F0=1;
Vdelay_us(i);
PORTB.F0=0;
Vdelay_us(i);
}
}
void sound2 (void)
{
int i;
PORTB.F1=1;
for (i=0;i<200;i++)
{
PORTB.F0=1;
Vdelay_us(20);
PORTB.F0=0;
Vdelay_us(20);
}
PORTB.F1=0;
for(i=0;i<200;i++)
{
PORTB.F0=1;
Vdelay_us(50);
PORTB.F0=0;
Vdelay_us(50);
}
}