Tổng quan về giáo trình

Giáo trình "Họ vi điều khiển 80C51" do tác giả Đặng Hữu Phúc biên soạn tại Trường Đại học Trà Vinh là tài liệu học tập phục vụ khối kiến thức chuyên ngành và cơ sở ngành thuộc các chương trình đào tạo Kỹ thuật Điện - Điện tử, Kỹ thuật Điều khiển và Tự động hóa, Cơ điện tử và Kỹ thuật Máy tính. Về vị trí trong khung chương trình, môn học Vi điều khiển đóng vai trò cầu nối trung gian giữa khối kiến thức phần cứng số (Kỹ thuật số, Kiến trúc máy tính) và khối kiến thức lập trình điều khiển hệ thống nhúng.

Mục tiêu học tập của giáo trình tập trung vào việc trang bị cho người học:

  • Hiểu rõ cấu trúc phần cứng, sơ đồ khối chức năng và nguyên lý hoạt động của dòng vi điều khiển 8-bit họ MSC-51 (tiêu biểu là 89C51 / 8051 / AT89C51).
  • Nắm vững cấu trúc tổ chức bộ nhớ Harvard, cơ chế quản lý các thanh ghi chức năng đặc biệt (SFR), không gian định vị bit và byte.
  • Làm chủ kỹ thuật định cấu hình các khối ngoại vi tích hợp sẵn trên chip bao gồm: bộ định thời/bộ đếm (Timer/Counter 0 và 1), cổng truyền thông nối tiếp dị bộ (UART) và hệ thống ngắt 5 nguồn.
  • Thành thạo tập lệnh hợp ngữ Assembly và 8 chế độ định địa chỉ để xây dựng các thuật toán điều khiển logic, số học và định thời.
  • Thiết kế mạch ghép nối phần cứng mở rộng không gian bộ nhớ mã lệnh/dữ liệu ngoài (sử dụng IC chốt 74HC373, IC giải mã địa chỉ 74HC138) và giao tiếp với vi mạch ngoại vi lập trình được 8255A.

Cấu trúc tài liệu tiếp cận từ phần cứng chi tiết mức cổng/chân vi mạch, giải tích bản đồ bộ nhớ, nguyên lý hoạt động của các khối chức năng nội, sau đó mở rộng sang tập lệnh điều khiển và kỹ thuật thiết kế ghép nối vi mạch mở rộng.


Nội dung kiến thức cốt lõi

Các chương/chủ đề chính

Nội dung tài liệu được cấu trúc thành các chủ đề kỹ thuật trọng tâm:

  • Chương I: Giới thiệu về Vi điều khiển 89C51:

    • Cấu trúc phần cứng họ MSC-51: Phân tích các thông số kỹ thuật tiêu chuẩn gồm bộ nhớ 8 KB EPROM/Flash, 128 Byte RAM nội, 4 cổng xuất/nhập I/O 8-bit (P0, P1, P2, P3), khả năng quản lý 64 KB bộ nhớ mã ngoài và 64 KB bộ nhớ dữ liệu ngoài, 210 vị trí nhớ định vị bit, tốc độ thực thi phép nhân/chia 4 µs tại tần số thạch anh 12 MHz.
    • Khảo sát sơ đồ chân và chức năng 40 chân PDIP: Phân loại 24 chân tác dụng kép; chức năng đa hợp bus dữ liệu/địa chỉ (D0–D7 / A0–A7) trên Port 0; Port 1 thuần I/O; Port 2 quản lý byte cao bus địa chỉ (A8–A15); Port 3 tích hợp các đường chức năng phụ (RXD, TXD, $\overline{\text{INT0}}$, $\overline{\text{INT1}}$, T0, T1, $\overline{\text{WR}}$, $\overline{\text{RD}}$). Các chân điều khiển hệ thống gồm $\overline{\text{PSEN}}$ (chân 29 - cho phép đọc bộ nhớ chương trình ngoài), ALE/$\overline{\text{PROG}}$ (chân 30 - chốt địa chỉ byte thấp và xung tạo clock), $\overline{\text{EA}}$/VPP (chân 31 - chọn truy xuất bộ nhớ nội/ngoại), RST (chân 9 - ngõ vào reset hệ thống tích cực mức cao ít nhất 2 chu kỳ máy), ngõ dao động X1, X2 (kết nối thạch anh 12 MHz) và nguồn VCC (+5V, chân 40), GND (chân 20).
    • Tổ chức bộ nhớ và thanh ghi chức năng đặc biệt (SFR): Cấu trúc Harvard phân lập không gian Code và Data. Bản đồ RAM nội 128 byte (00H–7FH) gồm 4 Bank thanh ghi R0–R7 (00H–1FH), vùng RAM định địa chỉ bit (20H–2FH với 128 bit từ 00H đến 7FH), vùng RAM đa dụng (30H–7FH). Khối SFR (80H–FFH) chứa 21 thanh ghi: PSW (D0H), ACC/A (E0H), B (F0H), SP (81H, mặc định là 07H), DPTR (DPL 82H, DPH 83H), P0–P3, TMOD (89H), TCON (88H), TL0/TH0 (8AH/8CH), TL1/TH1 (8BH/8DH), SBUF (99H), SCON (98H), IE (A8H), IP (B8H), PCON (87H).
    • Mở rộng bộ nhớ ngoài: Kỹ thuật ghép nối bộ nhớ mã lệnh EPROM và bộ nhớ dữ liệu RAM ngoài thông qua IC chốt 74HC373 điều khiển bởi chân ALE, mạch giải mã địa chỉ chọn chip dùng IC 74HC138. Kỹ thuật chồng lấn không gian nhớ mã và dữ liệu (overlapping external code and data space) bằng cổng logic AND nối $\overline{\text{PSEN}}$ và $\overline{\text{RD}}$ vào ngõ $\overline{\text{OE}}$ của RAM.
    • Hoạt động khối Timer/Counter: Hai bộ định thời 16-bit Timer 0 và Timer 1 hoạt động theo 4 chế độ qua điều khiển của TMOD và TCON: Mode 0 (13-bit), Mode 1 (16-bit), Mode 2 (Tự động nạp lại 8-bit), Mode 3 (Bộ định thời tách đôi TL0/TH0 cho Timer 0, Timer 1 dừng hoặc tạo tốc độ baud). Nguồn xung đếm nội ($f_{\text{osc}}/12 = 1\text{ MHz}$) hoặc đếm sự kiện ngoại qua chân T0 (P3.4) và T1 (P3.5) tần số tối đa 500 kHz.
    • Cổng truyền thông nối tiếp (UART): Hoạt động song công (Full-duplex) qua hai thanh ghi SBUF và SCON với 4 chế độ: Chế độ 0 (Thanh ghi dịch 8-bit, tốc độ $f_{\text{osc}}/12$), Chế độ 1 (UART 8-bit với tốc độ baud thay đổi theo Timer 1), Chế độ 2 (UART 9-bit, tốc độ cố định $f_{\text{osc}}/32$ hoặc $f_{\text{osc}}/64$ theo bit SMOD của PCON), Chế độ 3 (UART 9-bit với tốc độ baud thay đổi theo Timer 1).
    • Hệ thống ngắt: 5 nguồn ngắt (Ngắt ngoài 0 $\overline{\text{INT0}}$, Ngắt ngoài 1 $\overline{\text{INT1}}$, Ngắt Timer 0, Ngắt Timer 1, Ngắt cổng nối tiếp RI/TI) chia làm 2 mức ưu tiên (IP) và cho phép/cấm thông qua thanh ghi IE. Địa chỉ vector ngắt: 0000H (Reset), 0003H (External 0), 000BH (Timer 0), 0013H (External 1), 001BH (Timer 1), 0023H (Serial Port).
    • Tập lệnh và chế độ định địa chỉ: 8 chế độ định địa chỉ (Địa chỉ thanh ghi, trực tiếp, gián tiếp qua @Ri, tức thời qua #data, tương đối qua Rel, tuyệt đối qua Addr11, dài qua Addr16, tham chiếu qua @A+DPTR / @A+PC). 5 nhóm lệnh: Xử lý số học (ADD, ADDC, SUBB, INC, DEC, MUL AB, DIV AB, DA A), Luận lý (ANL, ORL, XRL, CLR, SETB, CPL, RL, RLC, RR, RRC), Chuyển dữ liệu (MOV, MOVX, MOVC, PUSH, POP, XCH, XCHD), Rẽ nhánh và Chuyển điều khiển (ACALL, LCALL, RET, RETI, AJMP, LJMP, SJMP, JMP, JZ, JNZ, JC, JNC, JB, JNB, JBC, CJNE, DJNZ, NOP). Cấu trúc hóa giải thuật điều khiển (repeat...until, while...do, if...then...else, case...of).
  • Chương 2: Khảo sát vi mạch giao tiếp ngoại vi 8255 (8255A):

    • Cấu trúc phần cứng 8255A: Vi mạch song song LSI vỏ 40 chân PDIP, gồm 3 cổng I/O: Port A (PA0–PA7), Port B (PB0–PB7), Port C (PC0–PC7 chia thành 4 bit cao PC4–PC7 và 4 bit thấp PC0–PC3). Hệ thống bus gồm Bus dữ liệu D0–D7, Bus điều khiển $\overline{\text{RD}}$, $\overline{\text{WR}}$, $\overline{\text{CS}}$, RESET và 2 đường địa chỉ A0, A1 chọn cổng/thanh ghi điều khiển.
    • Từ điều khiển (Control Word): Định cấu hình Nhóm A (Port A, PC cao) và Nhóm B (Port B, PC thấp) theo Mode 0 (I/O cơ bản), Mode 1 (I/O có bắt tay Strobed), Mode 2 (Bus hai chiều trên Port A).
    • Phương pháp ghép nối với Vi xử lý: Ghép nối theo kiểu I/O (I/O Mapped - dùng lệnh IN/OUT, bus địa chỉ 8-bit A0–A7, giải mã tối đa 64 IC 8255 qua 74HC138) và ghép nối theo kiểu Bộ nhớ (Memory Mapped - dùng lệnh MOVX, bus địa chỉ 16-bit A0–A15, coi mỗi cổng là một ô nhớ RAM).

Kiến thức nền tảng được xây dựng

Giáo trình xây dựng hệ thống nguyên lý kỹ thuật vi xử lý nền tảng:

  • Nguyên lý kiến trúc máy tính Harvard: Phân định ranh giới vật lý và logic giữa bộ nhớ chương trình (Code ROM) và bộ nhớ dữ liệu (Data RAM).
  • Cơ chế phân kênh/đa hợp bus thời gian: Tách đường truyền dữ liệu và địa chỉ bằng tín hiệu điều khiển xung chốt ALE và vi mạch trung gian (74HC373).
  • Cơ chế ngắt cứng và quản lý ngăn xếp (Stack): Quy trình cất giá trị Program Counter (PC), chuyển hướng con trỏ tới địa chỉ Vector ngắt cố định, thực thi chương trình phục vụ ngắt (ISR) và khôi phục ngữ cảnh bằng lệnh RETI.
  • Cơ chế bắt tay dữ liệu và định cấu hình cổng I/O song song lập trình được.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật: Phân tích sơ đồ mạch nguyên lý vi điều khiển 8051; tính toán giá trị nạp cho thanh ghi THx/TLx để tạo thời gian trễ chính xác hoặc thiết lập tốc độ baud chuẩn cho cổng UART; thiết kế giải mã địa chỉ tĩnh cho bộ nhớ và ngoại vi.
  • Kỹ năng phân tích: Đọc hiểu và phân tích giản đồ thời gian (Timing Diagrams) của chu kỳ đọc/ghi bộ nhớ ngoài, chu kỳ máy (S1–S6, P1–P2) và hoạt động của cổng nối tiếp ở Chế độ 0.
  • Kỹ năng thực hành: Viết và tối ưu hóa mã nguồn hợp ngữ Assembly 8051; cấu hình từ điều khiển thanh ghi TMOD, TCON, SCON, IE, IP và từ điều khiển 8255A; phối hợp các lệnh rẽ nhánh để ánh xạ các cấu trúc thuật toán điều khiển phức tạp.

Phương pháp giảng dạy và học tập

Giáo trình áp dụng phương pháp sư phạm cấu trúc hóa từ dưới lên (Bottom-up Approach). Tiến trình giảng dạy bắt đầu từ cấu trúc vật lý của phần cứng (chân cắm, sơ đồ khối, cổng logic), tiếp cận đến các thanh ghi điều khiển nội vi, sau đó nâng dần lên mức phần mềm với tập lệnh hợp ngữ và giải pháp tích hợp hệ thống.

Tài liệu cung cấp các dạng bài tập và case studies điển hình:

  • Bài toán thiết kế ghép nối bộ nhớ mở rộng: Thiết kế sơ đồ mạch kết nối 8951 với EPROM 8KB và RAM 8KB sử dụng IC chốt 74HC373 và IC giải mã 74HC138, phân định bản đồ không gian địa chỉ 0000H–1FFFH và 2000H–3FFFH.
  • Bài toán bộ nhớ chồng lấn (Overlapping Space): Thiết kế mạch logic kết hợp tín hiệu $\overline{\text{PSEN}}$ và $\overline{\text{RD}}$ qua cổng AND để biến bộ nhớ RAM ngoài thành không gian vừa có thể ghi dữ liệu vừa có thể nạp mã thực thi chương trình.
  • Bài toán ứng dụng Timer đo độ rộng xung: Thiết lập Timer 0 ở Chế độ 1 kết hợp ngõ vào $\overline{\text{INT0}}$, bật bit GATE = 1 và TR0 = 1 để kích hoạt bộ đếm thời gian tự động chỉ khi chân $\overline{\text{INT0}}$ ở mức logic 1.
  • Bài toán ánh xạ giải thuật sang Hợp ngữ: Cung cấp mẫu mã nguồn Assembly cho 4 cấu trúc lập trình cơ bản gồm repeat...until (dùng JNZ), while...do (dùng CJNE, SJMP), if...then...else (dùng JB/JNB), case...of (dùng chuỗi so sánh CJNE).
  • Bài toán cấu hình ngoại vi 8255A: Tính toán từ điều khiển và xây dựng bảng phân bổ địa chỉ I/O cho hai vi mạch 8255A (IC1: 00H–03H, IC2: 04H–07H) kết nối với vi xử lý.

Phương pháp tự học hiệu quả được đề xuất: Người học cần đối chiếu trực tiếp giữa sơ đồ chân IC, bản đồ thanh ghi SFR với từng câu lệnh hợp ngữ, tính toán chu kỳ máy tiêu tốn của mỗi lệnh (1, 2 hoặc 4 chu kỳ máy) để kiểm soát độ trễ thời gian thực của hệ thống.


Điểm nổi bật và cập nhật

Nội dung giáo trình mang tính hệ thống hóa cao với các đặc tính kỹ thuật cụ thể:

  • Bản đồ bộ nhớ phân cấp chi tiết: Cung cấp bảng tra cứu toàn diện 128 byte RAM nội, phân định chi tiết địa chỉ byte và địa chỉ bit của từng ô nhớ từ 20H đến 2FH, cùng danh sách 21 thanh ghi chức năng đặc biệt SFR với địa chỉ bit cụ thể từ 80H đến FFH.
  • Minh họa mạch ghép nối phần cứng chuẩn: Đưa ra sơ đồ nguyên lý mạch reset bằng tay (+5V, tụ 10 µF, điện trở 8.2 k$\Omega$, 100 $\Omega$), mạch tạo dao động thạch anh 12 MHz, mạch ghép nối ngoại vi 8255A theo cả hai phương thức I/O-mapped và Memory-mapped.
  • Chuẩn hóa quy trình chuyển đổi giải thuật: Cung cấp giải pháp mẫu chuyển đổi các khối điều khiển luồng chương trình từ ngôn ngữ bậc cao sang các tập lệnh nhảy điều kiện (CJNE, DJNZ, JZ, JNZ, JC, JNC, JB, JNB, JBC) mà không làm thay đổi trạng thái các cờ hiệu không mong muốn.
  • Tính toán định lượng chu kỳ máy và tần số: Phân tích chi tiết xung nhịp chia tầng của Timer ($f_{\text{osc}}/12$), bộ tạo tốc độ baud UART (chia tần 16, 32, 64 kết hợp bit SMOD trong PCON), giúp người học tính toán thông số phần cứng với độ chính xác cao.

Đối tượng sử dụng giáo trình

Giáo trình được thiết kế phục vụ các đối tượng cụ thể:

  • Sinh viên đại học và cao đẳng: Sinh viên năm thứ 2 hoặc năm thứ 3 thuộc các chuyên ngành Kỹ thuật Điện tử - Viễn thông, Tự động hóa, Cơ điện tử, Kỹ thuật Máy tính và Công nghệ Thông tin đang theo học học phần Vi điều khiển, Vi xử lý hoặc Hệ thống nhúng.
  • Yêu cầu kiến thức tiên quyết (Prerequisites): Người học cần hoàn thành các học phần Kỹ thuật số (hệ đếm nhị phân/hexadecimal, cổng logic, flip-flop, thanh ghi dịch, IC giải mã/chốt), Kiến trúc máy tính (khái niệm bus, ALU, thanh ghi, con trỏ lệnh) và Cơ sở lập trình cơ bản.
  • Giảng viên chuyên ngành: Sử dụng làm đề cương bài giảng chuẩn, tài liệu tham khảo để biên soạn ngân hàng câu hỏi kiểm tra, xây dựng bài tập thiết kế mạch và tài liệu hướng dẫn thí nghiệm vi điều khiển họ 8051.
  • Kỹ sư và người tự học: Tài liệu tham khảo hệ thống để tra cứu tập lệnh Assembly 8051, định dạng thanh ghi chức năng đặc biệt SFR, cấu trúc từ điều khiển 8255A và nguyên lý ghép nối bus mở rộng.

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

1. Giáo trình này phù hợp với ai?

Tài liệu phù hợp với sinh viên đại học, cao đẳng kỹ thuật đang học môn Vi điều khiển / Vi xử lý, giảng viên giảng dạy ngành Điện - Điện tử - Tự động hóa, và kỹ sư cần tài liệu tra cứu về kiến trúc vi điều khiển 8-bit họ MCS-51 và vi mạch giao tiếp song song 8255A.

2. Cần kiến thức nền nào để học?

Người học cần nắm vững kiến thức Kỹ thuật số (đại số logic, bảng chân trị, mạch tuần tự, mạch tổ hợp, IC giải mã 74HC138, IC chốt 74HC373), biểu diễn số nhị phân/hexadecimal và các nguyên lý cơ bản về bus máy tính.

3. Điểm khác biệt của giáo trình này là gì?

Giáo trình phân tích sâu vào bản đồ thanh ghi ở cả cấp độ byte và bit, cung cấp giản đồ thời gian thực thi lệnh, sơ đồ mạch ghép nối mở rộng bộ nhớ ngoài (chống xung đột bus với tín hiệu $\overline{\text{PSEN}}$, $\overline{\text{RD}}$, $\overline{\text{WR}}$, ALE) và phương pháp chuyển đổi các khối thuật toán lặp/rẽ nhánh sang hợp ngữ Assembly.

4. Làm sao để tự học hiệu quả với giáo trình?

Nên học song song giữa lý thuyết phần cứng và tập lệnh: khi nghiên cứu một khối ngoại vi (như Timer hay UART), cần tra cứu các thanh ghi điều khiển liên quan (TMOD, TCON, SCON, PCON), sau đó viết các đoạn mã Assembly khởi tạo và vận hành khối chức năng đó.

5. Có tài liệu bổ trợ nào kèm theo trong giáo trình?

Giáo trình bao gồm bảng tra cứu tập lệnh Assembly 8951 phân loại theo 5 nhóm kèm số byte và số chu kỳ máy, bảng định dạng thanh ghi SFR, bảng vector ngắt, sơ đồ chân 89C51 và 8255A, cùng sơ đồ nguyên lý mạch giải mã ghép nối ngoại vi.


Kết luận

Giáo trình "Họ vi điều khiển 80C51" của tác giả Đặng Hữu Phúc (Trường Đại học Trà Vinh) là tài liệu học thuật tiêu chuẩn, cung cấp nền tảng kiến thức hoàn chỉnh về kiến trúc vi điều khiển 8-bit và vi mạch giao tiếp ngoại vi. Lộ trình học tập đề xuất:

  1. Nghiên cứu kiến trúc phần cứng, sơ đồ chân và cấu trúc bộ nhớ Harvard (Chương I - Phần I, II).
  2. Khảo sát các khối ngoại vi tích hợp: Timer/Counter, Port nối tiếp và Hệ thống ngắt (Chương I - Phần III, IV, V).
  3. Làm chủ 8 chế độ định địa chỉ, 5 nhóm lệnh Assembly và cấu trúc hóa giải thuật (Chương I - Phần VI, VII).
  4. Thực hành thiết kế ghép nối mở rộng bộ nhớ và vi mạch ngoại vi 8255A (Chương 2).