Giáo trình Điện tử Ứng dụng Phần mềm SMS32V23 Mô phỏng Vi điều khiển
Tổng quan về giáo trình
Giáo trình "Biên soạn giáo trình điện tử ứng dụng phần mềm SMS32V23 mô phỏng vi điều khiển" được xây dựng dựa trên công trình nghiên cứu và đề tài luận văn tốt nghiệp ngành Kỹ thuật Điện - Điện tử tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh (Giảng viên hướng dẫn: ThS. Nguyễn Phương Quang; Nhóm tác giả: Nguyễn Trần Thanh Nhàn, Trần Thị Hồng). Học phần Vi xử lý - Vi điều khiển giữ vị trí môn học cơ sở ngành then chốt trong chương trình đào tạo kỹ sư và cử nhân các ngành Kỹ thuật Điện tử - Viễn thông, Kỹ thuật Điều khiển & Tự động hóa và Công nghệ Thông tin.
Mục tiêu học tập của giáo trình nhằm cung cấp cho người học hiểu biết toàn diện về cấu trúc phần cứng hệ thống máy tính 8-bit, nguyên lý vận hành của khối xử lý trung tâm (CPU), chức năng các bus dữ liệu, bus địa chỉ, bus điều khiển và chu kỳ tìm nạp - thi hành lệnh. Về mặt lập trình, giáo trình trang bị cho sinh viên khả năng sử dụng tập lệnh hợp ngữ (Assembly) kiến trúc tương thích Intel 80X86, kỹ năng thiết kế chương trình theo cấu trúc module, kỹ thuật quản lý ngăn xếp (Stack), truyền tham số và kỹ thuật xử lý ngắt (Interrupt) phần cứng lẫn phần mềm.
Cấu trúc giáo trình bao gồm 3 phần chính: Phần A (Giới thiệu, nhiệm vụ đồ án), Phần B (Nội dung chuyên môn gồm 8 chương lý thuyết và thực hành), Phần C (Phụ lục tập lệnh và tài liệu tham khảo). Tài liệu tiếp cận vấn đề theo phương pháp kết hợp lý thuyết kiến trúc máy tính với thực hành mô phỏng trực quan trên phần mềm SMS32V23. Điểm đặc sắc của giáo trình là việc sử dụng mô hình CPU 8-bit (tương ứng 8 bit thấp của họ Intel 80X86) tích hợp đầy đủ 16 cổng vào/ra (I/O ports) và bộ nhớ RAM 256 bytes, tạo thành một hệ vi xử lý on-board (vi điều khiển mô phỏng), giúp giải quyết các rào cản tiếp cận phần cứng thực tế trong giai đoạn nhập môn.
Nội dung kiến thức cốt lõi
Các chương/chủ đề chính
Nội dung chuyên môn của giáo trình được cấu trúc qua 8 chương và hệ thống 11 bài tập thực hành chuyên sâu:
- Chương 1: Dẫn nhập: Phân tích bối cảnh phát triển của kỹ thuật vi điện tử, vị trí của vi xử lý trong tiến trình tự động hóa công nghiệp và xác định mục tiêu đào tạo thực hành thông qua mô phỏng.
- Chương 2: Giới thiệu chương trình mô phỏng SMS32V23: Mô tả giao diện điều khiển, các thanh ghi mục đích chung (AL, BL, CL, DL), các thanh ghi đặc biệt (IP, SR, SP) và các phím chức năng thực thi (Step, Run, Assemble, Slower, Faster, CPU Reset, Show Ram).
- Chương 3: Cấu trúc hệ thống: Trình bày chi tiết khối xử lý trung tâm (CPU 8-bit, ALU), không gian bộ nhớ RAM 256 bytes (địa chỉ 00H - FFH), hệ thống bus (Data Bus 8-bit, Address Bus 8-bit, Control Bus) và 16 cổng I/O (sử dụng chính từ Port 0 đến Port 5).
- Chương 4 & 5: Cài đặt và tháo cài đặt: Hướng dẫn cấu hình phần mềm SMS32V23 trên hệ điều hành Windows (95, 98, 2000, XP), thiết lập môi trường thực thi và quản lý tệp tin mã nguồn.
- Chương 6: Nhập môn thiết kế lập trình: Phương pháp phân tích yêu cầu kỹ thuật, xây dựng lưu đồ hệ thống/lưu đồ chi tiết và 7 cấu trúc lập trình căn bản: tuần tự, IF-THEN, IF-THEN-ELSE, CASE, FOR-DO, WHILE-DO, REPEAT-UNTIL.
- Chương 7: Hướng dẫn sử dụng chương trình mô phỏng và 11 bài tập thực hành: Hệ thống bài tập từ tính toán cơ bản, định vị địa chỉ, bộ đếm, hiển thị ký tự VDU, định thời delay, thủ tục con, bảng dữ liệu đến ngắt mềm và ngắt phần cứng.
- Chương 8: Các chương trình minh họa điều khiển thiết bị ngoại vi: Cung cấp mã nguồn hoàn chỉnh điều khiển giao tiếp bàn phím/màn hình VDU (
99keyb.asm), đèn giao thông 2 pha (99tlight.asm), LED 7 đoạn (99sevseg.asm, SSEG-HW.ASM), lò sấy và cảm biến nhiệt (99hon.asm, 99hoff.asm, Heatcool.asm), mô hình thang máy và động cơ bước (99step.asm).
Logic phát triển nội dung đi từ nhận diện vi kiến trúc phần cứng, làm chủ tập lệnh hợp ngữ đơn lẻ, chuyển dịch sang tư duy lập trình cấu trúc và tiến tới lập trình điều khiển ghép nối ngoại vi đa luồng.
+-------------------------------------------------------------+
| KIẾN TRÚC PHẦN CỨNG & GIAO DIỆN MÔ PHỎNG (Chương 1, 2, 3) |
| CPU 8-bit, RAM 256B, Registers (AL..DL, IP, SR, SP), Buses |
+-------------------------------------------------------------+
|
v
+-------------------------------------------------------------+
| PHƯƠNG PHÁP LUẬN THIẾT KẾ LẬP TRÌNH HỢP NGỮ (Chương 6) |
| Lưu đồ giải thuật, 7 cấu trúc điều khiển cơ bản |
+-------------------------------------------------------------+
|
v
+-------------------------------------------------------------+
| THỰC HÀNH TẬP LỆNH & CƠ CHẾ NÂNG CAO (Chương 7: Bài 1-11) |
| Số học -> Định vị bộ nhớ -> Ngăn xếp -> Ngắt mềm/cứng |
+-------------------------------------------------------------+
|
v
+-------------------------------------------------------------+
| ỨNG DỤNG ĐIỀU KHIỂN NGOẠI VI THỰC TẾ (Chương 8) |
| VDU, Bàn phím, Đèn giao thông, LED 7 đoạn, Lò sấy, Động cơ |
+-------------------------------------------------------------+
Kiến thức nền tảng được xây dựng
Giáo trình thiết lập các khối kiến thức lý thuyết nền tảng:
- Nguyên lý khối xử lý trung tâm: Cơ chế tính toán của đơn vị số học và logic (ALU), vai trò của các thanh ghi đa năng 8-bit AL, BL, CL, DL (xử lý số không dấu 0 - 255 và số có dấu -128 đến +127), con trỏ lệnh IP lưu địa chỉ lệnh hiện hành và chu kỳ máy "Tìm nạp - Giải mã - Thi hành" (Fetch - Decode - Execute Cycle).
- Cơ chế quản lý bộ nhớ và ngăn xếp: Không gian bộ nhớ RAM 256 bytes phân bổ từ địa chỉ 00H đến FFH; cấu trúc ngăn xếp (Stack) tuân thủ nguyên lý vào sau ra trước (LIFO), bắt đầu tại địa chỉ đáy BFh và phát triển ngược về địa chỉ 00h thông qua con trỏ ngăn xếp SP.
- Hệ thống cờ trạng thái (Status Register - SR): Cung cấp thông tin trạng thái tính toán gồm cờ Zero (
Z), cờ dấu (S), cờ tràn (O) và cờ cho phép ngắt (I), làm cơ sở cho các lệnh rẽ nhánh có điều kiện.
- Các chế độ định vị địa chỉ (Addressing Modes): Định vị tức thời (
MOV AL, 15), định vị gián tiếp bộ nhớ (MOV [A0], AL), định vị gián tiếp qua thanh ghi (MOV [CL], AL), định vị địa chỉ tính toán (MOV [CL+5], AL) và định vị tên biến tường minh.
- Cơ chế ngắt hệ thống: Bản chất ngắt mềm (
INT n) như một lệnh CALL đặc biệt truy xuất qua Bảng vectơ ngắt (Interrupt Vector Table) và ngắt phần cứng (chân INTR, NMI gắn với bộ định thời Timer Port 02), kèm theo quy trình bảo toàn/phục hồi ngữ cảnh bằng PUSHF/POPF, PUSH/POP và lệnh trở về IRET.
Kỹ năng phát triển
- Kỹ năng kỹ thuật (Technical Skills): Khả năng viết và dịch mã Assembly trực tiếp sang mã máy; chuyển đổi thành thạo giữa hệ cơ số nhị phân (Binary), thập lục phân (Hexadecimal) và bảng mã ký tự ASCII; thiết lập dữ liệu xuất/nhập qua cổng I/O bằng các lệnh chuyên dụng
IN và OUT.
- Kỹ năng phân tích (Analytical Skills): Phân tích và chuyển hóa các yêu cầu điều khiển logic thành lưu đồ thuật toán cụ thể; đánh giá trạng thái các cờ trong thanh ghi SR để tối ưu hóa cấu trúc rẽ nhánh (
JZ, JNZ, JMP); kiểm soát dung lượng bộ nhớ và tính toán độ trễ thời gian trong các vòng lặp delay.
- Năng lực thực hành chuyên môn (Practical Competencies): Khả năng lập trình quét ma trận phím; quản lý vùng đệm hiển thị VDU (địa chỉ C0H - FFH); thiết kế bảng dữ liệu hằng số (
DB) điều khiển chu kỳ đèn giao thông; giải mã hiển thị LED 7 đoạn; điều khiển hệ thống ổn nhiệt theo ngưỡng cảm biến 21°C và điều khiển phân bước động cơ bướ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 tiếp cận thực nghiệm (Hands-on Learning) thông qua mô hình công cụ mô phỏng phần mềm. Sinh viên không chỉ tiếp nhận lý thuyết thuần túy mà trực tiếp kiểm chứng từng câu lệnh thông qua việc quan sát biến đổi dữ liệu trên màn hình thanh ghi, không gian RAM và các mô hình ngoại vi động.
Mỗi bài học trong chương trình được thiết kế theo cấu trúc chuẩn hóa: Mục đích - Yêu cầu -> Kiến thức nền tảng -> Bài tập ví dụ mẫu có chú giải -> Bài tập củng cố tự luyện. Phương pháp phân tích mã nguồn đi kèm các chỉ dẫn thao tác:
; Trích đoạn cấu trúc bài tập ví dụ mẫu có chú giải trong giáo trình (Bài tập số 1)
CLO ; Đóng tất cả các cửa sổ không cần thiết
MOV AL, 2 ; Đưa giá trị 2 vào thanh ghi AL
MOV BL, 2 ; Đưa giá trị 2 vào thanh ghi BL
ADD AL, BL ; Cộng AL với BL, kết quả (4) lưu trở lại AL
END ; Kết thúc chương trình
Hệ thống đánh giá kết quả học tập dựa trên khả năng giải quyết các bài tập củng cố có độ phức tạp tăng dần:
- Mức độ cơ bản: Lập trình phép toán số học (
SUB, DIV), chia cho 0 để quan sát ngắt INT 0, đếm tiến/lùi bằng INC/DEC.
- Mức độ trung cấp: Xây dựng thuật toán tạo chuỗi Fibonacci (kiểm soát tràn số tại 127), đảo bit dữ liệu, tính giai thừa $N!$ sử dụng ngăn xếp Stack.
- Mức độ nâng cao: Lập trình thủ tục xử lý ngắt Timer Port 02 điều khiển động cơ bước quay liên tục đồng thời với việc quét trạng thái đèn giao thông hoặc đếm số hiển thị LED 7 đoạn đôi.
Hướng dẫn tự học: Sinh viên sử dụng phím F1 để tra cứu trực tuyến tập lệnh thông qua tệp trợ giúp Sms32v23.hlp, sử dụng phím tắt Alt+P (chế độ Step) để chạy từng bước đơn lệnh nhằm theo dõi sự thay đổi của con trỏ lệnh IP và các cờ trạng thái SR, kết hợp các chế độ hiển thị Show Ram (dạng Hex, ASCII hoặc Source) để gỡ rối chương trình.
Điểm nổi bật và cập nhật
- Tính kế thừa của nền tảng kiến trúc Intel x86: Việc xây dựng tập lệnh dựa trên vi xử lý 8086/80X86 giúp người học nắm vững kiến trúc máy tính tiêu chuẩn công nghiệp. Các chương trình hợp ngữ cơ bản viết cho 8086 duy trì tính tương thích với các thế hệ vi xử lý x86 tiên tiến sau này.
- Tích hợp ngoại vi phong phú trên môi trường giả lập: Khác biệt với các công cụ dịch hợp ngữ dòng lệnh (như TASM hay MASM thời kỳ đầu), SMS32V23 tích hợp sẵn các giao diện ngoại vi phần cứng thực tế:
| Cổng (Port) / Vùng nhớ |
Thiết bị ngoại vi mô phỏng |
Quy cách điều khiển phần cứng |
| Port 00 |
Bàn phím (Keyboard) & VDU |
Nhập ký tự mã ASCII; xuất màn hình 64 ô nhớ tại địa chỉ [C0] đến [FF] |
| Port 01 |
Hệ thống đèn giao thông |
6 bit cao (MSB) điều khiển 2 cụm đèn Đỏ - Vàng - Xanh; 2 bit thấp (LSB) không dùng |
| Port 02 |
LED 7 đoạn & Ngắt Timer |
7 bit MSB điều khiển các thanh led; 1 bit LSB chọn LED trái/phải; ngắt định thời phần cứng |
| Port 03 |
Lò sấy & Cảm biến nhiệt |
Bit 7 (MSB) bật/tắt điện lò sấy; Bit 0 dò ngưỡng nhiệt độ trên 21°C |
| Port 04 |
Mô hình thang máy |
4 bit LSB điều khiển chiều di chuyển và đọc cảm biến tầng; 2 bit MSB mô phỏng công tắc gọi tầng |
| Port 05 |
Động cơ bước / Rắn ma trận |
Điều khiển 4 cuộn pha động cơ bước; 4 bit chỉ hướng và 4 bit chỉ quãng đường di chuyển |
- Mô phỏng cơ chế đa nhiệm phần cứng: Giáo trình hướng dẫn kỹ thuật phối hợp giữa chương trình chính và chương trình phục vụ ngắt phần cứng (Hardware Interrupt Service Routine), cho phép mô phỏng thực thi đồng thời hai tác vụ ngoại vi độc lập (như quay động cơ bước tại vòng lặp chính và quét chu kỳ đèn giao thông trong ngắt Timer).
- Cầu nối học thuật: Kiến thức về thanh ghi, ngăn xếp và cổng I/O trong giáo trình tạo tiền đề kỹ thuật để sinh viên chuyển tiếp nghiên cứu các dòng vi điều khiển công nghiệp 8-bit chuyên dụng như họ MCS-51 (80C51, AT89C51, 89S51) hoặc tiếp cận các phần mềm mô phỏng hệ thống mở rộng như UMPS.
Đối tượng sử dụng giáo trình
- Sinh viên đại học và cao đẳng kỹ thuật: Tài liệu phục vụ trực tiếp sinh viên năm thứ hai và năm thứ ba thuộc các chuyên ngành Kỹ thuật Điện - Điện tử, Kỹ thuật Điện tử - Viễn thông, Kỹ thuật Điều khiển & Tự động hóa, và Công nghệ Thông tin đang theo học học phần Vi xử lý, Vi điều khiển, Kiến trúc máy tính hoặc Lập trình hệ thống cấp thấp.
- 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 môn học: Kỹ thuật số (hiểu rõ hệ đếm nhị phân, hệ thập lục phân Hex, bảng mã ASCII, đại số Boolean và các cổng logic cơ bản), Tin học đại cương (nắm bắt khái niệm thuật toán và lưu đồ khối).
- Giảng viên chuyên ngành: Sử dụng giáo trình làm đề cương giảng dạy lý thuyết và xây dựng giáo án bài tập thực hành tại phòng thí nghiệm máy tính; khai thác hệ thống tệp mã nguồn mẫu (
01 đến 11, 99keyb.asm, 99tlight.asm, SSEG-HW.ASM) để minh họa trực tiếp các khái niệm trừu tượng.
- Tài liệu tự học và tham khảo: Dành cho người học muốn tiếp cận nguyên lý vận hành của vi xử lý ở mức thanh ghi, hiểu rõ cơ chế tương tác giữa phần mềm và phần cứng máy tính mà không cần trang bị các bộ thí nghiệm vật lý đắt tiền.
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 cho sinh viên đại học, cao đẳng kỹ thuật các ngành Điện - Điện tử, Tự động hóa, Công nghệ thông tin bắt đầu học môn Vi xử lý/Vi điều khiển, cũng như học sinh hoặc kỹ sư mới làm quen với lập trình hợp ngữ điều khiển cấp thấp.
2. Cần kiến thức nền nào trước khi học?
Người học cần có kiến thức cơ bản về toán nhị phân, hệ số Hexadecimal, bảng mã ASCII, nguyên lý cổng logic trong Kỹ thuật số và tư duy xây dựng lưu đồ thuật toán cơ bả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 vi xử lý khác?
Giáo trình kết hợp cấu trúc vi xử lý Intel 80X86 với các cổng vào/ra ngoại vi trực quan của vi điều khiển thông qua phần mềm SMS32V23. Người học được quan sát trực tiếp sự thay đổi của từng ô nhớ RAM, trạng thái thanh ghi và phản hồi của thiết bị ngoại vi ngay khi câu lệnh được thực thi.
4. Phương pháp tự học giáo trình như thế nào để đạt hiệu quả cao?
Thực hiện theo trình tự: Đọc kiến thức lý thuyết -> Phân tích mã nguồn ví dụ mẫu -> Nhập mã vào trình soạn thảo SMS32V23 -> Sử dụng chế độ chạy từng lệnh Step (Alt+P) để theo dõi biến đổi của thanh ghi và cờ SR -> Tự lập trình giải quyết các bài tập củng cố mà không xem trước phần lời giải.
5. Giáo trình có các tài liệu bổ trợ nào kèm theo?
Tài liệu đi kèm tệp trợ giúp tra cứu lệnh Sms32v23.hlp (tương thích Word/RTF), bộ tệp tin mã nguồn mẫu .asm từ bài tập 1 đến 11, các chương trình mẫu điều khiển ngoại vi tại Chương 8 và bảng tra cứu tập lệnh hợp ngữ chi tiết tại Phần C.
Kết luận
Giáo trình "Biên soạn giáo trình điện tử ứng dụng phần mềm SMS32V23 mô phỏng vi điều khiển" của nhóm tác giả Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh cung cấp hệ thống học liệu học thuật chuẩn xác, kết hợp chặt chẽ giữa lý thuyết vi kiến trúc máy tính 80X86 và kỹ thuật lập trình điều khiển ghép nối ngoại vi.
Lộ trình học tập khuyến nghị bắt đầu từ việc làm quen các lệnh số học cơ bản, tiến tới cấu trúc rẽ nhánh, quản lý thủ tục và ngăn xếp Stack, làm chủ kỹ thuật xử lý ngắt phần cứng/phần mềm, và hoàn thiện bằng việc phát triển các chương trình điều khiển ngoại vi phức hợp. Để mở rộng năng lực nghiên cứu, người học có thể sử dụng các kiến thức nền tảng từ giáo trình này để chuyển tiếp sang lập trình các dòng vi điều khiển thương mại họ 8051/89X51 và các bộ công cụ mô phỏng nâng cao như phần mềm UMPS.