Thông báo

Collapse
No announcement yet.

HELP !! Tạo xung trên AT89c51

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

  • HELP !! Tạo xung trên AT89c51

    Chào các bạn, mình mới bít vè VĐK>
    Mong các bạn giúp đỡ cho bài này, lập trình sử dụng Timer số 1 ở chế độ 2, tạo ra xung chu kỳ 1s, có độ rộng = 650ms ở chân cổng P0.0
    Và bài của mình đây, nhưng chạy ko đc
    PHP Code:
    ORG 0000H
        MOV TMOD
    ,#20H
        
    MOV TH1,#HIGH(-250)
        
    MOV TL1,#LOW(-250)
        
    SETB TR1
    AGAIN
    :    CLR P0.0
        MOV R1
    ,#14
    BACK2:    MOV R2,#100
    BACK1:    JNB TF1,$
        
    CLR TF1
        DJNZ R2
    ,BACK1
        DJNZ R1
    ,BACK2
        SETB P0.0
        MOV R3
    ,#26
    BACK4:    MOV R4,#100
    BACK3:    JNB TF1,$
        
    CLR TF1
        DJNZ R4
    ,BACK1
        DJNZ R3
    ,BACK2
        SJMP AGAIN
    END 
    Nếu có thể các bác giúp mình mô phỏng cái này trên Protel
    Cảm ơn nhiều
    |

  • #2
    Hjc, ko ai giúp mình .....?
    |

    Comment


    • #3
      có phải bạn nhầm lẫn ở chỗ
      BACK4: MOV R4,#100
      BACK3: JNB TF1,$
      CLR TF1
      DJNZ R4,BACK3
      DJNZ R3,BACK4
      SJMP AGAIN


      BACK4: MOV R4,#100
      BACK3: JNB TF1,$
      CLR TF1
      DJNZ R4,BACK1
      DJNZ R3,BACK2
      SJMP AGAIN
      Điện thoại:
      email:

      Comment


      • #4
        KO phải bạn ơi, đây ko phải là xung đối xứng, nên chu kỳ xung ko bằng 2 lần độ rộng xung....
        Mình làm như thế để tính thời gian của đoạn xung sau mà....
        |

        Comment


        • #5
          Oh, hình như là thế rùi, tại sao lại BACK về BACK1 chứ....?
          Cảm ơn bạn, để mình tét lại xem
          |

          Comment


          • #6
            Sao bạn không viết chương trình con là Delay dùng timer, sau đó gọi chương trình con đó ra sẽ dễ thao tác hơn. Với lại khi bạn sử dụng giảm giá trị thanh ghi trong Delay dùng timer thì bạn nên xóa cờ TR khi cờ TF lên 1, sau đó kiểm tra thanh ghi, nếu chưa bằng 0 thì cho quay lại từ đầu và tiếp tục set cờ TR cho timer chạy tiếp.

            Ví dụ đây là Delay dùng Timer 1 ở chế độ 1 cho thời gian trễ 1s

            DELAY1S:
            PUSH R0
            MOV TMOD,#00010000B
            MOV R0,#100
            AAA:
            MOV TH1,#HIGH(-10000)
            MOV TL1,#LOW(-10000)
            SETB TR1
            JNB TF1,$
            CLR TF1
            CLR TR1
            DJNZ R0,AAA
            POP R0
            RET

            Từ giờ bạn có chương trình con là delay 1s, khi bạn muốn cho chỗ nào trì hoãn 1s thì bạn cứ gọi chương trình con ra bằng lệnh LCALL DELAY1S bình thường.

            Thân!
            "Cái quý nhất của con người ta là sự sống. Đời người chỉ sống có một lần.Phải sống sao cho khỏi xót xa ân hận..."
            Lê lết, lay lất sống qua ngày! >:)

            Comment


            • #7
              Hic, chào các Bro, dùng ở Mode 1, thì ko nói rùi, em muốn dùng Mode 2 cơ. Vì bài tập đưa ra như vậy:
              lập trình dùng bộ định thời số 1, hoạt động ở mode 2, tạo chuỗi điện áp hình vuông có chu kỳ 1 giây ở chân cổng P0.0
              Và CODE của em sau khi đã sửa, nhưng chu kỳ xung vẫn ko đảm bảo là 1 giây, Các Bro giúp em nha
              PHP Code:
              ;***********************************
              ;
              TIMER 0MODE 2XUNG1HZP0.0  *
              ;***********************************
              ORG 0000H
                  MOV TMOD
              ,#02H
                  
              MOV TH0,#HIGH(-250)
                  
              MOV TL0,#LOW(-250)
                  
              SETB TR0
                  CLR P0.0
              AGAIN
              :    MOV R2,#20
              BACK1:    MOV R3,#100
              BACK2:    JNB TF0,$
                  
              CLR TF0
                  DJNZ R3
              ,BACK2
                  DJNZ R2
              ,BACK1
                  CPL P0.0
                  JMP AGAIN
              END 
              |

              Comment

              Về tác giả

              Collapse

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

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

              Collapse

              Đang tải...
              X