Tài liệu Lập trình C cho vi điều khiển
Số trang: 13
Loại file: rtf
Dung lượng: 251.33 KB
Lượt xem: 21
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Tài liệu Lập trình C cho vi điều khiển hỗ trợ cho những bạn mới bắt đầu tìm hiểu và lập trình C cho vi điều khiển. Những thông tin này sẽ giúp sinh viên học tốt môn Vi điều khiển.
Nội dung trích xuất từ tài liệu:
Tài liệu Lập trình C cho vi điều khiểnI.Giới thiệuC là một ngôn ngữ khá mạnh và rất nhiều ngưòi dùng .Nếu nói số lệnh cơ bản của C thì không nhiều. Nhưng đối với lập trình cho vxl , chúng ta chi cần biết s ố lượng lệnh không nhiều .Đầu tiên bạn phải làm quen vớiCác kiểu toán tử ở CCác kiểu dữ liệuCẩu trúc cơ bản của một chương trìnhCác cấu trúc điều khiển (chính các tập lệnh )Cấu trúc điều kiện : if và elseCác cấu trúc lặpVòng lặp whileVòng lặp do whileVòng lặp forLệnh break.Cấu trúc lựa chọn: switch. caseBiết sử dụng các hàm và chương trình con .II.Cơ bản C1. Các chỉ thị trước xử lý của Keil C// chu thich/********** chu thich************************************************************************************************* */Đây là dòng chú thích. Tất cả các dòng bắt đầu bằng hai dấu sổ (//) được coi là chút thích mà chúngkhông có bất kì một ảnh hưởng nào đến hoạt động của chương trình. Chúng có thể được các lập trìnhviên dùng để giải thích hay bình phẩm bên trong mã nguồn của chương trình. Trong trường hợp này,dòng chú thích là một giải thích ngắn gọn những gì mà ch ương trình chúng ta làm. Còn trong dấu (/* */)bạn có thể chú thích bao nhiêu dòng tuỳ thích ,#include hoặc#include AT89X52.Htrình biên dịch sẽ gọi file thư viện của 89 ra (cơ bản là 51 cũng như 52)#define bien_thay_the bienVd#define Congtac P0_6port0.6 được đặt tên là congtac , khi ta gọi tên này trình biên dịch Keil sẽ t ự chuy ển t ới bit qu ản lýP0_6Note :cách viết P0_6 phụ thuộc vào từng trình biên dịch , có chương trình thì lại viết là P0.6 , cònkeil C viết như cách đầu#define m_left_tien P1_5#define m_left_lui P1_4#define m_left_forward m_left_tien=0;m_left_lui=1;các bạn chú ý đây là một cách sử dụng marco trong Ckhi mình gọi m_left_forward thì chân P1_5 = 0 và P1_4=1Các viết này gần như cho chúng ta một chương trình con , tuy nhiên không nên quá lạm dụng nóMột ưu điểm nổi bật của C là các bạn có thể tạo ra các bộ thư viện .Ví dụ sau là tạo thư viện thuvien.h (đuôi .h bạn có thể tạo bằng cách save as .. *.h ở Keil C ).#ifndef _thuvien_H#define _thuvien_H....//mã chương trình#endif2. Các toán tử :->Toán tử gán (=).Ex:b = 5;a = 2 + b;a = 2 + (b = 5);a = b = c = 5;->Các toán tử số học ( +, -, *, /, % )+ cộng- trừ* nhân/ chia% lấy phần dư (trong phép chia)->Các toán tử gán phức hợp (+=, -=, *=, /=, %=, >>=, , =, Lớn hơn< Nhỏ hơn> = Lớn hơn hoặc bằng< = Nhỏ hơn hoặc bằngEXLập trình C cho VXL - Cơ bản VAGAM - giotdang(7 == 5) sẽ trả giá trị false(6 >= 6) sẽ trả giá trị truetất nhiên thay vì sử dụng các số, chúng ta có thể sử dụng bất cứ bi ểu thức nào. Cho a=2, b=3 vàc=6(a*b >= c) sẽ trả giá trị true.(b+4 < a*c) sẽ trả giá trị falseChú ý rằng = (một dấu bằng) lf hoàn toàn khác với ==(hai dấu bằng). (==) nhằm so sánh còn (=)gán giá trị của bi ểu th ức bên ph ải cho bi ến ở bên trái .-> Các toán tử logic ( !, &&, || ).! NOT&& AND|| OREX:!(5 == 5) trả về false vì biểu thức bên phải (5 == 5) có giá trị true.!(6 Các toán tử thao tác bit ( &, |, ^, ~, ).& AND Logical AND| OR Logical OR^ XOR Logical exclusive OR~ NOT Đảo ngược bit> SHR Dịch bit sang phải->Thứ tự ưu tiên của các toán tửThứtựToán tử Mô tả Associativity1 :: scope Trái2 () [ ] -> . sizeof Trái3++ -- tăng/giảmPhải~ Đảo ngược bit! NOT& * Toán tử con trỏ(type) Chuyển đổi kiểu+ - Dương hoặc âm4 * / % Toán tử số học Trái5 + - Toán tử số học Trái6 > Dịch bit Trái7 < >= Toán tử quan hệ Trái8 == != Toán tử quan hệ Trái9 & ^ | Toán tử thao tác bit Trái10 && || Toán tử logic Trái11 ?: Toán tử điều kiện Phải12 = += -= *= /= %=>>= unsigned char 8 1 0 to 255enum 16 2 ‐32,768 to +32,767short 16 2 ‐32,768 to +32,767unsigned short 16 2 0 to 65,535Lập trình C cho VXL - Cơ bản VAGAM - giotdangint 16 2 ‐32,768 to +32,767unsigned int 16 2 0 to 65,535long 32 4‐2,147,483,648 to+2,147,483,647unsigned long 32 4 0 to 4,294,697,295Kiểu dữ liệu trong Keil CType Bits Bytes Rangebit 1 0 0 to 1sbit 1 0 0 to 1sfr 8 1 0 to 255sf16 16 2 0 to 65,5354. Cấu trúc cơ bản của 1 chương trình C//Các chỉ thị tiền định#include //Gọi thư viện có sẵn cách viết khác *.h#define led1 PORTA.0 //dùng định nghĩa các biếnchar bien1,bien2; //cac bien can dungint a,b;void chuongtrinhcon(unsigned int b) // chuong trinh con{…}int ham(void) // chuong trinh con dang ham{….Return(a);}void main(void) //chương trình chính{int a; // khai bao bien dang so nguyenchuongtrinhcon();a = ham();}Chương trình con là nơi các bạn viết các chương trình nhỏ , rất tiện cho các đoạn lệnh gặp lại nhiềulần . Chương trình con có thể có thể gọi ở trong chương trình chính bất kì đâu .Hàm là chương trình con trả vể cho mình một giá trị.Cách sử dụng hàm và chương trình con cá ...
Nội dung trích xuất từ tài liệu:
Tài liệu Lập trình C cho vi điều khiểnI.Giới thiệuC là một ngôn ngữ khá mạnh và rất nhiều ngưòi dùng .Nếu nói số lệnh cơ bản của C thì không nhiều. Nhưng đối với lập trình cho vxl , chúng ta chi cần biết s ố lượng lệnh không nhiều .Đầu tiên bạn phải làm quen vớiCác kiểu toán tử ở CCác kiểu dữ liệuCẩu trúc cơ bản của một chương trìnhCác cấu trúc điều khiển (chính các tập lệnh )Cấu trúc điều kiện : if và elseCác cấu trúc lặpVòng lặp whileVòng lặp do whileVòng lặp forLệnh break.Cấu trúc lựa chọn: switch. caseBiết sử dụng các hàm và chương trình con .II.Cơ bản C1. Các chỉ thị trước xử lý của Keil C// chu thich/********** chu thich************************************************************************************************* */Đây là dòng chú thích. Tất cả các dòng bắt đầu bằng hai dấu sổ (//) được coi là chút thích mà chúngkhông có bất kì một ảnh hưởng nào đến hoạt động của chương trình. Chúng có thể được các lập trìnhviên dùng để giải thích hay bình phẩm bên trong mã nguồn của chương trình. Trong trường hợp này,dòng chú thích là một giải thích ngắn gọn những gì mà ch ương trình chúng ta làm. Còn trong dấu (/* */)bạn có thể chú thích bao nhiêu dòng tuỳ thích ,#include hoặc#include AT89X52.Htrình biên dịch sẽ gọi file thư viện của 89 ra (cơ bản là 51 cũng như 52)#define bien_thay_the bienVd#define Congtac P0_6port0.6 được đặt tên là congtac , khi ta gọi tên này trình biên dịch Keil sẽ t ự chuy ển t ới bit qu ản lýP0_6Note :cách viết P0_6 phụ thuộc vào từng trình biên dịch , có chương trình thì lại viết là P0.6 , cònkeil C viết như cách đầu#define m_left_tien P1_5#define m_left_lui P1_4#define m_left_forward m_left_tien=0;m_left_lui=1;các bạn chú ý đây là một cách sử dụng marco trong Ckhi mình gọi m_left_forward thì chân P1_5 = 0 và P1_4=1Các viết này gần như cho chúng ta một chương trình con , tuy nhiên không nên quá lạm dụng nóMột ưu điểm nổi bật của C là các bạn có thể tạo ra các bộ thư viện .Ví dụ sau là tạo thư viện thuvien.h (đuôi .h bạn có thể tạo bằng cách save as .. *.h ở Keil C ).#ifndef _thuvien_H#define _thuvien_H....//mã chương trình#endif2. Các toán tử :->Toán tử gán (=).Ex:b = 5;a = 2 + b;a = 2 + (b = 5);a = b = c = 5;->Các toán tử số học ( +, -, *, /, % )+ cộng- trừ* nhân/ chia% lấy phần dư (trong phép chia)->Các toán tử gán phức hợp (+=, -=, *=, /=, %=, >>=, , =, Lớn hơn< Nhỏ hơn> = Lớn hơn hoặc bằng< = Nhỏ hơn hoặc bằngEXLập trình C cho VXL - Cơ bản VAGAM - giotdang(7 == 5) sẽ trả giá trị false(6 >= 6) sẽ trả giá trị truetất nhiên thay vì sử dụng các số, chúng ta có thể sử dụng bất cứ bi ểu thức nào. Cho a=2, b=3 vàc=6(a*b >= c) sẽ trả giá trị true.(b+4 < a*c) sẽ trả giá trị falseChú ý rằng = (một dấu bằng) lf hoàn toàn khác với ==(hai dấu bằng). (==) nhằm so sánh còn (=)gán giá trị của bi ểu th ức bên ph ải cho bi ến ở bên trái .-> Các toán tử logic ( !, &&, || ).! NOT&& AND|| OREX:!(5 == 5) trả về false vì biểu thức bên phải (5 == 5) có giá trị true.!(6 Các toán tử thao tác bit ( &, |, ^, ~, ).& AND Logical AND| OR Logical OR^ XOR Logical exclusive OR~ NOT Đảo ngược bit> SHR Dịch bit sang phải->Thứ tự ưu tiên của các toán tửThứtựToán tử Mô tả Associativity1 :: scope Trái2 () [ ] -> . sizeof Trái3++ -- tăng/giảmPhải~ Đảo ngược bit! NOT& * Toán tử con trỏ(type) Chuyển đổi kiểu+ - Dương hoặc âm4 * / % Toán tử số học Trái5 + - Toán tử số học Trái6 > Dịch bit Trái7 < >= Toán tử quan hệ Trái8 == != Toán tử quan hệ Trái9 & ^ | Toán tử thao tác bit Trái10 && || Toán tử logic Trái11 ?: Toán tử điều kiện Phải12 = += -= *= /= %=>>= unsigned char 8 1 0 to 255enum 16 2 ‐32,768 to +32,767short 16 2 ‐32,768 to +32,767unsigned short 16 2 0 to 65,535Lập trình C cho VXL - Cơ bản VAGAM - giotdangint 16 2 ‐32,768 to +32,767unsigned int 16 2 0 to 65,535long 32 4‐2,147,483,648 to+2,147,483,647unsigned long 32 4 0 to 4,294,697,295Kiểu dữ liệu trong Keil CType Bits Bytes Rangebit 1 0 0 to 1sbit 1 0 0 to 1sfr 8 1 0 to 255sf16 16 2 0 to 65,5354. Cấu trúc cơ bản của 1 chương trình C//Các chỉ thị tiền định#include //Gọi thư viện có sẵn cách viết khác *.h#define led1 PORTA.0 //dùng định nghĩa các biếnchar bien1,bien2; //cac bien can dungint a,b;void chuongtrinhcon(unsigned int b) // chuong trinh con{…}int ham(void) // chuong trinh con dang ham{….Return(a);}void main(void) //chương trình chính{int a; // khai bao bien dang so nguyenchuongtrinhcon();a = ham();}Chương trình con là nơi các bạn viết các chương trình nhỏ , rất tiện cho các đoạn lệnh gặp lại nhiềulần . Chương trình con có thể có thể gọi ở trong chương trình chính bất kì đâu .Hàm là chương trình con trả vể cho mình một giá trị.Cách sử dụng hàm và chương trình con cá ...
Tìm kiếm theo từ khóa liên quan:
Lập trình C cho vi điều khiển Vi điều khiển Lập trình C Ngôn ngữ lập trình C Tài liệu lập trình C Tài liệu vi điều khiểnGợi ý tài liệu liên quan:
-
Giáo trình Vi điều khiển (Nghề: Cơ điện tử - Trình độ: Cao đẳng) - Trường Cao đẳng nghề Ninh Thuận
127 trang 274 0 0 -
101 trang 199 1 0
-
Báo cáo môn học vi xử lý: Khai thác phần mềm Proteus trong mô phỏng điều khiển
33 trang 179 0 0 -
Giáo trình Vi điều khiển (Nghề: Điện công nghiệp - Cao đẳng) - Trường Cao đẳng Cơ giới (2022)
144 trang 155 0 0 -
Tìm hiểu về ngôn ngữ lập trình C: Phần 1 - Quách Tuấn Ngọc
211 trang 149 0 0 -
Đề cương chi tiết học phần Vi điều khiển
15 trang 135 0 0 -
161 trang 129 1 0
-
Giáo trình Kỹ thuật lập trình C: Căn bản & nâng cao - Phần 1
202 trang 126 0 0 -
Hướng dẫn thực hành lập trình C trên Visual Studio
9 trang 125 0 0 -
Ứng dụng vi điều khiển PIC 16F877A trong thí nghiệm vật lí phổ thông
12 trang 119 0 0