You are on page 1of 26

Chng 11

CC BI THC HNH
MODULE LED MA TRN

S MCH GIAO TIP LED MA TRN


M K T CHO LED MA TRN DNG QUT CT
CC CHNG TRNH CHO KIU QUT CT
M K T CHO LED MA TRN DNG QUT HNG
CC CHNG TRNH CHO KIU QUT HNG

Chng 11.Module LED MA TRAN

I.

Trng ai Hoc S Pham Ky Thuat

S MCH GIAO TIP VI IU KHIN VI LED MA TRN


Trong phn ny s trnh by phn giao tip vi iu khin PIC18F4550 vi 3 led ma trn nh hnh

11-1:

Hnh 11-1. S nguyn l giao tip vi iu khin vi 3 led ma trn.


Kit c tch hp module giao tip 3 led ma trn 2 mu xanh v , s dng 4 IC thanh ghi dch 16
bit iu khin hng v ct.

II. M K T CHO LED MA TRN DNG QUT CT


Theo s mch in c 3 led ma trn 88 s c 8 hng v 24 ct, c 2 phng php iu khin
led: qut ct v qut hng.
C 24 ct th khi qut s c 1 ct sng, 23 ct tt, thi gian sng cho 1 ct l 1/24, thi ngn nn
led s sng m - y l khuyt im. u im l lp trnh to m hin th cho cc k t n gin.
C 8 hng th khi qut s c 1 hng sng, 7 hng tt, thi gian sng cho 1 hng l 1/8, thi di
hn so vi qut ct nn led sng r, p y l u im. Khuyt im l lp trnh to m hin th cho
cc k t lin kt phc tp.
a.

148

M qut ct:

Nguyen nh Phu

Thc hanh vi ieu khien

Chng 11. Module LED MA TRAN

Trng ai Hoc S Pham Ky Thuat

M qut ct cho 1 led gm 16 bit: 8 bit cho 8 ct , 8 bit cho 8 ct xanh, khi qut ct th mi
mt thi im ch cho 1 ct mc logic 1, cc ct cn li mc 0.
Do kt ni mch ti u theo v tr cc chn IC thanh ghi dch MBI 5026 vi cc led nn th t
cc chn iu khin khng lin tc vi nhau.
Bng 11-1: M qut ct cho led mu sng, xanh tt:
TT

bit
Ct

1
2
3
4
5
6
7
8

15
3

14
X3

13
2

12
X2

11
1

10
X1

9
0
1

8
X0

BH
02
08
20
80
00
00
00
00

1
1
1

7
X4

6
4

5
X5

4
5

3
X6

2
6

1
X7

0
7

1
1
1
1

BL
00
00
00
00
40
10
04
01

2 BYTE
0200
0800
2000
8000
0040
0010
0004
0001

BL
00
00
00
00
80
20
08
02

2 BYTE
0100
0400
1000
4000
0080
0020
0008
0002

BL
00
00
00
00
C0
30
0C
03

2 BYTE
0300
0C00
3000
C000
00C0
0030
000C
0003

{0x0200,0x0800,0x2000,0x8000,0x0040,0x0010,0x0004,0x0001}
Ch : cc cn li u bng 0.
Bng 11-2: M qut ct cho led mu xanh sng, tt:
TT

bit
Ct

15
3

1
2
3
4
5
6
7
8

14
X3

13
2

12
X2

11
1

10
X1

9
0

8
X0
1

BH
01
04
10
40
00
00
00
00

1
1
1

7
X4

6
4

5
X5

4
5

3
X6

2
6

1
X7

0
7

1
1
1
1

{0x0100,0x0400,0x1000,0x4000,0x0080,0x0020,0x0008,0x0002}
Bng 11-3: M qut ct cho led mu xanh v u sng thnh mu cam:
TT

bit
Ct

1
2
3
4
5
6
7
8

15
3

14
X3

13
2

12
X2

11
1

10
X1

9
0
1

8
X0
1

BH
03
0C
30
C0
00
00
00
00

7
X4

6
4

5
X5

4
5

3
X6

2
6

1
X7

0
7

{0x0300,0x0C00,0x3000,0xC000,0x00C0,0x0030,0x000C,0x0003}
M iu khin c 2 mu xanh c th OR 2 m ca ring tng led vi nhau.
b. M k t cho kiu qut ct:

D liu iu khin hng: mc 1 th led sng, mc 0 th led tt: mi k t dng ma trn 57 v


mt ct khong cch gia 2 k t nn tng s k t l 6.
Bng 11-4: M cc k t A, B, C, D.
Bit
B7(8)
B6(4)
B5(2)
B4(1)
B3(8)
B2(4)
B1(2)
B0(1)
M

CH A
2
3

CH B
0
1

00

X
X
X
X
X
X
X
7F

X
X
X
X
X
X
X
1F

24

44

24

X
X
X
X
X
1F

X
X
X

X
49

X
49

36

CH C
6
7

00

3E

CH D
4
5

00

X
X
X
X
X
X
X
7F

X
X
X
X
X

X
X
X
49

X
X
41

X
41

X
41

22

X
X
X
X
X
X

X
41

X
41

X
41

3E

00

Bng 11-5: Dng phn mm tm m ta c bng m ma trn ca cc k t nh:


TT K t
M ma trn
1
A
0x1F,0x24,0x44,0x24,0x1F,0x00
2
B
0x7F,0x49,0x49,0x49,0x36,0x00
3
C
0x3E,0x41,0x41,0x41,0x22,0x00
4
D
0x7F,0x41,0x41,0x41,0x3E,0x00
Thc hanh vi ieu khien

Nguyen nh Phu

149

Chng 11.Module LED MA TRAN


5
E
6
F
7
G
8
H
9
I
10
J
11
K
12
L
13
M
14
N
15
O
16
P
17
Q
18
R
19
S
20
T
21
U
22
V
23
Z
24
Y
25
W
26
0
27
1
28
2
29
3
30
4
31
5
32
6
33
7
34
8
35
9

Trng ai Hoc S Pham Ky Thuat


0x3E,0x49,0x49,0x41,0x22,0x00
0x7F,0x48,0x48,0x48,0x40,0x00
0x3E,0x41,0x49,0x49,0x2E,0x00
0x7F,0x08,0x08,0x08,0x7F,0x00
0x41,0x41,0x7F,0x41,0x41,0x00
0x42,0x41,0x7E,0x40,0x40,0x00
0x7F,0x08,0x14,0x22,0x41,0x00
0x7F,0x01,0x01,0x01,0x02,0x00
0x7F,0x20,0x10,0x20,0x7F,0x00
0x7F,0x20,0x10,0x08,0x7F,0x00
0x3E,0x41,0x41,0x41,0x3E,0x00
0x3F,0x48,0x48,0x48,0x30,0x00
0x3E,0x41,0x45,0x43,0x3E,0x0
0x3F,0x48,0x4C,0x4A,0x31,0x00
0x32,0x49,0x49,0x49,0x26,0x00
0x60,0x40,0x7F,0x40,0x60,0x00
0x7E,0x01,0x01,0x01,0x7E,0x00
0x7C,0x02,0x01,0x02,0x7C,0x00
0x63,0x45,0x49,0x51,0x63,0x00
0x70,0x08,0x07,0x08,0x70,0x00
0x7E,0x01,0x06,0x01,0x7F,0x00
0x3E,0x41,0x41,0x41,0x3E,0x00
0x11,0x21,0x7F,0x01,0x01,0x00
0x27,0x49,0x49,0x49,0x31,0x00
0x22,0x41,0x49,0x49,0x36,0x00
0x0C,0x14,0x24,0x7F,0x04,0x00
0x72,0x51,0x51,0x51,0x4E,0x00
0x3E,0x49,0x49,0x49,0x26,0x00
0x41,0x42,0x44,0x48,0x70,0x00
0x36,0x49,0x49,0x49,0x36,0x00
0x32,0x49,0x49,0x49,0x3E,0x00

III. CC CHNG TRNH IU KHIN LED MA TRN KIU QUT CT


Bi mu 11-1. Chng trnh iu khin LED ma trn hin th ch A mu .
Lu tn file l BAI_11_01_MT_A_DO
a.
b.

c.

Mch in:
Lu : khai bo mng cha cc m qut led hin th mu 16 bit, khai bo mng cha
cc m ca k t cn hin th trn led ma trn 8 bit, khai bo mng cha d liu hiu chnh
li cho ph hp vi phn cng. Chng trnh chnh tin hnh khi to port v IC cht, cho
m qut ct ca led 2 v led 3 bng 0 v ch A ch hin th 5 ct ca led 1, tin hnh sp
xp li 4 bit cao ca cc m cho ng vi th t kt ni ca phn cng. Thc hin vng lp
while tin hnh cc bc : ly m qut ct th 1, ly m th 1 ca k t, gi ra cc IC
iu khin led ma trn led s sng ct th 1, tin hnh delay ri lp li cho cho ct th 2,
3, 4, 5 ri lm li t u, kt qu led s sng ch A.
Chng trnh:

#INCLUDE <TV_PICKIT2_SHIFT.c>
CONST UNSIGNED INT16 MA_QUET_COT_DO[8]={
0x0200,0x0800,0x2000,0x8000,0x0040,0x0010,0x0004,0x0001};
CONST UNSIGNED INT8 CHUOI[5]={0x1F,0x24,0x44,0x24,0x1F,0x00};
UNSIGNED INT8 CHUOI_HIENTHI[6];
UNSIGNED INT8 J;
UNSIGNED INT16 MA_HANG,MQC_LED1,MQC_LED2,MQC_LED3;
150

Nguyen nh Phu

Thc hanh vi ieu khien

Chng 11. Module LED MA TRAN

Trng ai Hoc S Pham Ky Thuat

VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
MQC_LED2 = 0; MQC_LED3 = 0;
FOR(J=0;J<6;J++) CHUOI_HIENTHI[J]=HIEU_CHINH_4BIT_CAO(CHUOI[J]);
WHILE(TRUE)
{
FOR(J=0;J<6;J++)
{
MQC_LED1 = MA_QUET_COT_DO[J];
MA_HANG = CHUOI_HIENTHI[J];
XUAT_MATRANLED(MA_HANG,MQC_LED3,MQC_LED2,MQC_LED1);
DELAY_MS(1);
}
}
}
d.
e.
f.

Tin hnh bin dch v np.


Quan st kt qu: sau khi np xong th LED sng ch A.
Gii thch chng trnh:

Bi tp 11-2. Hy iu chnh trnh bi 11-1 hin th ch A mu xanh.


Lu tn file l BAI_11_02_MT_A_XANH
Gi : thay m qut mu bng m qut mu xanh:
MA_QUET_COT_XANH[]={0x0100,0x0400,0x1000,0x4000,0x0080,0x0020,0x0008,0x0002};
Hiu chnh li tn trong chng trnh.

Bi tp 11-3. Hy iu chnh trnh bi 11-1 hin th ch A mu cam.


Lu tn file l BAI_11_03_MT_A_CAM
Gi : thay m qut mu bng m qut 2 mu xanh, thnh cam:
MA_QUET_COT_CAM[]={0x0300,0x0C00,0x3000,0xC000,0x00C0,0x0030,0x000C,0x0003};
Hiu chnh li tn trong chng trnh.

Bi mu 11-4. Chng trnh iu khin LED ma trn hin th ch A mu xanh ri


sau hin th mu .
Lu tn file l BAI_11_04_MT_A_XANH_DO
a.
b.
c.

Mch in:
Lu :
Chng trnh:

#INCLUDE <TV_PICKIT2_SHIFT.c>
CONST UNSIGNED INT16 MA_QUET_COT_DO[8]={
0x0200,0x0800,0x2000,0x8000,0x0040,0x0010,0x0004,0x0001};
CONST UNSIGNED INT16 MA_QUET_COT_XANH[8]={
0x0100,0x0400,0x1000,0x4000,0x0080,0x0020,0x0008,0x0002};
CONST UNSIGNED INT8 CHUOI[6]={0x1F,0x24,0x44,0x24,0x1F,0x00};
UNSIGNED INT8 CHUOI_HIENTHI[6];
UNSIGNED INT8 J;
UNSIGNED INT16 CK,MA_HANG,MQC_LED1,MQC_LED2,MQC_LED3;
Thc hanh vi ieu khien

Nguyen nh Phu

151

Chng 11.Module LED MA TRAN

Trng ai Hoc S Pham Ky Thuat

VOID CHU_A_MAU_XANH()
{
FOR (CK=0;CK<100;CK++)
{
FOR(J=0;J<6;J++)
{
MQC_LED1 = MA_QUET_COT_XANH[J];
MA_HANG = CHUOI_HIENTHI[J];
XUAT_MATRANLED(MA_HANG,MQC_LED3,MQC_LED2,MQC_LED1);
DELAY_MS(1);
}
}
}
VOID CHU_A_MAU_DO()
{
FOR (CK=0;CK<100;CK++)
{
FOR(J=0;J<6;J++)
{
MQC_LED1 = MA_QUET_COT_DO[J];
MA_HANG = CHUOI_HIENTHI[J];
XUAT_MATRANLED(MA_HANG,MQC_LED3,MQC_LED2,MQC_LED1);
DELAY_MS(1);
}
}
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
FOR(J=0;J<6;J++) CHUOI_HIENTHI[J]=HIEU_CHINH_4BIT_CAO(CHUOI[J]);
MQC_LED2 = 0; MQC_LED3 = 0;
WHILE(TRUE)
{
CHU_A_MAU_XANH();
CHU_A_MAU_DO();
}
}
d. Tin hnh bin dch v np.
e. Quan st kt qu: sau khi np xong th LED sng ch A mt khong thi gian quyt nh
bi chu bin chu k lp CK_LAP, nu thng s ny ln th thi gian led sng nhiu, nh
led sng ngn, bn c th iu chnh.
f.
Gii thch chng trnh:

Bi tp 11-5. Hy lp trnh hin th ch A mu xanh, sau hin th mu v


mu cam.
Lu tn file l BAI_11_05_MT_A_XANH_DO_CAM
Gi : thm m qut mu cam:
MA_QUET_COT_CAM[]={0x0300,0x0C00,0x3000,0xC000,0x00C0,0x0030,0x000C,0x0003};
Thm chng trnh con qut mu cam v chng trnh chnh gi chng trnh con mu cam.

152

Nguyen nh Phu

Thc hanh vi ieu khien

Chng 11. Module LED MA TRAN

Trng ai Hoc S Pham Ky Thuat

Bi mu 11-6. Chng trnh iu khin LED ma trn hin th ch ln lt ch A v


B mu xanh.
Lu tn file l BAI_11_06_MT_A_1S_B_1S
a.
b.
c.

Mch in:
Lu :
Chng trnh:

#INCLUDE <TV_PICKIT2_SHIFT.c>
CONST UNSIGNED INT16 MA_QUET_COT_XANH[]={
0x0100,0x0400,0x1000,0x4000,0x0080,0x0020,0x0008,0x0002};
CONST UNSIGNED INT8 CHUOI[10]={
0x1F,0x24,0x44,0x24,0x1F,0x00 //CHU A
0x7F,0x49,0x49,0x49,0x36,0x00}; //CHU B
UNSIGNED INT8 CHUOI_HIENTHI[12];
UNSIGNED INT8 J;
UNSIGNED INT16 CK,CK_LAP,MA_HANG,MQC_LED1,MQC_LED2,MQC_LED3;
VOID CHU_A_MAU_XANH()
{
FOR (CK=0;CK<CK_LAP;CK++)
{
FOR(J=0;J<6;J++)
{
MQC_LED1 = MA_QUET_COT_XANH[J];
MA_HANG = CHUOI_HIENTHI[J];
XUAT_MATRANLED(MA_HANG,MQC_LED3,MQC_LED2,MQC_LED1);
DELAY_MS(1);
}
}
}
VOID CHU_B_MAU_XANH()
{
FOR (CK=0;CK<CK_LAP;CK++)
{
FOR(J=0;J<6;J++)
{
MQC_LED1 = MA_QUET_COT_XANH[J];
MA_HANG = CHUOI_HIENTHI[J+6];
XUAT_MATRANLED(MA_HANG,MQC_LED3,MQC_LED2,MQC_LED1);
DELAY_MS(1);
}
}
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
FOR(J=0;J<12;J++) CHUOI_HIENTHI[J]=HIEU_CHINH_4BIT_CAO(CHUOI[J]);
MQC_LED2 = 0; MQC_LED3 = 0; CK_LAP=100;
WHILE(TRUE)
{
CHU_A_MAU_XANH();
CHU_B_MAU_XANH();
Thc hanh vi ieu khien

Nguyen nh Phu

153

Chng 11.Module LED MA TRAN

Trng ai Hoc S Pham Ky Thuat

}
}
d.
e.
f.

Tin hnh bin dch v np.


Quan st kt qu: sau khi np xong th LED sng ch A mt khong thi gian quyt nh
bi chu bin chu k lp CK_LAP, sau hin th ch B.
Gii thch chng trnh: vi cch vit ny th bn nhn thy 2 chng trnh con gn nh
ging nhau, nu hin th nhiu k t th cch vit ny l di, bn c th xem bi tip theo.

Bi mu 11-7. Chng trnh iu khin LED ma trn hin th ch ln lt ch A, B,


C, D mu xanh.
Lu tn file l BAI_11_07_MT_ABCD_1S
a.
b.
c.

Mch in:
Lu :
Chng trnh:

#INCLUDE <TV_PICKIT2_SHIFT.c>
CONST UNSIGNED INT16 MA_QUET_COT_XANH[]={
0x0100,0x0400,0x1000,0x4000,0x0080,0x0020,0x0008,0x0002};
CONST UNSIGNED INT8 CHUOI[]={
0x1F,0x24,0x44,0x24,0x1F,0x00
0x7F,0x49,0x49,0x49,0x36,0x00
0x3E,0x41,0x41,0x41,0x22,0x00
0x7F,0x41,0x41,0x41,0x3E,0x00
};

//CHU A
//CHU B
//CHU C
//CHU D

UNSIGNED INT8 CHUOI_HIENTHI[24];


UNSIGNED INT8 J,I;
UNSIGNED INT16 CK,CK_LAP,MA_HANG,MQC_LED1,MQC_LED2,MQC_LED3;
VOID CHU_MAU_XANH()
{
FOR (CK=0;CK<CK_LAP;CK++)
{
FOR(J=0;J<6;J++)
{
MQC_LED1 = MA_QUET_COT_XANH[J];
MA_HANG = CHUOI_HIENTHI[J+I*6];
XUAT_MATRANLED(MA_HANG,MQC_LED3,MQC_LED2,MQC_LED1);
DELAY_MS(1);
}
}
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
FOR(J=0;J<24;J++) CHUOI_HIENTHI[J]=HIEU_CHINH_4BIT_CAO(CHUOI[J]);
MQC_LED2 = 0; MQC_LED3 = 0; CK_LAP =100;
WHILE(TRUE)
{ I=0;
DO
{
154

Nguyen nh Phu

Thc hanh vi ieu khien

Chng 11. Module LED MA TRAN

Trng ai Hoc S Pham Ky Thuat

CHU_MAU_XANH();
I++;
}WHILE(I<4);
}

}
d.
e.
f.

Tin hnh bin dch v np.


Quan st kt qu:
Gii thch chng trnh: vi cch vit ny th ln u I=0 th m led s ly m t J=0 n
J=4. Sau th I=1 th m led s ly m t J=5 n J=9, tng t cho cc k t. Khi thm
nhiu k t vo th bn phi hiu chnh li bin gii hn bin I cho ph hp.

Bi tp 11-8. Hy lp trnh m t 0 n 9 hin th mu xanh.


Lu tn file l BAI_11_08_MT_DEM_0_9_XANH
Bi tp 11-9. Hy lp trnh m t 0 n 9 hin th mu xanh sau th hin th mu
.
Lu tn file l BAI_11_09_MT_ DEM_0_9_XANH_DO
Bi tp 11-10. Hy lp trnh m t 0 n 9 hin th mu xanh sau th hin th mu
v mu cam.
Lu tn file l BAI_11_10_MT_ DEM_0_9_XANH_DO_CAM
Bi mu 11-11. Chng trnh iu khin LED ma trn hin th ch ABCD mu .
Lu tn file l BAI_11_11_MT_CHU_ABCD_DO
a. Mch in:
b. Lu :
c. Chng trnh:
#INCLUDE <TV_PICKIT2_SHIFT.c>
CONST UNSIGNED INT16
MA_QUET_COT_DO[]={0x0200,0x0800,0x2000,0x8000,0x0040,0x0010,0x0004,0x0001};
CONST UNSIGNED INT8 CHUOI[24]={
0x1F,0x24,0x44,0x24,0x1F,0x00, //CHU A
0x7F,0x49,0x49,0x49,0x36,0x00, //CHU B
0x3E,0x41,0x41,0x41,0x22,0x00, //CHU C
0x7F,0x41,0x41,0x41,0x3E,0x00, //CHU D
};
UNSIGNED INT8 CHUOI_HIENTHI[24];
UNSIGNED INT8 J,I;
UNSIGNED INT16 MA_HANG,MQC_LED1,MQC_LED2,MQC_LED3;
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
FOR(J=0;J<24;J++) CHUOI_HIENTHI[J]=HIEU_CHINH_4BIT_CAO(CHUOI[J]);
WHILE(TRUE)
{ MQC_LED2 = 0; MQC_LED3 = 0;
I=0;
FOR(J=0;J<8;J++)
{
MQC_LED1 = MA_QUET_COT_DO[J];
Thc hanh vi ieu khien

Nguyen nh Phu

155

Chng 11.Module LED MA TRAN

Trng ai Hoc S Pham Ky Thuat

MA_HANG = CHUOI_HIENTHI[I*8+J];
XUAT_MATRANLED(MA_HANG,MQC_LED3,MQC_LED2,MQC_LED1);
DELAY_US(100);
XUAT_MATRANLED(0,0,0,0);

MQC_LED1 = 0; MQC_LED3 = 0;
I++;
FOR(J=0;J<8;J++)
{
MQC_LED2 = MA_QUET_COT_DO[J];
MA_HANG = CHUOI_HIENTHI[I*8+J];
XUAT_MATRANLED(MA_HANG,MQC_LED3,MQC_LED2,MQC_LED1);
DELAY_US(100);
XUAT_MATRANLED(0,0,0,0);
}
MQC_LED1 = 0; MQC_LED2 = 0;
I++;
FOR(J=0;J<8;J++)
{
MQC_LED3 = MA_QUET_COT_DO[J];
MA_HANG = CHUOI_HIENTHI[I*8+J];
XUAT_MATRANLED(MA_HANG,MQC_LED3,MQC_LED2,MQC_LED1);
DELAY_US(100);
XUAT_MATRANLED(0,0,0,0);
}
}

}
d.
e.

f.

Tin hnh bin dch v np.


Quan st kt qu: sau khi np xong th LED sng ch ABCD nhng sng khng r p v
ct no t led th sng hn ct nhiu led nguyn nhn l do qut nhiu ct nn thi gian
sng 1 ct ngn v kh nng nhn dng b yu, nu 8 led ca mt ct sng th dng ca 8
led s do 1 ng vo ca IC gnh chu.
Gii thch chng trnh:

IV. M K T CHO LED MA TRN DNG QUT HNG


cc bi thc hnh led ma trn theo phng php qut ct th led sng khng r vi nguyn
nhn trnh by, phn ny s trnh by cch qut hng. Khi qut hng th mi mt thi im ch c 1
hng sng, mun led no sng th ct tng ng s mc 0, mi mt ct ch c 1 led sng duy nht
nn ng vo ca IC d dng p ng nn led s sng r, l do th 2 l ch c 8 hng nn thi gian sng
l 1/8 so vi qut ct l 1/24 y chnh l u im ca qut hng.
Khuyt im ca qut hng l phi x l m k t cn hin th: mt k t gm 5 byte:
qut ct th ly byte th 1 gi ra hng cho ct th 1 sng, tng t cho n byte th 5 v ct
th 5 sng.
qut hng th ly bit th 0 ca byte th 1 gi ra ct th 1, ly bit th 0 ca byte th 2 gi ra ct
th 2, ly bit th 0 ca byte th 3 gi ra ct th 3, ly bit th 0 ca byte th 4 gi ra ct th 4, ly bit
th 0 ca byte th 5 gi ra ct th 5 cho hng th 0 sng. Ti thi im ny th hng th 0 ca k t
sng.
Tip tc: ly bit th 1 ca byte th 1 gi ra ct th 1, ly bit th 1 ca byte th 2 gi ra ct th
2, ly bit th 1 ca byte th 3 gi ra ct th 3, ly bit th 1 ca byte th 4 gi ra ct th 4, ly bit th 1
ca byte th 5 gi ra ct th 5 cho hng th 1 sng. Ti thi im ny th hng th 1 ca k t sng.
156

Nguyen nh Phu

Thc hanh vi ieu khien

Chng 11. Module LED MA TRAN

Trng ai Hoc S Pham Ky Thuat

Tng t cho bit th 2 ca cc byte hng th 2 sng, bit th 3 ca cc byte hng th 3 sng,
bit th 4 ca cc byte hng th 4 sng, , bit th 7 ca cc byte hng th 7 sng.
Do c 3 led 24 ct th phi thc hin 24 byte.
M qut hng: mi mt thi im ch cho 1 hng mc logic 1, cc hng cn li bng 0.
Bng 11-6: M qut hng:
Bit
0 1 2 3 4 5 6 7
B4(1)
1
B5(2)
1
B6(4)
1
B7(8) 1
B3(8)
1
B2(4)
1
B1(2)
1
B0(1)
1

S hex
10
20
40
80
08
04
02
01

M qut hng theo s mch: {0x01,0x02,0x04,0x080,0x80,0x40,0x20,0x10}


Do c 3 led 24 ct xanh v 24 ct nn tng s ct l 48 ct, s byte cn lu d liu cho 48
ct l 48 byte t byte th 0 cho ct th 0 n byte th 47 cho ct th 47.
Trong cc chng trnh iu khin qut hng ta phi khai bo mng c 48 byte cha d
liu dch ra ct: 24 byte cho ct mu , 24 byte cho ct mu xanh.
Do kt ni phn cng thun cho vic kt ni dy nn cc ct khng theo th t lin tc m chng
theo th t nh bng sau:
Bng 11-7: Bng th t cc ct mu :
TT 48 BYTE GI RA CT 00
01
02
03
04
05
06
07
CT LED1
CD3
CD2
CD1
CD0
TT 48 BYTE GI RA CT 08
09
10
11
12
13
14
15
CT LED1
CD4
CD5
CD6
CD7
TT 48 BYTE GI RA CT 16
17
18
19
20
21
22
23
CT LED2
CD11
CD10
CD9
CD8
TT 48 BYTE GI RA CT 24
25
26
27
28
29
30
31
CT LED2
CD12
CD13
CD14
CD15
TT 48 BYTE GI RA CT 32
33
34
35
36
37
38
39
CT LED3
CD19
CD18
CD17
CD16
TT 48 BYTE GI RA CT 40
41
42
43
44
45
46
47
CT LED3
CD20
CD21
CD22
CD23
Gii thch cho cc thng tin trong bng:
D liu ca byte th 0 (00) khi dch ra ct th s lm ct th 3 ca led sng (CD3).
D liu ca byte th 2 (02) khi dch ra ct th s lm ct th 2 ca led sng (CD2).
D liu ca byte th 4 (04) khi dch ra ct th s lm ct th 1 ca led sng (CD1).
D liu ca byte th 6 (06) khi dch ra ct th s lm ct th 0 ca led sng (CD0).
D liu ca byte th 9 (09) khi dch ra ct th s lm ct th 4 ca led sng (CD4).
Tng t cho cc ct cn li, cc trng l ca 24 ct mu xanh xem bng tip theo.
Bng 11-8: Bng th t cc ct mu xanh:
TT 48 BYTE GI RA CT 00
01
02
03
04
05
06
07
LED1
CX3
CX2
CX1
CX0
TT 48 BYTE GI RA CT 08
09
10
11
12
13
14
15
LED1
CX4
CX5
CX6
CX7
TT 48 BYTE GI RA CT 16
17
18
19
20
21
22
23
LED2
CX11
CX10
CX9
CX8
TT 48 BYTE GI RA CT 24
25
26
27
28
29
30
31
LED2
CX12
CX13
CX14
CX15
TT 48 BYTE GI RA CT 32
33
34
35
36
37
38
39
LED3
CX19
CX18
CX17
CX16
Thc hanh vi ieu khien

Nguyen nh Phu

157

Chng 11.Module LED MA TRAN

Trng ai Hoc S Pham Ky Thuat

TT 48 BYTE GI RA CT 40
41
LED3
CX20

42
43
CX21

44
45
CX22

46
47
CX23

V d 11-1: Yu cu mun hin th mt chui 4 k t ABCD trn 3 led ma trn 88, sng mu . Mi
k t c 5 byte v 1 byte khong cch gia 2 k t lin tip nn tng l 6 byte, 4 k t th tng l 24 byte.
Chui m ca 4 k t nh sau:
0x1F,0x24,0x44,0x24,0x1F,0x00:

s hin th t ct th 0 n ct th 5

0x7F,0x49,0x49,0x49,0x36,0x00:

s hin th t ct th 6 n ct th 11

0x3E,0x41,0x41,0x41,0x22,0x00,

s hin th t ct th 12 n ct th 17

0x7F,0x41,0x41,0x41,0x3E,0x00,

s hin th t ct th 18 n ct th 23

24 byte ca 4 k t trn s theo th t tng ng vi 24 ct mu nhng do th t kt ni khng lin


tc nn cn phi copy chui d liu 24 byte ca 4 k t ABCD trn tng ng vi th t 48 byte gi ra ct
nh sau:
Byte th 0 ca k t A l 0x1F s gn cho byte th 06 ca mng 48 byte xem bng 11-7.
Byte th 1 ca k t A l 0x24 s gn cho byte th 04 ca mng 48 byte xem bng 11-7.
Tng t cho cc byte cn li.

Bi mu 11-21. Chng trnh iu khin LED ma trn hin th ch ABCD mu


theo phng php qut hng.
Lu tn file l BAI_11_21_MTQH_ABCD_DO
Mch in:
Lu : khi to mng ch 4 k t ABCD cn hin th, khi to mng 48 byte cha d
liu sp xp cho ng th t ct, khi to mng 48 byte tm, copy d liu 48 byte sau khi
sp xp sang 48 byte tm dch ra ct v sau khi dch xong 1 chu k th d liu s mt
ht nn sau mi chu k phi copy li. Tin hnh xut tng bit ca 48 byte tm ra 48 ct,
xut m qut ca hng th 0, khi led s sng hng th 0, tin hnh delay, sau dch cc
byte 0 ra hng v ct tt ht led thng gi l chng lem, tin hnh cho hng tip theo
cho n hng th 7 th lp li.
c. Chng trnh:
#INCLUDE <TV_PICKIT2_SHIFT.c>
CONST UNSIGNED INT8 DL_HIENTHI[]={
0x1F,0x24,0x44,0x24,0x1F,0x00, //CHU A
0x7F,0x49,0x49,0x49,0x36,0x00, //CHU B
0x3E,0x41,0x41,0x41,0x22,0x00, //CHU C
0x7F,0x41,0x41,0x41,0x3E,0x00, //CHU D
};
a.
b.

UNSIGNED INT8 DL_COT_DO[48]={};


UNSIGNED INT8 DL_48_COT[48]={};
UNSIGNED INT8 J,I;
CONST UNSIGNED INT8 MA_QUET_HANG[8]={0x01,0x02,0x04,0x08,0x80,0x40,0x20,0x10};
VOID XOA_DL_48_COT()
{
UNSIGNED INT8 J1;
{
FOR (J1=0;J1<8;J1++)
DL_COT_DO[J1]=0x00;
}
}
VOID SAPXEP_VITRI_48BYTE_COT_DO()
{
158

Nguyen nh Phu

Thc hanh vi ieu khien

Chng 11. Module LED MA TRAN

Trng ai Hoc S Pham Ky Thuat

DL_COT_DO[0]=DL_HIENTHI[3];
DL_COT_DO[4]=DL_HIENTHI[1];
DL_COT_DO[9]=DL_HIENTHI[4];
DL_COT_DO[13]=DL_HIENTHI[6];

DL_COT_DO[2]=DL_HIENTHI[2];
DL_COT_DO[6]=DL_HIENTHI[0];
DL_COT_DO[11]=DL_HIENTHI[5];
DL_COT_DO[15]=DL_HIENTHI[7];

DL_COT_DO[16]=DL_HIENTHI[11];
DL_COT_DO[20]=DL_HIENTHI[9];
DL_COT_DO[25]=DL_HIENTHI[12];
DL_COT_DO[29]=DL_HIENTHI[14];

DL_COT_DO[18]=DL_HIENTHI[10];
DL_COT_DO[22]=DL_HIENTHI[8];
DL_COT_DO[27]=DL_HIENTHI[13];
DL_COT_DO[31]=DL_HIENTHI[15];

DL_COT_DO[32]=DL_HIENTHI[19];
DL_COT_DO[36]=DL_HIENTHI[17];
DL_COT_DO[41]=DL_HIENTHI[20];
DL_COT_DO[45]=DL_HIENTHI[22];

DL_COT_DO[34]=DL_HIENTHI[18];
DL_COT_DO[38]=DL_HIENTHI[16];
DL_COT_DO[43]=DL_HIENTHI[21];
DL_COT_DO[47]=DL_HIENTHI[23];

}
VOID COPY_48_BYTE_COT_HIENTHI()
{
FOR (I=0;I<48;I++) DL_48_COT[I]=DL_COT_DO[I];
}
VOID XUAT_1BIT_CUA_48_BYTE_HIENTHI()
{
FOR (I=0;I<48;I++) DL_48_COT[I]=XUAT_1BIT(DL_48_COT[I]);
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
XOA_DL_48_COT();
SAPXEP_VITRI_48BYTE_COT_DO();
WHILE(TRUE)
{
COPY_48_BYTE_COT_HIENTHI();
FOR(J=0;J<8;J++)
{
XUAT_1BIT_CUA_48_BYTE_HIENTHI();
XUAT_2BYTE(MA_QUET_HANG[J]);
MO_LED_MATRAN;
MO_IC_74573_B_THONG_DL();
OUTPUT_HIGH(RCK_MATRANLED); OUTPUT_LOW(RCK_MATRANLED);
CHOT_IC_74573_B_GOI_DU_LIEU;
DELAY_US(500);
TAT_MATRANLED();
}
}
}
d. Tin hnh bin dch v np.
e. Quan st kt qu: sau khi np xong th LED sng ch ABCD r p.
f.
Gii thch chng trnh:

Bi mu 11-22. Chng trnh iu khin LED ma trn hin th ch ABCD mu xanh


theo phng php qut hng.
Lu tn file l BAI_11_22_MTQH_ABCD_XANH
Thc hanh vi ieu khien

Nguyen nh Phu

159

Chng 11.Module LED MA TRAN

Trng ai Hoc S Pham Ky Thuat

a. Mch in:
b. Lu :
c. Chng trnh:
#INCLUDE <TV_PICKIT2_SHIFT.c>
CONST UNSIGNED INT8 MA_QUET_HANG[8]={0x01,0x02,0x04,0x08,0x80,0x40,0x20,0x10};
CONST UNSIGNED INT8 DL_HIENTHI[]={
0x1F,0x24,0x44,0x24,0x1F,0x00, //CHU A
0x7F,0x49,0x49,0x49,0x36,0x00, //CHU B
0x3E,0x41,0x41,0x41,0x22,0x00, //CHU C
0x7F,0x41,0x41,0x41,0x3E,0x00, //CHU D
};
UNSIGNED INT8 DL_COT_XANH[48]={};
UNSIGNED INT8 DL_48_COT[48]={};
UNSIGNED INT8 J,I;
VOID XOA_DL_48_COT()
{
UNSIGNED INT8 J1;
{
FOR (J1=0;J1<8;J1++)
DL_COT_XANH[J1]=0x00;
}
}
VOID SAPXEP_VITRI_48BYTE_COT_XANH()
{
DL_COT_XANH[1]=DL_HIENTHI[3]; DL_COT_XANH[3]=DL_HIENTHI[2];
DL_COT_XANH[5]=DL_HIENTHI[1]; DL_COT_XANH[7]=DL_HIENTHI[0];
DL_COT_XANH[8]=DL_HIENTHI[4]; DL_COT_XANH[10]=DL_HIENTHI[5];
DL_COT_XANH[12]=DL_HIENTHI[6]; DL_COT_XANH[14]=DL_HIENTHI[7];
DL_COT_XANH[17]=DL_HIENTHI[11]; DL_COT_XANH[19]=DL_HIENTHI[10];
DL_COT_XANH[21]=DL_HIENTHI[9]; DL_COT_XANH[23]=DL_HIENTHI[8];
DL_COT_XANH[24]=DL_HIENTHI[12]; DL_COT_XANH[26]=DL_HIENTHI[13];
DL_COT_XANH[28]=DL_HIENTHI[14]; DL_COT_XANH[30]=DL_HIENTHI[15];
DL_COT_XANH[33]=DL_HIENTHI[19];
DL_COT_XANH[37]=DL_HIENTHI[17];
DL_COT_XANH[40]=DL_HIENTHI[20];
DL_COT_XANH[44]=DL_HIENTHI[22];

DL_COT_XANH[35]=DL_HIENTHI[18];
DL_COT_XANH[39]=DL_HIENTHI[16];
DL_COT_XANH[42]=DL_HIENTHI[21];
DL_COT_XANH[46]=DL_HIENTHI[23];

}
VOID COPY_48_BYTE_COT_HIENTHI()
{
FOR (I=0;I<48;I++) DL_48_COT[I]=DL_COT_XANH[I];
}
VOID XUAT_1BIT_CUA_48_BYTE_HIENTHI()
{
FOR (I=0;I<48;I++) DL_48_COT[I]=XUAT_1BIT(DL_48_COT[I]);
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
XOA_DL_48_COT();
160

Nguyen nh Phu

Thc hanh vi ieu khien

Chng 11. Module LED MA TRAN

Trng ai Hoc S Pham Ky Thuat

SAPXEP_VITRI_48BYTE_COT_XANH();
WHILE(TRUE)
{
COPY_48_BYTE_COT_HIENTHI();
FOR(J=0;J<8;J++)
{
XUAT_1BIT_CUA_48_BYTE_HIENTHI();
XUAT_2BYTE(MA_QUET_HANG[J]);
MO_LED_MATRAN;
MO_IC_74573_B_THONG_DL();
OUTPUT_HIGH(RCK_MATRANLED); OUTPUT_LOW(RCK_MATRANLED);
CHOT_IC_74573_B_GOI_DU_LIEU;
DELAY_US(500);
TAT_MATRANLED();
}
}
}
d.
e.
f.

Tin hnh bin dch v np.


Quan st kt qu: sau khi np xong th LED sng ch ABCD r p.
Gii thch chng trnh:

Bi th vin ma trn. Chng trnh th vin iu khin led ma trn.


Hy to th vin iu khin LED ma trn v lu vi
TV_PICKIT2_MATRAN_SHIFT.c vo th mc D:\TH_VDK_PIC.

tn

CONST UNSIGNED INT8 MA_QUET_HANG[8]={0x01,0x02,0x04,0x08,0x80,0x40,0x20,0x10};


UNSIGNED INT8 DL_COT_CD[48]={};
UNSIGNED INT8 DL_COT_DICH[48]={};
VOID XOA_DL_48_COT()
{
UNSIGNED INT8 J1;
FOR (J1=0;J1<48;J1++) DL_COT_CD[J1]=0;
}
//SAP XEP CAC KY TU MAU XANH 1,2,3,4
VOID KY_TU_XANH_SO_1(UNSIGNED INT8 K)
{
DL_COT_CD[1]=DL_HIENTHI[K+3]; DL_COT_CD[3]=DL_HIENTHI[K+2];
DL_COT_CD[5]=DL_HIENTHI[K+1]; DL_COT_CD[7]=DL_HIENTHI[K+0];
DL_COT_CD[8]=DL_HIENTHI[K+4]; DL_COT_CD[10]=DL_HIENTHI[K+5];
}
VOID KY_TU_XANH_SO_2(UNSIGNED INT8 K)
{
DL_COT_CD[12]=DL_HIENTHI[K+6]; DL_COT_CD[14]=DL_HIENTHI[K+7];
DL_COT_CD[17]=DL_HIENTHI[K+11]; DL_COT_CD[19]=DL_HIENTHI[K+10];
DL_COT_CD[21]=DL_HIENTHI[K+9]; DL_COT_CD[23]=DL_HIENTHI[K+8];
}
VOID KY_TU_XANH_SO_3(UNSIGNED INT8 K)
{
DL_COT_CD[24]=DL_HIENTHI[K+12]; DL_COT_CD[26]=DL_HIENTHI[K+13];
DL_COT_CD[28]=DL_HIENTHI[K+14]; DL_COT_CD[30]=DL_HIENTHI[K+15];
DL_COT_CD[37]=DL_HIENTHI[K+17]; DL_COT_CD[39]=DL_HIENTHI[K+16];
}
Thc hanh vi ieu khien

Nguyen nh Phu

161

Chng 11.Module LED MA TRAN

Trng ai Hoc S Pham Ky Thuat

VOID KY_TU_XANH_SO_4(UNSIGNED INT8 K)


{
DL_COT_CD[33]=DL_HIENTHI[K+19]; DL_COT_CD[35]=DL_HIENTHI[K+18];
DL_COT_CD[40]=DL_HIENTHI[K+20]; DL_COT_CD[42]=DL_HIENTHI[K+21];
DL_COT_CD[44]=DL_HIENTHI[K+22]; DL_COT_CD[46]=DL_HIENTHI[K+23];
}
//SAP XEP CAC KY TU MAU DO 1,2,3,4
VOID KY_TU_DO_SO_1(UNSIGNED INT8 K)
{
DL_COT_CD[0]=DL_HIENTHI[K+3]; DL_COT_CD[2]=DL_HIENTHI[K+2];
DL_COT_CD[4]=DL_HIENTHI[K+1]; DL_COT_CD[6]=DL_HIENTHI[K+0];
DL_COT_CD[9]=DL_HIENTHI[K+4]; DL_COT_CD[11]=DL_HIENTHI[K+5];
}
VOID KY_TU_DO_SO_2(UNSIGNED INT8 K)
{
DL_COT_CD[13]=DL_HIENTHI[K+6]; DL_COT_CD[15]=DL_HIENTHI[K+7];
DL_COT_CD[16]=DL_HIENTHI[K+11]; DL_COT_CD[18]=DL_HIENTHI[K+10];
DL_COT_CD[20]=DL_HIENTHI[K+9]; DL_COT_CD[22]=DL_HIENTHI[K+8];
}
VOID KY_TU_DO_SO_3(UNSIGNED INT8 K)
{
DL_COT_CD[25]=DL_HIENTHI[K+12]; DL_COT_CD[27]=DL_HIENTHI[K+13];
DL_COT_CD[29]=DL_HIENTHI[K+14]; DL_COT_CD[31]=DL_HIENTHI[K+15];
DL_COT_CD[36]=DL_HIENTHI[K+17]; DL_COT_CD[38]=DL_HIENTHI[K+16];
}
VOID KY_TU_DO_SO_4(UNSIGNED INT8 K)
{
DL_COT_CD[32]=DL_HIENTHI[K+19]; DL_COT_CD[34]=DL_HIENTHI[K+18];
DL_COT_CD[41]=DL_HIENTHI[K+20]; DL_COT_CD[43]=DL_HIENTHI[K+21];
DL_COT_CD[45]=DL_HIENTHI[K+22]; DL_COT_CD[47]=DL_HIENTHI[K+23];
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VOID SAPXEP_VITRI_48BYTE_COT_XANH(UNSIGNED INT8 K1)
{
KY_TU_XANH_SO_1(K1); KY_TU_XANH_SO_2(K1);
KY_TU_XANH_SO_3(K1); KY_TU_XANH_SO_4(K1);
}
VOID SAPXEP_VITRI_48BYTE_COT_DO(UNSIGNED INT8 K1)
{
KY_TU_DO_SO_1(K1); KY_TU_DO_SO_2(K1);
KY_TU_DO_SO_3(K1); KY_TU_DO_SO_4(K1);
}
VOID SAPXEP_VITRI_XANH_DO_XANH_DO(UNSIGNED INT8 K1)
{
KY_TU_XANH_SO_1(K1); KY_TU_DO_SO_2(K1);
KY_TU_XANH_SO_3(K1); KY_TU_DO_SO_4(K1);
}
VOID SAPXEP_VITRI_DO_XANH_DO_XANH(UNSIGNED INT8 K1)
{
KY_TU_DO_SO_1(K1); KY_TU_XANH_SO_2(K1);
KY_TU_DO_SO_3(K1); KY_TU_XANH_SO_4(K1);
}
162

Nguyen nh Phu

Thc hanh vi ieu khien

Chng 11. Module LED MA TRAN

Trng ai Hoc S Pham Ky Thuat

VOID SAPXEP_VITRI_XANH_XANH_DO_DO(UNSIGNED INT8 K1)


{
KY_TU_XANH_SO_1(K1); KY_TU_XANH_SO_2(K1);
KY_TU_DO_SO_3(K1);
KY_TU_DO_SO_4(K1);
}
VOID SAPXEP_VITRI_DO_DO_XANH_XANH(UNSIGNED INT8 K1)
{
KY_TU_DO_SO_1(K1);
KY_TU_DO_SO_2(K1);
KY_TU_XANH_SO_3(K1); KY_TU_XANH_SO_4(K1);
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VOID COPY_48_COT_HIENTHI()
{ UNSIGNED INT8 I;
FOR (I=0;I<48;I++) DL_COT_DICH[I]=DL_COT_CD[I];
}
VOID XUAT_1BIT_CUA_48_COT_HIENTHI()
{ UNSIGNED INT8 I;
FOR (I=0;I<48;I++) DL_COT_DICH[I]=XUAT_1BIT(DL_COT_DICH[I]);
}
VOID XUAT_DULIEU_HIENTHI_MATRAN()
{
MO_LED_MATRAN;
MO_IC_74573_B_THONG_DL();
OUTPUT_HIGH(RCK_MATRANLED); OUTPUT_LOW(RCK_MATRANLED);
CHOT_IC_74573_B_GOI_DU_LIEU;
}
Vi 3 led ma trn 88 c 24 ct, mi k t 6 byte nn c th hin th c 4 k t, vic copy d liu s
c chia ra cho tng k t c lp d iu khin.
4 k t mu xanh v 4 k t mu , mi k t l 1 chng trnh con mu xanh hoc mu , cc chng
trnh con sp xp li cho c 4 k c th thc hin cc mu nh sau :
4 k t mu xanh.
4 k t mu .
4 k t: xanh xanh .
4 k t: xanh xanh.
4 k t xen k : xanh xanh.
4 k t xen k : xanh xanh .

Trong cc chng trnh con copy sp xp li ng th t ct th c thm tham s K vi mc


ch iu khin dch chui trn led ma trn:
Khi K=0 th s copy d liu t byte th 0 n byte th 47 em gi ra led hin th.
Khi K=1 th s copy d liu t byte th 1 n byte th 48 em gi ra led hin th - so vi K=0 th
xem nh chui hin th dch i 1 ct.
Khi K=2 th s copy d liu t byte th 2 n byte th 49 em gi ra led hin th - so vi K=1 th
xem nh chui hin th dch i thm 1 ct na.
Tng t cho n khi ht chui cn hin th.
Cc bi hin th chui ng yn th cho tham s K=0.

Bi mu 11-23. Chng trnh iu khin LED ma trn hin th ch ABCD mu


theo phng php qut hng, s dng th vin.
Lu tn file l BAI_11_23_MTQH_ABCD_DO
a.
b.
c.

Mch in:
Lu :
Chng trnh:

Thc hanh vi ieu khien

Nguyen nh Phu

163

Chng 11.Module LED MA TRAN

Trng ai Hoc S Pham Ky Thuat

#INCLUDE <TV_PICKIT2_SHIFT.c>
CONST UNSIGNED INT8 DL_HIENTHI[]={
0x1F,0x24,0x44,0x24,0x1F,0x00, //CHU A
0x7F,0x49,0x49,0x49,0x36,0x00, //CHU B
0x3E,0x41,0x41,0x41,0x22,0x00, //CHU C
0x7F,0x41,0x41,0x41,0x3E,0x00, //CHU D
};
#INCLUDE <TV_PICKIT2_MATRAN_SHIFT.c>
UNSIGNED INT8 J,I;
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
XOA_DL_48_COT();
SAPXEP_VITRI_48BYTE_COT_DO(0);
WHILE(TRUE)
{
COPY_48_COT_HIENTHI();
FOR(J=0;J<8;J++)
{
XUAT_1BIT_CUA_48_COT_HIENTHI();
XUAT_2BYTE(MA_QUET_HANG[J]);
XUAT_DULIEU_HIENTHI_MATRAN();
DELAY_US(500);
TAT_MATRANLED();
}
}
}
d. Tin hnh bin dch v np.
e. Quan st kt qu: sau khi np xong th LED sng ch ABCD r p.
f.
Gii thch chng trnh:

Bi tp 11-24. Hy hiu chnh chng trnh bi 11-23 4 k t sng mu xanh.


Lu tn file l BAI_11_24_MTQH_ABCD_XANH
Bi mu 11-25. Chng trnh iu khin LED ma trn hin th ch ABCD mu xanh
ri mu .
Lu tn file l BAI_11_25_MTQH_ABCD_XANH_DO
a. Mch in:
b. Lu :
c. Chng trnh:
#INCLUDE <TV_PICKIT2_SHIFT.c>
CONST UNSIGNED INT8 DL_HIENTHI[]={
0x1F,0x24,0x44,0x24,0x1F,0x00, //CHU A
0x7F,0x49,0x49,0x49,0x36,0x00, //CHU B
0x3E,0x41,0x41,0x41,0x22,0x00, //CHU C
0x7F,0x41,0x41,0x41,0x3E,0x00, //CHU D
};
#INCLUDE <TV_PICKIT2_MATRAN_SHIFT.c>
UNSIGNED INT8 J;
UNSIGNED INT16 CK;
VOID HIEN_THI_MA_TRAN()
{
164

Nguyen nh Phu

Thc hanh vi ieu khien

Chng 11. Module LED MA TRAN

Trng ai Hoc S Pham Ky Thuat

COPY_48_COT_HIENTHI();
FOR(J=0;J<8;J++)
{
XUAT_1BIT_CUA_48_COT_HIENTHI();
XUAT_2BYTE(MA_QUET_HANG[J]);
XUAT_DULIEU_HIENTHI_MATRAN();
DELAY_US(500);
TAT_MATRANLED();
}

}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VOID MAIN()
{ SET_UP_PORT_IC_CHOT();
WHILE(TRUE)
{
XOA_DL_48_COT();
SAPXEP_VITRI_48BYTE_COT_XANH(0);
FOR (CK=0;CK<100;CK++)
{
HIEN_THI_MA_TRAN();
}
XOA_DL_48_COT();
SAPXEP_VITRI_48BYTE_COT_DO(0);
FOR (CK=0;CK<100;CK++)
{
HIEN_THI_MA_TRAN();
}
}
}
d.
e.
f.

Tin hnh bin dch v np.


Quan st kt qu: sau khi np xong th LED sng ch ABCD mu xanh ri n mu .
Gii thch chng trnh:

Bi mu 11-26. Chng trnh iu khin LED ma trn hin th ch ABCD nhiu ch


mu khc nhau.
Lu tn file l BAI_11_26_MTQH_ABCD_TONGHOP
a. Mch in:
b. Lu :
c. Chng trnh:
#INCLUDE <TV_PICKIT2_SHIFT.c>
CONST UNSIGNED INT8 DL_HIENTHI[]={
0x1F,0x24,0x44,0x24,0x1F,0x00, //CHU A
0x7F,0x49,0x49,0x49,0x36,0x00, //CHU B
0x3E,0x41,0x41,0x41,0x22,0x00, //CHU C
0x7F,0x41,0x41,0x41,0x3E,0x00, //CHU D
};
#INCLUDE <TV_PICKIT2_MATRAN_SHIFT.c>
UNSIGNED INT8 J;
UNSIGNED INT16 CK;
VOID HIEN_THI_MA_TRAN()
Thc hanh vi ieu khien

Nguyen nh Phu

165

Chng 11.Module LED MA TRAN

Trng ai Hoc S Pham Ky Thuat

{
COPY_48_COT_HIENTHI();
FOR(J=0;J<8;J++)
{
XUAT_1BIT_CUA_48_COT_HIENTHI();
XUAT_2BYTE(MA_QUET_HANG[J]);
XUAT_DULIEU_HIENTHI_MATRAN();
TAT_MATRANLED();
}

DELAY_US(500);

}
VOID MAIN()
{ SET_UP_PORT_IC_CHOT();
WHILE(TRUE)
{
XOA_DL_48_COT();
SAPXEP_VITRI_48BYTE_COT_XANH(0);
FOR (CK=0;CK<100;CK++)
{
HIEN_THI_MA_TRAN();
}
XOA_DL_48_COT();
SAPXEP_VITRI_48BYTE_COT_DO(0);
FOR (CK=0;CK<100;CK++)
{
HIEN_THI_MA_TRAN();

SAPXEP_VITRI_48BYTE_COT_XANH(0);
SAPXEP_VITRI_48BYTE_COT_DO(0);
FOR (CK=0;CK<100;CK++)
{
HIEN_THI_MA_TRAN();
}
XOA_DL_48_COT();
SAPXEP_VITRI_XANH_DO_XANH_DO(0);
FOR (CK=0;CK<200;CK++)
{
HIEN_THI_MA_TRAN();
}
XOA_DL_48_COT();
SAPXEP_VITRI_DO_XANH_DO_XANH(0);
FOR (CK=0;CK<200;CK++)
{
HIEN_THI_MA_TRAN();
}
XOA_DL_48_COT();
SAPXEP_VITRI_DO_DO_XANH_XANH(0);
FOR (CK=0;CK<100;CK++)
{
HIEN_THI_MA_TRAN();
}
XOA_DL_48_COT();
SAPXEP_VITRI_XANH_XANH_DO_DO(0);
FOR (CK=0;CK<100;CK++)
{
HIEN_THI_MA_TRAN();
}

}
}
d.
e.
f.

166

Tin hnh bin dch v np.


Quan st kt qu: sau khi np xong th LED sng ch ABCD ln lt cc mu.
Gii thch chng trnh:

Nguyen nh Phu

Thc hanh vi ieu khien

Chng 11. Module LED MA TRAN

Trng ai Hoc S Pham Ky Thuat

Bi mu 11-27. Chng trnh iu khin LED ma trn hin th ch ABCD mu xanh


dch t phi sang tri.
Lu tn file l BAI_11_27_MTQH_ABCD_XANH_DICH
a. Mch in:
b. Lu :
c. Chng trnh:
#INCLUDE <TV_PICKIT2_SHIFT.c>
CONST UNSIGNED INT8 DL_HIENTHI[]={
0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
0x1F,0x24,0x44,0x24,0x1F,0x00, //CHU A
0x7F,0x49,0x49,0x49,0x36,0x00, //CHU B
0x3E,0x41,0x41,0x41,0x22,0x00, //CHU C
0x7F,0x41,0x41,0x41,0x3E,0x00, //CHU D
0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
};
#INCLUDE <TV_PICKIT2_MATRAN_SHIFT.c>
UNSIGNED INT8 J,VITRI;
UNSIGNED INT16 CK;
VOID HIEN_THI_MA_TRAN()
{
COPY_48_COT_HIENTHI();
FOR(J=0;J<8;J++)
{
XUAT_1BIT_CUA_48_COT_HIENTHI();
XUAT_2BYTE(MA_QUET_HANG[J]);
XUAT_DULIEU_HIENTHI_MATRAN();
DELAY_US(100);
TAT_MATRANLED();
}
}
VOID MAIN()
{ SET_UP_PORT_IC_CHOT();
WHILE(TRUE)
{
VITRI=0;
DO
{
XOA_DL_48_COT();
SAPXEP_VITRI_48BYTE_COT_XANH(VITRI);
FOR (CK=0;CK<20;CK++)
{
HIEN_THI_MA_TRAN();
}
VITRI=VITRI+1;
}WHILE (VITRI<48);
}
}
Thc hanh vi ieu khien

Nguyen nh Phu

167

Chng 11.Module LED MA TRAN

d.
e.
f.

Trng ai Hoc S Pham Ky Thuat

Tin hnh bin dch v np.


Quan st kt qu: sau khi np xong th LED sng ch ABCD s dch chuyn.
Gii thch chng trnh:

Bi tp 11-28. Chng trnh iu khin LED ma trn hin th ch ABCD dch t phi
sang tri mu xanh ri n mu .
Lu tn file l BAI_11_28_MTQH_ABCD_XANH_DO_DICH
0,1,2,3,4,5, 6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,
X=0 TNH W = X/6=0, Z = X%6=0 :
TM BYTE CUI L Y={W(W+4)} => (Y*6+5-Z)= (Y*6+5-0)={ 5,11,17,23,29}
=> V TR
{X+{5,11,17,23,29}}={0+{5,11,17,23,29}}= {5,11,17,23,29}
X=1

TNH W = X/6=0, Z = X%6=1 :


TM BYTE CUI L Y={W(W+4)} => (Y*6+5-Z)= (Y*6+5-1)={4,10,16,22,28}
=> V TR
{X+{4,10,16,22,28}}={1+{4,10,16,22,28}}= {5,11,17,23,29}

X=2

TNH W = X/6=0, Z = X%6=2 :


TM BYTE CUI L Y={W(W+4)} => (Y*6+5-Z)= (Y*6+5-2)={3,9,15,21,27}
=> V TR
{X+{3,9,15,21,27}}={2+{3,9,15,21,27}}= {5,11,17,23,29}

X=3

TNH W = X/6=0, Z = X%6=3 :


TM BYTE CUI L Y={W(W+4)} => (Y*6+5-Z)= (Y*6+5-3)={2,8,14,20,26}
=> V TR
{X+{2,8,14,20,26}}={2+{2,8,14,20,26}}= {5,11,17,23,29}

X=4

TNH W = X/6=0, Z = X%6=4 :


TM BYTE CUI L Y={W(W+4)} => (Y*6+5-Z)= (Y*6+5-4)={1,7,13,19,25}
=> V TR
{X+{1,7,13,19,25}}={4+{1,7,13,19,25}}= {5,11,17,23,29}

X=5

TNH W = X/6=0, Z = X%6=5 :


TM BYTE CUI L Y={W(W+4)} => (Y*6+5-Z)= (Y*6+5-5)={0,6,12,18,24}
=> V TR
{X+{0,6,12,18,24}}={5+{0,6,12,18,24}}= {5,11,17,23,29}

X=6

TNH W = X/6=1, Z = X%6=0 :


TM BYTE CUI L Y={W(W+4)} => (Y*6+5-Z)= (Y*6+5-0)={11 ,17,23,29,35}
=> V TR
{X+{0,6,12,18,24}}={5+{0,6,12,18,24}}= {5,11,17,23,29}

168

Nguyen nh Phu

Thc hanh vi ieu khien

Chng 11. Module LED MA TRAN

Trng ai Hoc S Pham Ky Thuat

Ch cn tnh ra v tr u tin l xong, v tr th 2 bng v tr 1 cng vi 6.


Tnh W, Z: Y = X/6, Z = X%6
Tnh v tr ca k t u tin: VT = Y*6+5
X=0 =>
VT = Y*6+5 =0+5=5
X=1 =>
VT = Y*6+5 =0+5=5
X=2 =>
VT = Y*6+5 =0+5=5
X=3 =>
VT = Y*6+5 =0+5=5
X=4 =>
VT = Y*6+5 =0+5=5
X=5 =>
VT = Y*6+5 =0+5=5
Copy t v tr bt u l X n VT cho k t th 0
X=0 th Y = 0, Z=0: copy t 0 n 5 lu vo t 0 n 5,
X=1 th Y = 0, Z=1: copy t 1 n 5 lu vo t 0 n 4
X=2 th Y = 0, Z=2: copy t 2 n 5 lu vo t 0 n 3
X=3 th Y = 0, Z=3: copy t 3 n 5 lu vo t 0 n 2, sau copy t th 6 lu vo t th 2 n 24
X=4 th Y = 0, Z=4: copy t 4 n 5 lu vo t 0 n 1, sau copy t th 6 lu vo t th 2 n 24
X=5 th Y = 0, Z=5: copy t 5 n 5 lu vo t 0 n 0, sau copy t th 6 lu vo t th 1 n 24

X=6
X=7
X=8
X=9
X=10
X=11
X=12

=> Y = X/6=1,
=> Y = X/6=1,
=> Y = X/6=1,
=> Y = X/6=1,
=> Y = X/6=1,
=> Y = X/6=1,
=> Y = X/6=2,

VT = Y*6+5=1*6+5=11
VT = Y*6+5=1*6+5=11
VT = Y*6+5=1*6+5=11
VT = Y*6+5=1*6+5=11
VT = Y*6+5=1*6+5=11
VT = Y*6+5=1*6+5=11
VT = Y*6+5=2*6+5=17

TNH S D Z:
Nu Z=0 th xt v tr: ti (29-Z) =29:
xt gim t (29-Z) =29 v (24-Z) =24 => 5 byte
xt gim t (23-Z) =23 v (18-Z) =18 => 5 byte
xt gim t (17-Z) =17 v (12-Z) =12 => 5 byte
xt gim t (11-Z) =11 v (6-Z) =6 => 5 byte
xt gim t (5-Z) =5 v (0-Z) =0 => 5 byte
Nu Z=1 th xt v tr: ti (29-Z) =2=:
xt gim t (29-Z) =29 v (24-Z) =24 => 5 byte
xt gim t (23-Z) =23 v (18-Z) =18 => 5 byte
xt gim t (17-Z) =17 v (12-Z) =12 => 5 byte
xt gim t (11-Z) =11 v (6-Z) =6 => 5 byte
xt gim t (5-Z) =5 v (0-Z) =0 => 5 byte
Nu Z=1 th xt v tr: ti (29-Z)=28:
xt gim t 29-Z v 24 = 5 byte
xt gim t 23 v 18 = 5 byte
xt gim t 17 v 12 = 5 byte
xt gim t 11 v 6 = 5 byte
xt gim t 5 v 4 = 5 byte
, 17, 23, 29. Xa li khi mu
Thc hanh vi ieu khien

Nguyen nh Phu

169

Chng 11.Module LED MA TRAN

0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
0x1F,0x24,0x44,0x24,0x1F,0x01,
0x7F,0x49,0x49,0x49,0x36,0x00,
0x3E,0x41,0x41,0x41,0x22,0x01,
0x7F,0x41,0x41,0x41,0x3E,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,

170

Trng ai Hoc S Pham Ky Thuat

//CHU A
//CHU B
//CHU C
//CHU D

TT 48 BYTE GI RA CT 00
01
02
03
04
05
06
CT LED1
CD3
CD2
CD1
CD0
TT 48 BYTE GI RA CT 08
09
10
11
12
13
14
CT LED1
CD4
CD5
CD6
TT 48 BYTE GI RA CT 16
17
18
19
20
21
22
CT LED2
CD11
CD10
CD9
CD8
TT 48 BYTE GI RA CT 24
25
26
27
28
29
30
CT LED2
CD12
CD13
CD14
TT 48 BYTE GI RA CT 32
33
34
35
36
37
38
CT LED3
CD19
CD18
CD17
CD16
TT 48 BYTE GI RA CT 40
41
42
43
44
45
46
CT LED3
CD20
CD21
CD22
Dch ct th t: 6,4,2,0,9,11,13,15,22,20,18,16,25,27,29,31,38,36,34,32,41,43,45,47

07

TT 48 BYTE GI
LED1
TT 48 BYTE GI
LED1
TT 48 BYTE GI
LED2
TT 48 BYTE GI
LED2
TT 48 BYTE GI
LED3
TT 48 BYTE GI
LED3

RA CT 00
CD3
RA CT 08
CX4
RA CT 16
CD11
RA CT 24
CX12
RA CT 32
CD19
RA CT 40
CX20

15
CD7
23
31
CD15
39
47
CD23

01
CX3
09
CD4
17
CX11
25
CD12
33
CX19
41
CD20

02
CD2
10
CX5
18
CD10
26
CX13
34
CD18
42
CX21

03
CX2
11
CD5
19
CX10
27
CD13
35
CX18
43
CD21

04
CD1
12
CX6
20
CD9
28
CX14
36
CD17
44
CX22

05
CX1
13
CD6
21
CX9
29
CD14
37
CX17
45
CD22

06
CD0
14
CX7
22
CD8
30
CX15
38
CD16
46
CX23

07
CX0
15
CD7
23
CX8
31
CD15
39
CX16
47
CD23

Bng 11-8: Bng th t cc ct mu xanh:


TT 48 BYTE GI RA CT 00
00
LED1
CD3 CX3
TT 48 BYTE GI RA CT 04
04
LED1
CX4 CD4
TT 48 BYTE GI RA CT 8
8
LED2
CD11 CX11
TT 48 BYTE GI RA CT 12
12
LED2
CX12 CD12
TT 48 BYTE GI RA CT 16
16

01
CD2
05
CX5
9
CD10
13
CX13
17

01
CX2
05
CD5
9
CX10
13
CD13
17

02
CD1
06
CX6
10
CD9
14
CX14
187

02
CX1
06
CD6
10
CX9
14
CD14
18

03
CD0
07
CX7
11
CD8
15
CX15
19

03
CX0
07
CD7
11
CX8
15
CD15
19

Nguyen nh Phu

Thc hanh vi ieu khien

Chng 11. Module LED MA TRAN

Trng ai Hoc S Pham Ky Thuat

LED3
CD19 CX19 CD18 CX18 CD17 CX17 CD16 CX16
TT 48 BYTE GI RA CT 20
20
21
21
22
22
23
23
LED3
CX20 CD20 CX21 CD21 CX22 CD22 CX23 CD23
XANH TRC, SAU
TRC XANH SAU
XANH TRC SAU
TRC XANH SAU
XANH SAU TRC
Dch ct th t :
7,5,3,1,8,10,12,14,23,21,19,17,24,26,28,30,39,37,35,33,40,42,44,46
6,4,2,0,9,11,13,15,22,20,18,16,25,27,29,31,38,36,34,32,41,43,45,47
3,2,1,0,4,5,6,7,11,10,9,8,12,13,14,15,19,18,17,16,20,21,22,23
Dch ct th t:
6,4,2,0,9,11,13,15,22,20,18,16,25,27,29,31,38,36,34,32,41,43,45,47
Dch ct th t: 6,4,2,0,9,11,13,15,22,20,18,16,25,27,29,31,38,36,34,32,41,43,45,47
Dch ct th t : 7,5,3,1,8,10,12,14,23,21,19,17,24,26,28,30,39,37,35,33,40,42,44,46
6,4,2,0,9,11,13,15,22,20,18,16,25,27,29,31,38,36,34,32,41,43,45,47
Gii thch cho cc thng tin trong bng:
D liu ca byte th 0 (00) khi dch ra ct th s lm ct th 3 ca led sng (CD3).
D liu ca byte th 2 (02) khi dch ra ct th s lm ct th 2 ca led sng (CD2).
D liu ca byte th 4 (04) khi dch ra ct th s lm ct th 1 ca led sng (CD1).
D liu ca byte th 6 (06) khi dch ra ct th s lm ct th 0 ca led sng (CD0).
D liu ca byte th 9 (09) khi dch ra ct th s lm ct th 4 ca led sng (CD4).
Tng t cho cc ct cn li, cc trng l ca 24 ct mu xanh xem bng tip theo.
VT1=K%6;VTKT1=VT1;
I3=0;
GHT=5-VT1; GHD=-1+ VT1;
DO{
IF (DL_COT_X_DICH[GHT]==1) //XOA NEU MAU DO
{
FOR(I2=GHT;I2>GHD;I2--)
{DL_COT_X_DICH[I2]=0;}
}
GHT=GHT+6,GHD=GHD+6;
I3++;
}WHILE(I3==5);
VT1=0 TH
GHT = 5, GHD=0:
XA T 0 N 5
GHT = GHT+ 6=11, GHD=GHD+6=6:
XA T 6 N 11

TNH S D Z:
Nu VT=0 th xt v tr: ti (29-Z) =29:
xt gim t (29-Z) =29 v (24-Z) =24 => 5 byte
xt gim t (23-Z) =23 v (18-Z) =18 => 5 byte
Thc hanh vi ieu khien

Nguyen nh Phu

171

Chng 11.Module LED MA TRAN

Trng ai Hoc S Pham Ky Thuat

xt gim t (17-Z) =17 v (12-Z) =12 => 5 byte


xt gim t (11-Z) =11 v (6-Z) =6 => 5 byte
xt gim t (5-Z) =5 v (0-Z) =0 => 5 byte

Nu Z=1 th xt v tr: ti (29-Z) =2=:


xt gim t (29-Z) =29 v (24-Z) =24 => 5 byte
xt gim t (23-Z) =23 v (18-Z) =18 => 5 byte
xt gim t (17-Z) =17 v (12-Z) =12 => 5 byte
xt gim t (11-Z) =11 v (6-Z) =6 => 5 byte
xt gim t (5-Z) =5 v (0-Z) =0 => 5 byte

172

Nguyen nh Phu

Thc hanh vi ieu khien

You might also like