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

                    • Andrea14
                      Vấn đề về tốc độ quay
                      bởi Andrea14
                      Chào mọi người,

                      Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...
                      Hôm qua, 12:42
                    • bqviet
                      Trả lời cho Đấu tắt điện cho máy tính bảng
                      bởi bqviet
                      Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
                      06-12-2025, 17:17
                    • nguyendinhvan
                      Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
                      bởi nguyendinhvan
                      Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
                      05-12-2025, 19:59
                    • afrendly
                      Trả lời cho Đấu tắt điện cho máy tính bảng
                      bởi afrendly
                      Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
                      04-12-2025, 01:27
                    Đang tải...
                    X