วันอังคารที่ 19 มีนาคม พ.ศ. 2562

mini projector ไฟวิ่ง 5 แบบพร้อมจอ LCD แสดงชื่อ

ไฟวิ่ง 5 แบบพร้อมจอ LCD แสดงชื่อ














 อุปกรณ์

1.สวิท 2 ตัว

2.ตัว R 470 โอห์ม 8 ตัว
   ตัว R 10K โอห์ม 2 ตัว
  
3.LED  10 ตัว

4.IC 877A  1 ตัว 

5.LCD  1  ตัว

6.VR 50K 1 ตัว

7.คาปาซิเตอร์ 22pf  2 ตัว

8.คริสตัล 4m 1 ตัว



Code


char *text = "T"; ประกาศตัวแปร text เก็บข้อความ T
        char *text1 = "A"; ประกาศตัวแปร text1 เก็บข้อความ A
        char *text2 = "R"; ประกาศตัวแปร text3 เก็บข้อความ R

        char *text3 = "P"; ประกาศตัวแปร text4 เก็บข้อความ P
        char *text4 = "K";
        char *text5 = "S";
        char *text6 = "I";
        char *text7 = "1";

void main() {
  TRISC = 0xFF; พอตc ทั้งหมดเปน input
  TRISB = 0;  พอต b ทังหมดเปน output
  TRISD = 0; พอต D ทั้งหมดเปน output
  PORTC = 1 ; พอต b ทังหมดส่งค่าเปน 1
  PORTD = 0 ;             // พอต D ทั้งหมดส่งค่าเปน 0
  Lcd_Init(&PORTB);         // ฟังชั่น lcd กำหนดใช้พอต b
  Lcd_Cmd(Lcd_CLEAR);       //ฟังชั่นล้างหน้าจอ 
  Lcd_Cmd(Lcd_CURSOR_OFF);  //ปิดเคอร์เซอ์


  while(1)  วนลูป
  {

    if(PORTC.F1==0)  ถ้า พอตc ขา1 เปน 0
  {
         while(1) { ลูป
           Lcd_Out(1, 2, text);  แสดงข้อความ  text แถว1 หลัก2


            PORTD.F0 =1; พอต d ขา0 ส่งค่าเปน 1
                 delay_ms(400);
                 PORTD.F0 =0; พอต d ขา0 ส่งค่าเปน 0
                 delay_ms(100);  หน่วงเวลา 100 มิลลิเซค
                 PORTD.F1 =1; พอต d ขา1 ส่งค่าเปน 1

                 delay_ms(400);
                  PORTD.F1 =0;  
                 delay_ms(100);
                 Lcd_Out(1, 3, text1);  เเสดงข้อความของ text1 แถว1 หลัก3 
                 PORTD.F2 =1 ;
                 delay_ms(400);
                  PORTD.F2 =0 ;

                 delay_ms(100);
                 PORTD.F3  =1 ;
                 delay_ms(400);
                  PORTD.F3  =0 ;
                 delay_ms(100);
                  Lcd_Out(1, 4, text3);
                 PORTD.F4 =1 ;
                 delay_ms(400);
                  PORTD.F4 =0 ;
                 delay_ms(100);
                 PORTD.F5=1 ;
                 delay_ms(400);
                 PORTD.F5=0 ;
                 delay_ms(100);
                 Lcd_Out(1, 6, text4);
                 PORTD.F6 =1 ;
                 delay_ms(400);
                   PORTD.F6 =0 ;
                 delay_ms(100);
                 PORTD.F7=1 ;
                 delay_ms(400);
                  PORTD.F7=0 ;
                 delay_ms(100);
                 Lcd_Out(1, 7, text5);
                   PORTD.F7=1 ;   //1
                 delay_ms(400);
                  PORTD.F7=0 ;
                 delay_ms(100);
                  PORTD.F6 =1 ;
                 delay_ms(400);
                   PORTD.F6 =0 ;
                 delay_ms(100);
                  PORTD.F5=1 ;
                 delay_ms(400);
                  Lcd_Out(1, 8, text6);
                 PORTD.F5=0 ;
                 delay_ms(100);
                PORTD.F4 =1 ;
                 delay_ms(400);
                  PORTD.F4 =0 ;
                 delay_ms(100);
                  PORTD.F3  =1 ;
                 delay_ms(400);
                  PORTD.F3  =0 ;
                    Lcd_Out(1, 9, text7);
                 delay_ms(100);
                   PORTD.F2 =1 ;
                 delay_ms(400);
                  PORTD.F2 =0 ;
                 delay_ms(100);
                 PORTD.F1 =1;
                 delay_ms(400);
                  PORTD.F1 =0;
                 delay_ms(100);
                 PORTD.F0 =1;
                 delay_ms(400);
                 PORTD.F0 =0;
                  Lcd_Out(1, 10, text8);
                  PORTD.F0 =1;
                 delay_ms(400);
                 PORTD.F1 =1;
                 delay_ms(400);
                 PORTD.F2 =1 ;
                 delay_ms(400);
                 PORTD.F3  =1 ;
                 delay_ms(400);
                 PORTD.F4 =1 ;
                  Lcd_Out(1, 11, text9);
                 delay_ms(400);
                 PORTD.F5=1 ;
                 delay_ms(400);
                 PORTD.F6 =1 ;
                 delay_ms(400);
                 PORTD.F7=1 ;
                 delay_ms(400);
                 Lcd_Out(1, 12, text10);
                 PORTD.F0 =0;
                 delay_ms(400);
                 PORTD.F1 =0;
                 delay_ms(400);
                 PORTD.F2 =0 ;
                 delay_ms(400);
                 PORTD.F3  =0 ;
                 delay_ms(400);
                 PORTD.F4 =0;
                  Lcd_Out(1, 13, text11);
                 delay_ms(400);
                 PORTD.F5=0;
                 delay_ms(400);
                 PORTD.F6 =0 ;
                 delay_ms(400);
                 PORTD.F7=0 ;
                 delay_ms(400);
                   Lcd_Out(1, 15, text12);
                    PORTD.F6 =1 ;
                 delay_ms(400);
                   PORTD.F6 =0 ;
                 delay_ms(100);
                   PORTD.F1 =1;
                 delay_ms(400);
                  PORTD.F1 =0;
                 delay_ms(100);
                  PORTD.F3  =1 ;
                 delay_ms(400);
                  Lcd_Out(1, 16, text13);
                  PORTD.F3  =0 ;
                 delay_ms(100);
                  PORTD.F5=1 ;
                 delay_ms(400);
                 PORTD.F5=0 ;
                 delay_ms(100);
                  PORTD.F2 =1 ;
                 delay_ms(400);
                  PORTD.F2 =0 ;
                 delay_ms(100);
                  PORTD.F4 =1 ;
                 delay_ms(400);
                  PORTD.F4 =0 ;
                 delay_ms(100);
                  PORTD.F7=1 ;
                 delay_ms(400);
                  PORTD.F7=0 ;
                 delay_ms(100);
                   }
                    delay_ms(400);
                      Lcd_Cmd(Lcd_CLEAR); ฟังชั่นล้างหน้าจอ
                 while(PORTC.F1==0);  พอต c ขา 1 เท่ากับ 0
  }

             }
              }





วันศุกร์ที่ 15 มีนาคม พ.ศ. 2562

โครงงานที24

โครงงานที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

โครงงานที่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

โครงงานที่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

โครงงานที่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เสียง

โครงงานที่18 ไซเรน 2เสียง 



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);
}
}

โครงงานที่17 ลูกเต๋าอิเล็กทรอนิกส์

โครงงานที่17 ลูกเต๋าอิเล็กทรอนิกส์



code

void beep(void);
int display_led(int in);
main()
{
 int i,j,time_n;
 TRISB = 0x00;
 CMCON = 0x07;
 TRISA = 0xfd;
 while(1)
 {
  time_n =120;
  while(PORTA.F0==1)
  {
   time_n++;
   if(time_n>240)
   {
    time_n=120;
   }
  }
  j=1;
  for(i=1;i<time_n;i++)
  {
   PORTB = display_led(j);
   beep();
   Delay_ms(10);
   j++;
   if(j>6)
   {
          j=1;
        }
      }
    }
  }
  int display_led(int in)
  {
   switch(in)
    {
    case 1:return 0b0001000;
    case 2:return 0b0010100;
    case 3:return 0b0101010;
    case 4:return 0b1100011;
    case 5:return 0b1101011;
    case 6:return 0b1110111;
    }
  }
  void beep(void)
  {
    int i_b;
      for(i_b=0;i_b<20;i_b++)
      {
      PORTA.F1=1;
      Delay_us(300);
      PORTA.F1=0;
      Delay_us(300);
      }
  }

โครงงานที่16

โครงงานที่16


code


int Read_T(void);
main()
{
TRISB = 0xF0;
CMCON = 0x07;
PORTB.F0=0;
while(1)
{
if(Read_T()<20)
{
PORTB.F0=1;
}
if(Read_T()>30)
{
PORTB.F0;
}
}
}
int Read_T(void)
{
     int i;
     i =0;
     TRISA = 0xF0;
     PORTA.F0 = 1;
     Delay_ms(10);
     TRISA = 0xF1;
       while(PORTA.F
       {
       i++;
       }
       i = i/10;
       return i ;
       }

โครงงานที่14วงจรเครื่องนับจำนวณ

โครงงานที่14วงจรเครื่องนับจำนวณ


code

int conv7segment(int number);
main()
{
 int i;
  TRISB = 0x00;
  CMCON = 0x07;
  TRISA = 0xFF;
  i = 0;
  while(1)
  {
    while(PORTA.F0==0)
    {
     i++;
     if(i>9)
     {
        i = 0;
     }
     while(PORTA.F0==0)
     {
       Delay_ms(10);
     }
    }
    while(PORTA.F1==0)
    {
     i--;
    if(i<0)
    {
       i = 9;
    }
    while(PORTA.F1==0)
    {
      Delay_ms(10);
    }
   }
   PORTB = conv7segment(i);
 }
}
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;
  }
}

โครงงานที 13.5

โครงงานที 13.5


code

void alarm(void);
main()
{
TRISB = 0xFC;
PORTB.F1 = 0;
while(1)
{
while(PORTB.F2==1)
{
while(PORTB.F3==1)
{
alarm();
}
}
}
}
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);
}
}

โครงงานที่13

โครงงานที่13



code

int Read_VR1(void);
int Read_VR2(void);
 main()
 {
 TRISB = 0xF0;
 CMCON = 0x07;
 while (1)
 {
   PORTB.F0=1;
   while (Read_VR1()<5)
   {
     while (Read_VR2()<5)
     {
      PORTB.F0 = 0;
      }
     }
    }
}
int Read_VR1(void)
{
  int i;
  i =0;
  TRISA = 0xF0;
  PORTA.F0 = 1;
  PORTA.F1 = 0;
  Delay_ms(10);
  TRISA = 0xF1;
   while( PORTA.F0 == 1)
 {
   i++;
   }
i = i/10;
return i ;
}
int Read_VR2(void)
{
  int i;
  i =0;
  TRISA = 0xF0;
  PORTA.F0 = 0;
  PORTA.F1 = 1;
  Delay_ms(10);
  TRISA = 0xF2;
   while( PORTA.F1 == 1)
   {
   i++;
   }
i = i/10;
return i ;
}

โครงงานที่11 เครื่องทดสอบสมาธิ

โครงงานที่11 เครื่องทดสอบสมาธิ 


code

void alarm (void);
void Vdelay_us(int time);


main()
{
TRISB=0xFC;
PORTB.F1=0;
while(1)
   {
while(PORTB.F2==0)
 {
while(PORTB.F3==1)
     {
alarm();
     }
 }
   }
}



void alarm(void)
{
int i ;
PORTB.F1=1;
for (i=100;i>50;i--)
{
PORTB.F0=1;
Vdelay_us(i);
PORTB.F0=0;
Vdelay_us(i);
}
PORTB.F1=0;
for(i=50;i<100;i++)
    {
PORTB.F0=1;
Vdelay_us(i);
PORTB.F0=0;
Vdelay_us(i);
    }
}
void Vdelay_us(int time)
{
int i ;
for(i=0;i<time;i++)
{
}
}

โครงงานที่12 งานเครื่องทดสอบความไว

โครงงานที่12 งานเครื่องทดสอบความไว


code

void alarm(void);
main()
{
TRISB = 0xF0;

while(1)
{
PORTB.F2=0;
PORTB.F3=0;
  while(PORTB.F4==0)
  {
    while(PORTB.F6==1)
    {
    PORTB.F2=1;
    alarm();
    }
   }
    while(PORTB.F5==0)
    {
    while(PORTB.F6==1)
    {
    PORTB.F3=1;
    alarm();
    }
    }
    }
    }
    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<150;i++)
    {
    PORTB.F0=0;
    Delay_us(1000);
    }
    }