Académique Documents
Professionnel Documents
Culture Documents
KHAÛO SAÙ
T TAÄP LEÄ
NH VÑK
HOÏ MCS - 51
1. TOÅ
NG QUAN
2. NHÖÕ
NG KYÙHIEÄ
U QUY ÖÔÙ
C
3. CAÙ
C PHÖÔNG PHAÙ
P XAÙ
C ÑÒ
NH ÑÒ
A CHÆ
4. KHAÛ
O SAÙ
T TAÄ
P LEÄ
NH
5. BAÛ
NG TOÙ
M TAÉ
T TAÄ
P LEÄ
NH
6. GIÔÙ
I THIEÄ
U CHÖÔNG TRÌNH BIEÂ
N DÒ
CH KEIL
7. NAÏP CHÖÔNG TRÌNH CHO VI ÑIEÀ
U KHIEÅ
N
1. TOÅNG QUAN VEÀ TAÄP LEÄNH CUÛA HOÏ VI ÑIEÀU KHIEÅN MCS-51
Taäp leänh cuûa moät hoï vi ñieàu khieån laø taäp hôïp caùc leänh maø
vi ñieàu khieån thuoäc hoï aáy coù theå thöïc hieän ñöôïc. Maõ cuûa moät
leänh (ví duï ñoái vôùi hoï MCS-51) laø 1 soá nhò phaân 8 bit (töùc 1 byte).
Ngoaøi maõ leänh, ñoâi khi coøn coù caùc döõ lieäu keøm theo leänh. Do
ñoù moät leänh thöôøng chieám töø 1 ñeán 3 byte trong boä nhôù. Ñoái vôùi
hoï MCS-51, taäp leänh coù taát caû 255 leänh goàm : 139 leänh 1 byte; 92
leänh 2 byte vaø 24 leänh 3 byte. Taäp leänh coù theå taïm phaân thaønh 5
nhoùm nhö sau :
Nhoùm leänh chuyeån vaø trao ñoåi döõ lieäu.
Nhoùm leänh logic
Nhoùm leänh tính toaùn
Nhoùm leänh ñieàu khieån reõ nhaùnh
Nhoùm leänh xöû lyù bit
Ñeå hieåu ñöôïc töøng leänh trong taäp leänh, caàn phaûi hieåu yù nghóa
cuûa caùc “kyù hieäu ñaïi dieän”. Vì cuù phaùp cuûa moãi leänh trong taäp
ñöôïc cho ôû daïng toång quaùt nhaát neân caàn duøng nhöõng “kyù hieäu
ñaïi dieän” maø kyù hieäu ñoù seõ ñöôïc thay theá baèng moät döõ lieäu cuï
theå khi duøng leänh ôû moät tröôøng hôïp cuï theå.
51
2. NHÖÕNG KYÙ HIEÄU QUY ÖÔÙC
Trong quaù trình hoaït ñoäng cuûa vi ñieàu khieån, hoaït ñoäng
chuyeån döõ lieäu laø hoaït ñoäng thöôøng xuyeân nhaát. Trong quaù trình
naøy, caàn phaûi xaùc ñònh ñích (nôi maø döõ lieäu seõ ñöôïc löu vaøo) vaø
nguoàn (laø nôi copy döõ lieäu).
Trong cuù phaùp cuûa leänh, ñích luoân ñöôïc vieát tröôùc vaø sau ñoù
laø nguoàn. Ñích vaø nguoàn caùch nhau bôûi daáu phaåy (,). Cuù phaùp
laø : ñích,nguoàn
Ví duï: MOV 03h,05h laø leänh chuyeån döõ lieäu töø ñòa chæ 05h
ñeán ñòa chæ 03h
Coù moät quy taéc chung laø : Khi ñích hoaëc nguoàn ñaõ coù teân
(gioáng nhö nhaø ñaõ coù chuû) thì coù theå laáy teân thay cho ñòa chæ. Ví
52
duï nhaø anh Huøng coù ñòa chæ laø 254 Lyù Thaùi Toå. Ta coù theå noùi :
Toâi ñeán 254 Lyù Thaùi Toå hoaëc
Toâi ñeán nhaø anh Huøng ñeàu coù yù nghóa nhö
nhau.
Tuy nhieân ñieàu naøy chæ ñuùng neáu chæ coù 1 anh Huøng maø thoâi.
Neáu coù hai anh Huøng thì hai caâu treân laø khoâng töông ñöông.
Caùch xaùc ñònh ñòa chæ baèng caùch khai baùo ñòa chæ
ñöôïc goïi laø caùch xaùc ñònh ñòa chæ tröïc tieáp.
Ví duï : MOV 03h,05h
03h vaø 05h laø caùc ñòa chæ tröïc tieáp
Caùch xaùc ñònh ñòa chæ baèng caùch goïi teân cuûa nôi
töông öùng vôùi ñòa chæ ñöôïc goïi laø caùch ñònh ñòa chæ
duøng teân. Caùch naøy chæ ñöôïc aùp duïng khi trong heä thoáng
khoâng coù caùc ñòa chæ truøng teân. Noùi caùch khaùc, moãi teân chæ
töông öùng vôùi moät ñòa chæ duy nhaát.
Trong heä thoáng vi ñieàu khieån, caùch ñònh ñòa chæ duøng teân ñöôïc
duøng haàu nhö baát cöù khi naøo ñòa chæ ñaõ coù teân. Ñieàu naøy seõ
coù lôïi cho ngöôøi laäp trình. Chöông trình bieân dòch sau ñoù seõ phaûi
ñoåi teân thaønh ñòa chæ tröïc tieáp.
Ví duï: Thanh ghi ôû ñòa chæ E0h coù teân laø A
Hai leänh sau laø töông ñöông :
MOV E0h,#20h (20h sau daáu # chính laø döõ lieäu, 20h =
0010 0000)
MOV A,#20h (caùch vieát naøy ñôn giaûn vaø töôøng minh
hôn).
Khi noäi dung trong moät thanh ghi naøo ñoù ñöôïc duøng
laøm ñòa chæ thì caùch xaùc ñònh naøy ñöôïc goïi laø ñònh
ñòa chæ giaùn tieáp.
Ví duï: Trong thanh ghi R1 coù chöùa döõ lieäu : 0010 0101 = 25h
Leänh MOV A,@R1 seõ töông ñöông vôùi leänh
MOV A,25h
Caùch vieát thöù 2 laø chæ ra tröïc tieáp nôi copy döõ lieäu. Caùch vieát
thöù nhaát duøng noäi dung trong thanh ghi R1 laøm ñòa chæ nôi copy
döõ lieäu.
Ngoaøi ra coù coù kieåu ñònh ñòa chæ duøng addr 11 vaø addr
16
Kieåu addr 11 chæ ñöôïc duøng cho leänh ACALL vaø AJMP
ACALL laø leänh goïi chöông trình con
AJMP laø leänh nhaûy (leänh reõ nhaùnh)
53
Caáu truùc laø : ACALL addr11 (ñoái vôùi leänh goïi chöông trình con)
vaø
AJMP addr 11 (ñoái vôùi leänh nhaûy)
ÔÛ tröôøng hôïp cuï theå : addr 11 seõ ñöôïc thay theá baèng soá 11 bit.
Khi thöïc hieän leänh, soá 11 bit naøy seõ thay cho 11 bit thaáp trong
thanh ghi PC (caùc bit cao trong thanh ghi PC khoâng ñoåi). Khi ñoù moät
ñòa chæ môùi ñöôïc xaùc ñònh, Ñoù laø ñòa chæ maø vi ñieàu khieån seõ
troû ñeán ñeå laáy leänh sau khi thöïc hieän xong leänh ACALL hoaëc
AJMP.
54
thanh ghi A.
MOVX Duøng ñeå trao ñoåi döõ lieäu giöõa thanh ghi A
ñích,nguoàn vôùi boä nhôù RAM ngoaøi. Döõ lieäu coù theå töø
A ñeán RAM ngoaøi hoaëc ngöôïc laïi. Leänh naøy
khoâng ñöôïc duøng khi heä thoáng khoâng duøng
boä nhôù RAM ngoaøi.
Chuyeån döõ lieäu giöõa caùc vò trí trong RAM noäi (MOV)
SÔ ÑOÀ CHUYEÅN DÖÕ LIEÄU VÍ DUÏ YÙ NGHÓA
MOV A,R3 Döõ lieäu trong A →
FF MOV R3,A R3
Thanh ghi A
Döõ lieäu trong R3 →
MOV A
E0
A,90h
Döõ lieäu trong oâ
MOV nhôù coù ñòa chæ
90h,A 90h → A
OÂnhôù
Döõ lieäu trong A →
MOVA,Rn MOV P1,A
oâ nhôù coù ñòa chæ
MOV Rn,A 90h
MOV A,P1
MOVdirect,direct
MOV direct,Rn Döõ lieäu trong A →
OÂnhôù MOVRn,direct oâ nhôù coù teân laø
MOV P1
03h,05h Döõ lieäu trong oâ
nhôù coù teân laø P1
MOVdirect,Rn
→ A
MOVRn,direct
55
FF FF
OÂnhôù OÂnhôù
1. Noä
i dung trong thanh ghi Ri ñöôïc 1. Noä
i dung trong thanh ghi Ri ñöôïc
duø
ng laø
m ñòa chæxaùc ñònh oânhôù duø
ng laø
m ñòa chæxaùc ñònh oânhôù
Thanh ghi Ri (i=0,1) Thanh ghi Ri (i=0,1)
00 00
56
FF MOV Naïp 05h → R1
R1,#05h
Data (8 bit) Noäi dung trong R1
MOV (05h) ñöôïc duøng
OÂnhôù
@R1,#09h laøm ñòa chæ xaùc
2. Döõlieä
u ñöôïc naïp ñònh oâ nhôù. Döõ
vaøo oânhôù
lieäu 09h ñöôïc naïp
1. Noäi dung trong Ri
vaøo oâ nhôù ñaõ
Thanh ghi Ri (i=0,1)
ñöôïc duøng ñeåxaù
c ñònh ñöôïc xaùc ñònh
ñòa chæoânhôù
(tröôøng hôïp naøy laø
oâ nhôù coù ñòa chæ
00
05h). Sau hai leänh :
MOV R1,#05h vaø MOV
@R1,#09h thì noäi
dung trong oâ nhôù ôû
ñòa chæ 05h laø 09h.
Leänh PUSH direct vaø POP direct ñaõ trình naøy trong chöông 2
cuõng thuoäc nhoùm leänh chuyeån döõ lieäu.
Leänh PUSH direct laø leänh chuyeån döõ lieäu ôû oâ nhôù coù ñòa
chæ direct vaøo 1 oâ nhôù trong vuøng nhôù ngaên xeáp. Ñòa chæ nôi
löu döõ lieäu ñöôïc xaùc ñònh baèng noäi dung hieän taïi cuûa PC
coäng theâm 1.
Leänh POP direct laø leänh chuyeån döõ lieäu töø 1 oâ nhôù trong
vuøng nhôù ngaên xeáp vaøo oâ nhôù coù ñòa chæ direct. Nôi copy
döõ lieäu ñöôïc xaùc ñònh baèng noäi dung hieän taïi cuûa PC tröø ñi
1.
Chuyeån döõ lieäu töø ROM noäi → RAM noäi (MOVC)
Trong laäp trình, ta coù theå löu vaøo boä nhôù ROM moät baûng döõ
lieäu (ví duï baûng döõ lieäu maõ hieån thò LED 7 ñoaïn) ñeå khi thi haønh
chöông trình thì laàn löôït xuaát ra caùc döõ lieäu ñaõ löu. Vieäc naøy
thöôøng caàn thieát trong ñieàu khieån hieån thò LED 7 ñoaïn hoaëc LED ma
traän theo phöông phaùp queùt. Ví duï ñeå ñieàu khieån 4 LED 7 ñoaïn ñeå
hieån thò soá 1954 theo phöông phaùp queùt, ngöôøi ta duøng maïch phaàn
cöùng nhö sau :
57
JP1
1
2
C3
Power Supply 10uF Reset
a b c d e f g a b c d e f g a b c d e f g a b c d e f g
R2 R1
. . . .
10k 150
f
a
b
d
e
a
b
d
e
a
b
d
e
a
b
d
e
g
c
c
0 AT89C51
U1
40
1 39 a
P1.0 P0.0/AD0
VCC
2 38 b
3 P1.1 P0.1/AD1 37 c
4 P1.2 P0.2/AD2 36 d
5 P1.3 P0.3/AD3 35 e
K
6 P1.4 P0.4/AD4 34 f
P1.5 P0.5/AD5 LED0 LED1 LED 2 LED 3
7 33 g
8 P1.6 P0.6/AD6 32
P1.7 P0.7/AD7
9 31
RST EA 30
10 ALE 29 Q0 Q1 Q2 Q3
11 P3.0/RXD PSEN C2383 C2383 C2383 C2383
12 P3.1/TXD 28 R3 R3 R3 R3
13 P3.2/INT0 P2.7/A15 27
14 P3.3/INT1 P2.6/A14 26 1k 1k 1k 1k
15 P3.4/T0 P2.5/A13 25 L0
16 P3.5/T1 P2.4/A12 24 L3 L1 0 0 0 0
17 P3.6/WR P2.3/A11 23 L2 L2
P3.7/RD P2.2/A10 22 L1 L3
18 P2.1/A9 21 L0
XTAL2 P2.0/A8
12M
19
XTAL1
GND
C1 C2
33p 33p
20
a a
b f b f f b
Soá g g g
hieån c c c c
thò d d
Döõ g f e d c b a g f e d c b a g f e d c b a g f e d c b a
0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 1 0
lieäu
0 6 6 F 6 D 6 6
ñieàu
khieån
Ñeå hieån thò soá 1954 theo phöông phaùp queùt, vi ñieàu khieån phaûi
xuaát tín hieäu lieân tuïc theo chu kyø. Moãi chu kyø queùt goàm coù 4 thôøi
ñoaïn :
Trong thôøi ñoaïn 1, chæ hieån thò LED 0. Hieån thò soá 1
Trong thôøi ñoaïn 2, chæ hieån thò LED 1. Hieån thò soá 9
Trong thôøi ñoaïn 3, chæ hieån thò LED 2. Hieån thò soá 5
Trong thôøi ñoaïn 4, chæ hieån thò LED 3. Hieån thò soá 4
Sau ñoù quaù trình ñieàu khieån seõ baét ñaàu laïi.
a a
b f b f f b
Soá g g g
hieån c c c c
thò d d
Döõ g f e d c b a g f e d c b a g f e d c b a g f e d c b a
0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 1 0
lieäu
0 6 6 F 6 D 6 6
xuaát ôû
P0
58
Döõ L3 L2 L1 L0 L3 L2 L1 L0 L3 L2 L1 L0 L3 L2 L1 L0
0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0
lieäu
0 1 0 2 0 4 0 8
xuaát ôû
P2
Thôøi Thôøi ñoaïn Thôøi ñoaïn Thôøi ñoaïn Thôøi ñoaïn
gian 1 2 3 4
Trong moät chu kyø queùt chæ coù 1 LED saùng. Trong tröôøng hôïp
duøng 4 LED nhö ví duï treân thì moãi LED coù thôøi gian saùng = ¼ chu kyø
queùt; tính ra ñoä saùng trung bình = ¼ so vôùi möùc saùng lieân tuïc. Neáu
thöïc hieän nhieàu chu kyø queùt thì caùc LED seõ saùng nhaáp nhaùy. Neáu
soá laàn nhaáp nhaùy nhieàu hôn 25 laàn/giaây thì gaàn nhö thaáy LED
saùng lieân tuïc. Khi ñoù moät soá saùng nhaáp nhaùy seõ troâng thaáy
gaàn nhö soá ñoù saùng lieân tuïc. Keát quaû laø nhìn thaáy toaøn boä daõy
soá.
Phöông phaùp queùt coù öu ñieåm laø tieát kieäm ñöôïc soá ñöôøng tín
hieäu ñieàu khieån. Tuy nhieân nhöôïc ñieåm laø khi soá LED taêng leân thì
ñoä saùng trung bình cuûa moãi LED seõ giaûm xuoáng. Khi ñoù ñeå taêng
ñoä saùng trung bình, doøng ñieän qua LED caàn phaûi lôùn hôn so vôùi
tröôøng hôïp cho LED saùng lieân tuïc. Tuy nhieân caàn löu yù möùc toái ña
cho pheùp ñeå khoâng laøm hoûng LED vaø vi ñieàu khieån khoâng bò quaù
taûi. Coù theå duøng maïch ñeäm ñeå traùnh quaù taûi cho vi ñieàu khieån.
Vcc Vcc
R1
10k
R R2 Q2
Out B548
R 100
max =15mA Out max =800mA
Q1
2.2k C2383
Microcontroller Microcontroller Load
MCS-51 MCS-51
GND GND
Döõ lieäu ñieàu khieån caàn xuaát ra ôû PORT 0 trong ví duï treân coù
theå ñöôïc naïp vaøo ROM ñeå khi thi haønh chöông trình thì ñoïc döõ lieäu
naøy ra. Vuøng nhôù ñeå löu baûng döõ lieäu thöôøng choïn laø vuøng cuoái
cuøng ngay sau leänh cuoái cuûa chöông trình. Khi vieát chöông trình, laäp
trình vieân phaûi khai baùo nhaõn hoaëc ñòa chæ nôi baét ñaàu cuûa vuøng
nhôù döõ lieäu naøy.
VÒ TRÍ CUÛA BAÛNG DÖÕ MAÃU CHÖÔNG YÙ NGHÓA
LIEÄU TRÌNH
59
FLASHROM
ORG 0000h Khai baùo nôi löu
byte maõ leänh
0FFF
Leänh 1 ñaàu tieân
Leänh 2
Vuø
ng nhôù …
coø
n troá
ng
…
Ñòa chækhôû
i ñaà
u cuû
a
…
vuø
ng nhôùdöõlieä
u 66
Leänh cuoái
6D
6F ORG #data 16
#data 16 06
Khai baùo nôi
DB baét ñaàu vuøng
06h,06Fh,06Dh,66 nhôù döõ lieäu
Vuø
ng nhôùlöu
chöông trình
h Khai baùo baûng
döõ lieäu
END
0000 Keát thuùc
chöông trình
Ñeå thöïc hieän böôùc 1, ngöôøi ta phaûi naïp vaøo thanh ghi DPTR (16
bit) ñòa chæ cuûa oâ nhôù mang döõ lieäu ñaàu tieân. Giaû söû oâ nhôù
mang döõ lieäu ñaàu tieân coù ñòa chæ laø 0060h thì leänh : MOV
DPTR,#0060h seõ naïp ñòa chæ 0060h vaøo thanh ghi DPTR. Sau ñoù
naïp cho thanh ghi A soá 00h baèng caùch duøng leänh : MOV A,#00h.
Cuoái cuøng laø duøng leänh : MOVC A,@A+DPTR
Leänh cuoái naøy seõ laáy noäi dung trong A coäng vôùi noäi dung
trong DPTR vaø keát quaû duøng ñeå xaùc ñònh oâ nhôù löu döõ
lieäu, sau ñoù döõ lieäu ñöôïc copy vaø löu vaøo thanh ghi A. Ñaây
chính laø caùch xaùc ñònh ñòa chæ giaùn tieáp.
Ñeå thöïc hieän böôùc 2, ví duï ñeå chuyeån döõ lieäu töø A ra PORT 0,
chæ caàn duøng leänh: MOV P0,A
Ñeå chuyeån döõ lieäu tieáp theo ra PORT 0, caàn thöïc hieän caùc tieáp
theo nhö sau :
MOV A,#01h
MOV DPTR,#0060h
MOVC A,@A+DPTR
MOV P0,A
Ñeán ñaây, ta ñaõ laøm roõ hoaït ñoäng cuûa leänh MOVC A,@A+DPTR.
Leänh naøy cuõng ñöôïc söû duïng vôùi thanh ghi PC, caáu truùc leänh laø :
MOVC A,@A+PC
Ñieàu khaùc bieät giöõa hai leänh treân laø tröôùc khi thöïc hieän leänh :
60
Ta coù theå naïp döõ lieäu vaøo thanh ghi DPTR
Nhöng khoâng theå naïp döõ lieäu vaøo thanh ghi PC.
Ñòa chæ naïp vaøo thanh ghi DPTR laø ñòa chæ cuûa oâ nhôù löu döõ
lieäu ñaàu tieân trong vuøng nhôù döõ lieäu. Vuøng nhôù döõ lieäu khoâng
ñöôïc choàng leân vuøng nhôù chöông trình maø cuõng khoâng neân naèm
caùch xa vuøng nhôù chöông trình (khi ñoù seõ khoâng taän duïng heát boä
nhôù). Vì vaäy nôi baét ñaàu cuûa vuøng nhôù döõ lieäu neân laø vò trí keá
tieáp nôi löu leänh cuoái cuøng trong chöông trình. Vieäc tính toaùn hôïp lyù
ñòa chæ ñaàu cuûa vuøng nhôù döõ lieäu khoâng deã bôûi vì phaûi tính
toaùn xem trong chöông trình coù bao nhieâu leänh vaø moãi leänh cuï theå
chieám bao nhieâu byte. Chính vì vaäy, vieäc tín toaùn naøy ñöôïc thöïc
hieän bôûi trình bieân dòch. Laäp trình vieân chæ vieäc gaùn moät teân
(töùc nhaõn) ngay tröôùc vò trí maø döõ lieäu ñaàu tieân ñöôïc löu (ngay
tröôùc töø DB).
Ví duï nhö sau :
ORG 0000h ; Khai baùo ñòa chæ ñaàu laø
0000h
Leänh 1
Leänh 2
…
…
MOV A,#data ; Naïp döõ lieäu “Offset” vaøo
A
MOV DPTR,#du_lieu ; Naïp ñòa chæ ñaàu vuøng
nhôù
döõ lieäu vaøo thanh ghi
DPTR
MOV A,@A+DPTR ; Copy döõ lieäu ôû ñòa chæ
xaùc ñònh bôûi
A+DPTR vaøo A
…
Leänh cuoái
du_lieu: DB 06h,06Fh,06Dh,66h ; Khai
baùo baûng döõ lieäu
END ; Baùo keát thuùc chöông
trình
Trong tröôøng hôïp naøy khoâng caàn khai baùo nôi baét ñaàu cuûa
vuøng nhôù döõ lieäu. Offset ñöôïc hieåu laø ñoä leäch. Ví duï : tín hieäu
sin chuaån laø coù daïng ñoái xöùng qua truïc hoaønh. Tín hieäu sin chuaån
ñöôïc coäng vôùi thaønh phaàn DC = 2V seõ bò dôøi leân phía treân truïc
hoaønh moät khoaûng töông öùng baèng 2V. Khoaûng dôøi naøy ñöôïc hieåu
laø thaønh phaàn Offset.
61
time 2 time
0 0
Tín hieä
u sin chuaå
n Tín hieä
u sin chuaå
n + Offset 2V
Trao ñoåi döõ lieäu giöõa thanh ghi A vaø RAM ngoaøi (MOVX)
Nhoùm naøy coù 4 leänh vaø chæ ñöôïc duøng khi heä thoáng coù söû
duïng boä nhôù RAM ngoaøi.
LEÄNH YÙ NGHÓA
MOVX A,@Ri Laáy noäi dung trong thanh ghi Ri laøm ñòa chæ
xaùc ñònh oâ nhôù RAM ngoaøi, sau ñoù döõ lieäu
trong oâ nhôù ñöôïc copy vaø löu vaøo A.
(A → RAM ngoaøi).
MOVX Laáy noäi dung trong thanh ghi DPTR laøm ñòa
A,@DPTR chæ xaùc ñònh oâ nhôù RAM ngoaøi, sau ñoù döõ
lieäu trong oâ nhôù ñöôïc copy vaø löu vaøo A.
(A → RAM ngoaøi).
MOVX @Ri,A Laáy noäi dung trong thanh ghi Ri laøm ñòa chæ
xaùc ñònh oâ nhôù RAM ngoaøi, sau ñoù döõ lieäu
trong A ñöôïc copy vaø löu vaøo oâ nhôù RAM
ngoaøi ñaõ xaùc ñònh.
(R ngoaøi → A)
MOVX Laáy noäi dung trong thanh ghi DPTR laøm ñòa
@DPTR,A chæ xaùc ñònh oâ nhôù RAM ngoaøi, sau ñoù döõ
lieäu trong A ñöôïc copy vaø löu vaøo oâ nhôù RAM
ngoaøi ñaõ xaùc ñònh.
(RAM ngoaøi → A).
62
keát quaû löu vaøo A
OR ORL ORL Thöïc hieän pheùp OR noäi dung
A,#03h trong A vôùi döõ lieäu 03h, keát
quaû löu vaøo A
EX-OR XRL XRL Thöïc hieän pheùp EX-OR noäi
A,#03h dung trong A vôùi döõ lieäu 03h,
keát quaû löu vaøo A
Döõlieä
u thöùnhaá
t 1 0 1 0 1 0 1 1
AND
Pheùp AND
Döõlieä
u thöùhai 0 1 1 1 0 0 0 1
Keá
t quaûpheù
p AND =0 0 1 0 0 0 0 1
Döõlieä
u thöùnhaá
t 1 0 1 0 1 0 1 1
OR
Pheùp OR
Döõlieä
u thöùhai 0 1 1 1 0 0 0 1
=
Keá
t quaûpheù
p OR 1 1 1 1 1 0 1 1
Döõlieä
u thöùnhaá
t 1 0 1 0 1 0 1 1
EX-OR
Pheùp EX-OR 0 1 1 1 0 0 1
Döõlieä
u thöùhai 0
=
Keá
t quaûpheù
p EX-OR 1 1 0 1 1 0 1 0
TEMP 1
ANL ñích,nguoàn
Ñích
ORL ñích,nguoàn
ALU
XRL ñích,nguoàn
Nguoà
n
TEMP 2
63
Hai döõ lieäu 8 bit ñöôïc copy töø ñích vaø nguoàn, sau ñoù ñöa ñeán
khoái ALU ñeå thöïc hieän pheùp logic töông öùng vôùi leänh. Keát quaû sau
khi thöïc hieän xong seõ thay theá döõ lieäu trong ñích. Ñích thöôøng duøng
laø thanh ghi A, coøn nguoàn coù theå laø Rn, oâ nhôù coù ñòa chæ tröïc
tieáp, oâ nhôù coù ñòa chæ giaùn tieáp, moät döõ lieäu ñöôïc löu trong ROM.
Coù moät tröôøng hôïp ngoaïi leä laø duøng döõ lieäu trong A laøm
nguoàn hoaëc döõ lieäu xaùc ñònh laøm döõ lieäu nguoàn, ñích laø moät oâ
nhôù trong RAM coù ñòa chæ tröïc tieáp.
Caùc leänh ORL vaø XRL cuõng töông töï nhö treân.
Pheùp NOT chæ thöïc hieän ñöôïc vôùi noäi dung trong thanh ghi A
Cuù phaùp cuûa leänh laø : CPL A
Sau leänh naøy, caùc bit trong thanh ghi A bò ñaûo traïng thaùi.
64
NHOÙM LEÄNH TÍNH TOAÙN
Nhoùm leänh tính toaùn goàm caùc leänh : Coäng, tröø, nhaân, chia,
taêng, giaûm vaø leänh hieäu chænh Binary → BCD.
LEÄNH COÄNG :
Cuù phaùp : ADD ñích,nguoàn (Keát quaû cuûa pheùp coäng
seõ ñöôïc löu vaøo A)
ADD A,Rn
ADD A,direct
ADD A,@Ri
ADD A,#data
Hai soá nhò phaân 8 bit khi ñöôïc coäng vôùi nhau coù theå cho keát
quaû beù hôn, baèng hoaëc lôùn hôn 255. (255 laø giaù trò lôùn nhaát cuûa
soá nhò phaân 8 bit khi taát caû caùc bit ñeàu baèng 1). Tröôøng hôïp keát
quaû > 255, ta noùi raèng pheùp coäng bò traøn. Tröôøng hôïp naøy bit
C trong thanh ghi traïng thaùi seõ ñöôïc set baèng 1 vaø 8 bit thaáp
trong keát quaû cuûa pheùp coäng ñöôïc löu trong A.
Ví duï : Giaû söû A ñang chöùa döõ lieäu baèng 03h = 0000 0011 = 3
R2 ñang chöùa döõ lieäu baèng 14h = 0001 0100 = 20
Leänh ADD A,R2 seõ coù keát quaû laø : 0001 0111 = 23
Keát quaû naøy < 255 töùc laø khoâng bi traøn
Sau leänh coäng treân thì keát quaû 0001 0111 ñöôïc löu vaøo A vaø
côø C trong thanh ghi traïng thaùi khoâng ñöôïc set (töùc C = 0).
Ví duï 2 : Giaû söû A ñang chöùa döõ lieäu baèng A7h = 1010 0111 = 167
R0 ñang chöùa döõ lieäu baèng 95h = 1001 0101 = 149
Leänh coäng : ADD A,R0 seõ cho keát quaû laø : 1 0011 1100 = 316
Keát quaû > 255 vaø laø moät soá 9 bit.
Tröôøng hôïp naøy pheùp coäng bò traøn, côø C trong thanh ghi traïng
thaùi ñöôïc set (töùc C = 1). 8 bit thaáp cuûa keát quaû laø 0011
1100 ñöôïc löu vaøo thanh ghi A.
Sau khi thöïc hieän leänh coäng hai döõ lieäu, chöông trình coù theå
kieåm tra bit C ñeå bieát keát quaû cuûa pheùp coäng coù bò traøn hay
khoâng, töø ñoù quyeát ñònh thöïc hieän reõ nhaùnh chöông trình hay
khoâng.
65
Ví duï :
Leä
nh coä
ng 2 döõlieä
u ADD A,R0 ; coäng döõ lieäu trong A vôùi
döõ lieäu trong R0
JC rel ; rel laø nhaõn nôi chöông trình
Ñuù
ng
C =1 seõ nhaûy ñeán
Sai Leänh keá
Leä
nh keá
LEÄNH COÄNG HAI SOÁ 8 BIT VAØ COÄNG KEÁT QUAÛ VÔÙI BIT C
Cuù phaùp : ADDC ñích,nguoàn (Keát quaû cuûa pheùp coäng
seõ ñöôïc löu vaøo A)
ADDC A,Rn
ADDC A,direct
ADDC A,@Ri
ADDC A,#data
Hoaït ñoäng cuûa leänh ADDC cuõng töông töï nhö leänh ADD, ñieåm
khaùc nhau laø keát quaû sau khi coäng hai soá 8 bit seõ tieáp tuïc ñöôïc
coäng vôùi bit C ñeå coù keát quaû cuoái cuøng. Leänh coäng naøy neáu bò
traøn thì seõ set bit C (töùc C = 1 sau khi thöïc hieän leänh).
VÍ DUÏ VEÀ LEÄNH ADD VÍ DUÏ VEÀ LEÄNH ADDC
1 Bit C
0 0 1 0 0 1 1 1 Döõlieä
u1 0 0 1 0 0 1 1 1 Döõlieä
u1
1 0 0 1 0 1 0 1 Döõlieä
u2 1 0 0 1 0 1 0 1 Döõlieä
u2
1 0 1 1 1 1 0 0 Keá
t quaû(khoâ
ng traø
n) 1 0 1 1 1 1 0 1 Keá
t quaû(khoâ
ng traø
n)
1 Bit C
1 0 1 0 0 1 1 1 Döõlieä
u1 1 0 1 0 0 1 1 1 Döõlieä
u1
1 0 0 1 0 1 0 1 Döõlieä
u2 1 0 0 1 0 1 0 1 Döõlieä
u2
1 0 0 1 1 1 1 0 0 Keá
t quaû(bòtraø
n) 1 0 0 1 1 1 1 0 1 Keá
t quaû(bòtraø
n)
66
LEÄNH TRÖØ HAI SOÁ 8 BIT VAØ TRÖØ KEÁT QUAÛ CHO BIT C
Cuù phaùp : SUBB ñích,nguoàn (Keát quaû cuûa pheùp tröø seõ
ñöôïc löu vaøo A)
SUBB A,Rn
SUBB A,direct
SUBB A,@Ri
SUBB A,#data
Hoaït ñoäng cuûa leänh SUBB töông töï nhö leänh ADDC. Döõ lieäu ôû
ñích – döõ lieäu ôû nguoàn, sau ñoù keát quaû naøy seõ tröø cho bit C ñeå
ñöôïc keát quaû cuoái cuøng, löu trôû laïi vaøo ñích.
67
Töông töï nhöï leänh nhaân, leänh chia 2 soá 8 bit ñöôïc thöïc hieän vôùi
döõ lieäu ban ñaàu naèm trong A vaø B. Leänh DIV A,B seõ thöïc hieän
pheùp chia A/B. Keát quaû cuûa pheùp chia naøy goàm phaàn nguyeân vaø
soá dö. Phaàn nguyeân ñöôïc löu vaøo A vaø soá dö ñöôïc löu vaøo B.
Ví duï : A = 52h = 82
B = 0Ah = 10
A/B = 8 dö 2
Phaàn nguyeân laø 8 = 08h seõ löu trong A
Soá dö laø 2 = 02h seõ löu trong B
Sau pheùp chia DIV A,B ta coù : A = 08h vaø B = 02h.
68
Thanh ghi PORT
D a
i maõ
b MSB
C c
d
Giaû
B e
Thanh ghi A
f
A g 4 bit cao SoáBCD haø
ng chuïc
D a
i maõ
b
C c
d
Giaû
B e
f
A g
4 bit thaá
p SoáBCD haø
ng ñv
LSB
Theo caùch ñieàu khieån naøy, döõ lieäu naèm trong thanh ghi PORT laø
soá BCD 2 digit coù nghóa laø giaù trò nhoùm 4 bit thaáp ≤ 9; giaù trò
nhoùm 4 bit cao ≤ 9. Giaù trò cuûa nhoùm 4 bít thaáp seõ ñöôïc hieån thò
treân LED ñôn vò vaø giaù trò cuûa nhoùm 4 bit cao seõ ñöôïc hieån thò
treân LED haøng chuïc.
Giaûi thuaät ñieàu khieån nhö sau :
Leänh INC A seõ thöïc hieän pheùp toaùn A = A + 1.
Begin Tröôøng hôïp naøy döõ lieäu trong A coù theå
khoâng phaûi laø soá BCD. Ví duï neáu A = 0000
1001 thì sau leänh INC A ta coù
00 A A = 0000 1010
Boán bit thaáp trong A khoâng phaûi laø soá BCD
A =A +1 Leänh DA A coù nhieäm vuï hieäu chænh noäi dung
trong A thaønh soá BCD. Giaûi thuaät thöïc hieän
leänh DA A nhö sau.
XoaùcôøC
DA A S S
A3A2A1A0 >9 AC =1
Ñ Ñ
Delay
A =A +06h
A PORT
S S
A7A6A5A4 >9 C =1
S Ñ Ñ
Döø
ng
Ñ
A =A +60h
End
69
Ví duï 1 : A = 0001 1010 = 1Ah (4 bit thaáp > 9)
Khi thöïc hieän leänh : DA A, tröôøng hôïp naøy noäi dung cuûa A seõ
ñöôïc coäng theâm 06h = 0000 0110 vaø löu keát quaû trôû laïi A.
4 bit cao 4 bit thaá
p
0 0 0 1 1 0 1 0 1Ah (Keá
t quaûtrong A tröôù
c leä
nh DA A)
+ +
0 0 0 0 0 1 1 0 06h
= 0 0 1 0 0 0 0 0 =20h (Keá
t quaûtrong A sau leä
nh DA A)
1 0 1 0 0 0 0 1 A1h (Keá
t quaûtrong A tröôù
c leä
nh DA A)
+ +
0 1 1 0 0 0 0 0 60h
= 0 0 0 0 0 0 0 1 =01h (Keá
t quaûtrong A sau leä
nh DA A)
1 0 0 1 1 0 1 0 9Ah (Keá
t quaûtrong A tröôù
c leä
nh DA A)
+ +
0 0 0 0 0 1 1 0 06h
= 1 0 1 0 0 0 0 0 =A0h
+ +
0 1 1 0 0 0 0 0 60h
= 0 0 0 0 0 0 0 0 = 00h (Keá
t quaûtrong A sau leä
nh DA A)
Quaù trình hieäu chænh trong leänh DA A xaûy ra khi coù 1 trong 4
nguyeân nhaân :
1. Do bit AC = 1
70
2. Do 4 bit thaáp trong A laø A3A2A1A0 > 9
3. Do bit C = 1
4. Do 4 bit cao trong A laø A7A6A5A4 > 9
Ñeå leänh DA A chæ coù taùc duïng do nguyeân nhaân thöù 2 vaø
nguyeân nhaân thöù 4 (töùc laø chæ tieán haønh hieäu chænh khi noäi dung
trong A khoâng phaûi laø soá BCD) thì tröôùc khi thöïc hieän leänh DA A,
phaûi xoaù bit C vaø bit AC trong thanh ghi traïng thaùi. Thöôøng chæ caàn
xoaù bit C vì bit AC = 1 thöôøng ñi keøm vôùi A 3A2A1A0 > 9. Do ñoù caëp
leänh :
CLR C
DA A
thöôøng ñöôïc duøng thay vì chæ coù leänh :
DA A
NHOÙM LEÄNH ÑIEÀU KHIEÅN REÕ NHAÙNH
Reõ nhaùnh laø vieäc chöông trình khoâng thöïc hieän leänh keá maø
nhaûy ñeán thöïc hieän leänh ôû moät ví trí caùch xa vò trí cuûa leänh hieän
haønh. Reõ nhaùnh vì vaäy thöôøng ñöôïc goïi laø “nhaûy”. Vieäc löïa choïn
reõ nhaùnh chöông trình hay khoâng ñöôïc quyeát ñònh bôûi vieäc kieåm tra
moät ñieàu kieän. Chöông trình seõ reõ nhaùnh neáu pheùp kieåm tra cho
keát quaû ñuùng. Ví duï trong giaûi thuaät giaûi phöông trình baäc 2, vieäc
reõ nhaùnh seõ ñöôïc quyeát ñònh bôûi vieäc kieåm tra ñieàu kieän ∆ < 0.
Trong laäp trình cho vi ñieàu khieån hoï MCS-51, coù hai kieåu reõ
nhaùnh laø hay nhaûy laø nhaûy coù ñieàu kieän vaø nhaûy khoâng ñieàu
kieän.
Nhaûy coù ñieàu kieän phaûi keøm theo moät pheùp kieåm tra
(thöôøng laø pheùp so saùnh) vaø moät ñòa chæ nôi nhaûy ñeán. Caùc
leänh thuoäc loaïi naøy bao goàm :
JZ rel Nhaûy ñeán rel khi bit Z = 1
(Jump if Z)
JNZ rel Nhaûy ñeán rel khi bit Z = 0
(Jump if Not Z)
JC rel Nhaûy ñeán rel khi bit C = 1
(Jump if C)
JNC Nhaûy ñeán rel khi bit C = 0
(Jump if Not C)
JB bit,rel Nhaûy ñeán rel khi bit = 1
(Jump if Bit)
JNB bit,rel Nhaûy ñeán rel khi bit = 0
(Jump if Not Bit)
JBC bit,rel Nhaûy ñeán rel khi bit = 1, sau ñoù
(Jump if Bit and Clear) xoaù bit
CJNE A,direct,rel So saùnh döõ lieäu trong A vôùi döõ
(Compare and Jump if Not lieäu trong oâ nhôù coù ñòa chæ direct
Equal) vaø nhaûy ñeán rel khi 2 döõ lieäu
khaùc nhau.
CJNE A,#data,rel So saùnh döõ lieäu trong A vôùi data
(Compare and Jump if Not vaø nhaûy ñeán rel khi 2 döõ lieäu
71
Equal) khaùc nhau.
CJNE Rn,#data,rel So saùnh Rn vôùi data vaø nhaûy ñeán
(Compare and Jump if Not rel khi 2 döõ lieäu khaùc nhau.
Equal)
CJNE @Ri,#data,rel Laáy noäi dung trong Ri laøm ñòa chæ
(Compare and Jump if Not xaùc ñònh oâ nhôù, sau ñoù döõ lieäu
Equal) trong oâ nhôù so saùnh vôùi data vaø
nhaûy ñeán rel neáu 2 döõ lieäu
khaùc nhau.
DJNZ Rn,rel Giaûm Rn ñi moät ñôn vò vaø nhaûy
(Decrement and Jump if Not ñeán rel neáu keát quaû khaùc
Zero) khoâng
DJNZ direct,rel Giaûm noäi dung trong oâ nhôù coù
(Decrement and Jump if Not ñòa chæ direct ñi moät ñôn vò vaø
Zero) nhaûy ñeán rel neáu keát quaû
khaùc khoâng.
Nhaûy khoâng ñieàu kieän khoâng caàn pheùp kieåm tra, chæ caàn
chæ roõ nôi nhaûy ñeán. Tröôøng hôïp ñaëc bieät vôùi leänh trôû veà
töø chöông trình con (leänh RET) vaø leänh trôû veà töø chöông trình
con xöû lyù ngaét (leänh RETI) khoâng caàn ñòa chæ vì tröôùc khi
thöïc hieän caùc chöông trình con naøy, ñòa chæ trôû veà ñaõ ñöôïc
löu tröõ vaøo vuøng nhôù ngaên xeáp vaø seõ ñöôïc töï ñoäng traû laïi
khi thöïc hieän leänh RET hoaëc RETI. Caùc leänh thuoäc loaïi naøy bao
goàm :
ACALL Leänh goïi chöông trình con, chöông trình con khoâng
addr11 ñöôïc naèm caùch leänh goïi quaù 2 kbyte. Addr11 laø
11 bit ñòa chæ thaáp seõ thay theá cho 11 bit thaáp
trong thanh ghi PC ñeå chæ ra nôi nhaûy ñeán.
Addr11 cuõng coù theå thay baèng teân nhaõn chæ ra
nôi nhaûy ñeán.
LCALL Leänh goïi chöông trình con, chöông trình con coù
addr16 theå naèm ôû baát cöù vò trí naøo trong vuøng nhôù
64 kbyte. Addr16 laø 16 bit ñòa chæ seõ thay theá
cho 16 bit trong thanh ghi PC ñeå chæ ra nôi nhaûy
ñeán. Addr16 cuõng coù theå thay baèng teân nhaõn
chæ ra nôi nhaûy ñeán.
RET Leänh trôû veà chöông trình chính khi chöông trình
con thi haønh xong. Leänh naøy ñöôïc ñaët ôû doøng
cuoái cuøng trong chöông trình con.
RETI Leänh trôû veà chöông trình chính khi chöông trình
con phuïc vuï ngaét thi haønh xong. Leänh naøy ñöôïc
ñaët ôû doøng cuoái cuøng trong chöông trình con
phuïc vuï ngaét.
AJMP Leänh nhaûy ñeán moät ñòa chæ môùi caùch vò trí
addr11 hieän haønh khoâng quaù 2 kByte. Addr11 laø 11 bit
ñòa chæ thaáp seõ ñöôïc thay cho 11 bit thaáp trong
thanh ghi PC ñeå chæ ra nôi nhaûy ñeán. Addr11
72
cuõng coù theå thay baèng teân nhaõn chæ ra nôi
nhaûy ñeán.
LJMP Leänh nhaûy ñeán vò trí baát kyø trong vuøng nhôù
addr16 64 kByte. Addr16 laø 16 bit ñòa chæ seõ thay theá
cho 16 bit trong thanh ghi PC ñeå chæ ra nôi nhaûy
ñeán. Addr16 cuõng coù theå thay baèng teân nhaõn
chæ ra nôi nhaûy ñeán.
SJMP rel Leänh nhaûy ngaén. Chöông trình coù theå nhaûy tôùi
ñòa chæ cao hôn hoaëc nhaûy luøi veà ñòa chæ thaáp
hôn ñòa chæ leänh hieän haønh. Taàm nhaûy tôùi
hoaëc luøi khoâng caùch quaù 128 byte so vôùi ñòa
chæ hieän taïi. Rel laø teân nhaõn chæ ra nôi nhaûy
ñeán.
JMP Nhaûy ñeán ñòa chæ ñöôïc xaùc ñònh baèng noäi
@A+DPTR dung trong A coäng vôùi noäi dung trong DPTR.
5. BAÛNG TOÙM TAÉT TAÄP LEÄNH CUÛA VI ÑIEÀU KHIEÅN HOÏ MCS-51
74
[(*)(*)Ri∈EXR] Noäi dung trong oâ nhôù ∈ RAM ngoaøi
coù ñòa chæ xaùc ñònh bôûi noäi dung
trong thanh ghi Ri
[(*)(*)DPTR∈ Noäi dung trong oâ nhôù ∈ RAM ngoaøi
EXR] coù ñòa chæ xaùc ñònh bôûi noäi dung
trong thanh ghi DPTR
19 M A,@Ri [(*)(*)Ri∈EXR] → 1 2
OVX (*)A
75
20 M A,@DPTR [(*)(*)DPTR]∈EXR→ 1 2
OVX (*)A
21 M @Ri,A (*)A → [(*)(*)Ri∈ 1 2
OVX EXR]
22 M @DPTR,A (*)A→[(*)(*)DPTR∈ 1 2
OVX EXR]
76
(*)direct
40 ORL direct,# [(*)direct OR data] → 3 2
data (*)direct
C A7 A6 A5 A4 A3 A2 A1 A0
C A7 A6 A5 A4 A3 A2 A1 A0
A7 A6 A5 A4 A3 A2 A1 A0 C
A7 A6 A5 A4 A3 A2 A1 A0 C
77
A7 A6 A5 A4 A3 A2 A1 A0
78
72 DEC A [(*)A + 1] → (*)A 1 1
73 DEC Rn [(*)Rn + 1] → (*)Rn 1 1
74 DEC direct [(*)direct + 1] → 2 1
(*)direct
75 DEC @Ri [(*)(*)Ri + 1] → (*)(*)Ri 1 1
79
88 JNC rel Nhaûy khi bit C = 0 2 2
80
byte)
99 CLR C Xoaù bit C 1 1
10 CLR bit Xoaù bit ôû ñòa chæ 2 1
0 bit
10 S C Set bit C 1 1
1 ETB
10 S bit Set bit ôû ñòa chæ bit 2 1
2 ETB
Trình bieân dòch KEIL C51 laø 1 chöông trình laäp trình, moâ phoûng vi
ñieàu khieån ñöôïc söû duïng khaù phoå bieán, ñôn giaûn. Baïn coù theå
LOAD mieãn phí treân maïng. Caùc böôùc tieán haønh nhö sau :
Böôùc 1 :
Vaøo http:/www.google.com
Ñaùnh vaøo töø khoaù : Keil C51
Nhaán nuùt : Tìm vôùi Google
81
Böôùc 2 :
Click vaøo
ñaây
Böôùc 3 :
82
Choïn muïc
naøy
Böôùc 4 :
Choïn muïc
naøy
83
Böôùc 5 : Ñieàn ñaày ñuû caùc thoâng tin caù nhaân theo yeâu caàu vaø
choïn Submit
84
Böôùc 6 : Download veà maùy (chöông trình coù dung löôïng khoaûng
20Mbyte)
Click
vaøo
ñaây
85
Böôùc 1 : Khôûi ñoäng Keil uVision3 vaø choïn New Project (moät döï aùn
môùi)
86
Choïn No
87
Böôùc 5 : Choïn Save As ñeå löu File
88
Teân file coù phaàn môû roäng laø .asm (tröôøng hôïp chöông vieát chöông
trình baèng hôïp ngöõ : Assembly)
Böôùc 6 : Kích vaøo daáu + ôû ñaàu doøng Target 1, ñaët troû vaøo Source
Group 1 vaø kích nuùt phaûi, sau ñoù choïn Add Files to Group ‘Source Group
1’
89
Baám Add vaø sau ñoù laø Close ñeå ñoùng cöûa soå hieän haønh laïi.
Böôùc 9 : Khai baùo caùc tuyø choïn tröôùc khi bieân dòch chöông trình
sang maõ maùy.
Vaøo Project
Choïn Options for Target ‘Target 1’
90
Trong cöûa soå döôùi ñaây, choïn laïi taàn soá cuûa thaïch anh (Xtal) phuø
hôïp. Ví duï choïn laïi 12MHz.
91
Kích vaøo
ñaây Soá hieån thò ôû ñaây
cho bieát chöông
trình coù dung löôïng
bao nhieâu byte
Khoâng coù
khuyeán caùo
Chöông trình
khoâng coù loãi
Böôùc 11 : Chaïy moâ phoûng
Kích vaøo
ñaây
92
Choïn PORT 0
ñeå xem keát
quaû xuaát
93
Keát quaû sau khi chaïy moâ
phoûng, döõ lieäu xuaát ra
treân PORT 0 laø 0000 0011 =
03h (ñuùng vôùi yeâu caàu).
94
chaïy thaät. Vieäc naøy ñöôïc thöïc hieän ñôn giaûn theo caùc höôùng daãn
trong phaàn 7. File HEX maø trình bieân dòch taïo ra ñöôïc löu trong thö muïc
cuøng teân vôùi Flie chöông trình ñang soaïn thaûo. Ñöôøng daãn ñeán thö
muïc naøy ñöôïc hieån thò ôû goùc beân döôùi maøn hình trong quaù trình
chöông trình ñang ñöôïc moâ phoûng.
Caùc KIT naïp vi ñieàu khieån hieän nay ñöôïc baùn roäng raõi treân thò
tröôøng vôùi giaù khaù khoâng quaù ñaét. Coù loaïi KIT naïp ña naêng coù
theå naïp cho nhieàu hoï vi ñieàu khieån (AVR, PIC, hoï MCS-52, hoï MCS-51).
Coù loaïi KIT chæ ñöôïc thieát keá daønh rieâng cho moät hoï vi ñieàu khieån
naøo ñoù, caùc KIT loaïi naøy giaù reû hôn. Caùc baïn coù theå cho loaïi KIT
do nhoùm TM e-DESIGN thieát keá.
Slot gaén
caùp giao
tieáp vôùi Socket 40
maùy tính pins ñeå
qua coång gaén vi
COM ñieàu
khieån caàn
Ñeøn chæ naïp, löu yù
thò traïng gaén ñuùng
thaùi
(saùng khi Vi ñieàu
khieån chuû
ñieàu
khieån
Ñeøn hoaït ñoäng
POWER cuûa KIT
95
Daïng File naïp: Intel 8-bit HEX.
Keát noái vôùi maùy tính (PC)
Caáp nguoàn cho kit qua jack DC. LED POWER maøu ñoû saùng, LED xanh
taét.
Caém caùp noái vôùi coång COMx (x laø 1 hoaëc 2) vaø coång DB-9 cuûa
kit naïp.
Chaïy phaàm meàm EZDL4 trong ñóa CD keøm theo saûn phaåm khi
mua. Phaàn meàm seõ töï tìm coång COM vaø thieát bò.
Giao dieän nhö sau:
Löu yù: Khi chöa gaén chip vaøo ZIF Socket hoaëc Chip naïp khoâng
nhaän daïng ñöôïc phaàn meàm seõ coù hieän töôïng nhaáp nhaùy raát
nhanh taïi vò trí coù haøng chöõ “Identify target chip…” laø “try to
connect by COM1”. Tröôøng hôïp naøy thöïc ra laø KIT vaø phaàn meàm
ñaõ hoaït ñoäng toát. Baïn haõy laøm tieáp böôùc sau:
• Gaén Chip caàn naïp 89C51/52/55 vaøo ZIF Socket (löu yù laø chíp
caàn naïp gaén cuøng chieàu vôùi chíp MASTER U1 töùc laø chaân soá
1 naèm ôû höôùng caàn gaït cuûa ZIP Socket).
• Seõ coù giao dieän nhö sau (giaû söû gaén chip 89C52):
• Nhaán choïn vaøo oâ Lock ñeå khoùa choáng sao cheùp sau khi naïp
(Chip vaãn coù theå naïp laïi sau khi ñaõ bò khoùa).
• Nhaán Send ñeå tìm file HEX caàn naïp.
• Nhaán Read ñeå cheùp noäi dung trong Chip vaøo ñóa (neáu Chip ñaõ
bò khoùa thì keát quaû ñoïc ñöôïc chæ laø nhöõng kyù töï “FFFFF…”
-Khoâng söû duïng ñöôïc.
96
• Trong quaù trình ghi LED maøu xanh (Write LED) saùng. Quaù trình ghi
keát thuùc LED naøy taét.
• Giao dieän trong quaù trình ghi nhö sau:
• Baïn coù theå duøng File: test.hex trong ñóa CD baùn keøm theo KIT
naïp ñeå naïp thöû vaø coù theå ñoïc thöû chip sau khi naïp.
• Neáu baïn thöôøng xuyeân laøm vieäc vôùi KIT naïp, baïn cheùp file
EZDL4 trong CD leân ñóa cöùng. Taïo moät shortcut treân dekstop ñeå
deå söû duïng (vaøo Start -> setting ->Taskbar & Start menu…->
advance -> Add...).
• Neáu phaàn cöùng bò loãi thì phaàn meàm seõ khoâng nhaän daïng
ñöôïc luùc ñoù ta seõ thaáy nhö hình sau:
• Vôùi hieän töôïng loãi nhö treân, coù nhieàu nguyeân nhaân. Baïn
phaûi kieåm tra laïi caùc keát noái nhö:
1. Coång COM maùy tính bò hö (thöû ñoåi qua coång khaùc, xem
laïi caáu hình trong Bios, phaàn quaûn lí thieát bò cuûa Windows
…)
2. Kieåm tra ñieän aùp DC cung caáp, khaû naêng taûi/ chaát
löôïng cuûa adaptor. Neáu LED Power khoâng saùng thì KIT chöa
coù nguoàn, kieåm tra laïi oå caém ñieän …
3. Caùp noái vôùi PC ñöùt, tieáp xuùc chöa toát.
4. Chip Master U2 hö.
5. moät soá tröôøng hôïp chöông trình nhaän daïng ñöôïc chip naïp,
nhöng laïi bò loãi trong quaù trình ghi, ñoïc, xoùa, lock…vv baïn
caàn phaûi laøm laïi caùc thao taùc nhö: khôûi ñoäng laïi phaàn
meàm, phaàn cöùng vaø laëp laïi thao taùc ñoïc ghi…. Chip naïp
97
hö, keùm chaát löôïng laø moät trong nhöõng nguyeân nhaân
thöôøng gaëp. Baïn thöû thay chip khaùc thöû xem!
6. Moät ñieàu quan troïng baïn phaûi löu yù laø duø theá naøo
cuoái cuøng baïn phaûi gaén chip caàn naïp (coøn toát) vaøo ZIF
socket vaø xem chöông trình coù nhaän daïng ñöôïc chip ñoù hay
khoâng roài môùi keát luaän ñöôïc KIT naøy coù bò hö hay
khoâng.
Phaàn
naøy trình baøy kit thöïc taäp vi ñieàu khieån ñôn giaûn nhaát
giuùp hoïc vieân coù theå töï laép raùp döïa theo sô ñoà nguyeân lyù vaø sô
ñoà maïch in cho tröôùc. Hoïc vieân coù theå söû duïng kit naøy ñeå laøm
baøi taäp ôû nhaø ñeå reøn luyeän kyõ naêng laäp trình.
P0.4
P0.7
P0.3
P0.6
P0.1
P0.2
P0.5
+5v
20
JL1 JP1 UP0 RP0 LEDP0
L1.0 P1.0 P0.0 2 18 1 16 1 16
1 L1.1 1 P1.1 P0.1 3 A1 B1 17 2 15 2 15
2 2 A2 B2
VCC
L1.2 P1.2 U1 P0.2 4 16 3 14 3 14
3 L1.3 3 P1.3 P0.3 5 A3 B3 15 4 13 4 13
4 L1.4 4 P1.4 P1.0 1 40 +5v JP0 P0.4 6 A4 B4 14 5 12 5 12
5 L1.5 5 P1.5 P1.1 2 P1.0 VCC 39 P0.0 P0.0 P0.5 7 A5 B5 13 6 11 6 11
6 L1.6 6 P1.6 P1.2 3 P1.1 P0.0/A D0 38 P0.1 P0.1 1 P0.6 8 A6 B6 12 7 10 7 10
7 L1.7 7 P1.7 P1.3 4 P1.2 P0.1/A D1 37 P0.2 P0.2 2 P0.7 9 A7 B7 11 8 9 8 9
8 8 P1.4 5 P1.3 P0.2/A D2 36 P0.3 P0.3 3 A8 B8
P1.5 6 P1.4 P0.3/A D3 35 P0.4 P0.4 4 1 330
JL3 JP3 P1.6 7 P1.5 P0.4/A D4 34 P0.5 P0.5 5 19 DIR
P1.6 P0.5/A D5 6 G
GND
L3.0 P3.0 P1.7 8 33 P0.6 P0.6
1 L3.1 1 P3.1 Reset 9 P1.7 P0.6/A D6 32 P0.7 P0.7 7
2 2 RST P0.7/A D7 8 74LS245
L3.2 P3.2 P3.0 10 31 +5v
10
S0
N0 74LS245
SW1 R-array1
10
1 16 L1.0 L1.0 S1
2 15 L1.1 L1.1 1 N1
3 14 L1.2 L1.2 2 +5v 0
4 13 L1.3 L1.3 3
4 S2
20
4 13 L3.3 L3.3 N6
5 12 L3.4 L3.4 4
5 1k 74LS245
6 11 L3.5 L3.5 S7
10
7 10 L3.6 L3.6 6 N7
8 9 L3.7 L3.7 7
8 +5v 0
9 R-arrayN
20
N3 P3.2 4 16 3 14 3 14
4 N4 P3.3 5 A3 B3 15 4 13 4 13
Reset 1k 5 N5 P3.4 A4 B4
6 14 5 12 5 12
D1 6 N6 P3.5 7 A5 B5 13 6 11 6 11
+5v Relay 7 A6 B6
1N4007 Rled + N7 P3.6 8 12 7 10 7 10
5v 10uF 8 +5v P3.7 A7 B7
470 9 11 8 9 8 9
Jng 9 A8 B8
Q1 Rb1 150 +5v 1 330
2 C2383 19 DIR
1 1k G
GND
+ LED Reset
OFF 10k 74LS245
Cng
10
0v
98
Sô ñoà maïch in (Tom view)
7 6 5 4 3 2 1 0
10
17
47uF 0.1uF
LEDP1 LEDP0 (5 li)
Caà
u noá
i
U1
Caà
u noá
i R_array0 UP0
JP0
RP1 JP1
+ 330
Jng 5v RP0
- 330
LEDP3
UP1
D1
LEDP2 (5 li)
1N4007
RELAY 5V
JP2 UP2
RP3
JP3
RP2
330
1k
UP3
1k
470
10k SW3
SW1
ON OFF Reset
Caù
c nuù
t nhaá
n thöôø
ng hôû(duø
ng loaïi 4 pin)
99
1 40
10
(Thi coâng maïch in theo sô ñoà naøy, kích thöôùc ñuùng laø 10,66 x
20,98cm)
100