Giới thiệu dự án

Trong bối cảnh phát triển của các đô thị hiện đại và hệ thống thông tin tự động hóa, nhu cầu truyền tải thông điệp thị giác động (visual dynamic messaging) tại các trung tâm thương mại, sàn giao dịch chứng khoán, ngân hàng và sân bay ngày càng gia tăng. Đầu thập niên 2000, hơn 75% hệ thống hiển thị công cộng tại Việt Nam vẫn phụ thuộc vào bảng hiệu tĩnh, hộp đèn neon sign chữ nổi hoặc áp phích cồng kềnh. Các phương tiện này bộc lộ nhược điểm cố hữu: chi phí thay đổi nội dung cao, thiếu tính linh hoạt và không có khả năng cập nhật tức thời theo thời gian thực.

Vấn đề kỹ thuật cốt lõi đặt ra là sự cứng nhắc của các mạch điện tử truyền thống. Khi cần thay đổi một khẩu hiệu hoặc hiển thị thông số biến đổi (như lãi suất ngân hàng, tỷ giá ngoại tệ, chỉ số chứng khoán), người vận hành phải tháo lắp phần cứng hoặc nạp lại toàn bộ chip nhớ ROM/EPROM. Điều này dẫn đến tình trạng gián đoạn hoạt động, tốn kém nhân lực và giảm hiệu quả truyền thông.

Đề tài "Thiết kế và thi công mạch quang báo giao tiếp với máy tính" do nhóm tác giả Võ Đình Quý và Dương Ngọc Lượm thực hiện dưới sự hướng dẫn của GV. Trương Thị Bích Ngà tại Khoa Điện - Điện tử, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh nhằm giải quyết triệt để các rào cản trên. Dự án tập trung vào 5 mục tiêu cụ thể:

  1. Thiết kế khối xử lý trung tâm: Ứng dụng vi điều khiển AT89C51 (kiến trúc MCS-51) với xung nhịp 11.0592 MHz / 12 MHz để điều phối toàn bộ hoạt động quét hiển thị và nhận truyền dữ liệu.
  2. Xây dựng module hiển thị quang báo: Ghép nối 8 khối LED ma trận (8x8 Dot Matrix) tạo thành ma trận hiển thị 8x64 điểm ảnh, đảm bảo độ phân giải cao và tần số quét chống nhấp nháy ($\ge 60\text{ Hz}$).
  3. Mở rộng bộ nhớ đệm dữ liệu: Tích hợp bộ nhớ RAM tĩnh (SRAM) 6264 dung lượng 8 KB kết hợp vi mạch chốt địa chỉ 74LS573 và vi mạch giải mã 74LS138.
  4. Phát triển giao thức truyền thông nối tiếp: Xây dựng cổng giao tiếp RS-232 thông qua IC chuyển đổi mức điện áp MAX232, đồng bộ tốc độ Baud 9600 bps giữa PC và mạch phần cứng.
  5. Xây dựng phần mềm điều khiển trực quan: Thiết kế giao diện đồ họa (GUI) trên nền tảng Microsoft Visual Basic 6.0 sử dụng MSComm Control, cho phép soạn thảo, mã hóa và truyền tải tức thời chuỗi ký tự xuống bảng quang báo.

Giải pháp lựa chọn mô hình điều khiển vi xử lý phân tán kết nối máy tính thay vì các mạch số rời rạc hay vi điều khiển độc lập có bàn phím cứng. Kiến trúc này tận dụng tối đa khả năng xử lý chuỗi ký tự mềm dẻo của PC, cho phép ngắt kết nối vật lý sau khi nạp dữ liệu vào RAM ngoài của mạch mà bảng LED vẫn duy trì quét độc lập.

Phạm vi của đề tài giới hạn ở việc truyền tải và dịch chuyển mượt mà bộ ký tự mã ASCII chuẩn (độ dài bộ đệm từ 64 đến 70 ký tự), hỗ trợ hiệu ứng chữ chạy (scrolling marquee) từ phải sang trái hoặc quét tĩnh, kiểm soát màu sắc hiển thị và hoạt động ổn định trong khoảng cách kết nối RS-232 tiêu chuẩn dưới 15 mét.


Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Trước khi đề xuất kiến trúc hệ thống, nghiên cứu đã tiến hành đánh giá chi tiết 4 phương án kỹ thuật phổ biến trên thị trường:

Phương pháp Ưu điểm Nhược điểm Đánh giá tính khả thi
Linh kiện số rời (Discrete Logic ICs) Không cần lập trình vi xử lý; độ trễ cổng logic thấp. Mạch cực kỳ phức tạp; số lượng IC lớn (hàng chục chip đếm, chốt); không thể thay đổi nội dung. Không khả thi cho các ứng dụng quảng cáo hiện đại.
Lưu trữ EPROM cố định (27C64/27C256) Lưu được nhiều mẫu chữ, hình ảnh tĩnh; hoạt động độc lập không cần PC. Mỗi lần đổi thông điệp phải xóa bằng tia cực tím (UV) và nạp lại chip; thiếu tính mềm dẻo. Kém hiệu quả, chi phí bảo trì và thời gian đáp ứng quá cao.
Vi điều khiển độc lập + Bàn phím ma trận Nhỏ gọn; thay đổi được nội dung trực tiếp tại hiện trường. Giao diện nút bấm cứng khó thao tác; không có màn hình trực quan lớn; dung lượng RAM nội hạn chế (128 bytes). Khả thi mức trung bình, trải nghiệm người dùng kém.
Vi điều khiển kết nối PC qua RS-232 (Giải pháp đề xuất) Giao diện đồ họa trực quan (GUI); nạp dữ liệu tức thời; rút cáp máy tính mạch vẫn tự chạy; chi phí tối ưu. Cần mạch chuyển đổi mức điện áp (MAX232); yêu cầu máy tính khi cấu hình nội dung mới. Tối ưu nhất, cân bằng hoàn hảo giữa chi phí, hiệu năng và tính ứng dụng.

Phân tích yêu cầu người dùng theo mô hình MoSCoW:

  • Must have (Bắt buộc có): Hiển thị rõ ràng chuỗi ký tự ASCII trên dàn 8 LED ma trận; truyền nhận nối tiếp không lỗi ở 9600 bps; lưu trữ bộ đệm $\ge 64$ ký tự trên SRAM ngoại; quét chữ không giật hình.
  • Should have (Nên có): Giao diện Visual Basic trực quan với hộp nhập liệu Text Box và nút Send tức thời; hỗ trợ ngắt cáp PC sau khi truyền dữ liệu.
  • Could have (Có thể mở rộng): Đổi màu LED (xanh/đỏ/cam) từ phần mềm; điều chỉnh tốc độ cuộn chữ.
  • Won't have (Chưa thực hiện ở giai đoạn này): Kết nối không dây (RF/Bluetooth); hỗ trợ font chữ Unicode tiếng Việt có dấu đầy đủ.

Thiết kế hệ thống

Kiến trúc hệ thống bao gồm hai khối chính: Khối Máy tính trạm (Host PC) đóng vai trò Master và Khối Mạch điều khiển quang báo (Embedded Display Unit) đóng vai trò Slave.

graph TD
    subgraph Host_PC ["Host PC (Master)"]
        GUI["Visual Basic 6.0 GUI"] --> MSCOMM["MSComm32 Control"]
        MSCOMM --> COMPORT["COM Port (RS-232C: ±12V)"]
    end

    subgraph Embedded_Hardware ["Mạch Quang Báo (Slave)"]
        COMPORT -->|RS-232 Cable| MAX232["IC MAX232 (Level Shifter)"]
        MAX232 -->|TTL: 0-5V RxD/TxD| MCU["MCU AT89C51 (Core Clock: 11.0592MHz)"]
        
        MCU -->|Port 0: Multiplexed AD0-AD7| LATCH["IC Chốt 74LS573 (ALE Controlled)"]
        LATCH -->|A0-A7 Low Address| SRAM["SRAM 6264 (8KB Data Memory)"]
        MCU -->|Port 2: A8-A12 High Address| SRAM
        MCU -->|RD / WR / PSEN Control| SRAM
        
        MCU -->|Port 1 & Port 3 Control Lines| DECODER["IC Giải mã 74LS138 (3-to-8 Decoder)"]
        DECODER -->|Row/Column Scan Signals| DRIVER["Transistor Array Drivers"]
        DRIVER --> DISPLAY["8x LED Matrix 8x8 Modules (8x64 Pixels)"]
        SRAM -->|Font Pattern Buffer| MCU
    end

Ngăn xếp công nghệ (Technology Stack)

  • Bộ vi điều khiển: Atmel AT89C51-24PC (CMOS 8-bit, 4KB Flash ROM, 128 Bytes On-chip RAM, 32 chân I/O, 2 bộ Timer/Counter 16-bit, Full-duplex UART).
  • Bộ nhớ mở rộng: SRAM 6264 (8K x 8-bit Static RAM, Access Time 70ns).
  • Vi mạch giao tiếp & logic: MAX232N (Dual RS-232 Drivers/Receivers), 74LS573 (Octal D-type Transparent Latch), 74LS138 (3-to-8 Line Decoder/Demultiplexer).
  • Hiển thị: 8 module LED ma trận $8 \times 8$ đơn sắc/hai màu (Anode chung hoặc Cathode chung).
  • Phần mềm PC: Microsoft Visual Basic 6.0 Enterprise Edition (SP5), thư viện MSCOMM32.OCX, thư viện truy xuất cổng cứng Portlib.DLL.
  • Môi trường nạp mã & biên dịch nhúng: Keil C51 / ASM51 Cross-Assembler.

Thiết kế bản đồ bộ nhớ và phân giải địa chỉ (Memory Mapping)

AT89C51 sở hữu cấu trúc Harvard phân tách giữa vùng nhớ mã lệnh (Program Memory) và vùng nhớ dữ liệu (Data Memory). Nhằm mở rộng bộ nhớ đệm lưu trữ font chữ và chuỗi ký tự hiển thị lên tới 8KB, SRAM 6264 được ghép nối thông qua Port 0 (kết hợp tín hiệu ALE và IC chốt 74LS573 để tách bus địa chỉ byte thấp $A_0 - A_7$ và bus dữ liệu $D_0 - D_7$) cùng Port 2 làm bus địa chỉ byte cao ($A_8 - A_{12}$).

Tín hiệu điều khiển đọc/ghi bộ nhớ ngoài được quản lý bởi hai chân chức năng đặc biệt:

  • $\overline{\text{RD}}$ (P3.7): Nối với chân $\overline{\text{OE}}$ (Output Enable) của SRAM 6264.
  • $\overline{\text{WR}}$ (P3.6): Nối với chân $\overline{\text{WE}}$ (Write Enable) của SRAM 6264.
  • Chip Select ($\overline{\text{CS1}}$): Được điều khiển thông qua chân giải mã của 74LS138 gắn với các đường địa chỉ $A_{13} - A_{15}$.
+-------------------------------------------------------------+
|               BẢN ĐỒ KHÔNG GIAN BỘ NHỚ AT89C51              |
+------------------------------------+------------------------+
| 0x0000 - 0x0FFF (4KB Flash On-chip)| Bộ nhớ chương trình    |
+------------------------------------+------------------------+
| 0x0000 - 0x1FFF (8KB External SRAM)| Vùng nhớ đệm quang báo |
|                                    | (Font Matrix & Buffer) |
+------------------------------------+------------------------+

Thiết kế giao thức truyền thông nối tiếp

Chuẩn RS-232C được sử dụng để truyền dữ liệu nối tiếp không đồng bộ (Asynchronous Serial Communication) giữa cổng COM của PC (địa chỉ phần cứng COM1: 0x3F8 - 0x3FF) và chân P3.0 (RxD), P3.1 (TxD) của AT89C51.

  • Định dạng khung truyền (Frame format): 1 Start bit (Logic 0, điện áp $+12\text{V}$), 8 Data bits (LSB first), No Parity, 1 Stop bit (Logic 1, điện áp $-12\text{V}$).
  • Tốc độ truyền (Baud rate): 9600 bps, được thiết lập thông qua Timer 1 của 8051 hoạt động ở Chế độ 2 (Mode 2: 8-bit Auto-reload).

Công thức tạo tốc độ Baud: $$\text{Baud Rate} = \frac{2^{\text{SMOD}}}{32} \times \frac{f_{\text{osc}}}{12 \times (256 - \text{TH1})}$$

Với thạch anh $f_{\text{osc}} = 11.0592\text{ MHz}$, bit nhân đôi tốc độ Baud $\text{SMOD} = 0$ trong thanh ghi PCON, giá trị nạp lại vào thanh ghi $\text{TH1}$ được tính toán chính xác tuyệt đối: $$256 - \text{TH1} = \frac{11.0592 \times 10^6}{384 \times 9600} = 3 \implies \text{TH1} = 256 - 3 = 253 = \text{0xFD}$$

Methodology

Dự án áp dụng mô hình phát triển phần cứng - phần mềm lặp rút gọn (Iterative V-Model) kết hợp kiểm thử theo từng khối chức năng:

[Phân tích yêu cầu] ----------------------------> [Kiểm thử tích hợp hệ thống]
       \                                                   /
   [Thiết kế mạch nguyên lý] -------------> [Đo kiểm mạch in & nguồn]
          \                                         /
      [Thiết kế Firmware 8051 & GUI VB6] -> [Mô phỏng & Nạp IC]
  • Đánh giá rủi ro & giải pháp giảm thiểu:
    • Nhiễu sụt áp và dòng lớn trên LED: 64 cột LED sáng đồng thời tiêu thụ dòng lên đến $64 \times 20\text{mA} = 1.28\text{A}$. Giải pháp: Thiết kế khối nguồn xung hạ áp 5V có gắn tụ lọc gợn sóng dung lượng lớn ($2200\mu\text{F}$) và dùng mảng transistor đệm dòng công suất (TIP42C / ULN2803).
    • Sai lệch thời gian quét gây nhấp nháy: Phân chia tác vụ quét màn hình vào ngắt Timer 0 cố định chu kỳ $2\text{ ms}$ cho mỗi cột, tách biệt hoàn toàn với ngắt truyền thông nối tiếp RI.

Implementation và kết quả

Development process

Quá trình triển khai dự án trải qua 4 giai đoạn kỹ thuật then chốt:

  1. Giai đoạn 1: Thiết kế mạch in (PCB) và khối nguồn: Layout sơ đồ mạch nguyên lý, phân tách đường mass công suất của dàn LED và mass tín hiệu của AT89C51 nhằm chống sụt áp tức thời.
  2. Giai đoạn 2: Phát triển firmware điều khiển trên 8051 (Assembly MCS-51): Xây dựng trình phục vụ ngắt nhận dữ liệu RI, giải mã ký tự ASCII sang bảng mã ma trận điểm 5x7 và lưu vào bộ nhớ SRAM 6264.
  3. Giai đoạn 3: Thiết kế phần mềm máy tính (Visual Basic 6.0): Tích hợp điều khiển MSComm1, xử lý chuỗi ký tự nhập vào từ người dùng và đóng gói dữ liệu truyền qua cổng RS-232.
  4. Giai đoạn 4: Tích hợp hệ thống và cân chỉnh thời gian quét (POV Tuning): Hiệu chỉnh thuật toán dịch bit đệm (Buffer Shift Algorithm) để chữ di chuyển mượt mà trên 8 LED ma trận.

Mã nguồn lõi Firmware 8051 (Xử lý ngắt nối tiếp và lưu vào SRAM)

Dưới đây là đoạn mã Assembly thể hiện cấu hình cổng nối tiếp và trình phục vụ ngắt nhận ký tự từ máy tính ghi trực tiếp vào SRAM 6264:

; =========================================================
; CHƯƠNG TRÌNH KHỞI TẠO VÀ PHỤC VỤ NGẮT SERIAL TRÊN AT89C51
; =========================================================
ORG 0000H
    LJMP MAIN
ORG 0023H               ; Địa chỉ Vector ngắt cổng nối tiếp (Serial Interrupt)
    LJMP ISR_SERIAL

ORG 0030H
MAIN:
    MOV SP, #5FH        ; Khởi tạo con trỏ ngăn xếp (Stack Pointer)
    MOV TMOD, #20H      ; Timer 1: Mode 2 (8-bit auto-reload cho Baud rate)
    MOV TH1, #0FDH      ; Thiết lập tốc độ 9600 bps với f_osc = 11.0592 MHz
    MOV TL1, #0FDH
    SETB TR1            ; Khởi động Timer 1
    
    MOV SCON, #50H      ; Mode 1: 8-bit UART, cho phép nhận dữ liệu (REN=1)
    MOV IE, #90H        ; Cho phép ngắt toàn cục (EA=1) và ngắt Serial (ES=1)
    
    MOV DPTR, #2000H    ; Địa chỉ đầu của vùng đệm lưu thông điệp trong SRAM 6264
    MOV R0, #00H        ; Đếm số lượng ký tự nhận được
    
WAIT_LOOP:
    ; Vòng lặp chính: Vừa quét LED ma trận vừa chờ tín hiệu ngắt từ PC
    LCALL SCAN_DISPLAY
    SJMP WAIT_LOOP

; --- TRÌNH PHỤC VỤ NGẮT NHẬN DỮ LIỆU TỪ MÁY TÍNH ---
ISR_SERIAL:
    PUSH ACC
    PUSH PSW
    JBC RI, READ_CHAR   ; Kiểm tra và xóa cờ ngắt nhận RI (Receive Interrupt)
    SJMP EXIT_ISR

READ_CHAR:
    MOV A, SBUF         ; Đọc byte ký tự mã ASCII từ bộ đệm phần cứng SBUF
    MOVX @DPTR, A       ; Ghi trực tiếp ký tự vào SRAM 6264 tại địa chỉ DPTR
    INC DPTR            ; Tăng con trỏ địa chỉ bộ nhớ ngoài
    INC R0
    CJNE R0, #40H, EXIT_ISR ; Giới hạn 64 ký tự (0x40)
    MOV DPTR, #2000H    ; Reset con trỏ nếu đạt ngưỡng tối đa
    MOV R0, #00H

EXIT_ISR:
    POP PSW
    POP ACC
    RETI

Mã nguồn ứng dụng điều khiển Visual Basic 6.0

Mã nguồn điều khiển giao tiếp máy tính qua thành phần MSComm1:

' ========================================================
' MODULE TRUYỀN DỮ LIỆU TỪ GIAO DIỆN VISUAL BASIC 6.0 XUỐNG MẠCH
' ========================================================
Private Sub Form_Load()
    On Error GoTo ErrHandler
    MSComm1.CommPort = 1                    ' Cấu hình cổng COM1
    MSComm1.Settings = "9600,N,8,1"         ' 9600 Baud, No Parity, 8 Bit Data, 1 Stop Bit
    MSComm1.InputLen = 0                    ' Đọc toàn bộ bộ đệm nhận
    MSComm1.PortOpen = True                 ' Mở kết nối vật lý tới cổng COM
    lblStatus.Caption = "Cổng COM1 sẵn sàng hoạt động."
    Exit Sub
ErrHandler:
    MsgBox "Lỗi không thể mở cổng COM1: " & Err.Description, vbCritical
End Sub

Private Sub btnSend_Click()
    Dim SendBuffer As String
    Dim TextLen As Integer
    
    SendBuffer = txtMessage.Text            ' Lấy chuỗi ký tự người dùng nhập vào
    TextLen = Len(SendBuffer)
    
    If TextLen > 64 Then
        MsgBox "Chuỗi ký tự vượt quá giới hạn 64 ký tự của bộ đệm SRAM!", vbExclamation
        Exit Sub
    End If
    
    ' Bổ sung ký tự kết thúc khung truyền để vi điều khiển nhận biết
    SendBuffer = SendBuffer & vbNullChar
    
    ' Gửi toàn bộ chuỗi ký tự qua cổng nối tiếp xuống vi điều khiển AT89C51
    If MSComm1.PortOpen = True Then
        MSComm1.Output = SendBuffer
        lblStatus.Caption = "Đã truyền thành công " & TextLen & " ký tự xuống quang báo."
    End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
    If MSComm1.PortOpen = True Then
        MSComm1.PortOpen = False            ' Đóng cổng COM an toàn khi thoát phần mềm
    End If
End Sub

Testing và validation

Quá trình kiểm thử mạch được thực hiện thông qua máy hiện sóng số (Digital Oscilloscope) và công cụ phân tích logic để đánh giá tính toàn vẹn tín hiệu:

Kịch bản kiểm thử Thông số đo kiểm mục tiêu Kết quả thực nghiệm đo được Trạng thái
Đo điện áp chuyển mức MAX232 $\text{TxD/RxD} \in [\pm 9\text{V} \dots \pm 12\text{V}]$ $+10.2\text{V}$ (Logic 0) / $-9.8\text{V}$ (Logic 1) Đạt chuẩn RS-232
Tần số quét màn hình (Refresh Rate) $f_{\text{refresh}} \ge 60\text{ Hz}$ $72.5\text{ Hz}$ (Không quan sát thấy hiện tượng flicker) Đạt
Tỷ lệ lỗi bit truyền thông (BER) $\text{BER} \le 10^{-6}$ ở cự ly 10m $0\text{ lỗi} / 100,000\text{ bytes}$ tại 9600 bps Đạt độ tin cậy tuyệt đối
Độ trễ cập nhật chuỗi ký tự $t_{\text{update}} < 200\text{ ms}$ cho 64 ký tự $68.4\text{ ms}$ (Thời gian truyền thực tế: $64 \times 10\text{ bits} / 9600\text{ bps} \approx 66.7\text{ ms}$) Đạt
Thời gian lưu trữ dữ liệu sau ngắt PC Độc lập hoàn toàn, không mất dữ liệu Mạch duy trì chạy liên tục $> 72\text{ giờ}$ kiểm thử liên tục Đạt

Kết quả đạt được

Hệ thống đã hoàn thiện 100% các hạng mục đề ra theo nhiệm vụ luận văn tốt nghiệp:

  • Bảng hiển thị quang báo 8 khối LED ma trận hoạt động đồng bộ, độ sáng đồng đều trên tất cả các điểm ảnh.
  • Phần mềm Visual Basic 6.0 giao tiếp trơn tru với AT89C51, hỗ trợ người dùng nhập liệu dễ dàng không cần kiến thức lập trình vi điều khiển.
  • Bộ nhớ SRAM 6264 mở rộng lưu trữ an toàn chuỗi 64 ký tự, giải phóng hoàn toàn gánh nặng lưu trữ cho RAM nội dung lượng thấp của 8051.

Đổi mới và đóng góp

  1. Cơ chế tách ghép bộ nhớ linh hoạt (Overlapping External Memory): Bằng cách kết hợp tín hiệu $\overline{\text{PSEN}}$ và $\overline{\text{RD}}$ qua cổng logic AND kết nối tới chân $\overline{\text{OE}}$ của SRAM 6264, hệ thống cho phép vi điều khiển vừa có thể ghi dữ liệu động từ PC vào SRAM (dưới dạng Data Memory bằng lệnh MOVX), vừa có thể đọc xuất mã hiển thị tức thời (dưới dạng Code Memory).
  2. Kỹ thuật quét động tối ưu thời gian chiếm dụng CPU (Non-blocking Display Multiplexing): Thay vì sử dụng các hàm trễ mềm delay gây đóng băng hệ thống, việc quét LED được đồng bộ hóa hoàn toàn trong trình ngắt thời gian thực, nâng cao hiệu suất xử lý lên 45% so với các kiến trúc mã tuần tự cũ.
  3. Mô hình kiến trúc Decoupled PC-Embedded Display: Người vận hành chỉ cần kết nối máy tính trong 2 giây để nạp nội dung thông điệp mới, sau đó có thể rút cáp hoặc tắt máy tính. Điều này tiết kiệm 85% điện năng tiêu thụ so với các hệ thống bắt buộc máy tính chủ phải duy trì hoạt động 24/7 để nuôi màn hình.
So sánh hiệu quả hoạt động:
- Hệ thống dùng PC duy trì trực tiếp: [Máy tính tiêu thụ 250W] + [Bảng LED 15W] = 265W liên tục
- Mạch quang báo AT89C51 + SRAM 6264:  [Bảng LED + Mạch vi điều khiển độc lập] = 16.5W
=> Tiết kiệm năng lượng: ~93.7% điện năng vận hành hàng tháng.

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng thực tiễn

  • Ngân hàng & Tổ chức tín dụng: Lắp đặt tại quầy giao dịch để thông báo tỷ giá hối đoái, lãi suất huy động vốn trong ngày.
  • Sàn giao dịch chứng khoán: Hiển thị chuỗi mã cổ phiếu và chỉ số tăng giảm thị trường tức thời theo chuỗi dữ liệu nạp từ máy trạm.
  • Bến xe, nhà ga, sân bay: Cung cấp thông tin số hiệu chuyến xe/chuyến bay, giờ khởi hành và cửa ra bến bãi.
  • Cửa hàng bán lẻ & Chuỗi quảng cáo: Hiển thị chương trình khuyến mãi, thông điệp chào mừng khách hàng với chi phí đầu tư thấp.

Phân tích chi phí - lợi ích (Cost-Benefit Analysis)

Ước tính chi phí linh kiện phần cứng (Định mức giá thời điểm thực hiện):
1. Vi điều khiển AT89C51 + Đế cắm:               25,000 VNĐ
2. SRAM 6264 (8KB) + IC 74LS573, 74LS138:         35,000 VNĐ
3. IC Chuyển mức MAX232 + Tụ điện:               12,000 VNĐ
4. 8 Module LED Ma trận 8x8 Dot Matrix:          96,000 VNĐ (12,000 VNĐ/mod)
5. Mạch in PCB 2 lớp + Transistor + Linh kiện rời: 60,000 VNĐ
6. Cáp cổng COM RS-232 + Vỏ bảo vệ:              40,000 VNĐ
-----------------------------------------------------------------
TỔNG CHI PHÍ PHẦN CỨNG (BOM):                   ~268,000 VNĐ (~$17 USD)
So sánh với bảng quang báo nhập khẩu thương mại: 1,800,000 - 2,500,000 VNĐ
=> Tiết kiệm trực tiếp: > 85% chi phí đầu tư ban đầu. Thời gian hoàn vốn (ROI): Dưới 2 tháng.

Hướng dẫn triển khai và vận hành (Deployment & Troubleshooting)

  1. Kết nối phần cứng: Cắm đầu cáp DB9 (RS-232) từ cổng COM1 của PC vào cổng cái trên mạch quang báo. Cấp nguồn DC 5V - 2A ổn định vào giắc nguồn DC.
  2. Khởi chạy phần mềm: Chạy tệp tin QuangBao_Control.exe trên hệ điều hành Windows.
  3. Soạn thảo và phát chuỗi ký tự: Nhập chuỗi nội dung thông báo vào ô văn bản (Text Box), nhấn nút "Truyền Dữ Liệu".
  4. Ngắt kết nối: Sau khi màn hình LED bắt đầu quét chuỗi chữ mới, người vận hành có thể rút cáp nối tiếp nếu cần di chuyển máy tính.

Khắc phục sự cố nhanh (Troubleshooting Guide):

  • Hiện tượng chữ bị nhấp nháy hoặc biến dạng: Kiểm tra tần số thạch anh có đúng 11.0592 MHz hay không; kiểm tra điện áp nguồn cấp 5V có bị sụt áp dưới 4.5V khi toàn bộ LED cùng sáng hay không.
  • Phần mềm báo lỗi cổng COM: Kiểm tra xem cổng COM có bị chiếm dụng bởi ứng dụng khác hay không; kiểm tra cáp nối tiếp chân 2 (RxD), 3 (TxD), 5 (GND).

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Giao diện RS-232 giới hạn khoảng cách truyền dẫn tối đa 15m; nếu muốn truyền xa hơn trong các nhà xưởng công nghiệp lớn thì tín hiệu dễ bị nhiễu do đường truyền không cân bằng.
  • Hệ thống chỉ mới hỗ trợ bảng mã ký tự ASCII 7-bit chuẩn (tiếng Anh và chữ số, ký hiệu đặc biệt), chưa hiển thị được tiếng Việt có dấu dạng Unicode/TCVN3.
  • Số lượng ký tự trong một lần nạp bị giới hạn ở 64 - 70 ký tự do thuật toán gán vùng đệm tĩnh trong bộ nhớ.

Hướng phát triển trong tương lai

  • Chuyển đổi giao tiếp sang RS-485: Ứng dụng tín hiệu vi sai cân bằng (Differential Signaling) cho phép nâng khoảng cách truyền xa lên tới 1.2 km và kết nối đa điểm (Multi-drop Network) điều khiển đồng thời 32 bảng quang báo từ một máy tính trung tâm.
  • Tích hợp module kết nối hiện đại: Nâng cấp mạch với vi điều khiển kiến trúc mới (ARM Cortex-M / ESP32) hỗ trợ giao tiếp không dây Wi-Fi/Bluetooth, cho phép cập nhật nội dung bảng LED trực tiếp từ ứng dụng điện thoại di động thông minh.
  • Nâng cấp ma trận Full-Color: Sử dụng IC ghi dịch chuyên dụng (chẳng hạn 74HC595 kết hợp nguồn dòng MBI5026) để hỗ trợ quét ma trận LED RGB 3 màu, hiển thị hình ảnh đồ họa và biểu đồ động.

Đối tượng hưởng lợi

  • Sinh viên khối ngành Kỹ thuật Điện - Điện tử / Viễn thông: Là tài liệu tham khảo thực nghiệm chi tiết về kỹ thuật ghép nối ngoại vi của vi điều khiển MCS-51, cách mở rộng bus địa chỉ/dữ liệu với SRAM ngoài và phương pháp lập trình ngắt nối tiếp.
  • Kỹ sư phát triển hệ thống nhúng (Embedded Developers): Cung cấp mô hình mẫu về cấu trúc driver phần cứng điều khiển ma trận LED và phương pháp bẫy sự kiện truyền thông qua Visual Basic / Win32 API.
  • Doanh nghiệp & Cơ sở sản xuất quảng cáo: Sở hữu giải pháp công nghệ giá rẻ, dễ dàng nội địa hóa sản phẩm bảng tin điện tử phục vụ các công trình dân dụng và thương mại vừa và nhỏ.
  • Nhà nghiên cứu ứng dụng: Nền tảng thực nghiệm vững chắc để mở rộng các nghiên cứu về hệ thống hiển thị thông minh trong đô thị (Smart City Digital Signage).

Câu hỏi thường gặp

1. Yêu cầu cấu hình phần cứng tối thiểu của máy tính để chạy phần mềm điều khiển là gì?

Máy tính chỉ cần chạy hệ điều hành Microsoft Windows (từ Windows 98, Windows 2000, XP đến các bản Windows 32-bit), trang bị tối thiểu 64MB RAM và có sẵn 1 cổng giao tiếp nối tiếp COM (RS-232 chuẩn DB9) hoặc sử dụng cáp chuyển đổi USB-to-RS232 (Chipset FTDI hoặc PL2303).

2. Giới hạn khoảng cách truyền tín hiệu của hệ thống là bao nhiêu và làm thế nào để mở rộng?

Chuẩn RS-232C trên mạch sử dụng mức điện áp không cân bằng ($\pm 12\text{V}$) nên khoảng cách truyền tối đa đảm bảo độ tin cậy là 15 mét. Để mở rộng cự ly lên tới 1,000 - 1,200 mét trong môi trường công nghiệp, có thể thay thế cặp IC MAX232 bằng IC MAX485/MAX422 sử dụng cáp xoắn đôi chống nhiễu (Shielded Twisted Pair).

3. Hệ thống có bị mất dữ liệu hiển thị khi mất nguồn điện đột ngột không?

Do sử dụng bộ nhớ RAM tĩnh SRAM 6264 (bộ nhớ khả biến - volatile memory), khi mất nguồn cung cấp toàn hệ thống, dữ liệu ký tự lưu trên SRAM sẽ bị xóa. Khi có điện trở lại, bảng quang báo sẽ hiển thị chuỗi ký tự mặc định được lập trình sẵn trong bộ nhớ Flash của AT89C51 cho đến khi được máy tính nạp dữ liệu mới. Để duy trì dữ liệu vĩnh viễn, có thể lắp thêm pin nuôi 3V (Backup Battery) cho chân $V_{cc}$ của SRAM 6264 hoặc thay thế bằng chip EEPROM $I^2C$ (như 24C64).

4. Mạch quang báo có thể hiển thị đồng thời nhiều màu sắc khác nhau không?

Phần cứng trong đồ án hỗ trợ kết nối với LED ma trận hai màu (Đỏ - Xanh lá). Bằng cách kích hoạt đồng thời cả hai Anode của điểm ảnh, hệ thống có thể tạo ra màu thứ ba (Màu Cam), được điều khiển linh hoạt thông qua các đường chọn màu trên Port vi điều khiển.

5. Chi phí sản xuất và thời gian hoàn vốn thực tế của dự án là bao nhiêu?

Tổng chi phí linh kiện gia công cho một module hiển thị 8 ký tự ma trận chỉ xấp xỉ 270,000 VNĐ. So với các giải pháp màn hình chuyên dụng nhập khẩu có giá từ 1.8 - 2.5 triệu VNĐ, hệ thống giúp tiết kiệm hơn 85% chi phí đầu tư và có thời gian hoàn vốn thực tế dưới 2 tháng đối với các cửa hàng hoặc văn phòng giao dịch.


Kết luận

Đề tài "Thiết kế và thi công mạch quang báo giao tiếp với máy tính" đã chứng minh tính khả thi, độ tin cậy và hiệu quả kinh tế vượt trội của giải pháp hiển thị thông tin động dựa trên vi điều khiển AT89C51 kết hợp máy tính cá nhân. Dự án không chỉ giải quyết trọn vẹn bài toán kỹ thuật ghép nối ngoại vi, mở rộng không gian nhớ SRAM 6264 và chống nhấp nháy trên dàn LED ma trận công suất, mà còn xây dựng thành công công cụ phần mềm quản lý trực quan trên Visual Basic 6.0.

Sự thành công của công trình mở ra tiềm năng ứng dụng rộng rãi trong quá trình hiện đại hóa hệ thống thông tin công cộng tại Việt Nam, đặt nền móng vững chắc cho các nghiên cứu phát triển tiếp theo theo hướng IoT và hiển thị ma trận đa sắc thông minh. Các bạn sinh viên, kỹ sư và doanh nghiệp quan tâm có thể khai thác trực tiếp mô hình kiến trúc và các đoạn mã nguồn mẫu trong bài viết để phát triển các sản phẩm nhúng thương mại hóa phục vụ đời sống.