Thông báo

Collapse
No announcement yet.

Dùng phần mềm để chống xung nẩy cho ngắt ngoài!

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

  • #46
    thank

    Nguyên văn bởi Tubes Xem bài viết
    Bạn làm như thế này nhé:

    - Khai báo 1 biến toàn cục 8 bit gọi là A chẳng hạn và 1 cờ F, được khởi tạo ban đầu F=0,A=0

    - Thiết lập một ngắt thời gian khoảng 5-10ms
    Chương trình ngắt thời gian nếu thấy F=1 sẽ dịch trái biến A 1 bit và thoát, nếu tất cả các bit của A =0 thì thực hiện các công việc của ngắt cứng và xóa cờ F=0.

    - Chương trình ngắt cứng chỉ làm hai việc set bit 0 của A=1 và set cờ F=1

    Như vậy ngắt cứng chỉ làm nhiệm vụ thiết lập cờ thôi, công việc chủ yếu sẽ thuộc về ngắt thời gian.
    Như vậy có thể chống được rung phím cỡ 80ms, nếu cần có thể tăng lên nữa.

    Chúc vui vẻ
    Theo em hiểu là chờ cái ngắt cuối cùng mới sử lý A=1,F=1,trạng thái INTx
    mới sử lý ,nhưng cái 80ms là sao ?
    cái này xem ra rất hay 2 bác Vinh81 và bác tubes có thể giải thích cụ thể cho em ít nữa dc ko ? .em chưa hiểu lắm
    thank 2 bác nhiều
    Phân phối kim thu sét ....thiết bị chống sét lan truyền,phụ kiện

    Comment


    • #47
      Quả thật giải thuật này của bác thật vãi hàng ,cuối cùng em đã hiểu ra ,Mạnh hơn bất cứ giải thuật nào mà em biết .Dùng giải thuật này CPU có thời giờ rảnh cho việc khác ,không phải lúc nào cũng polling keke ,Mỗi tội là tốn thêm mất 1 Time để sử lý ,
      Thank cho bác phát nữa .
      Phân phối kim thu sét ....thiết bị chống sét lan truyền,phụ kiện

      Comment


      • #48
        if((button)!= bien_1)
        {
        chongnhieu++;
        if(chongnhieu>20)// dat tham so chong nhieu
        {
        bien_1=button;
        if(cx==0) làm công việc 1;
        chongnhieu=0;
        }
        }
        else chongnhieu=0;
        cong viec 1:................................................ ..
        Quang Nhat
        ---------------------------------------
        Yahoo :quangnhat85ls
        Mail :
        Nhận thiết kế và ép nhựa cho đồ điện tử

        Comment


        • #49
          Nguyên văn bởi quangnhat Xem bài viết
          if((button)!= bien_1)
          {
          chongnhieu++;
          if(chongnhieu>20)// dat tham so chong nhieu
          {
          bien_1=button;
          if(cx==0) làm công việc 1;
          chongnhieu=0;
          }
          }
          else chongnhieu=0;
          cong viec 1:................................................ ..
          Không phải chống rung kiểu này kiểu này các bác gọi là polling rất nhiều người làm kiểu này ,VĐK liên tục phải kiểm tra cổng gắn phím
          Bác chú ý thử làm nhận phím bằng ngắt ngoài xem nhớ là của 8051 nhé
          là cả 1 vấn đề đấy ,vì nó nhớ được 1 ngắt ,làm protues ko thấy làm thật thấy ngay
          Phân phối kim thu sét ....thiết bị chống sét lan truyền,phụ kiện

          Comment


          • #50
            Nguyên văn bởi Hard Xem bài viết
            Hi,
            Xin nói thêm một chút về cách đấu tụ song song với phím. Như sơ đồ ở trên thì đúng là quá chuẩn và trong các thiết bị chất lượng cao thì thường dùng như vậy. Tuy nhiên ta có thể bỏ bớt điện trở R2 và diode vì 2 linh kiện này chỉ có tác dụng chống hỏng tụ mà thôi (cái này cần dùng cho tụ hóa). Trong các mạch ta dùng, thường dùng tụ gốm trị số nhỏ (102, 103. 104) nên có thể không dùng R2 và diode cũng tốt không sao cả.
            Từ trước đến giờ rất nhiều cách được nhiều bác đưa ra, dựa theo cách hoạt động của cái mạch của bác để chọn cái nào cho phù hợp. Ví dụ tôi dùng điều khiển từ xa, khi ta bấm 1 phím thì có tới 3 thậm chí 4 mã (của phím) gửi tới một lúc, nhưng ta chỉ lấy cái đầu tiên còn bỏ qua các mã tiếp theo trong một khoảng thời gian. Khoảng thời gian này gần bằng với khoảng thời gian giữa 2 lần bấm phím. Vì vậy khi ta giữ một phím khá lâu thì nó mới hiểu nhầm lần bấm thứ 2. Nếu các bác để ý thì bàn phím của máy tính cũng có khoảng thời gian giữa 2 lần bấm. Nếu ta đặt cái này lâu thì khi bấm và giữ phím 'a' sẽ xuất hiện một dãy chữ 'a' chậm hơn khi ta set khoảng thời gian này ngắn lại.

            Chúc các bác thành công và xin chào thân ái, đoàn kết.
            cái này hay đây em cũng đang ngu cứu nó đây.em đang định dùng điều khiển từ xa điều khiển ngắt.em đang muốn sử dụng cùng một chân INT0 nhưng khi giữ phím một lúc thì nó mới xảy ra ngắt 0 còn khi ấn một cái rồi nhả ra luôn thì nó không thực hiện ngắt mà nó sẽ đi xử lý phím bấm vào một việc khác(xét các chức năng khác gán cho phím đó)các bác cứ hình dung như cái điều khiển tivi khi ấn một nút giả sử như mute chẳng hạn. khi ấn một lần nó sẽ là tắt tiếng nhưng khi giữ nó một lúc nó lại là đặt mật khẩu cho tivi chẳng hạn.các bác có thể giúp em cái chương trình xử lý ngắt đó không.viết hộ em một chương trình asm để em tham khảo được không.đọc ý kến của các bác hay thật nhưng em ngu lâu dốt bền nên chẳng hiểu ra làm sao cả.
            đùa chứ tớ hơi ngu...thông cảm nha..heee...

            Comment


            • #51
              Nguyên văn bởi toan258 Xem bài viết
              cái này hay đây em cũng đang ngu cứu nó đây.em đang định dùng điều khiển từ xa điều khiển ngắt.em đang muốn sử dụng cùng một chân INT0 nhưng khi giữ phím một lúc thì nó mới xảy ra ngắt 0 còn khi ấn một cái rồi nhả ra luôn thì nó không thực hiện ngắt mà nó sẽ đi xử lý phím bấm vào một việc khác(xét các chức năng khác gán cho phím đó)các bác cứ hình dung như cái điều khiển tivi khi ấn một nút giả sử như mute chẳng hạn. khi ấn một lần nó sẽ là tắt tiếng nhưng khi giữ nó một lúc nó lại là đặt mật khẩu cho tivi chẳng hạn.các bác có thể giúp em cái chương trình xử lý ngắt đó không.viết hộ em một chương trình asm để em tham khảo được không.đọc ý kến của các bác hay thật nhưng em ngu lâu dốt bền nên chẳng hiểu ra làm sao cả.
              Xin lỗi vì đào topic này lên nhưng mình có 1 ý kiến là khi có yêu cầu ngắt thì cho chạy 1 timer, rồi từ đó tùy bạn tính như thời gian như thế nào là mute, như thế nào là set password thôi.
              Ý mình vậy nhưng mình chưa làm bao giờ, mong các bạn đóng góp thêm.

              Comment

              Về tác giả

              Collapse

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

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

              Collapse

              Đang tải...
              X