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

Giáo trình Vi điều khiển PIC do ThS. Nguyễn Đình Phú (Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh) biên soạn, được Nhà xuất bản Đại học Quốc gia Thành phố Hồ Chí Minh ấn hành năm 2017. Trong khung chương trình đào tạo kỹ thuật, tài liệu này giữ vai trò là giáo trình nòng cốt cho học phần Vi điều khiển, Kỹ thuật Vi xử lý hoặc Hệ thống nhúng dành cho sinh viên thuộc khối ngành Điện, Điện tử và Tự động hóa.

Mục tiêu học tập của giáo trình tập trung vào việc cung cấp các kiến thức cơ sở về cấu trúc phần cứng vi điều khiển 8-bit, nguyên lý tổ chức bộ nhớ, hoạt động của các khối ngoại vi tích hợp và kỹ năng lập trình điều khiển hệ thống bằng ngôn ngữ C thông qua trình biên dịch CCS. Hoàn thành nội dung giáo trình, người học có khả năng phân tích sơ đồ chân, cấu hình các thanh ghi chức năng đặc biệt, thiết kế mạch ghép nối ngoại vi và xây dựng các chương trình ứng dụng từ cơ bản đến phức tạp.

Về cấu trúc và cách tiếp cận, giáo trình được biên soạn thành 10 chương chuyên đề theo trình tự tuyến tính từ phần cứng, tập lệnh cho đến các ứng dụng giao tiếp ngoại vi nâng cao. Nội dung lấy dòng vi điều khiển tiêu biểu PIC16F887 của hãng Microchip làm đối tượng khảo sát trọng tâm. Điểm đặc sắc của tài liệu là phương pháp tích hợp đồng bộ giữa lý thuyết phần cứng, sơ đồ nguyên lý, lưu đồ giải thuật và mã nguồn chương trình C có chú giải chi tiết từng dòng lệnh, kết hợp hệ thống bài tập trắc nghiệm và câu hỏi mở rộng liên hệ với các dòng vi điều khiển khác trên thị trườ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 gồm 10 chương bao quát toàn bộ kiến trúc phần cứng và ngoại vi của PIC16F887:

  • Chương 1: Đặc tính, cấu trúc, chức năng các port: Khảo sát tổng quan kiến trúc RISC 35 lệnh, tốc độ thực thi chu kỳ máy 200 ns ở tần số dao động 20 MHz, các đặc tính cấp nguồn, khối giám sát (WDT, BOR, POR, PWRT, OST) và cấu trúc 35 chân xuất/nhập (I/O) phân bố trên 5 port (Port A, B, C, D, E).
  • Chương 2: Tổ chức bộ nhớ, thanh ghi: Phân tích kiến trúc bộ nhớ Harvard độc lập, bộ nhớ chương trình Flash 8K (chia làm 4 trang, mỗi trang 2K), bộ nhớ ngăn xếp 8 cấp (Stack), bộ nhớ dữ liệu RAM 368 Byte, bộ nhớ EEPROM 256 Byte, cơ chế thực thi lệnh đường ống (Pipeline) và các thanh ghi chức năng như FSR, Status.
  • Chương 3 & Chương 4: Lập trình Hợp ngữ và Ngôn ngữ C: Trình bày nguyên lý làm việc với tập lệnh hợp ngữ trên môi trường MPLAB và đi sâu vào phương pháp lập trình C trên trình biên dịch CCS-C (PIC-C), bao gồm cấu trúc chương trình, kiểu dữ liệu, toán tử, con trỏ và thư viện định nghĩa thiết bị 16F887.h.
  • Chương 5: Giao tiếp LED, LCD, phím đơn, ma trận phím: Hướng dẫn cấu hình thanh ghi định hướng dữ liệu TRISx, các hàm truy xuất port (output_high, output_low, input_state, set_tris_x) và kỹ thuật điều khiển LED đơn, LED 7 đoạn (trực tiếp/quét), bàn phím ma trận 4×4 và màn hình LCD (chế độ bus 4-bit và 8-bit).
  • Chương 6 & Chương 8: Bộ định thời (Timer - Counter) và Hệ thống ngắt: Khảo sát chi tiết Timer0 (8-bit), Timer1 (16-bit), Timer2 (8-bit) cùng các thanh ghi điều khiển OPTION_REG, T1CON, T2CON; cơ chế quản lý ngắt toàn cục và ngắt ngoại vi thông qua các thanh ghi INTCON, PIE1, PIR1, PIE2, PIR2.
  • Chương 7, Chương 9 & Chương 10: ADC, Điều chế độ rộng xung (PWM) và Truyền thông: Phân tích module biến đổi tương tự - số ADC 10-bit (14 kênh ngõ vào), module CCP/ECCP cho điều khiển PWM (chế độ nửa cầu, cầu đầy đủ lái động cơ DC) và khối truyền dữ liệu nối tiếp EUSART (RS-232), truyền thông đồng bộ chuẩn I2C giao tiếp IC thời gian thực DS1307.

Progression logic của giáo trình đi từ cấu tạo phần cứng vi mạch nội tại $\rightarrow$ mô hình tổ chức bộ nhớ $\rightarrow$ công cụ phần mềm biên dịch $\rightarrow$ giao tiếp xuất nhập cơ bản $\rightarrow$ xử lý ngoại vi thời gian thực và truyền thông dữ liệu.

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

  • Lý thuyết cấu trúc máy tính và vi xử lý: Phân định rõ ràng giữa kiến trúc Von Neumann (dùng chung bus cho mã lệnh và dữ liệu) và kiến trúc Harvard (tách biệt hoàn toàn bus bộ nhớ chương trình và bus dữ liệu); cơ chế xử lý song song thông qua kỹ thuật Pipeline.
  • Nguyên lý định thời và đếm sự kiện: Cơ chế chia tần số thạch anh (Fosc/4), hệ số chia trước (Prescaler) và chia sau (Postscaler) phục vụ chức năng tạo trễ chính xác và đếm xung ngoại.
  • Nguyên lý chuyển đổi tín hiệu tương tự - số (ADC): Cơ chế lấy mẫu, điện áp chuẩn tham chiếu ($V_{REF+}$, $V_{REF-}$), định dạng canh lề kết quả (Left/Right justification qua bit ADFM) trên cặp thanh ghi 16-bit ADRESH:ADRESL.
  • Lý thuyết điều chế độ rộng xung và truyền thông nối tiếp: Nguyên lý thay đổi hệ số chu kỳ (Duty Cycle) của tín hiệu PWM trong điều khiển công suất; chuẩn truyền thông nối tiếp không đồng bộ UART/EUSART và giao thức chủ - tớ (Master - Slave) của bus nối tiếp I2C.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật (Technical skills): Kỹ năng cấu hình thanh ghi phần cứng; kỹ năng lập trình vi điều khiển bằng ngôn ngữ C trên CCS-C; kỹ năng kết nối sơ đồ chân giao tiếp giữa vi điều khiển với các linh kiện bán dẫn công suất (Relay, Triac, Transistor), thiết bị hiển thị và cảm biến (LM35).
  • Kỹ năng phân tích (Analytical skills): Khả năng phân tích giản đồ thời gian, tính toán chu kỳ xung, tính tốc độ Baud trong truyền dữ liệu, tính toán định thời Timer và phân bổ dung lượng bộ nhớ trang/ngăn xếp.
  • Năng lực thực hành ứng dụng (Practical competencies): Xây dựng lưu đồ thuật toán điều khiển cho các bài toán công nghiệp thực tế như đo và cảnh báo nhiệt độ, đếm sản phẩm, điều khiển động cơ DC quay thuận/nghịch và thiết lập hệ thống đồng hồ thời gian thực.

Phương pháp giảng dạy và học tập

Tiếp cận sư phạm (Pedagogical approach)

Giáo trình áp dụng mô hình tiếp cận tuần tự theo 4 bước khép kín cho từng module kiến trúc và ngoại vi:

  1. Mô tả cấu trúc phần cứng và thanh ghi: Trình bày sơ đồ khối, chức năng từng chân và ý nghĩa các bit trong thanh ghi điều khiển.
  2. Thiết kế mạch nguyên lý: Minh họa sơ đồ đấu nối phần cứng chi tiết giữa vi điều khiển và tải điều khiển.
  3. Xây dựng giải thuật: Cung cấp lưu đồ điều khiển (Flowchart) mô tả trình tự thực thi logic của hệ thống.
  4. Cài đặt chương trình: Cung cấp mã nguồn ngôn ngữ C hoàn chỉnh, phân tích chức năng của từng câu lệnh hoặc khối lệnh.

Bài tập, tình huống thực hành và phương pháp đánh giá

Hệ thống bài tập cuối mỗi chương được phân tầng thành ba nhóm phục vụ đánh giá năng lực toàn diện:

  • Câu hỏi ôn tập: Kiểm tra mức độ ghi nhớ và thông hiểu lý thuyết cấu trúc (ví dụ: cấu tạo các port, chức năng thanh ghi, các bước chuyển đổi ADC).
  • Câu hỏi trắc nghiệm: Hệ thống các câu hỏi nhiều lựa chọn chuẩn hóa nhằm phục vụ ôn luyện và đánh giá nhanh các thông số kỹ thuật (ví dụ: số lượng kênh ADC, dung lượng Flash/RAM/EEPROM, tên các chân tín hiệu chuẩn I2C, SPI, UART).
  • Câu hỏi mở rộng và bài tập thiết kế: Yêu cầu người học tự thiết kế hệ thống, viết chương trình điều khiển cho các bài toán phức hợp (ví dụ: hệ thống quét ma trận phím kết hợp hiển thị LED 7 đoạn, mạch điều khiển đèn gia nhiệt dùng relay khi quá nhiệt).

Hướng dẫn tự học (Self-study guidelines)

Để tự học hiệu quả, người đọc cần tiến hành cài đặt môi trường lập trình PIC-C Compiler (CCS), đọc kỹ sơ đồ chân và cấu trúc thanh ghi trước khi viết mã, sau đó vẽ lưu đồ thuật toán để chuẩn hóa luồng điều khiển. Việc tự giải các bài tập trắc nghiệm và câu hỏi so sánh kiến trúc giữa PIC16F887 với họ vi điều khiển MCS-51 (AT89S52) được nêu trong giáo trình sẽ giúp củng cố tư duy kiến trúc hệ thống.


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

  • Tích hợp đầy đủ các đặc tính phần cứng tiên tiến của dòng vi điều khiển 8-bit: Giáo trình cập nhật chi tiết các khối ngoại vi tích hợp thế hệ mới của PIC16F887, bao gồm khối dao động nội có thể cấu hình bằng phần mềm (31 kHz đến 8 MHz), mạch gỡ rối trên chip (In-Circuit Debugger - ICD), và các cơ chế bảo vệ an toàn nguồn điện như Brown-out Reset (BOR), Power-on Reset (POR), Power-up Timer (PWRT).
  • Chuẩn hóa phương pháp lập trình trên ngôn ngữ C: Thay vì tập trung sâu vào tập lệnh Hợp ngữ Assembly vốn phức tạp và hạn chế về năng suất lập trình, giáo trình định hướng toàn diện sang ngôn ngữ C với trình biên dịch CCS-C. Cách tiếp cận này giúp tối ưu hóa thời gian phát triển phần mềm và làm sáng tỏ tư duy thuật toán.
  • Gắn kết ứng dụng thực tế và tiêu chuẩn công nghiệp: Toàn bộ các mô hình thực hành trong tài liệu đều liên hệ trực tiếp với các ứng dụng công nghiệp thực tế:
    • Hệ thống đo lường nhiệt độ môi trường kết hợp cảm biến tương tự LM35 và điều khiển cơ cấu chấp hành Relay/Triac.
    • Hệ thống điều khiển tốc độ và đảo chiều quay động cơ DC sử dụng module PWM nâng cao (chế độ Full-Bridge và Half-Bridge).
    • Hệ thống giao tiếp máy tính qua chuẩn RS-232/UART hiển thị dữ liệu trên phần mềm Terminal.
    • Hệ thống đồng hồ số thời gian thực tích hợp vi mạch chuyên dụng DS1307 qua giao thức I2C hiển thị màn hình LCD.

Đố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 ngành Kỹ thuật Điện - Điện tử, Kỹ thuật Cơ điện tử, Kỹ thuật Điều khiển và Tự động hóa, Kỹ thuật Máy tính, Công nghệ Kỹ thuật Điện tử - Truyền thông.
  • 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 cơ sở bao gồm: Kỹ thuật số (logic số, hệ đếm, cổng logic, mạch tuần tự), Điện tử căn bản (diode, transistor, relay, triac) và Kỹ thuật lập trình cơ sở (ngôn ngữ C căn bản).
  • Giảng viên chuyên ngành: Sử dụng giáo trình làm tài liệu tham khảo chính để biên soạn đề cương chi tiết môn học, giáo án bài giảng lý thuyết, tài liệu hướng dẫn thực hành phòng thí nghiệm và ngân hàng đề thi đánh giá kết thúc học phần.
  • Kỹ sư và người nghiên cứu tự do: Kỹ sư phát triển phần cứng, kỹ thuật viên bảo trì hệ thống nhúng có thể sử dụng sách như một tài liệu tra cứu cứu pháp lệnh CCS-C, bảng mã thanh ghi, quy trình khởi tạo ngoại vi và sơ đồ thiết kế mạch chuẩ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 được biên soạn phục vụ cho sinh viên đại học, cao đẳng kỹ thuật khối ngành Điện - Điện tử - Tự động hóa, giảng viên giảng dạy học phần vi điều khiển, và các kỹ sư phần cứng nhúng cần tài liệu tra cứu về họ vi điều khiển PIC 8-bit.

2. Cần kiến thức nền nào để học giáo trình này?

Người học cần có kiến thức nền tảng về Kỹ thuật số (bộ nhớ, thanh ghi, cổng logic), Mạch điện tử cơ bản (khuếch đại, đóng cắt) và kiến thức lập trình ngôn ngữ C 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 điều khiển khác là gì?

Giáo trình tập trung sâu vào dòng vi điều khiển PIC16F887 với cấu trúc 10 chương rõ ràng, chuyển toàn bộ ứng dụng sang ngôn ngữ lập trình C (trình biên dịch CCS) thay vì tập trung vào hợp ngữ, đồng thời cung cấp đầy đủ sơ đồ mạch, lưu đồ giải thuật và phân tích chi tiết từng dòng mã lệnh.

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

Người học nên tuân thủ trình tự: nắm vững cấu trúc phần cứng và thanh ghi ở từng chương $\rightarrow$ phân tích kỹ lưu đồ giải thuật $\rightarrow$ đọc hiểu và tự viết lại mã nguồn C $\rightarrow$ thực hành mô phỏng hoặc chạy trên mạch thực tế $\rightarrow$ hoàn thành toàn bộ câu hỏi trắc nghiệm và bài tập thiết kế cuối chương.

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

Tài liệu tham khảo bổ trợ bao gồm tập lệnh chi tiết của hãng Microchip (Datasheet PIC16F887), hướng dẫn sử dụng phần mềm biên dịch CCS-C, tài liệu phần mềm MPLAB, và các tài liệu kỹ thuật về vi mạch ngoại vi như DS1307, LCD HD44780, cảm biến LM35.


Kết luận

Giáo trình Vi điều khiển PIC của ThS. Nguyễn Đình Phú cung cấp một hệ thống kiến thức toàn diện, chuẩn xác và có cấu trúc chặt chẽ về kiến trúc vi điều khiển 8-bit PIC16F887 cùng phương pháp lập trình C ứng dụng. Bằng việc kết hợp chặt chẽ giữa phân tích thanh ghi phần cứng, lưu đồ giải thuật và mã nguồn minh họa, giáo trình thiết lập nền tảng kỹ thuật vững chắc cho người học trong lĩnh vực kỹ thuật điều khiển tự động.

Lộ trình phát triển được định hướng từ việc làm chủ vi điều khiển 8-bit làm cơ sở để người học tự nghiên cứu, mở rộng lên các hệ vi điều khiển và bộ xử lý đa bit có kiến trúc phức tạp hơn như 16-bit, 32-bit (PIC18F, ARM, DSP). Người học được khuyến nghị kết hợp giáo trình với datasheet chính hãng của Microchip và các công cụ thực hành mạch để hoàn thiện năng lực thiết kế hệ thống nhúng.