cần giúp về code cho 8051!?

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • william
    Thành viên tích cực
    • Feb 2012
    • 194

    #31
    lần lượt ạ. anh coi dùme em đoạn code này có j sai mà em biên dịch không có dc. cái này là em tự viết
    // Khai bao thu vien
    #include <REGX51.H>
    // Ham Delay
    void delay(int time)
    {
    while(time--)
    {
    int temp = 121;
    while(temp--);
    }
    //Bat dau than chuong trinh luon nay
    void main ()
    {
    while (1) // gia tri 1 là luon dung nen vong lap la vo tan cho den khi mat dien
    {
    P2=0x01;
    delay(50);
    P2=0x02;
    delay(50);
    P2=0x04;
    delay(50);
    P2=0x08;
    delay(50);
    P2=0x10;
    delay(50);
    P2=0x20;
    delay(50);
    P2=0x40;
    delay(50);
    P2=0x80;
    delay(50);
    }
    }// Khai bao thu vien
    #include <REGX51.H>
    // Ham Delay
    void delay(int time)
    {
    while(time--)
    {
    int temp = 121;
    while(temp--);
    }
    //Bat dau than chuong trinh luon nay
    void main ()
    {
    while (1) // gia tri 1 là luon dung nen vong lap la vo tan cho den khi mat dien
    {
    P2=0x01;
    delay(50);
    P2=0x02;
    delay(50);
    P2=0x04;
    delay(50);
    P2=0x08;
    delay(50);
    P2=0x10;
    delay(50);
    P2=0x20;
    delay(50);
    P2=0x40;
    delay(50);
    P2=0x80;
    delay(50);
    }
    }

    Comment

    • tranhungtn92
      Thành viên tích cực
      • Feb 2012
      • 114

      #32
      nếu sáng lần lượt từ 0 đến 7 thì bạn khai báo mảng
      unsigned int A[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}
      for(i=0;i<8;i++){
      P2=A[i].delay(100)} ;
      thế là xong
      ở đây 0xfe ứng với trạng thái đầu tiên 11111110
      tiếp theo trạng thái 2 là 0xfd :11111101
      trạng thái 3 là 0xfb :11111011
      nói đến đây chắc bạn hiểu rồi chứ.đổi mã hex trực tiếp trên web nè :Binary/Decimal/Hexadecimal Converter

      từ đây bạn có thể suy ra nhiều cái hay hơn nữa.hi.mình cũng vừa học đc xong nên biết cảm giác mới học nó ntn.phê

      Comment

      • william
        Thành viên tích cực
        • Feb 2012
        • 194

        #33
        nhưng mà mấy dòng như anh nhìn khó hiểu quá. em muốn nó kiểu như thế này cơ:
        P2=0xfe;
        delay(50);
        P2=0xfe;
        ........
        như thế đó anh

        Comment

        • tranhungtn92
          Thành viên tích cực
          • Feb 2012
          • 114

          #34
          cái của t cho ngắn gọn chứ như của bạn là thủ công.cực kì dài nếu viết nhiều hiệu ứng

          Comment

          • tranhungtn92
            Thành viên tích cực
            • Feb 2012
            • 114

            #35
            #include <REGX51.H>
            // Ham Delay
            void delay(int time)
            {
            while(time--)
            {
            int temp = 121;
            while(temp--);
            } }
            //Bat dau than chuong trinh luon nay
            void main ()
            {
            while (1) // gia tri 1 là luon dung nen vong lap la vo tan cho den khi mat dien
            {
            P2=0x01;
            delay(50);
            P2=0x02;
            delay(50);
            P2=0x04;
            delay(50);
            P2=0x08;
            delay(50);
            P2=0x10;
            delay(50);
            P2=0x20;
            delay(50);
            P2=0x40;
            delay(50);
            P2=0x80;
            delay(50);
            }
            }




            bạn thử code này xem

            Comment

            • william
              Thành viên tích cực
              • Feb 2012
              • 194

              #36
              em biết nhưng phải biết bò rồi mới biết chạy chứ anh! anh cho em cái đoạn code dạng như vậy dc không ạ. không thì anh sửa đoạn code trên của em xem nó có sai chỗ nào không mà khi dịch nó báo lỗi
              Build target 'Target 1'
              compiling hoa.c...
              HOA.C(12): error C141: syntax error near 'void'
              Target not created

              Comment

              • tranhungtn92
                Thành viên tích cực
                • Feb 2012
                • 114

                #37
                mình sửa rồi đó.bạn thiếu dấu } gần chỗ void

                Comment

                • william
                  Thành viên tích cực
                  • Feb 2012
                  • 194

                  #38
                  ý dc rồi anh ạ. không biết sai chỗ nào anh nhỉ?

                  Comment

                  • william
                    Thành viên tích cực
                    • Feb 2012
                    • 194

                    #39
                    dạ. em cám ơn anh

                    Comment

                    • tranhungtn92
                      Thành viên tích cực
                      • Feb 2012
                      • 114

                      #40
                      uhm.mình cũng vừa học thôi.có gì trao đổi thêm

                      Comment

                      • william
                        Thành viên tích cực
                        • Feb 2012
                        • 194

                        #41
                        hì hục mãi dc cái code mà nó dài quá. anh chỉ em cách thu gọn nó nhá.
                        code:
                        #include <REGX51.H>
                        // Ham Delay
                        void delay(int time)
                        {
                        while(time--)
                        {
                        int temp = 121;
                        while(temp--);
                        } }
                        //Bat dau than chuong trinh luon nay
                        void main ()
                        {
                        while (1) // gia tri 1 là luon dung nen vong lap la vo tan cho den khi mat dien
                        {
                        P2=0xfe;
                        delay(500);
                        P2=0xfd;
                        delay(500);
                        P2=0xfb;
                        delay(500);
                        P2=0xf7;
                        delay(500);
                        P2=0xef;
                        delay(500);
                        P2=0xdf;
                        delay(500);
                        P2=0xbf;
                        delay(500);
                        P2=0x7f;
                        delay(500);
                        P2=0x7e;
                        delay(500);
                        P2=0x7d;
                        delay(500);
                        P2=0x7b;
                        delay(500);
                        P2=0x77;
                        delay(500);
                        P2=0x6f;
                        delay(500);
                        P2=0x5f;
                        delay(500);
                        P2=0x3f;
                        delay(500);
                        P2=0x3e;
                        delay(500);
                        P2=0x3d;
                        delay(500);
                        P2=0x3b;
                        delay(500);
                        P2=0x37;
                        delay(500);
                        P2=0x2f;
                        delay(500);
                        P2=0x1f;
                        delay(500);
                        P2=0x1e;
                        delay(500);
                        P2=0x1d;
                        delay(500);
                        P2=0x1b;
                        delay(500);
                        P2=0x17;
                        delay(500);
                        P2=0x0f;
                        delay(500);
                        P2=0x0e;
                        delay(500);
                        P2=0x0d;
                        delay(500);
                        P2=0x0b;
                        delay(500);
                        P2=0x07;
                        delay(500);
                        P2=0x06;
                        delay(500);
                        P2=0x05;
                        delay(500);
                        P2=0x03;
                        delay(500);
                        P2=0x02;
                        delay(500);
                        P2=0x01;
                        delay(500);
                        P2=0x00;
                        delay(500);
                        P2=0x01;
                        delay(500);
                        P2=0x02;
                        delay(500);
                        P2=0x04;
                        delay(500);
                        P2=0x08;
                        delay(500);
                        P2=0x10;
                        delay(500);
                        P2=0x20;
                        delay(500);
                        P2=0x40;
                        delay(500);
                        P2=0x80;
                        delay(500);
                        P2=0x81;
                        delay(500);
                        P2=0x82;
                        delay(500);
                        P2=0x84;
                        delay(500);
                        P2=0x88;
                        delay(500);
                        P2=0x90;
                        delay(500);
                        P2=0xa0;
                        delay(500);
                        P2=0xc0;
                        delay(500);
                        P2=0xc1;
                        delay(500);
                        P2=0xc2;
                        delay(500);
                        P2=0xc4;
                        delay(500);
                        P2=0xc8;
                        delay(500);
                        P2=0xd0;
                        delay(500);
                        P2=0xe0;
                        delay(500);
                        P2=0xe1;
                        delay(500);
                        P2=0xe2;
                        delay(500);
                        P2=0xe4;
                        delay(500);
                        P2=0xe8;
                        delay(500);
                        P2=0xf0;
                        delay(500);
                        P2=0xf1;
                        delay(500);
                        P2=0xf2;
                        delay(500);
                        P2=0xf4;
                        delay(500);
                        P2=0xf8;
                        delay(500);
                        P2=0xf9;
                        delay(500);
                        P2=0xfa;
                        delay(500);
                        P2=0xfc;
                        delay(500);
                        P2=0xfd;
                        delay(500);
                        P2=0xfe;
                        delay(500);
                        P2=0xff;
                        delay(500);
                        }
                        }
                        còn đây là clip nháy của nó:

                        Comment

                        • bienhou
                          Thành viên tích cực
                          • Dec 2011
                          • 971

                          #42
                          hiệu ứng đầu tiên bạn có thể dùng lệnh dịch phải ví dụ :
                          P2=0xfe;
                          delay(50);
                          for(i=0;i<8;i++)
                          {P2=P2<<1;
                          delay(50);
                          }
                          hiệu ứng thứ 2 : bạn nhét tất cả vào 1 mảng. sao đó chỉ đọc ký tự trong mảng đó là ok
                          Nguyễn Huy Biên - 01649 802 694
                          gmail :

                          Comment

                          • william
                            Thành viên tích cực
                            • Feb 2012
                            • 194

                            #43
                            Nguyên văn bởi bienhou Xem bài viết
                            hiệu ứng đầu tiên bạn có thể dùng lệnh dịch phải ví dụ :
                            P2=0xfe;
                            delay(50);
                            for(i=0;i<8;i++)
                            {P2=P2<<1;
                            delay(50);
                            }
                            hiệu ứng thứ 2 : bạn nhét tất cả vào 1 mảng. sao đó chỉ đọc ký tự trong mảng đó là ok
                            anh nói em nỏ hiểu chi hết

                            Comment

                            • viboyth.haui
                              Thành viên tích cực
                              • Feb 2012
                              • 300

                              #44
                              Bạn có thể tham khảo code này của mình led.c
                              mình dùng hàm và mảng
                              vanduc0211@gmail.com

                              Comment

                              • william
                                Thành viên tích cực
                                • Feb 2012
                                • 194

                                #45
                                ai giải thích cho em dc không.
                                P2=0xfe;
                                delay(50);
                                for(i=0;i<8;i++)
                                {P2=P2<<1;
                                delay(50);
                                }

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...