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

Giáo trình Vi điều khiển được biên soạn bởi tập thể giảng viên Khoa Cơ Điện tử thuộc Trường Trung cấp Nghề Kỹ thuật Công nghệ Hùng Vương (ban hành năm 2018). Tài liệu được xây dựng nhằm phục vụ trực tiếp cho chương trình đào tạo nghề "Tự động hóa công nghiệp", đóng vai trò là học liệu cơ sở chuyên ngành kết nối giữa lý thuyết mạch điện tử số và kỹ thuật lập trình điều khiển nhúng.

Về mục tiêu học tập (learning outcomes), giáo trình hướng đến việc trang bị cho người học 3 nhóm năng lực chuyên môn:

  1. Lắp ráp, kết nối phần cứng và vận hành các thiết bị vi điều khiển trong hệ thống cơ điện tử.
  2. Phát hiện, phân tích và khắc phục các lỗi kỹ thuật thuộc phần tử cơ khí, mạch điện tử và phần mềm điều khiển.
  3. Tổ chức nơi làm việc kỹ thuật khoa học, ngăn nắp và tuân thủ các quy tắc an toàn lao động trong môi trường công nghiệp.

Cấu trúc tài liệu được thiết kế theo phương pháp tiếp cận từ phần cứng đến giải thuật phần mềm: bắt đầu từ khảo sát kiến trúc vi điều khiển họ 80C51 (trọng tâm là vi điều khiển P89V51RD2), nguyên lý hệ tối thiểu và đại số logic, tiếp nối bằng cú pháp ngôn ngữ C chuyên dụng cho vi điều khiển (Keil C/C51), và kết thúc ở các cấu trúc điều khiển rẽ nhánh, lặp toán tử ứng dụng.

Điểm đặc sắc của giáo trình nằm ở tính thực tiễn kỹ thuật. Nội dung kết hợp giữa việc mô tả chân tín hiệu, cấu trúc bộ nhớ với phương pháp thiết lập phương trình logic điều khiển cho các quy trình công nghệ thực tế. Toàn bộ nội dung giáo trình được biên soạn với sự tham gia đóng góp ý kiến và phản biện chuyên môn từ các doanh nghiệp hoạt động trong lĩnh vực tự động hóa.


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

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

Giáo trình được bố cục thành 4 chương kiến thức nền tảng và ứng dụng:

  • Chương 0: Giới thiệu sơ lược về vi điều khiển 89V51: Giới thiệu cấu trúc phần cứng vi điều khiển P89V51RD2 (dựa trên CPU 80C51). Các thông số kỹ thuật chính bao gồm: 64 kB bộ nhớ chương trình Flash (hỗ trợ lập trình song song và ISP/IAP do Philips cung cấp), 1024 bytes (1 kB) RAM dữ liệu (gồm RAM nội và 768 bytes RAM mở rộng định địa chỉ gián tiếp), chế độ hoạt động Mode x2 (1 chu kỳ máy = 6 chu kỳ xung nhịp giúp tăng gấp đôi tốc độ xử lý), dải tần số dao động lên đến 40 MHz ở điện áp 5 VDC. Chương này chi tiết hóa sơ đồ 40 chân với 4 cổng xuất nhập (Port 0 cực thu hở dùng ghép bus địa chỉ/dữ liệu; Port 1 tích hợp Capture/Compare; Port 2 xuất nhập dữ liệu qua IC đệm 74LS245; Port 3 tích hợp các chức năng RXD, TXD, ngõ vào đếm Timer 0, Timer 1, chân điều khiển đọc RD và ghi WR). Ngoài ra, chương 0 mô tả 5 khối PCA (PWM/capture/compare 16-bit), 3 bộ Timer/Counter 16-bit, Watchdog Timer, và cơ chế quản lý nguồn (Brownout Detect, Low-power, Power down, Idle).
  • Chương 1: Hệ tối thiểu của máy tính: Trình bày đại số biến logic, định nghĩa hàm, bảng trạng thái, quy ước mức điện áp logic theo chuẩn TTL và CMOS. Phân tích các hệ thống số và mã: hệ thập phân (Decimal, MSD, LSD), hệ nhị phân (Binary, MSB, LSB, quy cách phân chia bit, nibble, byte, word), hệ thập lục phân (Hexadecimal cơ số 16) và mã BCD (Binary Coded Decimal). Khái quát 4 khối cơ bản của hệ tối thiểu (Input Area, Output Area, CPU, Memory) kết nối các thiết bị ngoại vi vào (nút nhấn, công tắc, cảm biến, encoder) và ngoại vi ra (động cơ, relay, đèn). Chương 1 hướng dẫn cú pháp định địa chỉ bit <Tiền tố><Địa chỉ Port>^<Địa chỉ bit>, nguyên lý mạch điện và cú pháp C của các cổng logic AND (&), OR (|), NOT (!), cùng cấu trúc chương trình C 4 phần. Nội dung đi kèm 6 bài toán điều khiển công nghiệp và hướng dẫn sử dụng thư viện <intrins.h> cho các hàm quay bit (_cror_, _crol_) và dịch bit (_iror_, _irol_).
  • Chương 2: Các thành phần cơ bản của ngôn ngữ C: Khảo sát hệ thống toán tử số học (+, -, *, /, %), toán tử gán phức hợp (+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |=), tăng giảm (++, --), toán tử quan hệ (==, !=, >, <, >=, <=), toán tử logic (!, &&, ||), và toán tử thao tác bit (&, |, ^, ~, <<, >>). Bảng phân cấp độ ưu tiên toán tử gồm 14 mức. Khảo sát các kiểu dữ liệu: bit, signed char, unsigned char (phân loại mã ASCII thành 3 nhóm: điều khiển, in được, ký tự mở rộng), int, unsigned int, long, float, double, chuỗi ký tự, hằng số (#define), mảng 1 chiều, 2 chiều, biến cấu trúc struct. Kỹ thuật ép kiểu, định dạng xuất nhập qua cổng nối tiếp với thư viện <stdio.h> (printf, sprintf), hàm toán học <math.h> (pow, sqrt), phạm vi sử dụng của biến (cục bộ, toàn cục, tĩnh static) và 4 dạng cấu trúc hàm trong C.
  • Chương 3: Các toán tử điều khiển: Phân tích cơ chế chuyển dịch dòng thực thi lệnh trong vi điều khiển thông qua 3 nhóm cấu trúc: Rẽ nhánh (if, if - else, if lồng nhau, switch - case - default), Nhảy không điều kiện (goto và nhãn), và Tổ chức chu trình lặp (for, while, do - while, break, continue). Chương 3 cung cấp các chương trình mẫu hoàn chỉnh như: thuật toán tìm số lớn nhất/nhỏ nhất có giao tiếp UART (SCON = 0x50, TMOD |= 0x20, TH1 = 0xFD tốc độ baud 9600), chương trình đọc trạng thái cổng P1 để xuất dữ liệu ra Port 2 qua switch-case, kỹ thuật đảo trạng thái ngõ ra với goto, và tạo chuỗi dịch bit LED trên Port 2 bằng vòng lặp for.

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

  • Lý thuyết cơ sở (Fundamental theories): Nguyên lý đại số Boole, quy luật biến logic nhị phân, phân loại mức điện áp logic chuẩn công nghiệp (TTL và CMOS), nguyên lý chuyển đổi giữa các hệ thống số thập phân, nhị phân, thập lục phân và mã hóa BCD.
  • Nguyên lý cốt lõi (Core principles): Kiến trúc phần cứng vi điều khiển dòng 80C51; cấu trúc không gian bộ nhớ phân tách giữa Flash chương trình và RAM dữ liệu; nguyên lý ghép nối I/O qua mạch đệm transistor, cực thu hở và vi mạch đệm 74LS245 có chân cho phép OE (điều khiển bởi chân P3^7).
  • Khung kiến trúc hệ thống (Essential frameworks): Mô hình hệ tối thiểu 4 khối (Input Area, Output Area, CPU, Memory); cấu trúc một chương trình C51 chuẩn 4 phần (khai báo thư viện #include <reg52.h>, khai báo định danh chân I/O sbit, xây dựng hàm chức năng/chương trình con, và hàm thực thi chính void main(void) với vòng lặp vô tận while(1)).

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Khả năng tra cứu và cấu hình sơ đồ chân P89V51RD2; kỹ thuật lập trình nạp ISP; khai báo và cấu hình thanh ghi chức năng đặc biệt; lập trình thao tác trực tiếp trên từng bit (sbit, toán tử dịch/xoay bit trong <intrins.h>).
  • Kỹ năng phân tích (Analytical skills): Kỹ năng phân tích yêu cầu công nghệ của một hệ thống cơ điện tử; nhận diện số lượng biến ngõ vào/ngõ ra; thiết lập bảng trạng thái và rút gọn phương trình đại số logic để xây dựng phương trình điều khiển cho từng ngõ ra.
  • Năng lực thực tiễn (Practical competencies): Chuyển đổi trực tiếp phương trình toán học logic thành mã nguồn C; cấu hình cổng UART truyền nhận chuỗi ký tự và số liệu; chẩn đoán sai lệch giải thuật điều khiển và kiểm tra vận hành hệ thống chấp hành trên mạch thực nghiệm.

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 định hướng thực hành (practice-oriented approach), gắn liền kiến thức lý thuyết vi điều khiển với việc giải quyết các bài toán kỹ thuật cụ thể trong xưởng sản xuất. Quy trình tiếp cận được chuẩn hóa theo từng bước: Khảo sát nguyên lý hoạt động của đối tượng công nghệ $\rightarrow$ Thiết lập phương trình logic ngõ ra $\rightarrow$ Chuyển đổi thành mã lập trình C $\rightarrow$ Nạp và kiểm tra trên phần cứng kit vi điều khiển.

Tài liệu cung cấp hệ thống 6 bài tập tình huống công nghiệp (case studies) với đầy đủ sơ đồ nguyên lý phần cứng, phân tích giải thuật và mã nguồn C hoàn chỉnh:

  1. Hệ thống bơm nước tự động đảo trạng thái: Điều khiển van nạp A và van xả B dựa trên tín hiệu từ nút nhấn start/stop và hai cảm biến báo mức đầy LSH, mức cạn LSL, sử dụng biến trung gian Relay để duy trì trạng thái.
  2. Hệ thống cảnh báo trên xe ô tô: Điều khiển đèn báo Lamp phát sáng theo phương trình logic $Lamp = C \cdot K + D \cdot \bar{K}$, kết hợp trạng thái cảm biến cửa xe ($C$), công tắc khóa khởi động ($K$) và công tắc đèn pha ($D$).
  3. Hệ thống điều khiển cửa đóng/mở từ xa: Vận hành động cơ mở cửa MOpen và động cơ đóng cửa MClose có khóa chéo liên động an toàn và giới hạn hành trình bởi công tắc LSH, LSL.
  4. Hệ thống chuông bấm thi đấu hai đội: Xây dựng mạch khóa chéo logic giữa hai đội thi đấu dưới sự cho phép của trọng tài/giáo viên ($T$), đảm bảo khi chuông của một đội đã reo thì chuông đội kia bị vô hiệu hóa.
  5. Hệ thống máy bào công nghiệp: Điều khiển chuyển động tịnh tiến qua lại của bàn máy bằng hai động cơ motor phải (MR) và motor trái (ML), đảo chiều tự động nhờ các cữ hành trình LSL, LSR.
  6. Hệ thống máy ép ván tự động: Phối hợp hoạt động tuần tự giữa động cơ băng tải đưa phôi, cảm biến quang nhận diện vị trí ván gỗ, van ép thủy lực/khí nén và hệ thống cữ chặn hành trình ép.

Phương pháp đánh giá kết quả học tập căn cứ trên mức độ chuẩn xác của phương trình logic, tính tối ưu của cấu trúc mã C và khả năng vận hành trơn tru của mạch phần cứng. Sinh viên tự học theo lộ trình: đọc hiểu phần cứng $\rightarrow$ giải bài tập logic $\rightarrow$ biên dịch mã C trên phần mềm $\rightarrow$ kiểm tra chẩn đoán lỗi phần cứng/phần mềm.


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

So với các tài liệu giảng dạy vi điều khiển 8051 truyền thống (như AT89C51), giáo trình Vi điều khiển của Khoa Cơ Điện tử - Trường TCN KTCN Hùng Vương đưa vào dòng vi điều khiển P89V51RD2 với các đặc tính kỹ thuật nâng cao:

  • Bộ nhớ Flash và công nghệ nạp ISP/IAP: Vi điều khiển P89V51RD2 tích hợp 64 kB bộ nhớ Flash hỗ trợ chế độ In-System Programming (ISP) do Philips phát triển, cho phép nạp chương trình trực tiếp qua cổng giao tiếp nối tiếp mà không cần tháo chip khỏi mạch để đưa vào bộ nạp song song chuyên dụng.
  • Mở rộng bộ nhớ RAM: Dung lượng RAM được nâng cấp lên 1024 bytes (1 kB), bao gồm 256 bytes RAM nội và 768 bytes RAM mở rộng hướng ngoại (định địa chỉ từ 00H đến 2FFH), đáp ứng yêu cầu lưu trữ các mảng dữ liệu và chuỗi ký tự lớn trong truyền thông nối tiếp.
  • Chế độ hoạt động Mode x2: Cho phép CPU hoạt động với tốc độ gấp đôi ở cùng một tần số thạch anh (1 chu kỳ máy chỉ tiêu tốn 6 chu kỳ xung nhịp thay vì 12 chu kỳ như kiến trúc 8051 chuẩn), giúp nâng cao hiệu năng xử lý thời gian thực.
  • Tích hợp khối chức năng mở rộng: Bổ sung mảng đếm khả trình 5 kênh PCA (Programmable Counter Array) hỗ trợ phát xung PWM, chụp (capture) và so sánh (compare) 16-bit; tích hợp mạch giám sát sụt áp nguồn (Brownout Detect) và Watchdog Timer khả trình.

Về phương diện phần mềm, giáo trình chuyển dịch hoàn toàn từ lập trình hợp ngữ (Assembly) sang ngôn ngữ C cho vi điều khiển. Việc sử dụng các thư viện chuẩn như <reg52.h>, <intrins.h>, <stdio.h>, <math.h> giúp giảm thời gian viết mã, tối ưu hóa các phép toán số học dấu phẩy động và xử lý chuỗi phục vụ kết nối thiết bị.


Đố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ể trong hệ thống giáo dục nghề nghiệp và kỹ thuật:

  • Sinh viên chuyên ngành: Học sinh, sinh viên theo học trình độ Trung cấp, Cao đẳng và Đại học thuộc các ngành Kỹ thuật Cơ Điện tử, Tự động hóa công nghiệp, Kỹ thuật Điện - Điện tử, và Công nghệ Kỹ thuật Điều khiển. Giáo trình phù hợp cho học phần Vi điều khiển, Lập trình nhúng cơ bản hoặc Thực hành Vi điều khiển ở năm thứ hai hoặc năm thứ ba.
  • 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 Mạch điện tử cơ bản, Kỹ thuật số (hiểu rõ cổng logic, bảng chân lý, các hệ thống số nhị phân, thập lục phân) và Kiến thức nhập môn lập trình thuật toán.
  • Giảng viên chuyên ngành: Tài liệu đóng vai trò là đề cương chuẩn để xây dựng bài giảng lý thuyết, giáo án thực hành xưởng và ngân hàng câu hỏi kiểm tra, đánh giá kỹ năng lập trình hệ thống nhúng.
  • Kỹ thuật viên và người tự học: Là tài liệu tra cứu kỹ thuật cho các kỹ thuật viên vận hành bảo trì dây chuyền tự động, người làm dự án phần cứng cần tra cứu nhanh sơ đồ chân P89V51RD2, bảng mã ASCII, thứ tự ưu tiên toán tử C và giải thuật điều khiển I/O cơ bản.

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

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

Tài liệu được thiết kế cho sinh viên, học viên nghề và kỹ thuật viên thuộc các nhóm ngành Tự động hóa công nghiệp, Cơ Điện tử và Kỹ thuật Điện tử có nhu cầu học tập nguyên lý phần cứng và kỹ thuật lập trình vi điều khiển họ 8051/89V51 bằng ngôn ngữ C.

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 cơ sở về điện tử số (cổng logic, mức điện áp TTL/CMOS, chuyển đổi hệ đếm Decimal, Binary, Hex, BCD), nguyên lý mạch điện tử cơ bản và tư duy giải thuật điều khiển cơ bản.

3. Điểm khác biệt so với các giáo trình vi điều khiển khác?

Giáo trình sử dụng vi điều khiển P89V51RD2 với chế độ Mode x2 và nạp ISP qua cổng nối tiếp. Toàn bộ bài tập ứng dụng không dùng ví dụ trừu tượng mà tập trung vào 6 mô hình công nghiệp thực tế (máy ép ván, máy bào, bơm nước, cửa tự động) với phương pháp tiếp cận từ phương trình logic sang code C.

4. Làm sao để tự học hiệu quả?

Người học nên tuân thủ quy trình 3 bước:

  1. Đọc hiểu cấu trúc phần cứng vi điều khiển P89V51RD2 và bảng tổ chức bộ nhớ ở Chương 0.
  2. Tự viết phương trình đại số logic cho các bài toán công nghệ ở Chương 1 trên giấy trước khi đối chiếu với mã C mẫu.
  3. Thực hành viết mã, biên dịch bằng phần mềm Keil C và nạp thử nghiệm lên kit vi điều khiển thực tế.

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

Giáo trình cung cấp chi tiết sơ đồ nguyên lý mạch kết nối cổng Port qua vi mạch đệm 74LS245, cú pháp các thư viện chuẩn C51 (<reg52.h>, <intrins.h>, <stdio.h>, <math.h>) cùng mã nguồn mẫu hoàn chỉnh cho từng bài tập ứng dụng.


Kết luận

Giáo trình Vi điều khiển của Khoa Cơ Điện tử - Trường Trung cấp Nghề Kỹ thuật Công nghệ Hùng Vương là tài liệu học thuật hoàn chỉnh về cấu trúc phần cứng vi điều khiển P89V51RD2 và kỹ thuật lập trình C51 ứng dụng trong hệ thống tự động hóa.

Lộ trình học tập khuyến nghị xuyên suốt tài liệu gồm 4 giai đoạn: Nắm bắt kiến trúc phần cứng $\rightarrow$ Nắm vững đại số logic và biểu diễn dữ liệu $\rightarrow$ Sử dụng thành thạo cú pháp ngôn ngữ C và các thư viện chuyên dụng $\rightarrow$ Thiết kế giải thuật và lập trình điều khiển cho các quy trình công nghiệp. Người học có thể khai thác mở rộng tài liệu kết hợp cùng datasheet kỹ thuật của P89V51RD2 (Philips/NXP) và các công cụ biên dịch mô phỏng vi điều khiển để củng cố năng lực chuyên môn.