Thông báo

Collapse
No announcement yet.

một chút về điều khiển chạy led

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

  • một chút về điều khiển chạy led

    các bác ơi! cho e hỏi một chút về thuật toán làm cho 2 led chạy nối đuôi nhau khi e điều khiển 8 led bằng chân P1.0->p1.7?

  • #2
    cậu thử viết thế này xem :
    x = 0x03;
    while(1)
    {
    P1 = x;
    delay( );
    x = _crol_ (x,1) ; // quay trai 1 bit, quay phai la _cror_
    }
    Cung cấp Oscilocope , Inverter , Switching , DC power supply , AC millivolt meter ....

    Comment


    • #3
      bạn ơi bạn nói rõ hơn về cái quay trái quay phải này được không? mình đã làm được rồi bằng mảng nhưng muốn tìm hiểu về cách này!hihi!

      Comment


      • #4
        Mình củng làm qua rồi , nhưng sợ hơi dài..
        for(i=0;i<5;i++)
        {
        P0=0;delay(1000) ;
        P1=0;delay(1000) ;// Cho nó tắt hết led ,
        P0_0=1;delay(1000);
        P0_1=1;delay(1000);
        P0_2=1;delay(1000);
        P0_3=1;delay(1000);
        P0_4=1;delay(1000);
        P0_5=1;delay(1000);
        P0_6=1;delay(1000);
        P0_7=1;delay(1000);
        P1_0=1;delay(1000);
        P1_1=1;delay(1000);
        P1_2=1;delay(1000);
        P1_3=1;delay(1000);
        P1_4=1;delay(1000);
        P1_5=1;delay(1000);
        P1_6=1;delay(1000);
        P1_7=1;delay(1000);

        }
        Như vậy đó , bạn có thể nghĩ ra nhiều cách nháy , chỉ cần cho led cần sáng =1, thì ôk(A>K)
        Học hỏi là trên hết .

        Comment


        • #5
          bạn coi thử bài giải của mình đi ko tối ưu nhưng hiệu wa đó!
          #include "regx51.h"
          unsigned char led[ ] = { 0x03,0x06,0x0C,0x18,0x30,0x60,0xC0,0x81 } ;
          void delay(unsigned int time){
          while(time--){
          TH0 = 0xFC;// n?p giá tr? cho timer
          TL0 = 0x66;
          TR0 = 1; // Ch?y b? d?nh th?i
          while(!TF0); // ch? khi nào c? TF0 =1
          TR0=0;
          TF0=0;
          }
          }
          void main()
          { unsigned char i;
          while(1)
          {for ( i=0;i<8;i++)
          {
          P1 = led[i];
          delay(2000);
          }

          };
          }

          Comment

          Về tác giả

          Collapse

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

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

          Collapse

          Đang tải...
          X