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

Giáo trình Vi Điều Khiển do Bộ môn Điện tử thuộc Khoa Điện – Điện tử - Tin học, Trường Cao đẳng nghề số 20/QK3 tổ chức biên soạn, phục vụ trực tiếp cho chương trình đào tạo chuyên ngành Điện tử công nghiệp và ngành Sửa chữa thiết bị tự động hóa. Trong cấu trúc chương trình đào tạo kỹ thuật, mô đun Vi điều khiển đóng vai trò là học phần kỹ thuật chuyên ngành cốt lõi, kết nối giữa kiến thức điện tử số cơ bản với các ứng dụng điều khiển tự động hóa trong thực tế sản xuất và đời sống.

Mục tiêu học tập của giáo trình tập trung vào việc cung cấp cho người học hệ thống tri thức hoàn chỉnh về phần cứng vi điều khiển (lấy họ MCS-51 làm chuẩn công nghệ), cơ chế quản lý bộ nhớ, nguyên lý hoạt động của các cổng vào/ra (Port I/O), và cấu trúc tập lệnh hợp ngữ (Assembly). Sau khi hoàn thành học phần, người học có khả năng phân tích sơ đồ nguyên lý mạch vi điều khiển, tính toán chu kỳ máy, thiết kế ghép nối bộ nhớ và ngoại vi, đồng thời lập trình điều khiển các khối chức năng nội vi như Bộ định thời (Timer/Counter), Cổng truyền thông nối tiếp (UART) và Hệ thống ngắt (Interrupt).

Cấu trúc giáo trình gồm 7 bài học được sắp xếp theo trình tự sư phạm chặt chẽ: từ lịch sử phát triển, kiến trúc phần cứng, tập lệnh cho đến các khối ngoại vi tích hợp và phần mềm dịch hợp ngữ. Điểm đặc thù của tài liệu là phương pháp tiếp cận trực quan, đi sâu vào cấu trúc thanh ghi chức năng đặc biệt (SFR), phân tích chi tiết từng chu kỳ tìm - nạp lệnh thông qua giản đồ thời gian và cung cấp ví dụ tường minh cho từng chỉ lệnh hợp 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 7 bài học chuyên đề với tiến trình phát triển từ lý thuyết phần cứng đến kỹ thuật lập trình hệ thống:

  • Bài 1: Sơ lược về lịch sử và hướng phát triển của vi điều khiển (Trang 5 - 8): Phân tích sự khác biệt cơ bản giữa bộ vi xử lý (Microprocessor) và bộ vi điều khiển (Microcontroller). Trình bày mốc lịch sử từ chip Intel 8748 (họ MCS-48 năm 1976) đến chip Intel 8051 (họ MCS-51 năm 1980). Khảo sát hai mô hình kiến trúc bộ nhớ: kiến trúc Von Neumann (dùng chung bus cho dữ liệu và chương trình) và kiến trúc Harvard (phân tách độc lập bus dữ liệu và bus chương trình). Đánh giá phạm vi ứng dụng trong thiết bị gia dụng, viễn thông và tự động hóa.
  • Bài 2: Cấu trúc họ vi điều khiển 8051 (Trang 9 - 24): Mô tả chi tiết sơ đồ chân vỏ 40 chân và chức năng của 4 cổng xuất/nhập 8-bit ($P0, P1, P2, P3$), các chân điều khiển chuyên dụng ($PSEN, ALE, \overline{EA}, RST, XTAL1, XTAL2$). Phân tích cấu trúc bộ nhớ nội gồm Flash ROM (từ 4KB đến 20KB tùy mã chip như AT89S52, AT89S53), 128 Byte RAM nội (chia thành 4 bank thanh ghi $R0-R7$, 128 bit định địa chỉ bit từ $20H-2FH$, và vùng RAM đa năng $30H-7FH$). Khảo sát tập thanh ghi chức năng đặc biệt (SFR) gồm $PSW, ACC, B, SP, DPTR, P0-P3, TCON, TMOD, SCON, IE, IP$. Hướng dẫn kỹ thuật mở rộng bộ nhớ ngoài 64KB ROM và 64KB RAM sử dụng IC chốt 74373 và IC giải mã địa chỉ 74138, cùng giải pháp gối không gian nhớ chương trình và dữ liệu qua cổng logic AND.
  • Bài 3: Tập lệnh 8051 (Trang 25 - 60): Trình bày 8 chế độ định địa chỉ: thanh ghi, trực tiếp (direct), gián tiếp (@Ri), tức thời (#data), tương đối (offset 8-bit có dấu từ -128 đến +127), tuyệt đối (trang 2KB với ACALL/AJMP), dài (không gian 64KB với LCALL/LJMP) và theo chỉ số (@A+DPTR). Phân loại chi tiết các nhóm lệnh:
    • Nhóm lệnh số học: ADD, ADDC, SUBB, INC, DEC, MUL AB, DIV AB, DA A.
    • Nhóm lệnh logic: ANL, ORL, XRL, CLR, CPL, RL, RLC, RR, RRC, SWAP.
    • Nhóm lệnh truyền dữ liệu: MOV, MOVX, MOVC, XCH.
    • Nhóm lệnh xử lý bit BooleanNhóm lệnh rẽ nhánh chương trình.
  • Bài 4: Bộ định thời (Trang 61 - 73): Cơ chế vận hành của Timer 0, Timer 1 và Timer 2 (trên dòng 8052). Cấu hình thanh ghi chế độ $TMOD$ và thanh ghi điều khiển $TCON$. Phân tích 4 chế độ làm việc: Chế độ 0 (13-bit), Chế độ 1 (16-bit), Chế độ 2 (Tự nạp lại 8-bit), Chế độ 3 (Tách biệt Timer). Kỹ thuật tạo xung định thời và đếm sự kiện ngoại vi.
  • Bài 5: Cổng nối tiếp (Trang 74 - 84): Nguyên lý truyền thông UART qua thanh ghi đệm $SBUF$ và thanh ghi điều khiển $SCON$. Phân tích 4 chế độ truyền thông: Chế độ 0 (Thanh ghi dịch 8-bit), Chế độ 1 (UART 8-bit có tốc độ baud thay đổi theo Timer 1), Chế độ 2 (UART 9-bit tốc độ baud cố định), Chế độ 3 (UART 9-bit tốc độ baud thay đổi). Kỹ thuật truyền thông đa xử lý và cách tạo bit kiểm tra chẵn/lẻ.
  • Bài 6: Ngắt (Trang 85 - 102): Cơ chế xử lý ngắt phần cứng và phần mềm của 8051. Cấu hình thanh ghi cho phép ngắt $IE$ và thanh ghi ưu tiên ngắt $IP$. Thiết kế chương trình phục vụ ngắt cho ngắt ngoài ($\overline{INT0}, \overline{INT1}$), ngắt bộ định thời (Timer 0, Timer 1, Timer 2) và ngắt cổng nối tiếp ($RI/TI$). Phân tích giản đồ thời gian đáp ứng ngắt.
  • Bài 7: Phần mềm hợp ngữ (Trang 103 - 129): Quy trình xử lý của trình dịch Assembler, cấu trúc chương trình nguồn, các quy tắc tính toán biểu thức trong quá trình hợp dịch, chỉ thị điều khiển trình biên dịch (Assembler Directives), hoạt động liên kết (Linker) và kỹ thuật lập trình Macro.
+-------------------------------------------------------------------------------+
|                      TIẾN TRÌNH NỘI DUNG GIÁO TRÌNH 8051                     |
+-------------------------------------------------------------------------------+
| Bài 1: Tổng quan Kiến trúc -> Bài 2: Phần cứng & SFR -> Bài 3: Tập lệnh ASM   |
+---------------------------------------+---------------------------------------+
                                        |
                                        v
+-------------------------------------------------------------------------------+
| Các khối chức năng nội vi:                                                   |
| - Bài 4: Bộ định thời (Timer 0, 1, 2)                                         |
| - Bài 5: Cổng nối tiếp (UART & Baudrate)                                      |
| - Bài 6: Hệ thống ngắt (Interrupts & SFR IE/IP)                              |
+---------------------------------------+---------------------------------------+
                                        |
                                        v
+-------------------------------------------------------------------------------+
| Bài 7: Phần mềm hợp ngữ, Trình dịch Assembler, Liên kết Linker & Macro         |
+-------------------------------------------------------------------------------+

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

Giáo trình xây dựng nền tảng kiến trúc phần cứng hệ thống dựa trên mô hình xử lý 8-bit tiêu chuẩn. Hệ thống lý thuyết cốt lõi bao gồm:

  • Nguyên lý đa hợp bus địa chỉ và bus dữ liệu (Multiplexed Bus) trên Port 0 thông qua tín hiệu chốt địa chỉ $ALE$, giúp tiết kiệm chân vi mạch trong vỏ đóng gói 40 chân.
  • Tổ chức phân tầng bộ nhớ với không gian địa chỉ vật lý độc lập giữa bộ nhớ chương trình nội/ngoại ($PSEN$) và bộ nhớ dữ liệu nội/ngoại ($RD, WR$).
  • Cơ chế quản lý trạng thái hệ thống thông qua từ trạng thái chương trình ($PSW$) chứa các cờ nhớ ($C, AC$), cờ tràn ($OV$), cờ chẵn lẻ ($P$) và các bit chọn bank thanh ghi ($RS0, RS1$).

Kỹ năng phát triển

  • Kỹ năng phân tích phần cứng: Đọc hiểu giản đồ xung chu kỳ tìm - nạp lệnh, tính toán chu kỳ máy dựa trên tần số thạch anh (chu kỳ máy bằng 12 chu kỳ dao động; với thạch anh 12MHz, một chu kỳ máy tương ứng $1\mu s$). Thiết kế sơ đồ mạch ghép nối giải mã địa chỉ sử dụng các IC phụ trợ tiêu chuẩn (74373, 74138, ROM 2764, RAM 6264).
  • Kỹ năng lập trình cấp thấp: Sử dụng hợp ngữ Assembly để thao tác trực tiếp trên từng ô nhớ RAM, từng bit đơn lẻ và thanh ghi chức năng; chuyển đổi định dạng dữ liệu giữa số nhị phân, số Hex và số thập phân mã hóa nhị phân (BCD) bằng lệnh DA A.
  • Kỹ năng điều khiển ngoại vi: Lập trình khởi tạo và điều khiển chính xác thời gian trễ bằng Timer, cấu hình truyền nhận dữ liệu bất đồng bộ qua UART và xây dựng chương trình xử lý sự kiện thời gian thực bằng vector ngắt.

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 kỹ thuật kết hợp chặt chẽ giữa mô tả cấu trúc phần cứng và thực hành lệnh lập trình. Tiến trình bài giảng được thiết kế theo các bước:

  1. Trình bày sơ đồ khối chức năng và cấu trúc thanh ghi liên quan.
  2. Phân tích cú pháp lệnh, dung lượng chiếm dụng bộ nhớ ROM (1 byte, 2 byte hoặc 3 byte) và số chu kỳ máy tiêu tốn để thực thi (1, 2 hoặc 4 chu kỳ máy).
  3. Cung cấp đoạn mã ví dụ kèm theo phân tích trạng thái trước và sau khi thực thi của các ô nhớ và cờ hiệu trong thanh ghi $PSW$.

Tài liệu cung cấp các bài tập tình huống kỹ thuật cụ thể như:

  • Mở rộng bộ nhớ RAM 1KB (chia thành 4 trang 256 byte) kết nối với vi điều khiển bằng cách sử dụng các chân $P2.0$ và $P2.1$ để chọn trang và dùng lệnh MOVX để truy xuất.
  • Thiết kế mạch gối không gian nhớ ROM và RAM sử dụng cổng logic AND kết hợp tín hiệu $PSEN$ và $RD$ để phục vụ việc nạp chương trình vào RAM và gỡ lỗi (debug) trực tiếp trên hệ thống đích.
  • Cấu hình các bộ định thời $T0, T1$ để đo khoảng thời gian sự kiện hoặc tạo xung nhịp chuẩn cho cổng nối tiếp $UART$.

Đối với người học, giáo trình yêu cầu phương pháp tự học dựa trên việc tự tính toán offset cho các lệnh nhảy tương đối (SJMP), xác định địa chỉ vật lý khi lập trình các lệnh nhảy tuyệt đối (AJMP, ACALL) trong phạm vi trang 2KB, và lập bảng phân bổ vùng nhớ RAM nội để tránh xung đột giữa vùng ngăn xếp ($SP$), vùng định địa chỉ bit và các bank thanh ghi công tác.


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

  • Phân định ranh giới kỹ thuật giữa Vi xử lý và Vi điều khiển: Tài liệu phân tích rõ lý do vi điều khiển được lựa chọn cho các hệ thống nhúng quy mô vừa và nhỏ: việc tích hợp CPU, bộ nhớ và các khối ngoại vi xuất/nhập trên cùng một chip IC đơn giúp tối giản kích thước mạch in, giảm độ phức tạp thiết kế và hạ giá thành sản phẩm so với hệ thống vi xử lý rời.
  • So sánh hai mô hình kiến trúc máy tính: Phân tích ưu thế của kiến trúc Harvard (vùng nhớ dữ liệu và chương trình tách biệt, cho phép truy xuất song song) so với kiến trúc Von Neumann (dùng chung một bus địa chỉ và dữ liệu tuyến tính).
  • Cập nhật các biến thể vi điều khiển Flash ROM: Ngoài cấu trúc 8051 truyền thống, giáo trình bổ sung các đặc tính kỹ thuật của các dòng vi mạch hiện đại hơn như AT89S52, AT89S53 với bộ nhớ Flash ROM cho phép xóa/nạp bằng điện lên đến 10.000 lần.
  • Phân tích cải tiến của họ 8032/8052: Làm rõ hai điểm nâng cấp phần cứng then chốt: mở rộng thêm 128 Byte RAM nội tại vùng địa chỉ $80H-FFH$ (chỉ truy xuất qua định địa chỉ gián tiếp @Ri để không xung đột với vùng SFR) và tích hợp thêm bộ định thời 16-bit Timer 2 điều khiển qua thanh ghi $T2CON$.
+-------------------------------------------------------------------------------+
|                  BẢNG SO SÁNH KIẾN TRÚC VÀ CẢI TIẾN PHẦN CỨNG                |
+--------------------+----------------------------+-----------------------------+
| Tiêu chí           | Vi điều khiển 8051 chuẩn   | Vi điều khiển 8052 / Cải tiến|
+--------------------+----------------------------+-----------------------------+
| RAM nội            | 128 Byte (00H - 7FH)       | 256 Byte (thêm 80H - FFH)   |
| Bộ định thời       | 2 Timer (Timer 0, Timer 1) | 3 Timer (thêm Timer 2)      |
| Kiểu bộ nhớ ROM    | ROM mặt nạ / EPROM         | Flash ROM (nạp/xóa 10.000 l)|
| Không gian mở rộng | 64KB ROM / 64KB RAM ngoài  | 64KB ROM / 64KB RAM ngoài   |
| Đa hợp bus         | P0 (AD0-AD7) qua ALE       | P0 (AD0-AD7) qua ALE        |
+--------------------+----------------------------+-----------------------------+

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

Giáo trình được biên soạn phục vụ các nhóm đối tượng cụ thể sau:

  • Sinh viên hệ Cao đẳng và Đại học kỹ thuật: Đặc biệt là sinh viên theo học các ngành Điện tử công nghiệp, Kỹ thuật điều khiển và Tự động hóa, Sửa chữa thiết bị tự động hóa, Cơ điện tử và Kỹ thuật máy tính.
  • Điều kiện tiên quyết: Người học cần có kiến thức nền tảng về Kỹ thuật số (đại số logic Boolean, hệ đếm nhị phân, thập lục phân Hex, cấu tạo cổng logic, mạch chốt flip-flop, thanh ghi dịch) và Mạch điện tử cơ bản.
  • Giảng viên chuyên ngành: Sử dụng làm tài liệu giảng dạy lý thuyết chuẩn hóa, khung tham chiếu để thiết kế bài giảng thực hành phòng thí nghiệm, đề tài môn học và đồ án kỹ thuật vi điều khiển.
  • Kỹ thuật viên và Kỹ sư thực hành: Sử dụng như tài liệu tra cứu cứu cánh về tập lệnh Assembly, cấu trúc bảng thanh ghi chức năng đặc biệt SFR, sơ đồ phân bố chân và phương pháp ghép nối vi mạch phần cứng.

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

1. Giáo trình này phù hợp cho đối tượng người học nào?

Giáo trình phục vụ sinh viên khối ngành kỹ thuật như Điện tử công nghiệp, Tự động hóa, Sửa chữa thiết bị cơ điện và các ngành kỹ thuật liên quan cần học tập mô đun vi điều khiển phần cứng và lập trình hợp ngữ.

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

Người học cần nắm vững kiến thức về Kỹ thuật số (hệ đếm Hex, Binary, các phép toán logic AND/OR/XOR, mạch logic tuần hoàn, bộ đếm) và nguyên lý mạch điện tử cơ bản.

3. Giáo trình tập trung vào dòng vi điều khiển cụ thể nào?

Trọng tâm của giáo trình là họ vi điều khiển MCS-51 tiêu chuẩn (Intel 8051, 8031, 8032, 8052) và các phiên bản cải tiến có bộ nhớ Flash ROM từ hãng Atmel (như AT89C51, AT89S52, AT89S53).

4. Giáo trình hướng dẫn lập trình bằng ngôn ngữ gì?

Giáo trình tập trung hướng dẫn chuyên sâu lập trình bằng Hợp ngữ (Assembly MCS-51) nhằm giúp người học hiểu rõ mối liên hệ giữa câu lệnh, mã máy (Opcode), chu kỳ xung clock và kiến trúc phần cứng bên trong chip.

5. Nội dung giáo trình có đề cập đến phần mềm dịch hợp ngữ không?

Có. Bài 7 của giáo trình dành riêng để phân tích chi tiết về hoạt động của trình dịch Assembler, cấu trúc chương trình nguồn, các chỉ thị biên dịch (Directives), quá trình liên kết (Linker) và kỹ thuật sử dụng Macro.


Kết luận

Giáo trình Vi Điều Khiển của Bộ môn Điện tử, Khoa Điện – Điện tử - Tin học, Trường Cao đẳng nghề số 20/QK3 cung cấp hệ thống kiến thức hoàn chỉnh, có tính học thuật và kỹ thuật chính xác về họ vi điều khiển MCS-51. Tài liệu kết nối liền mạch từ cấu trúc phần cứng, nguyên lý vi mạch, cơ chế quản lý bus và bộ nhớ cho đến tập lệnh hợp ngữ và lập trình điều khiển ngoại vi (Timer, UART, Ngắt). Đây là tài liệu giảng dạy và tra cứu kỹ thuật tiêu chuẩn, cung cấp nền tảng kiến trúc hệ thống phục vụ công tác đào tạo và nghiên cứu ứng dụng kỹ thuật điều khiển nhúng.