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

Trong tiến trình công nghiệp hóa và hiện đại hóa, tự động hóa các quá trình sản xuất trở thành một yêu cầu thiết yếu nhằm nâng cao năng suất, độ chính xác và chất lượng sản phẩm. Sự phát triển của kỹ thuật vi xử lý và máy vi tính đã thúc đẩy kỹ thuật đo lường, điều khiển tự động đạt được những bước tiến vượt bậc, cho phép thu thập số liệu nhanh chóng, xử lý với độ chính xác cao và xây dựng giao diện vận hành trực quan.

Trong các hệ thống điều khiển tự động, mạng viễn thông hay máy tính, các vi xử lý luôn hoạt động dựa trên chương trình được nạp sẵn trong các bộ nhớ chỉ đọc (ROM). Trong đó, EPROM (Erasable Programmable Read-Only Memory - bộ nhớ chỉ đọc có thể xóa bằng tia cực tím) thuộc họ 27xx là loại vi mạch nhớ được ứng dụng rộng rãi. Tuy nhiên, việc nạp và đọc dữ liệu cho các vi mạch EPROM gặp nhiều trở ngại nếu thực hiện thủ công hoặc sử dụng các chuẩn truyền thông nối tiếp tốc độ thấp do hạn chế lớn về mặt thời gian. Để giải quyết vấn đề này, đề tài "Thiết kế và thi công mạch nạp EPROM giao tiếp với cổng LPT" được thực hiện nhằm xây dựng giải pháp nạp và đọc dữ liệu EPROM tốc độ cao thông qua cổng song song của máy tính.

Nhiệm vụ và mục tiêu nghiên cứu của đề tài bao gồm:

  1. Khảo sát nguyên lý ghép nối máy tính qua cổng máy in (cổng song song LPT) và các chuẩn giao tiếp ngoại vi.
  2. Nghiên cứu cấu trúc phần cứng, tập lệnh của vi điều khiển AT89C51 thuộc họ MCS-51 và đặc tính kỹ thuật của các bộ nhớ bán dẫn EPROM/EEPROM.
  3. Thiết kế và thi công khối phần cứng gồm: bộ nguồn ổn áp 5V, bộ cấp điện áp lập trình $V_{pp}$ nhiều mức (12.5V, 21V, 25V), board mạch chính tích hợp vi điều khiển AT89C51 kết nối cổng LPT, và board mạch phụ phục vụ minh họa.
  4. Xây dựng phần mềm điều khiển trên máy tính bằng ngôn ngữ Borland Delphi 6.0 với giao diện đồ họa, cho phép ghi, đọc, xóa kiểm tra (Blank Check) và xác thực dữ liệu (Verify) cho các dòng EPROM từ 2716 đến 27512.
  5. Lập trình hợp ngữ (Assembly) cho vi điều khiển AT89C51 để tiếp nhận lệnh từ máy tính, điều khiển chuyển mạch và phát xung ghi/đọc chính xác theo giản đồ thời gian của từng loại EPROM.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng: Chuẩn giao tiếp song song qua cổng máy in LPT (chế độ SPP), vi điều khiển AT89C51, và các IC nhớ EPROM họ 27xx (2716, 2732, 2764, 27128, 27256, 27512).
  • Phạm vi không gian và thời gian: Đề tài được thực hiện bởi nhóm sinh viên lớp 98KĐĐ dưới sự hướng dẫn của giảng viên Nguyễn Đình Phú tại Bộ môn Điện tử, Khoa Điện - Điện tử, 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 02 năm 2003 trong khoảng thời gian 8 tuần.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết và kiến trúc kỹ thuật

Đề tài dựa trên các nền tảng lý thuyết kỹ thuật điện tử và ghép nối máy tính:

  • Kiến trúc giao tiếp máy vi tính: Khảo sát cấu trúc CPU (lấy vi xử lý Intel 8085A làm mô hình phân tích chi tiết chức năng bus địa chỉ, bus dữ liệu đa hợp qua tín hiệu ALE, các ngắt phần cứng RST 5.5, RST 6.5, RST 7.5, TRAP, INTR, INTA).
  • Chuẩn giao tiếp song song (Parallel Port - LPT): Khai thác chuẩn giao tiếp 25 chân với 3 cổng logic tại địa chỉ cơ sở của LPT1:
    • Thanh ghi dữ liệu (Data Register - địa chỉ 378H): 8 bit hai chiều hoặc xuất dữ liệu.
    • Thanh ghi trạng thái (Status Register - địa chỉ 379H): tiếp nhận các tín hiệu phản hồi từ phần cứng như BUSY (bit 7), ACK (bit 6), PE (bit 5), SLCT (bit 4), ERROR (bit 3).
    • Thanh ghi điều khiển (Control Register - địa chỉ 37AH): xuất các tín hiệu điều khiển phần cứng như Strobe (bit 0), Auto Feed (bit 1), Init (bit 2), Select In (bit 3).
  • Cấu trúc vi điều khiển họ MCS-51 (AT89C51): Cấu trúc bộ nhớ Harvard phân tách không gian bộ nhớ chương trình và bộ nhớ dữ liệu (khả năng mở rộng 64KB ROM ngoài qua chân $\overline{\text{PSEN}}$, 64KB RAM ngoài qua chân $\overline{\text{RD}}$ và $\overline{\text{WR}}$, quản lý qua con trỏ dữ liệu DPTR 16-bit). RAM nội 128 byte gồm 4 bank thanh ghi (R0–R7), vùng nhớ định vị từng bit (20H–2FH) và 21 thanh ghi chức năng đặc biệt (SFR).
  • Nguyên lý ô nhớ bán dẫn EPROM/EEPROM: Cấu trúc MOSFET cổng nổi (Floating Gate). Quá trình ghi EPROM đòi hỏi cấp điện áp cao $V_{pp}$ (từ 12.5V đến 25V) để đưa hạt mang điện vào cực cổng thả nổi qua cơ chế đánh thủng tuyết lở; quá trình xóa thực hiện bằng cách chiếu tia cực tím qua cửa sổ thạch anh trong khoảng thời gian 20–30 phút. Đối với EEPROM (như 2816, 2864), lớp oxide mỏng tại cực máng cho phép xóa và ghi từng byte bằng điện áp 21V hoặc 5V tích hợp trong khoảng 10ms.

Phương pháp nghiên cứu

  • Phương pháp phân tích - tổng hợp: Nghiên cứu tài liệu kỹ thuật chuyên ngành về vi xử lý, vi điều khiển, kỹ thuật ghép nối máy vi tính và datasheet của các vi mạch nhớ họ 27xx của Intel/Atmel.
  • Phương pháp thiết kế và thi công hệ thống kỹ thuật:
    • Thiết kế sơ đồ nguyên lý và layout mạch in 2 lớp cho phần cứng.
    • Lập trình hợp ngữ điều khiển nhúng trên AT89C51.
    • Xây dựng phần mềm ứng dụng hướng đối tượng trên Windows bằng Borland Delphi 6.0 sử dụng thư viện điều khiển cổng LPT trực tiếp.
  • Phương pháp thực nghiệm kiểm thử: Nạp thử nghiệm các tập tin định dạng Intel HEX vào từng loại chip EPROM thực tế, đọc ngược dữ liệu ra máy tính và so sánh để đánh giá tỷ lệ lỗi và độ ổn định.

Thiết kế và thi công hệ thống kỹ thuật

Hệ thống mạch nạp EPROM giao tiếp cổng LPT được cấu thành từ hai phân hệ chính: phần cứng mạch điện tử và phần mềm điều khiển trên máy tính.

1. Kiến trúc phần cứng

Toàn bộ phần cứng được tổ chức thành các khối chức năng liên kết chặt chẽ:

  • Khối xử lý trung tâm (Board mạch chính): Sử dụng vi điều khiển AT89C51 hoạt động với thạch anh 12MHz làm trung tâm điều phối. Vi điều khiển tiếp nhận dữ liệu địa chỉ và tín hiệu điều khiển từ cổng LPT máy tính thông qua Port 1 và Port 0, giải mã loại chip và điều khiển các ngõ logic $\overline{\text{CE}}$, $\overline{\text{OE}}$, $\text{PGM}$ tương ứng trên đế cắm ZIF socket.
  • Khối chuyển mạch địa chỉ và nguồn: Sử dụng các IC giải mã (74HC138) và IC chốt (74HC373/74LS573) kết hợp các relay và transistor điều khiển để chuyển đổi linh hoạt các đường địa chỉ cấp cao ($A_{11}$ đến $A_{15}$) và điện áp $V_{pp}$ đến đúng chân quy định của từng loại EPROM từ 24 chân (2716, 2732) đến 28 chân (2764, 27128, 27256, 27512).
  • Khối nguồn cấp:
    • Nguồn nuôi logic ($V_{cc} = +5\text{V}$): Sử dụng biến áp hạ áp 12V/1A, cầu diode nắn dòng, tụ lọc nguồn $4700\mu\text{F}$, và IC ổn áp tuyến tính LM7805 có tích hợp bảo vệ quá dòng, cung cấp dòng tải tối đa 1A.
    • Nguồn lập trình ($V_{pp}$): Sử dụng IC ổn áp điều chỉnh LM317 với mạng điện trở/biến trở phân áp được tính toán chính xác để xuất ra 4 mức điện áp yêu cầu: 5V (chế độ đọc), 12.5V (nạp 2764A, 27128, 27256, 27512), 21V (nạp 2732A, 2764) và 25V (nạp 2716, 2732 đời cũ).

Công thức tính toán điện trở phân áp cho LM317: $$V_{\text{out}} = 1.25 \times \left(1 + \frac{R_i}{R}\right)$$ Với điện trở chuẩn $R = 820\Omega$, các nhánh điện trở tương đương $R_i$ được thiết kế:

  • Mức $V_{\text{out}} = 25\text{V} \Rightarrow R_i = 15.58\text{ k}\Omega$ (sử dụng biến trở $20\text{ k}\Omega$ vi chỉnh).
  • Mức $V_{\text{out}} = 5\text{V} \Rightarrow R_i = 2.46\text{ k}\Omega$ (ghép song song $R_1 // R_2$, sử dụng biến trở $5\text{ k}\Omega$).
  • Mức $V_{\text{out}} = 12.5\text{V} \Rightarrow R_i = 7.38\text{ k}\Omega$ (ghép $R_1 // R_3$, sử dụng biến trở $5\text{ k}\Omega$).
  • Mức $V_{\text{out}} = 21\text{V} \Rightarrow R_i = 12.926\text{ k}\Omega$ (ghép $R_1 // R_4$, sử dụng biến trở $100\text{ k}\Omega$).

2. Thiết kế phần mềm

  • Chương trình máy tính (Delphi 6.0 - Unit DT4):
    • Giao diện trực quan cho phép người dùng chọn cổng LPT (LPT1/LPT2), chọn loại EPROM mục tiêu (2716 đến 27512), nạp file Intel HEX vào vùng đệm (Memo/Buffer), thực thi các tác vụ: Đọc (Read), Ghi (Write), Xóa kiểm tra, Xác thực (Verify).
    • Tích hợp hàm chuyển đổi mã HEX (HexToInt), hàm quét phân tích dòng dữ liệu Intel HEX (TSoByte), và thủ tục kiểm soát đường bận KtBusy qua bit 7 của Status Port (379H).
    • Quy trình Verify: Sau mỗi byte được ghi, phần mềm lập tức đọc ngược byte dữ liệu từ chip (ReadData) để đối chiếu với dữ liệu gốc; nếu có sai lệch, biến đếm Blap tăng dần và thực hiện thử lại tối đa 10 lần trước khi phát cảnh báo lỗi hỏng chip (Eprom hu).
  • Chương trình nhúng vi điều khiển AT89C51:
    • Viết bằng Hợp ngữ MCS-51, nạp vào bộ nhớ Flash nội 4KB của 89C51.
    • Sử dụng cơ chế ngắt ngoài EXT0 (chân P3.2) và EXT1 (chân P3.3) để đồng bộ hóa việc nhận byte lệnh và byte dữ liệu từ cổng LPT.
    • Module tạo trễ thời gian lập trình: Thiết lập Timer 0 ở Chế độ 1 (16-bit Timer), nạp giá trị ban đầu TH0 = 3CH, TL0 = 0B0H để tạo khoảng thời gian trễ chính xác 50ms cho xung ghi PGM đối với từng byte nhớ.

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

Phần / Chương Tên chương trong văn bản Nội dung trọng tâm và kết quả phân tích
Phần A - Chương 1 Dẫn Nhập Trình bày tính cấp thiết của tự động hóa và ghép nối máy tính; giới thiệu mục tiêu thiết kế mạch nạp EPROM qua cổng LPT; xác định giới hạn đề tài tập trung vào việc tạo giao diện Delphi, thi công board mạch chính giao tiếp LPT dùng AT89C51 và board mạch phụ minh họa.
Phần A - Chương 2 Cơ Sở Lý Luận Xác định yêu cầu kỹ thuật: mạch có độ tin cậy cao, kích thước gọn nhẹ, nạp/đọc chính xác; phân tích sơ đồ khối toàn hệ thống bao gồm: Máy tính, Khối xử lý AT89C51, Khối chuyển mạch, Vi mạch EPROM và Khối nguồn.
Phần B - Chương 1 Giao Tiếp Máy Tính Với Các Thiết Bị Ngoại Vi Khảo sát cấu trúc máy tính cá nhân (CPU, ALU, CU, tập thanh ghi); khảo sát chi tiết sơ đồ chân, giản đồ bus và 4 ngắt cứng của vi xử lý Intel 8085A; phân tích các phương thức ghép nối máy tính: qua khe cắm Card Slot (ISA, MCA, EISA, VESA, PCI), cổng nối tiếp COM (RS-232, mức điện áp $\pm 15\text{V}$, tốc độ tối đa 20Kbps) và cổng song song máy in LPT (25 chân, chuẩn logic TTL 0–5V, 3 thanh ghi tại địa chỉ base 378H); luận chứng việc chọn cổng LPT1 cho đề tài.
Phần B - Chương 2 Khảo Sát Vi Điều Khiển AT89C51 Trình bày toàn diện kiến trúc họ MCS-51: 4KB EPROM nội, 128 byte RAM nội, 4 Port I/O 8-bit, 2 bộ định thời 16-bit, 5 nguồn ngắt; khảo sát chức năng 40 chân; cấu trúc RAM nội (vùng RAM đa dụng 30H–7FH, vùng định vị bit 20H–2FH với 128 bit, 4 bank thanh ghi Bank 0–Bank 3); 21 thanh ghi chức năng đặc biệt SFR (PSW, ACC, B, SP, DPTR, PCON, TMOD, TCON, SBUF, SCON, IE, IP); cơ chế truy xuất bộ nhớ mã ngoài và dữ liệu ngoài (sử dụng tín hiệu $\overline{\text{PSEN}}$, ALE, $\overline{\text{RD}}$, $\overline{\text{WR}}$ kết hợp IC chốt 74HC373 và giải mã 74HC138); tóm tắt 5 nhóm lệnh hợp ngữ MCS-51 và 8 chế độ định vị địa chỉ.
Phần B - Chương 3 Giới Thiệu Các Loại Bộ Nhớ Phân loại và nguyên lý hoạt động của các bộ nhớ bán dẫn: ROM, PROM, EPROM, EEPROM; phân tích chi tiết sơ đồ chân, bảng trạng thái điều khiển ($\overline{\text{CE}}$, $\overline{\text{OE}}$, $\text{PGM}$, $V_{pp}$) và giản đồ thời gian đọc/ghi của EPROM 2716 (2KB), 2732 (4KB), 2764 (8KB), 27128 (16KB), 27256 (32KB), 27512 (64KB); giới thiệu các dòng EEPROM 2816 (2KB) và 2864 (8KB) với cơ chế xóa/ghi từng byte bằng điện trong 10ms.
Phần B - Chương 4 Thiết Kế Phần Cứng Tính toán và thiết kế bộ nguồn $V_{cc} = +5\text{V}$ dùng IC 7805 (1A); tính toán thông số điện trở phân áp tạo các mức $V_{pp}$ (5V, 12.5V, 21V, 25V) dùng IC LM317; xây dựng sơ đồ nguyên lý hoàn chỉnh kết nối AT89C51 với cổng LPT, IC chuyển mạch, khối nguồn và ZIF socket; thiết kế và thi công mạch in 2 lớp.
Phần B - Chương 5 Thiết Kế Phần Mềm Giới thiệu môi trường lập trình Borland Delphi 6.0; xây dựng mã nguồn Unit DT4 xử lý giao diện và giao tiếp LPT (các sự kiện WriteClick, ReadClick cho từng loại chip từ 2716 đến 27512); xây dựng lưu đồ thuật toán ghi dữ liệu lên EPROM và lưu đồ thuật toán đọc dữ liệu từ EPROM.
Phần C Kết Luận Tổng kết quá trình 8 tuần thực hiện đề tài; đánh giá kết quả chế tạo phần cứng và xây dựng phần mềm; đề xuất các hướng phát triển hoàn thiện hệ thống trong tương lai.
Phần D Phụ Lục Toàn văn mã nguồn chương trình Hợp ngữ (Assembly) nạp trong vi điều khiển AT89C51: chương trình chính, trình phục vụ ngắt EXT0/EXT1, chương trình con tạo trễ DELAY50MS/DELAY1MS, các chương trình con đọc/ghi cho từng loại EPROM (DOC2716–DOC27512, WRITE2716–WRITE27512).

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

1. Kết quả kỹ thuật đạt được

  • Thi công hoàn chỉnh phần cứng: Chế tạo thành công board mạch chính 2 lớp kết nối ổn định với cổng song song LPT của máy tính cá nhân. Mạch tích hợp vi điều khiển trung tâm AT89C51, khối ổn áp 5V/1A và khối cấp áp lập trình LM317 đa mức (5V, 12.5V, 21V, 25V).
  • Hoàn thiện phần mềm điều khiển: Xây dựng ứng dụng Delphi 6.0 giao diện đồ họa trực quan trên Windows, hỗ trợ nạp và đọc đầy đủ các định dạng tập tin Intel HEX với dung lượng từ 2KB (2716) đến 64KB (27512).
  • Độ chính xác và an toàn: Thuật toán ghi kết hợp xung trễ 50ms tạo bởi Timer 0 của vi điều khiển và cơ chế tự động xác thực (Verify) từng byte trên máy tính giúp tỷ lệ ghi sai lệch được kiểm soát tối đa, với tính năng tự ngắt và cảnh báo lỗi khi thử lại quá 10 lần.
  • Thi công board mạch phụ: Hoàn thành module phần cứng phụ trợ minh họa trực tiếp trạng thái và kết quả dữ liệu được nạp vào EPROM.

2. Bảng tổng hợp các dòng EPROM được hệ thống hỗ trợ

Tên IC EPROM Dung lượng nhớ Số chân Điện áp lập trình ($V_{pp}$) Chân chức năng đặc thù
2716 2 KBytes 24 chân 25V Chân 21 vừa là $V_{pp}$ vừa là đường nguồn nạp
2732 4 KBytes 24 chân 21V / 25V Chân 20 tích hợp chức năng $\overline{\text{OE}}/V_{pp}$
2764 8 KBytes 28 chân 12.5V / 21V Chân 1: $V_{pp}$, Chân 27: $\overline{\text{PGM}}$, Chân 26: NC
27128 16 KBytes 28 chân 12.5V / 21V Chân 1: $V_{pp}$, Chân 27: $\overline{\text{PGM}}$, Chân 26: $A_{13}$
27256 32 KBytes 28 chân 12.5V Chân 1: $V_{pp}$, Chân 27: $A_{14}$, Chân 26: NC
27512 64 KBytes 28 chân 12.5V Chân 1: $A_{15}$, Chân 22: $\overline{\text{OE}}/V_{pp}$

3. Đóng góp của đề tài

  • Đề xuất giải pháp giao tiếp máy tính qua cổng LPT kết hợp vi điều khiển AT89C51 để nạp EPROM, khắc phục nhược điểm thao tác phức tạp của phương pháp nạp thủ công bằng tay và tốc độ hạn chế của giao tiếp nối tiếp RS-232 cũ.
  • Tích hợp thành công khối chuyển mạch đa năng trên một board mạch duy nhất, cho phép nạp được nhiều loại IC EPROM có cấu trúc chân và mức điện áp lập trình khác nhau mà không cần thiết kế lại phần cứng.

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

Hạn chế của đề tài

  • Phương thức truyền dữ liệu qua cổng LPT vẫn phải kết hợp luân phiên giữa thanh ghi dữ liệu và các thanh ghi điều khiển/trạng thái, làm giới hạn tốc độ truyền thông tối đa mà phần cứng cổng song song có thể đáp ứng.
  • Hệ thống chỉ mới tập trung nạp cho các dòng bộ nhớ EPROM họ 27xx, chưa tích hợp tính năng nạp trực tiếp cho các dòng vi điều khiển có bộ nhớ Flash nội phổ biến như AT89Cxx.
  • Giao diện phần mềm Delphi 6.0 tuy đáp ứng đầy đủ các chức năng cốt lõi nhưng chưa tối ưu hóa hoàn toàn các thao tác nâng cao và tiện ích giám sát trực quan cho người dùng.

Hướng phát triển đề tài

  1. Tối ưu hóa giao thức truyền thông: Viết lại chương trình điều khiển phần mềm hoặc thiết kế lại cấu trúc phần cứng để chỉ sử dụng riêng thanh ghi dữ liệu (Data Register - 378H) của cổng LPT cho cả hai tác vụ truyền địa chỉ và truyền dữ liệu, nhằm tối đa hóa tốc độ nạp dữ liệu.
  2. Mở rộng chủng loại IC hỗ trợ: Bổ sung thêm socket và module điều khiển nạp chương trình cho các vi điều khiển họ MCS-51 (như AT89C51, AT89C52, AT89C55) của hãng Atmel/Intel.
  3. Nâng cấp giao diện người dùng: Hoàn thiện giao diện đồ họa trong môi trường Delphi, bổ sung các tính năng chỉnh sửa trực tiếp mã HEX trên bộ đệm, tự động nhận dạng chip và tích hợp báo cáo thống kê quá trình nạp.

Giá trị tham khảo

Tài liệu đồ án tốt nghiệp này mang lại giá trị tham khảo kỹ thuật cho:

  • Sinh viên ngành Kỹ thuật Điện tử, Tự động hóa, Kỹ thuật Máy tính: Nguồn tài liệu học tập thực tế về kỹ thuật ghép nối máy tính qua cổng song song LPT, thiết kế mạch vi điều khiển 8051, thiết kế mạch nguồn ổn áp LM7805/LM317 và lập trình ứng dụng giao tiếp phần cứng trên Windows bằng Delphi.
  • Người nghiên cứu và phát triển thiết bị nhúng: Tham khảo phương pháp chuyển mạch đa mức điện áp $V_{pp}$, giản đồ thời gian điều khiển xung nạp $\overline{\text{PGM}}$, cơ chế tạo trễ bằng Timer phần cứng và thuật toán xác thực (Verify) dữ liệu cho các vi mạch nhớ bán dẫn EPROM/EEPROM.

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

1. Tại sao đề tài lại lựa chọn cổng máy in LPT thay vì cổng COM (RS-232) hay cắm card qua khe mở rộng ISA/PCI?

Cổng COM theo chuẩn RS-232 truyền dữ liệu nối tiếp với tốc độ tối đa chỉ 20Kbps, gây mất nhiều thời gian khi nạp các chip EPROM dung lượng lớn (như 27512 - 64KB), đồng thời mức điện áp $\pm 15\text{V}$ của RS-232 không tương thích trực tiếp chuẩn logic TTL (cần thêm IC chuyển đổi như MC1488/MC1489). Ghép nối qua khe cắm ISA/PCI tuy tốc độ cao nhưng đòi hỏi phải mở thùng máy tính để gắn card, bất tiện và phạm vi thao tác bị hạn chế. Cổng song song LPT sử dụng chuẩn tín hiệu TTL (0–5V), truyền đồng thời 8 bit dữ liệu với tốc độ cao, chân cắm ngoài 25 chân thuận tiện và địa chỉ vào/ra trên máy tính cố định (378H), đáp ứng tốt yêu cầu kỹ thuật của mạch nạp.

2. Mạch tạo các mức điện áp lập trình $V_{pp}$ (12.5V, 21V, 25V) như thế nào?

Mạch sử dụng IC ổn áp tuyến tính điều chỉnh được LM317. Bằng cách giữ cố định điện trở $R = 820\Omega$ giữa chân $\text{V}_{\text{out}}$ và chân $\text{ADJ}$, hệ thống sử dụng các relay và transistor được điều khiển bởi AT89C51 để đóng/ngắt các nhánh điện trở phân áp $R_i$ xuống Mass:

  • Khi cần $V_{pp} = 25\text{V}$: sử dụng nhánh điện trở $R_1 = 15.6\text{ k}\Omega$ (biến trở $20\text{ k}\Omega$).
  • Khi cần $V_{pp} = 5\text{V}$: đóng nhánh $R_2$ song song với $R_1$ để có $R_i = 2.46\text{ k}\Omega$.
  • Khi cần $V_{pp} = 12.5\text{V}$: đóng nhánh $R_3$ song song với $R_1$ để có $R_i = 7.38\text{ k}\Omega$.
  • Khi cần $V_{pp} = 21\text{V}$: đóng nhánh $R_4$ song song với $R_1$ để có $R_i = 12.926\text{ k}\Omega$.

3. Vi điều khiển AT89C51 tạo độ trễ 50ms cho xung nạp EPROM bằng cách nào?

AT89C51 sử dụng bộ định thời Timer 0 ở Chế độ 1 (16-bit Timer/Counter) với thạch anh 12MHz (chu kỳ máy là $1\mu\text{s}$). Trong chương trình con DELAY50MS, các thanh ghi được nạp giá trị:

  • TH0 = 3CH và TL0 = 0B0H (tương ứng giá trị $15536_{\text{dec}}$).
  • Khoảng đếm đến khi tràn ($65536 - 15536 = 50000$ chu kỳ máy) tương ứng chính xác $50000\mu\text{s} = 50\text{ms}$.
  • Chương trình bật cờ chạy timer (SETB TR0) và lặp kiểm tra cờ tràn TF0 (JNB TF0, DEL1) trước khi kết thúc xung nạp.

4. Cơ chế kiểm tra và chống lỗi ghi (Verify) của phần mềm trên máy tính hoạt động ra sao?

Sau khi gửi địa chỉ (SendAdd) và byte dữ liệu (SendData) xuống mạch nạp để vi điều khiển phát xung ghi, phần mềm Delphi lập tức gọi thủ tục ReadData để đọc ngược giá trị vừa ghi trong EPROM về thanh ghi trạng thái máy tính. Giá trị đọc về (DRead) được so sánh với byte dữ liệu gốc (Data). Nếu phát hiện sai lệch (Data <> DRead), phần mềm tăng biến đếm Blap thêm 1 và hiển thị số lần thử lại lên giao diện (Try: Blap/10). Nếu sau 10 lần thử liên tiếp vẫn không ghi đúng dữ liệu (Blap >= 10), phần mềm sẽ dừng quá trình nạp và xuất thông báo Eprom hu (EPROM hỏng).


Kết luận

Đồ án tốt nghiệp "Thiết kế và thi công mạch nạp EPROM giao tiếp với cổng LPT" đã hoàn thành toàn diện các mục tiêu nghiên cứu và ứng dụng thực tiễn đề ra sau 8 tuần thực hiện. Công trình đã làm chủ nguyên lý ghép nối cổng song song máy tính, thiết kế thành công phần cứng mạch nạp đa năng dùng vi điều khiển AT89C51 với bộ nguồn đa mức áp chính xác, đồng thời xây dựng giao diện điều khiển trực quan trên môi trường Borland Delphi 6.0. Hệ thống vận hành ổn định, nạp và đọc tin cậy cho các dòng EPROM họ 27xx từ 2716 đến 27512, tạo tiền đề kỹ thuật vững chắc để mở rộng nạp cho các dòng vi điều khiển và tối ưu hóa tốc độ truyền thông trong các giai đoạn phát triển tiếp theo.