ĐẠI HỌC LẠC HỒNG GIÁO TRÌNH LẬP TRÌNH C CHO HỌ VI ĐIỀU KHIỂN 8051Biên soạn: Nguyễn Bá Thuận Page 1 of 6
CHƯƠNG 1: NGÔN NGỮ C CHO HỌ VI ĐIỀU KHIỂN 8051
1.1.C
ấ
u
trúc m
ộ
t ch
ư
ơ
ng trình:
//Đính
kèm
các
file
long
n=0;
//Khai
báo
và
đ
ị
nh
ngh
ĩ
a
các
hàm
void
Hàm1(void)
{
…//Các
chính
b
ắ
t
bu
ộ
c
ch
ươ
ng
trình
nào
c
ũ
ng
ph
ả
i
có
void
main(void)
ể
có
l
ờ
i
g
ọ
i
các
hàm
đ
ã
khai
báo
ở
trên
ho
ặ
c
đ
ế
n
hàm
đ
ó
th
ự
c
hi
ệ
n
hàm
đ
ó
xong
con
tr
ỏ
l
các
hàm
ho
ặ
c
câu
l
ệ
nh.
Các
câu
l
ệ
nh
trong
C
k
ế
t
t
trong
d
ấ
u:
M
ở
đ
ầ
u
b
ằ
ng
“/*”
k
ế
t
thúc
b
ằ
ng
d
ấ
u:
“//”
Khi
l
ậ
p
trình
nên
gi
ả
i
thích
các
câu
l
ệ
nh
n
d
ễ
s
ử
a
l
ỗ
i. ĐẠI HỌC LẠC HỒNG GIÁO TRÌNH LẬP TRÌNH C CHO HỌ VI ĐIỀU KHIỂN 8051Biên soạn: Nguyễn Bá Thuận Page 2 of 6
2.2.Các lo
ạ
i bi
ế
n trong C:
i
á
t
r
ị
c
h
a
r
8
1
-
128
đ
ế
n
+
127
un
s
i
g
768
đ
ế
n
+
3
2
,
767
un
s
i
g
n
e
d
s
h
o
r
t
16
2
i
n
t
16
2
0
đ
ế
n
65
,
535
long 32 4
-2,147,483,648
đ
ế
n+2,147,483,647
un
s
i
g
n
e
n
C
ấ
u
trúc
:
Ki
ể
u
bi
ế
n
Tên
bi
ế
n
VD:
unsigned
char
x;
ban
đ
ầ
u.
VD
:
Thay
vì:
unsigned
char
x;
x=0;
Ta
ch
ỉ
c
ầ
n
t
ki
ể
u
m
ộ
t
lúc
VD:
unsigned
int
x,y,z;
Ngoài
ra
đ
ể
dùng
cho
ợ
các
lo
ạ
i
bi
ế
n
sau:
D
ạ
n
g
b
i
ế
n
S
ố
B
i
t
;
1
s
b
it
1
0
0
;
1
sfr
8
1
0
đ
ế
n
đ
ị
nh
nghĩa
bi
ế
n
ki
ể
u
bít
hay
ki
ể
u
SFR
(special
function register)
Bit
ph
ả
i
h
ọ
c
thu
ộ
c
ch
ỉ
c
ầ
n
bi
ế
t,
và
chúng
đ
ượ
c
ấ
u
trúc
nh
ư
sau
Có
2
lo
ạ
i
hàm
Hàm
tr
ả
l
ạ
i
Tên
hàm
(Bi
ế
n
truy
ề
n
vào
hàm)
{
//
Các
l
ệ
nh
x
ử
lý
//
Các
l
ệ
nh
x
ử
lý
ở
đ
ây
}
Hàm
không
tr
ả
l
ạ
i
{
//
Các
câu
l
ệ
nh
x
ử
lý
ở
đ
ây
}VD:
void
Cong(unsigned
đ
ây
}
Hàm
có
th
ể
truy
ề
n
vào
bi
ế
n
ho
ặ
c
không
VD
l
ệ
nh
x
ử
lí
ở
đ
ây
} ĐẠI HỌC LẠC HỒNG GIÁO TRÌNH LẬP TRÌNH C CHO HỌ VI ĐIỀU KHIỂN 8051Biên soạn: Nguyễn Bá Thuận Page 4 of 6
Hàm
có
x
ử
lí
ở
đ
ây
}
S
ố
bi
ế
n
truy
ề
n
vào
tùy
ý(mi
ễ
:Void
TênHàm(unsigned
char
x,
unsigned
char
y,
unsigned
char
z)
{
//
Các
câu
u
khi
ể
n
ph
ầ
n
ph
ề
m
Keil
C
còn
có
m
ộ
t
lo
ạ
i
b
ă
ngthanhghi
{
}
Hàm
ng
ắ
t
không
đ
ượ
c
phép
tr
ả
l
ạ
i
Interrupt
là
t
ừ
khóa
ch
ỉ
hàm
ng
ắ
t
Ngu
ồ
n
ng
ắ
t
t
ừ
0
ng
ắ
t
reset
h
ệ
th
ố
ng
b
ắ
t
đ
ầ
u
đ
ế
m
t
ừ
ng
n
3 ĐẠI HỌC LẠC HỒNG GIÁO TRÌNH LẬP TRÌNH C CHO HỌ VI ĐIỀU KHIỂN 8051Biên soạn: Nguyễn Bá Thuận Page 5 of 6
2.4.Các toán t
ử
c
ơ
b
ả
n:
Phép gán
:
=
V
D
:
bi
ế
n
ho
ặ
c
giá
tr
ị
nh
ư
ng
ph
ả
i
phù
h
ợ
p
ki
ể
u
t
ử
logic:
B
ằ
ng
:
== And:
&& Or:
||
Not:
!
D
ị
ch
trái:
<< D
ị
ch
if:
C
ấ
u
trúc:
if
(Đi
ề
uki
ệ
n)
{
//
Các
câu
l
ệ
nh
x
ử
các
câu
l
ệ
nh
bên
trong
còn
sai
thì
nh
ả
y qua
Câu
l
ệ
nh
l
Các
câu
l
ệ
nh
break;
}
case
giatr
ị
2:
{
//
Các
câu
l
ệ
nh
ị
n:
{
//
Các
câu
l
ệ
nh
break;
}
}
Giải thích: tùy vào biến có giatri1 thì thực hiện các câu lệnh sau đó tương ứng rồi thoát
khỏi cấu trúc nhờ lệnh break.
Câu
l
ệ
nh
vòng
câu
l
ệ
nh
x
ử
lí
}
Gi
ả
i
thích:
Trong
đ
ó
m,l
là
giá
hi
ệ
n
l
ặ
p
các
câu
l
ệ
nh
(l-m)
l
ầ
n
Câu
l
ệ
nh
vòng
//Các
câu
l
ệ
nh
}
Gi
ả
i
thích:
Th
ự
c
hi
ệ
n
l
ặ
p
các
sai
thi
thoát
kh
ỏ
i vòng
l
ặ
p
2.6. B
ộ
ti
ề
n x
ử
lý:
#define
:
Dùng
đ
ể
dung
có
giá
tr
ị
b
ằ
ng
1.
Trong
ch
ươ
ng
trình
có
th
ể
có
ệ
nh}
if
(bit==sai)
{
//
Các
câu
l
ệ
nh}
Vi
ệ
c
này
giúp
l
ậ
p