Thông báo

Collapse
No announcement yet.

cần giúp đỡ về code 8051

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

  • cần giúp đỡ về code 8051

    đây là lần đầu tiên viết code các bác xem giúp em xem nó sai chỗ nào ạ

    #include <REGX52.H>
    unsigned int i,j,k;

    void delay(unsigned int ms)
    {
    unsigned int a;
    unsigned char b;
    for(a=0; a<ms; a++)
    {
    for(b=0; b<125; b++)
    {
    }
    }
    }

    void hieu_ung_1 (void)
    {
    for(k=0; k<8; k++)
    {
    P0=P1=P2=P3=1;
    delay(300);
    P0=P1=P2=P3=0;
    delay(300);
    }
    }

    void hieu_ung_2 (void)
    {
    for(i=0; i<6; i++)
    {
    P0=P1=P2=P3=0;
    delay(300);
    P0=P1=P2=P3=1;
    delay(300);
    }
    }

    void hieu_ung_3 (void)
    {
    for(j=0; j<8; j++)
    {
    P0=P1=P2=P3=0xfe;
    delay(300);
    P0=P1=P2=P3=0x55;
    }
    }

    main()
    {
    while(1)
    {
    hieu_ung_1;
    delay(300);
    hieu_ung_2;
    delay(300);
    hieu_ung_3;
    delay(300);
    }
    }

  • #2
    Lỗi Sai

    Lỗi sai của bạn là ở hieu_ung_1,2,3
    bạn sửa lại thành
    hieu_ung_1();
    hieu_ung_2();
    hieu_ung_3();

    Comment


    • #3
      Nguyên văn bởi maingochoc Xem bài viết
      Lỗi sai của bạn là ở hieu_ung_1,2,3
      bạn sửa lại thành
      hieu_ung_1();
      hieu_ung_2();
      hieu_ung_3();
      bạn giải thích giúp mình tại sao lại sai ở đó hôm qua mình sửa lại thì chạy oke rồi

      Comment


      • #4
        Giải thích.

        Ở trước hàm main bạn viết các chương trình con như là hieu_ung_1
        ở bất kì chỗ nào trong chương trình nếu bạn muốn gọi chương trình đó ra thì phải viết là hieu_ung_1();

        Comment


        • #5
          Cái này bác phải xem lại lập trình của ngôn ngữa C, phần hàm , chương trình con!

          Comment


          • #6
            Nguyên văn bởi linhleduong Xem bài viết
            Cái này bác phải xem lại lập trình của ngôn ngữa C, phần hàm , chương trình con!
            cám ơn bác đã quan tâm tại e ko có học qua trường lớp tự nghiên cứu để viết code thôi ạ à mà bác có cách nào để viết led sáng tuần tự rồi tắt tuần tự ko

            Comment


            • #7
              Cốt

              Bạn có thể dùng mảng,hàm tạo mã hex tương ứng vs trạng thái sáng tắt.

              Comment


              • #8
                Nguyên văn bởi kimman3 Xem bài viết
                cám ơn bác đã quan tâm tại e ko có học qua trường lớp tự nghiên cứu để viết code thôi ạ à mà bác có cách nào để viết led sáng tuần tự rồi tắt tuần tự ko
                Chắc trước đó được học VB hả? thấy cách gọi có vẻ giống style của VB

                Comment


                • #9
                  Nguyên văn bởi myth-coder Xem bài viết
                  Chắc trước đó được học VB hả? thấy cách gọi có vẻ giống style của VB
                  em hoàn toàn chưa học qua 1 ngôn ngữ nào năm ngoái học thcs thì e có học qua pascal

                  Comment


                  • #10
                    Nguyên văn bởi maingochoc Xem bài viết
                    Bạn có thể dùng mảng,hàm tạo mã hex tương ứng vs trạng thái sáng tắt.
                    cho mình 1 ví dụ dc ko

                    Comment


                    • #11
                      Nguyên văn bởi kimman3 Xem bài viết
                      cho mình 1 ví dụ dc ko
                      còn học THCS thì lên đây chỉ xưng là em thôi chứ ko nên xưng là mình, trên đây hầu như ít thì cũng = tuổi anh, ko thì cha chú, thậm chí có những người = tuổi ông bạn
                      khen cho tinh thần tự học của bạn trẻ khi còn học c2. để học được vi điều khiển lập trình C thì trước tiên em phải học các cú pháp, câu lệnh, yêu cầu cơ bản của ngồn ngữ lập trình C thì tới lúc chuyển sang VDK em mới viết đc chương trình nhé, cái j nó cũng có quy luật của nó
                      ví dụ về mảng đơn giản
                      Code:
                      unsigned char Mang[10] = {0,1,2,3,4,5,6,7,8,9};
                      đây là 1 mảng 10 phần tử, phần tử đầu tiên là Mang[0], phần tử cuối cùng là Mang[9]. mảng có 10 phần tử nên chỉ đc khai báo tối da 10 phần tử cho mạng
                      Website chính thức đổi địa chỉ website thành
                      Mời các bạn ghé thăm !!!

                      Comment


                      • #12
                        Cốt.

                        Sáng lần lượt từ P1.0 sang P1.2
                        While(1)
                        {
                        P1=0x01;
                        For(i=0;i<8;i++) P1=P1>>1;
                        }

                        Comment


                        • #13
                          Kimman3

                          Chắc bạn học lớp 10 hả.
                          Khen cho tinh thần yêu điên nặng điện.
                          Nếu bạn kòn học thpt thì nên gác lại,tập trung vào học toán,văn,anh... đi,sau này lên ĐH nghịch chán.
                          Mình thì cũng là hs thpt,sắp là cựu hs.
                          Tuy chỉ kòn 1 vài tháng nữa sẽ là sv nhưng mình cũng đã gác lại việc nghịch cách đây vài tháng.
                          Thế nên tập trung vào học văn hoá thpt đi đã. Ok !

                          Comment


                          • #14
                            Nguyên văn bởi maingochoc Xem bài viết
                            Sáng lần lượt từ P1.0 sang P1.2
                            While(1)
                            {
                            P1=0x01;
                            For(i=0;i<8;i++) P1=P1>>1;
                            }
                            a cho hỏi chỗ này cái ạ e ko hiểu P1=P1>>1; là sao ạ

                            Comment


                            • #15
                              Nguyên văn bởi mast090 Xem bài viết
                              còn học THCS thì lên đây chỉ xưng là em thôi chứ ko nên xưng là mình, trên đây hầu như ít thì cũng = tuổi anh, ko thì cha chú, thậm chí có những người = tuổi ông bạn
                              khen cho tinh thần tự học của bạn trẻ khi còn học c2. để học được vi điều khiển lập trình C thì trước tiên em phải học các cú pháp, câu lệnh, yêu cầu cơ bản của ngồn ngữ lập trình C thì tới lúc chuyển sang VDK em mới viết đc chương trình nhé, cái j nó cũng có quy luật của nó
                              ví dụ về mảng đơn giản
                              Code:
                              unsigned char Mang[10] = {0,1,2,3,4,5,6,7,8,9};
                              đây là 1 mảng 10 phần tử, phần tử đầu tiên là Mang[0], phần tử cuối cùng là Mang[9]. mảng có 10 phần tử nên chỉ đc khai báo tối da 10 phần tử cho mạng
                              e có đọc qua cái phần mảng này lúc chiều rồi ạ
                              unsigned char Mang[10] = {0,1,2,3,4,5,6,7,8,9};
                              chỗ này sẽ có 10 mảng gồm các mảng từ 0 đến 9 đúng ko anh vậy nếu mình đặt mỗi 1 số là 1 mã hex vì dụ như 0xff ,.. thì nó sẽ có 10 hiệu ứng đúng ko ạ vậy nó có 10 hiệu ứng nhưng e ko biết vdk khi nào nó sẽ chạy mã nào hay là chạy tuần tự từ trái sang phải hay là tuỳ thuộc vào cái giá trị k mình đặt

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X