MÔ TẢ THƯ MỤC VÀ TỔNG QUAN NỘI DUNG GIÁO TRÌNH MÔ ĐUN VI ĐIỀU KHIỂN (MÃ MÔ ĐUN: MĐ 22)

Thông tin xuất bản và biên soạn:

  • Tên giáo trình: Giáo trình Mô đun Vi điều khiển
  • Mã mô đun: MĐ 22
  • Cơ quan biên soạn: Khoa Điện – Điện tử, Tin học, Trường Trung cấp Nghề Tổng hợp Hà Nội
  • Ban biên soạn: Lưu Công Thắng (Chủ biên), Đỗ Thị Thúy Bình, Khuất Duy Chức
  • Thời gian hoàn thành: Tháng 12 năm 2024
  • Thời lượng thực hiện: 90 giờ (Lý thuyết: 23 giờ; Thực hành, thí nghiệm, thảo luận, bài tập: 63 giờ; Kiểm tra: 4 giờ)

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

Mô đun "Vi điều khiển" (mã số MĐ 22) là học phần chuyên môn nghề bắt buộc trong chương trình đào tạo kỹ thuật thuộc khối ngành Điện tử – Tin học. Trong phân phối chương trình, mô đun này được bố trí giảng dạy sau khi người học đã hoàn thành các môn học cơ sở kỹ thuật điện tử và các mô đun chuyên môn nghề nhập môn. Tổng thời lượng của mô đun là 90 giờ, được phân bổ gồm 23 giờ lý thuyết, 63 giờ thực hành, bài tập và thí nghiệm, cùng 4 giờ kiểm tra đánh giá định kỳ.

Mục tiêu học tập của giáo trình được xác định cụ thể theo ba tiêu chí chuẩn đầu ra:

  1. Về mặt kiến thức: Người học trình bày được hệ thống hệ đếm và mã hóa trong máy tính; giải thích được nguyên lý làm việc của các hệ thống điều khiển; phân tích cấu trúc phần cứng, sơ đồ khối và ứng dụng của vi điều khiển họ MCS-51 và nền tảng Arduino trong dân dụng và công nghiệp; kiểm tra và biên soạn được các chương trình điều khiển ngoại vi.
  2. Về mặt kỹ năng: Viết và dịch được chương trình điều khiển bằng ngôn ngữ C; thực hiện ghép nối vi điều khiển với các thiết bị ngoại vi số; vận hành các dây chuyền hoặc mạch thử nghiệm; xác định và sửa chữa được các lỗi hư hỏng phần cứng và sai sót trong mã lệnh.
  3. Về năng lực tự chủ và trách nhiệm: Rèn luyện tác phong công nghiệp, tính cẩn thận, độ chính xác trong đo kiểm kỹ thuật và tư duy khoa học khi giải quyết bài toán điều khiển.

Về mặt cấu trúc, tài liệu được tổ chức thành 5 bài học tuần tự: từ lịch sử phát triển, cấu trúc chân phần cứng của vi điều khiển chuẩn công nghiệp 8051 (Bài 1 và Bài 2); phương pháp lập trình C và môi trường Keil C (Bài 3); đến nền tảng mã nguồn mở Arduino Uno R3 và các ứng dụng điều khiển, mô phỏng ngoại vi (Bài 4 và Bài 5). Cách tiếp cận của tài liệu tập trung vào việc giảm thiểu lý thuyết hàn lâm trừu tượng, gia tăng thời lượng mô phỏng và thực nghiệm mạch nhằm hỗ trợ người học nghề tiếp cận trực tiếp với kỹ thuật vi điều khiển ứng dụng.


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

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

Nội dung giáo trình được triển khai qua 5 bài học trọng tâm:

  • Bài 1: Sơ lược về lịch sử và hướng phát triển của vi điều khiển (Mã bài: MĐ 22 - 01): Trình bày mốc lịch sử ra đời của vi điều khiển từ chip Intel 8748 (thuộc họ MCS-48, năm 1976) đến chip tiêu chuẩn 8051 (họ MCS-51, năm 1980) với cấu tạo 60.000 transistor, 4KB ROM, 128 byte RAM, 32 đường xuất nhập, 1 cổng nối tiếp và 2 bộ định thời 16-bit. Phân tích các thế hệ vi điều khiển phái sinh từ Atmel: dòng nạp song song AT89Cxx (89C51, 89C52, 89C53, 89C55) và dòng nạp nối tiếp AT89Sxx (89S51, 89S52, 89S55). Phân loại các lĩnh vực ứng dụng của vi điều khiển trong thiết bị dân dụng (hệ thống nhà thông minh, thiết bị hẹn giờ), y tế (máy đo nhịp tim, máy đo huyết áp, điện tâm đồ), và công nghiệp (điều khiển động cơ, dây chuyền sản xuất, cân điện tử, robot).

  • Bài 2: Cấu trúc của họ vi điều khiển 8051 (Mã bài: MĐ 22 - 02): Phân tích chi tiết vỏ chip 40 chân dạng DIP (Dual In-Line Package) của vi điều khiển AT89C51. Khảo sát chức năng từng chân: chân cấp nguồn 40 ($V_{CC} = +5\text{V}$), chân nối đất 20 ($Mass, GND$), chân 29 ($\overline{\text{PSEN}}$ - Program Store Enable truy xuất ROM ngoài), chân 30 (ALE - Address Latch Enable phân kênh bus địa chỉ/dữ liệu), chân 31 ($\overline{\text{EA}}$ - External Access, chọn ROM nội khi nối 5V hoặc ROM ngoại khi nối GND), chân 9 (RST - Master Reset, đưa bộ đếm chương trình PC về địa chỉ 0000H). Trình bày mạch dao động thạch anh trên hai chân XTAL1, XTAL2 (tần số 12MHz tạo chu kỳ máy $1\mu\text{s}$ hoặc 11.0592MHz cho giao tiếp nối tiếp, kết hợp hai tụ ổn định 33pF). Khảo sát 4 cổng vào/ra (Port 0: chân 32–39 đa hợp địa chỉ/dữ liệu; Port 1: chân 1–8 chuẩn I/O; Port 2: chân 21–28 xuất byte địa chỉ cao; Port 3: chân 10–17 tích hợp các chức năng phụ như RxD, TxD, $\overline{\text{INT0}}$, $\overline{\text{INT1}}$, T0, T1, $\overline{\text{WR}}$, $\overline{\text{RD}}$). Phân tích đặc tính dòng xuất mức logic và phương pháp ghép nối LED thông qua điện trở kéo lên (pull-up 4.7kΩ – 10kΩ) hoặc cổng đệm chuyên dụng (74HC244, 74HC245).

  • Bài 3: Lập trình C cho 8051 (Mã bài: MĐ 22 - 03): Giới thiệu ngôn ngữ C chuyên dụng trong vi điều khiển. Hệ thống hóa các kiểu dữ liệu cơ bản (char, unsigned char, int, unsigned int, long, unsigned long, float) và các kiểu dữ liệu đặc thù trên trình biên dịch Keil C (bit, sbit, sfr, sfr16). Định nghĩa các phân vùng bộ nhớ: CODE, DATA, BDATA, IDATA, PDATA, XDATA. Trình bày kỹ thuật khai báo mảng, con trỏ theo từng vùng nhớ, kiểu cấu trúc (struct), các nhóm toán tử số học, logic, thao tác bit và chỉ thị tiền xử lý (#define, #include, #ifdef, #ifndef). Hướng dẫn quy trình vận hành phần mềm Keil C IDE: tạo project cho chip AT89C51, cấu hình thạch anh 12MHz, thiết lập xuất file .HEX, kỹ thuật gỡ lỗi mô phỏng (Start/Stop Debug Session, Peripherals Parallel Port, phím chức năng F10, F11). Cung cấp 3 bài tập lập trình mẫu có mã nguồn hoàn chỉnh: Bài tập 1 (LED nhấp nháy 1s tại chân P1.0); Bài tập 2 (nút ấn START tại P3.1 và STOP tại P3.0 điều khiển LED); Bài tập 3 (nút ấn P3.4 đếm 0–9 hiển thị trên LED 7 đoạn thông qua mảng mã Hex 0x81 đến 0x84 kết hợp giải thuật chống rung phím).

  • Bài 4: Tổng quan về Arduino (Mã bài: MĐ 22 - 04): Khái quát nền tảng phần cứng bo mạch Arduino Uno R3, tích hợp vi điều khiển lập trình trực tiếp qua cáp giao tiếp USB mà không cần mạch nạp phụ trợ. Giới thiệu phần mềm Arduino IDE sử dụng ngôn ngữ C++ giản thể, quy trình tải chương trình, cấu hình driver, khởi tạo dự án và khai thác hệ thống thư viện mở.

  • Bài 5: Lập trình - mô phỏng dùng vi điều khiển Arduino: Hướng dẫn sơ đồ phần cứng, thuật toán và mã lập trình cho 5 chủ đề điều khiển ứng dụng: điều khiển LED đơn; điều khiển hiển thị LED 7 đoạn; điều khiển LED ma trận (Matrix LED); giao tiếp hiển thị ký tự trên màn hình tinh thể lỏng (LCD); và nguyên lý điều khiển băm xung điều chế độ rộng (PWM) liên hệ trên phần cứng Arduino.

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

  • Lý thuyết kiến trúc máy tính nhúng: Nắm vững cấu trúc CPU 8-bit, tổ chức phân tách giữa không gian nhớ chương trình và không gian nhớ dữ liệu (vùng nhớ trong RAM 128 byte và ROM 4KB nội; khả năng mở rộng bộ nhớ ngoài lên tới 64KB cho cả chương trình lẫn dữ liệu).
  • Nguyên lý chu kỳ máy và định thời: Nắm vững công thức tính chu kỳ máy $T_{ck} = 12 / f_{osc}$. Với thạch anh $f_{osc} = 12\text{MHz}$, mỗi chu kỳ máy kéo dài đúng $1\mu\text{s}$, làm cơ sở để tính toán các hàm trễ thời gian (delay) và đếm xung ngoại vi.
  • Nguyên lý ghép nối điện tử số: Cơ chế giải đa hợp bus địa chỉ và dữ liệu trên Port 0 nhờ xung chốt chân ALE; cơ chế hoạt động của mạch Master Reset tự động bằng mạng RC ($C = 10\mu\text{F}$, $R = 10\text{k}\Omega$); đặc tính chênh lệch giữa dòng kéo cực máng ở mức logic 0 (cho phép dòng rút tới -15mA đến -25mA) và mức logic 1 (dòng xuất dưới 5mA) khi thiết kế mạch kích mở LED.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Cấu hình phần mềm Keil C, biên dịch mã C thành tập tin định dạng .HEX; thiết lập cấu hình tham số phần cứng trên Arduino IDE; thao tác đấu nối chính xác các sơ đồ mạch ghép nối vi điều khiển với linh kiện bán dẫn và khối hiển thị.
  • Kỹ năng phân tích giải thuật (Analytical skills): Phân tích trạng thái logic của nút ấn, xây dựng thuật toán lọc nhiễu tiếp điểm cơ khí (chống rung phím qua việc kiểm tra trạng thái và tạo độ trễ phần mềm); thiết lập bảng mã giải mã hiển thị cho LED 7 đoạn (Anode chung hoặc Cathode chung); cấu trúc hóa chương trình bằng các hàm con và cấu trúc điều khiển rẽ nhánh switch-case, if-else.
  • Năng lực thực hành ứng dụng (Practical competencies): Vận hành được các bài toán điều khiển xuất nhập tuần tự, giao tiếp hiển thị đa năng (LED ma trận, LCD ký tự) và ứng dụng kỹ thuật điều chế độ rộng xung (PWM) để điều khiển cơ cấu chấp hành trong hệ thống kỹ thuật.

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

Giáo trình được thiết kế theo phương pháp đào tạo tích hợp (kết hợp chặt chẽ giữa lý thuyết kỹ thuật và thực hành ứng dụng). Tỷ lệ phân bổ thời lượng thể hiện rõ định hướng thực hành: lý thuyết chiếm 23 giờ (khoảng 25,5%), trong khi thời lượng thực hành, bài tập và thí nghiệm chiếm tới 63 giờ (70%), 4 giờ còn lại dành cho kiểm tra đánh giá định kỳ (4,5%).

Hệ thống bài tập trong tài liệu được thiết kế theo hướng module hóa, đi kèm mạch nguyên lý, phân tích dòng điện và mã chương trình mẫu:

  • Bài tập ghép nối hiển thị LED đơn: Người học tiếp cận bài toán điều khiển chân P1.0 ở mức 0 và mức 1, sử dụng vòng lặp while(time--) để điều chỉnh tần số chớp tắt 1 giây, qua đó quan sát trực quan tác động của mức logic lên tải.
  • Bài tập điều khiển logic rẽ nhánh: Ghép nối hệ thống nút bấm START (P3.1) và STOP (P3.0) kết hợp biến điều kiện logic để đóng/ngắt tải, mô phỏng cơ chế điều khiển nút nhấn duy trì trạng thái trong công nghiệp.
  • Bài tập đếm sự kiện hiển thị LED 7 đoạn: Thiết kế nút ấn tại chân ngắt/đếm P3.4, khai báo biến kiểu sfr dataP = 0x90 (Port 1) và lập trình hàm phim_an() với thuật toán chờ nhả phím kết hợp trễ chống rung delay(500) để đếm chính xác số lần nhấn từ 0 đến 9.
  • Hệ thống thực hành mở rộng: Các bài toán điều khiển LED ma trận, giao tiếp module LCD và lập trình phát xung PWM trên kit Arduino Uno R3.

Phương pháp đánh giá kết quả học tập tập trung vào năng lực thao tác:

  • Đánh giá khả năng chuyển đổi giải thuật điều khiển thành mã C không có lỗi cú pháp trên Keil C hoặc Arduino IDE.
  • Đánh giá kỹ năng đo kiểm phần cứng, tính toán giá trị điện trở hạn dòng, điện trở treo ($R_2$ từ 4.7kΩ – 10kΩ) và khả năng ứng dụng IC đệm 74HC245 khi phối ghép tải.
  • Đánh giá kỹ năng gỡ lỗi từng bước thông qua công cụ mô phỏng debug chân logic ảo (Parallel Port) trên phần mềm trước khi nạp vào mạch vật lý.

Về phương pháp tự học, tài liệu cung cấp các hướng dẫn chi tiết từng thao tác menu trên giao diện máy tính: từ bước chọn nhà sản xuất chip (Atmel AT89C51), chọn không chèn file startup chuẩn (copy standard 8051 startup code), thiết lập tần số thạch anh 12MHz, đến việc sử dụng các phím tắt debug (F7 biên dịch, Ctrl+F5 chạy debug, F11 chạy từng bước, Ctrl+F11 bỏ qua hàm con). Điều này giúp người học tự thực hành trên máy tính cá nhân mà không nhất thiết phải có sẵn thiết bị phần cứng tại nhà.


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

Giáo trình có những điểm cập nhật cụ thể về mặt công nghệ và phương pháp sư phạm:

  1. Hệ thống hóa bước chuyển tiếp công nghệ nạp: Thay vì chỉ dừng lại ở các chip cổ điển sử dụng chế độ nạp song song với điện áp cao (họ 89Cxx như 89C51, 89C52), giáo trình đưa vào phân tích dòng chip thế hệ mới AT89Sxx (89S51, 89S52) tích hợp giao thức nạp nối tiếp ISP (In-System Programming). Việc này giúp đơn giản hóa mạch nạp chương trình trong quá trình học tập và sửa chữa thực tế.
  2. Tích hợp nền tảng mã nguồn mở Arduino: Bên cạnh nền tảng vi điều khiển kinh điển 8051, tài liệu bổ sung hoàn chỉnh hai bài học (Bài 4 và Bài 5) về bo mạch Arduino Uno R3 và môi trường phát triển Arduino IDE. Cập nhật này phản ánh xu hướng ứng dụng hiện nay, chuyển dịch từ việc phải thiết kế phần cứng vi mạch phức tạp sang việc tiếp cận nhanh với các module cảm biến và ngoại vi dựng sẵn thông qua giao thức nạp chuẩn USB.
  3. Chuyển dịch ngôn ngữ lập trình sang C: Giáo trình lược bỏ sự phụ thuộc nặng nề vào hợp ngữ (Assembly) vốn đòi hỏi ghi nhớ sâu tập lệnh phần cứng vi xử lý, thay vào đó chuẩn hóa việc giảng dạy bằng ngôn ngữ lập trình C cho họ 8051 và C++ giản thể cho Arduino. Cách tiếp cận này giúp người học tối ưu hóa thời gian xây dựng thuật toán và tái sử dụng lại các đoạn mã đã thiết kế.
  4. Gắn liền với cấu trúc công nghiệp và dân dụng thực tế: Toàn bộ các khái niệm lý thuyết đều gắn với các thiết bị cụ thể được nêu rõ trong tài liệu như: hệ thống nhà thông minh (cửa tự động, khóa số, điều tiết đèn theo thời gian), thiết bị y tế (máy đo nhịp tim, máy đo huyết áp, máy chụp X-quang) và hệ thống công nghiệp (băng tải cân hàng, điều khiển động cơ, dây chuyền lắp ráp).

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

Giáo trình mô đun Vi điều khiển được thiết kế để phục vụ các nhóm đối tượng và mục đích học thuật sau:

  • Học sinh, sinh viên: Tài liệu được biên soạn phục vụ trực tiếp cho học sinh, sinh viên theo học hệ đào tạo nghề (trung cấp, cao đẳng kỹ thuật) và sinh viên đại học các ngành: Điện tử công nghiệp, Cơ điện tử, Kỹ thuật điều khiển và Tự động hóa, Công nghệ thông tin định hướng hệ thống nhúng.
  • Yêu cầu kiến thức tiên quyết (Prerequisites): Trước khi học mô đun này, người học bắt buộc phải hoàn thành các học phần cơ sở kỹ thuật, bao gồm: Kỹ thuật điện – điện tử (linh kiện bán dẫn diode, transistor, tụ điện, điện trở), Kỹ thuật số (hệ đếm nhị phân, thập lục phân Hex, bảng trạng thái logic, đại số Boole) và kiến thức cơ bản về ngôn ngữ lập trình C.
  • Giảng viên và cơ sở đào tạo: Giảng viên kỹ thuật sử dụng giáo trình như đề cương môn học chuẩn và tài liệu hướng dẫn giảng dạy cho mô đun 90 giờ. Tài liệu cung cấp hệ thống giáo án mẫu về lý thuyết chân linh kiện, sơ đồ nguyên lý mạch đấu nối phần cứng, bài tập lập trình mẫu và quy trình hướng dẫn sinh viên thao tác trên phần mềm Keil C và Arduino IDE.
  • Tự học và tài liệu tra cứu (Reference): Kỹ thuật viên bảo trì hệ thống điện – điện tử, lập trình viên hệ thống nhúng mới bắt đầu có thể sử dụng giáo trình để tra cứu nhanh sơ đồ chân chức năng 8051, cấu trúc thanh ghi ngoại vi Port 0–3, bảng phân vùng nhớ trong Keil C (DATA, CODE, XDATA) và mã code điều khiển cho các linh kiện hiển thị cơ bả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 biên soạn chuyên biệt cho học sinh, sinh viên các khối trường kỹ thuật và học nghề (ngành Điện, Điện tử, Cơ điện tử, Tin học), đồng thời là tài liệu tham khảo cho sinh viên đại học và kỹ thuật viên cần nắm vững nền tảng ghép nối phần cứng và lập trình vi điều khiển từ cơ bản đến ứng dụng.

2. Cần chuẩn bị những kiến thức nền tảng nào trước khi học?

Người học cần trang bị kiến thức về:

  • Điện tử cơ bản: Hiểu về dòng điện, điện áp, nguyên lý hoạt động của điện trở, tụ điện, diode và LED.
  • Điện tử số: Nắm vững hệ đếm nhị phân (Binary), thập lục phân (Hexadecimal), các phép toán logic (AND, OR, NOT, XOR) và bảng mã cổng logic.
  • Khái niệm cơ bản về lập trình C (biến, vòng lặp, câu lệnh điều kiện).

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

Khác với các giáo trình hàn lâm chủ yếu tập trung phân tích sâu về lý thuyết tập lệnh hợp ngữ hoặc mô tả phần cứng chung chung, tài liệu này dành 70% thời lượng (63 giờ) cho thực hành. Giáo trình tích hợp song song cả hai nền tảng: vi điều khiển vi mạch tiêu chuẩn 8051 (lập trình C qua Keil C) và nền tảng nguồn mở ứng dụng Arduino Uno R3, cung cấp sẵn các bài tập thực nghiệm có code hoàn chỉnh và giải thích chi tiết sơ đồ phần cứng.

4. Làm thế nào để tự học giáo trình này đạt hiệu quả tốt nhất?

Người học nên tuân thủ lộ trình:

  • Cài đặt hai công cụ phần mềm được hướng dẫn trong sách: Keil C IDE và Arduino IDE.
  • Học kỹ sơ đồ chân và mạch ghép nối cơ bản (mạch Reset, mạch dao động thạch anh, điện trở kéo lên) trong Bài 2 trước khi lập trình.
  • Tự gõ lại mã nguồn các bài tập mẫu 1, 2, 3 trong Bài 3; sử dụng tính năng debug mô phỏng (Debug Session) trên Keil C để quan sát trạng thái các cổng logic logic trước khi thử nghiệm trên linh kiện thật hoặc board Arduino.

5. Giáo trình có cung cấp các tài liệu bổ trợ hoặc nguồn tra cứu nào kèm theo?

Tài liệu hướng dẫn trực tiếp địa chỉ website tra cứu kỹ thuật của các nhà sản xuất chip bán dẫn lớn (như Intel, Atmel, Philips/Signetics, Siemens, Dallas Semiconductor), trang chủ chính thức của Arduino để tải phần mềm, driver và thư viện mở, cùng các sơ đồ bảng mã tra cứu hiển thị (như bảng mã 7 thanh từ 0 đến 9 dạng Hex).


Kết luận

Giáo trình mô đun "Vi điều khiển" (MĐ 22) do nhóm tác giả Khoa Điện – Điện tử, Tin học biên soạn đã hệ thống hóa toàn diện các kiến thức nền tảng về cấu trúc vi điều khiển 8-bit họ MCS-51 và nền tảng nhúng hiện đại Arduino Uno R3. Tài liệu xác lập một lộ trình học tập thực chất: xây dựng hiểu biết từ cấu tạo phần cứng vi mạch, mạch dao động, mạch reset, kỹ thuật phối ghép ngoại vi mức linh kiện, đến kỹ năng lập trình điều khiển trên ngôn ngữ C và C++ thông qua các môi trường công nghiệp Keil C và Arduino IDE.

Với việc phân bổ thời lượng thực hành áp đảo (63/90 giờ) kết hợp cùng hệ thống bài tập minh họa rõ ràng, giáo trình đóng vai trò là tài liệu đào tạo chuẩn mực cho học sinh, sinh viên các ngành kỹ thuật, cung cấp các năng lực thực hành thiết thực phục vụ vận hành, lập trình và bảo trì các hệ thống điều khiển tự động hóa dân dụng và công nghiệp.