Thông báo

Collapse
No announcement yet.

phím bấm bị rung không chính xác ds1307?

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

  • phím bấm bị rung không chính xác ds1307?

    hi các anh cho em hỏi em làm dồng hồ số 89c51 với ds1307 đã chạy rùi nhưng mà còn phần phím bấm nó bị tưng tức là em bấm chỉnh giờ phút giây rất khó bấm đến 5 6 lần nó mới nhảy đến vị trí mà mình cần chỉnh em lên mạng tìm hiểu thì được biết đó là do nhiểu phím vậy các anh ai có kinh nghiệm cho em hỏi cách chống nhiễu phím bằng phần cứng hay phần mền nếu cả hai càng tốt (trên mạch của em các phím em đều treo 10k hết mà cũng nhiễu) mong các anh trợ giúp

  • #2
    với 8051 trừ PORT0 thì không cần trở treo bạn ạ
    với phím bấm thì bạn delay 1 khoảng nhỏ rồi kiểm tra lại
    nếu nó quay lại cao thì không làm gì cả
    nếu nó vẫn ở thấp thì chờ nhả ra (nó nhảy lên cao lại) thì mới làm tiếp

    Comment


    • #3
      Nguyên văn bởi kidteam Xem bài viết
      với 8051 trừ PORT0 thì không cần trở treo bạn ạ
      với phím bấm thì bạn delay 1 khoảng nhỏ rồi kiểm tra lại
      nếu nó quay lại cao thì không làm gì cả
      nếu nó vẫn ở thấp thì chờ nhả ra (nó nhảy lên cao lại) thì mới làm tiếp
      ko hẳn chỉ port0 đâu, thường thì chỉ port0, còn các port còn lại có trở treo nội, tuy nhiên theo các tiền bối, vẫn nên lắp điện trở treo vào, tùy theo mạch, ngay cả pic hay AVR có điện trở treo nội nhưng trong các module điều khiển người ta vẫn lắp trở treo bt bạn ak.
      Website chính thức đổi địa chỉ website thành
      Mời các bạn ghé thăm !!!

      Comment


      • #4
        anh noi ro hon duoc hong cho em doan code vd nói zầy em hông hiểu

        Comment


        • #5
          Đối với phím bấm bạn nên treo trở 10K lên VCC và 1 tụ 104(0.1uF) xuống GND để tránh nhiễu. Ngoài ra bạn kiểm tra 100ms / vòng quét là ổn.

          Comment


          • #6
            Thêm đoạn code tạo delay khoảng 20ms.
            Ví dụ.
            Sbit mode=P3^1;
            void delay(int ms)
            {
            int i;
            for(i=1;i<=ms;i++);
            }
            void main()
            {
            while(1)
            {
            if(mode==0)
            {
            delay(20);
            //ban muon nut mode thuc hien gi thi viet vao day
            while(mode==0);
            }
            }
            }

            Comment

            Về tác giả

            Collapse

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

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

            Collapse

            Đang tải...
            X