Giáo trình Kỹ thuật vi điều khiển - Chương 1: Tổng quan về vi điều khiển

Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ1ꢀ:ꢀTængꢀquanꢀvÒꢀviꢀ®iÒuꢀkhiÓnꢀ  
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
Ch−¬ngꢀIꢀ  
TængꢀquanꢀvÒꢀViꢀ®iÒuꢀkhiÓnꢀ  
ꢀ
ꢀ
ꢀ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ꢀꢀ1ꢀ  
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ1ꢀ:ꢀTængꢀquanꢀvÒꢀviꢀ®iÒuꢀkhiÓnꢀ  
ꢀ
ꢀ
Ch−¬ngꢀIꢀ  
TængꢀquanꢀvÒꢀViꢀ®iÒuꢀkhiÓnꢀ  
ꢀ
1.1ꢀGiíiꢀthiÖuꢀvÒꢀc¸cꢀhäꢀviꢀxöꢀlÝꢀvꢁꢀc¸cꢀhäꢀviꢀ®iÒuꢀkhiÓnꢀth«ngꢀdôngꢀ  
1.1.1ꢀLÞchꢀsöꢀph¸tꢀtriÓnꢀcñaꢀbéꢀviꢀxöꢀlÝꢀvꢁꢀbéꢀviꢀ®iÒuꢀkhiÓnꢀ  
Sùꢀraꢀ®êiꢀvꢁꢀph¸tꢀtriÓnꢀnhanhꢀchãngꢀcñaꢀküꢀthuËtꢀviꢀ®iÖnꢀtöꢀmꢁꢀ®Æcꢀtr−ngꢀlꢁꢀküꢀ  
thuËtꢀviꢀxöꢀlÝꢀ®ꢂꢀt¹oꢀraꢀmétꢀb−ícꢀngoÆtꢀquanꢀträngꢀtrongꢀsùꢀph¸tꢀtriÓnꢀcñaꢀkhoaꢀhäcꢀ  
tÝnhꢀto¸n,ꢀ®iÒuꢀkhiÓnꢀvꢁꢀxöꢀlÝꢀth«ngꢀtin.ꢀKüꢀthuËtꢀviꢀxöꢀlÝꢀ®ãngꢀmétꢀvaiꢀtrßꢀrÊtꢀquanꢀ  
trängꢀtrongꢀtÊtꢀc¶ꢀc¸cꢀlÜnhꢀvùcꢀcñaꢀcuécꢀsèngꢀvꢁꢀkhoaꢀhäcꢀküꢀthuËt,ꢀ®ÆcꢀbiÖtꢀlꢁꢀlÜnhꢀ  
vùcꢀTinꢀhäcꢀvꢁꢀTùꢀ®éngꢀhãa.ꢀ  
N¨mꢀ1971,ꢀhꢂngꢀIntelꢀ®ꢂꢀchoꢀraꢀ®êiꢀbéꢀviꢀxöꢀlÝꢀ(microprocessor)ꢀ®Çuꢀtiªnꢀtrªnꢀ  
thÕꢀgiíiꢀtªnꢀgäiꢀlꢁꢀIntelꢃ4004/4bitꢀ,ꢀnh»mꢀ®¸pꢀøngꢀnhuꢀcÇuꢀcÊpꢀthiÕtꢀcñaꢀmétꢀc«ngꢀtyꢀ  
kinhꢀdoanhꢀlꢁꢀhꢂngꢀtruyÒnꢀth«ngꢀBUSICOM.ꢀIntelꢃ4004ꢀlꢁꢀkÕtꢀqu¶ꢀcñaꢀmétꢀýꢀt−ëngꢀ  
quanꢀträngꢀtrongꢀküꢀthuËtꢀviꢀxöꢀlÝꢀsè.ꢀ§ãꢀlꢁꢀmétꢀkÕtꢀcÊuꢀlogicꢀmꢁꢀcãꢀthÓꢀthayꢀ®æiꢀ®−îcꢀ  
chøcꢀn¨ngꢀcñaꢀnãꢀb»ngꢀch−¬ngꢀtr×nhꢀngoꢁiꢀchøꢀkh«ngꢀph¸tꢀtriÓnꢀtheoꢀh−íngꢀt¹oꢀraꢀ  
métꢀcÊuꢀtrócꢀcøngꢀchØꢀthùcꢀhiÖnꢀmétꢀsèꢀchøcꢀn¨ngꢀnhÊtꢀ®Þnhꢀnh−ꢀtr−ícꢀ®©y.ꢀꢀ  
Sauꢀ®ã,ꢀc¸cꢀbéꢀviꢀxöꢀlÝꢀmíiꢀliªnꢀtôcꢀ®−îcꢀ®−aꢀraꢀthÞꢀtr−êngꢀvꢁꢀngꢁyꢀcꢁngꢀ®−îcꢀ  
ph¸tꢀtriÓn,ꢀhoꢁnꢀthiÖnꢀh¬nꢀtrongꢀc¸cꢀthÕꢀhÖꢀsauꢀ:ꢀ  
Vꢁoꢀ n¨mꢀ 1972,ꢀ hꢂngꢀ Intelꢀ ®−aꢀ raꢀ béꢀ viꢀ xöꢀ lÝꢀ 8ꢃbitꢀ ®Çuꢀ tiªnꢀ víiꢀ tªnꢀ Intelꢃ  
8008/8bit.ꢀꢀ  
Tõꢀ1974ꢀ®Õnꢀ1975ꢀ,ꢀIntelꢀchÕꢀt¹oꢀꢀc¸cꢀbéꢀviꢀxöꢀlÝꢀ8ꢃbitꢀ8080ꢀvꢁꢀ8085A.ꢀ  
Còngꢀvꢁoꢀkho¶ngꢀthêiꢀgianꢀnꢁy,ꢀꢀmétꢀlo¹tꢀc¸cꢀhꢂngꢀkh¸cꢀtrªnꢀthÕꢀgiíiꢀcòngꢀ®ꢂꢀꢀ  
choꢀraꢀ®êiꢀꢀc¸cꢀbéꢀviꢀxöꢀlÝꢀt−¬ngꢀtùꢀnh−ꢀ:ꢀꢀ6800ꢀcñaꢀMotorolaꢀvíiꢀꢀ5000ꢀtranzitor,ꢀ  
Signeticsꢀ6520,ꢀ1801ꢀcñaꢀRCA,ꢀkÕꢀ®Õnꢀlꢁꢀ6502ꢀcñaꢀhꢂngꢀMOSꢀTechnologyꢀvꢁꢀZ80ꢀ  
cñaꢀhꢂngꢀZilog.ꢀ  
ꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ2ꢀ  
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ1ꢀ:ꢀTængꢀquanꢀvÒꢀviꢀ®iÒuꢀkhiÓnꢀ  
ꢀ
ꢀ
Vꢁoꢀn¨mꢀ1976ꢀIntelꢀgiíiꢀthiÖuꢀbéꢀviꢀ®iÒuꢀkhiÓnꢀ(microcontroller)ꢀ8748,ꢀmétꢀchipꢀ  
t−¬ngꢀtùꢀnh−ꢀc¸cꢀbéꢀviꢀxöꢀlÝꢀvꢁꢀlꢁꢀchipꢀ®Çuꢀtiªnꢀtrongꢀhäꢀviꢀ®iÒuꢀkhiÓnꢀMCSꢃ48.ꢀ8748ꢀ  
lꢁꢀmétꢀviꢀm¹chꢀchøaꢀtrªnꢀ17000ꢀtransistor,ꢀbaoꢀgåmꢀmétꢀCPU,ꢀ1KꢀbyteꢀEPROM,ꢀ64ꢀ  
byteꢀRAM,ꢀ27ꢀch©nꢀxuÊtꢀnhËpꢀvꢁꢀmétꢀbéꢀ®Þnhꢀthêiꢀ8ꢃbit.ꢀICꢀnꢁyꢀvꢁꢀc¸cꢀICꢀkh¸cꢀtiÕpꢀ  
theoꢀcñaꢀhäꢀMCSꢃ48ꢀ®ꢂꢀnhanhꢀchãngꢀtrëꢀthꢁnhꢀchuÈnꢀc«ngꢀnghiÖpꢀtrongꢀc¸cꢀøngꢀ  
dôngꢀh−íngꢀ®iÒuꢀkhiÓnꢀ(controlꢃorientedꢀapplication).ꢀ  
N¨mꢀ1978ꢀxu©tꢀhiÖnꢀIntelꢀ8086ꢀlꢁꢀlo¹iꢀbéꢀxiꢀxöꢀlýꢀ16ꢀbitꢀvíiꢀ29.000ꢀtranzitor,ꢀ  
Motorolaꢀ68000ꢀtÝchꢀhîpꢀ70.000ꢀtranzitor,ꢀAPXꢀ432ꢀchøaꢀ120.000ꢀtranzitor.ꢀBéꢀviꢀxöꢀ  
lýꢀ cñaꢀ Hewletꢀ Pakardꢀ cãꢀ kho¶ngꢀ 450.000ꢀ tranzitor.ꢀ Tõꢀ n¨mꢀ 1974ꢀ ®Õnꢀ 1984ꢀ sèꢀ  
tranzitorꢀtÝchꢀhîpꢀtrongꢀmétꢀchipꢀt¨ngꢀkho¶ngꢀ100ꢀlÇn.ꢀ  
N¨mꢀ1983,ꢀIntelꢀ®−aꢀraꢀbéꢀviꢀxöꢀlýꢀ80286ꢀdungꢀtrongꢀc¸cꢀm¸yꢀviꢀtinhꢀhäꢀATꢀ  
(AdvancedꢀTechnology).ꢀ80286ꢀsöꢀdôngꢀI/Oꢀ16ꢀbit,ꢀ24ꢀ®−êngꢀ®ÞaꢀchØꢀvꢁꢀkh«ngꢀgianꢀ  
nhíꢀ®ÞaꢀchØꢀthùcꢀ16MB.ꢀN¨mꢀ1987,ꢀIntelꢀ®−aꢀraꢀbéꢀviꢀxöꢀlýꢀ80386ꢀ32ꢃbit.ꢀN¨mꢀ1989ꢀ  
xuÊtꢀhiÖnꢀxuÊtꢀhiÖnꢀbéꢀviꢀxöꢀlýꢀIntelꢀ80486ꢀlꢁꢀc¶IꢀtiÕnꢀcñaꢀIntelꢀ80386ꢀvíiꢀbéꢀnhíꢀÈnꢀ  
vꢁꢀm¹chꢀtÝnhꢀphÐpꢀto¸nꢀ®¹iꢀsèꢀdÊuꢀphÈyꢀ®éng.ꢀ  
N¨mꢀ 1992,ꢀ xuÊtꢀ hiÖnꢀ Intelꢀ 80586ꢀ cßnꢀ gäiꢀ lꢁꢀ Pentiumꢀ 64ꢀ bitꢀ chøaꢀ 4ꢀ triÖuꢀ  
tranzitor.ꢀꢀ  
So át r a n zit o r t ích h ôïp  
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ3ꢀ  
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ1ꢀ:ꢀTængꢀquanꢀvÒꢀviꢀ®iÒuꢀkhiÓnꢀ  
ꢀ
ꢀ
H×nhꢀ1.1ꢀSèꢀtranzitorꢀtÝchꢀhîpꢀtrongꢀꢀmétꢀchipꢀcñaꢀbéꢀviꢀxöꢀlýꢀIntelꢀ8086ꢀ  
§éꢀphøcꢀt¹p,ꢀsùꢀgänꢀnhÑꢀvÒꢀkÝchꢀth−ícꢀvꢁꢀkh¶ꢀn¨ngꢀcñaꢀc¸cꢀbéꢀviꢀ®iÒuꢀkhiÓnꢀ  
®−îcꢀt¨ngꢀthªmꢀmétꢀbËcꢀquanꢀträngꢀvꢁoꢀn¨mꢀ1980ꢀkhiꢀIntelꢀc«ngꢀbèꢀchipꢀ8051,ꢀbéꢀviꢀ  
®iÒuꢀkhiÓnꢀ®Çuꢀtiªnꢀcñaꢀhäꢀviꢀ®iÒuꢀkhiÓnꢀMCSꢃ51.ꢀSoꢀvíiꢀ8048,ꢀchipꢀ8051ꢀchøaꢀtrªnꢀ  
60.000ꢀtransistorꢀbaoꢀgåmꢀ4KꢀbyteꢀROM,ꢀ128ꢀbyteꢀRAM,ꢀ32ꢀ®−êngꢀxuÊtꢀnhËp,ꢀ1ꢀ  
portꢀnèiꢀtiÕpꢀvꢁꢀ2ꢀbéꢀ®Þnhꢀthêiꢀ16ꢃbitꢀ–ꢀmétꢀsèꢀl−îngꢀm¹chꢀ®¸ngꢀchóꢀýꢀtrongꢀmétꢀICꢀ  
®¬n.ꢀ  
Tõꢀc¸cꢀbéꢀꢀviꢀxöꢀlýꢀbanꢀ®ÇuꢀchØꢀlꢁꢀc¸cꢀbéꢀxöꢀlýꢀtrungꢀt©mꢀtrongꢀmétꢀhÖꢀthèng,ꢀ  
kh«ngꢀthÓꢀho¹tꢀ®éngꢀnÕuꢀthiÕuꢀc¸cꢀbéꢀphËnꢀnh−ꢀRAM,ꢀROM,ꢀboꢀm¹chꢀchñ...ꢀc¸cꢀ  
hꢂngꢀ®ꢂꢀph¸tꢀtriÓnꢀc¸cꢀbéꢀviꢀxöꢀlýꢀnꢁyꢀlªnꢀthꢁnhꢀc¸cꢀbéꢀviꢀ®iÒuꢀkhiÓnꢀ®Óꢀphôcꢀvôꢀ  
c¸cꢀmôcꢀ®ÝchꢀriªngꢀbiÖt,ꢀkh¸cꢀnhauꢀtrongꢀc«ngꢀnghiÖp.ꢀMétꢀbéꢀviꢀ®iÒuꢀkhiÓnꢀlꢁꢀ  
métꢀhÖꢀviꢀxöꢀlÝꢀthËtꢀsùꢀ®−îcꢀtæꢀchøcꢀtrongꢀmétꢀchipꢀ(trongꢀmétꢀváꢀIC)ꢀbaoꢀgåmꢀ  
métꢀbéꢀviꢀxöꢀlÝꢀ(microprocessor),ꢀbéꢀnhíꢀch−¬ngꢀtr×nhꢀ(ROM),ꢀbéꢀnhíꢀd÷ꢀliÖuꢀ  
(RAM),ꢀtuyꢀkh«ngꢀb»ngꢀdungꢀl−îngꢀRAMꢀëꢀc¸cꢀm¸yꢀviꢀtÝnhꢀnh−ngꢀ®©yꢀkh«ngꢀ  
ph¶iꢀlꢁꢀmétꢀh¹nꢀchÕꢀv×ꢀc¸cꢀbéꢀviꢀ®iÒuꢀkhiÓnꢀ®−îcꢀꢀthiÕtꢀkÕꢀchoꢀmétꢀmôcꢀ®Ýchꢀhoꢁnꢀ  
toꢁnꢀkh¸c,ꢀngoꢁiꢀraꢀtrªnꢀchipꢀcßnꢀcãꢀbéꢀxöꢀlýꢀsèꢀhäcꢃlogicꢀ(ALU)ꢀcïngꢀvíiꢀc¸cꢀ  
thanhꢀghiꢀchøcꢀn¨ng,ꢀc¸cꢀcængꢀvꢁo/ra,ꢀc¬ꢀchÕꢀ®iÒuꢀkhiÓnꢀng¾t,ꢀtruyÒnꢀtinꢀnèiꢀtiÕp,ꢀ  
c¸cꢀbéꢀ®Þnhꢀthêi...ꢀHiÖnꢀnay,ꢀc¸cꢀbéꢀviꢀ®iÒuꢀkhiÓnꢀ®−îcꢀsöꢀdôngꢀrÊtꢀréngꢀrꢂiꢀvꢁꢀ  
ngꢁyꢀ cꢁngꢀ ®−îcꢀ chuÈnꢀ hãaꢀ ®Óꢀ cãꢀ thÓꢀ söꢀ dôngꢀ réngꢀ rꢂiꢀ trongꢀ c¸cꢀ ngꢁnhꢀ c«ngꢀ  
nghiÖp,ꢀcãꢀmÆtꢀtrongꢀnhiÒuꢀm¸yꢀmãc,ꢀtrongꢀc¸cꢀhꢁngꢀtiªuꢀdïng.ꢀꢀ  
1.1.2ꢀ¦uꢀvꢁꢀkhuyÕtꢀ®iÓmꢀcñaꢀc¸cꢀbéꢀviꢀ®iÒuꢀkhiÓnꢀ  
ꢀꢀꢀꢀꢀꢀꢀꢀC¸cꢀc«ngꢀviÖcꢀ®−îcꢀthùcꢀhiÖnꢀbëiꢀc¸cꢀbéꢀviꢀ®iÒuꢀkhiÓnꢀth×ꢀkh«ngꢀmíi.ꢀ§iÒuꢀ  
míiꢀlꢁꢀc¸cꢀthiÕtꢀkÕꢀhiÖnꢀthùcꢀvíiꢀÝtꢀthꢁnhꢀphÇnꢀh¬nꢀsoꢀvíiꢀc¸cꢀthiÕtꢀkÕꢀtr−ícꢀ®ã.ꢀ  
C¸cꢀthiÕtꢀkÕꢀtr−ícꢀ®ãꢀ®ßiꢀháiꢀph¶iꢀvꢁiꢀchôcꢀhoÆcꢀvꢁiꢀtr¨mꢀICꢀ®ÓꢀhiÖnꢀthùcꢀnayꢀchØꢀ  
cÇnꢀmétꢀÝtꢀthꢁnhꢀphÇnꢀtrongꢀ®ãꢀbaoꢀgåmꢀbéꢀviꢀ®iÒuꢀkhiÓn.ꢀSèꢀthꢁnhꢀphÇnꢀ®−îcꢀ  
gi¶mꢀbít,ꢀhiÖuꢀqu¶ꢀtrùcꢀtiÕpꢀcñaꢀꢀtÝnhꢀkh¶ꢀlËpꢀtr×nhꢀcñaꢀc¸cꢀbéꢀviꢀ®iÒuꢀkhiÓnꢀvꢁꢀ®éꢀ  
ꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ4ꢀ  
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ1ꢀ:ꢀTængꢀquanꢀvÒꢀviꢀ®iÒuꢀkhiÓnꢀ  
ꢀ
ꢀ
tÝchꢀhîpꢀcaoꢀtrongꢀc«ngꢀnghÖꢀchÕꢀt¹oꢀviꢀm¹ch,ꢀth−êngꢀchuyÓnꢀthꢁnhꢀthêiꢀgianꢀph¸tꢀ  
triÓnꢀng¾nꢀh¬n,ꢀgi¸ꢀthꢁnhꢀkhiꢀs¶nꢀxuÊtꢀthÊpꢀh¬n,ꢀc«ngꢀsuÊtꢀtiªuꢀthôꢀthÊpꢀh¬nꢀvꢁꢀ®éꢀ  
tinꢀcËyꢀcaoꢀh¬n.ꢀ  
ꢀ
VÊnꢀ®Òꢀëꢀ®©yꢀlꢁꢀtècꢀ®é.ꢀC¸cꢀgi¶iꢀph¸pꢀdùaꢀtrªnꢀbéꢀviꢀ®iÒuꢀkhiÓnꢀkh«ngꢀbaoꢀgiêꢀ  
nhanhꢀb»ngꢀgi¶iꢀph¸pꢀdùaꢀtrªnꢀc¸cꢀthꢁnhꢀphÇnꢀrêiꢀr¹c.ꢀNh÷ngꢀt×nhꢀhuèngꢀ®ßiꢀháiꢀph¶iꢀ  
®¸pꢀøngꢀthËtꢀnhanhꢀ(cìꢀnsec)ꢀ®èiꢀvíiꢀc¸cꢀsùꢀkiÖnꢀ(th−êngꢀchiÕmꢀthiÓuꢀsèꢀtrongꢀc¸cꢀ  
øngꢀdông)ꢀsÏꢀ®−îcꢀqu¶nꢀlýꢀtåiꢀkhiꢀdùaꢀvꢁoꢀc¸cꢀbéꢀviꢀ®iÒuꢀkhiÓn.ꢀ  
Tuyꢀ nhiªnꢀ trongꢀ vꢁiꢀ øngꢀ dông,ꢀ ®Æcꢀ biÖtꢀ lꢁꢀ c¸cꢀ øngꢀ dôngꢀ liªnꢀ quanꢀ ®Õnꢀ conꢀ  
ng−êi,ꢀc¸cꢀkho¶ngꢀthêiꢀgianꢀtrÔꢀtÝnhꢀb»ngꢀnsec,ꢀusecꢀhoÆcꢀthËmꢀchÝꢀmsecꢀlꢁꢀkh«ngꢀ  
quanꢀträng.ꢀViÖcꢀgi¶mꢀbítꢀc¸cꢀthꢁnhꢀphÇnꢀlꢁꢀmétꢀ®iÒuꢀlîiꢀnh−ꢀ®ꢂꢀ®ÒꢀcËp,ꢀc¸cꢀthaoꢀt¸cꢀ  
trongꢀch−¬ngꢀtr×nhꢀ®iÒuꢀkhiÓnꢀlꢁmꢀchoꢀthiÕtꢀkÕꢀcãꢀthÓꢀthayꢀ®æiꢀb»ngꢀc¸chꢀthayꢀ®æiꢀ  
phÇnꢀmÒm.ꢀ§iÒuꢀnꢁyꢀcãꢀ¶nhꢀh−ëngꢀtèiꢀthiÓuꢀ®Õnꢀchuꢀkúꢀs¶nꢀxuÊt.ꢀDoꢀ®ãꢀc¸cꢀbéꢀviꢀ  
®iÒuꢀkhiÓnꢀcãꢀthÓꢀ®−îcꢀøngꢀdôngꢀréngꢀrꢂiꢀtrongꢀc¸cꢀøngꢀdôngꢀphôcꢀvôꢀconꢀng−êi.ꢀ  
§ÓꢀcãꢀthÓꢀhiÓuꢀrâꢀh¬nꢀvÒꢀc¸cꢀbéꢀviꢀ®iÒuꢀkhiÓn,ꢀchóngꢀtaꢀsÏꢀt×mꢀhiÓuꢀvÒꢀmétꢀsèꢀ  
c¸cꢀhäꢀviꢀ®iÒuꢀkhiÓnꢀcñaꢀmétꢀsèꢀhꢂngꢀ®iÖnꢀtöꢀ®iÓnꢀh×nhꢀ®angꢀ®−îcꢀsöꢀdôngꢀréngꢀ  
rꢂiꢀtrongꢀkhoaꢀhäcꢀküꢀthuËtꢀvꢁꢀ®êiꢀsèng.ꢀꢀ  
ꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ5ꢀ  
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ1ꢀ:ꢀTængꢀquanꢀvÒꢀviꢀ®iÒuꢀkhiÓnꢀ  
ꢀ
ꢀ
1.1.3ꢀGiíiꢀthiÖuꢀvÒꢀhäꢀviꢀ®iÒuꢀkhiÓnꢀMCSꢂ51ꢀ  
1.1.3.1ꢀTãmꢀt¾tꢀphÇnꢀcøngꢀ  
Häꢀviꢀ®iÒuꢀkhiÓnꢀMCSꢃ51ꢀ®−îcꢀhꢂngꢀIntelꢀchoꢀraꢀ®êiꢀvꢁoꢀn¨mꢀ1980ꢀvíiꢀbéꢀviꢀ  
®iÒuꢀkhiÓnꢀ®Çuꢀtiªnꢀcñaꢀnãꢀlꢁꢀchipꢀ8051.ꢀꢀ  
CÊuꢀtrócꢀc¬ꢀb¶nꢀcñaꢀchipꢀviꢀ®iÒuꢀkhiÓnꢀ8051ꢀ®−îcꢀbiÓuꢀdiÔnꢀnh−ꢀꢀh×nhꢀ1.2.ꢀ  
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
H×nhꢀ1.2ꢁꢀS¬ꢀ®åꢀkhèiꢀcñaꢀchipꢀ8051ꢀ  
ꢀ
ꢀ
ꢀ
31  
ꢀ
ꢀ
39ꢀ  
ꢀ
EA/VP  
ꢀ
P0.0ꢀ  
ꢀ
38ꢀ  
37ꢀ  
36ꢀ  
35ꢀ  
34ꢀ  
3332ꢀ  
X1  
ꢀ
ꢀ
P0.1ꢀ  
P0.2ꢀ  
P0.3ꢀ  
P0.4ꢀ  
P0.5ꢀ  
PP00..67ꢀ  
19  
H×nhꢀ1.3ꢀchoꢀtaꢀs¬ꢀ®åꢀch©nꢀcñaꢀchipꢀ8051.ꢀNh−ꢀtaꢀ  
thÊy,ꢀ 32ꢀ trongꢀ sèꢀ 40ꢀ ch©nꢀ cñaꢀ 8051ꢀ cãꢀ t¸cꢀ dôngꢀ  
xuÊt/nhËp,ꢀh×nhꢀthꢁnhꢀ4ꢀportꢀ8ꢃbit.ꢀVíiꢀc¸cꢀthiÕtꢀkÕꢀ  
yªuꢀ cÇuꢀ métꢀ møcꢀ tèiꢀ thiÓuꢀ béꢀ nhíꢀ ngoꢁiꢀ hoÆcꢀ c¸cꢀ  
thꢁnhꢀphÇnꢀbªnꢀngoꢁiꢀkh¸c,ꢀtaꢀcãꢀthÓꢀsöꢀdôngꢀc¸cꢀportꢀ  
nꢁyꢀlꢁmꢀnhiÖmꢀvôꢀxuÊt/nhËp,ꢀ8ꢀ®−êngꢀchoꢀmçiꢀportꢀ  
cãꢀthÓꢀ®−îcꢀxöꢀlÝꢀnh−ꢀlꢁꢀmétꢀ®¬nꢀvÞꢀgiaoꢀtiÕpꢀvíiꢀc¸cꢀ  
thiÕtꢀ bÞꢀ songꢀ songꢀ nh−ꢀ m¸yꢀ in,ꢀ béꢀ biÕnꢀ ®æiꢀ  
18  
ꢀ
ꢀ
ꢀ
X2  
9
RESET  
ꢀ
21ꢀ  
ꢀ
P2.0ꢀ  
ꢀ
22ꢀ  
23ꢀ  
24ꢀ  
25ꢀ  
26ꢀ  
2278ꢀ  
ꢀ
IINNTT01ꢀ  
ꢀ
P2.1ꢀ  
P2.2ꢀ  
P2.3ꢀ  
P2.4ꢀ  
P2.5ꢀ  
PP22..67ꢀ  
12ꢀ  
13ꢀ  
1145ꢀ  
TT01ꢀ  
1ꢀ  
ꢀ
P1.0ꢀ  
ꢀ
2ꢀ  
3ꢀ  
4ꢀ  
5ꢀ  
6ꢀ  
P1.1ꢀ  
P1.2ꢀ  
P1.3ꢀ  
P1.4ꢀ  
P1.5ꢀ  
PP11..67ꢀ  
17ꢀ  
ꢀ
RDꢀ  
ꢀ
16ꢀ  
29ꢀ  
30ꢀ  
1110ꢀ  
WRꢀ  
PSENꢀ  
ALE/Pꢀ  
RTXXDDꢀ  
8
7ꢀ  
8051ꢀ  
H×nhꢀ1.3ꢀꢁꢀS¬ꢀ®åꢀch©nꢀcñaꢀ8051ꢀ  
ꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ6ꢀ  
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ1ꢀ:ꢀTængꢀquanꢀvÒꢀviꢀ®iÒuꢀkhiÓnꢀ  
ꢀ
ꢀ
D/A,.v.v..hoÆcꢀmçiꢀ®−êngꢀcãꢀthÓꢀho¹tꢀ®éngꢀ®écꢀlËpꢀgiaoꢀtiÕpꢀvíiꢀmétꢀthiÕtꢀbÞꢀ®¬nꢀbitꢀ  
nh−ꢀchuyÓnꢀm¹ch,ꢀLED,ꢀtranzistor,ꢀcuénꢀd©y,ꢀ®éngꢀc¬...  
ꢀ
1. Portꢀ0ꢀ  
Portꢀ0ꢀcãꢀ2ꢀt¸cꢀdông.ꢀTrongꢀc¸cꢀthiÕtꢀkÕꢀøngꢀdôngꢀtèiꢀthiÓu,ꢀkh«ngꢀcãꢀgiaoꢀtiÕpꢀvíiꢀ  
c¸cꢀthꢁnhꢀphÇnꢀbªnꢀngoꢁiꢀnh−ꢀRAMꢀngoꢁi,ꢀROMꢀngoꢁi...,ꢀportꢀ0ꢀ®−îcꢀsöꢀdôngꢀnh−ꢀ  
métꢀcængꢀxuÊt/nhËpꢀth«ngꢀth−êng.ꢀKhiꢀthiÕtꢀkÕꢀhÖꢀthèngꢀmꢁꢀcÇnꢀsöꢀdôngꢀbéꢀnhíꢀngoꢁi,ꢀ  
portꢀ0ꢀ®−îcꢀsöꢀdôngꢀlꢁꢀcængꢀ®ÞaꢀchØꢀvꢁꢀd÷ꢀliÖuꢀ®aꢀhîp.ꢀPortꢀ0ꢀnÕuꢀlꢁꢀcængꢀ®ÞaꢀchØꢀth×ꢀnãꢀ  
sÏꢀlꢁꢀphÇnꢀbyteꢀthÊpꢀcñaꢀbusꢀ®ÞaꢀchØ.ꢀꢀ  
2. Portꢀ1ꢀ  
Portꢀ1ꢀchØꢀcãꢀmétꢀt¸cꢀdôngꢀlꢁꢀcængꢀxuÊtꢀnhËp.ꢀNãꢀchØꢀdïngꢀ®ÓꢀgiaoꢀtiÕpꢀvíiꢀthiÕtꢀ  
bÞꢀngo¹iꢀviꢀkhiꢀcãꢀyªuꢀcÇu.ꢀKh«ngꢀcãꢀchøcꢀn¨ngꢀnꢁoꢀ®ÆcꢀbiÖtꢀchoꢀc¸cꢀch©nꢀcñaꢀportꢀ1.ꢀ  
Tuyꢀnhiªnꢀvíiꢀc¸cꢀbéꢀviꢀ®iÒuꢀkhiÓnꢀkh¸cꢀnh−ꢀ8052ꢀth×ꢀc¸cꢀch©nꢀP1.0ꢀvꢁꢀP1.1ꢀcßnꢀ®−îcꢀ  
söꢀdôngꢀlꢁmꢀc¸cꢀ®−êngꢀngâꢀvꢁoꢀchoꢀm¹chꢀ®Þnhꢀthêiꢀthøꢀba.ꢀꢀ  
3. Portꢀ2ꢀ  
Portꢀ2ꢀcãꢀhaiꢀt¸cꢀdông,ꢀhoÆcꢀlꢁmꢀnhiÖmꢀvôꢀlꢁꢀcængꢀxuÊtꢀnhËp,ꢀhoÆcꢀlꢁꢀphÇnꢀbyteꢀ  
caoꢀcñaꢀbusꢀ®ÞaꢀchØꢀ16ꢃbitꢀchoꢀc¸cꢀthiÕtꢀkÕꢀhÖꢀthèngꢀcÇnꢀnhiÒuꢀh¬nꢀ256ꢀbyteꢀbéꢀnhíꢀ  
ngoꢁi.ꢀ  
4. Portꢀ3ꢀ  
Portꢀ3ꢀcãꢀhaiꢀt¸cꢀdông.ꢀNãꢀlꢁmꢀnhiÖmꢀvôꢀnh−ꢀmétꢀcængꢀxuÊtꢀnhËpꢀth«ngꢀth−êng.ꢀ  
Khiꢀkh«ngꢀho¹tꢀ®éngꢀxuÊtꢀnhËp,ꢀmçiꢀch©nꢀcñaꢀportꢀ3ꢀ®Òuꢀcãꢀmétꢀchøcꢀn¨ngꢀriªng.ꢀꢀ  
5. Ch©nꢀchoꢀphÐpꢀbéꢀnhíꢀngoꢂiꢀ/PSENꢀꢁꢀProgramꢀStoreꢀENableꢀ  
Ch©nꢀ nꢁyꢀ th−êngꢀ ®−îcꢀ nèiꢀ víiꢀ ch©nꢀ choꢀ phÐpꢀ xuÊtꢀ /OEꢀ (Outputꢀ Entable)ꢀ cñaꢀ  
EPRROMꢀ(hoÆcꢀcñaꢀROM)ꢀ®ÓꢀchoꢀphÐpꢀ®äcꢀc¸cꢀbyteꢀlÖnh.ꢀTÝnꢀhiÖuꢀ/PSENꢀëꢀl«gicꢀ‘0‘ꢀ  
trongꢀsuètꢀthêiꢀgianꢀt×mꢀn¹pꢀlÖnh.ꢀC¸cꢀmꢂꢀnhÞꢀph©nꢀcñaꢀch−¬ngꢀtr×nhꢀ(opcode)ꢀ®−îcꢀ  
®äcꢀtõꢀEPROM,ꢀquaꢀbusꢀd÷ꢀliÖuꢀvꢁꢀ®−îcꢀchètꢀvꢁoꢀthanhꢀghiꢀlÖnhꢀIRꢀcñaꢀ8051ꢀ®Óꢀ®−îcꢀ  
gi¶iꢀmꢂ.ꢀKhiꢀꢀthùcꢀthiꢀmétꢀch−¬ngꢀtr×nhꢀtrongꢀROMꢀnéi,ꢀ/PSENꢀ®−îcꢀduyꢀtr×ꢀëꢀl«gicꢀ  
kh«ngꢀtÝchꢀcùcꢀ(logicꢀ1).ꢀ  
ꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ7ꢀ  
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ1ꢀ:ꢀTængꢀquanꢀvÒꢀviꢀ®iÒuꢀkhiÓnꢀ  
ꢀ
ꢀ
6. Ch©nꢀchoꢀphÐpꢀchètꢀ®ÞaꢀchØꢀALEꢀꢁꢀAddressꢀLatchꢀEnableꢀ  
LꢁꢀtÝnꢀhiÖuꢀxuÊtꢀraꢀ®Óꢀgi¶iꢀ®aꢀhîpꢀbusꢀ®ÞaꢀchØꢀvꢁꢀbusꢀd÷ꢀliÖu.ꢀTrongꢀ1/2ꢀchuꢀkúꢀ®Çuꢀ  
béꢀnhí,ꢀch©nꢀALEꢀxuÊtꢀtÝnꢀhiÖuꢀ®Óꢀchètꢀ®ÞaꢀchØꢀ(byteꢀthÊpꢀcñaꢀbusꢀ®ÞaꢀchØꢀꢀ16ꢀbit)ꢀvꢁoꢀ  
thanhꢀghiꢀngoꢁiꢀkhiꢀtaꢀsöꢀdôngꢀportꢀ0ꢀlꢁmꢀbyteꢀthÊpꢀ®ÞaꢀchØ.ꢀTrongꢀ1/2ꢀchuꢀkúꢀbéꢀnhíꢀ  
cßnꢀl¹iꢀportꢀ0ꢀsÏꢀxuÊt/nhËpꢀd÷ꢀliÖu.ꢀTÝnꢀhiÖuꢀALEꢀcãꢀtÇnꢀsèꢀb»ngꢀ1/6ꢀꢀtÇnꢀsèꢀcñaꢀm¹chꢀ  
daoꢀ®éngꢀbªnꢀtrongꢀchipꢀviꢀ®iÒuꢀkhiÓnꢀvꢁꢀcãꢀthÓꢀlꢁmꢀxungꢀclockꢀchoꢀc¸cꢀphÇnꢀcßnꢀl¹iꢀ  
cñaꢀhÖꢀthèngꢀ(tr−êngꢀhîpꢀngo¹iꢀlÖꢀkhiꢀthùcꢀhiÖnꢀlÖnhꢀMOVX,ꢀmétꢀxungꢀALEꢀ(vꢁꢀc¶ꢀ  
/PSEN)ꢀsÏꢀbÞꢀbáꢀqua).ꢀCh©nꢀALEꢀcßnꢀ®−îcꢀdïngꢀ®ÓꢀnhËpꢀxungꢀngâꢀvꢁoꢀlËpꢀtr×nhꢀchoꢀ  
EPROMꢀhoÆcꢀFlashꢀROMꢀtrªnꢀchipꢀ®èiꢀvíiꢀchipꢀcãꢀlo¹iꢀROMꢀnꢁy.ꢀ  
7. Ch©nꢀtruyꢀxuÊtꢀngoꢂiꢀ/EAꢀꢁꢀExternalꢀAddressꢀ  
Ch©nꢀnꢁyꢀ®−îcꢀnèiꢀlªnꢀ5Vꢀkhiꢀthùcꢀthiꢀꢀch−¬ngꢀtr×nhꢀtrongꢀROMꢀnéiꢀvꢁꢀ®−îcꢀnèiꢀ  
®Êtꢀkhiꢀthùcꢀthiꢀch−¬ngꢀtr×nhꢀbéꢀnhíꢀngoꢁi.ꢀChóꢀýꢀ®èiꢀvíiꢀc¸cꢀchipꢀkh«ngꢀcãꢀROMꢀnéiꢀ  
/EAꢀph¶iꢀ®−îcꢀnèiꢀ®Êt.ꢀC¸cꢀchipꢀhäꢀ8051ꢀcãꢀEPROMꢀcßnꢀnhËnꢀch©nꢀ/ALEꢀlꢁmꢀch©nꢀ  
nhËnꢀ®iÖnꢀ¸pꢀcÊpꢀ®iÖnꢀ12VꢀchoꢀviÖcꢀlËpꢀtr×nhꢀ(n¹p)ꢀchoꢀEPROMꢀnéi.ꢀꢀ  
ꢀ
8. Ch©nꢀRESETꢀ(RST)ꢀ  
Dïngꢀ®ÓꢀthiÕtꢀlËpꢀl¹iꢀtr¹ngꢀth¸iꢀbanꢀ®ÇuꢀcñaꢀhÖꢀthèngꢀhayꢀgäiꢀt¾tꢀlꢁꢀresetꢀhÖꢀthèngꢀ  
khiꢀ®−îcꢀtreoꢀëꢀmøcꢀlogicꢀ1ꢀÝtꢀnhÊtꢀ2ꢀchuꢀkúꢀm¸y.ꢀC¸cꢀthanhꢀghiꢀbªnꢀtrongꢀcñaꢀ8051ꢀ  
®−îcꢀn¹pꢀc¸cꢀgi¸ꢀtrÞꢀthÝchꢀhîpꢀchoꢀviÖcꢀkhëiꢀ®éngꢀl¹iꢀhÖꢀthèng.ꢀ  
9. C¸cꢀch©nꢀXTAL1ꢀvꢂꢀXTAL2ꢀꢀ  
M¹chꢀdaoꢀ®éngꢀbªnꢀtrongꢀchipꢀ8051ꢀ®−îcꢀghÐpꢀvíiꢀth¹chꢀanhꢀbªnꢀngoꢁiꢀëꢀ2ꢀch©nꢀ  
XTAL1ꢀvꢁꢀXTAL2.ꢀTh−êngꢀtÇnꢀsèꢀlꢁꢀ12MHzꢀvꢁꢀc¸cꢀtôꢀænꢀ®Þnhꢀcãꢀgi¸ꢀtrÞꢀtrongꢀkho¶ngꢀ  
30pFꢀ ꢀ33ꢀpF.ꢀ  
ꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ8ꢀ  
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ1ꢀ:ꢀTængꢀquanꢀvÒꢀviꢀ®iÒuꢀkhiÓnꢀ  
ꢀ
ꢀ
1.1.3.2ꢀTæꢀchøcꢀbéꢀnhíꢀcñaꢀ8051ꢀ  
C¸cꢀchipꢀviꢀ®iÒuꢀkhiÓnꢀdïngꢀlꢁmꢀthꢁnhꢀphÇnꢀtrungꢀt©mꢀtrongꢀc¸cꢀthiÕtꢀkÕꢀh−íngꢀ  
®iÒuꢀkhiÓn.ꢀBéꢀnhíꢀth−êngꢀcãꢀdungꢀl−îngꢀbÐꢀh¬nꢀnhiÒuꢀsoꢀvíiꢀmétꢀhÖꢀviꢀxöꢀlý.ꢀNãꢀcßnꢀ  
kh«ngꢀcãꢀæꢀ®ÜaꢀvꢁꢀhÖꢀ®iÒuꢀhꢁnh.ꢀCh−¬ngꢀtr×nhꢀ®iÒuꢀkhiÓnꢀph¶iꢀth−êngꢀtróꢀtrongꢀROM.ꢀ  
DoꢀvËy,ꢀch−¬ngꢀtr×nhꢀvÉnꢀ®−îcꢀl−uꢀgi÷ꢀngayꢀc¶ꢀkhiꢀmÊtꢀ®iÖn.ꢀ  
Doꢀlýꢀdoꢀtrªn,ꢀchipꢀ8051ꢀcãꢀkh«ngꢀgianꢀbéꢀnhíꢀriªngꢀchoꢀch−¬ngꢀtr×nhꢀvꢁꢀd÷ꢀ  
liÖu.ꢀC¶ꢀbéꢀnhíꢀch−¬ngꢀtr×nhꢀvꢁꢀbéꢀnhíꢀd÷ꢀliÖuꢀ®Òuꢀn»mꢀtrongꢀchip.ꢀTuyꢀnhiªnꢀtaꢀcãꢀ  
thÓꢀmëꢀréngꢀbéꢀnhíꢀch−¬ngꢀtr×nhꢀvꢁꢀbéꢀnhíꢀd÷ꢀliÖuꢀb»ngꢀc¸chꢀsöꢀdôngꢀc¸cꢀchipꢀnhíꢀ  
bªnꢀngoꢁiꢀvíiꢀdungꢀl−îngꢀtèiꢀ®aꢀlꢁꢀ64Kꢀchoꢀbéꢀnhíꢀch−¬ngꢀtr×nhꢀvꢁꢀ64Kꢀchoꢀbéꢀnhíꢀ  
d÷ꢀliÖu.ꢀ  
Béꢀnhíꢀch−¬ngꢀtr×nhꢀ(ROM)ꢀ  
Béꢀnhíꢀch−¬ngꢀtr×nhꢀl−uꢀgi÷ꢀch−¬ngꢀtr×nhꢀ®iÒuꢀkhiÓnꢀchipꢀ8051.ꢀꢀ  
Sauꢀkhiꢀ RESET,ꢀCPUꢀ b¾tꢀ®Çuꢀ thùcꢀhiÖnꢀ ch−¬ngꢀ tr×nhꢀ tõꢀ ®Þaꢀ chØꢀ 0000H.ꢀ Khiꢀ  
ch−¬ngꢀtr×nhꢀlínꢀqu¸ꢀkÝchꢀth−ícꢀbéꢀnhíꢀch−¬ngꢀtr×nhꢀbªnꢀtrongꢀchip,ꢀch−¬ngꢀtr×nhꢀ  
nꢁyꢀph¶iꢀ®−îcꢀn¹pꢀvꢁoꢀbéꢀnhíꢀch−¬ngꢀtr×nhꢀngoꢁi.ꢀNÕuꢀch−¬ngꢀtr×nhꢀn»mꢀtrongꢀROMꢀ  
néi,ꢀch©nꢀ/EAꢀcñaꢀ8051ꢀph¶iꢀ®−îcꢀtreoꢀlªnꢀ5V.ꢀNÕuꢀch−¬ngꢀtr×nhꢀëꢀROMꢀngoꢁi,ꢀch©nꢀ  
/EAꢀph¶iꢀnèiꢀ®Êt.ꢀViÖcꢀtruyꢀxuÊtꢀch−¬ngꢀtr×nhꢀëꢀbéꢀnhíꢀngoꢁiꢀph¶iꢀkÕtꢀhîpꢀvíiꢀch©nꢀ  
tÝnꢀhiÖuꢀtruyꢀxuÊtꢀbéꢀnhíꢀngoꢁiꢀ/PSEN.ꢀ  
Béꢀnhíꢀd÷ꢀliÖuꢀ(RAM)ꢀ  
8051ꢀcãꢀ128ꢀbyteꢀRAMꢀëꢀbªnꢀtrongꢀchip.ꢀChóngꢀ®−îcꢀchiaꢀlꢁmꢀnhiÒuꢀvïngꢀkh¸cꢀ  
nhauꢀ:ꢀvïngꢀRAMꢀ®aꢀmôcꢀ®Ých,ꢀvïngꢀRAMꢀ®Þnhꢀ®ÞaꢀchØꢀbit,ꢀc¸cꢀdꢂyꢀthanhꢀghi,ꢀvꢁꢀ  
c¸cꢀthanhꢀghiꢀchøcꢀn¨ngꢀ®ÆcꢀbiÖt.ꢀTaꢀhꢂyꢀxemꢀxÐtꢀtõngꢀvïngꢀRAMꢀcôꢀthÓ.ꢀ  
ꢃꢀꢀVïngꢀRAMꢀ®aꢀmôcꢀ®Ýchꢀ:ꢀCãꢀ®ÞaꢀchØꢀtõꢀ30Hꢀ®Õnꢀ7FHꢀ(80ꢀbyte).ꢀVïngꢀRAMꢀ  
nꢁyꢀcãꢀthÓꢀtruyꢀxuÊtꢀb»ngꢀc¸chꢀ®Þnhꢀ®ÞaꢀchØꢀtrùcꢀtiÕpꢀhoÆcꢀ®Þnhꢀ®ÞaꢀchØꢀgi¸nꢀtiÕp.ꢀNãꢀ  
cãꢀthÓꢀdïngꢀ®Óꢀchøaꢀc¸cꢀbiÕnꢀtrongꢀch−¬ngꢀtr×nhꢀhayꢀdïngꢀ®Óꢀ®Þnhꢀ®ÞaꢀchØꢀchoꢀc¸cꢀ  
cængꢀngo¹iꢀviꢀtuúꢀtheoꢀmôcꢀ®Ýchꢀcñaꢀng−êiꢀsöꢀdông.ꢀ  
ꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ9ꢀ  
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ1ꢀ:ꢀTængꢀquanꢀvÒꢀviꢀ®iÒuꢀkhiÓnꢀ  
ꢀ
ꢀ
- VïngꢀRAMꢀ®Þnhꢀ®ÞaꢀchØꢀtõngꢀbitꢀ:ꢀCãꢀ128ꢀbitꢀchøaꢀtrongꢀc¸cꢀbyteꢀëꢀ®ÞaꢀchØꢀtõꢀ  
20Hꢀ®Õnꢀ2FHꢀvꢁꢀ32ꢀbyteꢀchøaꢀc¸cꢀthanhꢀghiꢀ(00Hꢀ®Õnꢀ1FH).ꢀꢀ  
- C¸cꢀdꢃyꢀthanhꢀghiꢀtõꢀBankꢀ0ꢀtíiꢀBankꢀ3ꢀ:ꢀN»mꢀëꢀ32ꢀbyteꢀthÊpꢀnhÊtꢀcñaꢀvïngꢀ  
nhíꢀd÷ꢀliÖu.ꢀKhiꢀRESETꢀhÖꢀthèngꢀdꢂyꢀthanhꢀghiꢀmÆcꢀ®ÞnhꢀlꢁꢀBankꢀ0.ꢀCãꢀthÓꢀchänꢀBankꢀ  
bëiꢀthanhꢀghiꢀtõꢀtr¹ngꢀth¸iꢀch−¬ngꢀtr×nhꢀ(PSWꢃꢀProgramꢀStatusꢀWord)ꢀ.ꢀC¸cꢀlÖnhꢀsöꢀ  
dôngꢀc¸cꢀthanhꢀghiꢀtõꢀR0ꢀ®ÕnꢀR7ꢀlꢁꢀc¸cꢀlÖnhꢀng¾nꢀvꢁꢀthùcꢀhiÖnꢀnhanhꢀh¬nꢀsoꢀvíiꢀc¸cꢀ  
lÖnhꢀt−¬ngꢀ®−¬ngꢀsöꢀdôngꢀkiÓuꢀ®Þnhꢀ®ÞaꢀchØꢀtrùcꢀtiÕp.ꢀC¸cꢀgi¸ꢀtrÞꢀd÷ꢀliÖuꢀth−êngꢀ®−îcꢀ  
söꢀdôngꢀnªnꢀchøaꢀëꢀmétꢀtrongꢀc¸cꢀthanhꢀghiꢀnꢁy.ꢀ  
C¸cꢀthanhꢀghiꢀchøcꢀn¨ngꢀ®ÆcꢀbiÖtꢀꢀ(SFRꢁꢀSpecialꢀFunctionꢀRegister)ꢀ  
Cãꢀ21ꢀthanhꢀghiꢀchøcꢀn¨ngꢀ®ÆcꢀbiÖtꢀchiÕmꢀphÇnꢀtrªnꢀcñaꢀRAMꢀnéiꢀcãꢀ®ÞaꢀchØꢀtõꢀ  
80Hꢀ®ÕnꢀFFH.ꢀC¸cꢀ®ÞaꢀchØꢀ®−îcꢀ®ÞnhꢀnghÜaꢀtrongꢀvïngꢀRAMꢀnꢁyꢀgåmꢀc¸cꢀthanhꢀghiꢀ  
®iÒuꢀkhiÓnꢀcñaꢀ8051,ꢀc¸cꢀthanhꢀghiꢀ®Öm,ꢀvꢁꢀc¸cꢀcængꢀvꢁoꢀra.ꢀ  
- Thanhꢀghiꢀtõꢀtr¹ngꢀth¸iꢀPSWꢀꢂꢀProgramꢀStatusꢀWordꢀꢀ:ꢀCãꢀꢀ®ÞaꢀchØꢀlꢁꢀD0H.ꢀ  
Chøaꢀc¸cꢀbitꢀtr¹ngꢀth¸iꢀcãꢀchøcꢀn¨ngꢀkh¸cꢀnhau.ꢀ  
- ThanhꢀghiꢀchøaꢀACC:ꢀCãꢀ®ÞaꢀchØꢀlꢁꢀA0H.ꢀTh−êngꢀ®−îcꢀdïngꢀlꢁmꢀbiÕnꢀnhíꢀ  
trungꢀgianꢀtrongꢀc¸cꢀphÐpꢀtÝnhꢀto¸nꢀsèꢀhäc.ꢀ  
- ThanhꢀghiꢀB:ꢀCãꢀ®ÞaꢀchØꢀlꢁꢀF0H.ꢀTh−êngꢀ®−îcꢀdïngꢀchungꢀvíiꢀthanhꢀghiꢀACCꢀ  
trongꢀc¸cꢀphÐpꢀto¸nꢀnh©nꢀchia.ꢀ  
- C¸cꢀcængꢀgiaoꢀtiÕpꢀsongꢀsongꢀ:ꢀ§ãꢀlꢁꢀc¸cꢀcængꢀP0,ꢀP1,ꢀP2,ꢀP3.ꢀ§−îcꢀ®Þnhꢀ®Þaꢀ  
chØꢀt−¬ngꢀøngꢀlꢁꢀ80H,ꢀ90H,ꢀA0H,ꢀB0H.ꢀ  
- C¸cꢀ thanhꢀ ghiꢀ phôcꢀ vôꢀ choꢀ truyÒnꢀ th«ngꢀ nèiꢀ tiÕpꢀ SCONꢀ (Serialꢀ portꢀ  
CONtrol)ꢀvꢁꢀSBUFꢀ(SerialꢀdataꢀBUFfer):ꢀThanhꢀghiꢀSCONꢀdïngꢀ®ÓꢀthiÕtꢀlËpꢀc¸cꢀ  
th«ngꢀsèꢀchoꢀviÖcꢀtruyÒnꢀth«ngꢀnèiꢀtiÕp.ꢀCßnꢀthanhꢀghiꢀSBUFꢀdïngꢀlꢁmꢀvïngꢀnhíꢀ®Ömꢀ  
bufferꢀchoꢀviÖcꢀtruyÒnꢀth«ng.ꢀ  
- ThanhꢀghiꢀPCONꢀꢂꢀPowerꢀCONtrol:ꢀ§©yꢀlꢁꢀthanhꢀghiꢀ®iÒuꢀkhiÓnꢀnguånꢀcÊpꢀ  
choꢀ8051.ꢀCãꢀthÓꢀdïngꢀthanhꢀghiꢀnꢁyꢀ®Óꢀ®Ætꢀbéꢀviꢀ®iÒuꢀkhiÓnꢀvꢁoꢀchÕꢀ®éꢀPowerꢀDownꢀ  
hoÆcꢀIDE.ꢀ  
ꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ10  
ꢀ
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ1ꢀ:ꢀTængꢀquanꢀvÒꢀviꢀ®iÒuꢀkhiÓnꢀ  
ꢀ
ꢀ
- C¸cꢀ thanhꢀ ghiꢀ ®iÒuꢀ khiÓnꢀ ng¾tꢀ IPꢀ (Interruptꢀ Priority)ꢀ vꢁꢀ IEꢀ (Interruptꢀ  
Enable)ꢀ:ꢀThanhꢀghiꢀIEꢀdïngꢀ®ÓꢀchoꢀphÐpꢀc¸cꢀng¾tꢀho¹tꢀ®éng/kh«ngꢀho¹tꢀ®éng.ꢀCßnꢀ  
thanhꢀghiꢀIPꢀdïngꢀ®Óꢀx¸cꢀ®Þnhꢀmøcꢀ−uꢀtiªnꢀchoꢀc¸cꢀng¾tꢀcñaꢀ8051.ꢀ  
- C¸cꢀthanhꢀghiꢀ®iÒuꢀkhiÓnꢀbéꢀ®Þnhꢀthêiꢀ:ꢀ§ãꢀlꢁꢀc¸cꢀthanhꢀghiꢀTMOD,ꢀTCON,ꢀ  
TH0,ꢀTL0,ꢀTH1,ꢀTL1.ꢀC¸cꢀthanhꢀghiꢀnꢁyꢀ®−îcꢀsöꢀdôngꢀ®Óꢀ®iÒuꢀkhiÓnꢀbéꢀ®Þnhꢀthêiꢀ0ꢀ  
vꢁꢀ1.ꢀꢀ  
- ThanhꢀghiꢀSPꢀꢂꢀStackꢀPointerꢀ:ꢀThanhꢀghiꢀconꢀtrorꢀng¨nꢀxÕpꢀ(stack),ꢀSPꢀchøaꢀ  
®ÞaꢀchØꢀcñaꢀd÷ꢀliÖuꢀhiÖnꢀ®angꢀëꢀ®Ønhꢀstack.ꢀNéiꢀdungꢀmÆcꢀ®ÞnhꢀcñaꢀSPꢀkhiꢀkhëiꢀ®éngꢀlꢁꢀ  
07H.ꢀThaoꢀt¸cꢀcÊtꢀvꢁoꢀstackꢀ®ÇuꢀtiªnꢀsÏꢀl−uꢀd÷ꢀliÖuꢀvꢁoꢀvÞꢀtrÝꢀnhíꢀcãꢀ®ÞaꢀchØꢀ08Hꢀv×ꢀc¬ꢀ  
chÕꢀlꢁmꢀviÖcꢀcñaꢀchipꢀ8051ꢀlꢁꢀt¨ngꢀnéiꢀdungꢀSPꢀlªnꢀ1ꢀtr−ícꢀkhiꢀthùcꢀhiÖnꢀl−uꢀd÷ꢀliÖuꢀ  
vꢁoꢀng¨nꢀxÕp.ꢀꢀ  
- Conꢀtráꢀd÷ꢀliÖuꢀDPTRꢀꢂꢀDataꢀPoinTeRꢀ:ꢀ§−îcꢀdïngꢀ®ÓꢀtruyꢀxuÊtꢀbéꢀnhíꢀ  
ch−¬ngꢀtr×nhꢀngoꢁiꢀhoÆcꢀbéꢀnhíꢀd÷ꢀliÖuꢀngoꢁi.ꢀDPTRꢀlꢁꢀthanhꢀghiꢀ16ꢀbitꢀgåmꢀ2ꢀphÇnꢀlꢁꢀ  
DPHꢀvꢁꢀDPL.ꢀ  
1.1.3.3ꢀC¸cꢀho¹tꢀ®éngꢀchøcꢀn¨ngꢀchÝnhꢀcñaꢀ8051ꢀ  
Ho¹tꢀ®éngꢀ®Þnhꢀthêiꢀ  
C¸cꢀbéꢀ®Þnhꢀthêiꢀdïngꢀ®Óꢀt¹oꢀraꢀc¸cꢀkho¶ngꢀthêiꢀgianꢀkh¸cꢀnhau,ꢀdïngꢀ®Óꢀ®Õmꢀ  
sùꢀkiÖnꢀhoÆcꢀdïngꢀ®Óꢀt¹oꢀtècꢀ®éꢀbaudꢀchoꢀviÖcꢀtruyÒnꢀth«ngꢀnèiꢀtiÕp.ꢀTrongꢀ8051ꢀcãꢀ  
haiꢀbéꢀ®ÞnhꢀthêiꢀlꢁꢀT0ꢀvꢁꢀT1.ꢀViÖcꢀlùaꢀchänꢀchÕꢀ®éꢀho¹tꢀ®éngꢀchoꢀc¸cꢀTimerꢀnꢁyꢀnhêꢀ  
vꢁoꢀthanhꢀghiꢀTMOD.ꢀCßnꢀviÖcꢀ®iÒuꢀkhiÓnꢀc¸cꢀTimerꢀho¹tꢀ®éngꢀnhêꢀvꢁoꢀthanhꢀghiꢀ  
TCON.ꢀCãꢀ4ꢀmodeꢀho¹tꢀ®éngꢀchoꢀc¸cꢀTimer.ꢀModeꢀ0ꢀlꢁꢀchÕꢀ®éꢀ®Þnhꢀthêiꢀ13ꢃbit,ꢀ  
Modeꢀ1ꢀlꢁꢀchÕꢀ®éꢀ®Þnhꢀthêiꢀ16ꢃbit,ꢀModeꢀ2ꢀlꢁꢀchÕꢀ®éꢀ®Þnhꢀthêiꢀtùꢀn¹pꢀl¹iꢀ8ꢃbit,ꢀModeꢀ  
3ꢀlꢁꢀchÕꢀ®éꢀ®ÞnhꢀthêiꢀchiaꢀxÎꢀvꢁꢀcãꢀho¹tꢀ®éngꢀkh¸cꢀnhauꢀchoꢀtõngꢀbéꢀ®Þnhꢀthêi.ꢀꢀ  
Ho¹tꢀ®éngꢀcñaꢀportꢀnèiꢀtiÕpꢀ  
Chøcꢀn¨ngꢀc¬ꢀb¶nꢀcñaꢀportꢀnèiꢀtiÕpꢀlꢁꢀchuyÓnꢀ®æiꢀd÷ꢀliÖuꢀtõꢀꢀsongꢀsongꢀthꢁnhꢀnèiꢀ  
tiÕpꢀkhiꢀph¸tꢀvꢁꢀtõꢀnèiꢀtiÕpꢀthꢁnhꢀsongꢀsongꢀkhiꢀthu.ꢀD÷ꢀliÖuꢀ®−îcꢀtruyÒnꢀ®iꢀhoÆcꢀnhËnꢀ  
ꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ11  
ꢀ
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ1ꢀ:ꢀTængꢀquanꢀvÒꢀviꢀ®iÒuꢀkhiÓnꢀ  
ꢀ
ꢀ
vÒꢀth«ngꢀquaꢀbéꢀ®Ömꢀd÷ꢀliÖuꢀnèiꢀtiÕpꢀSBUFꢀ(SerialꢀdataꢀBUFfer).ꢀKhiꢀtruyÒnꢀ®i,ꢀd÷ꢀliÖuꢀ  
®−îcꢀchuyÓnꢀtõꢀsongꢀsongꢀsangꢀnèiꢀtiÕpꢀth«ngꢀquaꢀch©nꢀTxD.ꢀKhiꢀthu,ꢀd÷ꢀliÖuꢀ®−îcꢀ  
chuyÓnꢀtõꢀnèiꢀtiÕpꢀsangꢀsongꢀsongꢀth«ngꢀquaꢀch©nꢀRxD.ꢀThanhꢀghiꢀSBUFꢀcãꢀ®ÞaꢀchØꢀ  
99H.ꢀViÖcꢀghiꢀd÷ꢀliÖuꢀchoꢀSBUFꢀtøcꢀlꢁꢀph¸tꢀd÷ꢀliÖu,ꢀviÖcꢀ®äcꢀSBUFꢀtøcꢀtruyꢀxuÊtꢀd÷ꢀ  
liÖuꢀnhËnꢀ®−îcꢀ(thuꢀd÷ꢀliÖu).ꢀ§iÒuꢀkhiÓnꢀportꢀnèiꢀtiÕpꢀth«ngꢀquaꢀthanhꢀghiꢀSCONꢀcãꢀ®Þaꢀ  
chØꢀlꢁꢀ98H,ꢀthanhꢀghiꢀnꢁyꢀlꢁꢀthanhꢀghiꢀ®Þnhꢀ®ÞaꢀchØꢀtõngꢀbitꢀchoꢀtaꢀx¸cꢀ®Þnhꢀ®−îcꢀc¸cꢀ  
chÕꢀ®éꢀlꢁmꢀviÖcꢀcñaꢀportꢀnèiꢀtiÕpꢀ(th«ngꢀquaꢀhaiꢀbitꢀMS0ꢀ&ꢀMS1).ꢀ  
Ho¹tꢀ®éngꢀcñaꢀng¾tꢀtrongꢀ8051ꢀ  
Cãꢀ5ꢀnguyªnꢀnh©nꢀ®Óꢀt¹oꢀraꢀng¾tꢀtrongꢀ8051.ꢀ§ãꢀlꢁꢀ2ꢀng¾tꢀngoꢁi,ꢀhaiꢀng¾tꢀdoꢀbéꢀ  
®Þnhꢀthêiꢀvꢁꢀmétꢀng¾tꢀdoꢀportꢀnèiꢀtiÕp.ꢀKhiꢀtaꢀthiÕtꢀlËpꢀtr¹ngꢀth¸iꢀbanꢀ®Çuꢀ(sauꢀkhiꢀ  
RESET),ꢀtÊtꢀcꢀc¸cꢀng¾tꢀ®ÒuꢀbÞꢀv«ꢀhiÖuꢀho¸ꢀvꢁꢀsauꢀ®ãꢀchóngꢀ®−îcꢀchoꢀphÐpꢀriªngꢀrÏꢀ  
b»ngꢀphÇnꢀmÒm.ꢀ  
Khiꢀch−¬ngꢀtr×nhꢀ®angꢀthùcꢀhiÖn,ꢀnÕuꢀcãꢀng¾tꢀvíiꢀ−uꢀtiªnꢀcaoꢀxuÊtꢀhiÖn,ꢀtr×nhꢀphôcꢀ  
vôꢀng¾tꢀchoꢀng¾tꢀcãꢀmøcꢀ−uꢀtiªnꢀthÊpꢀt¹mꢀdõng.ꢀTaꢀkh«ngꢀthÓꢀt¹mꢀdõngꢀmétꢀch−¬ngꢀ  
tr×nhꢀng¾tꢀcãꢀmøcꢀ−uꢀtiªnꢀcaoꢀh¬n.ꢀKhiꢀcãꢀ2ꢀng¾tꢀkh¸cꢀnhauꢀxuÊtꢀhiÖnꢀ®ångꢀthêi,ꢀng¾tꢀ  
cãꢀmùcꢀ−uꢀtiªnꢀcaoꢀsÏꢀ®−îcꢀphôcꢀvôꢀtr−íc.ꢀKhiꢀ2ꢀng¾tꢀcãꢀcïngꢀmøcꢀ−uꢀtiªnꢀxuÊtꢀhiÖnꢀ  
®ångꢀthêi,ꢀchuçiꢀvßngꢀcèꢀ®ÞnhꢀsÏꢀx¸cꢀ®Þnhꢀng¾tꢀbꢁoꢀ®−îcꢀphôcꢀvôꢀtr−íc.ꢀChuçiꢀvßngꢀ  
nꢁyꢀsÏꢀlꢁꢀng¾tꢀngoꢁiꢀ0,ꢀng¾tꢀngoꢁiꢀ1,ꢀng¾tꢀdoꢀbéꢀ®Þnhꢀthêiꢀ0,ꢀng¾tꢀdoꢀbéꢀ®Þnhꢀthêiꢀ1,ꢀ  
ng¾tꢀdoꢀportꢀnèiꢀtiÕp,ꢀng¾tꢀdoꢀbéꢀ®Þnhꢀthêiꢀ2ꢀ(®èiꢀvíiꢀ8052).ꢀꢀ  
Khiꢀmétꢀng¾tꢀ®−îcꢀchÊpꢀnhËn,ꢀgi¸ꢀtrÞꢀ®−îcꢀn¹pꢀchoꢀbéꢀ®Õmꢀch−¬ngꢀtr×nhꢀ®−îcꢀgäiꢀ  
lꢁꢀvÐcꢀt¬ꢀng¾t.ꢀVÐcꢀt¬ꢀng¾tꢀlꢁꢀ®ÞaꢀchØꢀb¾tꢀ®Çuꢀcñaꢀtr×nhꢀphôcꢀvôꢀng¾tꢀcñaꢀc¸cꢀng¾tꢀt−¬ngꢀ  
øng.ꢀC¸cꢀvÐcꢀt¬ꢀng¾tꢀ®−îcꢀchoꢀëꢀb¶ngꢀsauꢀ:ꢀ ꢀ  
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ12  
ꢀ
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ1ꢀ:ꢀTængꢀquanꢀvÒꢀviꢀ®iÒuꢀkhiÓnꢀ  
ꢀ
ꢀ
Nguånꢀng¾tꢀ  
ResetꢀhÖꢀthèngꢀ  
Ng¾tꢀngoꢁiꢀ0ꢀ  
Béꢀ®Þnhꢀthêiꢀ0ꢀ  
Ng¾tꢀngoꢁiꢀ1ꢀ  
Béꢀ®Þnhꢀthêiꢀ1ꢀ  
PortꢀnèiꢀtiÕpꢀ  
Cêꢀ  
RSTꢀ  
§ÞaꢀchØꢀvectorꢀng¾tꢀ  
0000Hꢀ  
IE0ꢀ  
0003Hꢀ  
TF0ꢀ  
000BHꢀ  
IE1ꢀ  
0013Hꢀ  
TF1ꢀ  
001BHꢀ  
RIꢀorꢀTIꢀ  
TF2ꢀorꢀEXF2ꢀ  
0023Hꢀ  
Béꢀ®Þnhꢀthêiꢀ2ꢀ  
002BHꢀ  
ꢀ
Ho¹tꢀ®éngꢀRESETꢀcñaꢀ8051ꢀ  
8051ꢀ®−îcꢀresetꢀb»ngꢀc¸chꢀgi÷ꢀch©nꢀRSTꢀëꢀmøcꢀcaoꢀtèiꢀthiÓuꢀhaiꢀchuꢀkúꢀm¸yꢀvꢁꢀ  
sauꢀ®ãꢀchuyÓnꢀvÒꢀmøcꢀthÊp.ꢀTr¹ngꢀth¸iꢀcñaꢀtÊtꢀc¶ꢀc¸cꢀthanhꢀghiꢀsauꢀkhiꢀresetꢀhÖꢀthèngꢀ  
nh−ꢀꢀsauꢀ:  
ꢀ
Thanhꢀghiꢀ  
Béꢀ®Õmꢀch−¬ngꢀtr×nhꢀPCꢀ  
ThanhꢀchøaꢀAꢀ  
ThanhꢀghiꢀBꢀ  
PSWꢀ  
Néiꢀdungꢀ  
0000Hꢀ  
00Hꢀ  
00Hꢀ  
00Hꢀ  
SPꢀ  
07Hꢀ  
DPTRꢀ  
0000Hꢀ  
FFHꢀ  
Portꢀ0ꢀ®Õnꢀportꢀ3ꢀ  
IPꢀ  
xxx00000Bꢀ  
0xx00000Bꢀ  
00Hꢀ  
IEꢀ  
C¸cꢀthanhꢀghiꢀ®Þnhꢀthêiꢀ  
SCONꢀ  
00Hꢀ  
SBUFꢀ  
00Hꢀ  
PCONꢀ(ꢀHMOS)ꢀ  
PCONꢀ(ꢀCMOS)ꢀ  
0xxxxxxxBꢀ  
0xxx0000Bꢀ  
ꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ13  
ꢀ
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ1ꢀ:ꢀTængꢀquanꢀvÒꢀviꢀ®iÒuꢀkhiÓnꢀ  
ꢀ
ꢀ
ꢀꢀKhiꢀresetꢀhÖꢀthèngꢀthanhꢀghiꢀPCꢀ®−îcꢀn¹pꢀ®ÞaꢀchØꢀ0000H,ꢀkhiꢀ®ãꢀch−¬ngꢀtr×nhꢀsÏꢀ  
b¾tꢀ®Çuꢀtõꢀ®ÞaꢀchØꢀ®Çuꢀtiªnꢀtrongꢀbéꢀnhíꢀch−¬ngꢀtr×nh.ꢀNéiꢀdungꢀcñaꢀRAMꢀꢀtrªnꢀchipꢀ  
kh«ngꢀbÞꢀ¶nhꢀh−ëngꢀkhiꢀtaꢀresetꢀhÖꢀthèng.ꢀ  
1.1.4ꢀGiíiꢀthiÖuꢀhäꢀviꢀ®iÒuꢀkhiÓnꢀ8ꢀbitꢀcñaꢀMotorolaꢀ  
C¸cꢀhäꢀviꢀ®iÒuꢀkhiÓnꢀcñaꢀMotorolaꢀ®−îcꢀkÝꢀhiÖuꢀb¾tꢀ®Çuꢀbëiꢀch÷ꢀc¸iꢀMC.ꢀV×ꢀcèꢀ  
g¾ngꢀgi÷ꢀl¹iꢀphÇnꢀmÒmꢀc¸cꢀnhꢁꢀchÕꢀt¹oꢀlinhꢀkiÖnꢀb¸nꢀdÉnꢀth−êngꢀduyꢀtr×ꢀsùꢀt−¬ngꢀthÝchꢀ  
víiꢀc¸cꢀbéꢀviꢀxöꢀlÝꢀ®Çuꢀ®êi.ꢀHꢂngꢀMotorolaꢀ®−aꢀraꢀbéꢀviꢀ®iÒuꢀkhiÓnꢀM6801ꢀ®Çuꢀtiªnꢀcñaꢀ  
hꢂngꢀtrªnꢀthÞꢀtr−êngꢀthÕꢀgiíiꢀvꢁoꢀn¨mꢀ1978ꢀvꢁꢀbéꢀviꢀ®iÒuꢀkhiÓnꢀnꢁyꢀ®−îcꢀchÕꢀt¹oꢀtrªnꢀ  
c¬ꢀsëꢀsöꢀdôngꢀbéꢀviꢀxöꢀlÝꢀM6800.ꢀBéꢀviꢀ®iÒuꢀkhiÓnꢀM6801ꢀcãꢀbéꢀnhíꢀROMꢀvꢁꢀRAMꢀ  
ngoꢁiꢀlínꢀnhÊtꢀlªnꢀ®Õnꢀ64KBꢀvíiꢀm¹chꢀgiaoꢀdiÖnꢀvꢁo/ra,ꢀtruyÒnꢀth«ngꢀnèiꢀtiÕpꢀkh«ngꢀ  
®ångꢀbéꢀ®ꢂꢀb¾tꢀ®ÇuꢀphæꢀbiÕnꢀtrongꢀhÖꢀthèngꢀ®iÒuꢀkhiÓnꢀ«t«.ꢀꢀ  
Sauꢀ®ãꢀvꢁoꢀn¨mꢀ1985ꢀMotorolaꢀ®ꢂꢀph¸tꢀtriÓnꢀbéꢀviꢀ®iÒuꢀkhiÓnꢀ68HC11ꢀt−¬ngꢀ  
thÝchꢀvíiꢀbéꢀviꢀxöꢀlÝꢀM6800.ꢀBéꢀviꢀ®iÒuꢀkhiÓnꢀMC68HC11ꢀtiªuꢀthôꢀÝtꢀc«ngꢀsuÊtꢀh¬nꢀvꢁꢀ  
choꢀphÐpꢀtÝnꢀhiÖuꢀnhiÔuꢀcaoꢀh¬nꢀsoꢀvíiꢀc¸cꢀbéꢀviꢀxöꢀlÝꢀ®Çuꢀ®êi.ꢀMC68HC11ꢀcãꢀnhiÒuꢀ  
phiªnꢀ b¶n,ꢀ vÝꢀ dôꢀ MC68HC11A8ꢀ vꢁꢀ MC68HC11E9.ꢀ Métꢀ sèꢀ hꢂngꢀ nh−ꢀ Mitsubishi,ꢀ  
Toshibaꢀcòngꢀs¶nꢀxuÊtꢀc¸cꢀbéꢀviꢀ®iÒuꢀkhiÓnꢀnꢁyꢀtheoꢀc«ngꢀnghÖꢀcñaꢀMotorola.ꢀ  
B¶ngꢀd−íiꢀ®©yꢀliÖtꢀkªꢀc¸cꢀ®Æcꢀ®iÓmꢀc¬ꢀb¶nꢀcñaꢀmétꢀsèꢀchipꢀviꢀ®iÒuꢀkhiÓnꢀtrongꢀhäꢀ  
68HC11:ꢀ  
MCꢀ  
ROMꢀ  
RAMꢀ  
EEPROMꢀ  
ADCꢀ  
I/Oꢀ  
68HC11A8ꢀ  
8KBꢀ  
256ꢀbytesꢀ  
512ꢀbytesꢀ  
8ꢀchannelsꢀ  
38ꢀpinsꢀ  
68HC811E2ꢀ  
68HC11F1ꢀ  
68HC11E9ꢀ  
0ꢀ  
0ꢀ  
256ꢀbytesꢀ  
1ꢀKBꢀ  
2ꢀKBꢀ  
ꢃꢀ  
ꢃꢀ  
ꢃꢀ  
ꢃꢀ  
ꢃꢀ  
ꢃꢀ  
ꢃꢀ  
12ꢀKBꢀ  
512ꢀbytesꢀ  
512ꢀbytesꢀ  
68HC11B8ꢀ  
68HC11B0ꢀ  
8ꢀKBꢀ  
0ꢀ  
256ꢀbytesꢀ  
256ꢀbytesꢀ  
512ꢀbytesꢀ  
0ꢀ  
ꢃꢀ  
ꢃꢀ  
ꢃꢀ  
ꢃꢀ  
68HC11B1ꢀ  
68HC11D3ꢀ  
68HC11A0ꢀ  
0ꢀ  
4ꢀKBꢀ  
0ꢀ  
256ꢀbytesꢀ  
192ꢀbytesꢀ  
256ꢀbytesꢀ  
512bytesꢀ  
ꢃꢀ  
ꢃꢀ  
ꢃꢀ  
ꢃꢀ  
ꢃꢀ  
40ꢀpinsꢀ  
22ꢀpinsꢀ  
0ꢀ  
ꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ14  
ꢀ
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ1ꢀ:ꢀTængꢀquanꢀvÒꢀviꢀ®iÒuꢀkhiÓnꢀ  
ꢀ
ꢀ
1.1.5ꢀGiíiꢀthiÖuꢀc¸cꢀhäꢀviꢀ®iÒuꢀkhiÓnꢀ8ꢀbitꢀcñaꢀhꢃngꢀMicrochipꢀTechnologyꢀ  
HꢂngꢀMicrochipꢀTechnologyꢀlꢁꢀmétꢀtrongꢀnh÷ngꢀnhꢁꢀcungꢀcÊpꢀhꢁngꢀ®ÇuꢀvÒꢀc¸cꢀ  
gi¶iꢀph¸pꢀ®iÒuꢀkhiÓnꢀchoꢀc¸cꢀhÖꢀthèngꢀnhóngꢀ(Embeddedꢀcontrolꢀsystem).ꢀHaiꢀdßngꢀ  
s¶nꢀ phÈmꢀ chÝnhꢀ cñaꢀ hꢂngꢀ lꢁꢀ c¸cꢀ häꢀ viꢀ ®iÒuꢀ khiÓnꢀ 8ꢃbitꢀ PIC16/17ꢀ vꢁꢀ c¸cꢀ chipꢀ nhíꢀ  
kh«ngꢀbayꢀh¬iꢀEEPROMꢀnèiꢀtiÕp,ꢀnh÷ngꢀs¶nꢀphÈmꢀnꢁyꢀ®−îcꢀ®−aꢀvꢁoꢀøngꢀdôngꢀchoꢀ  
viÖcꢀ®−aꢀraꢀc¸cꢀgi¶iꢀph¸pꢀthiÕtꢀkÕꢀc¸cꢀhÖꢀthèngꢀ®iÒuꢀkhiÓnꢀnhóngꢀcñaꢀhꢂngꢀcungꢀcÊpꢀ  
choꢀkh¸chꢀhꢁng.ꢀ  
C¸cꢀhäꢀviꢀ®iÒuꢀkhiÓnꢀPIC16CxxꢀvꢁꢀPIC17CxxꢀcñaꢀhꢂngꢀMicrochipꢀTechnologyꢀ  
®−îcꢀsöꢀdôngꢀkh¸ꢀth«ngꢀdôngꢀvꢁꢀréngꢀrꢂiꢀchoꢀc¸cꢀøngꢀdôngꢀ®iÒuꢀkhiÓnꢀtrongꢀviÖcꢀchÕꢀ  
t¹oꢀc¸cꢀs¶nꢀphÈmꢀtiªuꢀdïng,ꢀtrongꢀtùꢀ®éngꢀhãaꢀv¨nꢀphßng,ꢀthiÕtꢀbÞꢀngo¹iꢀviꢀcñaꢀm¸yꢀ  
tÝnh,ꢀc¸cꢀhÖꢀthèngꢀtùꢀ®éngꢀ®iÒuꢀkhiÓnꢀ...ꢀꢀꢀꢀ  
D−íiꢀ®©yꢀliÖtꢀkªꢀc¸cꢀ®Æcꢀ®iÓmꢀchÝnh,ꢀc¸cꢀthꢁnhꢀphÇnꢀc¬ꢀb¶nꢀcñaꢀmétꢀsèꢀꢀchipꢀviꢀ  
®iÒuꢀkhiÓnꢀtrongꢀc¸cꢀhäꢀviꢀ®iÒuꢀkhiÓnꢀ8ꢃꢀbitꢀPIC16CxxꢀvꢁꢀPIC17Cxx.ꢀ  
HäꢀPIC16Cxxꢀ  
ꢀ
ꢀ
ꢀ
Memoryꢀ  
Peripheralꢀ  
Featuresꢀ  
PICꢀ (0)ꢀ  
(1)ꢀ (2)ꢀ (3)ꢀ (4)ꢀ (5)ꢀ (6)ꢀ (7)ꢀ  
(8)ꢀ (9)ꢀ (10)ꢀ (12)ꢀ (13)ꢀ  
16C61ꢀ  
16C62ꢀ  
16C63ꢀ  
16C64ꢀ  
16C65ꢀ  
20ꢀ  
20ꢀ  
20ꢀ  
20ꢀ  
20ꢀ  
1Kꢀ  
2Kꢀ  
4Kꢀ  
2Kꢀ  
4Kꢀ  
_ꢀ  
36ꢀ  
_ꢀ  
1ꢀ  
3ꢀ  
3ꢀ  
3ꢀ  
3ꢀ  
_ꢀ  
2ꢀ  
2ꢀ  
1ꢀ  
2ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
3ꢀ  
13ꢀ  
22ꢀ  
22ꢀ  
33ꢀ  
33ꢀ  
_ꢀ 128ꢀ _ꢀ  
_ꢀ 192ꢀ _ꢀ  
_ꢀ 128ꢀ _ꢀ  
_ꢀ 192ꢀ _ꢀ  
Yesꢀ  
Yesꢀ  
Yesꢀ  
Yesꢀ  
10ꢀ  
10ꢀ  
8ꢀ  
_ꢀ  
Yesꢀ  
Yesꢀ  
11ꢀ  
16C620ꢀ  
20ꢀ  
512ꢀ  
_ꢀ  
_ꢀ  
80ꢀ  
80ꢀ  
_ꢀ  
_ꢀ  
1ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
2ꢀ  
4ꢀ  
13ꢀ  
16C621ꢀ  
16C622ꢀ  
16C71ꢀ  
20ꢀ  
20ꢀ  
20ꢀ  
1Kꢀ  
2Kꢀ  
1Kꢀ  
1ꢀ  
1ꢀ  
1ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
4ꢀ  
2ꢀ  
2ꢀ  
_ꢀ  
4ꢀ  
4ꢀ  
4ꢀ  
13ꢀ  
13ꢀ  
13ꢀ  
_ꢀ 128ꢀ _ꢀ  
_ꢀ 36ꢀ _ꢀ  
16C73ꢀ  
16C74ꢀ  
16C84ꢀ  
20ꢀ  
20ꢀ  
10ꢀ  
4Kꢀ  
4Kꢀ  
_ꢀ  
_ꢀ 192ꢀ _ꢀ  
_ꢀ 192ꢀ _ꢀ  
1Kꢀ 36ꢀ 64ꢀ  
3ꢀ  
3ꢀ  
1ꢀ  
2ꢀ  
2ꢀ  
_ꢀ  
Yesꢀ  
Yesꢀ  
_ꢀ  
_ꢀ  
Yesꢀ  
_ꢀ  
5ꢀ  
8ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
_ꢀ  
11ꢀ  
12ꢀ  
4ꢀ  
22ꢀ  
33ꢀ  
13ꢀ  
ChóꢀthÝchꢀ:ꢀ  
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ15  
ꢀ
ꢀ
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ1ꢀ:ꢀTængꢀquanꢀvÒꢀviꢀ®iÒuꢀkhiÓnꢀ  
ꢀ
ꢀ
(0) ꢀꢀꢀ:ꢀTÇnꢀsèꢀcÊpꢀt¹oꢀxungꢀClockꢀ(MHz).ꢀ  
(1) ꢀꢀꢀ:ꢀDungꢀl−îngꢀbéꢀnhíꢀch−¬ngꢀtr×nhꢀEPROMꢀtrong.ꢀ  
(2) ꢀꢀꢀ:ꢀDungꢀl−îngꢀbéꢀnhíꢀch−¬ngꢀtr×nhꢀEEPROMꢀtrong.ꢀ  
(3) ꢀꢀꢀ:ꢀDungꢀl−îngꢀbéꢀnhíꢀd÷ꢀliÖuꢀRAMꢀtrongꢀ(bytes).ꢀ  
(4) ꢀꢀꢀ:ꢀDungꢀl−îngꢀbéꢀnhíꢀd÷ꢀliÖuꢀEEPROMꢀtrongꢀ(bytes).ꢀ  
(5) ꢀꢀꢀ:ꢀSèꢀModuleꢀTimer.ꢀ  
(6) ꢀꢀꢀ:ꢀSèꢀCapture,ꢀModuleꢀPWM.ꢀ  
(7) ꢀꢀꢀ:ꢀCængꢀnèiꢀtiÕp.ꢀ  
(8) ꢀꢀꢀ:ꢀCængꢀsongꢀsong.ꢀ  
(9) ꢀꢀꢀ:ꢀSèꢀkªnhꢀchuyÓnꢀ®æiꢀAnalogꢀ–ꢀDigitalꢀ(ADC).ꢀ  
(10) :ꢀSèꢀbéꢀsoꢀs¸nhꢀ(Comparator).ꢀ  
(11) :ꢀSèꢀnguånꢀng¾tꢀ(Interrupꢀsource).ꢀ  
(12) :ꢀSèꢀ®−êngꢀvꢁo/raꢀ(I/Oꢀpins).ꢀ  
HäꢀPIC17Cxxꢀ  
Memoryꢀ  
Peripheralsꢀ  
Featuresꢀ  
PICꢀ  
(0)ꢀ  
(1)ꢀ (2)ꢀ (3)ꢀ (4)ꢀ (5)ꢀ  
(6)ꢀ  
Yesꢀ Yesꢀ  
Yesꢀ Yesꢀ  
Yesꢀ Yesꢀ  
(7)ꢀ (8)ꢀ (9)ꢀ  
17C42ꢀ 25ꢀ 2Kꢀ 232ꢀ 4ꢀ  
17C43ꢀ 25ꢀ 4Kꢀ 454ꢀ 4ꢀ  
2ꢀ  
2ꢀ  
2ꢀ  
11ꢀ  
11ꢀ  
11ꢀ  
33ꢀ  
33ꢀ  
33ꢀ  
55ꢀ  
58ꢀ  
58ꢀ  
17C44ꢀ 25ꢀ 8Kꢀ 454ꢀ 4ꢀ  
ChóꢀthÝchꢀ:ꢀ  
(0) :ꢀTÇnꢀsèꢀcÊpꢀt¹oꢀxungꢀClockꢀ(MHz).ꢀ  
(1) :ꢀDungꢀl−îngꢀbéꢀnhíꢀch−¬ngꢀtr×nhꢀEPROMꢀbªnꢀtrong.ꢀ  
(2) :ꢀDungꢀl−îngꢀbéꢀnhíꢀd÷ꢀliÖuꢀRAMꢀbªnꢀtrong.ꢀ  
ꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ16  
ꢀ
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ1ꢀ:ꢀTængꢀquanꢀvÒꢀviꢀ®iÒuꢀkhiÓnꢀ  
ꢀ
ꢀ
(3) :ꢀSèꢀModuleꢀTimer.ꢀ  
(4) :ꢀSèꢀModuleꢀPWM.ꢀ  
(5) :ꢀCængꢀnèiꢀtiÕp.ꢀ  
(6) :ꢀNg¾tꢀngoꢁiꢀ(Externalꢀinterrupts).ꢀ  
(7) :ꢀSèꢀnguånꢀng¾tꢀ(Interruptꢀsources).ꢀ  
(8) :ꢀSèꢀ®−êngꢀvꢁo/raꢀ(I/Oꢀpins).ꢀ  
(9) :ꢀSèꢀlÖnhꢀ®iÒuꢀkhiÓnꢀ(Instructions).ꢀ  
§¸nhꢀgi¸ꢀc¸cꢀdßngꢀPICꢀ  
ꢃꢀDßngꢀPICꢀnhiÒuꢀch©nꢀnhÊtꢀlꢁꢀdßngꢀdsPIC30FxxxxꢀvꢁꢀPIC18Fxxxx,ꢀcãꢀnh÷ngꢀconꢀsèꢀ  
ch©nꢀlªnꢀ®Õnꢀ80ꢀch©n.ꢀ  
ꢃꢀDßngꢀPICꢀÝtꢀch©nꢀnhÊtꢀlꢁꢀdßngꢀPIC10Fxxx,ꢀchØꢀcãꢀ6ꢀch©nꢀ  
ꢃꢀDßngꢀPICꢀphæꢀbiÕnꢀnhÊtꢀlꢁꢀdßngꢀPIC16F877Aꢀ(®ñꢀm¹nhꢀvÒꢀtÝnhꢀn¨ng,ꢀ40ꢀch©n,ꢀbéꢀnhíꢀ  
®ñꢀchoꢀhÇuꢀhÕtꢀc¸cꢀøngꢀdôngꢀth«ngꢀth−êng)ꢀ  
ꢃꢀDßngꢀPICꢀmꢁꢀ®−îcꢀc¸cꢀchuyªnꢀgiaꢀ®¸nhꢀgi¸ꢀcaoꢀnhÊtꢀlꢁꢀdßngꢀPIC16F876Aꢀ(28ꢀch©n,ꢀ  
chøcꢀn¨ngꢀkh«ngꢀkh¸cꢀg×ꢀsoꢀvíiꢀPIC16F877A,ꢀnh−ngꢀnháꢀgänꢀh¬nꢀnhiÒu,ꢀvꢁꢀsèꢀch©nꢀ  
còngꢀkh«ngꢀqu¸ꢀÝtꢀnh−ꢀPIC16F88).ꢀ  
ꢃꢀDßngꢀPICꢀhçꢀtrîꢀgiaoꢀtiÕpꢀUSBꢀlꢁꢀdßngꢀPIC18F2550ꢀvꢁꢀPIC18F4550ꢀ  
ꢃꢀDßngꢀPICꢀ®iÒuꢀkhiÓnꢀ®éngꢀc¬ꢀm¹nhꢀnhÊtꢀlꢁꢀdßngꢀPIC18F4x31ꢀvꢁꢀdßngꢀdsPIC30Fꢀ  
dïngꢀ®iÒuꢀkhiÓnꢀ®éngꢀc¬ꢀ  
ꢃꢀDßngꢀPICꢀhiÖnꢀnayꢀ®ꢂꢀkh«ngꢀcßnꢀ®−îcꢀs¶nꢀxuÊtꢀn÷aꢀlꢁꢀdßngꢀPIC17xxxxx.ꢀ  
*(C¸cꢀ®¸nhꢀgi¸ꢀvÒꢀPICꢀ®−îcꢀtrÝchꢀëꢀwebsiteꢀwww.picvietnam.com)ꢀ  
1.1.6ꢀGiíiꢀthiÖuꢀchipꢀviꢀ®iÒuꢀkhiÓnꢀth«ngꢀminhꢀPSoCꢀ  
PSoCꢀlꢁꢀch÷ꢀviÕtꢀt¾tꢀcñaꢀProgrammableꢀSystemꢀonꢀChip.ꢀ§ãꢀlꢁꢀmétꢀc«ngꢀnghÖꢀchÕꢀ  
t¹oꢀchipꢀhiÖnꢀ®¹iꢀnhÊtꢀchoꢀ®Õnꢀnay,ꢀchoꢀphÐpꢀt¹oꢀraꢀc¸cꢀchipꢀhÖꢀthèngꢀxöꢀlÝꢀhçnꢀhîpꢀ  
(Mixedꢀsignal)ꢀvíiꢀkh¶ꢀn¨ngꢀxöꢀlÝꢀthuËtꢀto¸nꢀm¹nh.ꢀ  
§Æcꢀ®iÓmꢀcñaꢀc¸cꢀthÕꢀhÖꢀviꢀ®iÒuꢀkhiÓnꢀchÕꢀt¹oꢀtheoꢀc«ngꢀnghÖꢀtr−ícꢀ®©yꢀlꢁꢀtrªnꢀ  
métꢀchipꢀviꢀ®iÒuꢀkhiÓnꢀchØꢀcãꢀthÓꢀthayꢀ®æiꢀ®−îcꢀch−¬ngꢀtr×nhꢀphÇnꢀmÒmꢀchøꢀkh«ngꢀthÓꢀ  
lËpꢀtr×nhꢀthayꢀ®æiꢀ®−îcꢀcÊuꢀtrócꢀphÇnꢀcøng.ꢀGi¸ꢀthꢁnhꢀchoꢀviÖcꢀsöꢀdôngꢀc¸cꢀchipꢀviꢀ®iÒuꢀ  
ꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ17  
ꢀ
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ1ꢀ:ꢀTængꢀquanꢀvÒꢀviꢀ®iÒuꢀkhiÓnꢀ  
ꢀ
ꢀ
khiÓnꢀvꢁꢀmuaꢀc¸cꢀphÇnꢀmÒmꢀhçꢀtrîꢀ®Óꢀph¸tꢀtriÓnꢀc¸cꢀøngꢀdôngꢀlꢁꢀrÊtꢀ®¾tꢀvꢁꢀmangꢀl¹iꢀ  
hiÖuꢀqu¶ꢀkh«ngꢀcao,ꢀkhãꢀcãꢀthÓꢀth«ngꢀminhꢀhãaꢀviÖcꢀ®iÒuꢀkhiÓnꢀhÖꢀthèng.ꢀꢀꢀ  
Víiꢀchipꢀviꢀ®iÒuꢀkhiÓnꢀth«ngꢀminhꢀchÕꢀt¹oꢀtheoꢀc«ngꢀnghÖꢀPSoC,ꢀchóngꢀtaꢀcãꢀthÓꢀ  
lËpꢀtr×nhꢀtrªnꢀchipꢀ®Óꢀthayꢀ®æiꢀkh«ngꢀnh÷ngꢀc¶ꢀphÇnꢀmÒmꢀ®iÒuꢀkhiÓnꢀmꢁꢀc¶ꢀcÊuꢀtrócꢀ  
phÇnꢀcøngꢀngayꢀkhiꢀhÖꢀthèngꢀ®angꢀho¹tꢀ®éng.ꢀViÖcꢀøngꢀdôngꢀchipꢀviꢀ®iÒuꢀkhiÓnꢀth«ngꢀ  
minhꢀtheoꢀc«ngꢀnghÖꢀPSoCꢀmangꢀl¹iꢀhiÖuꢀqu¶ꢀcaoꢀvÒꢀküꢀthuËtꢀvꢁꢀgi¸ꢀthꢁnhꢀgi¶mꢀ®iꢀ  
nhiÒuꢀlÇnꢀsoꢀvíiꢀviÖcꢀsöꢀdôngꢀc¸cꢀchipꢀviꢀ®iÒuꢀkhiÓnꢀtr−ícꢀ®©y.ꢀ§èiꢀvíiꢀc¸cꢀchipꢀviꢀ®iÒuꢀ  
khiÓnꢀth«ngꢀminh,ꢀbªnꢀtrongꢀnãꢀ®ꢂꢀtÝchꢀhîpꢀ®Çyꢀ®ñꢀc¸cꢀthꢁnhꢀphÇnꢀCPU,ꢀc¸cꢀbéꢀnhí,ꢀ  
c¸cꢀkhèiꢀ(block)ꢀt−¬ngꢀtùꢀvꢁꢀsèꢀnªnꢀmétꢀsèꢀthꢁnhꢀphÇnꢀngo¹iꢀviꢀbªnꢀngoꢁiꢀchipꢀtrongꢀhÖꢀ  
thèngꢀcãꢀthÓꢀgi¶mꢀ®i.ꢀV×ꢀthÕ,ꢀgi¸ꢀthꢁnhꢀvꢁꢀkÝchꢀth−ícꢀcñaꢀhÖꢀthèngꢀgi¶mꢀ®iꢀnhiÒuꢀsoꢀvíiꢀ  
hÖꢀthèngꢀsöꢀdôngꢀc¸cꢀchipꢀviꢀ®iÒuꢀkhiÓnꢀthÕꢀhÖꢀtr−ícꢀ®©y.ꢀ  
HiÖnꢀnay,ꢀcãꢀnhiÒuꢀhꢂngꢀ®iÖnꢀtöꢀtrªnꢀthÕꢀgiíiꢀquanꢀt©mꢀ®Çuꢀt−ꢀchoꢀviÖcꢀnghiªnꢀcøuꢀ  
vꢁꢀ¸pꢀdôngꢀc«ngꢀnghÖꢀchÕꢀt¹oꢀchipꢀmíiꢀnꢁy.ꢀTrongꢀ®ãꢀcãꢀthÓꢀkÓꢀ®ÕnꢀhꢂngꢀCypressꢀ  
Microchipꢀ®ꢂꢀ¸pꢀdôngꢀthꢁnhꢀc«ngꢀc«ngꢀnghÖꢀPSoCꢀ®Óꢀchoꢀraꢀ®êiꢀc¸cꢀhäꢀviꢀ®iÒuꢀkhiÓnꢀ  
th«ngꢀminhꢀCY8C24xxx,ꢀCY8C25xxx,ꢀCY8C26xxxꢀvꢁꢀCY8C27xxx.ꢀꢀꢀ  
MétꢀvÝꢀdôꢀcôꢀthÓꢀvÒꢀkh¶ꢀn¨ngꢀlËpꢀtr×nhꢀthayꢀ®æiꢀc¶ꢀcÊuꢀh×nhꢀphÇnꢀcøngꢀvꢁꢀch−¬ngꢀ  
tr×nhꢀphÇnꢀmÒmꢀ®iÒuꢀkhiÓnꢀlꢁꢀ®Òꢀtꢁiꢀøngꢀdôngꢀchipꢀviꢀ®iÒuꢀkhiÓnꢀth«ngꢀminhꢀc«ngꢀnghÖꢀ  
PSoCꢀ®ÓꢀchÕꢀt¹oꢀm¸yꢀb¸nꢀhꢁngꢀth«ngꢀminhꢀtùꢀ®éng.ꢀM¸yꢀcãꢀchøcꢀn¨ngꢀb¸nꢀhꢁngꢀtùꢀ  
®éngꢀvꢁoꢀbanꢀngꢁyꢀvꢁꢀbanꢀ®ªmꢀth×ꢀnãꢀthayꢀ®æiꢀc¶ꢀcÊuꢀh×nhꢀphÇnꢀcøngꢀvꢁꢀch−¬ngꢀtr×nhꢀ  
phÇnꢀmÒmꢀ®Óꢀlꢁmꢀchøcꢀn¨ngꢀtruyÒnꢀth«ng.  
ꢀ
H×nhꢀ1.3ꢀꢃꢀCÊuꢀh×nhꢀcñaꢀ  
métꢀchipꢀPSoC
ꢀ  
ꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ18  
ꢀ
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ1ꢀ:ꢀTængꢀquanꢀvÒꢀviꢀ®iÒuꢀkhiÓnꢀ  
ꢀ
ꢀ
1.2ꢀGiíiꢀthiÖuꢀc¸cꢀc«ngꢀcôꢀph¸tꢀtriÓnꢀhÖꢀviꢀxöꢀlÝꢀvꢁꢀviꢀ®iÒuꢀkhiÓnꢀ  
1.2.1ꢀC«ngꢀcôꢀph¸tꢀtriÓnꢀchoꢀhäꢀMCSꢂ51ꢀ  
1.2.1.1ꢀꢀPhÇnꢀmÒmꢀKeilꢀcñaꢀhꢃngꢀKeilꢀSoftwareꢀ  
PhÇnꢀmÒmꢀKeilꢀ Vision2ꢀlꢁꢀmétꢀch−¬ngꢀtr×nhꢀbiªnꢀdÞchꢀchoꢀphÐpꢀng−êiꢀsöꢀdôngꢀ  
cãꢀthÓꢀviÕtꢀ®−îcꢀc¸cꢀch−¬ngꢀtr×nhꢀ®iÒuꢀkhiÓnꢀchoꢀhäꢀviꢀ®iÒuꢀkhiÓnꢀMSCꢃ51ꢀb»ngꢀng«nꢀ  
ng÷ꢀCꢀvꢁꢀc¶ꢀASM.ꢀNãꢀcãꢀchøaꢀhÇuꢀhÕtꢀc¸cꢀhꢁmꢀchuÈnꢀcñaꢀANSIꢃC.ꢀ§iÒuꢀnꢁyꢀgiópꢀchoꢀ  
ng−êiꢀsöꢀdôngꢀcãꢀthÓꢀtËnꢀdôngꢀ®−îcꢀnh÷ngꢀhꢁmꢀchuÈnꢀcñaꢀCꢀ®ÓꢀviÕtꢀch−¬ngꢀtr×nhꢀchoꢀ  
viꢀ®iÒuꢀkhiÓn.ꢀViÖcꢀtæꢀchøcꢀch−¬ngꢀtr×nhꢀthꢁnhꢀc¸cꢀm«dunꢀnháꢀcòngꢀrÊtꢀdÔꢀthùcꢀhiÖn.ꢀ  
Ch−¬ngꢀtr×nhꢀbiªnꢀdÞchꢀchoꢀng«nꢀng÷ꢀCꢀcñaꢀnãꢀchÝnhꢀlꢁꢀCx51ꢀCompiler.ꢀꢀ  
Cx51ꢀCompilerꢀhçꢀtrîꢀtÊtꢀc¶ꢀc¸cꢀkiÓuꢀd÷ꢀliÖuꢀchuÈnꢀcñaꢀCꢀnh−ꢀ:ꢀchar,ꢀshort,ꢀint,ꢀ  
long,ꢀfloat.ꢀNgoꢁiꢀraꢀnãꢀcßnꢀcãꢀmétꢀvꢁiꢀkiÓuꢀd÷ꢀliÖuꢀ®ÆcꢀbiÖtꢀt−¬ngꢀthÝchꢀvíiꢀhäꢀviꢀ®iÒuꢀ  
khiÓnꢀMSCꢃ51.ꢀ  
- KiÓuꢀbitꢀ:ꢀ®©yꢀlꢁꢀkiÓuꢀd÷ꢀliÖuꢀchØꢀgåmꢀ2ꢀgi¸ꢀtrÞꢀ0ꢀvꢁꢀ1.ꢀNãꢀ®−îcꢀsöꢀdôngꢀ®Óꢀg¸nꢀ  
gi¸ꢀtrÞꢀchoꢀc¸cꢀthanhꢀghiꢀhayꢀc¸cꢀ®ÞaꢀchØꢀcãꢀthÓꢀtruyꢀnhËpꢀ®−îcꢀ®Õnꢀtõngꢀbit.ꢀ  
- KiÓuꢀsbit,ꢀsfr,ꢀsfr16ꢀ:ꢀꢀ®©yꢀlꢁꢀc¸cꢀkiÓuꢀd÷ꢀliÖuꢀdïngꢀ®Óꢀ®ÞnhꢀnghÜaꢀchoꢀc¸cꢀthanhꢀ  
ghiꢀchøcꢀn¨ngꢀ®ÆcꢀbiÖt.ꢀKiÓuꢀsfrꢀdïngꢀ®Óꢀ®ÞnhꢀnghÜaꢀchoꢀc¸cꢀthanhꢀghiꢀSFRꢀ8ꢃbit.ꢀCßnꢀ  
kiÓuꢀsfr16ꢀdïngꢀ®Óꢀ®ÞnhꢀnghÜaꢀchoꢀc¸cꢀthanhꢀghiꢀSFRꢀ16ꢃbitꢀnh−ꢀthanhꢀghiꢀRCAP2ꢀ  
dïngꢀ®Óꢀl−uꢀgi÷ꢀgi¸ꢀtrÞꢀn¹pꢀl¹iꢀchoꢀTimerꢀ2.ꢀKiÓuꢀsbitꢀdïngꢀ®Óꢀ®ÞnhꢀnghÜaꢀtõngꢀbitꢀchoꢀ  
c¸cꢀbitꢀtrongꢀc¸cꢀthanhꢀghiꢀ®ÆcꢀbiÖtꢀmꢁꢀcãꢀthÓꢀ®Þnhꢀ®ÞaꢀchØꢀbit.ꢀ  
VÝꢀdôꢀkhaiꢀb¸oꢀ:ꢀꢀ  
sfrꢀP0ꢀꢀꢀꢀꢀꢀ=ꢀ0x80;ꢀꢀꢀꢀꢀ/*ꢀPortꢀ0ꢀ*/ꢀ  
sfrꢀSPꢀꢀꢀꢀꢀꢀ=ꢀ0x81;ꢀꢀꢀꢀꢀ/*ꢀStackꢀPointerꢀ*/ꢀ  
sbitꢀP0_0ꢀ=ꢀ0x80;ꢀ  
sbitꢀP0_1ꢀ=ꢀ0x81;ꢀ  
ꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ19  
ꢀ
Gi¸oꢀtr×nhꢀm«nꢀKüꢀthuËtꢀViꢀ§iÒuꢀKhiÓnꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀCh−¬ngꢀ1ꢀ:ꢀTængꢀquanꢀvÒꢀviꢀ®iÒuꢀkhiÓnꢀ  
ꢀ
ꢀ
VÒꢀc¸chꢀtæꢀchøcꢀbéꢀnhíꢀcñaꢀviꢀ®iÒuꢀkhiÓnꢀtrongꢀphÇnꢀmÒmꢀKeilꢀC51ꢀ:ꢀ  
- Béꢀnhíꢀch−¬ngꢀtr×nhꢀ:ꢀ§©yꢀlꢁꢀvïngꢀnhíꢀchØꢀ®äcꢀtrongꢀviꢀ®iÒuꢀkhiÓn.ꢀNãꢀcãꢀthÓꢀ  
cãꢀdungꢀl−îngꢀtíiꢀ64KB.ꢀTrongꢀphÇnꢀmÒmꢀKeilꢀC51ꢀth×ꢀvïngꢀnhíꢀnꢁyꢀ®−îcꢀ®Þnhꢀd¹ngꢀ  
b»ngꢀtõꢀkho¸ꢀcode.ꢀꢀ  
VÝꢀdôꢀkhaiꢀb¸oꢀbiÕnꢀthuécꢀvïngꢀcodeꢀ:ꢀ  
charꢀcodeꢀstr[]={“DHBKDN”};ꢀ//Khaiꢀb¸oꢀmétꢀm¶ngꢀkýꢀtùꢀꢀchøaꢀtrongꢀvïngꢀnhíꢀcodeꢀ  
- Béꢀnhíꢀd÷ꢀliÖuꢀtrongꢀ:ꢀ§©yꢀlꢁꢀvïngꢀnhíꢀcãꢀthÓꢀvõaꢀghiꢀvꢁꢀ®äc.ꢀCãꢀ3ꢀkiÓuꢀvïngꢀ  
nhíꢀd÷ꢀliÖuꢀëꢀbªnꢀtrongꢀviꢀ®iÒuꢀkhiÓn.ꢀ§ãꢀlꢁꢀc¸cꢀkiÓuꢀ:ꢀdata,ꢀidata,ꢀbdata.ꢀVïngꢀnhíꢀ  
d÷ꢀliÖuꢀkiÓuꢀdataꢀlꢁꢀvïngꢀnhíꢀchøaꢀ128ꢀbyteꢀd÷ꢀliÖuꢀ®Çuꢀtiªnꢀcñaꢀviꢀ®iÒuꢀkhiÓn.ꢀVïngꢀ  
nhíꢀnꢁyꢀcãꢀthÓꢀtruyꢀcËpꢀth«ngꢀquaꢀ®ÞaꢀchØꢀtrùcꢀtiÕpꢀ®−îc.ꢀVïngꢀnhíꢀd÷ꢀliÖuꢀkiÓuꢀidataꢀ  
lꢁꢀvïngꢀnhíꢀ256ꢀbyteꢀd÷ꢀliÖuꢀtruyꢀnhËpꢀth«ngꢀquaꢀ®ÞaꢀchØꢀgi¸nꢀtiÕp.ꢀVïngꢀnhíꢀd÷ꢀliÖuꢀ  
kiÓuꢀbdataꢀlꢁꢀvïngꢀnhíꢀchøaꢀ16ꢀbyteꢀ®Þnhꢀ®ÞaꢀchØꢀbitꢀtõꢀ®ÞaꢀchØꢀ20Hꢀ®Õnꢀ2FH.ꢀ  
VÝꢀdôꢀkhaiꢀb¸oꢀbiÕnꢀtrongꢀvïngꢀnhíꢀd÷ꢀliÖuꢀtrongꢀ:ꢀ  
ꢀ
ꢀ
unsignedꢀcharꢀdataꢀv1;ꢀ//Khaiꢀb¸oꢀbiÕnꢀv1ꢀ  
unsignedꢀintꢀidataꢀv2;ꢀ//Khaiꢀb¸oꢀbiÕnꢀv2ꢀ  
ꢀ
- Béꢀnhíꢀd÷ꢀliÖuꢀngoꢂiꢀ:ꢀꢀCãꢀ2ꢀkiÓuꢀd÷ꢀliÖuꢀngoꢁiꢀëꢀtrongꢀKeilꢀC51ꢀlꢁꢀXDATAꢀ  
vꢁꢀPDATA.ꢀXDATAꢀlꢁꢀvïngꢀnhíꢀd÷ꢀliÖuꢀngoꢁiꢀcãꢀthÓꢀ®Þnhꢀ®ÞaꢀchØꢀ®−îcꢀ®Õnꢀ64ꢀKBꢀd÷ꢀ  
liÖu.ꢀPDATAꢀlꢁꢀvïngꢀnhíꢀchøaꢀtõngꢀtrangꢀd÷ꢀliÖu.ꢀMçiꢀtrangꢀd÷ꢀliÖuꢀngoꢁiꢀchøaꢀ®−îcꢀ  
256ꢀbyte.ꢀ§ÓꢀcãꢀthÓꢀtruyꢀcËpꢀ®−îcꢀbéꢀnhíꢀd÷ꢀliÖuꢀngoꢁi,ꢀtaꢀph¶iꢀdïngꢀtõꢀkho¸ꢀ_at_ꢀ®Óꢀ  
®Þnhꢀ®ÞaꢀchØꢀchoꢀc¸cꢀbiÕn.ꢀ  
VÝꢀdôꢀkhaiꢀb¸oꢀbiÕnꢀtrongꢀvïngꢀnhíꢀd÷ꢀliÖuꢀngoꢁiꢀ:ꢀ  
ꢀ
ꢀ
floatꢀxdataꢀa1ꢀ_at_ꢀ0x2000;ꢀ//Khaiꢀb¸oꢀbiÕnꢀa1ꢀcãꢀ®ÞaꢀchØꢀ2000Hꢀ  
unsignedꢀlongꢀpdataꢀa2ꢀ_at_ꢀ0x2004;ꢀ//ꢀBiÕnꢀa2ꢀcãꢀ®ÞaꢀchØꢀ2004ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ  
ConꢀtráꢀtrongꢀKeilꢀC51ꢀ®−îcꢀkhaiꢀb¸oꢀgièngꢀnh−ꢀkhaiꢀb¸oꢀconꢀtráꢀtrongꢀng«nꢀng÷ꢀC.ꢀ  
VÝꢀdôꢀvÒꢀkhaiꢀb¸oꢀconꢀtráꢀ:ꢀ  
ꢀ charꢀ*s;ꢀ//Conꢀtráꢀcñaꢀmétꢀstringꢀ  
ꢀ intꢀ*p;ꢀ//ConꢀtráꢀkiÓuꢀintꢀ  
ꢀ
ꢀBiªnꢀso¹nꢀ:ꢀL©mꢀt¨ngꢀ§øcꢀ–ꢀLªꢀTiÕnꢀDòngꢀ– Béꢀm«nꢀT§HꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀTrangꢀꢀ20  
ꢀ
Tải về để xem bản đầy đủ
pdf 28 trang myanh 18040 Free
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Kỹ thuật vi điều khiển - Chương 1: Tổng quan về vi điều khiển", để 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:

  • pdfgiao_trinh_ky_thuat_vi_dieu_khien_chuong_1_tong_quan_ve_vi_d.pdf