Mã HEX hiển thị số từ 0–9 trên LED 7 thanh (7-segment)
Hiển thị số trên LED 7 thanh (7-segment display) là một trong những kỹ năng căn bản và quan trọng khi lập trình vi điều khiển như 8051, STM32, Arduino, v.v. Bài viết này sẽ hướng dẫn cách mã hóa các số từ 0 → 9 dưới dạng mã HEX, dùng cho cả hai loại LED anode chung và cathode chung.
✅ 1. Cấu trúc chân của LED 7 thanh
LED 7 thanh bao gồm 7 đoạn có ký hiệu từ a → g cùng với chấm dp (decimal point). Mỗi đoạn điều khiển bằng một bit trong byte.
| Ký hiệu | Bit tương ứng |
|---|---|
| a | Bit 0 |
| b | Bit 1 |
| c | Bit 2 |
| d | Bit 3 |
| e | Bit 4 |
| f | Bit 5 |
| g | Bit 6 |
| dp | Bit 7 |
🔸 Với LED cathode chung: Bit = 1 là sáng, Bit = 0 là tắt
🔸 Với LED anode chung: Bit = 0 là sáng, Bit = 1 là tắt
✅ 2. Mảng mã HEX hiển thị số từ 0 → 9
📌 A. Đối với Cathode chung:
// Cathode chung: Bit = 1 là sáng
unsigned char led_cathode[10] = {
0x3F, // 0: 0011 1111
0x06, // 1: 0000 0110
0x5B, // 2: 0101 1011
0x4F, // 3: 0100 1111
0x66, // 4: 0110 0110
0x6D, // 5: 0110 1101
0x7D, // 6: 0111 1101
0x07, // 7: 0000 0111
0x7F, // 8: 0111 1111
0x6F // 9: 0110 1111
};
📌 B. Đối với Anode chung
// Anode chung: Bit = 0 là sáng
unsigned char led_anode[10] = {
0xC0, // 0: 1100 0000
0xF9, // 1: 1111 1001
0xA4, // 2: 1010 0100
0xB0, // 3: 1011 0000
0x99, // 4: 1001 1001
0x92, // 5: 1001 0010
0x82, // 6: 1000 0010
0xF8, // 7: 1111 1000
0x80, // 8: 1000 0000
0x90 // 9: 1001 0000
};
✅ 3. Cách sử dụng mã HEX với vi điều khiển
P2 = led_cathode[5]; // Hiển thị số 5 cho LED cathode chung
// hoặc
P2 = led_anode[5]; // Hiển thị số 5 cho LED anode chung
💡 Mẹo: Chuyển đổi giữa cathode và anode
Nếu bạn chỉ có một mảng mã cathode và muốn dùng cho LED anode, bạn có thể đảo bit bằng cách dùng toán tử
~ (NOT):unsigned char invert_bits(unsigned char x) {
return ~x;
}
// Ví dụ:
P2 = invert_bits(led_cathode[3]); // Chuyển sang mã anode chung cho số 3
📌 Lưu ý khi sử dụng
Nếu không dùng đoạn chấm dp (bit 7): bạn nên mask bit 7 để tránh điều khiển nhầm.
P2 = (P2 & 0x80) | (led_cathode[n] & 0x7F); // giữ nguyên P2.7
Đảm bảo đấu đúng chân theo thứ tự các đoạn a → g theo phần cứng bạn đang sử dụng.
Đừng quên điện trở giới hạn dòng (~220Ω đến 1kΩ) giữa vi điều khiển và LED.
✍️ Tổng kết
Nhận xét
Đăng nhận xét