• Webdien.com - Cầu nối dân điện


    1. [HOT] - Webdien đang tuyển các vị trí quản lý cao cấp

      ntech.com.vn

  • Kết quả 1 đến 2 của 2
    1. #1
      Tham gia
      17-03-2011
      Bài viết
      17
      Cảm ơn
      6
      Được cảm ơn 3 lần, trong 2 bài

      Mặc định Cần giúp đỡ về nút nhấn điều khiển led.

      Chào các bác, nhờ các bác giúp mình lập trình cho 1 nút nhấn mà có thể điều khiển đc nhiều PORT. mình muốn khi nhấn nút thì PORTA sáng, nhấn cái nữa thì tắt, nhấn nữa thì PORTB sáng...chỉ dùng 1 nút thôi. mình dùng atmega16, mình mò mãi mà ko đc, bác nào giúp mình với nhé. thanks.
      mình viết thế này nhyưng mà mới vô thì PORTB.5 sáng luôn. hic. cái này PINC.7 là cái cảm biến quang, mình muốn khi cảm biến nhận lần 3 thì PORTB.4 với 5 tăt luôn. nhưng mà no chạy lộn tùng phèo


      while(PINC.7==1)

      {
      PORTB.4=0;
      PORTB.5=1;
      }

      while(PINC.7==0)
      {
      PORTB.4=0;
      PORTB.5=1;
      }

      while(PINC.7==1)

      {
      PORTB.4=0;
      PORTB.5=1;
      }

      while(PINC.7==0)

      {
      PORTB.4=0;
      PORTB.5=1;
      }
      while(PINC.7==1)

      {
      PORTB.4=0;
      PORTB.5=1;
      }
      PORTB.4=0;
      PORTB.5=0;

      --------------------------------------------------------------------------------
      Xem bài viết cùng chuyên mục:


    2. #2
      Tham gia
      21-06-2009
      Bài viết
      310
      Cảm ơn
      110
      Được cảm ơn 262 lần, trong 124 bài

      Mặc định Ðề: Cần giúp đỡ về nút nhấn điều khiển led.

      Dùng thế này thì while cả đời !!!

      Hạn chế tối đa dùng vòng while giữa chương trình mà không có điều kiện break vì có thể làm treo vđk ( rơi vào lặp vô tận ) . Đằng này bạn xài tới 5,6 cái lận thì nó loạn là đúng rồi

      Bạn nên dùng 1 vòng while vô tận ở ngoài cùng và bên trong dùng các lệnh if thôi .

      Bài toán của bạn thực chất là bài toán đếm xung ( trên PINC.7 ) .
      Để đếm xung thì có thể dùng ngắt ngoài , hoặc dùng thêm 1 biến phụ lưu giá trị cũ của PINC.7 . Nếu phát hiện thay đổi so với giá trị cũ thì đó là 1 sườn xung. Kiểm tra xem đó là sườn lên hay xuống nhờ vào giá trị cũ.
      Thêm 2 biến đếm nữa đếm sườn xung và đếm xung , 1 biến lưu lại kiểu sườn xung trước đó. Nếu 1 xung lên + 1 xung xuống thì mới = 1 xung. Còn lại là do bị lỗi .
      Thêm 1 ham delay ( không thấy bạn viết , chắc bạn xử lý xong rồi ) xử lý vấn đề rung phím ( nút ấn )

    3. Những thành viên đã cảm ơn aladanh2000 vì bài viết hữu ích:


    Trả lời với tài khoản Facebook

    Các Chủ đề tương tự

    1. Trợ giúp - điều khiển động cơ điện một chiều dùng chip vi điều khiển và hiển thị tốc độ trên led 7 thanh
      Bởi hồng phượng trong diễn đàn Các vấn đề ĐK chưa phân loại
      Trả lời: 6
      Bài cuối: 12-12-2014, 14:54
    2. Trả lời: 3
      Bài cuối: 07-11-2014, 13:47
    3. Trả lời: 0
      Bài cuối: 03-06-2014, 00:31
    4. help điều khiển triac BTA12-600b bắng vi điều khiển
      Bởi lamvanmanh trong diễn đàn Điện tử cơ bản
      Trả lời: 13
      Bài cuối: 29-12-2011, 06:19
    5. Trả lời: 4
      Bài cuối: 19-07-2010, 23:43
    Văn Võ Trạng Nguyên
    Hắc Hiệp Đại Chiến Thánh Bài 2
    Đặc Cảnh Diệt Ma
    Khử Ma Đạo Trưởng
    Cương Thi Diệt Tà
    Sự Hình Thành Của Đế Chế Mông Cổ
    NHỮNG KHOẢNH KHẮC ĐÁNG NHỚ CỦA GIẢI GOLF PHÚ MỸ HƯNG 2016