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, ngành kỹ thuật điện tử và vi xử lý đóng vai trò then chốt nhằm nâng cao tính chính xác, gọn nhẹ và tự động hóa trong các hệ thống điều khiển sản xuất. Đối với các hệ thống nhúng dựa trên vi điều khiển họ MCS-51, việc lưu trữ và thực thi các chương trình khởi động hoặc mã lệnh hệ thống đòi hỏi phải sử dụng bộ nhớ chương trình cố định (ROM/EPROM/Flash).

Để khai thác triệt để dung lượng bộ nhớ EPROM/Flash tích hợp sẵn trên chip cũng như đáp ứng yêu cầu nạp chương trình hệ thống độc lập phục vụ giảng dạy, nghiên cứu và ứng dụng thực tế, đề tài "Mạch Đọc EPROM Cho Vi Điều Khiển 8951" (hay Mạch Ghi Đọc EPROM Cho Vi Điều Khiển 8951) được thực hiện bởi sinh viên Bùi Văn Trí (Lớp 95KĐĐ), dưới sự hướng dẫn của thầy 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 TP. Hồ Chí Minh.

Đề tài đặt ra các mục tiêu và nhiệm vụ nghiên cứu cụ thể:

  1. Nghiên cứu cấu trúc phần cứng, tổ chức bộ nhớ và tập lệnh hợp ngữ (Assembly) của vi điều khiển 8951 (đặc biệt là vi điều khiển Atmel AT89C51 tương thích chuẩn MCS-51).
  2. Thiết kế và chế tạo mạch phần cứng nạp, đọc và xóa bộ nhớ EPROM/Flash nội của vi điều khiển 8951 thông qua khối giao tiếp vào/ra và khối quét phím - hiển thị.
  3. Xây dựng các module chương trình hệ thống (viết bằng hợp ngữ ASM51) phục vụ điều khiển quá trình ghi, đọc, xóa, giải mã và hiển thị dữ liệu địa chỉ.
  4. Đảm bảo các yêu cầu kỹ thuật: Mạch hoạt động chính xác (dữ liệu ghi/đọc đúng từng byte, quá trình xóa phải trả toàn bộ ô nhớ về trạng thái FFH), kết cấu phần cứng gọn nhẹ, quy trình kiểm soát và vận hành theo trình tự logic chặt chẽ.

Đối tượng nghiên cứu trọng tâm là vi điều khiển họ MCS-51 (tiêu biểu là AT89C51), các vi mạch ngoại vi chuyên dụng (IC ghép nối song song 8255, IC điều khiển quét phím và hiển thị 8279, IC giải mã địa chỉ 74HC138, IC chốt 74HC373) và bộ nhớ bán dẫn. Thời gian thực hiện đồ án diễn ra trong 7 tuần, hoàn thành vào tháng 02/2000.


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

Đồ án xây dựng dựa trên nền tảng kiến trúc máy tính Harvard của họ vi điều khiển MCS-51 do Intel phát triển và dòng vi điều khiển có bộ nhớ Flash lập trình lại của Atmel (AT89C51).

Cơ sở lý thuyết về phần cứng và vi điều khiển

  • Vi điều khiển AT89C51/8951: Cấu trúc 8-bit, 40 chân, tích hợp 4 KB Flash ROM/EPROM bên trong (với độ bền 1.000 chu kỳ ghi/xóa), 128 Byte RAM nội, 32 đường xuất nhập (chia làm 4 cổng Port 0 đến Port 3), 2 bộ định thời/bộ đếm 16-bit (Timer 0 và Timer 1), hệ thống 5 vector ngắt 2 mức ưu tiên, và cổng giao tiếp nối tiếp UART song công.
  • Tổ chức bộ nhớ và phân chia không gian địa chỉ:
    • Không gian mã lệnh (Code Memory) và không gian dữ liệu (Data Memory) tách biệt hoàn toàn, dung lượng mở rộng tối đa 64 KB cho mỗi vùng.
    • Bộ nhớ RAM nội 128 Byte (địa chỉ 00H - 7FH) được phân chia thành: 4 bank thanh ghi (00H - 1FH), vùng RAM định vị theo từng bit (20H - 2FH, tương đương 128 bit địa chỉ hóa độc lập), và vùng RAM đa dụng (30H - 7FH).
    • Khối 21 thanh ghi chức năng đặc biệt (SFR) nằm trong không gian địa chỉ 80H - FFH, bao gồm: Thanh ghi tích lũy (ACC - E0H), Thanh ghi B (F0H), Từ trạng thái chương trình (PSW - D0H), Con trỏ ngăn xếp (SP - 81H), Con trỏ dữ liệu (DPTR gồm DPL 82H và DPH 83H), các thanh ghi điều khiển cổng (P0, P1, P2, P3), thanh ghi quản lý định thời (TMOD 89H, TCON 88H, TL0, TH0, TL1, TH1), thanh ghi điều khiển nối tiếp (SCON 98H, SBUF 99H) và thanh ghi điều khiển nguồn (PCON 87H).
  • Các vi mạch phụ trợ:
    • IC 8255 (Programmable Peripheral Interface): Vi mạch lập trình ghép nối song song đa dụng, đóng vai trò tạo các bus địa chỉ, bus dữ liệu và tín hiệu điều khiển trung gian giữa vi điều khiển chủ và chip AT89C51 cần nạp.
    • IC 8279 (Programmable Keyboard/Display Interface): Vi mạch chuyên dụng quản lý quét bàn phím ma trận và điều khiển hiển thị LED 7 đoạn, giúp giảm tải chu kỳ xử lý cho CPU thông qua bộ nhớ FIFO phím ấn (8 byte) và RAM hiển thị (16 byte).
    • IC 74HC373 và 74HC138: Thực hiện chốt bus địa chỉ byte thấp (tách bus ghép kênh dữ liệu/địa chỉ Port 0 dưới sự điều khiển của xung ALE) và giải mã chọn chip (CS\).

Phương pháp nghiên cứu và công cụ thực hiện

  • Phương pháp phân tích - thiết kế hệ thống phần cứng: Tính toán ghép nối bus, phân bổ bản đồ địa chỉ ngoại vi, thiết kế mạch tạo xung lập trình và chuyển đổi mức điện áp nạp ($V_{pp} = 5\text{V}$ hoặc $12\text{V}$).
  • Phương pháp lập trình nhúng: Sử dụng trình biên dịch hợp ngữ chuẩn ASM51 của Intel để phát triển các module điều khiển theo 2 giai đoạn biên dịch (Pass 1 xây dựng bảng ký hiệu Symbol Table, Pass 2 tạo mã máy Object File và danh sách định vị Listing File).
  • Phương pháp chế tạo thực nghiệm: Ứng dụng phần mềm EAGLE để thiết kế bản vẽ mạch in (PCB), tiến hành ăn mòn, khoan mạch, hàn lắp linh kiện và ghép nối thực tế với kit vi điều khiển 8951 qua đầu nối chuyên dụng (connector).

Thiết kế và triển khai

Hệ thống được thiết kế theo cấu trúc module phân cấp, bao gồm khối xử lý trung tâm (Kit 8951), khối giao tiếp trung gian (8255), khối nạp/đọc/xóa chip mục tiêu (Socket ZIF cho AT89C51), và khối giao tiếp người dùng (8279 kết hợp ma trận phím và LED 7 đoạn).

+-------------------------------------------------------------+
|                     KIT VI ĐIỀU KHIỂN 8951                  |
+-------------------------------------------------------------+
         |                                           |
         | (Bus Dữ liệu / Địa chỉ / Điều khiển)      |
         v                                           v
+------------------+                       +------------------+
|     IC 8255      |                       |     IC 8279      |
| (Giao tiếp I/O)  |                       | (Quét phím &     |
+------------------+                       |  Hiển thị LED)   |
         |                                 +------------------+
         |                                           |
         v                                           v
+-----------------------+                  +------------------+
|  SOCKET NẠP/ĐỌC/XÓA   |                  | BÀN PHÍM & KHỐI  |
|  VI ĐIỀU KHIỂN AT89C51|                  | LED HIỂN THỊ     |
+-----------------------+                  +------------------+

Kiến trúc phần cứng và bảng chế độ điều khiển lập trình

Quá trình nạp, đọc và xóa bộ nhớ Flash nội của vi điều khiển AT89C51 được thực hiện bằng cách áp đặt tổ hợp các mức logic và xung điều khiển lên các chân tương ứng của vi điều khiển mục tiêu:

Chế độ hoạt động $V_{cc}$ RST $\overline{\text{PSEN}}$ $\text{ALE}/\overline{\text{PROG}}$ $\overline{\text{EA}}/V_{pp}$ P2.6 P2.7 P3.6 P3.7 Dữ liệu/Địa chỉ
Ghi mã lệnh (Write Code) $5\text{V}$ H L Xung $\text{L} \rightarrow \text{H}$ $12\text{V} / 5\text{V}$ L H H H P1 = Địa chỉ thấp, P2.0-P2.3 = Địa chỉ cao, P0 = Data In
Đọc mã lệnh (Read Code) $5\text{V}$ H L H H L L H H P1 = Địa chỉ thấp, P2.0-P2.3 = Địa chỉ cao, P0 = Data Out
Xóa chip (Chip Erase) $5\text{V}$ H L Xung L ($10\text{ms}$) $12\text{V}$ L L L L Xóa toàn bộ bộ nhớ về FFH
Đọc Signature Bytes $5\text{V}$ H L H H L L L L Địa chỉ 030H, 031H, 032H trên P1

Thuật toán và phần mềm điều khiển

1. Đọc mã nhận dạng (Signature Bytes)

Trước khi thực hiện chu trình nạp, hệ thống tiến hành đọc 3 byte định danh tại các ô nhớ 030H, 031H, 032H để xác định nhà sản xuất và cấp điện áp lập trình phù hợp:

  • 030H = 1EH: Mã nhà sản xuất Atmel.
  • 031H = 51H: Mã dòng chip AT89C51.
  • 032H = FFH: Điện áp lập trình yêu cầu $V_{pp} = 12\text{V}$.
  • 032H = 05H: Điện áp lập trình yêu cầu $V_{pp} = 5\text{V}$.

2. Thuật toán xóa Flash ROM (Chip Erase)

  • Khởi tạo 8255 (ghi từ điều khiển 80H vào thanh ghi CW để cấu hình tất cả các Port A, B, C ở chế độ xuất).
  • Xuất các mức tín hiệu điều khiển logic: $\text{P2.6} = 0$, $\text{P2.7} = 0$, $\text{P3.6} = 0$, $\text{P3.7} = 0$.
  • Đóng rơle/khóa điện tử để nâng điện áp chân $\overline{\text{EA}}/V_{pp}$ lên $12\text{V}$.
  • Tạo xung mức thấp tại chân $\text{ALE}/\overline{\text{PROG}}$ với độ rộng xung tối thiểu $10\text{ms}$.
  • Hạ $V_{pp}$ về mức $5\text{V}$, xuất thông báo hoàn thành (hiển thị chuỗi chữ END lên LED 7 đoạn qua IC 8279).

3. Thuật toán nạp dữ liệu (Program/Write Code)

  • Khởi tạo 8255 và nạp địa chỉ bắt đầu/kết thúc từ RAM ngoài vào các ô nhớ tạm.
  • Chuyển địa chỉ cần nạp ra Port 1 và Port 2 (thông qua Port A và Port B của 8255).
  • Lấy byte dữ liệu từ RAM nguồn và xuất ra Port 0 của vi điều khiển mục tiêu.
  • Thiết lập các tín hiệu điều khiển ($\text{P2.6} = 0$, $\text{P2.7} = 1$, $\text{P3.6} = 1$, $\text{P3.7} = 1$), kích hoạt $V_{pp} = 12\text{V}$ (hoặc $5\text{V}$).
  • Phát xung âm tại chân $\text{ALE}/\overline{\text{PROG}}$ (thời gian trễ chuẩn $100\mu\text{s}$, chu kỳ ghi 1 byte không vượt quá $1.5\text{ms}$).
  • Tăng con trỏ địa chỉ, lặp lại cho đến khi hoàn tất vùng dữ liệu, sau đó hiển thị ký tự END.

4. Thuật toán đọc và kiểm tra dữ liệu (Read & Verify)

  • Đưa địa chỉ ô nhớ cần đọc ra các cổng điều khiển.
  • Kích hoạt chế độ đọc ($\text{P2.6} = 0$, $\text{P2.7} = 0$, $\text{P3.6} = 1$, $\text{P3.7} = 1$).
  • Đọc dữ liệu trả về trên Port 0 vào thanh ghi A.
  • Gọi chương trình con decode để tách byte thành các nibble 4-bit và tra bảng mã 7 đoạn, sau đó gọi display để gửi sang 8279 hiển thị địa chỉ và dữ liệu tương ứng. Chờ tín hiệu quét phím (key) để chuyển sang byte kế tiếp.

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

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

Chương này trình bày tổng quan về xu thế phát triển của ngành điện tử và kỹ thuật vi xử lý trong thời kỳ công nghiệp hóa, hiện đại hóa. Tác giả chỉ ra tính cấp thiết của việc xây dựng mạch nạp và đọc bộ nhớ EPROM/Flash tích hợp trong vi điều khiển họ 8051. Mục tiêu và các yêu cầu kỹ thuật về độ chính xác, tính ổn định, thao tác vận hành và thiết kế phần cứng nhỏ gọn của hệ thống được xác định chi tiết.

Chương II: Khảo sát vi điều khiển 8951

Chương II tập trung nghiên cứu toàn diện cấu trúc phần cứng và tập lệnh của họ vi điều khiển MSC-51:

  • Cấu tạo phần cứng: Phân tích sơ đồ 40 chân, nguyên lý hoạt động kép của Port 0 (bus ghép kênh dữ liệu/địa chỉ thấp $AD_0 - AD_7$), Port 2 (byte địa chỉ cao $A_8 - A_{15}$), Port 3 (các chức năng đặc biệt: $RXD$, $TXD$, $\overline{INT0}$, $\overline{INT1}$, $T_0$, $T_1$, $\overline{WR}$, $\overline{RD}$) và Port 1 (cổng xuất/nhập chuẩn). Phân tích chi tiết các chân điều khiển hệ thống: $\overline{PSEN}$, $\text{ALE}$, $\overline{EA}/V_{pp}$ và $\text{RST}$.
  • Tổ chức bộ nhớ: Làm rõ kiến trúc Harvard với không gian bộ nhớ mã lệnh và dữ liệu riêng biệt. Mô tả chi tiết bản đồ RAM nội 128 Byte, không gian định vị bit (20H - 2FH), 4 bank thanh ghi và cấu trúc từ trạng thái chương trình PSW.
  • Tập lệnh và chế độ định vị: Phân tích 8 chế độ định vị dữ liệu (thanh ghi, trực tiếp, gián tiếp, tức thời, tương đối, tuyệt đối, dài, chỉ số) cùng 5 nhóm lệnh thao tác (số học, logic, rẽ nhánh, dịch chuyển dữ liệu, xử lý bit Boolean).
  • Hợp ngữ và trình biên dịch ASM51: Trình bày quy tắc biên dịch 2 Pass của ASM51, cấu trúc một dòng lệnh (Nhãn - Thuật nhớ - Toán hạng - Chú thích), và các chỉ thị định cấu trúc bộ nhớ (ORG, END, EQU, USING, SEGMENT, DS, DB, DW, DBIT).

Chương III: Khảo sát vi mạch 8279

Chương III trình bày cấu tạo và nguyên lý giao tiếp của IC điều khiển quét phím và hiển thị 8279:

  • Cấu trúc phần cứng: Sơ đồ ghép nối 8279 với vi điều khiển qua bus dữ liệu $DB_0 - DB_7$, đường địa chỉ $A_0$ ($A_0 = 0$ truyền dữ liệu hiển thị, $A_0 = 1$ truyền mã lệnh/trạng thái), các tín hiệu điều khiển $\overline{RD}$, $\overline{WR}$, $\overline{CS}$, $\text{RESET}$, xung nhịp $\text{CLK}$, ngắt $\text{IRQ}$, các đường quét $SL_0 - SL_3$, đường phản hồi bàn phím $RL_0 - RL_7$, và các đường xuất dữ liệu hiển thị $OUT\ A_0 - A_3$, $OUT\ B_0 - B_3$.
  • Cấu trúc tập lệnh điều khiển: Phân tích các lệnh thiết lập chế độ hiển thị và quét phím (Keyboard/Display Mode Set), lệnh chia tần số xung clock (Program Clock để đưa xung nhịp về tần số làm việc chuẩn $100\text{kHz}$), lệnh đọc/ghi bộ nhớ FIFO RAM (8 byte) và Display RAM (16 byte), lệnh xóa ngắt End Interrupt.

Chương IV: Giới thiệu kit vi điều khiển 8951

Chương IV mô tả tổng quan về kit phát triển 8951 được sử dụng làm khối điều khiển trung tâm trong đề tài: sơ đồ khối chức năng, đơn vị xử lý trung tâm (CPU 8951), không gian bộ nhớ mở rộng (EPROM 2764 dung lượng 8 KB, RAM 6264 dung lượng 8 KB) và các mạch giải mã địa chỉ tương ứng.

Thiết kế phần mềm và Thi công mạch (Chương V & VI)

  • Thiết kế phần mềm: Xây dựng thuật toán và mã nguồn hợp ngữ cho các tác vụ: khởi tạo vi mạch 8255 (nạp từ điều khiển 80H), chương trình đọc chữ ký nhận dạng Signature (1EH, 51H, FFH/05H), chương trình nạp từng byte kèm tạo trễ xung $\text{ALE}/\overline{\text{PROG}}$, chương trình xóa toàn bộ chip ($10\text{ms}$ xung mức thấp), chương trình giải mã hiển thị LED 7 đoạn và chương trình con quét bàn phím.
  • Thi công phần cứng: Quy trình thiết kế layout mạch in bằng phần mềm EAGLE, gia công mạch in, lắp ráp, hàn linh kiện, kết nối mạch nạp với kit 8951 qua cáp nối (connector), kiểm tra thông mạch và nạp chạy thử nghiệm thực tế.

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

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

  1. Hoàn thiện hệ thống phần cứng: Thiết kế và thi công thành công bo mạch đọc/nạp/xóa EPROM cho vi điều khiển họ MCS-51, tích hợp đầy đủ mạch cấp nguồn, mạch tạo mức điện áp nạp $12\text{V}/5\text{V}$, khối đệm giao tiếp 8255 và mạch kết nối kit 8951.
  2. Xây dựng bộ chương trình điều khiển hoàn chỉnh: Phát triển toàn bộ mã nguồn hợp ngữ (ASM51) thực thi các tác vụ:
    • Đọc chính xác nội dung bộ nhớ Flash nội của AT89C51 và xuất ra khối hiển thị.
    • Nạp thành công từng byte dữ liệu từ bộ nhớ đệm ngoài vào bộ nhớ Flash nội với thời gian ghi thỏa mãn yêu cầu kỹ thuật ($< 1.5\text{ms}/\text{byte}$).
    • Xóa hoàn toàn vùng nhớ Flash nội về giá trị FFH thông qua xung kích $10\text{ms}$ ở điện áp $V_{pp} = 12\text{V}$.
    • Nhận dạng đúng mã Signature của chip Atmel (1EH - 51H - FFH/05H).
  3. Hiển thị và kiểm soát trực quan: Tích hợp giao tiếp bàn phím và LED 7 đoạn qua IC 8279, cho phép người dùng quan sát trực tiếp địa chỉ và mã dữ liệu trong quá trình nạp/đọc, cũng như thông báo kết thúc chu trình bằng chữ END.

Đóng góp thực tiễn

  • Đồ án cung cấp một tài liệu kỹ thuật chi tiết về quy trình điều khiển và giải thuật nạp xung cho dòng vi điều khiển AT89C51 tại thời điểm năm 2000.
  • Tạo ra một công cụ phần cứng phục vụ học tập, hỗ trợ sinh viên ngành Điện tử tự nạp và kiểm tra các chương trình điều khiển vào chip vi điều khiển mà không cần trang bị các bộ nạp thương mại đắt tiền.

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

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

  • Hệ thống mới chỉ tập trung hỗ trợ nạp cho dòng vi điều khiển 40 chân chuẩn (AT89C51).
  • Mạch phần cứng vẫn phải phụ thuộc vào Kit vi điều khiển 8951 trung tâm và IC ghép nối trung gian 8255, khiến kích thước mạch còn cồng kềnh và chi phí linh kiện chưa tối ưu.
  • Quá trình nạp dữ liệu dựa trên việc đọc dữ liệu có sẵn từ bộ nhớ ngoài của kit, chưa có kết nối trực tiếp với máy vi tính để nạp file mã máy (.HEX hoặc .BIN) trực tiếp từ môi trường biên dịch.

Hướng phát triển đề tài (theo tác giả)

  1. Mở rộng chủng loại vi điều khiển: Nâng cấp phần cứng và phần mềm để hỗ trợ ghi/đọc cho toàn bộ họ AT89 của Atmel, bao gồm các dòng vi điều khiển 40 chân dung lượng lớn hơn hoặc điện áp thấp (AT89C52, AT89LV51, AT89LV52) và các dòng vi điều khiển cỡ nhỏ 20 chân (AT89C1051, AT89C2051).
  2. Tối ưu hóa kiến trúc mạch: Kết nối trực tiếp vi điều khiển chủ với vi điều khiển mục tiêu (bỏ qua IC trung gian 8255) nhằm giảm thiểu linh kiện, hạ giá thành và nâng cao tính kinh tế của sản phẩm.
  3. Phát triển giao tiếp máy tính: Thiết kế card nạp giao tiếp trực tiếp với máy vi tính thông qua cổng nối tiếp (cổng COM / RS232), đồng thời xây dựng phần mềm điều khiển trên máy tính bằng ngôn ngữ bậc cao (như C hoặc Turbo Pascal) để quản lý quá trình nạp file thuận tiện và chuyên nghiệp hơn.

Giá trị tham khảo

Tài liệu đồ án mang lại giá trị tham khảo thiết thực cho sinh viên và cán bộ kỹ thuật thuộc các chuyên ngành Kỹ thuật Điện tử, Cơ điện tử, Kỹ thuật Điều khiển và Tự động hóa:

  • Khảo sát vi điều khiển MCS-51: Cung cấp tài liệu tổng hợp đầy đủ về cấu trúc thanh ghi SFR, tổ chức bộ nhớ, tập lệnh hợp ngữ và chế độ định vị của dòng vi điều khiển kinh điển 8051/8951.
  • Kỹ thuật ghép nối ngoại vi: Cung cấp phương pháp ghép nối chi tiết vi điều khiển với các vi mạch ngoại vi kinh điển như 8255 (mở rộng I/O), 8279 (quản lý quét phím/hiển thị), 74HC138 (giải mã địa chỉ) và 74HC373 (chốt bus địa chỉ).
  • Thiết kế mạch nạp chuyên dụng: Cung cấp giản đồ thời gian, yêu cầu xung áp lập trình ($V_{pp}$, $\text{ALE}/\overline{\text{PROG}}$) và lưu đồ thuật toán chi tiết cho các thao tác nạp, đọc, xóa bộ nhớ Flash nội trên vi điều khiển.

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

1. Mạch nạp trong đồ án hỗ trợ những mức điện áp lập trình ($V_{pp}$) nào và làm thế nào để xác định mức điện áp cần cấp cho chip?
Mạch hỗ trợ hai mức điện áp lập trình là $12\text{V}$ và $5\text{V}$. Để xác định mức điện áp thích hợp, hệ thống thực hiện đọc 3 byte nhận dạng (Signature bytes) tại các địa chỉ 030H, 031H, 032H. Nếu byte tại ô nhớ 032H là FFH, vi điều khiển yêu cầu mức áp lập trình $V_{pp} = 12\text{V}$; nếu là 05H, vi điều khiển sử dụng mức áp $V_{pp} = 5\text{V}$. Ngoài ra, người dùng có thể quan sát nhãn in trên lưng chip (top-side marking, ví dụ đuôi -5 tương ứng với loại nạp $5\text{V}$).

2. Điều kiện kỹ thuật và thời gian xung để thực hiện thao tác xóa toàn bộ bộ nhớ (Chip Erase) trên AT89C51 là gì?
Để xóa toàn bộ nội dung bộ nhớ Flash nội về giá trị FFH, chân $\text{RST}$ phải ở mức cao, chân $\overline{\text{PSEN}}$ ở mức thấp, các chân điều khiển $\text{P2.6}$, $\text{P2.7}$, $\text{P3.6}$, $\text{P3.7}$ đều được đặt về mức logic 0 (Low), chân $\overline{\text{EA}}/V_{pp}$ được cấp điện áp $12\text{V}$, đồng thời chân $\text{ALE}/\overline{\text{PROG}}$ phải nhận một xung kích mức thấp kéo dài liên tục tối thiểu $10\text{ms}$.

3. Vai trò của vi mạch 8279 trong cấu trúc hệ thống của đề tài là gì?
IC 8279 đóng vai trò là khối vi mạch ghép nối chuyên dụng quản lý bàn phím ma trận và hiển thị LED 7 đoạn. Nhờ có 8 byte RAM FIFO lưu trữ mã phím ấn và 16 byte Display RAM lưu dữ liệu hiển thị, 8279 tự động hóa hoàn toàn quá trình quét phím, chống rung phím và làm tươi màn hình hiển thị LED, giúp vi điều khiển trung tâm 8951 không phải tốn thời gian thực thi các vòng lặp quét phím và hiển thị.

4. Tại sao trên vi điều khiển 8951 cần sử dụng IC chốt 74HC373 khi truy xuất bộ nhớ ngoài?
Do các chân của Port 0 trên vi điều khiển 8951 đảm nhận chức năng kép: vừa là bus dữ liệu 8-bit ($D_0 - D_7$), vừa là byte thấp của bus địa chỉ ($A_0 - A_7$) theo cơ chế đa hợp phân chia thời gian. Tín hiệu $\text{ALE}$ (Address Latch Enable) phát ra xung điều khiển cho phép IC chốt 74HC373 chốt giữ byte địa chỉ thấp khi Port 0 phát địa chỉ, giải phóng Port 0 để làm nhiệm vụ truyền nhận dữ liệu ngay sau đó.

5. Trong chương trình nạp dữ liệu cho EPROM, các thông số thời gian ghi 1 byte được quy định như thế nào?
Khi phát dữ liệu và địa chỉ cần nạp, chân $\text{ALE}/\overline{\text{PROG}}$ được kích hoạt một xung âm với thời gian trễ chuẩn là $100\mu\text{s}$. Theo đặc tính nạp của chip AT89C51, chu kỳ ghi hoàn tất một byte dữ liệu được vi mạch tự định thời (self-timed) và diễn ra trong khoảng thời gian không quá $1.5\text{ms}$.


Kết luận

Đồ án tốt nghiệp "Nghiên Cứu Về Vi Điều Khiển 8951 và Ứng Dụng EPROM" của tác giả Bùi Văn Trí đã giải quyết trọn vẹn mục tiêu thiết kế và thi công hệ thống phần cứng - phần mềm phục vụ đọc, ghi và xóa bộ nhớ Flash nội cho vi điều khiển AT89C51. Bằng việc kết hợp vi điều khiển MCS-51 với các vi mạch ghép nối chuyên dụng 8255 và 8279, hệ thống vận hành chính xác theo đúng giản đồ thời gian và thông số kỹ thuật của nhà sản xuất Atmel. Công trình là tài liệu kỹ thuật có giá trị tham khảo cao về kiến trúc vi xử lý, kỹ thuật ghép nối ngoại vi và lập trình hợp ngữ nhúng.