Giáo trình Kỹ thuật vi điều khiển - Chương 3: Xây dựng phần mềm - Lâm Tăng Đức
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ3ꢀ:ꢀꢀX©yꢀdùngꢀphÇnꢀmÒmꢀ
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
Ch−¬ngꢀIIIꢀ
x©y dùng phÇn mÒm
ꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ–Béꢀm«nꢀT§Hꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ68ꢀ
ꢀꢀꢀꢀꢀ
ꢀ
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ3ꢀ:ꢀꢀX©yꢀdùngꢀphÇnꢀmÒmꢀ
ꢀ
ꢀ
Ch−¬ngꢀIIIꢀ
x©y dùng phÇn mÒm
3.1ꢀCh−¬ngꢀtr×nhꢀMONITORꢀchoꢀKITꢀ
Doꢀch−¬ngꢀtr×nhꢀMONITORꢀcñaꢀhÖꢀthèngꢀphøcꢀt¹pꢀvꢁꢀkh¸ꢀlínꢀnªnꢀtaꢀsÏꢀtæꢀchøcꢀ
thꢁnhꢀ nhiÒuꢀ moduleꢀ nháꢀ ghÐpꢀ l¹iꢀ víiꢀ nhau.ꢀ Mçiꢀ moduleꢀ thùcꢀ hiÖnꢀ mçiꢀ chøcꢀ n¨ngꢀ
riªng,ꢀc¸cꢀmoduleꢀtrongꢀch−¬ngꢀtr×nh:ꢀꢀ
ꢀꢀ+ꢀModuleꢀthùcꢀhiÖnꢀviÖcꢀhiÓnꢀthÞꢀLCD.ꢀ
ꢀꢀ+ꢀModuleꢀqu¶nꢀlýꢀbꢁnꢀphÝm.ꢀ
ꢀꢀ+ꢀModuleꢀqu¶nꢀlýꢀviÖcꢀ®äc/ghiꢀd÷ꢀliÖuꢀtrongꢀEEPROMꢀvꢁꢀRAM.ꢀ
ꢀꢀ+ꢀModuleꢀt¹oꢀthêiꢀgianꢀtrÔ.ꢀ
ꢀꢀ+ꢀCh−¬ngꢀtr×nhꢀchÝnhꢀ(Main).ꢀ
ꢀꢀ+ꢀModuleꢀ®iÒuꢀkhiÓnꢀtruyꢀcËpꢀc¸cꢀthanhꢀghiꢀ®ÆcꢀbiÖtꢀvꢁꢀc¸cꢀ«ꢀnhíꢀbªnꢀtrongꢀchipꢀ
viꢀ®iÒuꢀkhiÓnꢀchÝnh.ꢀꢀ
ꢀꢀ+ꢀModuleꢀtruyÒnꢀth«ngꢀgiaoꢀtiÕpꢀvíiꢀm¸yꢀtÝnhꢀPC.ꢀ
Mꢂꢀnguånꢀcñaꢀch−¬ngꢀtr×nhꢀhÖꢀ®iÒuꢀhꢁnhꢀ®−îcꢀgiíiꢀthiÖuꢀëꢀphÇnꢀphôꢀlôcꢀcñaꢀ®åꢀ
¸n.ꢀ
Sauꢀ®©yꢀlꢁꢀl−uꢀ®åꢀthuËtꢀto¸nꢀcñaꢀch−¬ngꢀtr×nhꢀMONITORꢀ:ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ69ꢀ
ꢀꢀꢀꢀꢀ
ꢀ
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ3ꢀ:ꢀꢀX©yꢀdùngꢀphÇnꢀmÒmꢀ
ꢀ
ꢀ
L−uꢀ®åꢀthuËtꢀto¸nꢀcñaꢀmoduleꢀMain:ꢀkhëiꢀt¹oꢀc¸cꢀthiÕtꢀ®Ætꢀbanꢀ®ÇuꢀchoꢀKITꢀvꢁꢀ
c¸cꢀthiÕtꢀbÞꢀngo¹iꢀvi,ꢀhiÓnꢀthÞꢀmꢁnꢀh×nhꢀ1.ꢀ
ꢀ
ꢀ
B¾tꢀ®Çu
ꢀ
Khëiꢀt¹oꢀc¸cꢀbiÕn,ꢀc¸cꢀthiÕtꢀlËp
banꢀ®Çuꢀchoꢀ8255
Khëiꢀ®éngꢀLCD
HiÓnꢀthÞꢀMAINꢀMENU
Cꢁiꢀ®Ætꢀc¸cꢀng¾t
ChoꢀphÐpꢀng¾tꢀngoꢁiꢀ0
ChoꢀphÐpꢀng¾tꢀnèiꢀtiÕp
N
Y
HiÓnꢀthÞ
Mꢁnꢀh×nhꢀ1
HiÓnꢀthÞ
Mꢁnꢀh×nhꢀ2
EEPROM
trèng?
HiÓnꢀthÞ
mꢁnꢀh×nhꢀ4
CallꢀDEMO
Prog.
Key=F2?
CallꢀStep
Mode
Key=F1?
HiÓnꢀthÞ
mꢁnꢀh×nhꢀ4
CallꢀDEMO
Prog.
Key=F2?
KÕtꢀthóc
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ70ꢀ
ꢀꢀꢀꢀꢀ
ꢀ
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ3ꢀ:ꢀꢀX©yꢀdùngꢀphÇnꢀmÒmꢀ
ꢀ
ꢀ
L−uꢀ®åꢀc¸cꢀch−¬ngꢀtr×nhꢀDEMOꢀ(Mꢁnꢀh×nhꢀ4)ꢀ
B¾tꢀ®Çu
HiÓnꢀthÞꢀmꢁnꢀh×nhꢀ1
Xãaꢀbyteꢀ®ÖmꢀbꢁnꢀphÝm
Ch¹yꢀLedꢀ®¬n
DEMO
Byteꢀ®Öm
BUFꢀ=ꢀ1
Byteꢀ®Öm
BUFꢀ=ꢀ18
Ch¹yꢀLedꢀ7
®o¹nꢀDEMO
Byteꢀ®Öm
BUFꢀ=ꢀ2
Byteꢀ®Öm
BUFꢀ=ꢀ18
Ch¹yꢀLedꢀma
trËnꢀDEMO
Byteꢀ®Öm
BUFꢀ=ꢀ3
Byteꢀ®Öm
BUFꢀ=ꢀ18
Ch¹yꢀBꢁnꢀphÝm,
LCDꢀDEMO
Byteꢀ®Öm
BUFꢀ=ꢀ4
Byteꢀ®Öm
BUFꢀ=ꢀ18
Ch¹yꢀADC,ꢀDAC
DEMO
Byteꢀ®Öm
BUFꢀ=ꢀ5
Byteꢀ®Öm
BUFꢀ=ꢀ18
Ch¹yꢀSTEPPER
DEMO
Byteꢀ®Öm
BUFꢀ=ꢀ6
Byteꢀ®Öm
BUFꢀ=ꢀ18
Ch¹yꢀRS232
DEMO
Byteꢀ®Öm
BUFꢀ=ꢀ7
Byteꢀ®Öm
BUFꢀ=ꢀ18
Byteꢀ®Öm
BUFꢀ=ꢀ18
(BSP)
HiÓnꢀthÞꢀmꢁn
h×nhꢀ1
KÕtꢀthóc
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ71ꢀ
ꢀꢀꢀꢀꢀ
ꢀ
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ3ꢀ:ꢀꢀX©yꢀdùngꢀphÇnꢀmÒmꢀ
ꢀ
ꢀ
L−uꢀ®åꢀch−¬ngꢀtr×nhꢀMONITORꢀch¹yꢀëꢀchÕꢀ®éꢀgìꢀrèiꢀSTEPꢀMODEꢀ(Mꢁnꢀh×nhꢀ3)ꢀ
B¾tꢀ®Çu
Khëiꢀt¹oꢀc¸cꢀbiÕn
L−uꢀc¸cꢀthanhꢀghiꢀcÇnꢀthiÕt
Gi¶ꢀlËpꢀCPUꢀnh−ꢀëꢀtr¹ngꢀth¸i
RESET
HiÓnꢀthÞꢀMꢁnꢀh×nhꢀ3
(C¸cꢀthanhꢀghiꢀ®ÆcꢀbiÖtꢀꢂ
SFR,ꢀR0ꢀꢂR7ꢀ...ꢀ)
HiÓnꢀthÞꢀgîiꢀýꢀcho
c¸cꢀlÖnhꢀF1,ꢀF2,ꢀBSP
Xãaꢀbyteꢀ®ÖmꢀbꢁnꢀphÝm
BUF
ChêꢀvꢁꢀxöꢀlýꢀnhËp
1ꢀbyteꢀvꢁoꢀbé
®ÖmꢀBYTE1
Y
N
BUFꢀ=ꢀ16
(F1)
BUFꢀ=ꢀ19
(ENTER)
Inꢀraꢀgi¸ꢀtrÞꢀBIT
cÇnꢀxem
YES
(F1)
Háiꢀcãꢀsöa
kh«ng?ꢀꢂ
Chêꢀvꢁꢀxöꢀlý
nhËpꢀ1ꢀBIT
ENTERꢀ=ꢀkh«ng
söa
NO
(ENTER)
N
BUFꢀ=19
(ENTER)
Y
CËpꢀnhËtꢀvïngꢀnhí
1
2
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ72ꢀ
ꢀꢀꢀꢀꢀ
ꢀ
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ3ꢀ:ꢀꢀX©yꢀdùngꢀphÇnꢀmÒmꢀ
ꢀ
ꢀ
1
2
ChêꢀvꢁꢀxöꢀlýꢀnhËp
2ꢀbyteꢀvꢁoꢀbé
®ÖmꢀBYTE1,ꢀ2
Y
N
BUFꢀ=ꢀ17
(F2)
BUFꢀ=ꢀ19
(ENTER)
N
Inꢀraꢀgi¸ꢀtrÞꢀBYTE
cÇnꢀxem
YES
(F1)
Háiꢀcãꢀsöa
kh«ng?ꢀꢂꢀENTER
=ꢀkh«ngꢀsöa
Chêꢀvꢁꢀxöꢀlý
nhËpꢀ1ꢀBYTE
ꢀꢀꢀꢀNO
(ENTER)
N
BUFꢀ=19
(ENTER)
Y
N
P1.2ꢀ=ꢀ0
(STEP)
P1.2ꢀ=1
(STEP)
CËpꢀnhËtꢀvïngꢀnhí
N
Y
Delayꢀchèngꢀrung
RETI
KÕtꢀthóc
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ73ꢀ
ꢀꢀꢀꢀꢀ
ꢀ
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ3ꢀ:ꢀꢀX©yꢀdùngꢀphÇnꢀmÒmꢀ
ꢀ
ꢀ
L−uꢀ®åꢀch−¬ngꢀtr×nhꢀng¾tꢀngoꢁiꢀ0ꢀ(INT0)ꢀcñaꢀbꢁnꢀphÝmꢀ
ꢀ
B¾tꢀ®Çu
ꢀ
ꢀ
ꢀ
NhËnꢀmꢃꢀphÝm
L−uꢀvꢁoꢀbyteꢀ®ÖmꢀbꢁnꢀphÝm
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
N
Ch©nꢀng¾t
ngoꢁiꢀ1ꢀ=ꢀ1?
Y
KÕtꢀthóc
3.2ꢀCh−¬ngꢀtr×nhꢀqu¶nꢀlÝꢀthiÕtꢀbÞꢀ
3.2.1ꢀCh−¬ngꢀtr×nhꢀquÐtꢀbꢁnꢀphÝmꢀ
Nh−ꢀ®ꢂꢀtr×nhꢀbꢁyꢀëꢀch−¬ngꢀ2,ꢀbꢁnꢀphÝmꢀsöꢀdôngꢀtrongꢀbéꢀKITꢀnꢁyꢀgåmꢀcãꢀ20ꢀ
phÝm,ꢀ16ꢀphÝmꢀ®Çuꢀtiªnꢀ®−îcꢀs¾pꢀxÕpꢀtheoꢀkiÓuꢀmaꢀtrËnꢀvꢁꢀ4ꢀphÝmꢀcuèiꢀcïngꢀ®−îcꢀxÕpꢀ
theoꢀmétꢀcétꢀnèiꢀ®Êtꢀchung.ꢀTrªnꢀbꢁnꢀphÝmꢀcñaꢀbéꢀKIT,ꢀ4ꢀphÝmꢀtrªnꢀmétꢀcétꢀnèiꢀ®Êtꢀ
chungꢀlꢁꢀc¸cꢀphÝmꢀchøcꢀn¨ngꢀ:ꢀF1,ꢀF2,ꢀBACKꢀSPACEꢀvꢁꢀENTER.ꢀC¸cꢀphÝmꢀtõꢀ0ꢃ9ꢀvꢁꢀ
AꢃFꢀdïngꢀ®ÓꢀnhËpꢀliÖu,ꢀc¸cꢀphÝmꢀchøcꢀn¨ngꢀcãꢀt¸cꢀdôngꢀkh¸cꢀnhauꢀtïyꢀtheoꢀng÷ꢀc¶nhꢀ
cñaꢀmꢁnꢀh×nh,ꢀgîiꢀýꢀt¸cꢀdôngꢀcñaꢀc¸cꢀphÝmꢀbÊmꢀhiÓnꢀthÞꢀtrªnꢀmꢁnꢀh×nh,ꢀ®iÒuꢀnꢁyꢀgiópꢀ
viÖcꢀlꢁmꢀquenꢀvꢁꢀthÝꢀnghiÖmꢀtrªnꢀKITꢀrÊtꢀthuËnꢀtiÖnꢀvꢁꢀdÔꢀdꢁngꢀchoꢀng−êiꢀhäc,ꢀnhÊtꢀlꢁꢀ
khiꢀthÝꢀnghiÖmꢀëꢀchÕꢀ®éꢀdebug.ꢀ
L−uꢀ®åꢀthuËtꢀto¸nꢀcñaꢀch−¬ngꢀtr×nhꢀquÐtꢀbꢁnꢀphÝmꢀnh−ꢀsau:ꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ74ꢀ
ꢀꢀꢀꢀꢀ
ꢀ
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ3ꢀ:ꢀꢀX©yꢀdùngꢀphÇnꢀmÒmꢀ
ꢀ
ꢀ
L−uꢀ®åꢀthuËtꢀto¸nꢀcñaꢀch−¬ngꢀtr×nhꢀquÐtꢀbꢁnꢀphÝm:
B¾tꢀ®Çu
XuÊtꢀ1ꢀraꢀtÊtꢀc¶
hꢁngꢀvꢁꢀcét
Hꢁng
1ꢀ=ꢀ1ꢀ?
XuÊtꢀphÝm
16ꢀ(F1)
Y
Hꢁng
2ꢀ=ꢀ1ꢀ?
XuÊtꢀphÝm
17ꢀ(F2)
N
TÊtꢀc¶
hꢁngꢀ=ꢀ1?
Y
Hꢁng
3ꢀ=ꢀ1ꢀ?
XuÊtꢀphÝm
18ꢀ(BSP)
Y
Y
Hꢁng
4ꢀ=ꢀ1ꢀ?
XuÊtꢀphÝm
19ꢀ(ENTER)
Nèiꢀ®Êtꢀhꢁngꢀ1
Y
Quayꢀtõngꢀbitꢀcñaꢀbyte
chøaꢀc¸cꢀcétꢀlªnꢀcêꢀC
G¸nꢀDPTRꢀchoꢀ®ÞaꢀchØ
hꢁngꢀ1
N
TÊtꢀc¶
cétꢀ=ꢀ1?
T¨ng
DPTR
C=0?
Y
Y
Traꢀb¶ng
XuÊtꢀmꢃꢀphÝm
Nèiꢀ®Êtꢀhꢁngꢀ2
Quayꢀtõngꢀbitꢀcñaꢀbyte
chøaꢀc¸cꢀcétꢀlªnꢀcêꢀC
G¸nꢀDPTRꢀchoꢀ®ÞaꢀchØ
hꢁngꢀ2
N
TÊtꢀc¶
cétꢀ=ꢀ1?
T¨ng
DPTR
C=0?
Y
Y
Traꢀb¶ng
XuÊtꢀmꢃꢀphÝm
Nèiꢀ®Êtꢀhꢁngꢀ3
Quayꢀtõngꢀbitꢀcñaꢀbyte
chøaꢀc¸cꢀcétꢀlªnꢀcêꢀC
G¸nꢀDPTRꢀchoꢀ®ÞaꢀchØ
hꢁngꢀ3
N
TÊtꢀc¶
cétꢀ=ꢀ1?
T¨ng
DPTR
C=0?
Y
Y
Traꢀb¶ng
XuÊtꢀmꢃꢀphÝm
Nèiꢀ®Êtꢀhꢁngꢀ4
Quayꢀtõngꢀbitꢀcñaꢀbyte
chøaꢀc¸cꢀcétꢀlªnꢀcêꢀC
G¸nꢀDPTRꢀchoꢀ®ÞaꢀchØ
hꢁngꢀ4
N
TÊtꢀc¶
cétꢀ=ꢀ1?
T¨ng
DPTR
C=0?
Y
Y
Traꢀb¶ng
XuÊtꢀmꢃꢀphÝm
KÕtꢀthóc
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ75ꢀ
ꢀꢀꢀꢀꢀ
ꢀ
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ3ꢀ:ꢀꢀX©yꢀdùngꢀphÇnꢀmÒmꢀ
ꢀ
ꢀ
3.2.2ꢀCh−¬ngꢀtr×nhꢀ®iÒuꢀkhiÓnꢀhiÓnꢀthÞꢀLCDꢀ
§ÓꢀchoꢀLCDꢀcãꢀthÓꢀho¹tꢀ®éng,ꢀ®Çuꢀtiªnꢀtaꢀph¶iꢀkhëiꢀt¹oꢀLCD,ꢀb¸oꢀchoꢀnãꢀbiÕtꢀsèꢀ
hꢁng,ꢀsèꢀkýꢀtùꢀhiÓnꢀthÞꢀtrªnꢀmétꢀhꢁng.ꢀC¸cꢀd÷ꢀliÖuꢀ®iÒuꢀkhiÓnꢀlÇnꢀl−îtꢀ®−îcꢀchuyÓnꢀvꢁoꢀ
DataꢀBusꢀcñaꢀLCDꢀlꢁꢀ38H,ꢀ0EH,ꢀvꢁꢀ06H.ꢀSauꢀc¸cꢀlÖnhꢀkhëiꢀt¹oꢀLCDꢀnꢁyꢀtaꢀmíiꢀcãꢀthÓꢀ
hiÓnꢀthÞꢀkýꢀtùꢀlªnꢀtrªnꢀmꢁnꢀh×nhꢀLCD.ꢀꢀꢀ
C¸cꢀl−uꢀ®åꢀlꢁmꢀviÖcꢀvíiꢀLCDꢀnh−ꢀsau:ꢀ
ꢀ
ꢀ
ChêꢀLCDꢀs½nꢀsꢁngꢀlꢁmꢀviÖc
Khëiꢀt¹oꢀLCD
B¾tꢀ®Çu
B¾tꢀ®Çu
TruyꢀcËp
thanhꢀghiꢀlÖnh
RSꢀ=0
GöiꢀlÖnhꢀ®iÒuꢀkhiÓnꢀ38H
GöiꢀlÖnhꢀ®iÒuꢀkhiÓnꢀ08H
GöiꢀlÖnhꢀ®iÒuꢀkhiÓnꢀ01H
GöiꢀlÖnhꢀ®iÒuꢀkhiÓnꢀ06H
GöiꢀlÖnhꢀ®iÒuꢀkhiÓnꢀ0EH
ChuyÓnꢀsangꢀchÕꢀ®é
®äcꢀd÷ꢀliÖuꢀR/Wꢀ=1
§−aꢀ1ꢀxungꢀtõꢀthÊpꢀlªn
caoꢀëꢀch©nꢀEꢀcñaꢀLCD
®Óꢀ®äcꢀd÷ꢀliÖu
KÕtꢀthóc
BitꢀD7ꢀ=ꢀ1?
KÕtꢀthóc
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ76ꢀ
ꢀꢀꢀꢀꢀ
ꢀ
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ3ꢀ:ꢀꢀX©yꢀdùngꢀphÇnꢀmÒmꢀ
ꢀ
ꢀ
GöiꢀlÖnhꢀ®iÒuꢀkhiÓnꢀraꢀLCD
InꢀmétꢀkÝꢀtùꢀraꢀLCD
B¾tꢀ®Çu
B¾tꢀ®Çu
§îiꢀLCDꢀs½nꢀsꢁng
lꢁmꢀviÖc
§îiꢀLCDꢀs½nꢀsꢁng
nhËnꢀlÖnh
§−aꢀd÷ꢀliÖuꢀraꢀc¸cꢀch©n
d÷ꢀliÖuꢀcñaꢀLCD
XuÊtꢀmꢃꢀlÖnh
Chänꢀthanhꢀghi
d÷ꢀliÖuꢀꢂꢀRSꢀ=ꢀ1
TruyꢀcËpꢀthanhꢀghi
lÖnhꢀꢂꢀRSꢀ=ꢀ0
ChuyÓnꢀsangꢀchÕ
®éꢀghiꢀꢂꢀR/Wꢀ=ꢀ0
ChoꢀphÐpꢀghiꢀra
LCDꢀꢂꢀR/Wꢀ=0
Göiꢀ1ꢀxungꢀtõꢀcao
xuèngꢀthÊpꢀ®Õn
ch©nꢀEꢀcñaꢀLCDꢀ®Ó
ghiꢀd÷ꢀliÖu
§−aꢀ1ꢀxungꢀtõꢀcao
xuèngꢀthÊpꢀëꢀch©n
Eꢀ®Óꢀchètꢀd÷ꢀliÖu
KÕtꢀthóc
KÕtꢀthóc
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ77ꢀ
ꢀꢀꢀꢀꢀ
ꢀ
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ3ꢀ:ꢀꢀX©yꢀdùngꢀphÇnꢀmÒmꢀ
ꢀ
ꢀ
3.3ꢀCh−¬ngꢀtr×nhꢀgiaoꢀtiÕpꢀm¸yꢀtÝnh
ꢀ
ꢀ
Ch−¬ngꢀtr×nhꢀgiaoꢀtiÕpꢀgi÷aꢀbéꢀKITꢀvíiꢀm¸yꢀtÝnhꢀ®−îcꢀviÕtꢀb»ngꢀng«nꢀng÷ꢀDelphiꢀ
GiaoꢀdiÖnꢀcñaꢀch−¬ngꢀtr×nhꢀtrªnꢀm¸yꢀtÝnhꢀPCꢀnh−ꢀh×nhꢀvÏꢀ
- Ch−¬ngꢀtr×nhꢀchoꢀphÐpꢀn¹pꢀch−¬ngꢀtr×nhꢀcñaꢀng−êiꢀsöꢀdôngꢀvꢁoꢀEEPROM,ꢀ
sauꢀ®ãꢀsÏꢀch¹yꢀtrªnꢀKIT,ꢀcãꢀthÓꢀch¹yꢀ®écꢀlËp,ꢀtøcꢀkh«ngꢀcãꢀsùꢀ®iÒuꢀkhiÓnꢀcñaꢀ
MONITORꢀꢃꢀchÕꢀ®éꢀSTEPꢀhoÆcꢀch¹yꢀtõngꢀlÖnhꢀ®Óꢀdebugꢀvꢁꢀtheoꢀdâiꢀgi¸ꢀtrÞꢀbéꢀnhí,ꢀ
c¸cꢀthanhꢀghiꢀ®ÆcꢀbiÖtꢀSFR,ꢀR0ꢃR7ꢀtrªnꢀmꢁnꢀh×nhꢀLCDꢀcñaꢀKIT.ꢀ
- TrªnꢀgiaoꢀdiÖnꢀcñaꢀch−¬ngꢀtr×nhꢀcãꢀthÓꢀdownloadꢀfileꢀd¹ngꢀHexaꢀcñaꢀch−¬ngꢀ
tr×nhꢀxuèngꢀbéꢀKITꢀvꢁꢀcãꢀthÓꢀuploadꢀnéiꢀdungꢀbéꢀnhíꢀEEPROMꢀcñaꢀKIT.ꢀ
- C¸cꢀnótꢀchøcꢀn¨ngꢀtrªnꢀgiaoꢀdiÖnꢀ:ꢀ
ꢀꢀꢀꢀꢀꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ78ꢀ
ꢀꢀꢀꢀꢀ
ꢀ
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ3ꢀ:ꢀꢀX©yꢀdùngꢀphÇnꢀmÒmꢀ
ꢀ
ꢀ
ꢀ
+ꢀOPENꢀandꢀCOMPILE:ꢀꢀMëꢀmétꢀfileꢀmꢂꢀlÖnhꢀd¹ngꢀhîpꢀng÷ꢀ(*.asm)ꢀvꢁꢀ
biªnꢀdÞchꢀ(Compile)ꢀthꢁnhꢀfileꢀHEXꢀhoÆcꢀfileꢀ®ꢂꢀcompileꢀd−íiꢀd¹ngꢀHEXAꢀ(*.hex)ꢀ®Óꢀ
n¹pꢀtrùcꢀtiÕpꢀxuèngꢀKIT.ꢀKÕtꢀqu¶ꢀcompileꢀ®−îcꢀhiÓnꢀthÞꢀtrongꢀcöaꢀsæꢀCompileꢀLog.ꢀ
ꢀꢀꢀꢀꢀ+ꢀOPENꢀHexꢀfile:ꢀꢀMëꢀmétꢀfileꢀmꢂꢀlÖnhꢀ®ꢂꢀ®−îcꢀbiªnꢀdÞchꢀd¹ngꢀhexaꢀ
(*.hex)ꢀvꢁꢀdÞchꢀng−îcꢀ(Disasemble)ꢀthꢁnhꢀfileꢀmꢂꢀlÖnhꢀASMꢀ(*.d51).ꢀKÕtꢀqu¶ꢀdÞchꢀ
ng−îcꢀhiÓnꢀthÞꢀtrongꢀcöaꢀsæꢀASMꢀcode,ꢀmꢂꢀm¸yꢀcñaꢀbéꢀnhíꢀhiÓnꢀthÞꢀtrongꢀcöaꢀsæꢀ
Opcode.ꢀKÕtꢀqu¶ꢀcompileꢀ®−îcꢀhiÓnꢀthÞꢀtrongꢀcöaꢀsæꢀCompileꢀLog.ꢀ
ꢀ
+ꢀDOWNLOADꢀ:ꢀChoꢀphÐpꢀdownloadꢀfileꢀHexꢀ®−îcꢀmëꢀhoÆcꢀCompileꢀtõꢀ
fileꢀmꢂꢀlÖnhꢀASMꢀxuèngꢀbéꢀnhíꢀcñaꢀKIT.ꢀ
ꢀ
+ꢀUPLOAD :ꢀꢀChoꢀphÐpꢀ®äcꢀnéiꢀdungꢀch−¬ngꢀtr×nhꢀcñaꢀng−êiꢀsöꢀdôngꢀ®ꢂꢀ
®−îcꢀn¹pꢀvꢁoꢀbéꢀnhíꢀcñaꢀKITꢀtõꢀlÇnꢀn¹pꢀtr−íc.ꢀ
ꢀ
+ꢀEraseꢀEEPROM:ꢀChoꢀphÐpꢀxãaꢀEEPROM.ꢀ
Ch−¬ngꢀtr×nhꢀMONITORꢀ®−îcꢀviÕtꢀd−íiꢀd¹ngꢀhîpꢀng÷ꢀ(Assembly),ꢀbanꢀ®Çuꢀkhiꢀ
thamꢀkh¶oꢀcãꢀthÓꢀg©yꢀkhãꢀkh¨nꢀchoꢀng−êiꢀ®äcꢀtuyꢀnhiªnꢀhîpꢀng÷ꢀꢀlꢁmꢀchoꢀng−êiꢀhäcꢀ
cãꢀthÓꢀhiÓuꢀrâꢀvꢁꢀn¾mꢀv÷ngꢀvÒꢀcÊuꢀtrócꢀphÇnꢀcøngꢀcñaꢀhäꢀviꢀ®iÒuꢀkhiÓnꢀ8051ꢀh¬nꢀnh−ꢀ
c¸chꢀtæꢀchøcꢀbéꢀnhí,ꢀc¸chꢀthùcꢀhiÖnꢀmétꢀng¾t,ꢀvÞꢀtrÝꢀcñaꢀc¸cꢀvectorꢀng¾t,ꢀc¸cꢀho¹tꢀ®éngꢀ
®Þnhꢀthêi,ꢀhiÓuꢀrâꢀvÞꢀtrÝꢀb¶nꢀ®åꢀbéꢀnhí,ꢀc¸cꢀthanhꢀghiꢀ®ÆcꢀbiÖtꢀSFRꢀ...ꢀNgoꢁiꢀraꢀkhiꢀsöꢀ
dôngꢀhîpꢀng÷ꢀtaꢀkh«ngꢀph¶iꢀphôꢀthuécꢀvꢁoꢀc¸cꢀtr×nhꢀbiªnꢀdÞchꢀhçꢀtrîꢀb»ngꢀng«nꢀng÷ꢀ
bËcꢀcaoꢀnh−ꢀC,ꢀBasicꢀ...ꢀ
Sauꢀ®©yꢀtaꢀ®iꢀx©yꢀdùngꢀc¸cꢀnéiꢀdungꢀthÝꢀnghiÖmꢀcÇnꢀthiÕtꢀchoꢀng−êiꢀhäcꢀ®Óꢀquaꢀ
®ãꢀng−êiꢀhäcꢀtõngꢀb−ícꢀn¾mꢀrâꢀcÊuꢀtrócꢀvꢁꢀc¸chꢀlËpꢀtr×nhꢀchoꢀhäꢀviꢀ®iÒuꢀkhiÓnꢀ8051.ꢀ
ꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ79ꢀ
ꢀꢀꢀꢀꢀ
ꢀ
Bạn đang xem tài liệu "Giáo trình Kỹ thuật vi điều khiển - Chương 3: Xây dựng phần mềm - Lâm Tăng Đức", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
giao_trinh_ky_thuat_vi_dieu_khien_chuong_3_xay_dung_phan_mem.pdf

