Thông báo

Collapse
No announcement yet.

giúp em về thời gian trễ trong lập trình cho 8051 với

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

  • giúp em về thời gian trễ trong lập trình cho 8051 với

    em đang lập trình điều khiển đèn led cho con 8051 sáng các kiểu chữ khác nhau nhưng mỗi kiểu lại cần thời gian trễ khác nhau, mà em thì lại chỉ biết tạo một thời giãn trễ duy nhất.
    các bác xem có cách nào để có thể làm mỗi kiểu nháy dùng một thời trễ khác nhau không
    cảm ơn các bác nhiều

  • #2
    Đơn giản nhất là viết nhiều chương trình con với các delay khác nhau, làm thêm phím bấm để di chuyển tới các chương trình con đó hoặc định 1 khoảng thời gian thì tự động chuyển từ ct con này sang ct con khác (dùng Djnz ấy) cũng được.

    Comment


    • #3
      Hàm trễ của bạn ko có biến chuyền vào à ?
      Nếu có thì chỉ cần thay đổi giá trị biến chuyền vào thì sẽ có thời gian trễ khác nhau thôi

      Comment


      • #4
        bác ơi nhưng đây là chương trình chạy tự động nên không dùng phím bấm được. khi mình tạo nhiều chương trình con delay nhưng làm thế nào để nhận biết được kiểu nháy này thì dùng delay nay kiểu nháy kia thì dùng delay khác
        vì mới tìm hiểu bác giúp em với
        thanks các bác

        Comment


        • #5
          theo mình bạn nên viết cho nó nhiều thời gian trễ cho mỗi kiểu.tùy vào kiểu nháy nằm ở đâu mà gọi CT delay phù hợp vào đó.Nếu ko thì chỉ cần viết 1 CT delay, tùy thời gian delay CT là bao nhiêu mà gọi số lần delay cho phù hợp.
          VD:setb P1.0
          lcall delay
          lcall delay
          lcall delay

          clr P1.0


          Add: 97 Quán Nam - Lê Chân - Hải Phòng.
          Tel: 031 518648 Phone: 0904 283 505

          Comment


          • #6
            có khi em phải làm theo cách đấy. cảm ơn bác nhé

            Comment


            • #7
              nhưng em vẫn muốn có cách nào khác không vì chương trình của em không phải là đẩy ra từng port mà là em sử dụng con chỏ, đưa các giá trị vào con chỏ rồi đấy ra các port.
              mong các bác giúp đỡ

              Comment


              • #8
                Multi System nói đúng rồi đấy sao bạn không thử xem
                Mình cũng có dùng hàm delay để nháy 8 LED theo các kiểu khác nhau
                Bạn tham khảo nge

                //Khai bao cac chuong trinh con
                void delay(unsigned int number);
                //Dinh nghia ham delay
                void delay(unsigned int number)
                { unsigned char j;
                unsigned char i;
                for(i=0;i<=number;i++)
                { for(j=0;j<=1000;j++)
                {}
                }
                }

                1000 là 1000micro s
                khi cần delay thi bạn gọi nó ra: delay(x);
                giả sử mình cần trễ 1s -> delay(1000)
                trễ 0,5s delay(500)
                ...
                Thân!

                Comment


                • #9
                  bác ơi bác có thể bảo em về chương trình bằng acsem không?

                  Comment


                  • #10
                    Bạn viết hàm có số truyền vào ấy!
                    vd thạch anh 12MHz => Tck=1us. Viết hàm delay_1ms, muốn trì hoãn nhiều lần thì dùng vòng lặp để lặp lại nhiều lần hàm này.

                    ;------------------------------------------
                    main:
                    ;viết các lệnh ở đây
                    mov r5,#100
                    lcall delay_nms; //trì hoãn 100ms
                    jmp main

                    ;-----------------------------------------
                    ;r5<255, muốn có trì hoãn lớn hơn 255ms thì có thể viết hàm delay_100ms
                    ;với đối số r4 truyền vào => trì hoãn lớn nhất đạt 255x100ms=25,5s
                    delay_nms:
                    lcall delay_1ms
                    djnz r5, delay_nms
                    ret

                    ;------------------------------------
                    delay_1ms:
                    mov r6,#10
                    delay_1ms1:
                    mov r7,#50
                    djnz r7,$
                    djnz r6,delay_1ms1
                    ret
                    !e

                    Comment


                    • #11
                      thanks các bác. Để em thử xem đã,co gì em hỏi các bác sau.

                      Comment

                      Về tác giả

                      Collapse

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

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

                      Collapse

                      Đang tải...
                      X