Bối cảnh và vấn đề nghiên cứu

Trong đời sống xã hội và hoạt động sản xuất kinh doanh, nhu cầu truyền đạt và tiếp nhận thông tin trực quan ngày càng gia tăng. Hệ thống quang báo điện tử ứng dụng kỹ thuật vi xử lý là giải pháp phổ biến nhằm hiển thị các thông điệp văn bản phục vụ công cộng và thương mại. Sự phát triển của hệ thống quang báo trải qua nhiều giai đoạn: từ việc lập trình nội dung cố định ghi trực tiếp vào bộ nhớ chỉ đọc (ROM), đến việc xây dựng các bảng mạch vi xử lý chuyên dụng có khả năng cập nhật dữ liệu. Bên cạnh đó, sự phổ biến của máy vi tính với năng lực tính toán tốc độ cao, dung lượng lưu trữ lớn và khả năng kết nối linh hoạt với thiết bị ngoại vi đã mở ra phương thức điều khiển hiển thị hiệu quả hơn.

Theo khảo sát thực tế của tác giả tại thời điểm nghiên cứu (tháng 3 năm 2000), các mạch quang báo tiếng Việt có dấu độc lập đã từng được phát triển nhưng bộc lộ nhiều nhược điểm: việc nhập văn bản tiếng Việt có dấu trực tiếp qua bàn phím chuyên dụng của bảng mạch vi xử lý rất phức tạp, độ tin cậy chưa cao và khó kiểm soát nội dung hiển thị. Để khắc phục các hạn chế này, đề tài nghiên cứu giải pháp kết hợp giữa máy vi tính và KIT vi xử lý điều khiển bảng quang báo.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài bao gồm bốn nội dung chính:

  1. Thiết kế và thi công phần cứng KIT vi xử lý sử dụng CPU Z80 hoạt động ở chế độ tối thiểu, tích hợp khối nhớ bán dẫn, khối ghép nối vào/ra song song và bàn phím chuyên dụng 41 phím.
  2. Thiết kế mạch giao tiếp giữa máy tính cá nhân và KIT vi xử lý qua cổng song song máy in (cổng LPT1) để truyền chuỗi dữ liệu ký tự hiển thị.
  3. Thiết kế và thi công bảng hiển thị ma trận LED kích thước 8 hàng $\times$ 80 cột (ghép từ 16 khối ma trận LED $5 \times 8$), có khả năng hiển thị đồng thời 13 ký tự văn bản.
  4. Xây dựng phần mềm hệ thống trên KIT vi xử lý (sử dụng tập lệnh hợp ngữ Z80) để quét bảng LED, giải mã phím và nhận dữ liệu; đồng thời lập trình phần mềm giao diện trên máy tính (bằng ngôn ngữ Turbo Pascal) nhằm nhập văn bản tiếng Việt có dấu, mã hóa chuỗi và truyền qua cổng máy in.

Đối tượng nghiên cứu là hệ thống quang báo ma trận LED hai tầng điều khiển (máy tính cá nhân và KIT vi xử lý Z80) giao tiếp qua cổng song song. Phạm vi nghiên cứu thực nghiệm được thực hiện tại Bộ môn Điện tử, Khoa Điện, Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh, hoàn thành vào tháng 3 năm 2000. Đề tài tập trung vào việc hiển thị ký tự tiếng Việt có dấu dưới dạng chữ in hoa trên ma trận điểm $5 \times 8$, sử dụng phương pháp truyền dữ liệu song song cự ly ngắn qua cổng máy in.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết của đề tài dựa trên cấu trúc hệ thống vi xử lý 8-bit cổ điển và nguyên lý giao tiếp máy tính với thiết bị ngoại vi:

  • Kiến trúc CPU Zilog Z80: Bộ vi xử lý 8-bit hoạt động song song, tập lệnh gồm 158 lệnh, bus địa chỉ 16-bit cho phép quản lý không gian nhớ $2^{16} = 65.536$ ô nhớ (64 KB). CPU tích hợp 22 thanh ghi nội gồm các thanh ghi đa năng 8-bit (A, B, C, D, E, H, L), thanh ghi cờ F, hệ thống thanh ghi phụ (A', F', B', C', D', E', H', L') và các thanh ghi chuyên dụng 16-bit như con trỏ lệnh PC (Program Counter), con trỏ ngăn xếp SP (Stack Pointer), thanh ghi chỉ số IX, IY, thanh ghi vector ngắt I và thanh ghi làm tươi bộ nhớ động R.
  • Lý thuyết bộ nhớ bán dẫn: Sử dụng các IC nhớ tiêu chuẩn gồm EPROM 2764 (bộ nhớ chỉ đọc có thể xóa bằng tia cực tím, dung lượng 8 KB, thời gian truy xuất phù hợp bus vi xử lý) và SRAM 6264 (bộ nhớ truy xuất ngẫu nhiên tĩnh, dung lượng 8 KB, lưu trữ dữ liệu bằng các phần tử flip-flop).
  • Vi mạch giao tiếp ngoại vi khả trình 8255A (PPI): Vi mạch hỗ trợ 24 đường vào/ra chia làm hai nhóm (Group A và Group B) quản lý 3 cổng: Port A, Port B và Port C (gồm Port C Upper và Port C Lower). Vi mạch hoạt động theo 3 chế độ cấu hình: Mode 0 (vào/ra cơ bản không chốt), Mode 1 (vào/ra có chốt và bắt tay tín hiệu STB, IBF, INTR, OBF, ACK) và Mode 2 (bus hai chiều có bắt tay).
  • Lý thuyết giao tiếp ngoại vi máy vi tính: Khảo sát ba chuẩn giao tiếp phần cứng trên máy tính cá nhân gồm cổng nối tiếp chuẩn RS-232 (địa chỉ cổng COM1 là 3F8h, COM2 là 2F8h), khe cắm mở rộng bo mạch hệ thống Slot-Card (địa chỉ giải mã từ 300h đến 31Fh), và cổng song song máy in LPT (địa chỉ cơ bản LPT1 là 378h, LPT2 là 278h).
  • Nguyên lý quét dồn kênh (Multiplexing) bảng LED: Kỹ thuật điều khiển hiển thị dựa trên hiện tượng lưu ảnh trên võng mạc mắt người. Tại mỗi thời điểm xác định chỉ có một cột LED được cấp nguồn với dòng xung biên độ cao; tần số quét được tính toán để toàn bộ bảng đèn hiển thị ổn định, không gây hiện tượng nhấp nháy.

Phương pháp nghiên cứu kết hợp giữa tính toán lý thuyết kỹ thuật điện tử, thiết kế sơ đồ nguyên lý mạch, chế tạo phần cứng thực nghiệm và phát triển phần mềm nhúng. Tác giả tính toán chế độ đóng cắt bão hòa của các tầng đệm bán dẫn công suất (transistor 2SC828 điều khiển hàng và transistor D468 điều khiển cột), tính toán cân bằng tải cho khối nguồn nuôi ổn áp 5V, sau đó thực hiện thi công mạch in, lắp ráp linh kiện và kiểm thử khả năng truyền nhận dữ liệu giữa PC và KIT vi xử lý.

Chuẩn giao tiếp Phương thức truyền Địa chỉ I/O cơ bản Tốc độ truyền Đặc điểm phần cứng và khoảng cách
Cổng nối tiếp RS-232 Nối tiếp, dị bộ (khung 5-8 bit, parity, stop) 3F8h (COM1), 2F8h (COM2) 1200 - 9600 bps Mạch chuyển đổi mức điện áp, truyền được khoảng cách xa
Khe cắm Slot-Card Song song qua bus hệ thống 300h - 31Fh Rất cao Phải tháo vỏ máy cắm trực tiếp vào mainboard, cáp truyền phức tạp
Cổng máy in (LPT1) Song song 8-bit TTL 378h (Data), 379h (Status), 37Ah (Control) Cao (chu kỳ bus) 17 đường tín hiệu tương thích chuẩn TTL, kết nối ngoài qua cổng DB25, thích hợp cự ly gần

Thiết kế và triển khai

Hệ thống được thiết kế theo cấu trúc module gồm ba phân hệ chính: khối KIT vi xử lý Z80, khối bảng hiển thị ma trận LED và phần mềm điều khiển trên máy vi tính.

Cấu hình phần cứng và kiến trúc KIT Z80

  • Khối xử lý trung tâm: CPU Z80 được thiết lập hoạt động ở chế độ tối thiểu (Minimum Mode), không kích hoạt hệ thống ngắt nhằm đơn giản hóa cấu trúc phần cứng phục vụ thực tập. Các chân chức năng ngắt và điều khiển bus gồm INT, BUSRQ, NMI và WAIT đều được treo lên nguồn +5V qua các điện trở kéo $4{,}7\text{ k}\Omega$. Tín hiệu xung nhịp hệ thống (Clock) cung cấp cho chân 6 ($\Phi$) của CPU có tần số 2 MHz, được tạo ra từ mạch dao động thạch anh 4 MHz thông qua IC chia đôi tần số.
  • Khối bộ nhớ: Hệ thống sử dụng tổng cộng 16 KB ROM và 8 KB RAM. Khối ROM gồm hai vi mạch EPROM 2764 (mỗi vi mạch dung lượng 8 KB); trong đó EPROM thứ nhất lưu trữ chương trình điều khiển hệ thống và EPROM thứ hai dành cho chương trình mở rộng. Khối RAM sử dụng một vi mạch SRAM 6264 dung lượng 8 KB dùng làm bộ nhớ đệm hiển thị, ngăn xếp và lưu trữ bảng mẫu ký tự tiếng Việt (DISTBL).
  • Khối ghép nối ngoại vi 8255A: Sử dụng hai vi mạch 8255A để mở rộng cổng vào/ra:
    • Vi mạch 8255A thứ nhất (IC1): Cổng A và Cổng C được kết nối với bàn phím ma trận 41 phím; Cổng B dùng để nhận dữ liệu 8-bit truyền từ cổng máy in của máy tính.
    • Vi mạch 8255A thứ hai (IC2): Cổng A dùng xuất dữ liệu điều khiển 8 hàng LED; Cổng B phát xung nhịp dịch CK và dữ liệu nối tiếp điều khiển khối quét cột; Cổng C kết nối với các đường tín hiệu bắt tay của cổng máy in máy tính.
  • Bàn phím nhập liệu độc lập: Gồm 41 phím bấm cơ học, bao gồm 1 phím Reset, 3 phím chức năng (Shift, Page Up, Page Down), 23 phím chữ cái, các phím số và phím dấu thanh tiếng Việt.

Khối hiển thị ma trận LED và mạch động lực

Màn hình quang báo được ghép từ 16 khối ma trận LED đơn màu kích thước $5 \times 8$ điểm ảnh, tạo thành không gian hiển thị gồm 8 hàng và 80 cột, cho phép hiển thị đồng thời 13 ký tự.

  • Mạch điều khiển 8 hàng: Tám đường hàng tương ứng của 16 khối ma trận LED (cực Anot) được nối chung và điều khiển bởi 8 đường ra từ Cổng A của vi mạch 8255A thứ hai thông qua 8 transistor NPN 2SC828 làm việc ở chế độ bão hòa ($I_C = 50\text{ mA}$, hệ số khuếch đại dòng $\beta = 150$, điện trở cực gốc $R_B = 18\text{ k}\Omega$, điện trở cực thu $R_C = 150\ \Omega$, sụt áp $V_{CE\text{ (sat)}} = 0{,}2\text{ V}$). Dòng cấp cho mỗi điểm LED khi sáng đạt 30 mA.
  • Mạch điều khiển 80 cột: Tám mươi cột (cực Katot) được quét tuần tự bởi 10 vi mạch thanh ghi dịch 8-bit 74164 (74LS164) mắc nối tiếp tầng (chân ra $Q_H$ của IC trước nối vào ngõ vào dữ liệu $A, B$ của IC kế tiếp). Các chân xung nhịp Clock (CK) của 10 IC 74164 nối chung và điều khiển bởi chân ra của Cổng B vi mạch 8255A thứ hai. Tầng đệm công suất cho mỗi cột sử dụng transistor NPN công suất D468 ($I_C = 1\text{ A}$, $\beta = 85 - 240$, dòng qua cực thu khi cả 8 LED trên cột cùng sáng đạt $I_C = 30\text{ mA} \times 8 = 240\text{ mA}$, dòng kích bão hòa cực gốc chọn $I_B = 4\text{ mA}$).
  • Khối nguồn nuôi: Mạch nguồn ổn áp cung cấp điện áp một chiều +5V với dòng định mức tối thiểu 1A. Tổng mức tiêu thụ dòng cực đại của hệ thống qua tính toán đạt 800 mA.
Thành phần linh kiện Thông số kỹ thuật / Số lượng Dòng tiêu thụ đơn vị Tổng dòng điện tính toán
Đèn LED ma trận 8 LED sáng đồng thời trên 1 cột 30 mA / LED 240 mA
IC ghi dịch 74LS164 10 IC quét 80 cột 16 mA / IC 160 mA
Bộ nhớ EPROM 2764 02 vi mạch ROM 75 mA / IC 150 mA
Bộ nhớ SRAM 6264 01 vi mạch RAM 100 mA 100 mA
IC ngoại vi 8255A 02 vi mạch PPI 15 mA / IC 30 mA
Các IC logic bổ trợ 74LS04 (2,4 mA), 74LS14 (10 mA), 74LS74 (4 mA) Tùy loại 16,4 mA
Tổng dòng điện toàn mạch (KIT và LED) Dòng cực đại danh định yêu cầu: $\ge 1\text{ A}$ — $\approx 800\text{ mA}$

Phần mềm hệ thống và giao thức truyền thông

  • Bảng kiểu ký tự tiếng Việt: Mỗi ký tự được định nghĩa trên ma trận điểm $5 \times 8$. Tác giả mã hóa ký tự thành 5 byte dữ liệu nhị phân tương ứng với trạng thái đóng cắt của 8 hàng LED trên 5 cột quét liên tiếp. Để tối ưu hóa độ rõ nét trên lưới điểm $5 \times 8$, toàn bộ hệ thống ký tự tiếng Việt có dấu được thiết kế ở dạng chữ in hoa. Khi khởi động hệ thống, bảng mẫu ký tự được chương trình nạp cố định vào vùng nhớ RAM mang nhãn DISTBL.
  • Giao thức truyền thông qua cổng máy in (LPT1): Máy tính cá nhân xuất dữ liệu văn bản 8-bit qua các chân 2 đến 9 (Data D0–D7) tại địa chỉ I/O 378h. Quá trình đồng bộ dữ liệu sử dụng tín hiệu điều khiển STROBE (chân 1, mức thấp) và đọc tín hiệu phản hồi từ chân trạng thái BUSY (chân 11, mức cao khi bận) tại địa chỉ 379h. Chương trình Turbo Pascal trên PC quản lý việc nhận chuỗi nhập từ bàn phím máy tính, tra bảng mã ký tự tiếng Việt, thực hiện đóng gói và truyền từng byte dữ liệu xuống bộ đệm của vi mạch 8255A trên KIT Z80.

Nội dung chính theo từng chương

Chương 1: Tổng quan về kỹ thuật vi xử lý

Chương này trình bày cơ sở lý thuyết tổng quan về kỹ thuật vi xử lý. Nội dung bao gồm lịch sử phát triển vi xử lý từ 4-bit (Intel 4004 với 14 đường địa chỉ quản lý 16.384 ô nhớ) đến các dòng 8-bit (16 đường địa chỉ truy xuất 65.536 ô nhớ), 16-bit, 32-bit và 64-bit; các chỉ tiêu đánh giá năng lực vi xử lý gồm độ dài từ dữ liệu, dung lượng không gian nhớ và tốc độ xung nhịp. Tác giả phân tích cấu trúc bên trong vi xử lý gồm Đơn vị Thực thi (EU) chứa khối số học/logic (ALU) cùng các thanh ghi dữ liệu, và Đơn vị Tương thích Bus (BIU) quản lý các bus địa chỉ, bus dữ liệu hai chiều và bus điều khiển.

Trọng tâm chương là khảo sát chi tiết CPU Z80: sơ đồ khối bên trong, tập lệnh gồm 158 lệnh, hệ thống 22 thanh ghi, các cờ trạng thái trong thanh ghi F (Zero, Carry, Sign, Parity/Overflow, Half Carry, Subtract) và hai chế độ ngắt phần cứng (ngắt không che được NMI nhảy về địa chỉ cố định 0066h và ngắt có thể che được INT điều khiển qua flip-flop IFF1). Tiếp theo, chương trình bày nguyên lý hoạt động của các bộ nhớ bán dẫn (Mask ROM, PROM, EPROM 2764, SRAM 6264, DRAM với cơ chế làm tươi chu kỳ 2 ms) và vi mạch giao tiếp ngoại vi 8255A. Cấu trúc từ điều khiển cấu hình cổng của 8255A và từ điều khiển Set/Reset từng bit của Port C được phân tích chi tiết cho cả ba chế độ Mode 0, Mode 1 và Mode 2.

Chương 2: Phương pháp giao tiếp với thiết bị ngoại vi

Chương 2 phân tích và so sánh các phương thức ghép nối phổ biến giữa máy tính cá nhân với các thiết bị bên ngoài:

  • Cổng nối tiếp RS-232: Giao diện truyền nối tiếp không đồng bộ điểm-điểm, cấu trúc khung truyền (Start, Data 5–8 bit, Parity, Stop), tốc độ truyền chuẩn từ 1200 đến 9600 bps; khảo sát sơ đồ chân đầu nối DB9 và DB25 cùng địa chỉ cơ bản của cổng COM1 (3F8h) và COM2 (2F8h).
  • Khe cắm mở rộng Slot-Card: Ghép nối trực tiếp lên bus hệ thống của bo mạch chủ qua các đường bus địa chỉ, bus dữ liệu và tín hiệu điều khiển (CLK, IOW, IOR, ALE, RESET) trong dải địa chỉ 300h - 31Fh; ưu điểm tốc độ cao nhưng nhược điểm là phải can thiệp phần cứng bên trong máy tính.
  • Cổng máy in song song (LPT): Khảo sát cổng DB25 ở mặt sau máy tính gồm 17 đường dẫn tín hiệu (12 đường xuất, 5 đường nhập) tương thích chuẩn TTL. Cổng được quản lý qua ba thanh ghi: thanh ghi dữ liệu 8-bit (địa chỉ 378h cho LPT1, 278h cho LPT2), thanh ghi trạng thái đọc các tín hiệu ACK, BUSY, PE, SLCT, ERROR (địa chỉ 379h) và thanh ghi điều khiển xuất các tín hiệu STROBE, AF, INIT, SLCTIN (địa chỉ 37Ah).

Dựa trên các phân tích kỹ thuật, tác giả lập luận lựa chọn cổng song song máy in LPT1 làm phương thức giao tiếp chính với KIT vi xử lý do cấu trúc ghép nối đơn giản, tốc độ truyền song song cao, tương thích trực tiếp mức logic TTL mà không cần mạch chuyển đổi điện áp phức tạp.

Chương 3: Thiết kế và thi công phần cứng

Chương 3 trình bày toàn bộ quy trình tính toán, thiết kế và thi công phần cứng của hệ thống. Tác giả phân loại hệ quang báo theo phương thức nhập/xử lý dữ liệu (loại ghi cố định trong ROM, loại có bàn phím rời, loại điều khiển trực tiếp từ máy tính và loại kết hợp giữa KIT vi xử lý với máy tính). Nội dung giải trình chi tiết nguyên lý quét dồn kênh (Multiplexing) ma trận LED để giảm thiểu số lượng đường dây điều khiển; giới thiệu thông số vi mạch ghi dịch 8-bit 74LS164 ($V_{CC} = 4{,}75 - 5{,}25\text{ V}$, tần số xung nhịp cực đại 25 MHz, dòng ngõ ra mức thấp 8 mA).

Phần tính toán mạch hiển thị nêu rõ:

  • Tầng quét hàng: Cấp dòng xung cho 8 hàng ma trận LED thông qua 8 transistor 2SC828 hoạt động ở chế độ bão hòa, điện trở chân B tính được $R_B = 18\text{ k}\Omega$, điện trở cực thu hạn dòng $R_C = 150\ \Omega$, đảm bảo dòng qua mỗi LED đạt 30 mA.
  • Tầng quét cột: Sử dụng 10 IC 74LS164 mắc nối tiếp để quét 80 cột; ngõ ra điều khiển cực B của 80 transistor công suất D468 hoạt động ở mức bão hòa để gánh dòng cực thu tối đa 240 mA khi 8 LED trên cột cùng sáng.
  • Mạch nguồn: Tính toán tổng dòng tiêu thụ của toàn bộ mạch KIT và bảng đèn đạt khoảng 800 mA, từ đó thiết kế bộ nguồn ổn áp +5V dòng tải danh định từ 1A trở lên.
  • Xây dựng bảng mã ký tự tiếng Việt: Trình bày bảng vẽ điểm ma trận $5 \times 8$ và phương pháp định nghĩa mã byte nhị phân cho các ký tự tiếng Việt in hoa có dấu, nạp vào vùng nhớ RAM DISTBL.
  • Thiết kế mạch KIT Z80: Thiết kế sơ đồ nguyên lý CPU Z80 làm việc ở chế độ tối thiểu, mạch dao động thạch anh 4 MHz qua bộ chia tần tạo clock 2 MHz, giải mã địa chỉ cho 16 KB ROM (hai chip 2764) và 8 KB RAM (chip 6264), ghép nối hai vi mạch 8255A với ma trận bàn phím 41 phím và cổng máy in.

Chương 4: Thiết kế phần mềm

Chương này trình bày giải pháp phần mềm cho cả hai hệ thống xử lý:

  • Phần mềm cho KIT Z80: Giới thiệu tập lệnh hợp ngữ của Z80; xây dựng thuật toán và lưu đồ chương trình điều khiển hệ thống. Chương trình trên KIT thực hiện các nhiệm vụ: quét bàn phím 41 phím để phát hiện phím nhấn, chống rung phím, giải mã ký tự; nhận dữ liệu truyền từ cổng máy in; nạp chuỗi ký tự vào bộ đệm hiển thị; thực thi vòng lặp xuất dữ liệu hàng ra Cổng A và phát xung dịch cột ra Cổng B của vi mạch 8255A thứ hai nhằm duy trì hiển thị liên tục trên bảng LED.
  • Phần mềm Turbo Pascal trên máy tính PC: Khảo sát cú pháp và các cấu trúc lệnh I/O truy xuất cổng phần cứng của ngôn ngữ Pascal (lệnh Port[diachi]); thiết kế lưu đồ thuật toán đọc chuỗi văn bản từ giao diện người dùng, mã hóa các ký tự tiếng Việt có dấu thành chuỗi byte tương ứng theo quy ước của bảng mã DISTBL, kiểm tra trạng thái tín hiệu đường BUSY qua thanh ghi 379h và xuất dữ liệu ra thanh ghi 378h kèm tín hiệu chốt STROBE.

Chương 5: Kết luận và hướng phát triển đề tài

Chương 5 tổng kết toàn bộ quá trình thiết kế, thi công và thử nghiệm hệ thống quang báo. Tác giả đánh giá mức độ hoàn thành nhiệm vụ theo các tiêu chí phần cứng và phần mềm; phân tích tính linh hoạt của giải pháp kết hợp hai tầng điều khiển; đồng thời nêu rõ các giới hạn còn tồn tại về độ phân giải ma trận ký tự và đề xuất các giải pháp nâng cấp trong tương lai.

Kết quả và đóng góp

Đồ án đã chế tạo thành công một hệ thống quang báo hoàn chỉnh kết hợp giữa máy tính cá nhân và KIT vi xử lý với các thông số kỹ thuật cụ thể:

  • Kết quả phần cứng:
    • Bảng hiển thị ma trận LED kích thước 8 hàng $\times$ 80 cột (ghép từ 16 khối ma trận LED $5 \times 8$) vận hành ổn định, hiển thị đồng thời 13 ký tự với độ sáng đồng đều, không bị rung giật nhờ tần số quét multiplexing được tạo trực tiếp từ phần mềm vi xử lý.
    • Tầng công suất đệm hàng (transistor 2SC828) và đệm cột (transistor D468) đáp ứng chính xác điểm làm việc bão hòa, cung cấp dòng xung 30 mA qua mỗi điểm LED và gánh dòng cực thu 240 mA trên mỗi cột.
    • Mạch nguồn nuôi cung cấp điện áp ổn định +5V, chịu tải tốt cho toàn hệ thống với mức tiêu thụ thực tế khoảng 800 mA.
    • Bo mạch KIT Z80 vận hành chính xác ở xung nhịp 2 MHz; quản lý đầy đủ 16 KB EPROM, 8 KB SRAM, hai vi mạch giao tiếp 8255A và bàn phím 41 phím.
  • Kết quả phần mềm và giao tiếp:
    • Thiết lập thành công giao thức truyền dữ liệu song song một chiều có bắt tay giữa cổng máy in LPT1 (địa chỉ 378h, 379h, 37Ah) của PC và vi mạch 8255A trên KIT vi xử lý.
    • Phần mềm Turbo Pascal trên máy tính thực hiện việc nhận văn bản tiếng Việt có dấu từ người dùng, mã hóa chuỗi và truyền tải dữ liệu xuống KIT nhanh chóng.
    • Chương trình điều khiển trên KIT Z80 đảm bảo duy trì hiển thị liên tục, đồng thời xử lý tốt việc nhập dữ liệu trực tiếp từ bàn phím rời 41 phím.
  • Đóng góp kỹ thuật do tác giả tự nêu:
    • Đề xuất và hiện thực hóa thành công mô hình quang báo kết hợp: vừa có khả năng vận hành độc lập bằng bàn phím rời của KIT khi không có máy tính, vừa có khả năng kết nối với PC để soạn thảo văn bản tiếng Việt trực quan, khắc phục hoàn toàn nhược điểm nhập dấu phức tạp trên các hệ thống vi xử lý đơn lẻ trước đó.
    • Ứng dụng giải pháp ghép nối tiếp 10 vi mạch ghi dịch 74LS164 điều khiển 80 cột LED, giúp tiết kiệm tối đa số lượng đường dây vào/ra của vi xử lý so với các phương pháp giải mã truyền thống.

Hạn chế và hướng nghiên cứu tiếp

Dựa trên nội dung văn bản và phạm vi kỹ thuật của đồ án, các hạn chế và hướng mở rộng được xác định như sau:

  • Hạn chế của hệ thống:
    • Độ phân giải hiển thị hạn chế: Do sử dụng ma trận điểm $5 \times 8$ cho mỗi ký tự, hệ thống chỉ có thể thể hiện được các ký tự tiếng Việt có dấu ở dạng chữ in hoa; không gian ma trận không đủ độ phân giải để tạo dấu thanh thẩm mỹ và rõ ràng cho chữ in thường.
    • Màu sắc hiển thị đơn điệu: Bảng đèn mới chỉ sử dụng các khối LED đơn màu, chưa hỗ trợ hiển thị đa sắc hoặc điều chỉnh cường độ sáng.
    • Khoảng cách truyền dữ liệu ngắn: Giao tiếp qua cổng song song máy in LPT chỉ cho phép truyền dữ liệu trong phạm vi cự ly ngắn (vài mét gần máy tính), chưa thích hợp cho việc lắp đặt bảng quang báo ở vị trí xa trung tâm điều khiển.
    • Chế độ làm việc vi xử lý chưa tối ưu: CPU Z80 được cấu hình ở chế độ tối thiểu, vô hiệu hóa toàn bộ các ngắt phần cứng (treo các chân INT, NMI lên mức logic 1), do đó vi xử lý phải liên tục thực hiện vòng lặp quét hiển thị và thăm dò cổng/phím, chưa khai thác được cơ chế phục vụ ngắt tự động.
  • Hướng nghiên cứu và phát triển tiếp:
    • Nâng cấp độ phân giải hiển thị bằng cách sử dụng các khối ma trận điểm lớn hơn như $8 \times 12$ hoặc $8 \times 14$ điểm ảnh để hiển thị hoàn chỉnh bảng chữ cái tiếng Việt dạng chữ in thường có dấu.
    • Chuyển đổi bảng hiển thị sang sử dụng LED hai màu hoặc ba màu để làm phong phú chế độ hiển thị thông tin.
    • Nghiên cứu thay thế hoặc bổ sung cổng truyền thông nối tiếp RS-232, RS-485 hoặc các giao thức truyền thông mạng để mở rộng khoảng cách điều khiển bảng quang báo từ xa.

Giá trị tham khảo

Đồ án là tài liệu kỹ thuật hữu ích đối với sinh viên, giảng viên và kỹ sư thuộc các chuyên ngành Kỹ thuật Điện tử, Kỹ thuật Máy tính, Điện tử Viễn thông và Cơ điện tử:

  • Đối tượng tham khảo: Sinh viên thực hiện các đồ án môn học, luận văn tốt nghiệp liên quan đến kiến trúc vi xử lý 8-bit, thiết kế hệ thống nhúng giao tiếp máy tính và kỹ thuật điều khiển màn hình hiển thị công suất lớn.
  • Các nội dung có giá trị ứng dụng cao:
    • Phương pháp tính toán tầng công suất bão hòa: Cách thức tính chọn transistor (2SC828, D468), xác định điện trở phân cực cực gốc và điện trở hạn dòng LED ma trận theo chế độ xung biên độ lớn.
    • Kỹ thuật mở rộng cổng quét bằng thanh ghi dịch: Giải pháp mắc nối tiếp chuỗi IC 74LS164 để dồn kênh quét số lượng lớn cột LED chỉ với 2 đường tín hiệu điều khiển (Data và Clock).
    • Kỹ thuật lập trình vi mạch 8255A và cổng máy in LPT: Cấu hình các thanh ghi từ điều khiển chế độ Mode 0, Mode 1 của 8255A và phương pháp lập trình truy xuất thanh ghi dữ liệu, trạng thái, điều khiển của cổng LPT trên máy tính cá nhân.
    • Phương pháp xây dựng font chữ ma trận tiếng Việt: Cơ chế mã hóa điểm ảnh nhị phân $5 \times 8$ và tổ chức bảng tra ký tự DISTBL trong bộ nhớ bán dẫn RAM.

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

1. Vì sao nhóm tác giả lại lựa chọn cổng máy in (LPT1) để giao tiếp giữa máy tính và KIT vi xử lý thay vì cổng nối tiếp RS-232 hay khe cắm Slot-Card?
Cổng máy in LPT1 sử dụng phương thức truyền song song 8-bit tốc độ cao, các đường dẫn dữ liệu và điều khiển ở mức điện áp tương thích trực tiếp chuẩn TTL với vi xử lý, không đòi hỏi mạch chuyển đổi mức điện áp phức tạp như RS-232 và không cần tháo vỏ máy tính để cắm mạch vào bo mạch chủ như phương pháp dùng khe cắm Slot-Card.

2. Vi mạch Z80 trên bo mạch KIT được thiết lập hoạt động ở chế độ nào và tần số xung nhịp là bao nhiêu?
CPU Z80 được thiết lập hoạt động ở chế độ tối thiểu (Minimum Mode), không sử dụng ngắt; các chân chức năng INT, BUSRQ, NMI, WAIT đều được treo lên nguồn +5V qua điện trở $4{,}7\text{ k}\Omega$. Tín hiệu xung nhịp hệ thống (Clock) có tần số 2 MHz, được tạo ra từ mạch dao động thạch anh 4 MHz qua bộ chia đôi tần số.

3. Làm thế nào để hệ thống quét được 80 cột LED mà không làm tốn quá nhiều đường vào/ra của vi mạch điều khiển?
Hệ thống sử dụng phương pháp quét dồn kênh (Multiplexing) kết hợp 10 vi mạch thanh ghi dịch 8-bit 74LS164 mắc nối tiếp tầng (ngõ ra $Q_H$ của IC trước nối vào ngõ vào dữ liệu của IC sau). Tín hiệu xung dịch Clock của 10 IC được nối chung. Nhờ vậy, vi xử lý chỉ cần dùng 2 đường tín hiệu từ vi mạch 8255A (một đường dữ liệu và một đường xung clock) là có thể quét tuần tự toàn bộ 80 cột LED.

4. Dòng điện tiêu thụ của mạch nguồn nuôi hệ thống được tính toán với giá trị cụ thể là bao nhiêu?
Mạch nguồn nuôi yêu cầu điện áp +5V ổn định với dòng định mức tối thiểu 1A. Tổng mức tiêu thụ dòng cực đại tính toán của mạch KIT và bảng đèn là 800 mA; bao gồm: dòng qua 8 điểm LED sáng đồng thời trên 1 cột (240 mA), 10 IC ghi dịch 74LS164 (160 mA), 2 vi mạch EPROM 2764 (150 mA), 1 vi mạch SRAM 6264 (100 mA), 2 vi mạch 8255A (30 mA) và các IC logic phụ trợ khác (16,4 mA).

5. Vì sao bảng quang báo trong đồ án chỉ hiển thị ký tự tiếng Việt có dấu ở dạng chữ in hoa?
Do kích thước ma trận điểm cho mỗi ký tự được thiết kế theo chuẩn $5 \times 8$ điểm ảnh (5 cột $\times$ 8 hàng). Không gian lưới điểm này chỉ đủ để bố trí phần thân chữ in hoa kết hợp với các dấu thanh tiếng Việt (sắc, huyền, hỏi, ngã, nặng) mà vẫn giữ được độ rõ nét; lưới điểm $5 \times 8$ không đủ độ phân giải để tạo hình chữ in thường có dấu đẹp và dễ nhìn.

Kết luận

Đồ án tốt nghiệp của sinh viên Nguyễn Thanh Tuấn và Nguyễn Ngọc Khánh đã giải quyết trọn vẹn bài toán thiết kế và thi công hệ thống quang báo ma trận LED 8 hàng $\times$ 80 cột kết hợp giữa máy vi tính và KIT vi xử lý Z80 qua cổng song song máy in LPT1. Hệ thống thể hiện tính thực tiễn cao khi vừa hỗ trợ soạn thảo văn bản tiếng Việt có dấu trực quan trên máy tính, vừa có khả năng vận hành độc lập qua bàn phím cơ 41 phím. Các tính toán mạch công suất bão hòa cho transistor, kỹ thuật quét dồn kênh bằng chuỗi IC ghi dịch 74LS164 và cấu trúc phần mềm hai tầng là những giải pháp kỹ thuật điển hình, có giá trị ứng dụng rõ rệt trong đào tạo và nghiên cứu kỹ thuật điện tử.