Hướng dẫn sử dụng Kit 89 Bài 6 : Chống rung cho phím Mục đích: Nắm vững kĩ thuật chống rung cho phím. Yêu cầu: Viết chương trình xuất số đếm ra led 7 đoạn với giá trị khởi tạo là 0. Khi nhấn nút 1 (được nối với ) thì giá trị này tăng lên 1, tăng đến 9 thì quay trở lại 0. Nguyên lý chống rung Hình trên minh hoạ mức điện áp của 1 phím nhấn tích cực mức 0, ở trạng thái bình thường, điện áp vi điều khiển nhận vào là 5V còn khi nhấn là 0V. Tuy. | Hướng dẫn sử dụng Kit 89 Bài 6 Chống rung cho phím Mục đích Nắm vững kĩ thuật chống rung cho phím. Yêu cầu Viết chương trình xuất số đếm ra led 7 đoạn với giá trị khởi tạo là 0. Khi nhấn nút 1 được nối với thì giá trị này tăng lên 1 tăng đến 9 thì quay trở lại 0. Nguyên lý chống rung Hình trên minh hoạ mức điện áp của 1 phím nhấn tích cực mức 0 ở trạng thái bình thường điện áp vi điều khiển nhận vào là 5V còn khi nhấn là 0V. Tuy nhiên do độ rung cơ học của phím tại thời điểm vừa nhấn xuống điện áp sẽ không ổn định trong 1 khoảng thời gian trước khi ổn định ở mức 0V. Hiệu tượng này gọi là rung phím. Mặc dù khoảng thời gian điện áp ở mức 0 trong giai đoạn rung phím là nhỏ nhưng cũng đủ để vi điều khiển nhận được. Vì vậy khi ta xét nếu điện áp là 0 thì gọi hàm func thì hàm này sẽ được gọi rất nhiều lần là điều mà ta không mong muốn. Để khác phục hiện tượng rung phím có 2 hướng giải quyết dùng phần cứng và phần mềm. về giải pháp phần cứng thay vì mắc đơn giản như kit thí nghiệm này xem lại sơ đồ ở Bài 2 ta có thể dùng thêm tụ điện để hạn chế việc thay đổi điện áp đột ngột sơ đồ nguyên lý như sau BKIT HARDWARE CLUB - 43 Hướng dẫn sử dụng Kit 89 Ở sơ đồ trên khi không nhấn là mức 1 khi nhấn là mức 0. Phím nhấn trên tích cực mức 0. Mạch ở trên còn gọi là mạch RC. Nếu nút nhấn có 2 cực ta có thể chọn giải pháp dùng mạch RS flip flop đây là mạch phần cứng chống rung tốt nhất sơ đồ nguyên lý như sau Về giải pháp phần mềm Ta sẽ định kì đọc tín hiệu từ nút nhấn cho đến khi nào chúng trùng nhau n lần thì mới xử lý. Hình dưới đây minh hoạ trong trường hợp 2 lần là 0 thì mới xác nhận là phím được nhấn và mới xử lý tác vụ mà ta mong muốn. innr I WJ UUI É1 0 Khoảng thời gian giữa 2 lần đọc là khoảng 10ms ta sẽ hiện thực hàm đọc này và gọi nó trong timer. Giải thuật đơn giản để xử lý chống rung có thể hiện thực như sau previous_key current_key current_key Port_key If previous_key current_key effective_key current_key Trong đó previous_key biến lưu giá trị .