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

  • chuong trinh dieu khien 8led sang tat.

    Minh moi hoc vi xu ly nen nho cac ban giai thich tung doan lenh dum nha ,minh khong hieu may ,chi biet chep danh lenh khong ah.cam on nha.ghi ro va huong dan dum nha ,y nghia cua tung lenh ha.cam on nhieu lam.


    CHUONG TRINH DIEU KHIEN 8 LED SANG TAT
    KET NOI : 8 LED ->PORT 0(CO DEM DAO)
    $MOD51
    ORG 00H
    CHOPTAT:
    MOV P0,#00H ;LED TAT
    LCALL DELAY500MS
    MOV P0,#0FFH ;LED SANG
    LCALL DELAY500MS
    SJMP CHOPTAT ;QUAY LAI
    DELAY500MS:;CHUONG TRINH CON TAO THOI GIAN TRE 500MS
    PUSH 00H
    MOV R0,#100
    MOV TMOD,#01H
    LOOP2:
    MOV TH0,#0ECH
    MOV TL0,#78H
    SETB TR0
    JNB TF0,$
    CLR TR0
    CLR TF0
    DJNZ R0,LOOP2
    POP 00H
    RET
    END

  • #2
    CHUONG TRINH DIEU KHIEN 8 LED SANG TAT
    KET NOI : 8 LED ->PORT 0(CO DEM DAO)
    $MOD51 <- chèn file MOD51 vào chương trình
    ORG 00H <- bắt đầu ghi vào bộ nhớ có địa chỉ 00H các dòng lệnh bên dưới
    CHOPTAT: <- nhãn
    MOV P0,#00H ;LED TAT <- các chân từ P0 đến P7 có điện áp là 0V (low)
    LCALL DELAY500MS <- Gọi chương trình DELAY 500MS
    MOV P0,#0FFH ;LED SANG <- các chân từ P0 đến P7 có điện áp là 5V (high)
    LCALL DELAY500MS <- Gọi chương trình DELAY 500MS
    SJMP CHOPTAT ;QUAY LAI <- Nhảy về nhãn CHOPTAT
    DELAY500MS:;CHUONG TRINH CON TAO THOI GIAN TRE 500MS
    PUSH 00H <- sao lưu dữ liệu thanh ghi có địa chỉ 00H
    MOV R0,#100 <- Ghi vào thanh ghi R0 ghía trị #100
    MOV TMOD,#01H <- Ghi vào thanh ghi Tmod ghía trị #01H
    LOOP2: <- Nhãn
    MOV TH0,#0ECH <- ghi vào thanh ghi TH0 giá trị #0ECH
    MOV TL0,#78H <- ghi vào thanh ghi TL0 giá trị #78H
    SETB TR0 <- Ghi vào bít TR0 giá trị 1
    JNB TF0,$ <- nếu bit TF0 bằng 0 thì nhảy đến nhãn phía trên gần nhất
    CLR TR0 <- Clear TR0 tức là ghi 0 vào bít TR0
    CLR TF0 <- Clear TF0 tức là ghi 0 vào bít TF0
    DJNZ R0,LOOP2 <- Lây giá trị thanh ghi R0 trừ đi 1 nếu R0 = 0 thì thực hiện lệnh phía sau con chưa bằng 0 thì nhảy lên Nhãn LOOP2
    POP 00H <- lấy lại dữ liệu đã sao lưu
    RET <- Thoát khỏi ngắt
    END <- kết thúc chương trình
    Tâm trí ta say nhưng lòng ta đâu có say
    Bởi trái tim tôi đã trót say người

    Comment


    • #3
      Bạn hãy vào trang này để học về lập trình cho 8051 và các vấn đề khác nhé:
      http://codientu.info/codientu/ki_thu...02/2vdk001.htm
      Còn đây là toàn bộ tài liệu học 8051 của cơ điện tử .info học đi roài có gì ko hiểu cứ post bài lên hỏi !!!!!!!!
      http://codientu.info/tailieu/vidieukhien_26_04_07.rar
      Tâm trí ta say nhưng lòng ta đâu có say
      Bởi trái tim tôi đã trót say người

      Comment


      • #4
        Nguyên văn bởi bk_future Xem bài viết
        CHUONG TRINH DIEU KHIEN 8 LED SANG TAT
        KET NOI : 8 LED ->PORT 0(CO DEM DAO)
        $MOD51 <- chèn file MOD51 vào chương trình
        ORG 00H <- bắt đầu ghi vào bộ nhớ có địa chỉ 00H các dòng lệnh bên dưới
        CHOPTAT: <- nhãn
        MOV P0,#00H ;LED TAT <- các chân từ P0 đến P7 có điện áp là 0V (low)
        LCALL DELAY500MS <- Gọi chương trình DELAY 500MS
        MOV P0,#0FFH ;LED SANG <- các chân từ P0 đến P7 có điện áp là 5V (high)
        LCALL DELAY500MS <- Gọi chương trình DELAY 500MS
        SJMP CHOPTAT ;QUAY LAI <- Nhảy về nhãn CHOPTAT
        DELAY500MS:;CHUONG TRINH CON TAO THOI GIAN TRE 500MS
        PUSH 00H <- sao lưu dữ liệu thanh ghi có địa chỉ 00H
        MOV R0,#100 <- Ghi vào thanh ghi R0 ghía trị #100
        MOV TMOD,#01H <- Ghi vào thanh ghi Tmod ghía trị #01H
        LOOP2: <- Nhãn
        MOV TH0,#0ECH <- ghi vào thanh ghi TH0 giá trị #0ECH
        MOV TL0,#78H <- ghi vào thanh ghi TL0 giá trị #78H
        SETB TR0 <- Ghi vào bít TR0 giá trị 1
        JNB TF0,$ <- nếu bit TF0 bằng 0 thì nhảy đến nhãn phía trên gần nhất
        CLR TR0 <- Clear TR0 tức là ghi 0 vào bít TR0
        CLR TF0 <- Clear TF0 tức là ghi 0 vào bít TF0
        DJNZ R0,LOOP2 <- Lây giá trị thanh ghi R0 trừ đi 1 nếu R0 = 0 thì thực hiện lệnh phía sau con chưa bằng 0 thì nhảy lên Nhãn LOOP2
        POP 00H <- lấy lại dữ liệu đã sao lưu
        RET <- Thoát khỏi ngắt
        END <- kết thúc chương trình
        Cũng khá đủ, cho anh sửa 1 dòng nhé bk_future
        RET <- thoát khỏi hàm DELAY500MS (hay chương trình con DELAY500MS )

        email:mahaco@fpt.vn

        Comment


        • #5
          cam on ban rat nhieu ,minh se co tim hieu va nhung gi khong hieu xin nho chi giup nha .cam on nhieu lam !!


          Đề nghị lần sau bạn viết có dấu. Diễn đàn hỗ trợ việc này.
          Last edited by VNarmy; 10-10-2007, 09:37.

          Comment


          • #6
            Mình gợi ý bạn là nên dùng timer để chương trình gọn hơn,chỉnh sửa dễ hơn và tiết kiệm bộ nhớ hơn
            Tâm trí ta say nhưng lòng ta đâu có say
            Bởi trái tim tôi đã trót say người

            Comment


            • #7
              chao cac ban! minh co doan lenh nay mong cac ban giup he.lam sao co the cho chay nguoc lai duoc khong he.cam on truoc ha
              $MOD51
              ORG 00H
              MAIN:
              ACALL CHOPTAT
              ACALL DEMLEN
              ACALL SANGDUOI
              ACALL SANGDAN
              ACALL SANGDON
              SJMP MAIN
              CHOPTAT:
              MOV R7,#5
              SOLAN1:
              MOV P0,#00H
              LCALL DELAY500MS
              MOV P0,#0FFH
              LCALL DELAY500MS
              DJNZ R7,SOLAN1
              RET
              DEMLEN:
              MOV R7,#2
              SOLAN2:
              MOV P0,#00H
              LCALL DELAY500MS
              LAP1:
              INC P0
              LCALL DELAY500MS
              MOV A,P0
              CJNE A,#00H,LAP1
              DJNZ R7,SOLAN2
              RET
              SANGDUOI:
              MOV R7,#5
              SOLAN3:
              MOV A,#01H
              CLR C
              LAP2:
              MOV P0,A
              LCALL DELAY500MS
              RLC A
              JNC LAP2
              DJNZ R7,SOLAN3
              RET
              SANGDAN:
              MOV R7,#5
              SOLAN4:
              MOV A,#00H
              LAP3:
              SETB C
              MOV P0,A
              LCALL DELAY500MS
              RLC A
              JNC LAP3
              DJNZ R7,SOLAN4
              RET
              SANGDON:
              MOV R7,#3
              SOLAN5:
              MOV R0,#08H
              MOV R1,#00H
              LAP4:
              MOV R2,#00H
              MOV R3,#01H
              LAP5:
              MOV A,R3
              ORL A,R1
              MOV P0,A
              LCALL DELAY500MS
              MOV A,R3
              RL A
              MOV R3,A
              DJNZ R2,LAP5
              DEC R0
              SETB C
              MOV A,R1
              RRC A
              MOV R1,A
              CJNE R0,#00H,LAP4
              MOV P0,#00H
              ACALL DELAY500MS
              DJNZ R7,SOLAN5
              RET
              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
              END

              Comment


              • #8
                các anh có thể giải thích rõ hơn về câu lệnh
                JNB TF0,$
                được không ạ?

                Comment


                • #9
                  Nguyên văn bởi namkim Xem bài viết
                  các anh có thể giải thích rõ hơn về câu lệnh
                  JNB TF0,$
                  được không ạ?
                  nhảy tại chỗ nếu bit TF0 vẫn =0 , có nghĩa trong khi bit TF0 = 0 thì đứng đó đợi while (!TF0);

                  Comment


                  • #10
                    ý nghĩa lệnh là như vậy còn mục đích của lệnh này anh có thể nói rõ hơn không ạ?
                    em cảm ơn

                    Comment


                    • #11
                      khi mô phỏng mạch bằng protues em xóa câu lệnh $MOD51
                      thì nó vẫn chạy led sang lần lượt rồi tắt
                      với câu lệnh JNB TF0,$ thì led sáng từ từ có thể nhìn thấy
                      còn khi thay câu lệnh JNB TF0,$ thành câu lệnh JNB TF0 thì led nháy liên tục
                      anh có thể giải thích giúp em chổ này không ạ?

                      Comment


                      • #12
                        Nguyên văn bởi namkim Xem bài viết
                        ý nghĩa lệnh là như vậy còn mục đích của lệnh này anh có thể nói rõ hơn không ạ?
                        em cảm ơn
                        kiểm tra cờ báo tràn timer0 TF0 í mà ...

                        Comment


                        • #13
                          Nguyên văn bởi namkim Xem bài viết
                          JNB TF0,$ thành câu lệnh JNB TF0 thì led nháy liên tục
                          anh có thể giải thích giúp em chổ này không ạ?
                          đúng roy JNB TF0 thì nó biết nhảy đến đâu ?
                          JNB = Jump Not Bit = nhảy (đến vị trí...) nếu bit ... bằng 0

                          Comment


                          • #14
                            khi mô phỏng mạch bằng protues em xóa câu lệnh $MOD51
                            thì nó vẫn chạy led sang lần lượt rồi tắt
                            với câu lệnh JNB TF0,$ thì led sáng từ từ có thể nhìn thấy
                            còn khi thay câu lệnh JNB TF0,$ thành câu lệnh JNB TF0 thì led nháy liên tục
                            anh có thể giải thích giúp em chổ này không ạ?

                            Comment


                            • #15
                              $MOD51
                              vậy mục đích của lệnh này là làm gì ạ?

                              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