bai lap trinh vi điều khiển
DESCRIPTION
nói về các khối trong vi điều khiển 89C51 , các chương trình chạy ma trận phím, led đơnTRANSCRIPT
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 1/55
Nhóm 1:
Bài 1: Kết hợp 4 phím đơn với 8 led đơn, mỗi lần bấm phím
!n" # hi$% &n" 'h!( nh)%*
+de:
#include <regx52.h>
#defne nut1 P1_0
#defne nut2 P1_1
#defne nut3 P1_2
#defne nut4 P1_3
#defne led P2
//==============================
void dela_!"un"igned n$
%
int i&'(
)or '=0('<n('**$
%
)ori=0(i<125(i**$
%
(
+
+
+
//================================
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 2/55
void hu1void$
%
led=0x00(
dela_!"400$(
led=0x,(
dela_!"400$(
+
//==================
void hu2void$
%
led=0x55(
dela_!"300$(
led=0xaa(
dela_!"300$(
+
//======================
void hu3void$
%
led=0x01(
dela_!"300$(
led=0x02(
dela_!"300$(
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 3/55
led=0x04(
dela_!"300$(
led=0x0-(
dela_!"300$(
led=0x10(
dela_!"300$(
led=0x20(
dela_!"300$(
led=0x40(
dela_!"300$(
led=0x-0(
dela_!"300$(
led=0x00(
dela_!"300$(
+
//===========================
void hu4void$
%
led=0x01(
dela_!"300$(
led=0x03(
dela_!"300$(
led=0x0(
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 4/55
dela_!"300$(
led=0x0)(
dela_!"300$(
led=0x1)(
dela_!"300$(
led=0x3)(
dela_!"300$(
led=0x)(
dela_!"300$(
led=0x,(
dela_!"300$(
led=0x00(
dela_!"300$(
+
//=====================================
void hu5void$
%
led=0x00(
dela_!"300$(
led=0x-1(
dela_!"300$(
led=0xc3(
dela_!"300$(
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 5/55
led=0xe(
dela_!"300$(
led=0x,(
dela_!"300$(
led=0x00(
dela_!"300$(
+
//===========================
void huvoid$
%
led=0x00(
dela_!"300$(
led=0x1-(
dela_!"300$(
led=0x3c(
dela_!"300$(
led=0xe(
dela_!"300$(
led=0x,(
dela_!"300$(
led=0x00(
dela_!"300$(
+
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 6/55
//============================
void huvoid$
%
led=0x00(
dela_!"300$(
led=0x1-(
dela_!"300$(
led=0x24(
dela_!"300$(
led=0x42(
dela_!"300$(
led=0x-1(
dela_!"300$(
led=0x00(
dela_!"300$(
+
//============================
void hu-void$
%
led=0x00(
dela_!"300$(
led=0x-1(
dela_!"300$(
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 7/55
led=0x42(
dela_!"300$(
led=0x1-(
dela_!"300$(
led=0x1-(
dela_!"300$(
led=0x00(
dela_!"300$(
+
///======================================
void !ainvoid$
%
int i(
dela_!"100$(
hile1$
%
P1_0=P1_1=0(
i)nut1==1$
%
dela_!"200$(
)ori=0(i<3(i**$
%hu1$(+
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 8/55
)ori=0(i<3(i**$
%hu2$(+
i)nut4==0nut2==0nut3==0$ %rea(+
nut1=0(
dela_!"200$(
+
//================================
i)nut2==1$
%
dela_!"200$(
hu3$(
hu4$(
i)nut1==0nut4==0nut3==0$ %rea(+
nut2=0(
dela_!"200$(
+
//==================================
=====
i)nut3==0$
%
dela_!"200$(
hu5$(
hu$(
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 9/55
i)nut1==0nut2==0nut4==0$ %rea(+
nut3=1(
dela_!"200$(
+
//===================================
i)nut4==0$
%
dela_!"200$(
hu-$(
hu$(
i)nut1==0nut2==0nut3==0$ %rea(+
nut4=1(
dela_!"200$(
+
+
+
Bài #: Kết hợp m) t-.n phím 4/4 với 8 led đơn, mỗi lần bấm
phím !n" 1 hi$% &n"*
ode
#include <regx52.h>
#defne hang1 P1_0
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 10/55
#defne hang2 P1_1
#defne hang3 P1_2
#defne hang4 P1_3
#defne cot1 P1_4
#defne cot2 P1_5
#defne cot3 P1_
#defne cot4 P1_
#defne led P2
//==============================
void dela_!"un"igned n$
%
int i&'(
)or '=0('<n('**$
%
)ori=0(i<125(i**$
%
(
+
+
+
//================================
void hu1void$
%
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 11/55
led=0x00(
dela_!"400$(
led=0x,(
dela_!"400$(
+
//==================
void hu2void$
%
led=0x55(
dela_!"300$(
led=0xaa(
dela_!"300$(
+
//======================
void hu3void$
%
led=0x01(
dela_!"300$(
led=0x02(
dela_!"300$(
led=0x04(
dela_!"300$(
led=0x0-(
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 12/55
dela_!"300$(
led=0x10(
dela_!"300$(
led=0x20(
dela_!"300$(
led=0x40(
dela_!"300$(
led=0x-0(
dela_!"300$(
led=0x00(
dela_!"300$(
+
//===========================
void hu4void$
%
led=0x01(
dela_!"300$(
led=0x03(
dela_!"300$(
led=0x0(
dela_!"300$(
led=0x0)(
dela_!"300$(
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 13/55
led=0x1)(
dela_!"300$(
led=0x3)(
dela_!"300$(
led=0x)(
dela_!"300$(
led=0x,(
dela_!"300$(
led=0x00(
dela_!"300$(
+
//=====================================
void hu5void$
%
led=0x00(
dela_!"300$(
led=0x-1(
dela_!"300$(
led=0xc3(
dela_!"300$(
led=0xe(
dela_!"300$(
led=0x,(
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 14/55
dela_!"300$(
led=0x00(
dela_!"300$(
+
//===========================
void huvoid$
%
led=0x00(
dela_!"300$(
led=0x1-(
dela_!"300$(
led=0x3c(
dela_!"300$(
led=0xe(
dela_!"300$(
led=0x,(
dela_!"300$(
led=0x00(
dela_!"300$(
+
//============================
void huvoid$
%
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 15/55
led=0x00(
dela_!"300$(
led=0x1-(
dela_!"300$(
led=0x24(
dela_!"300$(
led=0x42(
dela_!"300$(
led=0x-1(
dela_!"300$(
led=0x00(
dela_!"300$(
+
//============================
void hu-void$
%
led=0x00(
dela_!"300$(
led=0x-1(
dela_!"300$(
led=0x42(
dela_!"300$(
led=0x24(
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 16/55
dela_!"300$(
led=0x1-(
dela_!"300$(
led=0x00(
dela_!"300$(
+
//=============================
///======================================
void !ainvoid$
%
int i(
hile1$
%
hang1=0(hang2=hang3=hang4=1(
)ori=0(i<300(i**$
%
i) cot1==0$ %hu1$(hu1$(hu1$(dela_!"100$( +
i) cot2==0$ % hu2$(hu2$(hu2$(dela_!"100$( +
i) cot3==0$ % hu3$(hu3$(dela_!"100$( +
i) cot4==0$ % hu4$(hu4$(dela_!"100$( +
+
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 17/55
hang2=0(hang1=hang3=hang4=1(
)ori=0(i<300(i**$
%
i) cot1==0$ % hu5$(dela_!"100$( +
i) cot2==0$ % hu$(dela_!"100$( +
i) cot3==0$ % hu$(dela_!"100$( +
i) cot4==0$ % hu-$(dela_!"100$( +
+
hang3=0(hang1=hang2=hang4=1(
)ori=0(i<300(i**$
%
i) cot1==0$ % hu3$(hu2$(dela_!"100$( +
i) cot2==0$ % hu4$(hu1$(hu1$(dela_!"100$( +
i) cot3==0$ % hu$(hu5$(dela_!"100$( +
i) cot4==0$ % hu3$(hu-$(dela_!"100$( +
+
hang4=0(hang1=hang2=hang3=1(
)ori=0(i<300(i**$
%
i) cot1==0$ % hu1$(hu1$(hu2$(hu2$(dela_!"100$( +
i) cot2==0$ % hu4$(hu1$(hu1$(dela_!"100$( +
i) cot3==0$ % hu2$(hu3$(dela_!"100$( +
i) cot4==0$ % hu$(hu2$(dela_!"100$( +
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 18/55
+
+
+
Nhóm #:
Bài 0: Kết hợp 4 phím đơn với # led đ2n n3i t-( tiếp,
1 phím bấm t5n" 1 "i! t-6, 1 phím bấm "i7m 1 "i! t-6, 1
phím bấm t5n" # "i! t-6, 1 phím bấm "i7m # "i! t-6*
+de:
//66666666666666666666666666666666666666666666666666666666666666666666
66666666666666666/////6666667uthor8guen 9iet :ai.
//66666;ate 21/12/2015.
//66666666666666666666666666666666666666666666666666666666666666666666
666666666666666666
#include <regx52.h>
#defne led P1_1
#defne nut1 P1_0
#defne nut2 P1_1
#defne nut3 P1_2
#defne nut4 P1_3
#defne leddv P2
#defne ledchuc P3
///======================
un"igned char !aled=%0x0&0x?&0x74&0x@0&0x??&0x?2&0x-2&0x-&0x-0&0x?0+(
int de!1(
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 19/55
void dela_!"un"igned n$
%
int i&'()or '=0('<n('**$
%
)ori=0(i<125(i**$
%
(
+
++
///==========================
void ai3void$ //ai taA nho!2
%
i)nut1==1$ %dela_!"100$(de!1**(nut1=0(+
i)nut2==1$ %dela_!"100$(de!1BB(nut2=0(+
i)nut3==0$ %dela_!"100$(de!1=de!1*2(nut3=1(+
i)nut4==0$ %dela_!"100$(de!1=de!1B2(nut4=1(+
i)de!1>=100de!1<0$ %de!1=0(+
leddv=!aledde!1/10(
ledchuc=!aledde!1C10(
+
void !ainvoid$
%
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 20/55
hile1$
%
P1_0=P1_1=0( ai3$(
+
+
Bài 4: Kết hợp m) t-.n phím 4/4 với # led đ2n n3i t-(tiếp, led đ2n hin th6 "i! t-6 phím bấm đó*
+de:
//66666666666666666666666666666666666666666666666666666666666666666666
66666666666666666/////6666667uthor8guen 9iet :ai.
//66666;ate 21/12/2015.//66666666666666666666666666666666666666666666666666666666666666666666
666666666666666666
#include <regx52.h>
#defne hang1 P1_0
#defne hang2 P1_1
#defne hang3 P1_2
#defne hang4 P1_3
#defne cot1 P1_4
#defne cot2 P1_5
#defne cot3 P1_
#defne cot4 P1_
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 21/55
#defne leddv P3
#defne ledchuc P2
///================================
un"igned char !aled=
%0x0&0x?&0x74&0x@0&0x??&0x?2&0x-2&0x-&0x-0&0x?0+(
un"igned char !ahang=%0x)e&0x)d&0x)&0x)+ (
un"igned char "o44=%%1&2&3&4+&
%5&&&-+&
%?&10&11&12+&
%13&14&15&1++(
int de!1(
//====================================
void dela_!"un"igned n$
%
int i&'(
)or '=0('<n('**$
%
)ori=0(i<125(i**$
%
(
+
+
+
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 22/55
void DuetAhi!void$
%
int i&a(
)ori=0(i<4(i**$
%
P1=!ahangi(
)ora=0(a<500(a**$
%
i) cot1==0$ % dela_!"200$(de!1="o0i(cot1=1( +
i) cot2==0$ % dela_!"200$(de!1="o1i(cot2=1( +
i) cot3==0$ % dela_!"200$(de!1="o2i(cot3=1(+
i) cot4==0$ % dela_!"200$(de!1="o3i(cot4=1( +
+
+
+
//=======================================
void !ainvoid$
%
hile1$
%
DuetAhi!$(
leddv=!aledde!1C10(
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 23/55
ledchuc=!aledde!1/10(
+
+
Nhóm 0:
Bài 9: Kết hợp 4 phím đơn với # led đ2n n3i %) ;+
"i7i m< 44, 1 phím bấm t5n" 1 "i! t-6, 1 phím bấm
"i7m 1 "i! t-6, 1 phím bấm t t5n" "i! t-6 đến ==, 1 phím
bấm t "i7m "i! t-6 v> ??*
+de:
#include <regx52.h>
#defne led P1_1
#defne nut1 P1_0
#defne nut2 P1_1
#defne nut3 P1_2
#defne nut4 P1_3
#defne leddv P2
#defne ledchuc P3
//=====================
int de!(//=====================
void dela_!"un"igned n$
%
int i&'(
)or '=0('<n('**$
%
)ori=0(i<125(i**$
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 24/55
%
(
+
++
//======================
void !ainvoid$
%
int i&'(
hile1$
%
P1_0=P1_1=0(
i)nut1==1$ %dela_!"100$(de!**(nut1=0(+
i)nut2==1$ %dela_!"100$(de!BB(nut2=1(+
i)nut3==0$
%
dela_!"200$(
)ori=de!(i<100(i**$
%
leddv=i/10(
ledchuc=iC10(
i)nut1==0nut2==0nut4==0$ %de!=i(rea(+
dela_!"200$(
+
nut3=1(
de!=i(
+
i)nut4==0$
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 25/55
%
dela_!"200$(
)or'=de!('>0('BB$%
leddv='/10(
ledchuc='C10(
i)nut1==0nut2==0nut3==0$ %de!=i(rea(+
dela_!"200$(
+
de!='(
nut4=1(
+
i)de!>=100de!<0$ %de!=0(+
leddv=de!/10(
ledchuc=de!C10(
++
Bài @: Kết hợp m) t-.n phím 4/4 với # led đ2n n3i %)
;+ "i7i m< 44, led đ2n hin th6 "i! t-6 phím bấm đó*
+de:
#include <regx52.h>
#defne hang1 P1_0
#defne hang2 P1_1
#defne hang3 P1_2
#defne hang4 P1_3
#defne cot1 P1_4
#defne cot2 P1_5
#defne cot3 P1_
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 26/55
#defne cot4 P1_
#defne leddv P3
#defne ledchuc P2
//============================un"igned char !ahang=%0x)e&0x)d&0x)&0x)+ (
un"igned char "o44=%%1&2&3&4+&
%5&&&-+&
%?&10&11&12+&
%13&14&15&1++(
int de!1(
//====================================
void dela_!"un"igned n$
%
int i&'(
)or '=0('<n('**$
%
)ori=0(i<125(i**$
%
(
+
+
+
void DuetAhi!void$
%
int i&a(
)ori=0(i<4(i**$
%
P1=!ahangi(
)ora=0(a<500(a**$
%
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 27/55
i) cot1==0$ % dela_!"200$(de!1="o0i(cot1=1( +
i) cot2==0$ % dela_!"200$(de!1="o1i(cot2=1( +
i) cot3==0$ % dela_!"200$(de!1="o2i(cot3=1(+
i) cot4==0$ % dela_!"200$(de!1="o3i(cot4=1( ++
+
+
//=======================================
void !ainvoid$
%
hile1$
%
DuetAhi!$(
leddv=de!1C10(
ledchuc=de!1/10(
+
+
Nhóm 4:
Bài : Kết hợp 4 phím đơn với # led đ2n n3i the
phAơn" ph!p %t led, 1 phím bấm t5n" 1 "i! t-6, 1 phímbấm "i7m 1 "i! t-6, 1 phím bấm t t5n" "i! t-6 (!( 3
(hCn đến =8, 1 phím bấm t t5n" "i! t-6 (!( 3 lD đến
==*
+de:
#include <regx52.h>
#defne led P1_1
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 28/55
#defne nut1 P1_0
#defne nut2 P1_1
#defne nut3 P1_2
#defne nut4 P1_3#defne led P2
#defne led1 P3_0
#defne led2 P3_1
///======================
un"igned char !aled=%0x0&0x?&0x74&0x@0&0x??&0x?2&0x-2&0x-&0x-0&0x?0+(
int de!(
void dela_!"un"igned n$
%
int i&'(
)or '=0('<n('**$
%
)ori=0(i<125(i**$
%
(
+
+
+
void :Eint "o$
%
int i(
)ori=0(i<2(i**$
%
led1=1(
led2=0(
led=!aled"o/10(
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 29/55
dela_!"40$(
led1=0(
led2=1(
led=!aled"oC10(dela_!"40$(
+
+
///==========================
void !ainvoid$
%
int i(
hile1$
%
P1_0=P1_1=0(i)nut1==1$ %dela_!"200$(de!**(nut1=0(+
i)nut2==1$ %dela_!"200$(de!BB(nut2=0(+
i)nut3==0$
%
dela_!"150$(
i)de!C2==0$
%
i=de!(
hilei<100$
%
:Ei$(
i=i*2(
dela_!"200$(
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 30/55
i)nut1==0nut2==0nut4==0$%de!=i(rea(+
+
+
i)de!C2 F=0$
%
i=de!*1(
hilei<100$
%
:Ei$(
i=i*2(
dela_!"200$(
i)nut1==0nut2==0nut4==0$%de!=i(rea(+
+
de!=i(
+
+
i)nut4==0$
%
dela_!"150$(
i)de!C2==0$%
i=de!*1(
hilei<100$
%
:Ei$(
i=i*2(
dela_!"200$(
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 31/55
i)nut1==0nut2==0nut3==0$%de!=i(rea(+
+
+
i)de!C 2F=0$
%
i=de!(
hilei<100$
%
:Ei$(
i=i*2(
dela_!"200$(
i)nut1==0nut2==0nut3==0$%de!=i(rea(+
+
de!=i(
+
+
i)de!>=100de!<0$ %de!=0(+
:Ede!$(
+
+
Bài 8: Kết hợp m) t-.n phím 4/4 với # led đ2n n3i
the phAơn" ph!p %t led, led đ2n hin th6 "i! t-6
phím bấm đó*
+de:
#include <regx52.h>
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 32/55
#defne hang1 P1_0
#defne hang2 P1_1
#defne hang3 P1_2
#defne hang4 P1_3#defne cot1 P1_4
#defne cot2 P1_5
#defne cot3 P1_
#defne cot4 P1_
#defne led P2
#defne led1 P3_0
#defne led2 P3_1
///======================
un"igned char !aled=%0x0&0x?&0x74&0x@0&0x??&0x?2&0x-2&0x-&0x-0&0x?0+(
un"igned char !ahang=%0x)e&0x)d&0x)&0x)+ (
un"igned char "o44=%%1&2&3&4+&
%5&&&-+&
%?&10&11&12+&
%13&14&15&1++(
int de!1(
void dela_!"un"igned n$
%
int i&'(
)or '=0('<n('**$
%
)ori=0(i<125(i**$
%
(
+
+
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 33/55
+
void htint "o$
%int i(
)ori=0(i<300(i**$
%
led1=1(
led2=0(
led=!aled"o/10(
dela_!"1$(
led1=0(
led2=1(
led=!aled"oC10(
dela_!"1$(
+
+
///==========================
void DuetAhi!void$
%
int i&a(
)ori=0(i<4(i**$
%
P1=!ahangi(
)ora=0(a<500(a**$
%
i) cot1==0$ % dela_!"200$(de!1="o0i(cot1=1( +
i) cot2==0$ % dela_!"200$(de!1="o1i(cot2=1( +
i) cot3==0$ % dela_!"200$(de!1="o2i(cot3=1(+
i) cot4==0$ % dela_!"200$(de!1="o3i(cot4=1( +
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 34/55
+
+
+
//=======================================
void !ainvoid$
%
hile1$
%
DuetAhi!$(
htde!1$(
+
+
Nhóm 9:
Bài =: Kết hợp 4 phím đơn với E+F1@/#, 1 phím bấm hin
th6 3 1, 1 phím bấm hin th6 3 #, 1 phím bấm t t5n"
"i! t-6 (!( 3 (hCn tG ?? đến =8, 1 phím bấm t t5n" "i!
t-6 (!( 3 lD tG ?1 đến ==*
+de:
#include <regx52.h>/66666666Ghai ao chan giao tieA666666666666/
#defne H;_IJ P2_0
#defne H;_IK P2_1
#defne H;_L8 P2_2
#defne H;_;4 P2_4
#defne H;_;5 P2_5
#defne H;_; P2_
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 35/55
#defne H;_; P2_
/666666666666666666666666666666666666/
#defne nut1 P1_0
#defne nut2 P1_1#defne nut3 P1_2
#defne nut4 P1_3
//==================================/
void dela_u"un"igned int t$
%
un"igned int i(
)ori=0(i<t(i**$(
+
void dela_!"un"igned int t$
%
un"igned int i&'(
)ori=0(i<t(i**$
)or'=0('<125('**$(
+
/66666666666666tr giao tieA H; 1x2 4it6666666666666666666666/
void H;_Lnalevoid$%
H;_L8 =1(
dela_u"3$(
H;_L8=0(
dela_u"50$(
+
//:a! Mui 4 @it ;u Hieu Ia H;
void H;_Jend4@itun"igned char ;ata$%
H;_;4=;ata N 0x01(
H;_;5=;ata>>1$N1(
H;_;=;ata>>2$N1(
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 36/55
H;_;=;ata>>3$N1(
+
// :a! Mui 1 Henh ho H;
void H;_Jendo!!andun"igned char co!!and$% H;_Jend4@itco!!and >>4$(/6 Mui 4 it cao 6/
H;_Lnale$(
H;_Jend4@itco!!and$( /6 Mui 4 it thaA6/
H;_Lnale$(
+
void H;_lear$%// :a! Ooa an :inh H;
H;_Jendo!!and0x01$(
dela_u"10$(
+
// :a! Ghoi Eao H;
void H;_Qnit$%
H;_Jend4@it0x00$(
dela_!"20$(
H;_IJ=0(
H;_IK=0(
H;_Jend4@it0x03$(
H;_Lnale$(
dela_!"5$(
H;_Lnale$(
dela_u"100$(
H;_Lnale$(
H;_Jend4@it0x02$(
H;_Lnale$(
H;_Jendo!!and 0x2- $( // giao thuc 4 it& hien thi 2 hang& i tu5x-
H;_Jendo!!and 0x0c$( // cho AheA hien thi !an hinh H;_Jendo!!and 0x0 $( // tang Q;& hong dich hung hinh
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 37/55
H;_Jendo!!and0x01$( // xoa toan o hung hinh
+
void H;_Motoxun"igned char x& un"igned char $%
un"igned char addre""( i)F$addre""=0x-0*x$(
el"e addre""=0xc0*x$(
dela_u"1000$(
H;_Jendo!!andaddre""$(
dela_u"50$(
+
void H;_Putharun"igned char ;ata$%//:a! Mui 1 Gi Eu
H;_IJ=1(
H;_Jendo!!and;ata$(
H;_IJ=0 (
+
void H;_Put" char 6"$%//:a! gui 1 chuoi tu
hile 6"$%
H;_Puthar6"$(
"**(
+
+
/666666666666666666tr chinh66666666666666666666666666/
void !ainvoid$
%
int i(
H;_Qnit$(//Ghoi tao H;
dela_!"100$(
hile1$
%
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 38/55
P1_0=P1_1=0(
i)nut1==1$
%
dela_!"200$(
H;_lear$(
H;_Motox0&0$(
H;_Put"RJo 1R$(
i)nut3==0nut2==0nut4==0$ %rea(+
nut1=0(dela_!"100$(
+
i)nut2==1$
%
dela_!"200$(
H;_lear$(H;_Motox0&0$(
H;_Put"RJo 2R$(
i)nut1==0nut3==0nut4==0$ %rea(+
nut2=0(dela_!"100$(
+
i)nut3==0$
%
dela_!"200$(
H;_lear$(
H;_Motox0&0$(
H;_Put"RJo chan tu tang.R$(i=0(
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 39/55
hilei<100$
%
i=i*2(
H;_Motox-&1$(H;_Puthari/10*4-$(
H;_PuthariC10*4-$(
i)i==?-$ %rea(+
i)nut1==0nut2==0nut4==0$ %rea(+
dela_!"300$(
+
nut3=1(
+
i)nut4==0$
%
dela_!"200$(
H;_lear$(
H;_Motox0&0$(
H;_Put"RJo le tu tang.R$(
i=1(
hilei<100$
%
i=i*2(
H;_Motox-&1$(
H;_Puthari/10*4-$(
H;_PuthariC10*4-$(
i)i==??$ %rea(+
i)nut1==0nut2==0nut3==0$ %rea(+
dela_!"300$(
+
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 40/55
nut4=1(
+
+
+
Bài 1?: Kết hợp m) t-.n phím 4/4 với E+F1@/#, E+F hin
th6 "i! t-6 phím bấm đó*
+de:
#include <regx52.h>
/66666666Ghai ao chan giao tieA H;666666666666/
#defne H;_IJ P2_0
#defne H;_IK P2_1
#defne H;_L8 P2_2
#defne H;_;4 P2_4
#defne H;_;5 P2_5#defne H;_; P2_
#defne H;_; P2_
/666666666666;inh nghia lai cac Aort666666666666666666666666/
#defne hang1 P1_0
#defne hang2 P1_1
#defne hang3 P1_2
#defne hang4 P1_3
#defne cot1 P1_4
#defne cot2 P1_5
#defne cot3 P1_
#defne cot4 P1_
//==============================un"igned char !ahang=%0x)e&0x)d&0x)&0x)+ (
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 41/55
un"igned char "o44=%%1&2&3&4+&
%5&&&-+&
%?&10&11&12+&
%13&14&15&1++(int de!1(
void dela_u"un"igned int t$
%
un"igned int i(
)ori=0(i<t(i**$(
+
void dela_!"un"igned int t$
%
un"igned int i&'(
)ori=0(i<t(i**$
)or'=0('<125('**$(
+
/66666666666666tr giao tieA H; 1x2 4it6666666666666666666666/
void H;_Lnalevoid$%
H;_L8 =1(
dela_u"3$(
H;_L8=0(
dela_u"50$(
+
//:a! Mui 4 @it ;u Hieu Ia H;
void H;_Jend4@itun"igned char ;ata$%
H;_;4=;ata N 0x01(
H;_;5=;ata>>1$N1(
H;_;=;ata>>2$N1(
H;_;=;ata>>3$N1(
+
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 42/55
// :a! Mui 1 Henh ho H;
void H;_Jendo!!andun"igned char co!!and$%
H;_Jend4@itco!!and >>4$(/6 Mui 4 it cao 6/
H;_Lnale$( H;_Jend4@itco!!and$( /6 Mui 4 it thaA6/
H;_Lnale$(
+
void H;_lear$%// :a! Ooa an :inh H;
H;_Jendo!!and0x01$(
dela_u"10$(
+
// :a! Ghoi Eao H;
void H;_Qnit$%
H;_Jend4@it0x00$(
dela_!"20$(
H;_IJ=0(
H;_IK=0(
H;_Jend4@it0x03$(
H;_Lnale$(
dela_!"5$(
H;_Lnale$(
dela_u"100$(
H;_Lnale$(
H;_Jend4@it0x02$(
H;_Lnale$(
H;_Jendo!!and 0x2- $( // giao thuc 4 it& hien thi 2 hang& i tu5x-
H;_Jendo!!and 0x0c$( // cho AheA hien thi !an hinh
H;_Jendo!!and 0x0 $( // tang Q;& hong dich hung hinh
H;_Jendo!!and0x01$( // xoa toan o hung hinh+
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 43/55
void H;_Motoxun"igned char x& un"igned char $%
un"igned char addre""(
i)F$addre""=0x-0*x$(
el"e addre""=0xc0*x$( dela_u"1000$(
H;_Jendo!!andaddre""$(
dela_u"50$(
+
void H;_Putharun"igned char ;ata$%//:a! Mui 1 Gi Eu
H;_IJ=1(
H;_Jendo!!and;ata$(
H;_IJ=0 (
+
void H;_Put" char 6"$%//:a! gui 1 chuoi tu
hile 6"$%
H;_Puthar6"$(
"**(
+
+
//==============================================
void DuetAhi!void$
%
int i&a(
)ori=0(i<4(i**$
%
P1=!ahangi(
)ora=0(a<500(a**$
%
i) cot1==0$ % dela_!"200$(de!1="o0i(cot1=1( + i) cot2==0$ % dela_!"200$(de!1="o1i(cot2=1( +
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 44/55
i) cot3==0$ % dela_!"200$(de!1="o2i(cot3=1(+
i) cot4==0$ % dela_!"200$(de!1="o3i(cot4=1( +
+
+ +
/666666666666666666tr chinh66666666666666666666666666/
void !ainvoid$
%
H;_Qnit$(//Ghoi tao H;
H;_lear$(
dela_!"100$(
hile1$
%
H;_Motox0&0$(H;_Put"RPhi!R$(
DuetAhi!$(
H;_Motox&0$(
H;_Putharde!1/10*4-$(
H;_Putharde!1C10*4-$(
+
+
Nhóm @:
Bài 11: Kết hợp 4 phím đơn với Eed m) t-.n 8/8, 1 phím
bấm hin th6 3 1, 1 phím bấm hin th6 3 #, 1 phím bấm
3 6 (h2H tG t-!i %) ph7i, 1 phím bấm (hI “nhóm 6”
(h2H tG ph7i %) t-!i*
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 45/55
+de:
#include <regx52.h>
//=================
#defne nut1 P1_0
#defne nut2 P1_1
#defne nut3 P1_2
#defne nut4 P1_3
//====================
code un"igned charled"o1=%0x&0x@&0x?&0x00&0x00&0x&0x&0x+&
led"o2=%0x&0x04&0x04&0x24&0x24&0x20&0x20&0x+&
led"o=%0x&0x&0x&0x&0x&0x&0x&0x-;&0x04&0x24&0x24&0x00&0x-1&0x&0x&0x&0x&0x&0x&0x, +(
code un"igned char nho!=%0x&0x&0x&0x&0x&0x&0x&0x00&
0x01&0x3&0xL&0x&0x-0&0x00&0x&0x00&
0x00&0xL&0xL&0x00&0x00&0x&0x3&0x-1&
0x3&0x3&0x-1&0x3&0x&0x00&0x01&0x@&
0x&0x@&0x01&0x00&0x&0x-1&0x&0x&
0x&0x-;&0x&0x&0x&0x&0x&0x
+(
//BBBBBBBBBBBBBBBBBBBBBBBBBBBB
void dela_!"un"igned n$
%
int i&'(
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 46/55
)or '=0('<n('**$
%
)ori=0(i<125(i**$
%(
+
+
+
void "o1void$
%
un"igned char i(
)ori=0(i<-(i**$
%
P2 = led"o1i(
P3 = 0x01<<i(
dela_!"1$(
P3 = 0x00(
+
+
void "o2void$
%
un"igned char i(
)ori=0(i<-(i**$
%
P2 = led"o2i(
P3 = 0x01<<i(
dela_!"1$(
P3 = 0x00(
+
+
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 47/55
//==================================
void chanho!un"igned int ti!e$
%
int !&n&'(
)or!=0(!<42(!**$
%
i) nut1==0nut2==0nut4==0$ %rea(+
)or'=1('<=ti!e(**'$
%
)orn=0(n<=(**n$
%
P2 = nho!n*!(
P3 = 0x01<<n(
dela_!"1$(
P3=0x00(
++
dela_!"1$(
+
+
//BBBBBBBBBBBBBBBBBB
void cha"oun"igned int ti!e$
%
int !&n&'(
)or!=0(!<14(!**$
%
i) nut1==0nut2==0nut3==0$ %rea(+
)or'=1('<=ti!e(**'$
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 48/55
%
)orn=0(n<=(**n$
%
P2 = led"on*!(P3 = 0x-0>>n(
dela_!"1$(
P3=0x00(
+
+
dela_!"1$(
+
+
//BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
void !ain$
%
hile1$
%
P1_0=P1_1=0(
i)nut1==1$
%
dela_!"100$
hilenut2==1NNnut3==1NNnut4==1$
%
"o1$(
+
+
i)nut2==1$
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 49/55
%
dela_!"100$(
hilenut1==1NNnut3==1NNnut4==1$
%"o2$(
+
+
i)nut3==0$
%
hilenut1==1NNnut2==1NNnut4==1$
%
chanho!30$(
+
+
i)nut4==0$
%
hilenut1==1NNnut2==1NNnut3==1$
%
cha"o30$(
+
+
+
+
Bài 1#: Kết hợp m) t-.n phím 4/4 với Eed m) t-.n 8/8,
Eed m) t-.n 8/8 hin th6 "i! t-6 phím bấm đó*
+de:
#include <regx52.h>
#defne hang1 P1_0
#defne hang2 P1_1
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 50/55
#defne hang3 P1_2
#defne hang4 P1_3
#defne cot1 P1_4
#defne cot2 P1_5#defne cot3 P1_
#defne cot4 P1_
//=================================
un"igned char !ahang=%0x)e&0x)d&0x)&0x)+ (
un"igned char "o44=%%1&2&3&4+&
%5&&&-+&
%?&10&11&12+&
%13&14&15&1++(
int de!1(
code un"igned char !aled1-=%%0x,&0x,&0x,&0x,&0x,&0x,&0x,&0x,+&// lan
%0x&0x@&0x?&0x00&0x00&0x&0x&0x+& //1
%0x&0x04&0x04&0x24&0x24&0x20&0x20&0x+& //2
%0x&0x24&0x24&0x24&0x24&0x00&0x00&0x+& //3
%0x&0x0&0xL0&0xL&0xL&0x00&0x00&0x+& //4
%0x&0x20&0x20&0x24&0x24&0x04&0x04&0x+& //5
%0x&0x-1&0x00&0x24&0x24&0x04&0x-;&0x+& //
%0x&0x&0x&0x0&0x04&0xL0&0x0&0x+& //
%0x&0x?1&0x00&0x24&0x24&0x00&0x-?&0x+& //-
%0x&0x@1&0x20&0x24&0x24&0x00&0x-1&0x+& //?
%0x@@&0x-0&0x@&0x1&0x@L&0x@L&0x@L&0x1+&//10
%0x@;&0x-0&0x@&0x&0x@;&0x-0&0x@&0x+&//11
%0x@@&0x-0&0x@&0x&0x?;&0x7L&0x@&0x@?+&//12
%0x@@&0x-0&0x@&0x&0x;;&0x@&0x@&0x1+&//13
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 51/55
%0x@@&0x-0&0x@&0x3&0x5&0x&0x-0&0x+& //14
%0x@@&0x-0&0x@&0x;0&0x@&0x@&0x@&0xL+&//15
%0x@@&0x-0&0x@&0x1&0x@&0x@&0x@&0x;++(//1
//=============
void dela_u"un"igned int t$
%
un"igned int i(
)ori=0(i<t(i**$(
+void dela_!"un"igned n$
%
int i&'(
)or '=0('<n('**$
%
)ori=0(i<125(i**$
%
(
+
+
+
//==============void DuetAhi!void$
%
int i&a(
)ori=0(i<4(i**$
%
P1=!ahangi(
)ora=0(a<500(a**$
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 52/55
%
i) cot1==0$ % dela_!"100$(de!1="o0i(cot1=1( +
i) cot2==0$ % dela_!"100$(de!1="o1i(cot2=1( +
i) cot3==0$ % dela_!"100$(de!1="o2i(cot3=1(+ i) cot4==0$ % dela_!"100$(de!1="o3i(cot4=1( +
+
+
+
//==========================
void !ainvoid$
%
int '&a(
hile1$
%
DuetAhi!$(
)or'=0('<-('**$
%
P2 = !aledde!1'(
P3 = 0x01<<'(
dela_!"1$(
P3 = 0x00(
+
+
+
Nhóm *
Bài 15: Đọc giá trị biến trở VR3 thông qu !h"i #$%& nếu!hi giá trị biến trở '()t quá m*t m+c nà, -ó.
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 53/55
%,/0:
#include<regx52.h>
#defne Hoa P3_4
/66666666Ghai ao chan giao tieA666666666666/
#defne H;_IJ P2_0
#defne H;_IK P2_1
#defne H;_L8 P2_2
#defne H;_;4 P2_4
#defne H;_;5 P2_5
#defne H;_; P2_
#defne H;_; P2_
//BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB S
//BBBhai ao cho 7;0-04BBBBBBBBBBBBBB
#defne 7;0-04_;7E7 P3
#defne 7;0-04_J P1_0
#defne 7;0-04_I; P1_1
#defne 7;0-04_KI P1_2
#defne 7;0-04_Q8EIP1_3
void dela_u"un"igned int t$
%
un"igned int i(
)ori=0(i<t(i**$(
+
void dela_!"un"igned int t$
%
un"igned int i&'(
)ori=0(i<t(i**$
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 54/55
)or'=0('<125('**$(
+
///BBBBBBBBBBBBBB;oc du lieu 7; BBBBBBBBBBBBBBBB
un"igned char 7;0-04_Iead$%
un"igned char D(
// hon chiA
7;0-04_J = 0(
// Eao xung at dau chuen doi
7;0-04_KI = 0(
dela_u"1$(
7;0-04_KI = 1(
// ;oi cho den hi chuen doi xong
hile7;0-04_Q8EI$(
// ;oc gia tri "au hi chuen doi
7;0-04_I; = 0(
D = 7;0-04_;7E7(
dela_u"1$(
7;0-04_I; = 1(
return D(
+
//BBBBBBBBBBBBBBBBBBBBBBE chinhBBBBBBBBBBBBBBBBB
void !ain$
%
un"igned char 7;(
hile1$
7/21/2019 Bai Lap Trinh vi điều khiển
http://slidepdf.com/reader/full/bai-lap-trinh-vi-dieu-khien 55/55
%
7; = 7;0-04_Iead$(
i) 7;>150$ %Hoa=1(+
el"e %Hoa=0(+
+
+
Bài 14: Kết hợp E+F J Kh3i e)l time t2 thành đLn" hL
b! "iM pht "iOH, n"àH th!n" n5m* P1đQ
+de:
Tu nU t chVa lU! xong. @Wn EhX hoYc Wn EhZ 7nh hoYc [t \ Wn nUo nh]! c^ gYA t. E "` gi trbc tiZA cho cc Wn hi hoUn thUnh .
P/" EhTn