1. Trang chủ
  2. » Thể loại khác

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

20 7 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 435,41 KB

Nội dung

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 tín chỉ) Ngành cơng nghệ kỹ thuật 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 LỜI NÓI ĐẦU CHƢƠNG NGƠN NGỮ LẬP TRÌNH C CHO VI ĐIỀU KHIỂN 1.1 NHỮNG KHÁI NIỆM CƠ BẢN VỀ C 1.1.1 Giới thiệu 1.1.2 Các thành phần ngôn ngữ C 1.2 CÁC BIẾN 1.2.1 Tên biến 1.2.2 Khai báo biến 1.2.3 Khai báo gán giá trị cho biến 1.2.4 Phạm vi biến: 1.3 CÁC HÀM 1.3.1 Khai báo định nghĩa hàm 1.3.2 Lời gọi hàm 1.3.3 Tham số hình thức, tham số thực biến cục 1.3.4 Quy tắc hoạt động hàm 1.4 CÁC PHÉP TOÁN 1.4.1 Phép toán số học 1.4.2 Phép toán quan hệ 1.4.3 Phép toán logic 1.4.4 Phép toá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 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 trỏ 21 1.7.2 Con trỏ với mảng 21 BÀI TẬP CHƢƠNG 21 CHƢƠNG 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 26 CHƢƠNG 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 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 33 CHƢƠNG 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 36 4.2.2 Timer 39 4.2.3 Các lệnh CCS liên quan đến Timer 40 4.3 CẤU TRÚC BỘ ĐẾM 40 BÀI TẬP CHƢƠNG 41 CHƢƠNG NGẮT 42 5.1 NGẮT BỘ ĐỊNH THỜI/BỘ ĐẾM 44 5.1.1 Ngắt Timer 44 5.2 NGẮT NGOÀI 45 5.2.1 Ngắt 45 BÀI TẬP CHƢƠNG 47 CHƢƠNG 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 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 độ 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 61 CHƢƠNG 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 72 7.3.2 Tên chức chân 72 7.3.3 Các kiểu kết nối 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 85 CHƢƠNG LẬP TRÌNH ỨNG DỤNG 86 8.1 LẬP TRÌNH HIỂN THỊ VỚI LED ĐOẠN 86 8.1.1 Cấu tạo led đoạn 86 8.1.2 Hiển thị led đoạn dùng vi điều khiển: 87 8.1.3 Hiển thị nhiều led đ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 LCD 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 thƣ viện cho LCD bit tập ứng dụng 94 8.3 ĐIỀU KHIỂN PID CHO ĐỘNG CƠ DC 97 BÀI TẬP CHƢƠNG 99 TÀI LIỆU THAM KHẢO 101 PHỤC LỤC: CƠ BẢN VỀ CCS 102 Cơ ngơn ngữ lập trình CCS 102 1.1 Ví dụ chƣơng trình viết ngôn ngữ CCS 102 1.2 Cấu trúc chương trình viết CCS: 103 Các cấu trúc thuật toán ngôn ngữ CCS 106 Các toán tử CCS: 107 Các hàm số học CCS 108 Các hàm vào CCS 108 Các hàm tạo trễ 109 Bài giảng kỹ thuật lập trình vi điều khiển LỜI NĨI ĐẦU Vi điều khiển thiết bị thiếu lĩnh vực điều khiển hệ thống có yêu cầu giá thành thấp Trên thị trƣờng có nhiều dịng vi điều khiển khác nhƣ họ 8051, PIC, ARM, Adruino… Mỗi loại vi điều khiển có ƣu nhƣợc, đƣợc sử tập lệnh riêng để lập trình Họ vi điều khiển PIC dòng vi điều khiển đƣợc sử dụng nhiều thực tế ƣu điểm vƣợt trội Việc lập trình đơn giản sử dụng ngơn ngữ lập trình C có tập lệnh CCS phong phú với nhiều chƣơng trình mẫu Chính vậy, với mong muốn cung cấp cách khái quát nhất, đơn giản cho sinh viên ngành cơng nghệ khí tiếp cận đến lĩnh vực vi điều khiển, sở đề cƣơng chi tiết đƣợc thông qua, việc tham khảo tài liệu từ nguồn khác nhau, biên soạn tài liệu để sinh viên sử dụng trình học tập tham khảo vi điều khiển PIC Trong q trình biên soạn, khơng tránh thiếu sót, mong nhận đƣợc góp ý đồng nghiệp sinh viên Trang Bài giảng kỹ thuật lập trình vi điều khiển CHƢƠNG NGƠN NGỮ LẬP TRÌNH C CHO VI ĐIỀU KHIỂN Mục tiêu: Sinh viên hiểu khái niệm biến, hàm, chuỗi, mảng, trỏ cách thức sử dụng chúng Sinh viên hiểu vận dụng phép toán C 1.1 NHỮNG KHÁI NIỆM CƠ BẢN VỀ C 1.1.1 Giới thiệu Ngơn ngữ lập trình C ngơn ngữ mệnh lệnh đƣợc phát triển từ đầu thập niên 1970 Dennis Ritchie để dùng hệ điều hành UNIX Từ đó, ngơn ngữ lan rộng nhiều hệ điều hành khác trở thành ngôn ngữ phổ dụng C ngôn ngữ có hiệu đƣợc ƣa chuộng để viết phần mềm hệ thống, đƣợc dùng cho việc viết ứng dụng Ngoài ra, C thƣờng đƣợc dùng làm phƣơng tiện giảng dạy khoa học máy tính ngơn ngữ khơng đƣợc thiết kế dành cho ngƣời nhập môn (wikipedia Tiếng Việt) 1.1.2 Các thành phần ngôn ngữ C 1.1.2.1 Từ khóa Từ khóa từ có ý nghĩa xác định, đƣợc dùng để khai báo liệu, viết câu lệnh…Trong ngơn ngữ C sử dụng CCS có sử dụng loại từ khóa sau: ASM/ENDASM : từ khóa dùng để liệt kê/kết thúc liệt kê cấu trúc ngơn ngữ assembly lập trình BREAK: Từ khóa đƣợc sử dụng để khỏi vịng lặp CASE: từ khóa dùng để lựa chọn cấu trúc lựa chọn CHAR: từ khóa dùng định nghĩa kiểu biến kiểu ký tự CONST: từ khóa dùng để định nghĩa CONTINUE: từ khóa cho phép thực bƣớc vịng lặp DEFAULT: từ khóa sử dụng cấu trúc chọn lựa switch, sử dụng để chọn lựa trƣờng hợp tất trƣờng hợp sử dụng từ khóa case khơng hợp lệ Trang Bài giảng kỹ thuật lập trình vi điều khiển DO: từ khóa sử dụng vịng lặp do…while DOUBLE: từ khóa định nghĩa kiểu biến ELSE: từ khóa rẽ nhánh cấu trúc lựa chọn if…else ENUM: từ khóa tạo danh sách kiểu integer FLOAT: từ khóa định nghĩa kiểu liệu FOR: từ khóa định nghĩa vịng lặp for GOTO: từ khóa cho phép nhảy đến vị trí đƣợc gắn nhãn IF: từ khóa định nghĩa cấu trúc rẽ nhánh if…else INT: từ khóa định nghĩa kiểu biến INTERRUPT: từ khóa định nghĩa hàm cho phép điều khiển thủ tục ngắt vi điều khiển LONG: từ khóa định nghĩa kiểu biến RETURN: từ khóa cho phép khỏi vịng lặp, cấu trúc lựa chọn hàm trả giá trị SHORT: từ khóa định nghĩa kiểu biến STRUCT: từ khóa định nghĩa cấu trúc SIGNED: từ khóa định nghĩa kiểu biến có dấu SIZEOF: từ khóa xác định kích thƣớc byte tốn hạng SWITCH: từ khóa định nghĩa cấu trúc chọn lựa switch…case UNSIGNED: từ khóa định nghĩa kiểu biến khơng dấu VOID: Từ khóa sử dụng để khai báo chƣơng trình thủ tục 1.1.2.2 Tên Tên đƣợc dùng để xác định đại lƣợng khác chƣơng trình Tên dùng để đặt cho biến, hằng, hàm, trỏ, nhãn…Tên thƣờng đƣợc đặt để mang tính gợi nhớ ý nghĩa đại lƣợng Chiều dài tối đa tên 32 ký tự Tên hợp lệ phải chuỗi liên tục (không có khoảng trắng) gồm chữ, số, gạch dƣới (khơng sử dụng ký tự đặc biệt nhƣ -,#, &,>, lớn >= lớn < nhỏ > : dịch phải b)? a:b; kết max = 1.5 CÁC LỆNH ĐIỀU KHIỂN CHƢƠNG TRÌNH 1.5.1 Khái niệm câu lệnh Một câu lệnh (statement) xác định cơng việc mà chƣơng trình phải thực để xử lý liệu đƣợc mô tả khai báo Các câu lệnh đƣợc ngăn cách với dấu chấm phẩy (;) Phân loại Có hai loại lệnh: lệnh đơn lệnh có cấu trúc Lệnh đơn lệnh không chứa lệnh khác Các lệnh đơn gồm: lệnh gán, câu lệnh nhập xuất liệu… Lệnh có cấu trúc lệnh chứa lệnh khác Lệnh có cấu trúc bao gồm: cấu trúc điều kiện rẽ nhánh, cấu trúc điều kiện lựa chọn, cấu trúc lặp Trang 11 Bài giảng kỹ thuật lập trình vi điều khiển cấu trúc lệnh hợp thành Lệnh hợp thành (khối lệnh) nhóm bao gồm nhiều khai báo biến lệnh đƣợc gom vào cặp dấu {} 1.5.2 CÁC LỆNH ĐƠN 1.5.2.1 Lệnh gán Lệnh gán (assignment statement) dùng để gán giá trị biểu thức cho biến Cú pháp: = Ví dụ: int main() { int x,y; x =10; /*Gán số 10 cho biến x*/ y = 2*x; /*Gán giá trị 2*x=2*10=20 cho x*/ return 0; } Nguyên tắc dùng lệnh gán kiểu biến kiểu biểu thức phải giống nhau, gọi có tƣơng thích kiểu liệu Chẳng hạn ví dụ sau cho thấy khơng tƣơng thích kiểu: int main() { int x,y; x = 10; /*Gán số 10 cho biến x*/ y = “Xin chao”; /*y có kiểu int, cịn “Xin chao” có kiểu char* */ return 0; } 1.5.3 Lệnh if Câu lệnh if cho phép lựa chọn hai nhánh tùy thuộc vào giá trị biểu thức logic (true) hay sai (false) - Dạng Trang 12 Bài giảng kỹ thuật lập trình vi điều khiển Cú pháp: if (bt_logic) ; Diễn giải: Nếu bt_logic có giá trị thực khối lệnh khỏi if, ngƣợc lại khơng làm thoát khỏi if - Dạng Cú pháp: if (bt_logic) ; else ; Diễn giải: Nếu bt_logic có giá trị thực khối lệnh thoát khỏi if, ngƣợc lại thực khối lệnh thoát khỏi if 1.5.4 Cấu trúc if …else if Cú pháp: if (bt_logic1) khối lệnh 1; else if (bt_logic 2) khối lệnh 2; … else if (bt_logic n-1) khối lệnh n-1; else khối lệnh n; Diễn giải: Nếu bt_logic có giá trị đúngthì thực khối lệnh thoát khỏi cấu trúc if Ngƣợc lại, bt_logic có giá trị đúngthì thực khối lệnh thoát khỏi cấu trúc if Ngƣợc lại, bt_logic n-1 đúngthì thực khối lệnh n-1 khỏi cấu trúc if, ngƣợc lại thực khối lệnh n Trang 13 Bài giảng kỹ thuật lập trình vi điều khiển 1.5.5 Lệnh switch Cú pháp: switch (biểu thức) { case giá trị : khối lệnh 1; break; case giá trị : khối lệnh 2; break; … case giá trị n : khối lệnh n; break; default : khối lệnh; [break;] } Diễn giải: Khi giá trị biểu thức giá trị i lệnh i đƣợc thực Nếu sau lệnh i khơng có lệnh break tiếp tục thực lệnh sau Ngƣợc lại khỏi cấu trúc switch Nếu giá trị biểu thức không trùng với giá trị i lệnh tƣơng ứng với từ khóa default đƣợc thực 1.5.6 Lệnh for: Cú pháp: for ([biểu thức 1]; [biểu thức 2]; [biểu thức 3]) ; Ý nghĩa: Là vòng lặp với số lần lặp đƣợc xác định trƣớc, tức thực n lần (n>=0), Quá trình lặp kết thúc [biểu thức 2]cho giá trị sai, thực gặp lệnh nhảy khỏi vòng lặp Diễn giải: - Biểu thức 1: khởi tạo giá trị ban đầu cho biến điều khiển - Biểu thức 2: quan hệ logic thể điều kiện tiếp tục vòng lặp - Biểu thức 3: phép gán dùng thay đổi giá trị biến điều khiển Trang 14

Ngày đăng: 03/08/2022, 07:40

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w