Thông báo

Collapse
No announcement yet.

Dành cho người mới tìm hiểu 8051

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

  • #61
    bác nào lập trình cho em con này , chạy theo vạch trắng nền đen , 2 sonser ở giữa ở trong vạch, 2 sensor hai bên ở ngoài vạch
    http://www.kmitl.ac.th/~kswichit/LFrobot/LFrobot.htm
    cái lập trình sẵn của nó ko dùng được, và em cũng chẳng hiểu gì?
    thanks các bác trước!
    Cung cấp Oscilocope , Inverter , Switching , DC power supply , AC millivolt meter ....

    Comment


    • #62
      em mới bập bẹ học lập trình viết ra cái này cho con robot mini ở trên nhưng báo lỗi :

      //chuong trinh di thang theo vach
      #include <REGX51.H>
      #include<intrins.h>
      #define EN12 P1^0;
      #define EN34 P1^1;
      #define IN1 P1^2;
      #define IN2 P1^3;
      #define IN3 P1^4;
      #define IN4 P1^5;
      #define S_phai P3^3;
      #define S_trai P3^0;
      #define S_truoc P3^2;
      #define S_sau P3^1;
      #define nen 0;
      #define vach 1;
      void kiem_tra_vach(void)
      {
      if ((S_phai&S_trai=nen)&(S_truoc&S_sau=vach)) {di_thang();} // báo lỗi ở dòng này
      else if ((S_phai=vach)&(S_trai=nen)) {re_phai();}
      else if ((S_phai=nen)&(S_trai=vach)) {re_trai();}
      else if ((S_phai=S_trai=S_truoc=S_sau=nen)) {stop();};
      }
      void di_thang(void)
      {EN12=1;EN34=1;IN1=1;IN2=0;IN3=1;IN4=0; }

      void re_phai(void)
      {EN12=1;IN1=1;IN2=0;EN34=0;}

      void re_trai(void)
      {EN12==0;EN34==1;IN3==1;IN4==0;}

      void stop(void)
      {EN12=0;EN34=0;}

      void main(void)
      {
      while (1)
      {
      kiem_tra_vach;
      }
      }

      nó báo:
      DIEU_KHIEN_DONG_CO_CON_MINI.C(17): error C141: syntax error near ';'
      DIEU_KHIEN_DONG_CO_CON_MINI.C(17): error C141: syntax error near ';'
      DIEU_KHIEN_DONG_CO_CON_MINI.C(17): error C189: '&' on bit/sfr illegal
      DIEU_KHIEN_DONG_CO_CON_MINI.C(17): error C141: syntax error near '='
      DIEU_KHIEN_DONG_CO_CON_MINI.C(17): error C141: syntax error near ')'
      dieu_khien_dong_co_con_mini.c - 5 Error(s), 0 Warning(s).
      vậy phải sửa thế nào các bác ?
      Cung cấp Oscilocope , Inverter , Switching , DC power supply , AC millivolt meter ....

      Comment


      • #63
        troài ạ trong C thì == mới là bằng nhau đồng chí ạ ,để 1 dấu là toi roài
        SHARE KHO PHIM LỚN

        Comment


        • #64
          Bác cận nhầm hay sao chứ == là so sánh chứ
          còn = là gán chứ
          Regards
          nguoi thong thai di thuong cui dau L
          -)

          Comment


          • #65
            Nguyên văn bởi quynh
            Đây là quyển sách khá hay về lạp trinh C cho 8051.
            Tui up mãi lên đây ko được.Bạn nào cần thì liên hệ với mình nhé.Quyển này viết bằng tiếng anh, khá cơ bản.Dung lượng gần 5MB
            lien lac voi ban qua email nao ??? cho minh nick yahoo cua cau nhe !

            Comment


            • #66
              hic hic, không bác nào giúp em cả !!!!!!!!!!!!
              Cung cấp Oscilocope , Inverter , Switching , DC power supply , AC millivolt meter ....

              Comment


              • #67
                các anh chị có thể giới thiệu cho em vài cuốn sách (tiếng việt càng tốt) để học lập trình vi điều khiển bằng ngôn ngữ C không?
                cho em hỏi luôn: có phần mềm nào cho phép mình test chuơng trình mình viết trên 8051 không?không lẽ mỗi lần viết 1 chuơng trình lại phải nạp vào VDK để thử ạ?
                cho em cảm ơn chị Quỳnh (vì không biết tuổi nên cho phép em gọi như vậy), những bài viết của chị rất bổ ích

                Comment


                • #68
                  Nguyên văn bởi haquang
                  các anh chị có thể giới thiệu cho em vài cuốn sách (tiếng việt càng tốt) để học lập trình vi điều khiển bằng ngôn ngữ C không?
                  cho em hỏi luôn: có phần mềm nào cho phép mình test chuơng trình mình viết trên 8051 không?không lẽ mỗi lần viết 1 chuơng trình lại phải nạp vào VDK để thử ạ?
                  cho em cảm ơn chị Quỳnh (vì không biết tuổi nên cho phép em gọi như vậy), những bài viết của chị rất bổ ích
                  Những câu hỏi của bạn đã thảo luận nhiều trên diễn đàn rồi
                  Sách: Search với từ khóa "Sách mới TVO hay Tống Văn On"
                  Phần mềm: Search "Giả lập 8051"

                  Comment


                  • #69
                    theo em thi nhung nguoi moi hoc len viet bang hop ngu thi hay hon
                    vi qua do minh lam luon ca phan cung cua vdk

                    Comment


                    • #70
                      Chao` moi nghuoi`!

                      Nguyên văn bởi hicd
                      theo em thi nhung nguoi moi hoc len viet bang hop ngu thi hay hon
                      vi qua do minh lam luon ca phan cung cua vdk
                      Theo mình thì viết gì mà chả được ,viết bằng C hay hơn chứ (mình nghĩ là vậy)học hợp ngữ có vẻ phức tạp trong C có nhiều hàm hay đỡ cho mình !
                      Khó nhất trên đời làm trang nam tử
                      Ý chí vững vàng mà tình cảm lại mênh mang

                      Comment


                      • #71
                        Học cả 2 là tốt nhất!!
                        Viết Asm nhiều khi còn đơn giản hơn C!
                        Nhưng C thi` bát buộc phải học vì còn phải dùng nhiều việc khác, ít nhất ở trường nó dạy kekeke!!
                        In Metal ... all trust !!
                        THRASH TILL DIE !!!

                        Comment


                        • #72
                          Nguyên văn bởi hiodong
                          hic hic, không bác nào giúp em cả !!!!!!!!!!!!
                          giúp rồi còn gì nữa cái cậu là lỗi ở cái ==
                          == là so sánh
                          = là gán
                          SHARE KHO PHIM LỚN

                          Comment


                          • #73
                            vẫn báo lỗi bác ạ! hic hic

                            //chuong trinh di thang theo vach
                            #include <REGX51.H>
                            #include<intrins.h>
                            #define EN12 P1_0;
                            #define EN34 P1_1;
                            #define IN1 P1_2;
                            #define IN2 P1_3;
                            #define IN3 P1_4;
                            #define IN4 P1_5;
                            #define S_phai P3_3;
                            #define S_trai P3_0;
                            #define S_truoc P3_2;
                            #define S_sau P3_1;
                            #define nen 0;
                            #define vach 1;
                            void kiem_tra_vach(void)
                            {
                            if ((S_phai==S_trai==nen)) {dithang();} // vẫn cái dòng quái quỷ này!
                            else if (S_phai==vach&&S_trai==nen) {re_phai();}
                            else if (S_phai==nen&&S_trai==vach) {re_trai();}
                            else if (S_truoc==S_sau==nen) {stop();};
                            }
                            void dithang(void)
                            {EN12=1;EN34=1;IN1=1;IN2=0;IN3=1;IN4=0; }
                            void re_phai(void)
                            {EN12=1;IN1=1;IN2=0;EN34=0;}
                            void re_trai(void)
                            {EN12=0;EN34=1;IN3=1;IN4=0;}
                            void stop(void)
                            {EN12=0;EN34=0;}
                            void main(void)
                            {
                            while (1)
                            {
                            kiem_tra_vach;
                            }
                            }

                            báo lỗi :
                            DIEU_KHIEN_DONG_CO_CON_MINI.C(21): error C141: syntax error near ';'
                            DIEU_KHIEN_DONG_CO_CON_MINI.C(21): error C141: syntax error near ')'
                            dieu_khien_dong_co_con_mini.c - 2 Error(s), 0 Warning(s).
                            Cung cấp Oscilocope , Inverter , Switching , DC power supply , AC millivolt meter ....

                            Comment


                            • #74
                              Nguyên văn bởi hiodong
                              vẫn báo lỗi bác ạ! hic hic

                              //chuong trinh di thang theo vach
                              #include <REGX51.H>
                              #include<intrins.h>
                              #define EN12 P1_0;
                              #define EN34 P1_1;
                              #define IN1 P1_2;
                              #define IN2 P1_3;
                              #define IN3 P1_4;
                              #define IN4 P1_5;
                              #define S_phai P3_3;
                              #define S_trai P3_0;
                              #define S_truoc P3_2;
                              #define S_sau P3_1;
                              #define nen 0;
                              #define vach 1;
                              void kiem_tra_vach(void)
                              {
                              if ((S_phai==S_trai==nen)) {dithang();} // vẫn cái dòng quái quỷ này!
                              else if (S_phai==vach&&S_trai==nen) {re_phai();}
                              else if (S_phai==nen&&S_trai==vach) {re_trai();}
                              else if (S_truoc==S_sau==nen) {stop();};
                              }
                              void dithang(void)
                              {EN12=1;EN34=1;IN1=1;IN2=0;IN3=1;IN4=0; }
                              void re_phai(void)
                              {EN12=1;IN1=1;IN2=0;EN34=0;}
                              void re_trai(void)
                              {EN12=0;EN34=1;IN3=1;IN4=0;}
                              void stop(void)
                              {EN12=0;EN34=0;}
                              void main(void)
                              {
                              while (1)
                              {
                              kiem_tra_vach;
                              }
                              }

                              báo lỗi :
                              DIEU_KHIEN_DONG_CO_CON_MINI.C(21): error C141: syntax error near ';'
                              DIEU_KHIEN_DONG_CO_CON_MINI.C(21): error C141: syntax error near ')'
                              dieu_khien_dong_co_con_mini.c - 2 Error(s), 0 Warning(s).
                              Bỏ dấu ; ở dòng quỷ đó đi xem thử!

                              Comment


                              • #75
                                Hi hiodong,

                                Tôi nghĩ bạn chịu khó tí là chương trình chạy ngon lành thôi.
                                Một số góp ý cho bạn thế này:

                                1.Một hàm, cho dễ coi, bạn nên viết theo block rõ ràng:

                                [ret type] func_name(param1,...)
                                {
                                //content here
                                }

                                thay vì
                                [ret type] func_name(param1,...)
                                {...}
                                hoặc
                                [ret type] func_name(param1,...){...}

                                2.Các phép gán và so sánh nên cách ra một space, theo từng ngoặc() rõ ràng:
                                a = 5;
                                tốt hơn là:
                                a=5;

                                hoặc :

                                if((a == 5) && (b == 7))
                                tốt hơn so với
                                if(a == 5&&b==7)

                                3.Hàm gọi thường nằm phía dưới hàm được gọi, hoặc phải khai báo prototype cho hàm được gọi trước.

                                Như vậy bạn hãy sửa lại chương trình:
                                1.Đặt các hàm dithang()... lên trên hay khai báo prototype
                                2.Sửa lại

                                if((S_phai == S_trai) && (S_trai == nen))
                                {
                                dithang(); // chẳng có gì quái quỷ cả!
                                }
                                else
                                {
                                if(...)
                                {
                                }
                                else
                                {
                                }
                                }

                                3.
                                while (1)
                                {
                                kiem_tra_vach();
                                }
                                thay vì (gọi hàm mà không có() ):

                                while (1)
                                {
                                kiem_tra_vach;
                                }

                                Thân !

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X