Thông báo

Collapse
No announcement yet.

<Counter 8051> [Help!]Nút nhấn bị rung thì xử lý thế nào khi đếm xung bằng nút nhấn???

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

  • <Counter 8051> [Help!]Nút nhấn bị rung thì xử lý thế nào khi đếm xung bằng nút nhấn???

    Mình đang học đến bộ counter 8051, muốn sử dụng nó để đếm số lần nhấn nút. Nhưng mình được biết nút nhấn khi bấm sẽ bị rung nên không biết xử lý thế nào để đếm được chính xác.
    Mong mọi người giúp đỡ.

  • #2
    Delay mấy chục ms, chờ hết rung rồi đọc lại.
    sau.ph

    Comment


    • #3
      Nhưng xung đc tạo khi nhấn nút vào trực tiếp bộ đếm. Nên nếu bị dội phím thì 1 lần nhấn sẽ có nhiều xung tự động vào. Không giống như nhấn phím để điều khiển bật tắt đèn.

      Comment


      • #4
        Nguyên văn bởi T.L.M Xem bài viết
        Delay mấy chục ms, chờ hết rung rồi đọc lại.
        Nhưng xung đc tạo khi nhấn nút vào trực tiếp bộ đếm. Nên nếu bị dội phím thì 1 lần nhấn sẽ có nhiều xung tự động vào. Không giống như nhấn phím để điều khiển bật tắt đèn

        Comment


        • #5
          Nếu không muốn dùng phần mềm chống rung thì có thể dùng phần cứng: Mắc song song tụ 0.1uF với nút nhấn, có thể thêm mạch trigger schmitt.

          Hoặc dùng mạch 555 monostable.
          sau.ph

          Comment


          • #6
            Nguyên văn bởi BasicT Xem bài viết
            Nhưng xung đc tạo khi nhấn nút vào trực tiếp bộ đếm. Nên nếu bị dội phím thì 1 lần nhấn sẽ có nhiều xung tự động vào. Không giống như nhấn phím để điều khiển bật tắt đèn.
            Thân chào, chắc là bạn mới biết sơ sơ qua lập trình đúng ko, lý thuyết thì thầy bà ai cũng bảo kết nối nút nhấn vào ngắt để nhận xung còn trên thành phẩm thực tế chả ai làm kiểu đó hết. Để ổn định chống rung nút nhấn thì không dùng ngắt mà lập trình hẳn trong vòng lặp chính để quét kiểm tra. khi phát hiện có xung thì lập trình cho delay 200 đến 300us sau đó cho kiểm lại tín hiệu nếu đã nhả thì mới cho cộng vào bộ đếm, còn vẫn nhảy lộn xộn thì miễn. Cách này tốn tài nguyên MCU nhưng chống mấy bệnh vớ vẩn của nút nhấn cực tốt không cần thêm tụ trở gì cả.
            Chúc thành công.
            Làm sao mà bạn dám nói là không làm được khi bạn chưa từng thử một lần nào.
            Ngay cả khi bạn đã làm 1 lần và thất bại bạn cũng không có quyền nói là không làm được vì bạn chưa làm lần thứ 2,3...

            Comment


            • #7
              Nguyên văn bởi hoahauvn2 Xem bài viết

              Thân chào, chắc là bạn mới biết sơ sơ qua lập trình đúng ko, lý thuyết thì thầy bà ai cũng bảo kết nối nút nhấn vào ngắt để nhận xung còn trên thành phẩm thực tế chả ai làm kiểu đó hết. Để ổn định chống rung nút nhấn thì không dùng ngắt mà lập trình hẳn trong vòng lặp chính để quét kiểm tra. khi phát hiện có xung thì lập trình cho delay 200 đến 300us sau đó cho kiểm lại tín hiệu nếu đã nhả thì mới cho cộng vào bộ đếm, còn vẫn nhảy lộn xộn thì miễn. Cách này tốn tài nguyên MCU nhưng chống mấy bệnh vớ vẩn của nút nhấn cực tốt không cần thêm tụ trở gì cả.
              Chúc thành công.
              Thanks bạn!Như vậy thì cũng chẳng cần bộ counter bạn nhỉ? Bạn có project nào như vậy k? Cho mình tham khảo với.Thanks!

              Comment


              • #8
                Nguyên văn bởi BasicT Xem bài viết

                Như vậy thì cũng chẳng cần bộ counter bạn nhỉ!
                Trong các ứng dựng đơn giản thì không dùng counter sẽ... đỡ mệt và đỡ tốn linh kiện hơn. Nhưng trong các ứng dụng và dự án lớn đến cực lớn, vi điều khiển buộc phải đáp ứng nhanh và chạy gần hết tài nguyên công suất thì không có chỗ dư thừa cho cái đoạn code xử lý nút nhấn, lúc đó buộc phải nhận tín hiệu nút nhấn và ưu tiên xử lý bằng ngắt và counter thôi.
                Mình khuyên bạn hiện tại bạn nên làm với ngắt / counter cho rành cả phần cứng và phần mền, sau này vững kiến thức rồi hãy tính đến việc tối ưu và hiệu quả.
                Mình đã không làm việc với các dòng MCU 8 bit lâu rồi, các project xưa giờ đã không còn nữa rồi.
                Chúc may mắn.
                Làm sao mà bạn dám nói là không làm được khi bạn chưa từng thử một lần nào.
                Ngay cả khi bạn đã làm 1 lần và thất bại bạn cũng không có quyền nói là không làm được vì bạn chưa làm lần thứ 2,3...

                Comment


                • #9
                  Nguyên văn bởi hoahauvn2 Xem bài viết

                  Trong các ứng dựng đơn giản thì không dùng counter sẽ... đỡ mệt và đỡ tốn linh kiện hơn. Nhưng trong các ứng dụng và dự án lớn đến cực lớn, vi điều khiển buộc phải đáp ứng nhanh và chạy gần hết tài nguyên công suất thì không có chỗ dư thừa cho cái đoạn code xử lý nút nhấn, lúc đó buộc phải nhận tín hiệu nút nhấn và ưu tiên xử lý bằng ngắt và counter thôi.
                  Mình khuyên bạn hiện tại bạn nên làm với ngắt / counter cho rành cả phần cứng và phần mền, sau này vững kiến thức rồi hãy tính đến việc tối ưu và hiệu quả.
                  Mình đã không làm việc với các dòng MCU 8 bit lâu rồi, các project xưa giờ đã không còn nữa rồi.
                  Chúc may mắn.
                  Thanks bạn nhé! Đi vào thực tế nhiều vấn đề bạn nhỉ?Hix!

                  Comment

                  Về tác giả

                  Collapse

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

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

                  Collapse

                  Đang tải...
                  X