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

Giáo trình The 8051 Microcontroller and Embedded Systems Using Assembly and C (Ấn bản thứ hai) được biên soạn bởi nhóm tác giả Muhammad Ali Mazidi, Janice Gillispie Mazidi và Rolin D. McKinlay. Trong chương trình đào tạo bậc đại học và sau đại học thuộc các khối ngành Kỹ thuật Điện tử, Kỹ thuật Máy tính, Tự động hóa và Khoa học Máy tính, tài liệu này đóng vai trò là giáo trình nòng cốt cho các học phần Kiến trúc máy tính, Vi xử lý, Vi điều khiển và Thiết kế 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õ nguyên lý vận hành phần cứng của các hệ thống tính toán và cấu trúc bên trong của vi điều khiển (CPU, ALU, thanh ghi, hệ thống bus).
  • Nắm vững cú pháp và tư duy lập trình bằng Hợp ngữ (Assembly) cũng như ngôn ngữ bậc cao (C) trên nền tảng vi điều khiển họ 8051.
  • Năng lực thiết kế, ghép nối và lập trình điều khiển các khối ngoại vi như bộ định thời/bộ đếm (Timer/Counter), cổng nối tiếp (Serial Port), hệ thống ngắt (Interrupts), bộ nhớ mở rộng và các thiết bị giao tiếp thực tế.

Giáo trình được cấu trúc thành 16 chương với cách tiếp cận đi từ nguyên lý tính toán số cơ bản (Introduction to Computing), phân tích kiến trúc phần cứng chi tiết của dòng vi điều khiển 8051, đến các kỹ thuật lập trình và ghép nối mạch tích hợp phức tạp. Điểm đặc trưng trong phương pháp luận của giáo trình là sự kết hợp song song giữa hai ngôn ngữ lập trình Assembly và C cho từng khối ngoại vi, giúp người học vừa hiểu sâu cơ chế phần cứng ở mức thanh ghi, vừa có khả năng triển khai mã nguồn tối ưu ở tầng ứng dụng.


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

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

Cấu trúc giáo trình thể hiện tính tuần tự chặt chẽ qua 16 chương nội dung, trong đó các khối chuyên đề trọng tâm bao gồm:

  1. Introduction to Computing (Nhập môn tính toán số): Giới thiệu hệ thống số (Thập phân, Nhị phân, Thập lục phân), mã ASCII, phần tử logic số cơ bản (cổng logic, mạch cộng, mạch giải mã, flip-flop) và tổ chức bên trong của máy tính (CPU, ALU, Program Counter, cấu trúc bus địa chỉ, dữ liệu, điều khiển).
  2. The 8051 Microcontrollers & Assembly Programming (Kiến trúc 8051 và Lập trình Hợp ngữ - Chương 2, 3, 4, 6, 7): Khảo sát cấu trúc phần cứng của họ 8051, phân biệt vi điều khiển và vi xử lý đa dụng; trình bày tập lệnh Assembly, các lệnh rẽ nhánh (Branch Instructions), chế độ định địa chỉ (Addressing Modes) và các phép toán số học - logic (Arithmetic & Logic Instructions).
  3. I/O Port & C Programming (Lập trình cổng xuất/nhập và Ngôn ngữ C - Chương 5, 8, 9): Phân tích hoạt động của các cổng I/O trên chip 8051, hướng dẫn lập trình điều khiển phần cứng bằng ngôn ngữ C, kết nối sơ đồ chân phần cứng và quy trình tạo tập tin nhị phân (.hex).
  4. Peripherals Programming in Assembly and C (Lập trình ngoại vi nội vi - Chương 10, 11, 12): Đi sâu vào cấu hình và lập trình bộ định thời/bộ đếm (Timer/Counter), truyền thông nối tiếp UART (Serial Port), và xử lý ngắt phần cứng/phần mềm (Interrupts) bằng cả Assembly lẫn C.
  5. Memory & Real-World Interfacing (Ghép nối bộ nhớ và thiết bị thực tế - Chương 13, 14, 15, 16): Cung cấp giải pháp thiết kế mở rộng bộ nhớ ngoài (External Memory), kỹ thuật ghép nối với màn hình tinh thể lỏng (LCD), bàn phím ma trận (Keyboard), bộ chuyển đổi tín hiệu tương tự sang số (ADC), cảm biến (Sensors) và vi mạch giao tiếp ngoại vi khả trình 8255 (PPI).

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

  • Hệ thống biểu diễn số và mã hóa: Cơ chế chuyển đổi qua lại giữa hệ thập phân (Base 10), nhị phân (Base 2) và thập lục phân (Base 16); trọng số bit ($2^n$); phương pháp chuyển đổi thông qua phép chia liên tiếp; các phép toán số học cộng/trừ hex có cờ nhớ/mượn; chuẩn mã hóa ký tự ASCII 7-bit (ví dụ: 'A' = $41_{16}$, 'a' = $61_{16}$).
  • Nguyên lý mạch kỹ thuật số: Hoạt động của các cổng logic cơ bản (AND, OR, NOT/Inverter, XOR, NAND, NOR, Tri-state buffer); cấu trúc mạch cộng bán phần (Half adder), mạch cộng toàn phần (Full adder), mạch cộng 4-bit; mạch giải mã địa chỉ (Address decoders cho các địa chỉ $1001_2$, $0101_2$); phần tử lưu trữ Flip-flop (tham chiếu tài liệu Digital Design của M. Morris Mano và Computer Science Illuminated của Nell Dale, John Lewis).
  • Tổ chức máy tính và kiến trúc xử lý: Khái niệm đơn vị dữ liệu (Bit, Nibble = 4 bits, Byte = 8 bits, Word = 16 bits; Kilo, Mega, Giga, Tera); phân biệt bộ nhớ sơ cấp (Primary memory: RAM khả biến, ROM phi khả biến) và bộ nhớ thứ cấp (Secondary memory); kiến trúc hệ thống bus gồm Data bus 2 chiều (kích thước 8 đến 64 bit xác định sức mạnh xử lý), Address bus 1 chiều (quy mô $x$ đường địa chỉ định vị $2^x$ byte), và Control bus (tín hiệu Read/Write); chu trình xử lý lệnh của CPU qua thanh ghi Program Counter (PC), Bộ giải mã lệnh (Instruction Decoder), khối tính toán ALU và các thanh ghi tạm thời (Register A, B, C, D).

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Viết và tối ưu hóa mã nguồn Hợp ngữ 8051; lập trình điều khiển phần cứng bằng ngôn ngữ C nhúng; cấu hình thanh ghi chức năng đặc biệt cho Timer/Counter, cổng nối tiếp và bảng véc-tơ ngắt; biên dịch và tạo mã máy (Hex file) nạp vào ROM.
  • Kỹ năng phân tích (Analytical skills): Phân tích chu trình thực thi lệnh của CPU theo từng chu kỳ máy (Fetch - Decode - Execute); phân bổ không gian nhớ và tính toán đường giải mã địa chỉ cho các thiết bị ngoại vi; đánh giá sự đánh đổi giữa hiệu năng, không gian phần cứng, mức tiêu thụ năng lượng và chi phí trong thiết kế hệ thống nhúng.
  • Kỹ năng thực hành (Practical competencies): Ghép nối vi điều khiển với các linh kiện bán dẫn và module ngoại vi (màn hình LCD, ma trận phím, cảm biến nhiệt độ/điện áp qua ADC, chip mở rộng song song 8255); kiểm thử và gỡ lỗi giao tiếp tín hiệu số giữa CPU và ngoại vi.

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

Giáo trình triển khai phương pháp tiếp cận sư phạm đi từ tầng vi mô (linh kiện bán dẫn, cổng logic, bit dữ liệu) đến tầng vĩ mô (kiến trúc hệ thống, ghép nối thiết bị phức tạp). Lý thuyết kiến trúc phần cứng luôn được minh họa kèm theo các chu trình thực thi lệnh cụ thể.

Ví dụ chu trình CPU giải mã lệnh từ bộ nhớ:
Địa chỉ   Mã lệnh (Opcode) / Dữ liệu    Thao tác thực thi
1400H     B0                            Nạp mã lệnh đưa dữ liệu vào thanh ghi A
1401H     21                            Dữ liệu 21H được nạp vào thanh ghi A
1402H     04                            Mã lệnh cộng giá trị vào thanh ghi A
1403H     42                            Dữ liệu 42H được đưa vào ALU để cộng
1404H     04                            Mã lệnh cộng giá trị tiếp theo
1405H     12                            Dữ liệu 12H được đưa vào ALU để cộng
1406H     F4                            Mã dừng thực thi (HALT), ngắt tăng PC

Các bài tập số học và chuyển đổi được giải thích tường minh theo từng bước:

  • Chuyển đổi số nguyên $25_{10}$ sang nhị phân thông qua phép chia 2 liên tiếp thu được $11001_2$ (LSB đến MSB).
  • Chuyển đổi $11001_2$ sang thập phân thông qua tổng trọng số: $16 + 8 + 0 + 0 + 1 = 25_{10}$.
  • Phép cộng hệ thập lục phân có nhớ: $23D9_{16} + 94BE_{16} = B897_{16}$ (trong đó $9 + 14 = 23 \rightarrow 23 - 16 = 7$ nhớ 1; $1 + 13 + 11 = 25 \rightarrow 25 - 16 = 9$ nhớ 1).
  • Phép trừ hệ thập lục phân có mượn: $59F_{16} - 2B8_{16} = 2E7_{16}$ (trong đó $9 + 16 - 11 = 14 = \text{E}_{16}$).

Phương pháp đánh giá học tập được xây dựng trên hai cấu phần: giải quyết các bài toán thiết kế logic/định địa chỉ lý thuyết và triển khai các bài tập lập trình thực hành. Đối với người tự học, tài liệu cung cấp tiến trình từng bước: đọc hiểu giản đồ phần cứng, phân tích tập thanh ghi, viết mã nguồn mẫu bằng Assembly để nắm bản chất bộ nhớ, sau đó chuyển dịch sang ngôn ngữ C để tăng tính mô-đun hóa cho chương trình nhúng.


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

So với các tài liệu truyền thống chỉ giảng dạy Hợp ngữ, ấn bản Second Edition tích hợp toàn diện phương pháp lập trình bằng ngôn ngữ C cho toàn bộ các khối chức năng của 8051. Sự bổ sung này giúp người học tiếp cận trực tiếp với phương pháp phát triển phần mềm nhúng hiện đại trong công nghiệp mà không làm mất đi hiểu biết cốt lõi về phần cứng.

Tiêu chí phân tích Vi xử lý đa dụng (General-Purpose Microprocessor) Vi điều khiển (Microcontroller)
Thành phần tích hợp trên chip Chỉ chứa CPU; RAM, ROM, I/O, Timer phải gắn ngoài Tích hợp sẵn CPU, RAM, ROM, I/O Port, Timer, ADC
Tính linh hoạt phần cứng Cho phép tùy biến dung lượng RAM, ROM theo nhu cầu Dung lượng bộ nhớ và số cổng ngoại vi cố định
Kích thước & Chi phí Hệ thống cồng kềnh, giá thành cao Thiết kế nhỏ gọn, tối ưu chi phí và không gian
Mức độ tiêu thụ năng lượng Tiêu thụ công suất lớn Tiêu thụ công suất thấp, phù hợp thiết bị di động
Mục đích sử dụng Xử lý đa tác vụ trong máy tính cá nhân (PC) Hệ thống nhúng thực hiện đơn tác vụ chuyên biệt

Giáo trình phân tích chi tiết ứng dụng của vi điều khiển và bộ xử lý nhúng trong các lĩnh vực công nghiệp và dân dụng thực tế:

  • Thiết bị gia dụng & Đời sống: Hệ thống an ninh, điện thoại, máy trả lời tự động, thiết bị mở cửa gara, máy fax, tivi, bộ dò kênh truyền hình cáp, máy quay video, điều khiển từ xa, trò chơi điện tử, dụng cụ âm nhạc, máy may, thiết bị điều khiển chiếu sáng, máy nhắn tin, máy ảnh, thiết bị tập thể dục.
  • Thiết bị văn phòng: Máy photocopy, máy in laser, máy in màu, máy fax, hệ thống an ninh văn phòng.
  • Công nghiệp ô tô: Máy tính hành trình (Trip computer), hệ thống điều khiển động cơ, hệ thống kích hoạt túi khí, hệ thống chống bó cứng phanh (ABS), bảng đồng hồ đo, hệ thống kiểm soát truyền động, kiểm soát khí hậu, chìa khóa điện tử không dây (Keyless entry).
  • Hệ thống nhúng hiệu năng cao: Phân tích việc ứng dụng các bộ vi xử lý kiến trúc x86 được tối ưu hóa cho thị trường nhúng nhằm tận dụng thư viện phần mềm phong phú và nền tảng hệ điều hành tiêu chuẩn.

Giáo trình cũng thiết lập bộ tiêu chí kỹ thuật phục vụ việc lựa chọn vi điều khiển trong thiết kế công nghiệp:

  • Tốc độ xử lý tính toán.
  • Kiểu đóng vỏ (Packaging).
  • Mức độ tiêu thụ công suất.
  • Dung lượng bộ nhớ RAM và ROM tích hợp trên chip.
  • Số lượng chân I/O và khối Timer nội vi.
  • Khả năng nâng cấp lên phiên bản hiệu năng cao hơn hoặc tiêu thụ ít năng lượng hơn.
  • Chi phí sản xuất trên từng đơn vị sản phẩm (Cost per unit).

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

  • Sinh viên đại học và học viên cao học: Sinh viên từ năm thứ hai hoặc năm thứ ba thuộc các chuyên ngành Kỹ thuật Điện tử, Kỹ thuật Máy tính, Tự động hóa, Cơ điện tử và Công nghệ Thông tin đang theo học các học phần về Vi xử lý, Vi điều khiển, Kiến trúc máy tính và Hệ thống nhúng.
  • Yêu cầu kiến thức tiên quyết (Prerequisites): Người học cần nắm các khái niệm cơ bản về logic kỹ thuật số (mức logic 0/1, các cổng logic cơ bản) và nguyên lý lập trình căn bản. Giáo trình đã tích hợp Chương 1 để hệ thống hóa lại toàn bộ kiến thức về hệ đếm, đại số logic và tổ chức CPU cho người học chưa có nền tảng sâu.
  • Giảng viên và cơ sở đào tạo: Dùng làm đề cương và tài liệu giảng dạy chính cho các bài giảng lý thuyết trên lớp, đồng thời là tài liệu tham chiếu để thiết kế nội dung thực hành phòng thí nghiệm liên quan đến 8051, 8255 và các giao tiếp ngoại vi.
  • Kỹ sư nghiên cứu và tự học: Các kỹ sư phát triển phần cứng, lập trình viên firmware cần tài liệu tra cứu về tập lệnh, cấu trúc thanh ghi phần cứng và kỹ thuật ghép nối vi mạch kinh điển.

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

1. Giáo trình này phù hợp với đối tượng nào?

Giáo trình được thiết kế cho sinh viên đại học, học viên cao học khối kỹ thuật công nghệ, giảng viên giảng dạy ngành kỹ thuật máy tính và các kỹ sư thiết kế hệ thống nhúng cần tài liệu tra cứu nền tảng.

2. Cần kiến thức nền tảng nào trước khi học giáo trình?

Người học chỉ cần kiến thức cơ bản về toán học số học và tư duy logic. Toàn bộ nền tảng về hệ đếm (nhị phân, hex), cổng logic số (AND, OR, Inverter, Flip-flop) và tổ chức bus máy tính đều được cung cấp chi tiết tại Chương 1 của tài liệu.

3. Điểm khác biệt của giáo trình so với các tài liệu vi xử lý khác là gì?

Tài liệu trình bày song song cả Hợp ngữ (Assembly) và ngôn ngữ C cho từng khối chức năng phần cứng (I/O, Timer, Serial, Interrupts). Đồng thời, tài liệu cung cấp sơ đồ ghép nối phần cứng chi tiết với các linh kiện thực tế như LCD, ADC, cảm biến và vi mạch 8255 thay vì chỉ dừng lại ở lý thuyết mô phỏng.

4. Phương pháp tự học giáo trình như thế nào để đạt hiệu quả cao?

Người học nên học tuần tự từ Chương 1 để nắm cấu trúc chu trình máy và thanh ghi CPU, thực hành các bài tập tính toán địa chỉ và hệ số. Tiếp theo, viết mã nguồn Assembly để hiểu sâu cấu trúc phần cứng trước khi chuyển sang triển khai ứng dụng bằng ngôn ngữ C.

5. Những vi điều khiển nào khác được giới thiệu để so sánh trong giáo trình?

Bên cạnh họ Intel 8051, giáo trình giới thiệu và phân loại các dòng vi điều khiển 8-bit phổ biến khác trong công nghiệp bao gồm Motorola 6811, Zilog Z8 và Microchip PIC, cùng với việc mở rộng sang các bộ xử lý nhúng 16-bit, 32-bit và kiến trúc x86 nhúng.


Kết luận

Giáo trình The 8051 Microcontroller and Embedded Systems Using Assembly and C (Second Edition) của Muhammad Ali Mazidi, Janice Gillispie Mazidi và Rolin D. McKinlay cung cấp một khung kiến thức chuẩn mực về cấu trúc phần cứng vi xử lý và kỹ thuật lập trình hệ thống nhúng. Lộ trình đào tạo được xây dựng liền mạch: từ biểu diễn số học, cổng logic, chu trình nạp lệnh CPU, đến lập trình điều khiển Timer, Serial, Ngắt và giao tiếp thiết bị thực tế.

Tài liệu kết hợp chặt chẽ giữa nền tảng lý thuyết thiết kế số (tham chiếu các công trình của Mano, Dale & Lewis) và yêu cầu kỹ thuật công nghiệp thực tế, đóng vai trò là nguồn học liệu tiêu chuẩn cho việc đào tạo chuyên sâu về kiến trúc máy tính và công nghệ vi điều khiển.