Thông báo

Collapse
No announcement yet.

viết code assemly cho 8951 đo độ rộng xung

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

  • #16
    Nguyên văn bởi sangthai Xem bài viết
    Code dai khai nhu the nay:

    ....
    MAIN:
    MOV R1,#1
    MOV TMOD,#01H ;T0 16 BIT
    MOV TH0,#0
    MOV TL0,#0
    CLR TF0
    SETB IT0 ;INT0 VÀ INT1 TÁC ĐỘNG BẰNG CẠNH XUỐNG.
    SETB IT1
    MOV IE,#85H ;CHO PHÉP INT0 VÀ INT1 NGẮT
    CJNE R1,#0,$
    .....
    Cho em hỏi anh sangthai là MOV R1,#1 rùi CJNE R1,#0,$ có phải là đợi ngắt phải kô ạ? Mình có thể thay bằng SJMP $ được không ạ?

    Comment


    • #17
      CJNE R1,#0,$ đúng như em nói là đợi ngắt. Lệnh này không thể thay bằng lệnh " SJMP $ " vì khi gặp lệnh này vi điều khiển bị gây mê rồi (Không làm gì cả), chỉ có nước nhấn nút reset thì vi điều khiển mới hoạt động lại.

      Comment


      • #18
        Anh Sangthai xem dùm em cái code ASM này với. Em cũng làm về cảm biến siêu âm đo khoảng cách. Khi có sw được nhấn em sẽ tạo ra trên P2.7 1 xung vuông. Khi nhận sóng phản xạ về em tạo ngắt rồi tính toán hiển thị lên LCD.
        File kèm theo:
        Attached Files

        Comment


        • #19
          Mới sửa 1 chút phần mềm.
          Attached Files

          Comment


          • #20
            Cám ơn anh sangthai nhiều. Anh cho em hỏi thêm là trong phần hiển thị thì có phải chuyển mã giá trị trong thanh ghi R1 và R2 sang dạng khác không hay là LCD có thể hiển thị giá trị thập phân trong thanh ghi R1 và R2 luôn ạ?

            Comment


            • #21
              híc cậu này học vdk chán quá... LCD nhận mã asc tu vdk gui xuong... den day cau tu lam nha... Hic

              Comment


              • #22
                các đại ka ơi? cho em hỏi với? em mới học vdk thui, nhưng phải làm đồ án rùi, về đo độ rộng, tần số và tốc độ hiển thị trên lcd ấy. thực sự là khó hiểu quá, em k biết viết chương chình , nếu ta dùng timer 1 và timer 2 để đo nhé, đo 2 cạnh xuống ấy, ta viết chương trình cho timer 2 chạy trong 1s nhé, rùi dùng counter1 đếm tần số sau mỗi 1s , cứ lặp như vậy đến khi đo đc 400kHz. rù hiển thị lên lcd, làm như này có đo dc độ rộng xung k ạ, các anh có thể cho em chương trình dc k ạ? t2 em phải báo cáo rùi. kái môn này em kém quá, mong các anh chỉ bảo?thanks nhìu nhìu!
                |

                Comment


                • #23
                  Nguyên văn bởi quyenxinh Xem bài viết
                  các đại ka ơi? cho em hỏi với? em mới học vdk thui, nhưng phải làm đồ án rùi, về đo độ rộng, tần số và tốc độ hiển thị trên lcd ấy. thực sự là khó hiểu quá, em k biết viết chương chình , nếu ta dùng timer 1 và timer 2 để đo nhé, đo 2 cạnh xuống ấy, ta viết chương trình cho timer 2 chạy trong 1s nhé, rùi dùng counter1 đếm tần số sau mỗi 1s , cứ lặp như vậy đến khi đo đc 400kHz. rù hiển thị lên lcd, làm như này có đo dc độ rộng xung k ạ, các anh có thể cho em chương trình dc k ạ? t2 em phải báo cáo rùi. kái môn này em kém quá, mong các anh chỉ bảo?thanks nhìu nhìu!
                  THứ 2 báo cáo mà hôm nay chưa làm gì cả àh
                  Bó chíu cho Bác.
                  Nếu sớm thì tôi có thể giúp bác đó

                  Email:
                  Tel: 0983.497.310

                  Comment


                  • #24
                    hix. thì bác cứ giúp em đi mừ...........chứ k thì cứ để em mãi k hỉu sao???????????
                    giúp em với pác ơi?
                    |

                    Comment


                    • #25
                      Nguyên văn bởi quyenxinh Xem bài viết
                      hix. thì bác cứ giúp em đi mừ...........chứ k thì cứ để em mãi k hỉu sao???????????
                      giúp em với pác ơi?
                      Giúp gì đi chăng nữa bạn cũng bị thầy cho O điểm rùi, hết hạn rồi cưng àh

                      Email:
                      Tel: 0983.497.310

                      Comment


                      • #26
                        trời ạ. ng ta mới chỉ thông thui mà, thầy cũng đâu quá đến mức k cho bảo vệ chứ?
                        _k biết thì mới phải hỏi> hỏi để cho biết> biết để k phải hỏi>_
                        chán.
                        |

                        Comment


                        • #27
                          Nguyên văn bởi quyenxinh Xem bài viết
                          trời ạ. ng ta mới chỉ thông thui mà, thầy cũng đâu quá đến mức k cho bảo vệ chứ?
                          _k biết thì mới phải hỏi> hỏi để cho biết> biết để k phải hỏi>_
                          chán.
                          Bạn ở đâu thế nếu ở HCM thì tới tui chỉ luôn cho

                          Email:
                          Tel: 0983.497.310

                          Comment


                          • #28
                            hix. mình ở tận hưng yên cơ, bạn chỉ cho mình qua đây vậy?
                            |

                            Comment


                            • #29
                              Nguyên văn bởi sangthai Xem bài viết
                              Cái này dễ mà. Bạn sử dụng chân ngắt INT0 và INT1 của 89S52 đi, hai cái ngắt này tác động bằng cạnh xuống.
                              Bạn dùng cổng đảo 74HC14 đổi cạnh lên thành cạnh xuống để kích chân INT0,
                              Chân INT1 nối trực tiếp với tín hiệu xung.

                              Khi INT0 được tác động thì vi điều khiển sẽ ngắt, tại thời điểm này bạn cho Timer T0 chạy. Khi INT1 được tác động thì vi điều khiển lại ngắt, tại thời điểm INT1 được tác động bạn cho Timer T0 dừng chạy.
                              Sau đó lấy thời gian Timer T0 đếm được tính ra độ rộng của xung.
                              Chúc bạn thànhh công.
                              cách này để đo độ rộng xung là ổn đấy chứ .Còn nếu bạn muốn đo cả tần số và độ rộng xung thì bạn thử phương pháp này xem:
                              1--khi tín hiệu ở sườn xuống thì bạn ngắt INT0 thì bạn dừng timer1 ,tại thời điểm này bạn cho timer0 hoạt động cho đến khi xuất hiện lần ngắt INT0 tiếp theo-->từ đây sẽ tính ra dc tần số
                              2--để đo độ rộng xung thì bạn dùng cách trên tạo ngắt INT1 tính timer1

                              Comment


                              • #30
                                Đọc cuốn 8051 của bác On đi, có chỉ luôn cách dùng timer capture đo độ rộng xung luôn. Chỉ cần set bit gate lên là đo độ rộng xung bằng phần cứng luôn, tội gì phải làm như thế cho mệt.

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X