
UBND TỈNH QUẢNG NGÃI
TRƢỜNG ĐH PHẠM VĂN ĐỒNG
BÀI GIẢNG
KỸ THUẬT LẬP TRÌNH VI ĐIỀU KHIỂN
(Bậc đại học 2 tín chỉ)
Ngành công nghệ kỹ thuật cơ khí
GIẢNG VIÊN: ThS. PHẠM TRƢỜNG TÙNG
Quảng Ngãi, 2017

MỤC LỤC
MỤC LỤC .................................................................................................. 2
LỜI NÓI ĐẦU ............................................................................................ 1
CHƢƠNG 1. NGÔN NGỮ LẬP TRÌNH C CHO VI ĐIỀU KHIỂN ........ 2
1.1. NHỮNG KHÁI NIỆM CƠ BẢN VỀ C .............................................. 2
1.1.1. Giới thiệu .......................................................................................... 2
1.1.2. Các thành phần trong ngôn ngữ C .................................................... 2
1.2. CÁC BIẾN........................................................................................... 5
1.2.1. Tên biến ............................................................................................ 5
1.2.2. Khai báo biến .................................................................................... 6
1.2.3. Khai báo và gán giá trị cho biến ....................................................... 6
1.2.4. Phạm vi của biến: ............................................................................. 6
1.3. CÁC HÀM........................................................................................... 6
1.3.1 Khai báo và định nghĩa hàm .............................................................. 7
1.3.2 Lời gọi hàm ....................................................................................... 8
1.3.3 Tham số hình thức, tham số thực và biến cục bộ .............................. 8
1.3.4. Quy tắc hoạt động của hàm .............................................................. 8
1.4. CÁC PHÉP TOÁN .............................................................................. 9
1.4.1. Phép toán số học ............................................................................... 9
1.4.2. Phép toán quan hệ ............................................................................. 9
1.4.3. Phép toán logic ................................................................................. 9
1.4.4. Phép toán trên bit (bitwise) ............................................................ 10
1.4.5. Phép gán hợp .................................................................................. 10
1.4.6. Phép toán tăng giảm ....................................................................... 10
1.4.7. Toán tử điều kiện ............................................................................ 11
1.5. CÁC LỆNH ĐIỀU KHIỂN CHƢƠNG TRÌNH ............................... 11
1.5.1. Khái niệm câu lệnh ......................................................................... 11
1.5.2. CÁC LỆNH ĐƠN .......................................................................... 12
1.5.3 Lệnh if ............................................................................................. 12

1.5.4 Cấu trúc if …else if ......................................................................... 13
1.5.5. Lệnh switch ................................................................................... 14
1.5.6. Lệnh for: ......................................................................................... 14
1.5.7. Lệnh while ...................................................................................... 15
1.5.8. Lệnh do-while ................................................................................. 16
1.6. MẢNG VÀ CHUỖI .......................................................................... 17
1.6.1. Mảng một chiều .............................................................................. 17
1.6.2.Mảng nhiều chiều ............................................................................ 18
1.6.3. Chuỗi .............................................................................................. 18
1.7. CON TRỎ .......................................................................................... 21
1.7.1. Khai báo biến con trỏ ..................................................................... 21
1.7.2. Con trỏ với mảng ............................................................................ 21
BÀI TẬP CHƢƠNG 1 ............................................................................. 21
CHƢƠNG 2. CẤU TRÚC CỦA HỆ VI ĐIỀU KHIỂN .......................... 23
2.1. CẤU TRÚC CỦA MỘT HỆ VI ĐIỀU KHIỂN CƠ BẢN ................ 23
2.2. CẤU TRÚC BỘ NHỚ ....................................................................... 25
2.3. ĐỊA CHỈ ............................................................................................ 25
2.4. MỘT SỐ GIAO TIẾP NGOẠI VI CƠ BẢN .................................... 26
BÀI TẬP CHƢƠNG 2 ............................................................................. 26
CHƢƠNG 3. PHẦN CỨNG HỆ VI ĐIỀU KHIỂN PIC ........................ 27
3.1. SƠ ĐỒ VÀ CHỨC NĂNG CHÂN ................................................... 27
3.1.1. Giới thiệu ........................................................................................ 27
3.1.2. Các thành phần cơ bản của một mạch ứng dụng vi điều khiển PIC29
3.2. XUNG NHỊP VÀ CHU KỲ MÁY .................................................... 31
3.3. RESET ............................................................................................... 31
3.4. XUẤT NHẬP DỮ LIỆU ................................................................... 32
BÀI TẬP CHƢƠNG 3 ............................................................................. 33
CHƢƠNG 4 BỘ ĐỊNH THỜI VÀ BỘ ĐẾM .......................................... 34

4.1. CẤU TRÚC BỘ ĐỊNH THỜI ........................................................... 35
4.2. THIẾT LẬP CÁC BỘ ĐỊNH THỜI.................................................. 36
4.2.1. Timer 0 ........................................................................................... 36
4.2.2. Timer 1 ........................................................................................... 39
4.2.3 Các lệnh CCS liên quan đến Timer 1 .............................................. 40
4.3. CẤU TRÚC BỘ ĐẾM ...................................................................... 40
BÀI TẬP CHƢƠNG 4. ............................................................................ 41
CHƢƠNG 5. NGẮT ................................................................................. 42
5.1. NGẮT BỘ ĐỊNH THỜI/BỘ ĐẾM ................................................... 44
5.1.1. Ngắt Timer 0 .................................................................................. 44
5.2. NGẮT NGOÀI .................................................................................. 45
5.2.1. Ngắt ngoài ...................................................................................... 45
BÀI TẬP CHƢƠNG 5 ............................................................................. 47
CHƢƠNG 6 CÁC KHỐI ĐIỀU KHIỂN CHUYÊN DỤNG ................... 48
6.1. BỘ CHUYỂN ĐỔI A/D .................................................................... 48
6.1.1. Giới thiệu ....................................................................................... 48
6.1.2. ADC của vi điều khiển PIC 18Fxx31 ............................................. 48
6.2. MÔ ĐUN ĐIỀU CHẾ ĐỘ RỘNG XUNG ........................................ 59
6.2.1. Giới thiệu ........................................................................................ 59
6.2.2. Chu kỳ xung và độ rộng xung ........................................................ 60
6.2.3. Độ rộng xung .................................................................................. 61
6.2.4. chƣơng trình demo......................................................................... 61
BÀI TẬP CHƢƠNG 6 ............................................................................. 61
CHƢƠNG 7 CÁC GIAO TIẾP CƠ BẢN ................................................ 63
7.1. GIAO TIẾP RS232/RS485 ................................................................ 63
7.1.1. Phần cứng giao tiếp ........................................................................ 63
.7.1.2. Truyền thông với RS232 với trình biên dịch CCS ....................... 64
7.2. GIAO TIẾP I2C ................................................................................. 66

7.3. GIAO TIẾP SPI ................................................................................. 71
7.3.1. Các cách kết nối cơ bản .................................................................. 72
7.3.2. Tên và chức năng của các chân ...................................................... 72
7.3.3. Các kiểu kết nối trong SPI ............................................................. 74
7.4. CÁC GIAO TIẾP KHÁC .................................................................. 76
7.4.1. Giao tiếp USB ................................................................................ 76
BÀI TẬP CHƢƠNG 7 ............................................................................. 85
CHƢƠNG 8 LẬP TRÌNH ỨNG DỤNG ................................................. 86
8.1. LẬP TRÌNH HIỂN THỊ VỚI LED 7 ĐOẠN ................................... 86
8.1.1 Cấu tạo của led 7 đoạn .................................................................... 86
8.1.2 Hiển thị 1 led 7 đoạn dùng vi điều khiển: ....................................... 87
8.1.3 Hiển thị nhiều led 7 đoạn dùng vi điều khiển: ................................ 88
8.2. GIAO TIẾP VỚI MÀN HÌNH LCD ................................................. 90
8.2.1. Hiển thị dùng LCD ......................................................................... 90
8.2.2. Các chân cơ bản của LCD 2 dòng 16 kí tự..................................... 90
8.2.3. Khởi tạo LCD ................................................................................. 91
8.2.4. Ghi kí tự lên LCD để hiển thị ......................................................... 93
8.2.5. Giới thiệu một thƣ viện cho LCD 4 bit và bài tập ứng dụng ......... 94
8.3. ĐIỀU KHIỂN PID CHO ĐỘNG CƠ DC ......................................... 97
BÀI TẬP CHƢƠNG 8 ............................................................................. 99
TÀI LIỆU THAM KHẢO ...................................................................... 101
PHỤC LỤC: CƠ BẢN VỀ CCS ............................................................ 102
1. Cơ bản về ngôn ngữ lập trình CCS .................................................... 102
1.1. Ví dụ về một chƣơng trình viết trên ngôn ngữ CCS ....................... 102
1.2 Cấu trúc của một chương trình viết bằng CCS: ............................... 103
2. Các cấu trúc thuật toán của ngôn ngữ CCS ........................................ 106
3. Các toán tử cơ bản trong CCS: ........................................................... 107
4. Các hàm số học cơ bản trong CCS ..................................................... 108

