Tổng quan về giáo trình
Tài liệu học tập môn học Kỹ thuật Vi điều khiển được biên soạn bởi Th.S Lê Xứng và Th.S Nguyễn Bá Hội thuộc Khoa Điện tử - Viễn thông, Trường Đại học Bách khoa – Đại học Đà Nẵng. Môn học đóng vai trò trọng tâm trong khối kiến thức kỹ thuật cơ sở và chuyên ngành của các chương trình đào tạo Kỹ sư Kỹ thuật Điện - Điện tử, Tự động hóa, Kỹ thuật Máy tính và Cơ điện tử.
Mục tiêu đào tạo của bài giảng tập trung vào việc trang bị cho người học:
- Hiểu rõ sự khác biệt giữa kiến trúc vi xử lý (Microprocessor) và vi điều khiển (Microcontroller) trong bức tranh tổng thể của hệ thống nhúng (Embedded System).
- Nắm vững cấu trúc phần cứng, sơ đồ chân, chức năng các khối bên trong và không gian tổ chức bộ nhớ của họ vi điều khiển tiêu chuẩn Intel 8051.
- Phân tích và quản lý hệ thống thanh ghi chức năng đặc biệt (SFR), cơ chế ngăn xếp (Stack), mạch tạo dao động, xung nhịp và điều khiển Reset.
- Làm chủ kỹ thuật lập trình cấp thấp bằng hợp ngữ (Assembly) và ngôn ngữ C để điều khiển các khối ngoại vi tích hợp: Cổng vào/ra (I/O Ports), Bộ định thời/Bộ đếm (Timer/Counter), Cổng truyền thông nối tiếp (Serial Port) và Hệ thống xử lý ngắt (Interrupts).
Cấu trúc giáo trình được thiết kế theo tiến trình sư phạm tuyến tính từ cơ sở kiến trúc vi kiến trúc, phương thức định địa chỉ, đến kỹ thuật lập trình và ứng dụng điều khiển ngoại vi thực tế. Điểm đặc sắc của tài liệu là phương pháp trình bày cô đọng, hệ thống hóa bảng biểu thông số kỹ thuật chi tiết, kèm theo các ví dụ thao tác bit và tính toán trạng thái thanh ghi chuẩn xác.
Nội dung kiến thức cốt lõi
Các chương/chủ đề chính
Tài liệu được phân chia thành các chủ đề then chốt bao quát toàn diện họ vi điều khiển 8051:
- Tổng quan Hệ thống vi xử lý, Vi điều khiển và Hệ thống nhúng:
Phân tích cấu trúc phần cứng; so sánh chi tiết các đặc tính kỹ thuật giữa vi xử lý rời rạc (Intel x86, Motorola 680x0) và vi điều khiển đơn chip (Intel 8051, Motorola 6811, Zilog Z80, PIC 16X); xác lập các tiêu chí lựa chọn vi điều khiển trong thiết kế sản phẩm.
- Sơ đồ khối và chức năng chân (Block and Pin Diagrams):
Mô tả cấu trúc bus nội vi, đơn vị điều khiển CPU, bộ định thời, mạch dao động và 4 cổng I/O (P0, P1, P2, P3 gồm 32 chân). Khảo sát chi tiết các chân tín hiệu điều khiển bus ngoài như ALE (Address Latch Enable), $\overline{\text{EA}}$, $\overline{\text{PSEN}}$, chân Reset (RST) và giao tiếp UART (TxD, RxD).
- Tổ chức không gian bộ nhớ (Memory Organization):
Khảo sát phân vùng bộ nhớ chương trình (ROM nội) từ các dòng vi điều khiển 8031 (0 KB), 8051/8751/8951 (4 KB), 8052/8752 (8 KB) đến Dallas DS5000-32 (32 KB). Phân tích cấu trúc 128 bytes RAM nội (địa chỉ từ
00H đến 7FH), bao gồm 4 dãy thanh ghi (Register Banks), vùng RAM định địa chỉ từng bit (20H–2FH) và vùng RAM đa mục đích (30H–7FH).
- Các thanh ghi chức năng đặc biệt (Special Function Registers - SFRs):
Đặc tả chi tiết nhóm thanh ghi CPU (ACC, B, PSW, SP, DPTR), nhóm định thời (TMOD, TCON, TH0, TL0, TH1, TL1), nhóm truyền thông nối tiếp (SCON, SBUF), nhóm điều khiển ngắt (IE, IP) và điều khiển nguồn (PCON).
- Mạch dao động và hoạt động Reset (Oscillator and Reset):
Cấu hình mạch dao động thạch anh ngoại vi (chân XTAL1, XTAL2) và nguồn xung clock TTL; quy tắc tính toán chu kỳ máy ($T_{\text{machine cycle}} = 12 / f_{\text{OSC}}$) cho các mức tần số thạch anh tiêu chuẩn (11.0592 MHz, 16 MHz).
- Tập lệnh, các chế độ định địa chỉ và lập trình hợp ngữ:
Cơ chế định địa chỉ trực tiếp, gián tiếp, tức thời; kỹ thuật thao tác trên bit dữ liệu riêng lẻ; cấu trúc các lệnh toán học, logic và điều khiển luồng.
- Lập trình ngoại vi và ứng dụng thực hành:
Lập trình I/O, Timer/Counter, truyền thông nối tiếp, xử lý ngắt; thiết kế hệ thống hiển thị LED 7 đoạn, tạo sóng vuông, đồng hồ số, giao tiếp máy tính PC qua mã nguồn C, đọc ADC ghép nối cảm biến và điều chế độ rộng xung (PWM).
+-------------------------------------------------------------------+
| HỆ THỐNG NHÚNG (EMBEDDED SYSTEM) |
+-------------------------------------------------------------------+
+-----------------------------+ +-----------------------------+
| VI XỬ LÝ (MICROPROCESSOR) | | VI ĐIỀU KHIỂN (MICROCONTROLLER)|
| - CPU đơn lẻ | | - Tích hợp CPU, RAM, ROM, |
| - RAM, ROM, I/O, Timer ngoài| | I/O, Timer trên 1 chip |
| - Đa năng, đa mục đích | | - Đơn mục đích, giá thấp |
| - Vd: Intel x86, 680x0 | | - Vd: 8051, PIC, 6811, Z80 |
+-----------------------------+ +-----------------------------+
+-----------------------------+
| HỌ 8051 TIÊU CHUẨN |
| - 128B RAM Nội (00H - 7FH) |
| - 4KB Flash/ROM (8951/8051) |
| - 4 Cổng I/O (32 chân) |
| - 2 Timer 16-bit, 1 UART |
+-----------------------------+
Kiến thức nền tảng được xây dựng
Tài liệu thiết lập hệ thống khái niệm nền tảng về kiến trúc máy tính chuyên biệt:
- Khái niệm Ánh xạ bộ nhớ (Memory-Mapped I/O): Mọi thanh ghi chức năng và các cổng I/O đều được định vị trực tiếp trong không gian địa chỉ bộ nhớ, cho phép truy xuất thông qua các lệnh truy cập bộ nhớ tiêu chuẩn.
- Cấu trúc ngăn xếp trên RAM nội: Ngăn xếp của 8051 được bố trí trực tiếp trên RAM nội (thay vì trên bộ nhớ ngoài như hệ vi xử lý). Con trỏ ngăn xếp (SP) là thanh ghi 8-bit, tự động trỏ đến giá trị
07H sau khi Reset, khiến dữ liệu cất đầu tiên được ghi vào địa chỉ 08H (thuộc Register Bank 1).
- Quản trị trạng thái qua thanh ghi PSW: Hệ thống cờ trạng thái gồm Cờ nhớ ($C$), Cờ nhớ phụ ($AC$ – báo tràn từ bit 3 sang bit 4), Cờ tràn số học có dấu ($OV$ – xác lập khi kết quả vượt ngoài đoạn $[-128, +127]$ với số có dấu hoặc lớn hơn 255 với số không dấu), Cờ chẵn lẻ ($P$ – đảm bảo tổng số bit 1 trong thanh ghi $A$ và bit $P$ luôn là số chẵn), cùng cặp bit $RS1, RS0$ dùng để chuyển đổi linh hoạt giữa 4 dãy thanh ghi:
- $RS1=0, RS0=0 \rightarrow$ Bank 0 (Địa chỉ
00H–07H)
- $RS1=0, RS0=1 \rightarrow$ Bank 1 (Địa chỉ
08H–0FH)
- $RS1=1, RS0=0 \rightarrow$ Bank 2 (Địa chỉ
10H–17H)
- $RS1=1, RS0=1 \rightarrow$ Bank 3 (Địa chỉ
18H–1FH)
Kỹ năng phát triển
- Kỹ năng phân tích phần cứng: Đọc hiểu sơ đồ chân, giản đồ định thời xung nhịp, tính toán chu kỳ lệnh và tương tác tín hiệu ALE trong các chu kỳ truy xuất dữ liệu ngoài với lệnh
MOVX.
- Kỹ năng tối ưu hóa mã lệnh: Khai thác tính năng xử lý bit độc lập để rút gọn lệnh điều khiển I/O (ví dụ: thực thi trực tiếp lệnh
SETB 7FH chỉ với 1 lệnh, thay thế cho chuỗi 3 lệnh đọc-sửa-ghi phức tạp trên vi xử lý: MOV A, 2FH; ORL A, #10000000B; MOV 2FH, A).
- Kỹ năng lập trình ghép nối ngoại vi: Cấu hình thanh ghi định thời (TMOD, TCON), thanh ghi truyền thông (SBUF, SCON) và thiết kế hệ thống hiển thị số, chuyển đổi tín hiệu tương tự (ADC) và điều chế độ rộng xung (PWM).
Phương pháp giảng dạy và học tập
Tài liệu áp dụng phương pháp tiếp cận trực quan, kết hợp giữa mô tả vi kiến trúc phần cứng và phân tích dòng thực thi của lệnh:
- Phương pháp giải mã trạng thái từng bước (Step-by-step Tracing): Tài liệu cung cấp các bài tập cụ thể về phép cộng nhị phân để theo dõi sự thay đổi của các cờ $C, AC, P, OV$ trong thanh ghi trạng thái (PSW). Ví dụ minh họa các trường hợp:
- Phép cộng
88H + 93H = 11BH: Tạo số nhớ từ bit 7 ($C=1$), không nhớ từ bit 3 ($AC=0$), kết quả byte thấp có hai bit 1 ($P=0$).
- Phép cộng
9CH + 64H = 100H: Tạo số nhớ từ bit 7 ($C=1$), có số nhớ từ bit 3 ($AC=1$), thanh ghi $A = 00H$ không có bit 1 ($P=0$).
- Phép cộng
38H + 2FH = 67H: Không tràn bit 7 ($C=0$), có nhớ từ bit 3 ($AC=1$), thanh ghi $A$ có năm bit 1 ($P=1$).
- Minh họa trực quan chuyển dịch con trỏ ngăn xếp (Stack Pointer): Quá trình thực thi tuần tự các lệnh nạp hằng số và cất vào ngăn xếp (
MOV R6,#25H; MOV R1,#12H; MOV R4,#0F3H; PUSH 6; PUSH 1; PUSH 4) được mô tả chi tiết theo từng nấc tăng của con trỏ SP từ 07H lên 08H (lưu 25H), 09H (lưu 12H), và 0AH (lưu F3H).
- Quy trình tiếp cận ứng dụng theo dự án: Nội dung hướng dẫn sinh viên xây dựng các ứng dụng cụ thể từ cơ bản đến phức tạp: từ điều khiển cổng xuất/nhập, tạo sóng vuông, đồng hồ số trên LED 7 đoạn, đến viết mã nguồn C kết nối máy tính PC, giao tiếp ADC và phát tín hiệu xung PWM.
- Định hướng tự học và công cụ phát triển: Cung cấp phương pháp lựa chọn vi điều khiển dựa trên 3 tiêu chí: nhiệm vụ/giá thành, công cụ phát triển phần mềm (Assembler, bộ sửa lỗi Debugger, trình biên dịch C, công cụ mô phỏng), và nguồn cung ứng linh kiện trên thị trường.
Điểm nổi bật và cập nhật
- Hệ thống hóa nguồn học liệu kinh điển: Giáo trình tổng hợp và kế thừa có chọn lọc các tài liệu học thuật tiêu chuẩn trong và ngoài nước:
- I. Scott Mackenzie, Họ Vi điều khiển 8051 (Bản dịch của Tống Văn On và Hoàng Đức Hải, 2001).
- Ngô Diên Tập, Kỹ thuật ghép nối máy tính (2000) và Đo lường và điều khiển bằng máy tính (1998).
- Đỗ Xuân Tiến, Kỹ thuật Vi xử lý và lập trình Assembly cho hệ vi xử lý (2003).
- Sencer Yeralan, The 8051 Cookbook for Assembly and C with Experiments in Mechatronics and Robotics (2000) và Programming and Interfacing the 8051 Microcontroller (1995).
- Bảng so sánh thông số kỹ thuật chi tiết họ 8051: Cung cấp đối chiếu tường minh giữa các thành viên vi điều khiển họ 8051 tiêu chuẩn:
| Đặc tính kỹ thuật |
8031 |
8051 |
8751 |
8951 (AT89C51) |
8052 |
8752 (AT89C52) |
| Bộ nhớ chương trình (Code Memory) |
0 KB |
4 KB Mask ROM |
4 KB EPROM |
4 KB Flash ROM |
8 KB Mask ROM |
8 KB EPROM |
| Bộ nhớ dữ liệu nội (Data RAM) |
128 Bytes |
128 Bytes |
128 Bytes |
128 Bytes |
256 Bytes |
256 Bytes |
| Bộ định thời (Timers) |
2 |
2 |
2 |
2 |
3 |
3 |
| Số chân Vào/Ra (I/O Pins) |
32 |
32 |
32 |
32 |
32 |
32 |
| Cổng nối tiếp (Serial Port) |
1 |
1 |
1 |
1 |
1 |
1 |
| Nguồn ngắt (Interrupt Sources) |
5 |
5 |
5 |
5 |
6 |
6 |
- Chỉ rõ các ngoại lệ kỹ thuật phần cứng: Tài liệu ghi nhận các hiện tượng đặc thù trong quá trình hoạt động của chip, chẳng hạn như xung tín hiệu ALE có tần số bằng $1/6$ tần số xung clock hệ thống, nhưng trong suốt thời gian vi điều khiển thực thi lệnh truy xuất bộ nhớ ngoài
MOVX, một xung ALE sẽ bị bỏ qua.
Đối tượng sử dụng giáo trình
- 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 khối ngành Kỹ thuật Điện, Điện tử - Viễn thông, Điều khiển và Tự động hóa, Kỹ thuật Máy tính, Cơ điện tử và Công nghệ Thông tin.
- Điều kiện tiên quyết (Prerequisites): Người học cần có kiến thức cơ sở về Kỹ thuật số (hệ đếm nhị phân, thập lục phân, cổng logic, mạch chốt, thanh ghi), Nguyên lý Kiến trúc Máy tính và kỹ năng lập trình ngôn ngữ C căn bản.
- Giảng viên chuyên ngành: Sử dụng làm khung đề cương bài giảng lý thuyết, biên soạn hệ thống bài tập trạng thái thanh ghi và thiết kế giáo án thực hành phòng thí nghiệm vi xử lý - vi điều khiển.
- Kỹ sư và người tự học: Dùng làm tài liệu tra cứu cứu cánh cấu trúc phần cứng, ánh xạ thanh ghi SFR, bảng định địa chỉ bit và cơ chế định thời trong quá trình phát triển các ứng dụng nhúng sử dụng lõi 8051.
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ế chuẩn mực cho sinh viên đại học ngành kỹ thuật kỹ thuật điện tử, tự động hóa, cơ điện tử và kỹ thuật máy tính đang học môn Kỹ thuật Vi điều khiển hoặc Hệ thống nhúng cơ bản.
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 nắm vững kiến thức về đại số Boolean, mạch logic số, hệ cơ số nhị phân/hexadecimal và tư duy lập trình cấu trúc (ngôn ngữ C hoặc hợp ngữ căn bản).
3. Sự khác nhau cốt lõi giữa vi xử lý và vi điều khiển trong tài liệu là gì?
Vi xử lý chỉ chứa đơn vị xử lý trung tâm (CPU) trên chip, yêu cầu RAM, ROM, mạch định thời và cổng I/O gắn ngoài qua các đường bus; thích hợp cho các hệ thống máy tính đa mục đích. Vi điều khiển tích hợp toàn bộ CPU, RAM, ROM, I/O ports và Timers trên cùng một chip; tối ưu cho các hệ thống chuyên dụng, chi phí thấp, năng lượng tiêu thụ thấp và không gian hạn chế.
HỆ THỐNG VI XỬ LÝ (RỜI RẠC) VI ĐIỀU KHIỂN (ĐƠN CHIP)
4. Tại sao cần phải khởi tạo lại con trỏ ngăn xếp (SP) trong chương trình 8051?
Sau khi khởi động hoặc Reset, thanh ghi SP nhận giá trị mặc định là 07H, thao tác lưu trữ đầu tiên (PUSH hoặc lệnh gọi hàm) sẽ ghi vào địa chỉ 08H. Địa chỉ 08H thuộc Register Bank 1 (08H–0FH). Nếu chương trình có sử dụng các thanh ghi thuộc Bank 1, Bank 2, Bank 3 mà không khởi tạo lại SP (ví dụ thiết lập MOV SP, #5FH để chuyển đỉnh ngăn xếp lên 60H), dữ liệu ngăn xếp sẽ ghi đè lên các thanh ghi này.
5. Tài liệu trích dẫn những tài liệu tham khảo tiêu chuẩn nào?
Tài liệu trích dẫn các công trình học thuật của I. Scott Mackenzie (2001), PGS.TS Ngô Diên Tập (1998, 2000), TS Đỗ Xuân Tiến (2003) và các giáo trình thực hành của Sencer Yeralan (1995, 2000).
Kết luận
Bài giảng Kỹ thuật Vi điều khiển của Th.S Lê Xứng và Th.S Nguyễn Bá Hội cung cấp bức tranh chi tiết, có cấu trúc chặt chẽ về họ vi điều khiển 8051 từ nguyên lý phần cứng đến giải pháp lập trình ứng dụng.
Lộ trình học tập đề xuất:
- Tiếp cận từ việc phân định vi xử lý và vi điều khiển trong các hệ thống nhúng.
- Nắm vững sơ đồ khối, chức năng chân tín hiệu và cấu trúc tổ chức bộ nhớ RAM/ROM nội.
- Làm chủ hệ thống thanh ghi chức năng đặc biệt (SFR), quy tắc tính chu kỳ lệnh và hoạt động ngăn xếp.
- Lập trình điều khiển các khối ngoại vi tích hợp (I/O, Timer, Serial, Ngắt) và triển khai các mô-đun phần cứng thực tế (LED 7 đoạn, ADC, PWM).