Thông báo

Collapse
No announcement yet.

lập trình nút nhấn cho pic16f877a

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

  • lập trình nút nhấn cho pic16f877a

    mình có làm bt lập trình nút nhấn cho pic16f877a điều khiển led đơn như sau: nhấn phím A đèn sáng tắt, phím B sáng đuổi, phím C sáng dần, phím D sáng dần 2 bên vào giữa, phím * đèn tắt hết, phím # lặp lại trạng thái trước đó của led so với trạng thái hiện tại. trường hợp nhấn phím # mình chưa làm được, mong mọi người chỉ giúp. file chương trình và mô phỏng ở đây: http://www.mediafire.com/download/id.../PHIM_NHAN.rar
    mong moi người giúp
    Last edited by ring; 23-02-2014, 17:13.

  • #2
    nhan tai trang nay nhieu lam ma, sao khong ai giup het vay??

    Comment


    • #3
      Nguyên văn bởi ring Xem bài viết
      nhan tai trang nay nhieu lam ma, sao khong ai giup het vay??
      Tôi không phải nhân tài nhé, mấy bác kia thấy không phức tạp nên cho bác tự suy nghỉ ấy mà.
      Nhưng cũng xin góp ý tí với bác.


      Thêm biến toàn cục vd : char status_now, status_pass;
      vô main reset status_now = 0; status_pass = 0;
      Code:
      switch (key_code)      // Kiem tra ma phim de thuc hien dieu khien LED hoat dong.
               {
               case '#':      // lặp lại trạng thái trước 
                          PORTD = 0x00;// Dieu khien 8 LED tat het.
                          if(status_pass == 'A') sangtat(); // Dieu khien 8 LED sang tat. 
                          else if(status_pass == 'B') sangduoi();      // Dieu khien 8 LED sang duoi.
                          
                          ....tương tự các phím khác nhé
                         break;
                                                 
               case '*':      // Truong hop nhan phim "*".
                  status_pass = status_now;
                  status_now = key_code;
                  PORTD = 0x00;      // Dieu khien 8 LED TAT het.
               
                  break;
                   
               case 'A':      // Truong hop nhan phim "A".
                  status_pass = status_now;
                  status_now = key_code;
                  PORTD = 0x00;      // Dieu khien 8 LED tat het.
                  sangtat();      // Dieu khien 8 LED sang tat.
            
                  break;
               case 'B':      // Truong hop nhan phim "B".
                  status_pass = status_now;
                  status_now = key_code;
                  PORTD = 0x00;      // Dieu khien 8 LED tat het.
                  sangduoi();      // Dieu khien 8 LED sang duoi.
                  break;
               case 'C':      // Truong hop nhan phim "C".
                  status_pass = status_now;
                  status_now = key_code;
                  PORTD = 0x00;      // Dieu khien 8 LED tat het.
                  sangdan();      // Dieu khien 8 LED sang dan.
                  break;
               case 'D':      // Truong hop nhan phim "D".
                  status_pass = status_now;
                  status_now = key_code;
                  PORTD = 0x00;      // Dieu khien 8 LED tat het.
                  sang2ben();      // Dieu khien 8 LED sang don.
                  break;
            default:
                  PORTD = 0x00;      // Dieu khien 8 LED tat het.
                  break; 
      
            }
      Vì không đi sâu phần quét phím của bác nên chưa giải quyết vấn đề ngắn gọn nhất.
      Nhưng đây là ví dụ cho bác rút kinh nghiệm nhé. Phát triển theo cách khác thử nhé, có thể không cần 2 biến status đâu.
      Last edited by thientanvt; 26-02-2014, 18:43.

      Comment


      • #4
        cảm ơn a, nhưng mà khi nhấn phím '#' thì sẽ lặp lại trạng thái trước đó so với trạng thái hiện tại, chứ không phải lặp lại trạng thái hiện tại, a có thể giúp lần nữa không? e làm không đc.

        Comment


        • #5
          dùng ngắt cho nhanh.chỉ cần 1 phím ấn bạn có thể lm tất cả các kiểu nháy led

          Comment

          Về tác giả

          Collapse

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

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

          Collapse

          Đang tải...
          X