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

Trong bối cảnh công nghệ bán dẫn và kỹ thuật vi điện tử phát triển mạnh mẽ, các vi mạch tích hợp quy mô lớn (LSI) và các bộ vi điều khiển dần thay thế linh kiện rời trong các thiết bị dân dụng cũng như hệ thống công nghiệp tự động. Tại các trường đại học và cao đẳng kỹ thuật, vi xử lý và vi điều khiển đã trở thành môn học và chuyên đề cốt lõi. Tuy nhiên, việc giảng dạy thực hành gặp nhiều khó khăn do thời lượng môn học có hạn và trang thiết bị thực hành còn thiếu thốn.

Tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh ở thời điểm năm 2002, bộ thí nghiệm vi điều khiển của nhà trường trang bị vi điều khiển 80535 hoạt động trên nền hệ điều hành DOS. Môi trường này bộc lộ nhiều hạn chế: giao diện dòng lệnh gây khó khăn cho sinh viên trong quá trình soạn thảo và biên dịch chương trình; việc kết nối các module mở rộng tốn nhiều thời gian; sinh viên không thể quan sát trực quan trạng thái tín hiệu khi thiếu thiết bị ngoại vi thực tế.

Để giải quyết các vấn đề trên, đề tài khóa luận "Ứng Dụng Vi Điều Khiển Trong Thiết Kế Hệ Thống Thí Nghiệm" (tên đăng ký: Giao tiếp giữa máy tính và bộ thí nghiệm vi điều khiển 8951) được thực hiện bởi sinh viên Nguyễn Ngọc Hải và Võ Thái Dương, dưới sự hướng dẫn của ThS. Nguyễn Thanh Hải thuộc Khoa Điện - Điện tử (tháng 12/2002).

Mục tiêu và nhiệm vụ nghiên cứu cụ thể bao gồm:

  1. Tính toán, thiết kế và thi công phần cứng bộ KIT thí nghiệm vi điều khiển sử dụng vi điều khiển chính họ 8051 (AT89C51), có khả năng mở rộng không gian nhớ và phối ghép ngoại vi.
  2. Xây dựng cơ chế hoạt động kép: chế độ làm việc độc lập (nhập dữ liệu qua bàn phím ma trận, xuất kết quả ra LED 7 đoạn) và chế độ giao tiếp máy tính qua cổng nối tiếp COM (chuẩn RS-232C).
  3. Thiết kế hệ thống CPU phụ (vi điều khiển 8951 thứ hai) kết hợp mạch chuyển mạch tín hiệu nhằm đọc ngược trạng thái các cổng I/O gửi lên máy tính để mô phỏng hoạt động của các ngoại vi (động cơ bước, LED 7 đoạn, đèn giao thông, 16 LED đơn) và phát tín hiệu xung giả lập.
  4. Phát triển phần mềm giao diện người dùng trên hệ điều hành Windows bằng ngôn ngữ Visual Basic 6.0, tích hợp trình soạn thảo hợp ngữ tiếng Việt, tự động biên dịch sang mã máy và nạp trực tiếp vào bộ nhớ RAM của bộ thí nghiệm.
  5. Đảm bảo tính sư phạm, kích thước nhỏ gọn, thẩm mỹ và độ tin cậy trong môi trường đào tạo thực hành.

Đối tượng nghiên cứu là vi điều khiển họ MCS-51 (AT89C51/8051), các vi mạch bổ trợ (8255A, 74LS138, 74HC573, MAX232, CD4066, ULN2803) và kỹ thuật truyền thông máy tính. Phạm vi nghiên cứu tập trung vào việc thiết kế hệ thống phần cứng và phần mềm phục vụ phòng thí nghiệm vi điều khiển tại Khoa Điện - Điện tử, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh.


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

Đề tài vận dụng tổng hợp các cơ sở lý thuyết về kỹ thuật vi xử lý, kiến trúc máy tính, kỹ thuật xung số và truyền dẫn dữ liệu:

  • Kiến trúc họ vi điều khiển MCS-51: Khảo sát chi tiết bộ xử lý trung tâm 8-bit, không gian nhớ địa chỉ hóa 64KB, hệ thống thanh ghi chức năng đặc biệt (SFR), cơ chế ngắt và bộ định thời/bộ đếm (Timer/Counter 0 và 1).
  • Kỹ thuật ghép nối bộ nhớ và dồn kênh TDM: Phương pháp phân chia theo thời gian (Time Division Multiplexing - TDM) để tách bus địa chỉ byte thấp (A0–A7) và bus dữ liệu (D0–D7) trên Port 0 thông qua tín hiệu điều khiển ALE (Address Latch Enable) và IC chốt 74HC573.
  • Kỹ thuật gối không gian bộ nhớ (Overlapping Memory Space): Kết hợp tín hiệu đọc bộ nhớ chương trình ($\overline{\text{PSEN}}$) và tín hiệu đọc bộ nhớ dữ liệu ($\overline{\text{RD}}$) qua cổng logic AND đưa vào chân cho phép xuất ($\overline{\text{OE}}$) của SRAM 6264, cho phép bộ nhớ RAM vừa đóng vai trò lưu trữ dữ liệu, vừa là bộ nhớ thực thi mã lệnh chương trình từ máy tính tải xuống.
  • Giao tiếp ngoại vi song song lập trình được: Khảo sát cấu trúc phần cứng và tập lệnh điều khiển của IC 8255A (PPI) ở Mode 0 để phục vụ quét phím, quét hiển thị LED và mở rộng các port I/O chuyên dụng.
  • Chuẩn giao tiếp nối tiếp RS-232C: Nguyên lý truyền thông nối tiếp bất đồng bộ (UART), cơ chế đóng khung dữ liệu (Start bit, Data bits, Parity bit, Stop bit), cấu trúc các đường bắt tay tín hiệu và mức logic điện áp ($\pm 5\text{V}$ đến $\pm 15\text{V}$). Kỹ thuật chuyển đổi mức điện áp giữa RS-232C và TTL thông qua IC chuyên dụng MAX232.

Phương pháp nghiên cứu thực nghiệm và thiết kế kỹ thuật được triển khai qua các bước:

  • Phương pháp phân tích - lựa chọn giải pháp: So sánh ưu - nhược điểm giữa cổng song song (LPT), slot card mở rộng cắm trực tiếp trên bo mạch chủ máy tính và cổng nối tiếp COM để chọn phương án tối ưu cho KIT thí nghiệm.
  • Phương pháp tính toán mạch điện tử: Xác định các thông số linh kiện cho mạch dao động thạch anh 12MHz, mạch tích phân RC tạo xung Reset tối thiểu 2 chu kỳ máy ($2\mu\text{s}$), tầng đệm công suất transistor phân cực bão hòa cho 8 LED 7 đoạn và ma trận LED $8 \times 8$ hai màu.
  • Phương pháp phân vùng không gian địa chỉ: Sử dụng IC giải mã 3 sang 8 (74LS138) kết hợp các bit địa chỉ cao A13, A14, A15 để định tuyến tín hiệu chọn chip ($\overline{\text{CS}}$) cho 2 IC EPROM 2764, 2 IC SRAM 6264 và 4 IC ngoại vi 8255A.
  • Phương pháp phát triển phần mềm và kiểm thử vòng lặp: Lập trình firmware điều khiển hệ thống (chương trình Monitor bằng mã hợp ngữ ASM51) kết hợp xây dựng giao diện ứng dụng Windows trên Visual Basic 6.0, áp dụng thuật toán truyền - nhận và kiểm tra đối chiếu byte (echo verify) giữa máy tính và KIT.

Thiết kế và triển khai hệ thống

Hệ thống được thiết kế theo cấu trúc phần cứng module hóa kết hợp phần mềm điều khiển hai cấp (máy tính và bo mạch vi điều khiển).

1. Kiến trúc phần cứng và tổ chức không gian bộ nhớ

Hệ thống sử dụng bộ vi điều khiển chính AT89C51 kết nối bộ nhớ ngoài thông qua việc kéo chân $\overline{\text{EA}}$ xuống mức 0V (GND). Toàn bộ không gian địa chỉ 64KB được quản lý bởi IC giải mã 74LS138 với 3 ngõ vào địa chỉ A13, A14, A15:

Vùng địa chỉ (Hex) Dung lượng Vi mạch phần cứng Chức năng trong hệ thống
0000H - 1FFFH 8 KB EPROM 1 (2764) MONITOR EPROM: Chứa chương trình điều khiển hệ thống, quét phím, hiển thị và nhận nạp dữ liệu
2000H - 3FFFH 8 KB EPROM 2 (2764) USER EPROM: Chứa các chương trình ứng dụng mẫu và demo của người dùng
4000H - 5FFFH 8 KB SRAM 1 (6264) Vùng nhớ RAM thực thi và lưu trữ chương trình nạp từ máy tính xuống
6000H - 7FFFH 8 KB SRAM 2 (6264) Vùng nhớ RAM mở rộng phục vụ dữ liệu và chương trình thử nghiệm
8000H - 9FFFH 8 KB 8255-I IC ngoại vi 1: Quét ma trận bàn phím và điều khiển 8 LED 7 đoạn
A000H - BFFFH 8 KB 8255-II IC ngoại vi 2: Điều khiển hiển thị ma trận LED $8 \times 8$ hai màu (xanh/đỏ)
C000H - DFFFH 8 KB 8255-III IC ngoại vi 3: Các cổng xuất nhập mở rộng Port 4, Port 5
E000H - FFFFH 8 KB 8255-IV IC ngoại vi 4: Cổng xuất nhập mở rộng cho các ứng dụng ngoại vi khác

2. Thiết kế mạch đệm công suất và hiển thị

  • Mạch hiển thị LED 7 đoạn: Gồm 8 LED 7 đoạn dùng chung bus dữ liệu Port A của 8255-I và quét luân phiên bằng Port B theo chu kỳ 16ms (mỗi LED sáng 2ms). Tầng đệm sử dụng transistor PNP công suất trung bình ($\beta = 100, I_{C\text{max}} = 400\text{mA}$), điện trở hạn dòng thanh LED $R = 150\Omega$, điện trở định thiên cực B $R_B = 10\text{k}\Omega$, đảm bảo dòng qua mỗi đoạn LED đạt $35\text{mA} - 50\text{mA}$ khi sụt áp trên LED là 2V.
  • Mạch ma trận LED $8 \times 8$ hai màu: Gồm 16 cột (8 cột đỏ, 8 cột xanh) và 8 hàng. Quét cột chiếm chu kỳ nhiệm vụ 33%, dòng tức thời cực đại qua một cột khi 8 LED cùng sáng lên tới $3,056\text{A}$. Do dòng ngõ ra mức cao của 8255 chỉ đạt $0,2\text{mA}$ (ở $2,4\text{V}$), mạch sử dụng tầng đệm liên hoàn gồm transistor NPN loại C828 ($I_{C\text{max}} = 400\text{mA}, \beta = 100$) kích mở transistor công suất, kết hợp điện trở hạn dòng $R_E = 6,8\Omega$, $R_1 = 100\Omega$, $R_2 = 5\text{k}\Omega$.
  • Khối CPU phụ và mạch chuyển mạch tín hiệu: Sử dụng một vi điều khiển 8951 thứ hai kết nối với IC chuyển mạch tương tự CD4066. Khi người dùng chạy chương trình mô phỏng trên máy tính, vi điều khiển phụ nhận tín hiệu logic từ các Port I/O (Port 4, Port 5) của vi điều khiển chính và chuyển đổi sang dạng nối tiếp truyền lên cổng COM của PC để hiển thị trạng thái giao diện ảo.

3. Thiết kế phần mềm hệ thống

  • Chương trình Monitor (Firmware): Được lưu tại EPROM 1 từ địa chỉ 0000H. Khi khởi động hoặc nhấn Reset, hệ thống đưa con trỏ chương trình PC về 0000H, xóa vùng đệm hiển thị, khởi tạo 4 IC 8255 và chuyển vào vòng lặp quét phím, hiển thị giá trị 0000 trên 4 LED địa chỉ (bên trái). Chương trình xử lý các phím chức năng độc lập:
    • Phím S: Gán địa chỉ quản lý vào con trỏ dữ liệu DPTR.
    • Phím W: Ghi dữ liệu đang hiển thị vào ô nhớ hiện hành và tự động tăng địa chỉ lên 1.
    • Phím Giảm địa chỉ: Giảm giá trị con trỏ DPTR đi 1 đơn vị.
    • Phím P: Hiển thị ký tự PC= trên LED để người dùng nhập địa chỉ cần nhảy đến.
    • Phím G: Thực thi chương trình tại địa chỉ đã nhập (hoặc mặc định chạy từ 4000H trong SRAM nếu không nhập địa chỉ).
    • Phím LOAD: Chuyển sang chương trình con bắt tay với máy tính qua UART để nhận mã máy.
  • Phần mềm Visual Basic 6.0 trên Windows: Cung cấp môi trường đồ họa tích hợp gồm:
    • Trình soạn thảo văn bản với các công cụ cơ bản (New, Copy, Cut, Paste, Undo, Save, Save As) và hỗ trợ viết chú thích bằng tiếng Việt có dấu.
    • Nút chức năng ASSEMBLY: Tự động gọi trình biên dịch dịch file nguồn *.asm sang file danh sách *.lst (để kiểm tra dòng lỗi cú pháp) và file nhị phân *.bin.
    • Nút chức năng LOAD: Đọc file *.bin, truyền từng byte qua cổng COM xuống vi điều khiển chính để lưu vào RAM, sau đó nhận ngược lại toàn bộ file từ RAM để so sánh tính toàn vẹn (echo check).
    • Nút chức năng RUN: Gửi lệnh thực thi kèm 2 byte địa chỉ bắt đầu. Đồng thời, phần mềm tự động nhận dạng dòng chú thích đầu tiên của file nguồn (ví dụ: ;* Led 7 doan*, ;*De buoc*) để kích hoạt giao diện mô phỏng ảo tương ứng trên màn hình máy tính.

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

Chương 1: Dẫn nhập

Chương này trình bày lý do chọn đề tài xuất phát từ nhu cầu thực tiễn trong đào tạo vi điều khiển tại Trường Đại học Sư phạm Kỹ thuật TP.HCM. Tác giả phân tích các hạn chế của bộ KIT 80535 chạy DOS cũ, xác định rõ yêu cầu thiết kế bộ thí nghiệm vi điều khiển mới: cho phép người dùng dễ dàng soạn thảo, sửa đổi, kiểm tra lỗi và chạy thử chương trình; trang bị đầy đủ cổng vào/ra kết nối các module thực hành nhỏ (động cơ bước, LED 7 đoạn, ma trận LED, đèn giao thông); giao diện phần mềm Windows thân thiện, tự động nạp mã xuống RAM và mô phỏng được tín hiệu trên máy tính để khắc phục tình trạng thiếu thiết bị thực hành.

Chương 2: Sơ đồ khối nguyên lý & Phương án lựa chọn

Nội dung chương tập trung phân tích chức năng của 12 khối cấu thành hệ thống: Khối vi điều khiển chính (AT89C51), Khối CPU phụ (8951), Khối chuyển mạch (CD4066), Khối giao tiếp máy tính (UART và đường truyền RS-232), Khối giao tiếp vào ra (4 IC 8255), Khối bộ nhớ (EPROM 2764 và SRAM 6264), Khối đệm, Khối giải mã địa chỉ, Khối reset, Khối dao động (thạch anh 12MHz), Khối bàn phím - hiển thị và Khối nguồn. Tác giả tiến hành so sánh ba phương án kết nối máy tính:

  • Cổng song song LPT (25 chân): Tốc độ nhanh, điều khiển đơn giản nhưng cự ly truyền ngắn (mức TTL) và máy tính chỉ có một cổng máy in.
  • Card giao tiếp cắm khe mở rộng (Slot Card dùng 8255A, địa chỉ 300H-31FH): Đã được nhóm tác giả chế tạo thử nghiệm thành công 3 port xuất nhập song song, tuy nhiên phần cứng cồng kềnh và mức tín hiệu TTL không truyền xa được.
  • Cổng nối tiếp COM (chuẩn RS-232C qua DB9/DB25): Phương án được lựa chọn nhờ khả năng truyền xa, tiết kiệm dây dẫn, linh hoạt thay đổi tốc độ Baud và dễ dàng ghép nối qua vi mạch chuyển đổi mức MAX232.

Chương cũng trình bày nguyên lý dồn kênh địa chỉ/dữ liệu bằng IC chốt 74HC573 qua tín hiệu ALE và cơ chế hoạt động của bộ đếm chương trình PC sau khi nhận xung reset.

Chương 3: Các vi mạch liên quan

Chương 3 khảo sát chi tiết cấu trúc phần cứng, sơ đồ chân, bảng trạng thái logic và nguyên lý hoạt động của các linh kiện sử dụng trong đề tài:

  • IC giải mã địa chỉ 74LS138 (Decoder/Demultiplexer 3 sang 8).
  • IC chốt dữ liệu 8-bit 74HC573 (3 trạng thái ngõ ra điều khiển bởi chân LE và $\overline{\text{OE}}$).
  • IC giao tiếp ngoại vi lập trình được 8255A: Cấu trúc 3 Port (A, B, C), định dạng từ điều khiển cấu hình nhóm A và nhóm B ở Mode 0, phương pháp ghép nối với vi điều khiển theo kiểu bộ nhớ.
  • Bộ nhớ bán dẫn EPROM 2764 (8KB, 13 đường địa chỉ, 8 đường dữ liệu, các chân điều khiển $\overline{\text{CE}}, \overline{\text{OE}}, V_{PP}$) và SRAM 6264 (8KB, thời hằng truy xuất, chân điều khiển $\text{R}/\overline{\text{W}}, \overline{\text{CS}}$).
  • Cấu tạo ma trận LED $8 \times 8$ hai màu (cực Anode chung theo 8 hàng $H_1-H_8$, cực Cathode riêng theo các cột đỏ $K_{1r}-K_{8r}$ và cột xanh $K_{1g}-K_{8g}$).
  • Họ vi điều khiển 8051/8951: Kiến trúc CPU, bộ nhớ nội, 4 Port xuất nhập (Port 0 đến Port 3 với các chức năng chuyển đổi RXD, TXD, $\overline{\text{INT0}}, \overline{\text{INT1}}$, T0, T1), các thanh ghi SFR, cơ chế truyền thông UART qua thanh ghi SCON, SBUF và cờ ngắt TI, RI.
  • Chuẩn giao tiếp RS-232C và vi mạch chuyển mức MAX232.

Chương 4: Sơ đồ nguyên lý & Nguyên tắc hoạt động của mạch

Chương này cung cấp toàn bộ sơ đồ nguyên lý hoàn chỉnh của bộ thí nghiệm và phân tích quy trình vận hành chi tiết:

  • Trình tự làm việc của hệ thống sau khi cấp nguồn: thực thi chương trình Monitor từ 0000H, quét bàn phím và 8 LED 7 đoạn, xử lý phím số qua chương trình convert, chuyển dịch hiển thị từ phải sang trái.
  • Các quy trình thao tác chức năng tại chỗ: Định địa chỉ con trỏ DPTR (phím S), lưu dữ liệu và tăng địa chỉ (phím W), giảm địa chỉ, nhập địa chỉ nhảy PC= (phím P), thực thi chương trình (phím G).
  • Quy trình nạp và thực thi từ xa: Phím LOAD kích hoạt chương trình con tr_nhan bắt tay với máy tính qua cổng COM, nhận từng byte lưu vào SRAM 4000H, sau đó truyền ngược kiểm tra và chuyển sang chế độ chờ lệnh RUN.
  • Cơ chế cách ly công suất bằng vi mạch đệm ULN2803 và transistor cho các tải ngoại vi (động cơ bước, ma trận LED).
  • Cơ chế chuyển mạch kết nối máy tính giữa vi điều khiển chính và vi điều khiển phụ qua IC 4066.

Chương 5: Tính toán thiết kế

Chương 5 trình bày toàn bộ các phép tính toán kỹ thuật cụ thể:

  • Phần cứng: Thiết kế khối giải mã bộ nhớ 64KB sử dụng 74LS138; tính toán mạch tích phân Reset RC cho thạch anh 12MHz; tính chọn điện trở treo Port B của 8255 ($R = 10\text{k}\Omega$ để duy trì mức logic 0 ở dòng $0,4\text{mA}$); tính toán tầng transistor đệm dòng LED 7 đoạn ($R = 150\Omega, R_B = 10\text{k}\Omega$); tính toán chi tiết bộ thúc công suất ma trận LED $8 \times 8$ (dòng tức thời $33,3\text{mA}$ cho 1 LED và $3,056\text{A}$ cho 8 LED; tính chọn transistor C828 với $\beta = 100$, điện trở $R_E = 6,8\Omega$, $R_1 = 100\Omega, R_2 = 5\text{k}\Omega$).
  • Phần mềm: Trình bày lưu đồ thuật toán và mã nguồn hợp ngữ của chương trình quét phím ma trận kết hợp hiển thị 8 LED 7 đoạn qua 8255-I (key_16, col, del); giới thiệu kiến trúc giao diện Visual Basic 6.0, quy trình biên dịch mã nguồn .asm sang .bin/.lst, thuật toán nạp mã xuống RAM qua cổng COM và cơ chế đọc dữ liệu mô phỏng từ CPU phụ.

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

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

  • Thiết kế, thi công hoàn chỉnh phần cứng bộ KIT thí nghiệm vi điều khiển AT89C51 tích hợp đầy đủ hệ thống quản lý bộ nhớ 64KB (16KB EPROM + 16KB SRAM + 32KB không gian I/O).
  • Xây dựng thành công cơ chế gối không gian nhớ giữa tín hiệu $\overline{\text{PSEN}}$ và $\overline{\text{RD}}$, cho phép ghi trực tiếp mã máy vào SRAM 6264 từ máy tính và thực thi chương trình tại chỗ mà không cần tháo chip ROM để xóa nạp bằng tia cực tím.
  • Thiết kế hoàn chỉnh mạch đệm công suất transistor đáp ứng dòng quét hiển thị cho 8 LED 7 đoạn và ma trận LED $8 \times 8$ hai màu hoạt động ổn định ở tần số xung 12MHz.
  • Chế tạo module phụ trợ sử dụng vi điều khiển 8951 thứ hai kết hợp IC chuyển mạch 4066, cho phép thu thập trạng thái logic từ các Port I/O truyền ngược lên máy tính để phục vụ mô phỏng ngoại vi.
  • Xây dựng phần mềm giao diện người dùng trên Windows bằng Visual Basic 6.0, tích hợp công cụ soạn thảo hỗ trợ tiếng Việt có dấu, trình biên dịch tự động và giao thức nạp dữ liệu nối tiếp có kiểm tra lỗi vòng lặp qua cổng COM (MAX232).

2. Đóng góp thực tiễn và tính sư phạm

  • Giải quyết triệt để các nhược điểm của bộ KIT thực tập 80535 chạy DOS cũ tại trường, giúp sinh viên thao tác trực quan, tiết kiệm thời gian soạn thảo, biên dịch và kết nối mạch.
  • Cung cấp giải pháp mô phỏng tín hiệu ngoại vi ảo trên máy tính (động cơ bước, LED 7 đoạn, đèn giao thông, LED đơn), khắc phục tình trạng thiếu thốn thiết bị phần cứng trong phòng thí nghiệm.
  • Bộ thí nghiệm vận hành linh hoạt ở cả hai chế độ: độc lập (thao tác trực tiếp bằng bàn phím và LED 7 đoạn tích hợp) và kết nối máy tính, phục vụ hiệu quả cho việc giảng dạy lý thuyết lẫn thực hành môn học Vi xử lý - Vi điều khiển.

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

Dựa trên phạm vi và nội dung kỹ thuật được công bố trong văn bản khóa luận:

  • Hạn chế:
    • Giao tiếp máy tính dựa trên cổng nối tiếp COM truyền thống với chuẩn RS-232C, tốc độ truyền dữ liệu giới hạn (tốc độ chuẩn thường dùng $\le 20\text{kbps}$), khoảng cách truyền tối đa 15m.
    • Ma trận LED sử dụng module tích hợp hai màu làm tăng giá thành chế tạo bo mạch so với việc sử dụng linh kiện LED đơn rời.
    • Ngôn ngữ lập trình Visual Basic 6.0 tuy có ưu điểm giao diện trực quan và hỗ trợ điều khiển cổng COM sẵn có nhưng tốc độ thực thi chương trình chậm hơn so với các ngôn ngữ cấp thấp/hệ thống như Visual C++ hay Delphi và không hỗ trợ trực tiếp viết xen hợp ngữ Assembler.
  • Hướng phát triển tiếp:
    • Mở rộng thêm các module phần cứng ngoại vi chuyên dụng (cảm biến, bộ biến đổi ADC/DAC, điều khiển động cơ DC/Servo).
    • Tối ưu hóa phần mềm máy tính, tích hợp sâu bộ công cụ gỡ lỗi (debugger) và chạy từng bước (step-by-step) trên giao diện Windows.
    • Nâng cấp chuẩn truyền thông kết nối với máy tính lên các chuẩn mới hơn nhằm tăng tốc độ truyền nhận mã chương trình.

Giá trị tham khảo

Tài liệu khóa luận có giá trị tham khảo hữu ích cho các đối tượng sau:

  • Sinh viên ngành Kỹ thuật Điện tử, Tự động hóa và Kỹ thuật Máy tính: Là tài liệu tham khảo chi tiết về phương pháp thiết kế bo mạch vi điều khiển kinh điển họ 8051, kỹ thuật mở rộng bus địa chỉ/dữ liệu và cách thức ghép nối các IC số chuyên dụng (8255A, 74LS138, 74HC573).
  • Kỹ sư thiết kế phần cứng nhúng: Tham khảo các phép tính toán thiết kế tầng đệm công suất thực tế (mạch phân cực transistor BJT đóng ngắt dòng lớn cho LED ma trận, mạch phối hợp trở kháng và chống dội phím ma trận).
  • Giảng viên và cán bộ phòng thí nghiệm: Cung cấp giải pháp mẫu trong việc xây dựng mô hình thiết bị dạy học tự làm, kết hợp hài hòa giữa bo mạch thực hành phần cứng và giao diện mô phỏng phần mềm trên máy tính.

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

1. Tại sao hệ thống có thể nạp chương trình từ máy tính vào RAM và cho vi điều khiển thực thi trực tiếp từ RAM?
Trong kiến trúc MCS-51 tiêu chuẩn, chân $\overline{\text{PSEN}}$ dùng để đọc bộ nhớ chương trình (ROM) và chân $\overline{\text{RD}}$ dùng để đọc bộ nhớ dữ liệu (RAM). Để SRAM 6264 vừa đóng vai trò bộ nhớ dữ liệu (để máy tính ghi mã máy vào) vừa là bộ nhớ chương trình (để CPU lấy lệnh thực thi), tác giả đã đưa hai tín hiệu $\overline{\text{PSEN}}$ và $\overline{\text{RD}}$ qua một cổng logic AND trước khi kết nối vào chân cho phép xuất $\overline{\text{OE}}$ của SRAM. Nhờ đó, dù vi điều khiển phát tín hiệu đọc lệnh ($\overline{\text{PSEN}} = 0$) hay đọc dữ liệu ($\overline{\text{RD}} = 0$), bộ nhớ RAM đều xuất dữ liệu ra bus.

2. Không gian địa chỉ 64KB của hệ thống được phân chia như thế nào giữa bộ nhớ và ngoại vi?
Không gian 64KB được giải mã bởi IC 74LS138 dựa trên 3 đường địa chỉ A13, A14, A15 thành 8 vùng (mỗi vùng 8KB):

  • 0000H - 1FFFH: EPROM 1 (2764) chứa chương trình Monitor.
  • 2000H - 3FFFH: EPROM 2 (2764) chứa chương trình ứng dụng người dùng.
  • 4000H - 5FFFH: SRAM 1 (6264) lưu và chạy chương trình từ máy tính tải xuống.
  • 6000H - 7FFFH: SRAM 2 (6264) mở rộng.
  • 8000H - FFFFH: 4 vùng địa chỉ 8KB dành cho 4 IC giao tiếp ngoại vi 8255 (quét phím/LED 7 đoạn, ma trận LED $8 \times 8$ và các port I/O mở rộng).

3. Vi điều khiển phụ 8951 và IC 4066 đóng vai trò gì trong hệ thống?
Vi điều khiển phụ 8951 có nhiệm vụ đọc trạng thái logic tại các ngõ ra Port 4 và Port 5 của vi điều khiển chính khi thi hành lệnh, sau đó chuyển đổi dữ liệu thành dạng nối tiếp để truyền ngược lên máy tính phục vụ hiển thị mô phỏng các thiết bị ngoại vi (động cơ bước, LED 7 đoạn, đèn giao thông) và tạo tín hiệu xung giả lập. IC chuyển mạch tương tự CD4066 đóng vai trò chuyển mạch kết nối đường truyền cổng COM của máy tính với vi điều khiển chính (khi nạp chương trình) hoặc với vi điều khiển phụ (khi chạy chế độ mô phỏng).

4. Quá trình quét phím ma trận và hiển thị 8 LED 7 đoạn được phối hợp thực hiện như thế nào trong chương trình Monitor?
Quá trình này do IC 8255-I đảm nhiệm theo phương pháp quét đa hợp: Port A xuất dữ liệu hiển thị (mã 7 đoạn), Port B quét cột và nhận tín hiệu phím (4 bit thấp nhận trạng thái hàng phím, các bit quét cột điều khiển transistor phân cực cho LED). Mỗi LED được kích sáng trong khoảng thời gian $2\text{ms}$ kèm hàm trễ (delay) chống dội phím, tạo thành chu kỳ quét toàn bộ 8 LED trong $16\text{ms}$, giúp mắt người quan sát thấy LED sáng liên tục mà vẫn tiết kiệm điện năng tiêu thụ.


Kết luận

Đồ án tốt nghiệp của sinh viên Nguyễn Ngọc Hải và Võ Thái Dương đã giải quyết trọn vẹn bài toán thiết kế và chế tạo bộ KIT thí nghiệm vi điều khiển AT89C51 có khả năng vận hành độc lập hoặc kết nối máy tính. Bằng việc kết hợp sáng tạo giữa phần cứng mở rộng không gian nhớ 64KB, cơ chế gối bộ nhớ thực thi trên RAM và hệ thống CPU phụ mô phỏng ngoại vi, đề tài đã khắc phục thành công các hạn chế của bộ thực hành môi trường DOS cũ. Phần mềm giao diện Visual Basic 6.0 trên Windows với tính năng soạn thảo tiếng Việt và tự động nạp/kiểm tra mã máy đã nâng cao tính sư phạm và giá trị ứng dụng thực tiễn của thiết bị trong đào tạo kỹ thuật điện tử.