Chuong 2 Ngôn ngữ C trên Vi điều khiển

22 1 0
Chuong 2 Ngôn ngữ C trên Vi điều khiển

Đ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

✓Giới thiệu. ✓Các thành phần cơ bản của ngôn ngữ lập trình C ✓Trình biên dịch C ✓Một số bài toán trong C 2 GIỚI THIỆU 3 Ngôn ngữ bậc thấp: + Ngôn ngữ máy, hợp ngữ. + Các ngôn ngữ lập trình bậc thấp thường được chia thành hai loại: Thế hệ thứ nhất (1GL): ngôn ngữ duy nhất mà bộ vi xử lý có thể hiểu. Thế hệ thứ hai (2GL): ngôn ngữ assembly, lập trình viên cần phải hiểu về kiến trúc của bộ vi xử lý mới có thể thực hiện được. Ngôn ngữ bậc cao: + Sử dụng trình biên dịch CCS, MikroC, keli C, Arduino… + Thân thiện, dễ thao tác. + File HEX được tạo ra có thể được nạp bởi phần mềm thứ 3.

TRƯỜNG ĐẠI HỌC PHENIKAA KHOA ĐIỆN ĐIỆN TỬ KỸ THUẬT VI XỬ LÝ VÀ VI ĐIỀU KHIỂN Chương 2: Ngôn ngữ C Vi điều khiển GIẢNG VIÊN: ThS ĐÀO TÔ HIỆU Hà Nội, 1/2022 NỘI DUNG ✓Giới thiệu ✓Các thành phần ngơn ngữ lập trình C ✓Trình biên dịch C ✓Một số tốn C GIỚI THIỆU - Ngôn ngữ bậc thấp: + Ngôn ngữ máy, hợp ngữ + Các ngơn ngữ lập trình bậc thấp thường chia thành hai loại: Thế hệ thứ (1GL): ngôn ngữ mà vi xử lý hiểu Thế hệ thứ hai (2GL): ngơn ngữ assembly, lập trình viên cần phải hiểu kiến trúc vi xử lý thực - Ngôn ngữ bậc cao: + Sử dụng trình biên dịch CCS, MikroC, keli C, Arduino… + Thân thiện, dễ thao tác + File HEX tạo nạp phần mềm thứ 3 GIỚI THIỆU Đăc điểm ngôn ngữ C: + C giúp thuận tiện để viết chương trình lớn với số lỗi giảm tối đa đơn giản hóa cấu trúc lập trình + Một ngơn ngữ cốt lõi đơn giản với chức quan trọng Các hàm xử lý chia sẻ dạng thư viện, rút ngắn chương trình + Mức thấp ngơn ngữ cho phép dùng tới nhớ máy tính qua việc sử dụng kiểu liệu trỏ + Các tham số đưa vào hàm giá trị, không địa Hàm trỏ cho phép hình thành tảng ban đầu cho tính đóng tính đa hình + Hỗ trợ ghi hay kiểu liệu kết hợp thông qua cấu trúc struct cho phép liệu liên hệ tập hợp lại điều chỉnh tồn CẤU TRÚC LẬP TRÌNH C CHO VI ĐIỀU KHIỂN Cấu trúc lập trình C cho vi điều khiển - #include: khai báo thư viện sẵn - #define: khai báo biến - Khai bao kiểu biến - Định nghĩa hàm - Hàm main() + Các mã lệnh, cấu trúc không lặp lại đặt ngồi vịng While + Các cấu trúc điều khiển, mã lệnh đọc liệu đặt While + Các hàm, cấu trúc while gọi lại cấu hình ngắt (timer, ngắt ngồi…) #include #include #define Led1 P1_0 // Khai báo biến toàn cục: Unsigned char code Led_arr[3]; Unsigned char data dem; Unsigned int xdata X; // Xây dựng hàm chương trình chính: float kiemtra(unsigned int a) { Khai báo biến cục bộ; Mã chương trình kiểm tra biến a; Mã chương trình trả kết dạng float; } void delay(unsigned int n) { Khai báo biến cục bộ; Mã chương trình trễ; } Void main() // Chương trình { Khai báo biến cụ bộ; Mã chương trình chính; While(True) { //biên cục //gọi hàm //xử lý vòng lặp } } BIẾN VÀ HẰNG SỐ Biến số - Biến số dùng để lưu trữ giá trị thay đổi, số lưu trữ giá trị cố định Mỗi loại chiếm kích thước nhớ khác - Kiểu biến CCS: Ví dụ: ѕigned int8 dem; => biến đếm 8bit, Bit ѕố ѕẽ quу định dấu ѕố “1” mang dấu “-” lại bit nên 2^7 = 128 giá trị Tiêu CCS chuẩn C Kích cỡ Unѕigned (Khơng âm) Signed (Có dấu) đến Khơng có short int1 Số bit = true haу falѕe ( haу 1) int int8 Số nguуên bуte ( bit) đến 255 -128 đến 127 long int16 Số nguуên 16 bit long long int32 Số nguуên 32 bit đến 65535 đến 4294967295 -32768 đến 32767 -2147483648 đến 2147483647 float float3 Số thực 32 bit -1.5 х 1045 đến 3.4 х 1038 BIẾN VÀ HẰNG SỐ Biến số - Khai báo biến thường có dạng: int1 a1; //biến a1 kiểu liệu 1bit có hai giá trị ᴠà ѕigned int8 a2; //biến a2 kiểu ѕố nguуên giá trị 8bit ᴠà có dấu unѕigned int8 a3; // biến a3 kiểu ѕố nguуên giá trị 8bit khơng dấu viết thành int8 a3; float a4; //biến a4 kiểu ѕố thực tức có dấu “,” VD: 1,12 ᴠà lấу hai giá trị thập phân ѕau không lấу nhiều Tiêu chuẩn C CCS Kích cỡ Unѕigned (Khơng âm) short int1 Số bit = true haу falѕe ( haу 1) đến Khơng có int int8 Số nguуên bуte ( bit) đến 255 -128 đến 127 long int16 Số nguуên 16 bit long long int32 Số nguуên 32 bit float float32 Signed (Có dấu) đến 65535 -32768 đến 32767 đến -2147483648 đến 4294967295 2147483647 -1.5 х 10^45 đến 3.4 х 10^38 Số thực 32 bit BIẾN VÀ HẰNG SỐ Biến số - kiểu khai báo số: #define PI 3.14 //biến toàn cục const float g = 9.8;biến cục Tiêu chuẩn C CCS Kích cỡ Unѕigned (Khơng âm) short int1 Số bit = true haу falѕe ( haу 1) đến Khơng có int int8 Số nguуên bуte ( bit) đến 255 -128 đến 127 long int16 Số nguуên 16 bit đến 65535 -32768 đến 32767 Số nguуên 32 bit đến 4294967295 -2147483648 đến 2147483647 long long int32 float float32 Số thực 32 bit Signed (Có dấu) -1.5 х 10^45 đến 3.4 х 10^38 HÀM SỐ HỌC Hàm số học Abs (): lấy trị tuyệt đối Ceil(): làm tròn theo hướng tăng Floor(): làm tròn theo hướng giảm Pow(): lũy thừa Sqrt(): lấy Chi tiết tra help CCS : tab contents, chọn Built-In-Function TOÁN TỬ TRÊN VI ĐIỀU KHIỂN Toán tử Thư viện: #INCLUDE +Toán tử gán (=): sử dụng cho toán gán giá trị VD: int8 a=1; +Toán tử ѕố học (+, -, *, /, %): ѕử dụng cho tính tốn tốn thơng thường + Tốn tử gán phức hợp (+=, -=, *=, /=, %=, >>=,=, ): tính tốn logic ѕố học ᴠà dịch liệu 10 TỐN TỬ TRÊN VI ĐIỀU KHIỂN Tốn tử Phân biệt toán tử & với &&, | với ||: + Toán tử &, |: toán tử logic theo bit int8 a = 10, b = 14; int8 ketQua = a & b; //ketQua = 10  a & b tương ứng với 1010 & 1111 = 1010 => 10 + Toán tử &&, ||: toán tử trả kết True False Ví dụ: int8 a = 10, b = 14; int8 ketQua = a & b; //ketQua = tương ứng với True  a # b #0 =>a không khác b => Kết True (1) Ví dụ 2: int8 a = 10, b = 14, c = 0; if(a < b && a > 0) c = a+b; 11 else c =b-a; //c = ? BÀI TẬP VỀ HÀM VÀ TOÁN TỬ - Ví dụ 1: Viết câu lệnh dạng ngơn ngữ C mô tả: Khai báo biến x biên y dạng số thực và: y = x + 2( x − 1) − 2 - Ví dụ 2: Viết câu lệnh dạng ngôn ngữ C mô tả: + Khai báo biến x, y, z kiểu số nguyên dương bit + x = y +1 z= x−y 12 MỘT SỐ HÌNH KHỐI TRONG THUẬT TỐN Một số hình khối thuật tốn Bắt đầu/kết thúc Luồng thực Nhập/xuất liệu Thực hiện/xử lý Kết nối Điều kiện rẽ nhánh 13 MỘT SỐ HÌNH KHỐI TRONG THUẬT TOÁN Các lệnh C + if(dk) { lenh;} + if(dk) { thực } else { thực } 14 MỘT SỐ HÌNH KHỐI TRONG THUẬT TOÁN Các lệnh C if(dk1) { Thực 1} else if (dk2) {Thực 2} … else if (dkn+1) {Thực n+1} else {Thực n} 15 MỘT SỐ HÌNH KHỐI TRONG THUẬT TỐN Các lệnh C switch(expression) { case constant1: code_block1(); break; //exit case constant-expression: code_block2(); break; //exit default : //Optional default_code; } 16 TRÌNH BIÊN DỊCH Tạo dự án: Vào New >> New Project>> “Nhập đường dẫn” >> “Nhập tên” >> Save 17 TRÌNH BIÊN DỊCH Family -> Pic16 Device -> PIC16F887 18 TRÌNH BIÊN DỊCH Giao diện lập trình cho PIC phần mềm CCS (1) : Check lỗi biên dịch tạo file HEX (2) Chọn chủng loại PIC (3) Khu vực lập trình (4) Khu vực theo dõi kết biên dịch 19 BÀI TỐN LẬP TRÌNH VỚI PIC ✓ Điều khiển nháy led đơn, chuỗi led đơn ✓ Điều khiển LED đoạn trực tiếp gián tiếp qua IC ✓ Điều khiển hiển thị lên LCD ✓ Ứng dụng timer, ngắt ✓ Đọc liệu ADC ✓ Giao tiếp UART ✓ Điều khiển tốc độ ứng dụng PWM ✓ Giao tiếp I2C, 1-dây, SPI, UART 20

Ngày đăng: 03/08/2023, 10:38

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan