UBND TỈNH QUẢNG NGÃI<br />
TRƢỜNG ĐH PHẠM VĂN ĐỒNG<br />
<br />
BÀI GIẢNG<br />
KỸ THUẬT LẬP TRÌNH VI ĐIỀU KHIỂN<br />
<br />
(Bậc đại học 2 tín chỉ)<br />
Ngành công nghệ kỹ thuật cơ khí<br />
<br />
GIẢNG VIÊN: ThS. PHẠM TRƢỜNG TÙNG<br />
<br />
Quảng Ngãi, 2017<br />
<br />
MỤC LỤC<br />
MỤC LỤC .................................................................................................. 2<br />
LỜI NÓI ĐẦU ............................................................................................ 1<br />
CHƢƠNG 1. NGÔN NGỮ LẬP TRÌNH C CHO VI ĐIỀU KHIỂN ........ 2<br />
1.1. NHỮNG KHÁI NIỆM CƠ BẢN VỀ C .............................................. 2<br />
1.1.1. Giới thiệu .......................................................................................... 2<br />
1.1.2. Các thành phần trong ngôn ngữ C .................................................... 2<br />
1.2. CÁC BIẾN........................................................................................... 5<br />
1.2.1. Tên biến ............................................................................................ 5<br />
1.2.2. Khai báo biến.................................................................................... 6<br />
1.2.3. Khai báo và gán giá trị cho biến ....................................................... 6<br />
1.2.4. Phạm vi của biến: ............................................................................. 6<br />
1.3. CÁC HÀM........................................................................................... 6<br />
1.3.1 Khai báo và định nghĩa hàm .............................................................. 7<br />
1.3.2 Lời gọi hàm ....................................................................................... 8<br />
1.3.3 Tham số hình thức, tham số thực và biến cục bộ .............................. 8<br />
1.3.4. Quy tắc hoạt động của hàm .............................................................. 8<br />
1.4. CÁC PHÉP TOÁN .............................................................................. 9<br />
1.4.1. Phép toán số học ............................................................................... 9<br />
1.4.2. Phép toán quan hệ............................................................................. 9<br />
1.4.3. Phép toán logic ................................................................................. 9<br />
1.4.4. Phép toán trên bit (bitwise) ............................................................ 10<br />
1.4.5. Phép gán hợp .................................................................................. 10<br />
1.4.6. Phép toán tăng giảm ....................................................................... 10<br />
1.4.7. Toán tử điều kiện ............................................................................ 11<br />
1.5. CÁC LỆNH ĐIỀU KHIỂN CHƢƠNG TRÌNH ............................... 11<br />
1.5.1. Khái niệm câu lệnh ......................................................................... 11<br />
1.5.2. CÁC LỆNH ĐƠN .......................................................................... 12<br />
1.5.3 Lệnh if ............................................................................................. 12<br />
<br />
1.5.4 Cấu trúc if …else if ......................................................................... 13<br />
1.5.5. Lệnh switch ................................................................................... 14<br />
1.5.6. Lệnh for: ......................................................................................... 14<br />
1.5.7. Lệnh while ...................................................................................... 15<br />
1.5.8. Lệnh do-while................................................................................. 16<br />
1.6. MẢNG VÀ CHUỖI .......................................................................... 17<br />
1.6.1. Mảng một chiều .............................................................................. 17<br />
1.6.2.Mảng nhiều chiều ............................................................................ 18<br />
1.6.3. Chuỗi .............................................................................................. 18<br />
1.7. CON TRỎ .......................................................................................... 21<br />
1.7.1. Khai báo biến con trỏ ..................................................................... 21<br />
1.7.2. Con trỏ với mảng ............................................................................ 21<br />
BÀI TẬP CHƢƠNG 1 ............................................................................. 21<br />
CHƢƠNG 2. CẤU TRÚC CỦA HỆ VI ĐIỀU KHIỂN .......................... 23<br />
2.1. CẤU TRÚC CỦA MỘT HỆ VI ĐIỀU KHIỂN CƠ BẢN ................ 23<br />
2.2. CẤU TRÚC BỘ NHỚ ....................................................................... 25<br />
2.3. ĐỊA CHỈ ............................................................................................ 25<br />
2.4. MỘT SỐ GIAO TIẾP NGOẠI VI CƠ BẢN .................................... 26<br />
BÀI TẬP CHƢƠNG 2 ............................................................................. 26<br />
CHƢƠNG 3. PHẦN CỨNG HỆ VI ĐIỀU KHIỂN PIC ........................ 27<br />
3.1. SƠ ĐỒ VÀ CHỨC NĂNG CHÂN ................................................... 27<br />
3.1.1. Giới thiệu ........................................................................................ 27<br />
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<br />
3.2. XUNG NHỊP VÀ CHU KỲ MÁY .................................................... 31<br />
3.3. RESET ............................................................................................... 31<br />
3.4. XUẤT NHẬP DỮ LIỆU ................................................................... 32<br />
BÀI TẬP CHƢƠNG 3 ............................................................................. 33<br />
CHƢƠNG 4 BỘ ĐỊNH THỜI VÀ BỘ ĐẾM .......................................... 34<br />
<br />
4.1. CẤU TRÚC BỘ ĐỊNH THỜI ........................................................... 35<br />
4.2. THIẾT LẬP CÁC BỘ ĐỊNH THỜI.................................................. 36<br />
4.2.1. Timer 0 ........................................................................................... 36<br />
4.2.2. Timer 1 ........................................................................................... 39<br />
4.2.3 Các lệnh CCS liên quan đến Timer 1 .............................................. 40<br />
4.3. CẤU TRÚC BỘ ĐẾM ...................................................................... 40<br />
BÀI TẬP CHƢƠNG 4. ............................................................................ 41<br />
CHƢƠNG 5. NGẮT................................................................................. 42<br />
5.1. NGẮT BỘ ĐỊNH THỜI/BỘ ĐẾM ................................................... 44<br />
5.1.1. Ngắt Timer 0 .................................................................................. 44<br />
5.2. NGẮT NGOÀI .................................................................................. 45<br />
5.2.1. Ngắt ngoài ...................................................................................... 45<br />
BÀI TẬP CHƢƠNG 5 ............................................................................. 47<br />
CHƢƠNG 6 CÁC KHỐI ĐIỀU KHIỂN CHUYÊN DỤNG ................... 48<br />
6.1. BỘ CHUYỂN ĐỔI A/D .................................................................... 48<br />
6.1.1. Giới thiệu ....................................................................................... 48<br />
6.1.2. ADC của vi điều khiển PIC 18Fxx31 ............................................. 48<br />
6.2. MÔ ĐUN ĐIỀU CHẾ ĐỘ RỘNG XUNG........................................ 59<br />
6.2.1. Giới thiệu ........................................................................................ 59<br />
6.2.2. Chu kỳ xung và độ rộng xung ........................................................ 60<br />
6.2.3. Độ rộng xung .................................................................................. 61<br />
6.2.4. chƣơng trình demo......................................................................... 61<br />
BÀI TẬP CHƢƠNG 6 ............................................................................. 61<br />
CHƢƠNG 7 CÁC GIAO TIẾP CƠ BẢN ................................................ 63<br />
7.1. GIAO TIẾP RS232/RS485 ................................................................ 63<br />
7.1.1. Phần cứng giao tiếp ........................................................................ 63<br />
.7.1.2. Truyền thông với RS232 với trình biên dịch CCS ....................... 64<br />
7.2. GIAO TIẾP I2C................................................................................. 66<br />
<br />
7.3. GIAO TIẾP SPI ................................................................................. 71<br />
7.3.1. Các cách kết nối cơ bản .................................................................. 72<br />
7.3.2. Tên và chức năng của các chân ...................................................... 72<br />
7.3.3. Các kiểu kết nối trong SPI ............................................................. 74<br />
7.4. CÁC GIAO TIẾP KHÁC .................................................................. 76<br />
7.4.1. Giao tiếp USB ................................................................................ 76<br />
BÀI TẬP CHƢƠNG 7 ............................................................................. 85<br />
CHƢƠNG 8 LẬP TRÌNH ỨNG DỤNG ................................................. 86<br />
8.1. LẬP TRÌNH HIỂN THỊ VỚI LED 7 ĐOẠN ................................... 86<br />
8.1.1 Cấu tạo của led 7 đoạn .................................................................... 86<br />
8.1.2 Hiển thị 1 led 7 đoạn dùng vi điều khiển: ....................................... 87<br />
8.1.3 Hiển thị nhiều led 7 đoạn dùng vi điều khiển: ................................ 88<br />
8.2. GIAO TIẾP VỚI MÀN HÌNH LCD ................................................. 90<br />
8.2.1. Hiển thị dùng LCD ......................................................................... 90<br />
8.2.2. Các chân cơ bản của LCD 2 dòng 16 kí tự..................................... 90<br />
8.2.3. Khởi tạo LCD ................................................................................. 91<br />
8.2.4. Ghi kí tự lên LCD để hiển thị ......................................................... 93<br />
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<br />
8.3. ĐIỀU KHIỂN PID CHO ĐỘNG CƠ DC ......................................... 97<br />
BÀI TẬP CHƢƠNG 8 ............................................................................. 99<br />
TÀI LIỆU THAM KHẢO ...................................................................... 101<br />
PHỤC LỤC: CƠ BẢN VỀ CCS ............................................................ 102<br />
1. Cơ bản về ngôn ngữ lập trình CCS .................................................... 102<br />
1.1. Ví dụ về một chƣơng trình viết trên ngôn ngữ CCS ....................... 102<br />
1.2 Cấu trúc của một chương trình viết bằng CCS: ............................... 103<br />
2. Các cấu trúc thuật toán của ngôn ngữ CCS ........................................ 106<br />
3. Các toán tử cơ bản trong CCS: ........................................................... 107<br />
4. Các hàm số học cơ bản trong CCS ..................................................... 108<br />
<br />