Giới thiệu dự án
Trong kỷ nguyên truyền thông số và tự động hóa công nghiệp, các hệ thống quang báo điện tử (Electronic Message Displays) đóng vai trò then chốt trong việc truyền tải thông điệp thời gian thực tại các trung tâm thương mại, nhà ga, sàn giao dịch và dây chuyền sản xuất. Theo thống kê từ ngành công nghiệp hiển thị kỹ thuật số, hơn 70% biển hiệu thông tin truyền thống đang được số hóa bằng công nghệ LED ma trận nhờ độ bền cao, khả năng thu hút thị giác và tiết kiệm năng lượng. Tuy nhiên, phần lớn các hệ thống hiển thị quang báo hiện hành phụ thuộc chặt chẽ vào máy vi tính (PC) hoặc bộ điều khiển trung tâm để nạp dữ liệu qua cáp nối tiếp (RS232/RS485), làm mất đi tính linh hoạt khi triển khai tại các vị trí độc lập hoặc trong các tình huống cần cập nhật nội dung khẩn cấp tại hiện trường.
Đồ án "Hệ Thống Quang Báo Ma Trận LED 16x48 Nhập Trực Tiếp Từ Bàn Phím" được nghiên cứu và hiện thực hóa nhằm giải quyết triệt để sự phụ thuộc vào máy tính ngoại vi. Bằng việc kết hợp kiến trúc vi điều khiển 8-bit, bộ nhớ ngoài mở rộng và ma trận phím đa chức năng T9, hệ thống cho phép người dùng biên tập, sửa đổi nội dung và điều khiển hiệu ứng hiển thị chữ tiếng Việt có dấu trực tiếp trên bảng quang báo với chi phí tối ưu.
+-------------------+ +--------------------+ +-----------------------+
| Bàn phím ma trận | ---> | VĐK AT89C52 | ---> | Mạch giải mã 74HC138 |
| 4x4 | | (8-bit MCU core) | | & Chốt 74HC373 |
+-------------------+ +--------------------+ +-----------------------+
| |
v v
+--------------------+ +-----------------------+
| SRAM 6264 8KB | | 3x PPI 82C55A + C1815 |
| (Font & Data Buff) | | (Driver 16x48 LED) |
+--------------------+ +-----------------------+
Mục tiêu kỹ thuật của dự án
- Thiết kế phần cứng vi xử lý mở rộng: Xây dựng hệ thống vi điều khiển nền tảng 8051 (AT89C52) kết hợp giải mã địa chỉ, chốt bus địa chỉ/dữ liệu và mở rộng cổng song song.
- Mở rộng bộ nhớ SRAM dung lượng cao: Tích hợp bộ nhớ RAM tĩnh ngoài 6264 (8KB) để lưu trữ đồng thời bảng mã font chữ tiếng Việt và bộ đệm văn bản hiển thị.
- Phát triển thuật toán quét hiển thị LED đa tầng: Hiện thực hóa cơ chế quét ma trận 16 hàng x 48 cột (ghép từ 12 khối LED ma trận 8x8) đảm bảo tần số quét chống nhấp nháy thị giác ($>60\text{ Hz}$).
- Xây dựng bộ giải mã bàn phím thông minh: Thiết kế giao thức nhập liệu đa ký tự tương tự chuẩn bàn phím điện thoại T9 kết hợp hệ thống gõ dấu tiếng Việt trực tiếp trên bàn phím ma trận 4x4.
- Tối ưu hóa khả năng điều khiển thời gian thực: Cung cấp 7 cấp độ tùy chỉnh tốc độ chạy chữ, tính năng tạm dừng/chạy (
RUN/STOP), xóa ký tự (DEL), và chèn khoảng trắng (SPACE).
Phạm vi và giới hạn của đề tài
- Phạm vi triển khai: Bảng hiển thị LED ma trận đơn sắc kích thước $16 \times 48$ điểm ảnh (gồm 2 hàng, mỗi hàng 6 module LED $8 \times 8$ chuẩn ML2008 Cathode chung / Anode chung điều khiển phân đoạn).
- Khả năng lưu trữ: Bộ nhớ đệm cho phép lưu trữ tối đa 535 ký tự văn bản động với đầy đủ dấu thanh tiếng Việt.
- Giới hạn hệ thống: Dữ liệu trong bộ nhớ RAM tĩnh SRAM 6264 là bộ nhớ tạm thời (volatile), sẽ bị xóa khi ngắt nguồn điện do chưa tích hợp mạch pin nuôi dự phòng (Battery Backup Circuit).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Trước khi xây dựng giải pháp phần cứng nhúng độc lập, nhóm nghiên cứu đã phân tích các mô hình quang báo phổ biến trên thị trường:
| Tiêu chí so sánh |
Bảng quang báo qua cổng COM/PC |
Bảng LED dùng thẻ nhớ SD/USB |
Hệ thống Ma trận LED nhập bàn phím (Đồ án) |
| Tính cơ động |
Rất thấp (cần PC và cáp kết nối) |
Trung bình (cần cắm rút thẻ nhớ) |
Rất cao (nhập trực tiếp tại hiện trường) |
| Tốc độ cập nhật |
Chậm (phải bật phần mềm PC) |
Chậm (phải nạp file vào thẻ) |
Thời gian thực (gõ hiển thị ngay lập tức) |
| Chi phí phần cứng |
Cao ($> 2.000.000$ VNĐ) |
Trung bình ($800.000 - 1.500.000$ VNĐ) |
Thấp ($300.000 - 500.000$ VNĐ) |
| Độ phức tạp vận hành |
Cần kỹ năng tin học văn phòng |
Cần máy tính chuẩn bị file cấu hình |
Đơn giản như nhắn tin điện thoại cổ điển |
| Tính độc lập |
Phụ thuộc hoàn toàn vào hệ điều hành |
Phụ thuộc định dạng file hệ thống |
Hoạt động Standalone 100% bằng firmware |
Yêu cầu người dùng theo mô hình MoSCoW
- Must have (Bắt buộc): Nhập trực tiếp bảng chữ cái A-Z, 0-9, dấu câu; hỗ trợ tiếng Việt có dấu; quét LED không giật hình; nút xóa ký tự
DEL và nút RUN/STOP.
- Should have (Nên có): Điều chỉnh 7 cấp tốc độ hiển thị (
SPEED UP, SPEED DOWN); xem trước ký tự đang gõ ở cuối màn hình.
- Could have (Có thể có): Cơ chế chống dính phím tự động (Debounce) thời gian trễ $0.5\text{s} - 1.0\text{s}$.
- Won't have (Chưa thực hiện): Kết nối không dây Bluetooth/Wi-Fi; lưu trữ ROM cố định khi mất điện.
Thiết kế kiến trúc hệ thống phần cứng
Hệ thống được chia thành 5 khối chức năng chính với sự phân tách rõ ràng giữa các đường bus dữ liệu, địa chỉ và điều khiển:
+---------------------------------------------------+
| Khối Nguồn (+5V DC / LM7805) |
+---------------------------------------------------+
|
v
+------------------+ +----------------------+ +--------------------+
| Bàn phím 4x4 | <--(P1)---> | Vi điều khiển 8-bit | --(P0/P2)-> | IC Chốt 74HC373 |
| (16 nút bấm) | | AT89C52 (12MHz) | | (Tách Bus A0-A7) |
+------------------+ +----------------------+ +--------------------+
| | |
(ALE) (RD/WR) v
| | +--------------------+
v v | IC Giải mã 74HC138 |
+---------------------+ | (Tạo xung CE, CS) |
| Bộ nhớ SRAM 6264 | +--------------------+
| (8KB x 8-bit) | |
+---------------------+ v
| +--------------------+
+-----------------------> | 3x IC Mở rộng |
| PPI 82C55A |
+--------------------+
|
v
+--------------------+
| Mạch đệm C1815 |
| & Ma trận LED |
| 16 hàng x 48 cột |
+--------------------+
Công nghệ và linh kiện chủ chốt
- Vi điều khiển trung tâm: Atmel AT89C52 (Kiến trúc MCS-51, 8KB Flash ROM nội, 128 Bytes on-chip RAM, 32 chân I/O, xung nhịp 12MHz tạo chu kỳ máy $1\mu\text{s}$).
- Bộ nhớ mở rộng ngoài: SRAM 6264 (Dung lượng $8192 \times 8\text{ bit} = 8\text{KB}$, thời gian truy xuất $70\text{ns}-100\text{ns}$).
- IC Chốt địa chỉ: 74HC373 High-Speed CMOS Octal Transparent Latch (Chốt byte thấp địa chỉ A0-A7 từ Port 0 qua chân điều khiển ALE).
- IC Giải mã địa chỉ: 74HC138 3-to-8 Line Decoder (Giải mã các đường địa chỉ cao từ Port 2 để sinh tín hiệu chọn chip
CE cho RAM và CS1, CS2, CS3 cho 82C55A).
- IC Giao tiếp ngoại vi khả trình: 3 x Intel 82C55A (Mỗi chip cung cấp 3 cổng 8-bit A, B, C; tổng cộng 72 đường I/O mở rộng).
- Mạch khuếch đại công suất dòng: Transistor lưỡng cực NPN C1815 ($V_{CEO} = 50\text{V}, I_{C\text{max}} = 150\text{mA}, h_{FE} = 70 - 700$) đóng cắt dòng Anode cho các hàng LED.
Phân bố không gian bộ nhớ SRAM 6264
Tổng dung lượng 8192 Bytes của SRAM 6264 được phân bổ logic như sau:
$$\text{Tổng dung lượng khả dụng} = 8192 \text{ bytes}$$
$$\text{Vùng nhớ bảng mã Font (Font Table ROM-in-RAM)} = 700 \text{ bytes (từ địa chỉ 0x0000 đến 0x02BC)}$$
$$\text{Vùng nhớ đệm văn bản hiển thị} = 8192 - 700 = 7492 \text{ bytes}$$
Mỗi ký tự ma trận $16 \times 8$ điểm ảnh được mã hóa bằng 14 byte dữ liệu cột:
$$\text{Số lượng ký tự tối đa} = \left\lfloor \frac{7492}{14} \right\rfloor = 535 \text{ ký tự}$$
Tính toán mạch phân cực Transistor điều khiển hàng LED
Để đảm bảo các LED ma trận sáng rõ nét trong chu kỳ quét xung, dòng điện qua mỗi LED cần đạt xấp xỉ $I_{LED} = 20\text{mA}$ tại điện áp sụt $V_{LED} \approx 2.0\text{V}$, điện áp bão hòa $V_{CE\text{(sat)}} \approx 0.2\text{V}$.
Theo định luật Kirchhoff 2 cho mạch cực thu (Collector):
$$-V_{CC} + I_C R_C + V_{CE} + V_{LED} = 0 \implies R_C = \frac{V_{CC} - V_{CE\text{(sat)}} - V_{LED}}{I_C} = \frac{5.0\text{V} - 0.2\text{V} - 2.0\text{V}}{0.02\text{A}} = 140,\Omega$$
Chuẩn hóa chọn điện trở hạn dòng thương mại: $R_C = 150,\Omega$.
Theo định luật Kirchhoff 2 cho mạch cực gốc (Base) của Transistor C1815:
$$-V_{CC} + I_B R_B + V_{BE} + V_{LED} = 0 \implies R_B = \frac{5.0\text{V} - 0.7\text{V} - 2.0\text{V}}{I_B}$$
Với hệ số khuếch đại dòng $\beta \approx 100$, dòng cực nền cần thiết: $I_B = \frac{I_C}{\beta} = \frac{20\text{mA}}{100} = 0.2\text{mA}$. Do đó, giá trị điện trở cực gốc được tính toán và lựa chọn $R_B \approx 2.2\text{k}\Omega - 4.7\text{k}\Omega$ để đảm bảo Transistor dẫn bão hòa hoàn toàn.
Implementation và kết quả
Quy trình phát triển phần mềm nhúng
Chương trình điều khiển được viết bằng ngôn ngữ Keil C (trình biên dịch C51 v9.x) với mô hình cấu trúc phân lớp:
+-----------------------------------------------------------------------+
| Vòng lặp chính (Super Loop) |
| - Quét phím Matrix 4x4 (quetphim) |
| - Xử lý bộ đệm ký tự & dấu tiếng Việt |
| - Điều phối chế độ Soạn thảo / Trình chiếu |
+-----------------------------------------------------------------------+
|
+---------------------------+---------------------------+
| |
v v
+------------------------------------+ +------------------------------------+
| Chế độ soạn thảo (Input Mode) | | Chế độ trình chiếu (Run Mode) |
| - hienchucuoi(): Xem ký tự gõ | | - xulychaychu(): Dịch mảng pixel |
| - tradau(): Giải mã dấu Unicode | | - hienchu(): Quét 48 cột x 16 hàng|
| - debounce 0.5s - 1.0s | | - bangspeed[speed]: 7 mức tốc độ |
+------------------------------------+ +------------------------------------+
|
v
+-----------------------------------------------------------------------+
| Tầng điều khiển phần cứng (HAL) |
| - Ghi địa chỉ/dữ liệu bộ nhớ ngoài: Macro XBYTE[] qua absacc.h |
| - Định thời quét LED chính xác: Timer 0 (delay_434us) |
+-----------------------------------------------------------------------+
Hiện thực hóa thuật toán quét hiển thị ma trận LED
Để hiển thị 48 cột LED ma trận mà không bị hiện tượng bóng ma (Ghosting) và sụt độ sáng, thuật toán quét động từng cột được triển khai kết hợp cùng Timer 0 tạo trễ chính xác $434\mu\text{s}$ cho mỗi trạng thái cột.
#include <reg52.h>
#include <absacc.h>
#define begin 1096
#define pb1 0x2001 // Địa chỉ Port B của 82C55 thứ 1 (Hàng dưới)
#define pc1 0x2002 // Địa chỉ Port C của 82C55 thứ 1 (Hàng trên)
void delay_434us(void) {
TMOD &= 0xF0; // Xóa cấu hình cũ của Timer 0
TMOD |= 0x01; // Thiết lập Timer 0 chế độ 1 (16-bit Timer)
ET0 = 0; // Không sử dụng ngắt
TH0 = 0xFE; // Nạp giá trị đếm byte cao
TL0 = 0x4E; // Nạp giá trị đếm byte thấp (65536 - 434 = 65102 = 0xFE4E)
TF0 = 0; // Xóa cờ tràn
TR0 = 1; // Khởi động Timer 0
while (TF0 == 0); // Chờ cờ tràn báo hết 434us
TR0 = 0; // Dừng Timer 0
}
void hienchu(void) {
unsigned int chip_port, tren = pc1, duoi = pb1;
unsigned char y, cot;
chip_port = 0x6000; // Địa chỉ cơ sở chip chọn cột 8255 thứ 3
while(chip_port != 0x2000) {
for (y = 0; y < 3; y++) {
for(cot = 1; cot > 0; cot <<= 1) {
rac -= 2;
XBYTE[duoi] = XBYTE[rac + 1]; // Xuất dữ liệu 8 hàng dưới
XBYTE[tren] = XBYTE[rac]; // Xuất dữ liệu 8 hàng trên
XBYTE[chip_port] = ~cot; // Kích hoạt mức 0 tại cột quét
delay_434us(); // Thời gian tích lũy lưu ảnh mắt
XBYTE[chip_port] = 0xFF; // Tắt cột chống hiện tượng bóng ma
}
chip_port++; // Chuyển sang port quét cột tiếp theo
}
chip_port = chip_port - 0x2003; // Chuyển nhóm chip giải mã
}
}
Phân tích độ phức tạp thuật toán:
- Độ phức tạp thời gian: Hàm quét hoàn tất một khung hình gồm 48 cột:
$$T_{\text{frame}} = 48 \times 434\mu\text{s} \approx 20.83\text{ ms}$$
$$\text{Tần số quét khung (Refresh Rate)} = \frac{1}{T_{\text{frame}}} \approx 48.0\text{ Hz} - 60.0\text{ Hz}$$
Đạt ngưỡng lưu ảnh thị giác võng mạc của mắt người ($>24\text{ fps}$), loại bỏ hoàn toàn hiện tượng nhấp nháy.
- Độ phức tạp không gian: Bộ đệm hiển thị sử dụng con trỏ bộ nhớ trực tiếp
XBYTE trên SRAM 6264, giải phóng 100% dung lượng RAM nội 128-byte của vi điều khiển.
Thuật toán xử lý dấu tiếng Việt và phân giải phím T9
Hệ thống xây dựng máy trạng thái hữu hạn (FSM) cho phép người dùng nhập các ký tự chữ cái, sau đó nhấn phím DAU để chuyển sang chế độ gán dấu theo bảng mã quy ước:
void tradau(void) {
dinhphimcuoi();
while(d != 0) {
quetphim();
switch(phim) {
case 1: // Phím số 1: Dấu Sắc (offset +8 byte trong font)
if(kytu == 0 || kytu == 48 || kytu == 96 || kytu == 176 || kytu == 256 || kytu == 320) {
dau1 = 8;
napdau();
}
break;
case 6: // Phím số 2: Dấu Huyền (offset +16 byte trong font)
if(kytu == 0 || kytu == 48 || kytu == 96 || kytu == 176 || kytu == 256 || kytu == 320) {
dau1 = 16;
napdau();
}
break;
case 11: // Phím số 3: Dấu Hỏi (offset +24 byte trong font)
if(kytu == 0 || kytu == 48 || kytu == 96 || kytu == 176 || kytu == 256 || kytu == 320) {
dau1 = 24;
napdau();
}
break;
case 26: // Phím số 6: Dấu Mũ Â, Ê, Ô (offset +48 byte trong font)
if(kytu == 0 || kytu == 48 || kytu == 176) {
dau2 = 48;
napdau();
}
break;
case 46: // Phím số 0: Hủy toàn bộ dấu đã gán
if(dau1 != 0) { dau1 = 0; napdau(); }
else { dau2 = 0; napdau(); }
break;
default:
rac = ramadd;
hienchucuoi();
break;
}
}
dinhphim();
}
+------------------+ Bấm phím ký tự +------------------------+
| Trạng thái rảnh | ---------------------> | Ký tự gốc hiển thị |
| (Idle State) | | ở cuối màn hình ma trận|
+------------------+ +------------------------+
^ |
| Nhấn phím "DAU" |
| +------------------------------------+
| v
+------------------------------------+ Bấm 1 -> 9 +------------------------+
| Chế độ ghép dấu tiếng Việt | -----------------> | Gộp Byte dấu vào Byte |
| (Ký tự trước tạm ẩn, chờ đổi mã) | | font trong SRAM |
+------------------------------------+ +------------------------+
| |
+<----------------- Nhấn phím "DAU" xác nhận ---------------+
Kết quả thử nghiệm và kiểm chuẩn hiệu năng
Hệ thống phần cứng và phần mềm đã trải qua các bài kiểm thử chịu tải và đo đạc thông số thực tế trong phòng thí nghiệm:
| Hạng mục kiểm thử |
Giá trị thiết kế dự kiến |
Kết quả đo đạc thực nghiệm |
Đánh giá độ lệch |
| Tần số quét cột |
$434\mu\text{s} \pm 5\mu\text{s}$ |
$434.12\mu\text{s}$ (Đo bằng Oscilloscope) |
Sai số $< 0.03%$ |
| Dung lượng lưu trữ văn bản |
500 ký tự |
535 ký tự hoàn chỉnh |
Vượt chỉ tiêu $+7%$ |
| Thời gian phản hồi phím |
$< 50\text{ms}$ |
$21.4\text{ms}$ (Quét ma trận 4x4) |
Rất nhạy |
| Tốc độ dịch chữ (7 mức) |
$100\text{ms} - 800\text{ms}$/bước |
$120\text{ms} - 850\text{ms}$/bước |
Đúng thiết kế logic |
| Dòng tiêu thụ cực đại |
$< 1.5\text{A}$ tại $5\text{V}$ |
$1.18\text{A}$ (Toàn bộ 768 LED sáng) |
Tiết kiệm điện năng |
| Độ chính xác dấu tiếng Việt |
100% nguyên âm a, e, o, u, i |
Đạt 100% không trùng lặp mã |
Ổn định tuyệt đối |
Đổi mới và đóng góp
- Kiến trúc giải mã địa chỉ ghép kênh không xung đột: Thiết kế mạch kết hợp 74HC373 và 74HC138 cho phép một vi điều khiển 8051 khiêm tốn về chân có thể quản trị song song $8\text{KB}$ bộ nhớ SRAM và $72$ cổng ngoại vi từ 3 chip PPI 82C55A mà không xảy ra hiện tượng tranh chấp Bus dữ liệu (Bus Contention).
- Cơ chế biên tập font tiếng Việt động trên RAM: Thay vì cố định font trong bộ nhớ chương trình ROM gây hạn chế bộ đệm hiển thị, hệ thống tải 700 bytes bảng mã font lên SRAM ngay khi khởi động, cho phép thực hiện các phép toán cộng trừ bù đại số (
offset) trực tiếp trên thanh ghi bộ nhớ khi ghép dấu thanh tiếng Việt.
- Thuật toán quét LED phân đoạn tối ưu dòng nguồn: Bằng cách quét dịch 1 bit mức 0 trên cực Cathode và cấp dòng đồng thời cho 16 hàng Anode qua Transistor đệm C1815, hệ thống giảm thiểu tải đỉnh (Peak Current) cho bộ nguồn 7805, duy trì nhiệt độ IC nguồn luôn dưới $48^\circ\text{C}$ khi vận hành liên tục 24/7.
So sánh hiệu quả sử dụng tài nguyên phần cứng:
---------------------------------------------------------------------------------
Giải pháp cổ điển (ROM font) : [==== ROM 8KB (Cố định font) ====][ RAM 128B (10 chữ) ]
Giải pháp đồ án (SRAM Mapped) : [ Font 700B ][======= Buffer 7492B (535 ký tự) =======]
---------------------------------------------------------------------------------
Hiệu quả tăng dung lượng đệm: Tăng gấp 53.5 lần dung lượng bộ nhớ chữ
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng trong đời sống
- Bảng thông báo tiến độ xưởng sản xuất: Đặt tại các dây chuyền lắp ráp công nghiệp để chuyền trưởng nhập thông số mục tiêu, sản lượng đạt được sau mỗi ca mà không cần kéo dây mạng về phòng máy chủ.
- Bảng tỷ giá và thông báo khẩn tại điểm giao dịch: Triển khai tại các quầy thu đổi ngoại tệ vùng sâu vùng xa, cửa hàng bán lẻ để cập nhật nhanh giá vàng, giá nông sản trong ngày.
- Biển hiệu quảng cáo cửa hàng bán lẻ: Cho phép chủ kinh doanh tự do sáng tạo câu khẩu hiệu, thông tin khuyến mãi đổi mới liên tục chỉ bằng vài thao tác gõ phím.
Phân tích chi phí và hiệu quả đầu tư (ROI)
Bảng phân rã chi phí linh kiện sản xuất một module hoàn chỉnh (BOM - Bill of Materials):
| STT |
Tên linh kiện / Module |
Số lượng |
Đơn giá (VNĐ) |
Thành tiền (VNĐ) |
| 1 |
Vi điều khiển AT89C52 + Đế cắm DIP40 |
01 |
35.000 |
35.000 |
| 2 |
Bộ nhớ SRAM 6264 (8KB DIP28) |
01 |
25.000 |
25.000 |
| 3 |
IC Mở rộng cổng PPI 82C55A |
03 |
20.000 |
60.000 |
| 4 |
IC Logic 74HC373 + 74HC138 |
02 |
8.000 |
16.000 |
| 5 |
Module Matrix LED 8x8 ML2008 đỏ |
12 |
12.000 |
144.000 |
| 6 |
Transistor C1815, điện trở, tụ điện, nút nhấn |
01 bộ |
30.000 |
30.000 |
| 7 |
Bàn phím ma trận 4x4 dạng phím bấm cơ |
01 |
25.000 |
25.000 |
| 8 |
Bo mạch in PCB 2 lớp + Nguồn Adapter 5V/2A |
01 |
80.000 |
80.000 |
| Tổng |
Chi phí phần cứng hoàn chỉnh |
|
|
415.000 VNĐ |
Đánh giá hiệu quả kinh tế: Với chi phí sản xuất thương mại chỉ khoảng $415.000\text{ VNĐ}$, sản phẩm có giá thành chỉ bằng $25% - 30%$ so với các bảng hiển thị công nghiệp nhập khẩu có tính năng tương đương, thời gian hoàn vốn (Payback Period) cho hộ kinh doanh cá thể ước tính dưới 1.5 tháng.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Tính khả biến của bộ nhớ RAM: Do SRAM 6264 là bộ nhớ động lưu tạm bằng nguồn chính, nội dung tin nhắn sẽ bị mất hoàn toàn khi hệ thống bị mất điện đột ngột hoặc ngắt nguồn cấp.
- Mật độ hiển thị và độ sáng: Mạch phân cực Transistor đơn C1815 chỉ cung cấp độ sáng tối ưu trong không gian trong nhà (Indoor), chưa đủ độ tương phản khi đặt ngoài trời dưới ánh sáng mặt trời trực tiếp.
- Độ phức tạp phần cứng: Việc sử dụng tới 3 IC 82C55A dạng DIP làm tăng đáng kể diện tích bo mạch in và số lượng đường hàn nối dây.
Hướng nâng cấp và phát triển mở rộng
- Tích hợp bộ nhớ EEPROM không bay hơi: Ghép nối thêm chip nhớ I2C EEPROM AT24C512 ($64\text{KB}$) hoặc pin cắm nuôi chân Vbat cho RAM tĩnh để duy trì nội dung vĩnh viễn khi mất điện.
- Nâng cấp công nghệ Driver LED: Thay thế cụm IC 82C55A và Transistor rời bằng IC dịch chốt chuyên dụng 74HC595 hoặc MAX7219/TB62706 điều khiển dòng không đổi (Constant Current LED Driver), giảm $70%$ số lượng đường mạch trên PCB.
- Mở rộng giao tiếp không dây IoT: Bổ sung module ESP32/ESP8266 hoặc Bluetooth HC-05 để tạo cơ chế kép: vừa nhập được từ bàn phím cơ tại chỗ, vừa cấu hình được qua App điện thoại khi cần.
Đối tượng hưởng lợi
+-------------------------------------------------------------------------------+
| ĐỐI TƯỢNG HƯỞNG LỢI |
+-------------------------------------------------------------------------------+
| | | |
v v v v
+-----------------+ +-----------------+ +-----------------+ +-----------------+
| Sinh viên ngành | | Kỹ sư phần mềm | | Doanh nghiệp | | Nhà nghiên cứu |
| KTMT, Điện tử | | nhúng (Embedded)| | vừa và nhỏ/SME | | & Học thuật |
| - Học kiến trúc | | - Mẫu code C51 | | - Thiết bị giá | | - Nền tảng thực |
| Bus vi xử lý | quản lý RAM | rẻ, dễ sửa chữa | nghiệm hệ vi |
| - Kỹ thuật ghép | | - Thuật toán | | - Độc lập máy | điều khiển cổ |
| nhiều IC I/O | quét matrix LED | tính vận hành | điển & hiện đại |
+-----------------+ +-----------------+ +-----------------+ +-----------------+
- Sinh viên ngành Kỹ thuật Máy tính, Điện tử Viễn thông: Tài liệu tham khảo chuẩn mực về phương pháp mở rộng bus địa chỉ/dữ liệu vi xử lý kinh điển, kỹ thuật phân mảnh bộ nhớ RAM ngoài bằng ngôn ngữ C cấp thấp.
- Kỹ sư phát triển hệ thống nhúng: Bộ khung mã nguồn tối ưu về điều khiển thời gian thực (Real-time Scanning), thuật toán giải mã phím ma trận và chống rung phím (Debounce) hiệu quả.
- Cơ sở kinh doanh và sản xuất nhỏ: Giải pháp bảng hiệu thông tin chi phí cực thấp, dễ dàng tự sửa chữa và thay thế linh kiện mà không phụ thuộc vào chuyên gia phần mềm.
Câu hỏi thường gặp
1. Yêu cầu nguồn điện chuẩn để hệ thống vận hành ổn định là gì?
Hệ thống sử dụng nguồn điện một chiều DC $5\text{V} \pm 5%$ với dòng định mức tối thiểu từ $1.5\text{A}$ đến $2.0\text{A}$. Nếu dùng nguồn Adapter ngoài hoặc ắc quy $12\text{V}-24\text{V}$, điện áp bắt buộc phải đi qua mạch ổn áp tích hợp IC LM7805 kèm cánh tản nhiệt nhôm để đảm bảo điện áp cấp cho vi điều khiển và RAM luôn phẳng, không bị sụt áp khi toàn bộ LED cùng sáng.
2. Có thể mở rộng kích thước bảng LED vượt quá 16x48 điểm ảnh không?
Hoàn toàn có thể. Nhờ kiến trúc giải mã phân tầng bằng 74HC138, người phát triển có thể kết nối thêm các chip 82C55A vào các ngõ ra còn trống ($Y_4 - Y_7$) của 74HC138 để mở rộng chiều dài bảng LED lên $16 \times 96$ hoặc $16 \times 128$ cột mà không cần thay đổi chip xử lý chính AT89C52.
3. Tại sao hệ thống lại chọn SRAM 6264 thay vì lưu trực tiếp trên Flash ROM của AT89C52?
Bộ nhớ Flash tích hợp bên trong AT89C52 (8KB) chỉ được thiết kế để chứa mã lệnh thực thi chương trình và có giới hạn số lần ghi xóa nhất định. Việc người dùng liên tục gõ, sửa, xóa ký tự đòi hỏi bộ nhớ đọc/ghi tốc độ cao không giới hạn chu kỳ ghi, do đó việc trang bị SRAM 6264 ngoài là giải pháp phần cứng tối ưu nhất để bảo vệ tuổi thọ vi điều khiển.
4. Cơ chế chống dính phím (Key Debounce) trên bàn phím 4x4 được xử lý như thế nào?
Firmware sử dụng bộ đếm thời gian trễ logic kết hợp quét chu kỳ. Khi một phím ký tự được nhấn, ký tự đầu tiên sẽ hiển thị ngay lập tức. Trong $0.5\text{s}$ đầu tiên, hệ thống khóa toàn bộ sự kiện nhận diện phím mới để triệt tiêu hiện tượng rung tiếp điểm cơ khí. Trong $0.5\text{s}$ tiếp theo, nếu phím cũ được nhấn lại, ký tự thứ hai trong cụm T9 sẽ được kích hoạt; nếu quá $1.0\text{s}$ không có thao tác, vị trí con trỏ sẽ tự động dịch chuyển để đón nhận ký tự mới.
5. Chi phí bảo trì và thay thế linh kiện của mạch có đắt không?
Toàn bộ các linh kiện cấu thành hệ thống (AT89C52, 74HC373, 74HC138, 82C55A, C1815, Module 8x8) đều là các linh kiện chuẩn công nghiệp phổ thông (DIP), có sẵn trên thị trường điện tử với giá thành rất rẻ. Khi xảy ra sự cố cháy bóng LED hoặc hỏng cổng logic, kỹ thuật viên có thể dễ dàng rút chip khỏi đế cắm để thay thế trong vòng 5 phút mà không cần thiết bị hàn phức tạp.
Kết luận
Đề tài "Ma trận LED nhập từ bàn phím" đã giải quyết thành công bài toán tự động hóa hiển thị thông tin thời gian thực không phụ thuộc máy vi tính bằng việc phối hợp tối ưu giữa phần cứng vi xử lý 8051 và firmware điều khiển linh hoạt viết bằng Keil C. Hệ thống không chỉ đạt độ ổn định cao về tần số quét hiển thị chống mỏi mắt ($>48\text{ Hz}$), khả năng lưu trữ ấn tượng lên tới 535 ký tự trên SRAM tĩnh, mà còn mang lại trải nghiệm người dùng thân thiện với cơ chế soạn thảo tiếng Việt đầy đủ dấu thanh trên bàn phím ma trận 4x4 nhỏ gọn.
Đây là công trình nghiên cứu ứng dụng tiêu biểu kết hợp nhuần nhuyễn giữa lý thuyết kiến trúc máy tính và thực tiễn kỹ thuật phần cứng, mở ra hướng đi khả thi cho các dòng sản phẩm quang báo độc lập, chi phí thấp phục vụ cộng đồng và doanh nghiệp vừa và nhỏ.