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

Giáo trình Vi điều khiển được biên soạn bởi Bộ môn Điện - điện tử thuộc Khoa Kỹ thuật Điện – Công nghệ, Trường Trung cấp Công nghệ và Du lịch Hà Nội, ban hành theo Quyết định số 32/QĐ-CNDL ngày 28 tháng 02 năm 2023. Trong chương trình đào tạo ngành Công nghệ kỹ thuật điện – điện tử, vi điều khiển là mô đun kỹ thuật chuyên ngành bắt buộc, giữ vai trò bản lề nhằm cung cấp kiến thức nền tảng về phần cứng và kỹ thuật lập trình điều khiển nhúng cho học viên.

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ý cấu trúc phần cứng vi điều khiển 8-bit họ MCS-51 (tiêu biểu như 8051, 8032/8052, AT89S52).
  • Nắm vững sơ đồ chân, chức năng các cổng xuất/nhập (Port 0 đến Port 3) và các tín hiệu điều khiển (ALE, PSEN, EA, RST).
  • Phân tích và quản lý tổ chức bộ nhớ chương trình (ROM), bộ nhớ dữ liệu (RAM nội, RAM ngoại) và hệ thống thanh ghi chức năng đặc biệt (SFR).
  • Sử dụng thành thạo tập lệnh hợp ngữ (Assembly), các chế độ định địa chỉ, cơ chế định thời (Timer/Counter), truyền thông nối tiếp (UART) và hệ thống xử lý ngắt.

Giáo trình được cấu trúc thành 7 bài học tuần tự, tiếp cận từ tổng quan lịch sử, phân tích chi tiết phần cứng vi mạch, hệ thống tập lệnh, cấu hình khối ngoại vi cho đến kỹ thuật phát triển phần mềm hợp ngữ với macro và liên kết mô-đun. Điểm đặc sắc của tài liệu là phương pháp trình bày mang tính kỹ thuật chính xác: mỗi câu lệnh và chế độ hoạt động đều được mô tả chi tiết kèm theo cú pháp, dung lượng byte trong ROM, chu kỳ máy thực thi, ảnh hưởng tới thanh ghi trạng thái (PSW) và các ví dụ minh họa bằng mã máy cụ thể.


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

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

Giáo trình được triển khai qua 7 bài học trọng tâm:

  1. Bài 1: Sơ lược về lịch sử và hướng phát triển của vi điều khiển
    Trình bày tiến trình phát triển từ vi xử lý đến chip vi điều khiển đầu tiên Intel 8748 (họ MCS-48 năm 1976) và chuẩn công nghệ Intel 8051 (họ MCS-51 năm 1980). Khảo sát hai mô hình cấu trúc bộ nhớ cơ bản: kiến trúc Von Neumann (dùng chung bus cho dữ liệu và mã lệnh) và kiến trúc Harvard (tách biệt không gian nhớ và bus cho dữ liệu và chương trình). Đánh giá phạm vi ứng dụng trong thiết bị gia dụng, viễn thông, đo lường và xu hướng tối ưu hóa tần số xung clock, giảm tiêu thụ công suất.

  2. Bài 2: Cấu trúc họ vi điều khiển 8051
    Khảo sát kiến trúc phần cứng chuẩn: vỏ 40 chân, 4 cổng I/O 8-bit (P0-P3), bộ nhớ Flash ROM nội từ 4 KB đến 20 KB (hỗ trợ nạp/xóa bằng điện 10.000 lần trên dòng AT89Sxx), RAM nội 128 byte. Phân tích chi tiết 210 bit có thể định địa chỉ bit riêng rẽ (gồm 128 bit trong dải địa chỉ byte 20H–2FH và các bit trong khối SFR). Khảo sát tập thanh ghi chức năng đặc biệt: PSW, ACC, B, SP, DPTR (ghép từ DPLDPH), TMOD, TCON, SCON, IE, IP. Trình bày kỹ thuật ghép nối mở rộng bộ nhớ ngoài lên đến 64 KB ROM và 64 KB RAM thông qua vi mạch chốt địa chỉ 74373 (sử dụng chân ALE) và vi mạch giải mã địa chỉ 74138. Phân tích các cải tiến của vi mạch 8032/8052 (thêm 128 byte RAM từ 80H–FFH truy xuất gián tiếp và Timer 2).

  3. Bài 3: Tập lệnh 8051
    Phân loại 8 chế độ định địa chỉ: định địa chỉ thanh ghi (Rn), trực tiếp (direct), gián tiếp (@Ri), tức thời (#data), tương đối (offset 8-bit từ -128 đến +127 byte), tuyệt đối (phạm vi 2 KB với ACALL/AJMP), dài (phạm vi 64 KB với LCALL/LJMP), và định địa chỉ theo chỉ số (@A+DPTR, @A+PC). Khảo sát hệ thống lệnh gồm 5 nhóm chí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, CPL, CLR, RL, RLC, RR, RRC, SWAP); nhóm lệnh truyền dữ liệu (MOV, MOVX, MOVC, PUSH, POP); nhóm lệnh xử lý bit Boolean; và nhóm lệnh rẽ nhánh chương trình.

  4. Bài 4: Bộ định thời (Timer/Counter)
    Cấu hình và vận hành hai bộ định thời 16-bit Timer 0 và Timer 1 (cùng Timer 2 trên 8052). Phân tích cấu trúc các thanh ghi điều khiển TMOD (chọn chế độ hoạt động) và TCON (điều khiển chạy/dừng và cờ tràn). Khảo sát 4 chế độ làm việc: Chế độ 0 (Timer 13-bit), Chế độ 1 (Timer 16-bit), Chế độ 2 (Tự động nạp lại 8-bit), và Chế độ 3 (Tách biệt Timer 0 thành hai bộ đếm 8-bit). Thiết lập nguồn xung nội phục vụ định thời hoặc xung ngoại tại chân T0/T1 phục vụ đếm sự kiện.

  5. Bài 5: Cổng nối tiếp
    Khảo sát 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 tốc độ cố định), Chế độ 1 (UART 8-bit 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 thiết lập bit dữ liệu thứ 9, bit kiểm tra chẵn/lẻ (Parity) và cơ chế truyền thông đa xử lý.

  6. Bài 6: Ngắt (Interrupt)
    Tổ chức hệ thống ngắt của 8051 với 5 nguồn ngắt tiêu chuẩn (ngắt ngoài INT0, INT1, ngắt Timer 0, Timer 1, và ngắt cổng nối tiếp RI/TI). Cơ chế điều khiển thông qua thanh ghi cho phép ngắt IE và thanh ghi ưu tiên ngắt IP. Phân tích giản đồ thời gian đáp ứng ngắt và cấu trúc chương trình phục vụ ngắt (ISR).

  7. Bài 7: Phần mềm hợp ngữ (Assembler)
    Quy trình biên dịch mã nguồn Assembly sang mã máy, cú pháp định dạng một dòng lệnh dữ liệu, cách tính toán biểu thức trong quá trình hợp dịch, các chỉ thị điều khiển trình biên dịch (Assembler Directives), kỹ thuật tổ chức chương trình con, liên kết tệp (Linker) và định nghĩa khối Macro.

flowchart TD
    A["Bài 1: Lịch sử & Cấu trúc tổng quát (Von Neumann / Harvard)"] --> B["Bài 2: Phần cứng 8051 (Sơ đồ chân, ROM, RAM, SFR, Bus ngoài)"]
    B --> C["Bài 3: Tập lệnh 8051 (8 chế độ định địa chỉ, 5 nhóm lệnh)"]
    C --> D["Bài 4: Bộ định thời Timer/Counter (TMOD, TCON, Chế độ 0-3)"]
    C --> E["Bài 5: Cổng nối tiếp UART (SCON, SBUF, Tốc độ Baud)"]
    C --> F["Bài 6: Hệ thống Ngắt (IE, IP, Ngắt ngoài, Timer, Serial)"]
    D --> G["Bài 7: Lập trình Hợp ngữ Assembler (Chỉ thị, Liên kết, Macro)"]
    E --> G
    F --> G

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

  • Nguyên lý kiến trúc phần cứng: Khái niệm phân tách không gian nhớ chương trình và dữ liệu theo cấu trúc Harvard; cơ chế ghép đa hợp bus địa chỉ/dữ liệu trên Port 0 và kỹ thuật tách bus bằng tín hiệu điều khiển ALE.
  • Hệ thống thanh ghi và cờ trạng thái: Cấu trúc byte của thanh ghi PSW với chức năng cụ thể của từng bit: Cờ nhớ C (Bit 7), Cờ nhớ phụ AC (Bit 6), Cờ người dùng F0 (Bit 5), Cặp bit chọn dãy thanh ghi RS1-RS0 (Bit 4-3 để trỏ vào Bank 0 đến Bank 3), Cờ tràn số có dấu OV (Bit 2), và Cờ chẵn lẻ P (Bit 0).
  • Mô hình ánh xạ bộ nhớ: Phương pháp giải mã địa chỉ thông qua cổng logic và vi mạch phân kênh 74138; giải pháp gối không gian nhớ ROM và RAM ngoài bằng cổng AND kết hợp tín hiệu PSENRD.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật: Phân tích sơ đồ mạch nguyên lý; thiết kế giao tiếp vi điều khiển với bộ nhớ ngoài (EPROM 2764, RAM 6264) và linh kiện ngoại vi thông qua các chân I/O.
  • Kỹ năng phân tích: Tính toán chu kỳ máy ($1 \text{ chu kỳ máy} = 12 \text{ chu kỳ dao động thạch anh}$); tính khoảng cách nhảy tương đối (Relative Offset); tính toán giá trị nạp ban đầu cho Timer để tạo thời gian trễ chính xác và xác lập tốc độ Baud chuẩn.
  • Kỹ năng thực hành: Viết mã nguồn Assembly hợp thức; sử dụng lệnh hiệu chỉnh thập phân DA A cho phép toán số BCD; xử lý thao tác bit trên các cổng logic; lập trình điều khiển tuần tự và xử lý ngắt thời gian thực.

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 vi điện tử: tiếp cận từ cấu trúc phần cứng tĩnh (chân tín hiệu, thanh ghi, ô nhớ) đến trạng thái động của hệ thống (chu kỳ tìm-nạp lệnh, thay đổi giá trị thanh ghi, phản ứng ngắt).

+-------------------------------------------------------------+
| Cấu trúc mô tả một câu lệnh hợp ngữ trong giáo trình:        |
| 1. Cú pháp chuẩn (Mnemonic + Toán hạng)                     |
| 2. Dung lượng chiếm dụng trong bộ nhớ Flash ROM (1-3 Byte)  |
| 3. Thời gian thực thi hệ thống (1, 2 hoặc 4 Chu kỳ máy)     |
| 4. Mô tả chi tiết tác động dữ liệu và ảnh hưởng lên cờ PSW  |
| 5. Đoạn mã ví dụ cụ thể với dữ liệu đầu vào và kết quả      |
+-------------------------------------------------------------+

Hệ thống bài tập và ví dụ được xây dựng gắn liền với từng chỉ lệnh thực tế:

  • Ví dụ tính toán số học: Minh họa lệnh cộng có nhớ ADDC A, Rn, trừ có mượn SUBB A, direct, nhân MUL AB (lưu byte thấp ở A, byte cao ở B, kiểm tra cờ tràn OV), chia DIV AB (thương số ở A, số dư ở B), và lệnh nắn số DA A sau phép cộng hai số BCD.
  • Ví dụ thao tác logic và quay bit: Minh họa các phép toán logic ANL, ORL, XRL trên thanh ghi và ô nhớ trực tiếp; các lệnh quay vòng dữ liệu RL A, RR A, quay qua cờ nhớ RLC A, RRC A, và lệnh hoán đổi 4-bit SWAP A.
  • Ví dụ truy xuất bộ nhớ: Minh họa các phương thức đọc/ghi dữ liệu RAM nội đa năng (MOV A, 5FH, MOV A, @R0), truy xuất vùng nhớ ngoài qua con trỏ dữ liệu (MOVX A, @DPTR), và truy xuất bảng dữ liệu cố định trong ROM (MOVC A, @A+DPTR).

Phương pháp đánh giá học phần yêu cầu người học:

  1. Giải thích được giản đồ xung thời gian các chu kỳ đọc/ghi bộ nhớ ngoài.
  2. Viết đúng cú pháp các câu lệnh hợp ngữ và tính toán chính xác trạng thái các bit cờ PSW sau khi thực thi đoạn mã.
  3. Cấu hình đúng các thanh ghi TMOD, TCON, SCON, IE, IP để giải quyết các bài toán định thời, truyền dữ liệu UART và xử lý tín hiệu ngắt.

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

  • Cập nhật công nghệ vi điều khiển họ MCS-51: Tài liệu tích hợp các thông số kỹ thuật của các dòng vi mạch Flash ROM như AT89S52, AT89S53 của hãng Atmel, hỗ trợ nạp/xóa chương trình bằng điện (ISP) lên đến 10.000 lần, thay thế cho các dòng vi điều khiển thế hệ cũ sử dụng EPROM nạp xóa bằng tia cực tím.
  • So sánh kiến trúc mở rộng 8032/8052: Làm rõ cấu trúc phân tầng bộ nhớ khi nâng cấp từ 8051 lên 8052, cụ thể là việc bổ sung 128 byte RAM nội vùng cao từ địa chỉ 80H đến FFH (sử dụng chế độ định địa chỉ gián tiếp qua @R0/@R1 để không xung đột với vùng thanh ghi chức năng đặc biệt SFR) và tích hợp thêm khối định thời Timer 2 điều khiển qua thanh ghi T2CON.
Đặc tính kỹ thuật Vi điều khiển 8051 / 8031 Vi điều khiển 8052 / 8032 Vi điều khiển AT89S52
Bộ nhớ Flash ROM nội 4 KByte (8051) / 0 KB (8031) 8 KByte (8052) / 0 KB (8032) 8 KByte Flash (Nạp/xóa điện)
Bộ nhớ RAM nội 128 Byte (00H - 7FH) 256 Byte (00H - FFH) 256 Byte (00H - FFH)
Số lượng Timer/Counter 2 bộ 16-bit (Timer 0, Timer 1) 3 bộ 16-bit (Timer 0, 1, 2) 3 bộ 16-bit (Timer 0, 1, 2)
Số lượng chân I/O 32 chân (4 Port: P0, P1, P2, P3) 32 chân (4 Port: P0, P1, P2, P3) 32 chân (4 Port: P0, P1, P2, P3)
Mở rộng ROM/RAM ngoài Tối đa 64 KB ROM / 64 KB RAM Tối đa 64 KB ROM / 64 KB RAM Tối đa 64 KB ROM / 64 KB RAM
  • Kỹ thuật phát triển và gỡ lỗi phần mềm: Trình bày giải pháp mạch phần cứng cho phép không gian bộ nhớ chương trình và bộ nhớ dữ liệu gối lên nhau (sử dụng cổng logic AND giữa hai tín hiệu điều khiển PSENRD nối vào chân OE của RAM), giúp nạp mã chương trình vào RAM dưới dạng dữ liệu để chạy thử nghiệm và gỡ lỗi trực tiếp mà không cần ghi vào ROM cố định.
  • Tính thực tiễn trong kỹ thuật điều khiển: Phân tích ứng dụng vi điều khiển trong các hệ thống đo lường điện tử, bàn phím máy tính, thiết bị báo cháy, dây chuyền tự động hóa nhỏ và các cơ cấu điều khiển hiển thị.

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

  • Học viên và sinh viên ngành kỹ thuật: Tài liệu được thiết kế làm giáo trình chính khóa cho học viên trình độ Trung cấp và Cao đẳng nghề ngành Công nghệ kỹ thuật điện – điện tử, Kỹ thuật điện, Điện tử công nghiệp, Tự động hóa. Đồng thời, giáo trình là tài liệu tham khảo cơ sở cho sinh viên đại học ngành Kỹ thuật điều khiển và Kỹ thuật máy tính khi học phần Kiến trúc máy tính và Vi xử lý - Vi điều khiển.
  • 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 điện tử số: Hệ đếm nhị phân (Binary), thập lục phân (Hexadecimal), mã BCD, đại số logic Boolean, các mạch logic tổ hợp và tuần tự (cổng logic, flip-flop, IC chốt 74373, IC giải mã 74138).
    • Mạch điện tử cơ bản: Nguyên lý hoạt động của điện trở, tụ điện, thạch anh tạo dao động, transistor, LED đơn, và mạch Reset RC.
  • Giảng viên chuyên ngành: Sử dụng làm căn cứ chuẩn hóa bài giảng lý thuyết, xây dựng hệ thống bài tập phân tích tập lệnh và thiết kế các bài thí nghiệm vi điều khiển tại xưởng thực hành.
  • Kỹ thuật viên tự học: Tài liệu cung cấp bảng tra cứu toàn diện về tập lệnh, địa chỉ bit/byte của từng thanh ghi SFR, sơ đồ kết nối chân và cấu trúc chương trình hợp ngữ.

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

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

Giáo trình phù hợp với học viên, sinh viên các ngành Công nghệ kỹ thuật điện – điện tử, Điện tử viễn thông, Cơ điện tử, Tự động hóa đang theo học mô đun Vi điều khiển; cũng như các kỹ thuật viên cần tài liệu tra cứu chuẩn về kiến trúc MCS-51 và tập lệnh hợp ngữ Assembly.

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 về Kỹ thuật số (hệ đếm nhị phân/hex, chuyển đổi mã BCD, phép toán logic AND/OR/XOR/NOT), cấu trúc các cổng logic cơ bản, IC giải mã/chốt và nguyên lý hoạt động của các mạch điện tử cơ bản (mạch dao động thạch anh, mạch tạo xung Reset RC).

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ì?

Tài liệu tập trung mô tả chi tiết mức phần cứng và cơ chế thực thi cấp thấp của vi mạch họ MCS-51. Mỗi câu lệnh đều được phân tích đầy đủ về số byte chiếm dụng trong ROM, số chu kỳ máy tiêu tốn, biểu thức tác động lên từng cờ của thanh ghi trạng thái PSW, và phương pháp ghép nối trực tiếp các IC nhớ ngoại (2764, 6264) bằng bus đa hợp.

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

Người học nên học tuần tự từ cấu trúc phần cứng (Bài 2) để hiểu rõ ánh xạ bộ nhớ và các thanh ghi SFR, sau đó thực hành giải mã từng nhóm lệnh (Bài 3). Khi viết một câu lệnh, cần tự vẽ sơ đồ thay đổi dữ liệu trong thanh ghi A, B, Rn, ô nhớ RAM và cờ PSW. Kết hợp cấu hình trực tiếp các thanh ghi TMOD, SCON, IE cho các bài toán tạo trễ và truyền thông UART.

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

Giáo trình bao gồm nội dung hướng dẫn phần mềm hợp ngữ Assembler (Bài 7) giúp người học nắm vững các chỉ thị biên dịch, định nghĩa macro và quy trình liên kết chương trình; cùng danh mục Tài liệu tham khảo chuyên ngành vi điều khiển ở trang 130 của giáo trình.


Kết luận

Giáo trình Vi điều khiển (Trường Trung cấp Công nghệ và Du lịch Hà Nội, 2023) là tài liệu đào tạo chuyên môn cung cấp hệ thống tri thức hoàn chỉnh về họ vi điều khiển MCS-51. Nội dung văn bản tập trung vào phân tích kỹ thuật kiến trúc phần cứng, ánh xạ không gian bộ nhớ, tập lệnh hợp ngữ Assembly, và phương pháp vận hành các khối chức năng Timer, Serial Port và Interrupt.

Lộ trình học tập đề xuất theo giáo trình:

  1. Giai đoạn 1 (Phần cứng cơ sở): Nghiên cứu Bài 1 và Bài 2 để nắm vững sơ đồ chân, cấu trúc Port I/O, tổ chức bộ nhớ RAM/ROM và thanh ghi chức năng đặc biệt SFR.
  2. Giai đoạn 2 (Kỹ thuật lập trình tập lệnh): Nghiên cứu Bài 3 và Bài 7 để làm chủ 8 chế độ định địa chỉ, 5 nhóm lệnh hợp ngữ và quy cách biên dịch mã nguồn với Assembler/Macro.
  3. Giai đoạn 3 (Ứng dụng ngoại vi và hệ thống): Nghiên cứu Bài 4, Bài 5 và Bài 6 để thiết lập cấu hình bộ định thời Timer, truyền thông nối tiếp UART và điều khiển hệ thống bằng ngắt thời gian thực.

Tài liệu là cơ sở dữ liệu học thuật tiêu chuẩn, hỗ trợ trực tiếp cho quá trình học tập, giảng dạy và phát triển ứng dụng điều khiển nhúng trong lĩnh vực kỹ thuật điện – điện tử.