Thông báo

Collapse
No announcement yet.

quét led bằng pic16f877a

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

  • quét led bằng pic16f877a

    bác nào cao tay chỉ giúp em sửa cái code này cho nó quét cùng lúc 4 led với..........em mới học nên chưa biết nhiều ạ
    code đây ạ
    #include <16f877a.h>
    #fuses XT,HS,NOWDT,PUT
    #use delay(clock=4000000)
    #use fast_IO(a)
    #use fast_IO(d)
    #use fast_io(c)
    #byte portd=0x08
    #byte portc=0x06
    #bit RA0=0x05.0
    #bit RA1=0x05.1
    #bit RA2=0x05.2
    #bit RA3=0x05.3
    int u[10]={0b11000000,0b11111001,0b10100100,0b10110000,0b10 011001,0b10010010,0b10000010,0b11111000,0b10000000 ,0b10010000};
    signed int x,i,y,z,n,m,l;
    int chuc,donvi,chuc1,donvi1,chuc2,donvi2,chuc4,donvi4, chuc5,donvi5,chuc6,donvi6;
    void main()
    {
    set_tris_a(0b0000);
    set_tris_d(0);
    set_tris_c(0b00000000);
    while(true)
    { x=30;
    y=27;
    z=3;
    n=27;
    m=3;
    l=30;
    //----------cot1---------
    //---------------do1--------------
    while(x>=0)
    {

    output_c(0b00000100);

    chuc=x/10;
    donvi=x%10;
    for(i=0;i<50;i++)
    {

    portd=u[chuc];
    RA0=0;
    delay_ms(5);
    RA0=1;

    portd=u[donvi];
    RA1=0;
    delay_ms(5);
    RA1=1;
    }
    x--;
    output_c(0b00000000);
    }
    //--------------xanh1-----------
    while(y>=0)
    {
    output_c(0b00000010);
    chuc1=y/10;
    donvi1=y%10;

    for(i=0;i<50;i++)
    {

    portd=u[chuc1];
    RA0=0;
    delay_ms(5);
    RA0=1;

    portd=u[donvi1];
    RA1=0;
    delay_ms(5);
    RA1=1;

    }
    y--;
    output_c(0b00000000);
    }

    //--------vang1--------
    while(z>=0)
    {
    output_c(0b01000000);
    chuc2=z/10;
    donvi2=z%10;
    for(i=0;i<50;i++)
    {

    portd=u[chuc2];
    RA0=0;
    delay_ms(5);
    RA0=1;

    portd=u[donvi2];
    RA1=0;
    delay_ms(5);
    RA1=1;

    }

    z--;
    output_c(0b00000000);
    }
    //----------cot2---------------------
    //----------xanh2----------------
    while(n>=0)
    {
    output_c(0b00100000);
    chuc4=n/10;
    donvi4=n%10;

    for(i=0;i<50;i++)
    {

    portd=u[chuc4];
    RA2=0;
    delay_ms(5);
    RA2=1;

    portd=u[donvi4];
    RA3=0;
    delay_ms(5);
    RA3=1;

    }
    n--;
    output_c(0b00000000);
    }
    //-----------vang2--------------
    while(m>=0)
    {
    output_c(0b00010000);
    chuc5=m/10;
    donvi5=m%10;
    for(i=0;i<50;i++)
    {

    portd=u[chuc5];
    RA2=0;
    delay_ms(5);
    RA2=1;

    portd=u[donvi5];
    RA3=0;
    delay_ms(5);
    RA3=1;
    }
    m--;
    output_c(0b00000000);
    }
    //------do2-----------------
    while(l>=0)
    {
    output_c(0b00001000);

    chuc6=l/10;
    donvi6=l%10;
    for(i=0;i<50;i++)
    {
    portd=u[chuc6];
    RA2=0;
    delay_ms(5);
    RA2=1;

    portd=u[donvi6];
    RA3=0;
    delay_ms(5);
    RA3=1;
    }
    l--;
    output_c(0b00000000);
    }
    }
    }






    Click image for larger version

Name:	Untitled.jpg
Views:	2
Size:	128.0 KB
ID:	1419386

  • #2
    tạm thời code tạm ổn bây giờ phần mô phỏng bạn tháy bằng 4led 7leg gép liên với nhau rùi chứ không phải riêng nhé
    hãy làm theo cách của bạn!

    Comment


    • #3
      Nguyên văn bởi tjeunjnzah Xem bài viết
      tạm thời code tạm ổn bây giờ phần mô phỏng bạn tháy bằng 4led 7leg gép liên với nhau rùi chứ không phải riêng nhé
      vậy giờ sửa lại sao hả bác.....nếu làm mô hình thì 4led mắc như vậy mà. em định làm ra mô hình luôn đó bác. bác chỉ em với

      Comment


      • #4
        bạn gửi cả file code và mô phỏng lên mình sửa phần cứng cho.bạn đang làm đề tài đèn giao thông à?
        hãy làm theo cách của bạn!

        Comment


        • #5
          Nguyên văn bởi tjeunjnzah Xem bài viết
          bạn gửi cả file code và mô phỏng lên mình sửa phần cứng cho.bạn đang làm đề tài đèn giao thông à?
          vâng ạ...mình em đang làm đề tài giao thông. nhưng chỉ là qui mô nhỏ thôi. chỉ 1 chế độ đếm mặc định với 2 trạm và 1 cái phím hex thôi ạ. cũng không cần đếm đúng thời gian thực

          code em sửa lại thế này để quét cùng lúc 4 con. nhưng thế này chỉ là đánh lừa thị giác chứ nếu ghép bàn phím vào em sợ không đc. bác xem giúp em
          code:
          #include <16f877a.h>
          #fuses XT,HS,NOWDT,PUT
          #use delay(clock=4000000)
          #use fast_IO(a)
          #use fast_IO(d)
          #use fast_IO(c)
          #byte portd=0x08
          #byte portc=0x07
          #bit RA0=0x05.0
          #bit RA1=0x05.1
          #bit RA2=0x05.2
          #bit RA3=0x05.3
          int u[10]={0b11000000,0b11111001,0b10100100,0b10110000,0b10 011001,0b10010010,0b10000010,0b11111000,0b10000000 ,0b10010000};
          signed int x,i,y,z,n,m,l;
          int chuc1,donvi1,chuc2,donvi2,chuc3,donvi3,chuc4,donvi 4,chuc5,donvi5,chuc6,donvi6;
          void main()
          {
          set_tris_a(0b0000);
          set_tris_d(0);
          set_tris_c(0b00000000);
          while(1)
          { x=30;///do1
          y=27;//xanh1
          z=3;//vang1
          n=27;
          m=30;
          l=3;


          //---------------lan1--------------
          while(x>0 && y>0)
          {

          chuc1=x/10;
          donvi1=x%10;
          chuc2=y/10;
          donvi2=y%10;
          output_c(0b00100010);
          for(i=0;i<30;i++)
          {

          portd=u[chuc1];
          RA0=0;
          delay_ms(5);
          RA0=1;
          portd=u[donvi1];
          RA1=0;
          delay_ms(5);
          RA1=1;

          portd=u[chuc2];
          RA2=0;
          delay_ms(5);
          RA2=1;
          portd=u[donvi2];
          RA3=0;
          delay_ms(5);
          RA3=1;
          }

          x--;
          y--;
          output_c(0b00000000);
          }
          while(z>0)
          {
          chuc3=z/10;
          donvi3=z%10;

          output_c(0b01000010);
          for(i=0;i<30;i++)
          {

          portd=u[chuc3];
          RA0=0;
          delay_ms(5);
          RA0=1;
          portd=u[donvi3];
          RA1=0;
          delay_ms(5);
          RA1=1;

          portd=u[chuc3];
          RA2=0;
          delay_ms(5);
          RA2=1;
          portd=u[donvi3];
          RA3=0;
          delay_ms(5);
          RA3=1;
          }
          z--;
          output_c(0b00000000);
          }
          //---------------lan2--------------

          while(n>0 && m>0)
          {
          chuc3=n/10;
          donvi3=n%10;
          chuc4=m/10;
          donvi4=m%10;
          output_c(0b00010100);
          for(i=0;i<30;i++)
          {

          portd=u[chuc3];
          RA0=0;
          delay_ms(5);
          RA0=1;
          portd=u[donvi3];
          RA1=0;
          delay_ms(5);
          RA1=1;

          portd=u[chuc4];
          RA2=0;
          delay_ms(5);
          RA2=1;
          portd=u[donvi4];
          RA3=0;
          delay_ms(5);
          RA3=1;
          }
          n--;
          m--;
          output_c(0b00000000);
          }
          ////
          while(l>0)
          {
          chuc6=l/10;
          donvi6=l%10;

          output_c(0b00011000);
          for(i=0;i<30;i++)
          {

          portd=u[chuc6];
          RA0=0;
          delay_ms(5);
          RA0=1;
          portd=u[donvi6];
          RA1=0;
          delay_ms(5);
          RA1=1;

          portd=u[chuc6];
          RA2=0;
          delay_ms(5);
          RA2=1;
          portd=u[donvi6];
          RA3=0;
          delay_ms(5);
          RA3=1;
          }
          l--;
          output_c(0b00000000);
          }

          }
          }
          Attached Files

          Comment


          • #6
            Nguyên văn bởi tjeunjnzah Xem bài viết
            bạn gửi cả file code và mô phỏng lên mình sửa phần cứng cho.bạn đang làm đề tài đèn giao thông à?
            bác nói em ngu em chịu. nhưng sao em gửi file đính kèm không đc... bác cho em cái link facebook hay gmail đc không ạ

            Comment


            • #7
              link facebook mình đây bạn vào in box mình sẽ trả lời nhé https://www.facebook.com/lookingfor.love.904
              hãy làm theo cách của bạn!

              Comment

              Về tác giả

              Collapse

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

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

              Collapse

              Đang tải...
              X