Thông báo

Collapse
No announcement yet.

các bác xem thử giùm em tại sao chuơng trình không chạy!

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

  • các bác xem thử giùm em tại sao chuơng trình không chạy!

    Đây là chương trình của em:

    #include "regx51.h"
    unsigned char led[ ] = { 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80 } ;
    void delay(unsigned char time)
    {
    while(time--)
    {
    unsigned char j=125;
    while(j--);
    };
    }
    void main()
    {
    unsigned char i;
    while(1)
    {
    for ( i=0;i<8;i++)
    {
    P1 = led[i];
    delay(2000);
    }
    };
    }

    em viet bang Kail C

  • #2
    chương trình này hình như cũng có người từng mắc. Nếu không nhầm thì câu lệnh delay(2000) không ổn lắm vì tham số của hàm delay là unsigned char không lớn đến 2000 chỉ từ 0-255 (cũng không nhớ lắm) do đó số 2000 sẽ bị biến thể ngoài ý muốn của người lập trình thành số nào đó (cũng không nhớ là ra bao nhiêu luôn).
    Bạn chịu khó thì xem các luồng khác trong box này nhé, nhiều vấn đề đó. Chúc học vui
    Trái tim anh chia 3 phần tươi đỏ
    Anh dành riêng cho học phần nhiều
    Phần cho chơi và phần để em yêu

    Comment


    • #3
      Nguyên văn bởi hatnang87 Xem bài viết
      chương trình này hình như cũng có người từng mắc. Nếu không nhầm thì câu lệnh delay(2000) không ổn lắm vì tham số của hàm delay là unsigned char không lớn đến 2000 chỉ từ 0-255 (cũng không nhớ lắm) do đó số 2000 sẽ bị biến thể ngoài ý muốn của người lập trình thành số nào đó (cũng không nhớ là ra bao nhiêu luôn).
      Bạn chịu khó thì xem các luồng khác trong box này nhé, nhiều vấn đề đó. Chúc học vui
      vẫn không được bác ạ!e đã thay 2000->250 rồi mà không được!
      #include "regx51.h"
      #define led1 P1_0
      void delay(unsigned char time)
      {
      while(time--)
      {
      unsigned char j=125;
      while(j--);
      };
      }
      void main()
      {
      while(1)
      {led1=1; delay(2000);
      led1=0; delay(2000);
      };
      }
      chương trình nháy 1 led em vẫn chậy được mà sao khi mô phong nháy 8Led với câu lệnh trên kia thì nó chỉ đỏ có led P1.7? giúp em với!

      Comment


      • #4
        giup e voi cac bac oi!? sao chang bac nao chiu len tieng vay!huhu!

        Comment


        • #5
          Xem lại điều kiện while trong hàm delay nhé.
          Sửa lại
          while((time--) > 0){
          for(j=0;j<125;j++){}
          }

          hoặc
          unsigned char i;
          for(i=0;i<time;i++)
          for(j=0;j<125;j++)
          { }

          Muốn delay lâu hơn đổi khai báo biến thành unsigned int
          Ethernet-RS232, PIC Webserver, RFID Reader
          CallerID, Cảnh báo BTS, ...
          0988006696
          linhnc308@gmail.com
          http://linhnc308.blogspot.com

          Comment


          • #6
            Bác thay đổi void delay(unsigned char time) thành void delay(unsigned int time)

            và nên gọi delay(1000) thôi -> trễ 1s

            Như thế chương trình chắc chắn chạy.

            Nhưng tốt nhất là nên làm như bác linhnc308 khuyên!
            ----------------------
            Bể học là mênh mông!

            Comment


            • #7
              Chẳng có gì sai hết, biên dịch và chạy bình thường, chỉ có lỗi lập trình chỗ delay(2000) bạn cần sửa thôi. Bạn mô phỏng hay làm phần cứng vậy?
              Dùng Proteus mô phỏng vẫn OK mà.

              Comment


              • #8
                minh mô phỏng bằng proteus ko chay được nó chỉ sáng có mỗi cái led 1.7! mình đang dùng bản 7.2 full mà sao mỗi lần dùng xong nó ko cho dùng nữa!huhu!

                Comment


                • #9
                  minh mô phỏng bằng proteus ko chay được nó chỉ sáng có mỗi cái led 1.7!
                  Mình mô phỏng chạy tốt! Gửi cho bác xem thử!
                  Attached Files
                  ----------------------
                  Bể học là mênh mông!

                  Comment


                  • #10
                    Bác đang dùng Proteus bản bao nhiêu vậy! send link cho mình với được kô?

                    Comment

                    Về tác giả

                    Collapse

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

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

                    Collapse

                    Đang tải...
                    X