Wednesday, July 23, 2008
Lập trine C cho VXL - bản bkav huy231086@yahoo.com
Lp trình C cho VXL 8051 - Cơ bản
I.Giới thiệu
i. C một ngôn ngữ khá mạnh rất nhiều ngưòing .Nếu nói số lệnh bản của C t 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ới
ii. Các kiu tn tửC
iii. Các kiu dữ liu
iv. Cẩu trúc bản của một cơng trình
v. c cấu trúc điều khiển (chính các tập lệnh )
1. Cấu trúc điều kiện : if else
2. Các cấu trúc lặp
a. Vòng lặp while
b. Vòng lặp do while
c. ng lặp for
3. Lệnh break.
4. Cấu trúc lựa chọn: switch. case
vi. Biết sử dụng c hàm cơng tnh con.
vii. II. bản C
1. Các chỉ thị trước xử lý của Keil C
viii. // chu thich
chu thich***
a. *
b. */
ii. Đây dòng chú thích. Tất cả các dòng bắt đầu bằng hai dấu sổ (//) được coi là ct thích
chúng không có bất một ảnh hưởngo đến hoạt động của chương trình. Chúng có
thể
được các lập trình viên dùng để giải thích hay nh phẩm bên trong nguồn của
chương
trình. Trong trường hợp này, dòng c thích một giải tch ngắn gọn những gì
chương
trình chúng ta làm.n trong dấu (/* */) bạn có th chú thích bao nhiêu dòng tuỳ thích ,
Lập trine C cho VXL - Cơ bản bkav huy231086@yahoo.com
#include <AT89X52.H>
#include "AT89X52.H"
trình biên dịch sgọi file thư viện của 89 ra (cơ bản là 51 cũng như 52)
#define bien_thay_the bien
Vd
#define Congtac P0_6
port0.6 được đặt n congtac , khi ta gọi n này trình biên dịch Keil sẽ tự chuyển tới bit quản
P0_6
Note :cách viết P0_6 phụ thuộc o từng tnh biên dịch , có chương trình thì lại viếtP0.6 , còn keil
C viết như 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 bạn chú ý đây là một cách sử dụng marco trong C
khi nh gọi m_left_forward thì chân P1_5 = 0 và P1_4=1
Các viếty gần như cho chúng ta một chương tnh 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ể to ra c bộ thư viện .
dụ sau tạo thư viện thuvien.h (đuôi .h bạn thể tạo bằng cách save as .. *.h Keil C ).
#ifndef _thuvien_H
#define _thuvien_H
.//mã cơng trình
#endif
2. c toán t :
->Toán tửn (=).
Ex:
Lập trine C cho VXL - bản bkav huy231086@yahoo.com
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ửn phức hợp (+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |=)
value += increase; tương đương với value = value + increase; a -
= 5; ơng đương với a = a - 5;
a /= b; tương đương với a = a / b;
price *= units + 1; tương đương với price = price * (units + 1);
Tăng và gim ++ - -
a++; <=> a+=1; <=> a=a+1;
nh chất tiền tố hoặc hậu t(++a) # (a++) Ex
B=3;
B=3;A=++B;
// A is 4, B is 4
B=3;
A=B++;
// A is 3, B is 4
-> Các toán t quan h
( ==, !=, >, <, >=, <= )
== Bằng
!= Khác
> Ln hơn
< Nh hơn
> = Ln hơn hoặc bằng
< = Nh n hoc bng
EX
Lập trình C cho VXL - bản bkav huy231086@yahoo.com
(7 == 5) s tr giá tr false
(6 >= 6) s tr giá tr true
tất nhiên thay sử dụng các số, chúng ta thể sử dụng bất cứ biểu thức nào. Cho a=2, b=3
c=6
(a*b >= c) s tr giá trị true.
(b+4 < a*c) s tr giá tr false
Chú ý rng = (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 n (=)gán giá trị của biểu thức n phải cho biếnbên trái .
-> Các toán tlogic ( !, &&, || ).
! NOT
&& AND
|| OR
EX:
!(5 == 5) tr v false vì biu thc bên phải (5 == 5) có giá tr true.
!(6 <= 4) tr v true vì (6 <= 4)có giá tr false.
!true tr v false.
!false tr v true.
( (5 == 5) && (3 > 6) ) trả v false ( true && false ).
( (5 == 5)
-> Các toán tử thao c bit ( &, |, ^, ~, <<, >> ).
& AND Logical AND
| OR Logical OR
^ XOR Logical exclusive OR
~ NOT Đảo ngược bit
<< SHL Dịch bit sang trái
>> SHR Dịch bit sang phải
->Thứ tưu tn của các tn tử
Th
t
Toán t
t
1
::
scope