Thông báo

Collapse
No announcement yet.

chuong trinh dieu khien 8led sang tat.

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

  • #16
    vì khi xóa nó mà để lệnh JNB TF0,$ thì nó vẫn chạy đúng nên em không hiểu
    xin anh giải thích thêm ạ?

    Comment


    • #17
      Nguyên văn bởi namkim Xem bài viết
      $MOD51
      vậy mục đích của lệnh này là làm gì ạ?
      khai báo thanh ghi , bit trong con 89 ở ASM , còn C thì #include <AT89S53.h>

      Comment


      • #18
        các bạn tham khảo chương trình này xem nha:
        ORG 00H
        BATDAU:
        MOV P0,#0 ;LED TẮT
        ACALL DELAY
        MOV P0,#0FFH;LED SÁNG
        SJMP BATDAU
        DELAY:
        MOV R7,#0FFH
        C1:MOV R6,#1FH
        C2: DJNZ R6,C2
        DJNZ R7,C1
        RET
        END

        Comment


        • #19
          DELAY500MS:
          PUSH 00H
          MOV R0,#100
          MOV TMOD,#01H
          LOOP2:
          MOV TH0,#0F6H
          MOV TL0,#3CH
          SETB TR0
          JNB TF0,$
          CLR TR0
          CLR TF0
          DJNZ R0,LOOP2
          POP 00H
          RET

          Chương trình delay này có 250ms thôi,
          Bạn nạp giá trị đầu cho timer là xai rồi!!!
          MOV TH0,#0ECH
          MOV TL0,#78H
          Mình gợi ý, bạn có thể nhập như vậy, máy sẽ tự tính giùm bạn
          MOV TH0,#High(-5000)
          MOV TL0,#Low(-5000)
          Ai cũng chọn việc nhẹ nhàng
          Gian khổ giành phần ai?

          Comment


          • #20
            Nguyên văn bởi phamngoctoi1 Xem bài viết
            các bạn tham khảo chương trình này xem nha:
            ORG 00H
            BATDAU:
            MOV P0,#0 ;LED TẮT
            ACALL DELAY
            MOV P0,#0FFH;LED SÁNG
            SJMP BATDAU
            DELAY:
            MOV R7,#0FFH
            C1:MOV R6,#1FH
            C2: DJNZ R6,C2
            DJNZ R7,C1
            RET
            END
            Chương trình này bạn thiếu 1 câu lệnh rồi, bạn phải thêm 1 câu lệnh call delay nữa sau khi cho nó sáng, nếu không nó bạn sẽ thấy nó led nó chẳng sáng tí nào cả, vì nó mới sáng có 3micro giây thì bạn đã cho nó tắt rùi
            MOV P0,#0FFH;LED SÁNG
            ACALL DELAY
            chương trình này cho led sáng 15.8 mili giây, rùi tắt 15.8 mili giây. đơn giản vậy thôi.
            Ai cũng chọn việc nhẹ nhàng
            Gian khổ giành phần ai?

            Comment


            • #21
              Nguyên văn bởi namkim Xem bài viết
              vì khi xóa nó mà để lệnh JNB TF0,$ thì nó vẫn chạy đúng nên em không hiểu
              xin anh giải thích thêm ạ?
              Để các bạn mới học 8051 hiểu rõ hơn về timer, mình xin tóm gọm 1 tí:
              8051 gồm 2 timer T0 và T1
              Timer là 1 thanh ghi 16bit gồm 2 thanh ghi 8bit TH VÀ TL
              Là 1 bộ đếm lên. Khi đếm đến FFFFH ( 65536). Thì sẽ tràn, Khi đó bit TF sẽ được lên 1.
              Ví dụ:
              Delay_1ms:
              MOV TMOD,#01H ; khởi động Timer0
              MOV TH0,#HIGH(-1000) ; nạp giá trị 64536 cho timer0, như vậy timer đếm thêm 1000micro s MOV TL0,#LOW(-1000) nữa thì tràn, khi tràn cờ TF0 được set lên 1
              SETB TR0 ; cho phép timer0 chạy, timer chỉ bắt đầu đếm khi bit TR0 được set lên 1
              JNB TF0,$ ; đứng chờ khi nào Timer chạy đủ 1000micro s, TF0 = 1 thì mới . . thực hiện lệnh tiếp theo
              CLR TF0 ;xóa TF để thực hiện lần sau
              CLR TR0 ; cho timer dừng lại
              RET
              Ai cũng chọn việc nhẹ nhàng
              Gian khổ giành phần ai?

              Comment


              • #22
                Nguyên văn bởi dinhthem Xem bài viết
                Mình gợi ý, bạn có thể nhập như vậy, máy sẽ tự tính giùm bạn
                MOV TH0,#High(-5000)
                MOV TL0,#Low(-5000)
                Nếu bạn muốn xài kiểu này thì tùy trình dịch.
                Viết chương trình kiểu này thì thường gặp tại phòng thí nghiệm VXL BKHCM

                Comment


                • #23
                  Nguyên văn bởi dinhthem Xem bài viết
                  Chương trình này bạn thiếu 1 câu lệnh rồi, bạn phải thêm 1 câu lệnh call delay nữa sau khi cho nó sáng, nếu không nó bạn sẽ thấy nó led nó chẳng sáng tí nào cả, vì nó mới sáng có 3micro giây thì bạn đã cho nó tắt rùi
                  MOV P0,#0FFH;LED SÁNG
                  ACALL DELAY
                  chương trình này cho led sáng 15.8 mili giây, rùi tắt 15.8 mili giây. đơn giản vậy thôi.
                  uh nhỉ chắc hôm qua gõ thiếu

                  Comment


                  • #24
                    bạn nào có mô hình mô phỏng và chương trình để đo vận tốc trung bìh của vật sử dùng 2 cảm biến không cho mình xin với
                    Mình đang cần gấp, nếu cố các bạn có thể gữi về địa chỉ: tringuyen1501@gmail.com cho mình vói nha
                    Xin cảm ơn

                    Comment


                    • #25
                      bạ nào có hình mô phỏng và chương trình đo vân tốc trung bình sữ dụng 2 cảm biến không cho mình xin với, nếu có các bạn có thể gữi đên địa chỉ: tringuyen1501@gmail.com cho mình với được không?
                      Xin cảm ơn

                      Comment

                      Về tác giả

                      Collapse

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

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

                      Collapse

                      Đang tải...
                      X