Tải bản đầy đủ (.pdf) (81 trang)

Giáo trình Lập trình vi điều khiển nâng cao (Nghề Công nghệ kỹ thuật ĐiệnĐiện tử CĐTC)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.8 MB, 81 trang )

TRƯỜNG CAO ĐẲNG NGHỀ ĐỒNG THÁP
KHOA ĐIỆN – ĐIỆN TỬ

GIÁO TRÌNH
MƠN HỌC: LẬP TRÌNH VI ĐIỀU KHIỂN NÂNG CAO
NGÀNH, NGHỀ: CN T ĐI N, ĐI N T
TRÌNH ĐỘ: CAO ĐẲNG/TRUNG CẤP

(Ban hành kèm theo Quyết định Số: /QĐ-CĐNĐT ngày… tháng…năm 2018
của Hiệu trưởng Trường Cao đẳng nghề Đồng Tháp)


LỜI NÓI ĐẦU
ờ n
ut nt
xn
lờ
o n
n
sn sn v n
n n t u
o Đ n–Đ nt C
n n
n
n Ar u no
?V y
Ar u no l
? Ar u no t t r l m t o m
v x lý ợ ùn ể l p tr n
t ơn t vớ
t t ị p n ứn n


m
n, n ơ, èn oặ
t t
ịk
Đặ
ểm nổ
t ủ Ar u no l mô tr ờn p t tr ển ứn ụn ự
kỳ ễ s
ụn , vớ m t n ôn n ữ l p tr n
t ể
m t
n n
n
n y
vớ n ờ ít m ểu về
n t v l p tr n V
ều l m n n
n
t ợn Ar u no ín l mứ
rất t ấp v tín
ất n uồn mở từ p n ứn tớ
p n mềm
Sự r ờ ủ m
Ar u no t ú ẩy sự y u t í , t m tị n
n ứu, ứn
ụn tự n
a , ro ot
v o ờ sốn v ôn n
p Vớ n ữn u ểm
r n ủ m n , Ar u no ã n n

n nổ t n to n t
ớ v


s n , s n v n, ớ n
n ứu, n ữn n ờ y u t í kỹ t u t, n ữn
n ờ t í l m ồ tự
s ụn r n rã T V t N m, số l ợn n ờ s
ụn m
Ar u no n y n tăn Để úp
n t m ểu Ar u no, t l u
n y ã ợ
n so n T l u ồm 3 p n, ợ
n so n từ ơn n n
p ứ t p T l u ợ v tm t
n ắn n, ễ ểu, v o n ữn vấn ề
ốt lõ tron v s ụn Ar u no o u sốn
ặ ù ã ố ắn tron qu tr n
n so n t l u, n n

ắn tài
l u k ôn t ể tr n k ỏ s s t tron qu tr n
n so n Rất mon n n ợ
sự p ý ân t n ủ
n ểt
t ể o n t n ơn nữ t l u
này.

2



Mục lục
LỜI NÓI ĐẦU ..................................................................................................... 1
T NG QUAN .................................................................................................. 1
11

n m ........................................................................................................ 1

1 2 Cấu trú v
1 3 Cấu trú

ứ năn

k ố ...................................................................... 1

ủ m t k t r u no ........................................................................... 4

1.4 Arduino IDE .................................................................................................... 8
15C

ặt IDE.................................................................................................... 10

16C

ặt driver arduino uno r3 ........................................................................ 11

NGƠN NGỮ LẬP TRÌNH ........................................................................... 14
2 1 Cấu trú n ôn n ữ l p tr n .......................................................................... 14
22V or


ữ l u ................................................................................................ 20

2 2 1 xuất ữ l u r m t p n ............................................................................... 20
23C

n ắt......................................................................................................... 23

2.4 ADC .............................................................................................................. 28
2 5 G o t p I2C, UART, SPI ............................................................................ 30
3 LẬP TRÌNH GIAO TI P AR UINO VỚI C C LINH KIỆN, C M
I N, OAR .................................................................................................. 46
T N ÀI: G o

p d

l no

T N ÀI: G o

p An lo o p

on
PWM

d no ......................................... 47
on

d no.......................... 56
I



T N ÀI: G o

p n lo

T N ÀI: G o

p Uart, I2C. ........................................................................ 68

T N ÀI: N

on A d no I. MỤC TIÊU CỦA BÀI:........................... 73

T N ÀI: Th

np

n A d no Uno .................................... 62

k hệ hốn đ ề kh ển vớ

d no .................................... 76

II


1. T NG QUAN
1.1 Khái niệm
V đ ề kh ển l m t máy tính



ều k ển

thi t bị

V

nt

u suất ủ ùn v

x lý

m y tín ) k t ợp vớ

ợ tí

ều k ển, t ự

t n t ấp (k

k ố n o

v n

số s n t ơn tự v t ơn tự s n số,
ựn


V


íp v m
ều k ển t

n ều tron
p

dụng cụ

ơn t n, dây chuyền tự

ợp tr n m t chíp, n t
ất, l m t
vớ

b nhớ,

ờn

t ốn

v x lý

các mô

ụn

o ồm m t vi
năn


ùn tron

,

mô un

n ổ

mơ un t

ờn

ợ xây

N xuất

nk

un v o/r

Ở m y tín t

ợ s

n o

ờn




nt
ng,

,t

ùn
t ị

ể xây ựn

h thống nhúng

n, máy giặt, lị vi sóng,

n tho i,

u

c DVD, thi t bị a

v.v.

1.2 Cấu trúc và chức năn các khối
1.2.1 Cấu trúc

H n 3 1: ấu trú

ủ v

ều k ển AVG


1


1.2.2 chức năng các khối
1.2.2.1 Bộ nhớ

B n ớ ủ v
B n ớ
B n ớ

ều k ển AVR

ứ n

ơn tr n

tr n v

ồm 2 p n:



n ớ Fl s l p tr n v x

ơn tr n v t

B n ớ ữ l u (D t m mory): Đây l
ủ y u truy
C


p

ứ năn (R

(từ 0x00 -> 0x1F) v
t ứ tự R0-R31 C
ểt ự

n

C
t

,

n ớ

t n

v op nn y

n y ùn

p, k

l p

5 p n:


st r f l ): tất
8

ơn

nstru t on, ây

n ớ qu n tr n n ất ủ

ều l t n

p AVR ều

t C

ể truy

xuất n p (I/O R

ot pv

ều k ển,

ều k ển vớ


t

R


st r f l

p trự t p

st r): I/O R
t

t ịn o

DDRB,DDRC,DDRD ùn
R m tĩn (Int rn l SRA
t

p sẽ lo

mã l n

32 t n



ặt t n t o

nstru t on, ùn

p ép to n,

t n

n õ


o

n ớ n y D t m mory ồm

t n

u ủ

p T p s u nt rrupts v tors l

pt ự t ,



v tor n ắt( nt rrupts v tors) v

nt rrupts v tors nằm ở p n

tùy v o từn lo

mã l n

tr n

s u:

ơn tr n (Pro r m m mory) :

ơn tr n ( nstru t on) C

l

ợ tổ

ểk

st r ồm 60 t n

t ị n o v , tất
v

t n

ều nằm ở ây Ví ụ n

o tr n t

): l k ơn

n

I/O



o

,l
tr n
t n


Port B,C,D.

n tron qu tr n t ự

ơn tr n
R mn o
ểs

(Ext rn l SRA ):

ụn t m

n, v p n

p AVR
n ớn y

ỉ tồn t

t ể ắn t m
k

ps

n ớn o
ụn t m

nhớ n o


2


EEPRO
ủ v

(El tr

lly Er s l Pro r mm l RO ) : l

ều k ển AVR,

ùn

n ớ n y l RO

ể l u trữ ữ l u B n ớ EEPRO

n n k ôn
ợ t

ịx

n ớk

qu n tr n

mất

nn n






ỉ ắt

k

r n vớ 4 p n tr n v

u 0x00.
1.2.2.2 ALU

ểu

Theo Hình 3.1
tron R
ũn

ễn ấu tron

st r F l

n tron

ủ 1 AVR B n t ấy rằn 32 t n

ợ k t nố trự t p vớ Ar t m t


ợ x m l CPU ủ AVR) ằn 2 l n , v t

ùn lú 2 t n

RF

ỉ tron 1

u kỳ xun

o

A U

lo k (vùn

Un t -ALU (ALU

t ể truy xuất trự t p
ợ k o n tròn m u ỏ

trong hình 4).
C

nstru t on

t n




16

t B n ớ

và 1 nstru t on

ứ tron

r

st r, nstru t on r

t ự t
ịn

ứ tron
ơn tr n

st r t

n

m

ơn tr n Fl s m mory

ợ truy

pro r m m mory sẽ


Tron lú t ự t
ở m t

n ớ

p tron mỗ
ợ lo

n v lự

nr

st r f l

ơn tr n , ị

ỉ ủ

òn l n

n

u kỳ xung clock

v o tron
ũn n

ơn tr n – PC (Pro r m ount r) Đ




nstru t on

RA

n t ự t
ín l

oA U
ợ quy t
t ứ

o t

ủ AVR
AVR

xun

u

lo k, v v y

k ển k

n

ểm l

u


t

nstru t on ều

t ể n uồn lo k lớn n ất

PIC n

n t ờ

nt ự t

o AVR

vẫn n n

ợ t ự t

tron 1

u kỳ

t ể n ỏ ơn 1 số v

ều

ơn

1.2.2.3 I/O


x m xét

n

ổn

I/O ủ AVR t

t p

xét tớ 3 t n

t

DDxn,PORTxn,PINxn.
C
DDRx ùn

t DDxn ể truy


ều k ển

p
ớn

o ị

ỉ xuất n p DDRx B t DDxn tron t n


ữl u ủ

ân ủ

ổn n y

hi

trị lo
3


„0‟ v o ất k
t

tn o ủ t n

n yt

n sẽ trở t n lố v o, òn

„1‟ v o

t

n trở t n lố r
C

t PORTxn ể truy


trị 1 k

ân

ổn ) N ắt
r C

ấu t o n

ỉ xuất n p PORTx

ổn r t

ổn l 3 tr n t

o t

C

n trở kéo l


k

PORTx


trị 0 oặ


1

n (

ân

ều k n r s t l tí


ợ nố vớ
n n

ự t m

ổn

í xun

ồn

ổn

ỉ ể

n

t PINxn ể truy

,




n trở kéo r , PORTx

ân ủ

ồ k ôn

pt

ổn n y

t ể

pt



ỉ xuất n p PINx PINx l

tr n t

,v

PINx

o p ép t

k ôn p


l t n

,v

lo

ủ PORTx PINx k ôn p

trị lo
PINx

tr n

ân ủ PORTx

o p ép t

trị lo

l t n
ú ý PINx

tr n

ân ủ

PORTx.
1.2.2.4 Các khối khác

ADC: C o p ép


uyển ổ tín

SPI, I2C, Us rt: l

k ố

ợ xây

uy n ụn , … t ôn qu
PW :

u từ t ơn tự s n tín

ot ự

o p ép t o r

xun

n

o p ép

u số
o t p vớ m y tín , mo ul

uẩn Us rt, I2C, SPI
o t n số 50Hz n


n

rôn xun

t ểt y



1.3 Cấu trúc của một kit arduino
P nn yn
n y Do ây l t
n

nt

t

về p n ứn
l u

ov

uy n sâu ơn t

ớn
s

ụn

ẫn


ủ Ar u no Uno R3, m t o m
n n n nt
o r m

n y N un

t ểt mk ot w st

ín t ứ




t ôn

ụn

r n ữn k n t ứ

n
ơ

n n ữn k n t ứ

ủ Ar u no: r u no

4



H n 3 2 Cấu t o ủ

r u no uno r3

1. Cáp USB Đây l

ây

v o m y tín
ủ m y tín

ển p


ơn tr n

o o o t

từ o Ar u no l n m y tín
tr n o Ar u no,

u1

pt

ùn

n

Dây




n

quy

n y l n uồn DC
n

o ov
N o
p

p USB òn

2

u,

pt r
u

u1

ợ l p tr n n

p ùn

ể ắm






ùn

ùn

ể ắm v o ổn USB

m t

ể truyền ữ l u

uyển ổ USB –to-Serial

o t ứ S r l ( ùn

ồn n oà Cổn n uồn n o
y

n kèm t o o, ây

ây ồn t ờ ũn lấy n uồn từ n uồn us

r

o t p vớ m y tín t ôn qu


3 Cổn n
p n,



ể ắm v o ổn USB tr n m y tín

2. IC Atmega 16U2 IC n y
ùn

ờn

n ằm s

ụn n uồn

n

n

n ấp v o ổn

o o Ar u no o t

nt

từ 6V

s n xuất k uy n ùn l từ 7


n 12V

n 20V, tuy n

4 Cổn US Cổn USB tr n o Ar u no ùn

ổn CO )

N uồn
n

ể k t nố vớ

u

nt

nn o

n

tốt n ất m

p USB
5


5. Nút reset Nút r s t
ơn tr n


y ặp lỗ , n

6 ICSP củ
Pro r mm n
t

ờn ít

6U
ân

S

n

y Đơ k

ơn tr n

ICSP l

ữ v t tắt

o t p SPI ủ

p Atm

C tất

ấu ~ l n ữn


ân

s n



ụn tron v

14

ân xuất tín



In-Circuit Serial

16U2 C

ân n y

n rất rõ n ữn

328 l l n

t u t p ữ l u từ

ồn ủ

m


3 8C

s

t ể

ều k ển tố

ân ể ăm xung này.

om

Ar u no Uno, IC n y

n, x lý ữ l u, xuất tín

ân ICSP ủ ATm

o t p SPI (S r l P r p r l Int rf
ân n y, ví ụ n

u r tron Ar u no Uno,

t ể ăm xun (PW ), tứ

èn H n 2 t ể

9 Chân ICSP củ ATme
ụn


ơn tr n

ự n về Ar u no

8. IC ATmega 328 IC Atm

o

ểr s tl
t ểr s tl

ín h ệ

ơ oặ

ợ s

ụn

ùn

ATme

ợ s tron

ân
n




Đây l

7 Chân x ấ
n ữn

ợ s

), m t số ứn

328

ụn

u r ,…
ợ s

ụn

ủ Ar u no

ụn mo ul RFID RC522 vớ Ar u no

s

y Et rn t

l vớ Ar u no
0 Chân lấy ín h ệ An lo C


từ

m

n ể IC Atm

ân n y lấy tín

328 x lý C tất

6

u An lo (tín

ân lấy tín

u t ơn tự)

u An lo , từ A0

n

A5.
Chân cấp n


nn o

( ân nố


n
ất,

ân n y m n

ồn cho cảm b n C

rol ,

m

ân âm),
ờ s

IOREF Tuy n

n

ể ấp n uồn

n, RC s rvo,…tr n k u vự n y
ân 5V,

ụn k ôn

n, rol , r s rvo,…N o

ân n y ùn

ân 3 3V n

nt

t ị

ợ t ể
n ổ

nở
nk

o

sẵn

t

t

ân GND

n 2 N ờ n ữn
ấp n uồn

o

m

r tr n k u vự n y ịn có chân Vin và chân reset, chân

ân n y t


ờn ít

ợ s

ụn n n tron t l u n y x n k ôn

sâu về n

6


Các l nh k ện khác

n bo d A d no Uno N o

n tr n, Ar u no Uno òn 1 số l n k n

n

úýk

o ồm 1 l

t o

ã

l


C

n

ợ l

t ôn qu

l l

on o r (tứ l

ơn

l

n uồn (l

ON n ằm

o

Tx v Rx sẽ n ấp n y k

n m k ôn

ổn USB
tr n o), l

n ùn t m l




ln k n ãl tk

Tr n o

tất

ấp n uồn), 2 l

4 èn l ,
Tx v Rx, 1

ữ l u truyền từ o r l n m y tín


ợ k t nố vớ

n y

úp n



ân số 13

ùn

t ểt ự


n y

oặ


n

n o

Hình 3.3: các chân trên arduino uno r3

7


H n 3 4 C ứ năn

ân tr n r u no uno r3

1.4 Arduino IDE
T

r u no IDE

B ớ 1: v o tr n w

r u no

( n 3 5)


H n 3 5: Tr n

u ủ

r u no

8


B ớ 2: C n mụ

ownlo

ểl

n

ơn tr n IDE t í

ợp ( n 3 6)

H n 3 6: m n

n l

n

ơn tr n IDE t í

ợp


B ớ 3: C n

ều

C 2 tùy
z p f l for non
m y, tùy
n tùy

n

n t í
o

ợp
ều

n W n ows l W n ows nst ll r v W n ows

m n nst ll Tùy

nt ứ2

on

n t ứ n ất ùn

ờ k ôn p


on

ờ l

m n ủ m y T ôn t

mn ủ
ờn

số

n t ứ n ất, tứ W n ows nst ll r

B ớ 4: T IDE
Ar u no
ownlo

r 2 lự

về ùn quy n

n,

p ( ontr ut

n 6 Ar u no mon muốn n
ãn , mứ quy n

o ồm




n

ỉ ownlo

về (just ownlo ) v

ownlo ), n

ùn n u

ợ t ể

ều k n ãy quy n

nở

p ủn

p t ấp n ất l 3USD ( n 3 7)

H n 3 7: tùy

n ownlo

IDE

9



5 Cà đặt IDE
S uk
n

n

t

về t

ợn f l Ar u noForV su lStu o ms

yfl

v l mn

ớ (hình 3.8)

H n 3 8:



ặt IDE

10


6 Cà đặt driver arduino uno r3
T

ớn

ớn
ẫn n y

ẫn


ặt tr n r v r
n

o

o r u no o r

n n o ùn t

mụ

ã



sẵn n n p n

ặt sẵn tron f l nén ZIP

Chọn Start Menu, click chuột phải "Computer", và chọn "Manage". (hình 3.9)

Hình 3.9: vào trình cài đặt driver


C n "D v
*Bo r N m *" p í

n

r" p í

ớ "Ot r

n tr , t m òn "Unknown
v

H n 3 10:
Cl k

u tp

v o "Unknown

v

" oặ "Ar u no

s" (Hình 3.10)

n rv r
v

n n ủ


r u no

" oặ "Ar u no *Bo r N m *" v

n

"Update Driver Software". (hình 3.11)
11


H n 3 11: C p n t r v r
S u

n "Brows my omput r for Dr v r softw r "

H n 3 12: x
Cuố

ùn

on Brows v t m

ịn
n t

ờn
mụ

ẫn


pn t rv r
ứ fl

r v r tron t

mu

r u no( ví ụ tr n m y ủ tơ l F:\Program Files\arduino-1.0.5\drivers) (hình 3.13)

12


H n 3 13:
N u w n ows

n t ôn

ờn

o n y ãy

ẫn

n rv r

n "Install this driver software anyway".

(hình 3.14)


H n 3 14:
t qu s u k

pn tt n

pn t rv r

ôn

H n 3 15:

pn tt n

ôn

13


2. NGƠN NGỮ LẬP TRÌNH
2.1 Cấu trúc ngơn ngữ lập trình
2.1.1 Cấu trúc chương trình
ơn tr n Ar u no

ợ t ot n

Đ u t n l fun t on s tup N sẽ
ợ s

ụn




o

l k ở t o

n

Fun t on t ứ
n
s u

y, s u k
t ự

t n ữn

n tron

ơn tr n

l loop Đây l

n l to n

n ấn C ều

t ờ

o


n

ã

ốt lõ ủ m

fun t on s tup ã
nk

fun t on

y v o lú k ở t o -

o Ar u no
n

ở ít n ất

ỉ m t l n uy n ất và

ợ k t nố v ở âu, ũn n

ơn tr n Ar u no

y xon , fun t on loop sẽ
oặ l

y qu tất


ị mất n uồn oặ

n ể o n t n m t loop p ụ t u

Ar u no

ôn tắ r s t
v op n o

o ,



ứ tron n
D ớ

ây l m t sơ ồ m n

H n 3 16: ấu trú

ớ tron m t



ơn tr n v

ơn tr n :

ều k ển ùn


r u no

Ví ụ 3 1:
14


C ún t

ãy ùn x m o

ợ v tn

t

D ớ

ây l n

ơn tr n Bl nk v x m

function setup và loop

n o n é!
un fun t on s tup:

void setup() {
// initialize the digital pin as an output.
// Pin 13 has an LED connected on most Arduino boards:
pinMode(13, OUTPUT);
}


C

òn

ắt

ún k ơn

u vớ //

ợ t

ín l

S u

,t x m

nl

ịn

omm nt

l n Ar u no V v y tron t ự t ,

fun t on s tup n y Đ l
C ân 13


ỉ ơn

ân

òn l n "T

tl p

ân 13 t n

t í


on



,v

m t òn

o

tron

u r (output)"

m t èn ED built-in.
n fun t on loop():


void loop() {
digitalWrite(13, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(13, LOW); // set the LED off
delay(1000); // wait for a second
}

2.1.2 Biên dịch và nạp chương trình
B n sẽ

n 3 t ứ s u:

Arduino IDE
Mạch Arduino UNO R3

15


Dây cáp USB 2 đầu Type A-B

Hãy tu n tự t ự

n t o từn

ớ t o

ớn

ẫn s u


Bước 1: Kết nối Arduino UNO R3 vào máy tính

Hình 3.17: kết nối arduino với pc

Bước 2: Tìm cổng kết nối của Arduino Uno R3 với máy tính
Ar u no Uno R3 k t nố vớ m y tín , n
(Communication port - ổn
qu l

t ôn qu

ổn CO
nhau,

np

B n mở

ữ l u o) ể m y tín v

ổn này. W n ows

n

ợ s

mở

ứ năn D v


sổ Run v

ụn

t ể qu n lí

ể m y tín v m
n

sẽ s
om

ụn

m t ổn

t ể truyền t

n 256 ổn CO
Ar u no UNO R3

Để t m

CO
ữl u


o t p vớ

r ủ W n ows


õ l n mmc devmgmt.msc.

Hình 3.18: khởi động msc

16


S u

ấm Ent r,

sổ Device Manager sẽ

n l n.

Hình 3.18: cửa sổ msc device manager

ở mụ Ports (COM & LPT),

n sẽ t ấy ổn CO

Ar u no Uno R3

n k t

nố

Hình 3.19: Xác định tên cổng com giao tiếp với arduino uno


Cổn k t nố ở ây l COM3.
17


T ôn t

ờn , tron n ữn l n k t nố t p t o, W n ows sẽ s

CO 3 ể k t nố n n

n k ôn

nt ự

nt mt ot

t m ổn CO

ụn l

ổn

n y nữ

Bước 3: Cấu hình phiên làm việc cho Arduino IDE
Vào menu Tools -> Board ->

n Arduino Uno

Hình 3.20: chọn loại kit arduino đang sử dụng


Vào menu Tools -> Serial Port ->

n ổn Ar u no

n k t nố vớ m y tín



m y ủ m n l COM3.

18


Hình 3.21: chọn cổng com đang kết nối arduino

X

n n ổn CO

ủ Ar u no IDE ở

ớ ùn

np

sổ l m v

Hình 3.22: xác nhận đã kết nối cổng com


n AVR ISP

Vào menu Tools -> Programmer ->

Hình 3.23: chọn kiểu nạp chương trình

B ớ 4: n p

ơn tr n

Bấm tổ ợp p ím Ctrl + U ể t
t ấy IDE x

n n ã l p tr n t n

ơn tr n l n m
ôn n

n

Ar u no Uno R3 B n sẽ


19


Hình 3.24: nạp code thành cơng

2.2 Vào ra dữ liệu
2.2.1 xuất dữ liệu ra một pin

Để xuất ữ l u r m t p n tr n r u no t
X

ịn

l mv

nt ự

n

ớ s u:

ủ p n l out t ôn qu l n

pinMode(pin, mode)
P n: l
mo :
G

ân muôn xuất ữ l u
trị l OUTPUT

ữ l u r p n t ôn qu l n
digitalWrite(pin,value)
P n: l
v lu :

ân muôn xuất ữ l u
trị l 0( OW) oặ 1(HIGHT)


Ví ụ 3 2:
void setup() {
20


// put your setup code here, to run once:
pinMode(8,OUTPUT);
}

void loop() {
// put your main code here, to run repeatedly:
digitalWrite(8,HIGH);
delay(1000);
digitalWrite(8,LOW);
delay(1000);
}
2.2.2 Đọc dữ liệu từ một port
Để xuất ữ l u r m t p n tr n r u no t
X

ịn

l mv

nt ự

n

ớ s u:


ủ p n l out t ôn qu l n

pinMode(pin, mode)

G

P n: l

ân muôn xuất ữ l u

mo :

trị l INPUT

ữ l u r p n t ôn qu l n
X = digitalRead(pin)
P n: l
X: là m t

ân muôn xuất ữ l u
nn o
21


×