🌱 Bài 10: Tìm hiểu về ngắt ngoài trên 8051
Mục lục
👉 Giới thiệu về ngắt ngoài
8051 có 2 ngắt ngoài: INT0 & INT1, xảy ra khi có sự thay đổi mức logic hoặc cạnh (sườn lên/xuống) trên 2 chân P3.2 và P3.3.
👉 Cách kích hoạt ngắt trên 8051
Ngắt ngoài có 2 cách kích hoạt:
- Edge triggered: Kích hoạt theo cạnh, xảy ra khi phát hiện cạnh lên hoặc xuống ở chân ngắt.
- Level triggered: Kích hoạt theo mức, xảy ra khi phát hiện mức cao hoặc thấp ở chân ngắt.
8051 thường sử dụng 2 cách sau:
- Low level triggered: Xảy ra khi phát hiện mức thấp tại chân ngắt (P3.2/P3.3).
- Falling edge triggered: Xảy ra khi phát hiện cạnh xuống (1 → 0) tại chân ngắt.
👉 Thanh ghi setup ngắt ngoài: TCON
- Bit 3 - IE1: Tự động được set high khi INT1 được kích hoạt và tự động về 0 khi thực hiện xong ISR.
- Bit 2 - IT1: Chọn loại sự kiện ngắt:
- IT1 = 1 → Falling Edge
- IT1 = 0 → Low Level
- Bit 1 - IE0, Bit 0 - IT0: Tương tự với ngắt ngoài 0.
🧐 Bài tập thực hành
Thực hành với ngắt ngoài 0, khi phát hiện cạnh xuống, nhảy đến ISR. Trong ISR, đảo trạng thái LED chân P1.0.
- void External0_ISR() interrupt 0
- {
- P1_0 = ~P1_0; // Đảo trạng thái LED
- }
- void main()
- {
- IT0 = 1; // Cạnh xuống
- EX0 = 1; // Cho phép ngắt ngoài 0
- EA = 1; // Kích hoạt ngắt toàn cục
- while(1);
- }
👉 Kết nối phần cứng trên Proteus
Đảm bảo kết nối chính xác theo sơ đồ sau:
Tags:
8051 Tutorials