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

          • bqviet
            Trả lời cho Đấu tắt điện cho máy tính bảng
            bởi bqviet
            Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
            06-12-2025, 17:17
          • nguyendinhvan
            Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
            bởi nguyendinhvan
            Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
            05-12-2025, 19:59
          • afrendly
            Trả lời cho Đấu tắt điện cho máy tính bảng
            bởi afrendly
            Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
            04-12-2025, 01:27
          • nick22
            Trả lời cho Máy điện châm ?
            bởi nick22
            Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
            01-12-2025, 13:23
          Đang tải...
          X