Thông báo

Collapse
No announcement yet.

Xin gợi ý về lập trình nút nhấn với chức năng nhấn đúp 2 hay đúp 3,8051,ngôn ngữ C

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

  • Xin gợi ý về lập trình nút nhấn với chức năng nhấn đúp 2 hay đúp 3,8051,ngôn ngữ C

    em muốn lập trình nút nhấn với chức năng nhấn đúp 2 hay đúp 3,8051,ngôn ngữ C mà lập trình mãi không được, em có ý tưởng là dùng biến đếm thời gian,rồi khi nhấn lần 2 thì dùng if,nhưng mô phỏng không được,em bó tay,mong được các anh chị chỉ bảo

  • #2
    Bạn cần phải làm trước, sau đó gặp vấn đề thì diễn đàn hỗ trợ. Chỉ đưa ý tưởng để người khác làm thì ... khó.
    Phần mềm tự do hoặc không dùng máy tính nữa !.

    Comment


    • #3
      e viết thử code điều khiển 2 led đơn,nhấn 1 lần thì bật tắt đèn xanh, nhấn đúp 2 trong khoảng thời gian 1s thì bật tắt đèn vàng

      #include<regx52.h>

      sbit button=P2^7;
      sbit led_xanh=P2^1;
      sbit led_vang=P2^2;

      void delay_ms(unsigned int t)
      {
      unsigned int x,y;
      for(x=0;x<t;x++)
      {
      for(y=0;y<123;y++);
      }
      }
      void init()
      {
      P0=255;
      P1=255;
      P2=255;
      P3=255;
      //


      }
      void chongdoi()
      {
      delay_ms(2);
      }
      void main()
      {
      unsigned char i;
      // CODE HERE
      init();

      while(1)
      {
      if(!button)
      {
      i=0;

      led_xanh=!led_xanh;
      while(i<500)
      {
      chongdoi();
      i++;
      if (!button)
      led_vang=!led_vang;
      }


      }

      }
      }

      em có mô phỏng như này nhưng không chạy,không biết có sai gì không,anh hướng dẫn em được không ạ?

      Comment


      • #4
        Code:
        unsigned char last_button_status =0;
        unsigned char delay=0;
        
        while(1){
            if(last_button_status ==0 && button_status ==1){ // được nhấn.
                if(delay>0){ // trước đó đã nhấn chưa đc 1s
                    // chỗ này là nháy đúp
                    delay=0; // xoá delay
                }
                else{
                    // chỗ này là nháy đơn.
                    delay=100; //set delay để chờ lần nhấn sau
                }
            }
            if(delay>0) delay--; // giảm delay để tính 1s trôi qua.
            last_button_status=button; // ghi trạng thái button hiện tại.
            delay_ms(10);
        }

        Comment

        Về tác giả

        Collapse

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

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

        Collapse

        Đang tải...
        X