Thông báo

Collapse
No announcement yet.

32ledTRÁI TIM dùng ic89c51 cho dân điện tử

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #46
    gửi cho mình với nhé: mail : nguyencuongktvt@gmail.com

    thank ban

    Comment


    • #47
      UPLOAD mạch đây anh em doawnload ở đây.

      Comment


      • #48
        bạn nào ở hà nội ko, cho em theo học với em học năn 2 rồi mà chưa biết gì cả...hic..bác nào cho em theo với nha...thank nhiều

        Comment


        • #49
          ai có chtrình sáng dồn 32led trái tim ko. sáng từng led 1 sau đó giữ led nah.

          Comment


          • #50
            Nguyên văn bởi boychjpcoj Xem bài viết
            ai có chtrình sáng dồn 32led trái tim ko. sáng từng led 1 sau đó giữ led nah.
            cái này mình có cái 16 led bác lấy rồi phát triển thêm đc k
            good luck

            Email:
            Gmail:

            Comment


            • #51
              Nguyên văn bởi boychjpcoj Xem bài viết
              ai có chtrình sáng dồn 32led trái tim ko. sáng từng led 1 sau đó giữ led nah.
              thử cái này xem sao:
              Code:
              #include"reg51.h"
              char x,y,i,j,q,g=0x00;
              int tong2;
              unsigned long int time=2000;//thay đổi giá trị time để có delay mong muốn
              void sang_don();
              void don_32();
              void don_24();
              void don_16();
              void don_8();
              const unsigned char ma_led[]= {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x81,0x82,0x84,0x88,0x90,
              0xA0,0xC0,0xC1,0xC2,0xC4,0xC8,0xD0,0xE0,0xE1,0xE2,0xE4,0xE8,0xF0,0xF1,0xF2,0xF4,0xF8,0xF9,0xFA,
              0xFC,0xFD,0xFE,0xff};
              
              unsigned long tam;        
               void delay(unsigned long int t)
              {
                  unsigned long int l;
                  for(l=0;l<t;l++);
              }
               main()
               {
               while(1)
               {
               g=0;
               don_32();
               g++;
               don_24();
               g++;
               don_16();
               g++;
               don_8();
               delay(time+1000);
               P1=P2=P3=P0=0xff;
                }    
               }
               void sang_don()
               {
                 for(x=0;x<=j;x++)
                {
                switch (y)
                {
                 case 0:
                  {
                   if(g==0)
                   P0=~ma_led[0+x];
                   else if(g==1)
                   P2=~ma_led[0+x];
                   else if(g==2)
                   P3=~ma_led[0+x];
                   else if(g==3)
                   P1=~ma_led[0+x];
                   break;
                  }
                  case 1:
                  {
                  if(g==0)
                   P0=~ma_led[8+x];
                   else if(g==1)
                   P2=~ma_led[8+x];
                   else if(g==2)
                   P3=~ma_led[8+x];
                   else if(g==3)
                   P1=~ma_led[8+x];
                   break;
                  }
                   case 2:
                  {
                  if(g==0)
                   P0=~ma_led[15+x];
                   else if(g==1)
                   P2=~ma_led[15+x];
                   else if(g==2)
                   P3=~ma_led[15+x];
                   else if(g==3)
                   P1=~ma_led[15+x];
                   break;
                  }
                    case 3:
                  {
                  if(g==0)
                   P0=~ma_led[21+x];
                   else if(g==1)
                   P2=~ma_led[21+x];
                   else if(g==2)
                   P3=~ma_led[21+x];
                   else if(g==3)
                   P1=~ma_led[21+x];
                   break;
                  }
                   case 4:
                  {
                  if(g==0)
                   P0=~ma_led[26+x];
                   else if(g==1)
                   P2=~ma_led[26+x];
                   else if(g==2)
                   P3=~ma_led[26+x];
                   else if(g==3)
                   P1=~ma_led[26+x];
                   break;
                  }
                    case 5:
                  {
                  if(g==0)
                   P0=~ma_led[30+x];
                   else if(g==1)
                   P2=~ma_led[30+x];
                   else if(g==2)
                   P3=~ma_led[30+x];
                   else if(g==3)
                   P1=~ma_led[30+x];
                   break;
                  }
                   case 6:
                  {
                  if(g==0)
                   P0=~ma_led[33+x];
                   else if(g==1)
                   P2=~ma_led[33+x];
                   else if(g==2)
                   P3=~ma_led[33+x];
                   else if(g==3)
                   P1=~ma_led[33+x];
                   break;
                  }
                    case 7:
                  {
                  if(g==0)
                   P0=~ma_led[35+x];
                   else if(g==1)
                   P2=~ma_led[35+x];
                   else if(g==2)
                   P3=~ma_led[35+x];
                   else if(g==3)
                   P1=~ma_led[35+x];
                   break;
                  }
                }
                
                delay (time);
                }
                j--;
                }
              void don_32()
              {
                j=7;
               for(y=0;y<=7;y++)
               {
                for(q=0;q<=2;q++)
                 {
                for(x=0;x<=7;x++)
                 {
                  switch (q)
                  {
                   case 0:
                   {
                   P1= ~ma_led[x];
                   delay (time);
                   break;
                   }
                    case 1:
                   {
                   P3= ~ma_led[x];
                   delay (time);
                   break;
                   }
                     case 2:
                   {
                   P2= ~ma_led[x];
                   delay (time);
                   break;
                   }
                  }
                  }
                   P2= P1= P3=0xff;
                 }
                sang_don();
                 }
                 }
              void don_24()
              {
                j=7;
               for(y=0;y<=7;y++)
               {
                for(q=0;q<=1;q++)
                 {
                for(x=0;x<=7;x++)
                 {
                  switch (q)
                  {
                   case 0:
                   {
                   P1= ~ma_led[x];
                   delay (time);
                   break;
                   }
                    case 1:
                   {
                   P3= ~ma_led[x];
                   delay (time);
                   break;
                   }
                    
                  }
                  }
                    P1= P3=0xff;
                  }
                sang_don();
                 }
                 }
              void don_16()
              {
                j=7;
               for(y=0;y<=7;y++)
               {
                 for(x=0;x<=7;x++)
                 {
                  P1= ~ma_led[x];
                  delay (time);
                  }
                   P1=0xff;
                  sang_don();
                  }
                  }
                    
               void don_8()
              {
                j=7;
               for(y=0;y<=7;y++)
               {
               sang_don();
                }
              }
              Attached Files
              |

              Comment


              • #52
                Nguyên văn bởi tdm Xem bài viết
                thử cái này xem sao:
                Code:
                #include"reg51.h"
                char x,y,i,j,q,g=0x00;
                int tong2;
                unsigned long int time=2000;//thay đổi giá trị time để có delay mong muốn
                void sang_don();
                void don_32();
                void don_24();
                void don_16();
                void don_8();
                const unsigned char ma_led[]= {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x81,0x82,0x84,0x88,0x90,
                0xA0,0xC0,0xC1,0xC2,0xC4,0xC8,0xD0,0xE0,0xE1,0xE2,0xE4,0xE8,0xF0,0xF1,0xF2,0xF4,0xF8,0xF9,0xFA,
                0xFC,0xFD,0xFE,0xff};
                
                unsigned long tam;        
                 void delay(unsigned long int t)
                {
                    unsigned long int l;
                    for(l=0;l<t;l++);
                }
                 main()
                 {
                 while(1)
                 {
                 g=0;
                 don_32();
                 g++;
                 don_24();
                 g++;
                 don_16();
                 g++;
                 don_8();
                 delay(time+1000);
                 P1=P2=P3=P0=0xff;
                  }    
                 }
                 void sang_don()
                 {
                   for(x=0;x<=j;x++)
                  {
                  switch (y)
                  {
                   case 0:
                    {
                     if(g==0)
                     P0=~ma_led[0+x];
                     else if(g==1)
                     P2=~ma_led[0+x];
                     else if(g==2)
                     P3=~ma_led[0+x];
                     else if(g==3)
                     P1=~ma_led[0+x];
                     break;
                    }
                    case 1:
                    {
                    if(g==0)
                     P0=~ma_led[8+x];
                     else if(g==1)
                     P2=~ma_led[8+x];
                     else if(g==2)
                     P3=~ma_led[8+x];
                     else if(g==3)
                     P1=~ma_led[8+x];
                     break;
                    }
                     case 2:
                    {
                    if(g==0)
                     P0=~ma_led[15+x];
                     else if(g==1)
                     P2=~ma_led[15+x];
                     else if(g==2)
                     P3=~ma_led[15+x];
                     else if(g==3)
                     P1=~ma_led[15+x];
                     break;
                    }
                      case 3:
                    {
                    if(g==0)
                     P0=~ma_led[21+x];
                     else if(g==1)
                     P2=~ma_led[21+x];
                     else if(g==2)
                     P3=~ma_led[21+x];
                     else if(g==3)
                     P1=~ma_led[21+x];
                     break;
                    }
                     case 4:
                    {
                    if(g==0)
                     P0=~ma_led[26+x];
                     else if(g==1)
                     P2=~ma_led[26+x];
                     else if(g==2)
                     P3=~ma_led[26+x];
                     else if(g==3)
                     P1=~ma_led[26+x];
                     break;
                    }
                      case 5:
                    {
                    if(g==0)
                     P0=~ma_led[30+x];
                     else if(g==1)
                     P2=~ma_led[30+x];
                     else if(g==2)
                     P3=~ma_led[30+x];
                     else if(g==3)
                     P1=~ma_led[30+x];
                     break;
                    }
                     case 6:
                    {
                    if(g==0)
                     P0=~ma_led[33+x];
                     else if(g==1)
                     P2=~ma_led[33+x];
                     else if(g==2)
                     P3=~ma_led[33+x];
                     else if(g==3)
                     P1=~ma_led[33+x];
                     break;
                    }
                      case 7:
                    {
                    if(g==0)
                     P0=~ma_led[35+x];
                     else if(g==1)
                     P2=~ma_led[35+x];
                     else if(g==2)
                     P3=~ma_led[35+x];
                     else if(g==3)
                     P1=~ma_led[35+x];
                     break;
                    }
                  }
                  
                  delay (time);
                  }
                  j--;
                  }
                void don_32()
                {
                  j=7;
                 for(y=0;y<=7;y++)
                 {
                  for(q=0;q<=2;q++)
                   {
                  for(x=0;x<=7;x++)
                   {
                    switch (q)
                    {
                     case 0:
                     {
                     P1= ~ma_led[x];
                     delay (time);
                     break;
                     }
                      case 1:
                     {
                     P3= ~ma_led[x];
                     delay (time);
                     break;
                     }
                       case 2:
                     {
                     P2= ~ma_led[x];
                     delay (time);
                     break;
                     }
                    }
                    }
                     P2= P1= P3=0xff;
                   }
                  sang_don();
                   }
                   }
                void don_24()
                {
                  j=7;
                 for(y=0;y<=7;y++)
                 {
                  for(q=0;q<=1;q++)
                   {
                  for(x=0;x<=7;x++)
                   {
                    switch (q)
                    {
                     case 0:
                     {
                     P1= ~ma_led[x];
                     delay (time);
                     break;
                     }
                      case 1:
                     {
                     P3= ~ma_led[x];
                     delay (time);
                     break;
                     }
                      
                    }
                    }
                      P1= P3=0xff;
                    }
                  sang_don();
                   }
                   }
                void don_16()
                {
                  j=7;
                 for(y=0;y<=7;y++)
                 {
                   for(x=0;x<=7;x++)
                   {
                    P1= ~ma_led[x];
                    delay (time);
                    }
                     P1=0xff;
                    sang_don();
                    }
                    }
                      
                 void don_8()
                {
                  j=7;
                 for(y=0;y<=7;y++)
                 {
                 sang_don();
                  }
                }
                bác chơi = C ak thế thì e chịu
                vừa mới học asm thui
                bác có bản asm k e mới viết 16 led thôi chưa viết 32 led để tẹo rảnh viêt cái xem sao

                Email:
                Gmail:

                Comment


                • #53
                  đây là chương trình tắt dần ah

                  Comment


                  • #54
                    Nguyên văn bởi tdm Xem bài viết
                    thử cái này xem sao:
                    Code:
                    #include"reg51.h"
                    char x,y,i,j,q,g=0x00;
                    int tong2;
                    unsigned long int time=2000;//thay đổi giá trị time để có delay mong muốn
                    void sang_don();
                    void don_32();
                    void don_24();
                    void don_16();
                    void don_8();
                    const unsigned char ma_led[]= {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x81,0x82,0x84,0x88,0x90,
                    0xA0,0xC0,0xC1,0xC2,0xC4,0xC8,0xD0,0xE0,0xE1,0xE2,0xE4,0xE8,0xF0,0xF1,0xF2,0xF4,0xF8,0xF9,0xFA,
                    0xFC,0xFD,0xFE,0xff};
                    
                    unsigned long tam;        
                     void delay(unsigned long int t)
                    {
                        unsigned long int l;
                        for(l=0;l<t;l++);
                    }
                     main()
                     {
                     while(1)
                     {
                     g=0;
                     don_32();
                     g++;
                     don_24();
                     g++;
                     don_16();
                     g++;
                     don_8();
                     delay(time+1000);
                     P1=P2=P3=P0=0xff;
                      }    
                     }
                     void sang_don()
                     {
                       for(x=0;x<=j;x++)
                      {
                      switch (y)
                      {
                       case 0:
                        {
                         if(g==0)
                         P0=~ma_led[0+x];
                         else if(g==1)
                         P2=~ma_led[0+x];
                         else if(g==2)
                         P3=~ma_led[0+x];
                         else if(g==3)
                         P1=~ma_led[0+x];
                         break;
                        }
                        case 1:
                        {
                        if(g==0)
                         P0=~ma_led[8+x];
                         else if(g==1)
                         P2=~ma_led[8+x];
                         else if(g==2)
                         P3=~ma_led[8+x];
                         else if(g==3)
                         P1=~ma_led[8+x];
                         break;
                        }
                         case 2:
                        {
                        if(g==0)
                         P0=~ma_led[15+x];
                         else if(g==1)
                         P2=~ma_led[15+x];
                         else if(g==2)
                         P3=~ma_led[15+x];
                         else if(g==3)
                         P1=~ma_led[15+x];
                         break;
                        }
                          case 3:
                        {
                        if(g==0)
                         P0=~ma_led[21+x];
                         else if(g==1)
                         P2=~ma_led[21+x];
                         else if(g==2)
                         P3=~ma_led[21+x];
                         else if(g==3)
                         P1=~ma_led[21+x];
                         break;
                        }
                         case 4:
                        {
                        if(g==0)
                         P0=~ma_led[26+x];
                         else if(g==1)
                         P2=~ma_led[26+x];
                         else if(g==2)
                         P3=~ma_led[26+x];
                         else if(g==3)
                         P1=~ma_led[26+x];
                         break;
                        }
                          case 5:
                        {
                        if(g==0)
                         P0=~ma_led[30+x];
                         else if(g==1)
                         P2=~ma_led[30+x];
                         else if(g==2)
                         P3=~ma_led[30+x];
                         else if(g==3)
                         P1=~ma_led[30+x];
                         break;
                        }
                         case 6:
                        {
                        if(g==0)
                         P0=~ma_led[33+x];
                         else if(g==1)
                         P2=~ma_led[33+x];
                         else if(g==2)
                         P3=~ma_led[33+x];
                         else if(g==3)
                         P1=~ma_led[33+x];
                         break;
                        }
                          case 7:
                        {
                        if(g==0)
                         P0=~ma_led[35+x];
                         else if(g==1)
                         P2=~ma_led[35+x];
                         else if(g==2)
                         P3=~ma_led[35+x];
                         else if(g==3)
                         P1=~ma_led[35+x];
                         break;
                        }
                      }
                      
                      delay (time);
                      }
                      j--;
                      }
                    void don_32()
                    {
                      j=7;
                     for(y=0;y<=7;y++)
                     {
                      for(q=0;q<=2;q++)
                       {
                      for(x=0;x<=7;x++)
                       {
                        switch (q)
                        {
                         case 0:
                         {
                         P1= ~ma_led[x];
                         delay (time);
                         break;
                         }
                          case 1:
                         {
                         P3= ~ma_led[x];
                         delay (time);
                         break;
                         }
                           case 2:
                         {
                         P2= ~ma_led[x];
                         delay (time);
                         break;
                         }
                        }
                        }
                         P2= P1= P3=0xff;
                       }
                      sang_don();
                       }
                       }
                    void don_24()
                    {
                      j=7;
                     for(y=0;y<=7;y++)
                     {
                      for(q=0;q<=1;q++)
                       {
                      for(x=0;x<=7;x++)
                       {
                        switch (q)
                        {
                         case 0:
                         {
                         P1= ~ma_led[x];
                         delay (time);
                         break;
                         }
                          case 1:
                         {
                         P3= ~ma_led[x];
                         delay (time);
                         break;
                         }
                          
                        }
                        }
                          P1= P3=0xff;
                        }
                      sang_don();
                       }
                       }
                    void don_16()
                    {
                      j=7;
                     for(y=0;y<=7;y++)
                     {
                       for(x=0;x<=7;x++)
                       {
                        P1= ~ma_led[x];
                        delay (time);
                        }
                         P1=0xff;
                        sang_don();
                        }
                        }
                          
                     void don_8()
                    {
                      j=7;
                     for(y=0;y<=7;y++)
                     {
                     sang_don();
                      }
                    }
                    tắt dần ah

                    Comment


                    • #55
                      Nguyên văn bởi boychjpcoj Xem bài viết
                      tắt dần ah
                      đã mô phỏng thử chưa mà biết nó tắt dần.
                      |

                      Comment


                      • #56
                        Nguyên văn bởi tdm Xem bài viết
                        đã mô phỏng thử chưa mà biết nó tắt dần.
                        mô phỏng rồi mà.không phải tắt dần mà là tắt dồn. điều khiển âm ah. thế làm sao sửa diều khiển dương?

                        Comment


                        • #57
                          Nguyên văn bởi boychjpcoj Xem bài viết
                          mô phỏng rồi mà.không phải tắt dần mà là tắt dồn. điều khiển âm ah. thế làm sao sửa diều khiển dương?
                          Mạch của bạn điều khiển dương mà sáng được cũng hay thật đấy

                          Comment


                          • #58
                            Nguyên văn bởi ckd_speed Xem bài viết
                            Mạch của bạn điều khiển dương mà sáng được cũng hay thật đấy
                            thì nó sáng cả rùi tắt dồn lại mà

                            Comment


                            • #59
                              Click image for larger version

Name:	10333030_7714476_6pTuLMO_536x715.jpg
Views:	1
Size:	163.3 KB
ID:	1351728Click image for larger version

Name:	10333030_7714529_OLMlDNK_640x480.JPG
Views:	1
Size:	86.0 KB
ID:	1351729
                              anh em góp ý hey

                              Comment


                              • #60
                                các bác ơi cho em hỏi.cái mạch trái tim của em dung 32 led nhưng phải cắm đi cắm lại máy lần nó mới chạy đươc.mong các bác chỉ giúp em với.

                                Comment

                                Về tác giả

                                Collapse

                                boychjpcoj Tìm hiểu thêm về boychjpcoj

                                Bài viết mới nhất

                                Collapse

                                Đang tải...
                                X