Thông báo

Collapse
No announcement yet.

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

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

  • #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


    • #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


      • #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


        • #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


          • #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


            • #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


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

                Comment


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

                  Comment


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

                    Comment


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

                      Comment


                      • #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


                        • #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


                          • #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


                            • #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


                              • #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...
                                X