Professional Documents
Culture Documents
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
1/47
BOOKno03.02
Gin:
onHip,DM,TA,MT,www.picvietnam.com
Nidung:
TplnhPICMidrange
MICROSOFTWORD
Tmtt:
HngdnvtplnhcadngPICMidrange
1.
CcquyccangnngMPASM
[nhn]
LNH
thams1, thams2
Mtdngnhthnycgilmtdnglnh.ChngtrnhMPASMcchialm4
ctrrng.Ctthnhtvitnhn,ctthhaivittnlnhmunthchinmchngta
strnhbydikia,ctth3lthamsthnhtcalnh,ctthtlthamsthhaica
lnh.Giathamsthnhtvthamsth2luncchnhaumtduphy(,).Ccctc
cchnhaubngtnhtmtktTAB(khongtrngrng).dicakhongtrngnyc
thcquynhsaochodnhnvingilptrnh.Giactth3vctthtkhngcn
ckhongTAB.Nhngddngchovicclichngtrnh,chngtavnnndng
khongTABgiahaictny.
NumcnhnhkhicitMPLAB,chngtinghsdnghnhthcnhsau:
[nhan]
LENH
thamso_1,
thamso_2
tab - tab
tab - tab
tab - tab
Chngtaphivitsaochochngtrnhcvitphiphnbitrthnhtngct,va
pmtkhitrnhby,vdclichngtrnh.
1.1.
[nhn]
[nhn]lmtchuiktnhdumtimnotrongchngtrnh,thayvphi
ghinhvtrtrongbnh,chngtathayvtrbngmtci[nhn].[nhn]nythng
cgilibnglnhGOTOhocCALL.
Miculnh,cthchockhngc[nhn].Tuynhin,nnvitsaochos[nhn]lt
nhttrnhslmlnvrimtkhilptrnh.
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
2/47
[nhn]cvittrongctthnhtcadnglnh.[nhn]khngcbtubngcck
tcbitnh:*,&,khongtrng,cccons(0,1,2)Giaccktcanhncngkhng
ccccktcbit*,^,khongtrng,
dicamt[nhn]khnggiihn,tuynhin,chngtaphivitsaocho[nhn]lun
nmtrongctthnhtcadnglnh,dinhnvaphidquanst,thngtingi
nhvthuntinkhilptrnh.
Chngtahontoncthkhiucc[nhn]lNHAN_1,NHAN_2nhngnidung
thngtincanhnkhngthhincngvicscthchin,nhvysrtkhnh
khilptrnh,nhtlkhichngtrnhcaccbndivcnhngchchngtrmnhn
trongchngtrnh.
Vd:nhnngvnhnsai
HELLO
nhnng
hello
nhnng
good_bye
nhnng
goodbye_1
nhnng
2_hello
nhnsai(btubngmtcons)
good^bye
nhnsai(cktcbittrongnhn)
bonjour
nhnsai(ckhongtrngtrongnhn)
welcome
nhnsai(btunhnbngkttrng)
1.2.
LNHvccthams:
LNHltncacclnhginhclitktheobngchciABCbndi.LNH
cvitvoctthhai,midnglnhphictnLNH,nukhngcthskhngbit
dnglnhlmvicg.LNHthhincngvicphilmcadnglnh.
TytheoLNHmcthcthams1vthams2,hocchcthams1,hockhngc
thamsnoht.Trongmtdnglnh,phivitthamscaLNH.
Tplnhccungcpphacuichng.nhcachngtiltrnhbysongsongtp
lnhvphnchgiinyccbndichiu,sosnh,tuynhin,tgiycunschkhng
thgplmi,chnhvthchngtinghccbnphotohocinthmmtbngtplnh
dnlntrcbnlmvicvacphnnyvasosnh,vkhilptrnhcthddng
tracu.
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
3/47
Vd:thamscamtLNH
Lnhc2thams:
[nhn]
ADDWF
F,
[nhn]
BTFSSF,
Lnhc1thams:
[nhn]
CLRF
[nhn]
ADDLW
Lnhkhngcthams:
[nhn]
NOP
[nhn]
RETURN
[nhn]
SLEEP
1.3.
Quyckhiu:
W=Workingregister:thanhghiW.
F =Fileregister:thanhghiF
d =destination(ch):nud=0,ktquctvoW.Nud=1,ktquctvoF.
k =Literalvalue:ls8bithocmtachtrongbnhchngtrnh11bit.
b =bitaddress:achcabittrong1byte(thanhghi)no.
1.3.1. ThanhghiW:
Chngtathyrng,bnchtcaccdnglnhcthchintrnmytnhlccphp
toncthaotctrnccthanhghi.Dovy,btkmtculnhnocngsthchinmt
phptonno,vktqucaphptonphicsdngchocclnhtiptheo,nu
khngdnglnhtrnnmtdnglnhvngha.
NgoitrlnhNOPllnhkhngthchinthaotcgvtnimtchukmy,nhng
nctcdngcnbngthigianthchincconchngtrnhtngng.Chngta
snivviccnbngthigianthchinchngtrnhbnglnhNOPtrongccphnvgii
thutlptrnhphasau.
Vnchngticpy,lvictnhtonscxyranhthnobntrongvi
iukhin.NuccbnlngihclptrnhPascal,C,hocccngnngcpcaokhc,
ccbnsthyrngkhithchinphptoncnghaibinbvc,saugnvobina,cc
bncthlmmtcchtrctipnhsau:
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
4/47
a:=b+c;
Tuynhin,vicnyiviPICkhngththchinc,mchngtaphithchintheo
tngbcnhsau,chuynbvothanhghiW,saulyWcngvic,rignlivothanh
ghiW,saumichuynktquvoa.Cngviccthchinbngmtchuilnhsau:
CONG
MOVF
b,
;W:=b
ADDWF
c,
;W:=W+c
MOVWF
;a:=W
Nhvy,y,PICchchophptrongmtthiimtngtcvi1thanhghi(haymt
bin).Nucncstngtcgiahaihaynhiuthanhghi,phithngquathanhghiWnh
lmtthanhghim.Chnhvvy,ccmtlnhtngtcvithanhghi,thdngnhs
cmtlnhtngngtngtcvithanhghiW.
Vd:tplnhtngtcthanhghiW
ADDLW:W=W+k
ADDWF:d=W+F
ANDLW:W=Wandk
ANDWF:d=WandF
CLRW:xathanhghiW
CLRF:xathanhghiF
IORLW:W=Work
IORWF:d=WorF
MOVLW:W=k
MOVF:d=F
MOVWF:F=W
SUBLW:W=kW
SUBWF:d=FW
XORLW:W=Wxork
XORWF:d=WxorF
1.3.2. chd:
Ngoira,ccbncththyrngdchcthl0,hoc1.Khid=0,cnghalktquli
cluvothanhghiW.Nhvy,thanhghiWvacthcoilmtthanhghitm,liva
cthcoilmtthanhghihotnglintctrongqutrnhchychngtrnhcabn.Bn
cnglunlunnhrngtimithiimthchinmtdnglnh,chcphpthaotc
vimtthanhghiduynht,v(hoc)thanhghiW.Khngcmtlnhnochophptng
tcvihaithanhghikhcnhaummttronghaithanhghikhngphithanhghiW.iu
thhaicnghinh,lccmtlnhtngtcvithanhghiW,thscmtlnhtng
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
5/47
ngtngtcvithanhghi(bin)F.iungclikhngng.Nhngnucmtlnhno
tngtcvithanhghiF,thktquucthcghivothanhghiWhocthanhghiF.
Hychtictbnphicabngtrnd(ch)cthlthanhghiWhocthanhghiF.
Lu:Chngtahantoncththaythdtngngvi0lWv1lFdnh.Chng
trnhdchMPASMchophpghinhvy.
Vd:haiculnhnyltngng
TANG_1
INCF BIEN_1,
TANG_1
INCF BIEN_1,
ChaiculnhnyutngBIEN_1ln1nvvctgitrtnglnvoliBIEN_1.
NuvitbngPascal,culnhtrnsnhsau:
BIEN_1:=BIEN_1+1;
1.3.3. achbitb:
iuchngtasquantmylthamsbtrn.Thamsbchxuthintrong4lnh
tngtcbit:BCF,BSF,BTFSS,BTFSC.Thamsnychcgitr0,1,2,3,4,5,6,7.Ngoira
khngthmangbtkmtgitrnokhc.Vsaonhvy?Vchngtaanglmvicvivi
iukhinPIC8bit,cnghaldliuctnhtontrongviiukhinchc8bitvc
nhsnhsau:
ThanhghiF:
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
Chnhvvy,chsblvtrbit,chonnchcthmanggitrt0n7.Ccbnxemv
dsau:
Vd:QuanstthanhghicttnlAcgitr10110110
[nhn]
BCF
A,
;xabit5cathanhghiA
Saukhithchinlnhny,thanhghiAscgitr:10010110
[nhn]
BSF
A,
;btbit6cathanhghiA
Saukhithchinlnhny,thanhghiAscgitr:11010110
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
6/47
1.3.4. Chthch:
,vmtiunaxuthin,lccbnthysaukhichngtivitdnglnhvdtrn
y,phabnphi,chngtinhdu;vvitmtsghichchoculnh.ylmt
chunngchkhngphichngtivitchthchchocunschmvitthmvo.
MPASMcngnhccngnnglptrnhkhc,chophpngilptrnhvitchthch
chomidnglnhhocmtonccdnglnhsaunydkimtra,sacha,hocgip
chongikhccthccddnghnccnidungmnhvit.
Ttcccchthchuphinmtrnmtdngvnmsauduchmphytrndng.
Nuchthchnodihnmtdngthphicduchmphyuccdngbndi
Vd:
;
;Chngtathchinmtvdtnhton
;theocngthca:=b+c
;bngngnngMPASM
;
CONG
MOVF
b,
;chuyngitrtthanhghibvoW
ADDWF
c,
;cnggitrWvc,ghilivoW
MOVWF
;ghigitrtngvoa
;tisaochngtaphilmthny?
;tivkhngthlmkhc!
;
;Ktthctnhton
;
Ttcccchthch,ccktbtkcvitphasaudu;trncngmtdnguv
nghaivichngtrnhdch,vchngtrnhdchskhngdchttcnhnggnmpha
sauduchmphytrongdng.
Vnnysinhvivicvitchthchlphivitlmsaovacthddng
kimtralisauny,vkhngvitqunhiusphimtnhiuthigianvitchthchhnl
vitlnhthcthi.Chnghnvdvvicvitchthchnhtrnkialqutha,vchngta
khngcnphivitqunhiunhth.
Hythvitthnythsao?
CONG
MOVF
b,
ADDWF
c,
MOVWF
;a:=b+c
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
7/47
Chnginnhvythi,bnsmtcngvitchthch,vscungcpnidung
chobnkhibnclichngtrnh.VitchthchtheonhtrongcunschThcVisual
C++trong21ngycngchnhlmtnghthut.Vvy,ccbncngnntpvitchthch
chohiuquiviMPASM.Trongqutrnhthchinccbitp,chngtiscgng
truynchobncctngkhivitchthch,vchngtimongccbntipnhnn,vs
dngnchngtasccngmththngvitchthch,tvsauchngtasdc
vhiunhauhn.
Cuicng,chngtiaramtviconsthngkmcthnsgipchchoccbn
dhnhdungtrongqutrnhhctplnhcaPIC.TngcngdngPICMidRangec35
lnh.Milnhthngchim1chukmy,trcclnhviukhincontrchngtrnh.
C16lnhtngtcbyte(baogmthanhghiFbtkvthanhghiW),chc4lnhtng
tcbitv15lnhiukhin.
2.
dimlnhvchukmy
Nhnthymtthctrng,ccbnsinhvinmilmquenviviiukhinthnglm
lnvhaikhinimschukmythchinlnhvdimlnh.Do,trongphnny,
chngtichcgnggiithchsquaccbncthphnbithaivntrnthtrrng.
2.1.
Chukmy
Xuynsuttptiliuny,chngtichmunhngdnccbnmtcchtoradao
ngchoPICbngthchanhbivnhngcchtodaongkhcucsntrongdatasheet.
(chavitxong)
2.2.
dimlnh
dimlnhcadngPICmidrangel14bitvcnhsnhsau:
13
12
11
10
Hnh1:MlnhcadngPICmidrange
Cngnhchngtanitrn,tplnhPICmidrangecthcchiathnh3loich
yu,lnhtngtcbyte,lnhtngtcbitvcclnhiukhin.Skhcnhaucacclnh
nylg?
Ccbnchrng,vilnhtngtcbyte,thchngtalunc2thngslFvd,trong
Flachthanhghi,hayningngnlthanhghi,vdlbitchnxemktquc
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
8/47
lungclivoFhayluraW.Trongkhi,lnhtngtcbitcnc3bitmhovtr
cabittrongmtthanhghino(t0n7,nghalt000n111).
Vicclnhiukhinvtnhton,thchngtacccgitr8bitk(t0n255),vhai
lnhcbitCALLvGOTOthgitrkl11bit(t0n2047).
ChngtasxemxtcchtchcmlnhcadngPICmidrangeccmcdiy.
2.2.1. Cclnhtngtcbyte
13
12
11
10
OPCODE
achcaFtrongbnh
Hnh2:Mlnhcacclnhtngtcbyte
Ccbnchmtiurng,achcamtthanhghi,chc7bitthi,vnmtbit0
nbit6.Mithanhghimcdc8bit,nhngachcanchc7bit.
PhnOPCODEylg?Chnhlphnmhoccclnhmchngtavitnh
ADDWF,ANDWF,.Khivitnhthny,lchngtavitbngccmginh,trongkhi
,viiukhinhiucclnhnydidngbit.Vvy,nphicmhoviiu
khinhiu.
Mtimlulivicclnhtngtcbyte,phnmhocandi6bit,nmtbit
8nbit13.Trong,bit12bit13=00(nhhnh2.2)
Ktqu,chngtathyrng,phnOPCODEc6bit,nhnghaibitutinl00,chnh
vvy,chcnli4bitphnbitcclnhvinhauvchngtachctia16lnhtng
tcbyte.
2.2.2. Cclnhtngtcbit
13
12
11
10
OPCODE
achcaFtrongbnh
Hnh3:Mlnhcacclnhtngtcbit
Tngtnhtrn,bitquynhachcathanhghiFtrongcclnhtngtcbitl7bit,
nmtbit0nbit6.Ccbitnmtbit7nbit9dngquynhvtrcabitt0n7
trongthanhghi(nghalt000n111).
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
9/47
PhnOPCODEcacclnhtngtcbitcmhobtubng01ngvibit12v13.
Chnhvvy,phncnliphnbitcclnhkhimhochcnli2bit,nnchcthm
hoc4lnh.Do,chngtathyrngchc4lnhtngtcbitlBCF,BSF,BTFSCv
BTFSS.
2.2.3. Cclnhiukhin
13
12
11
10
OPCODE
k(8bit)
Hnh3:Mlnhcacclnhiukhin
Chngtathyrng,mlnhcacclnhiukhincngchc6bit,8bitcnlic
dnhchophngitrknhpvo.Khcvicclnhtngtcbytec7bitdngchach
mtthanhghiv1bitddngchnvtrchcaphptnh.
Haibit12v13canhmlnhnycmcnhl11.PhnOPCODE6bitchcnli4
bitphnbitcclnhtrongnhmny.Tuynhin,trongnhmlnhny,ngitakhng
dnght16lnhmchdng6lnhl:ADDLW,ANDLW,IORLW,MOVLW,SUBLWv
XORLW
2.2.4. LnhGOTOvCALL
13
12
11
10
CALLk(11bit)
GOTOk(11bit)
Hnh4:MlnhcalnhCALLvGOTO
Hailnhnylhailnhcbit,phnOPCODEchc3bit,cnli11bitlachcav
trcnnhyti(k).
2.2.5. Cclnhiukhincbit
Cclnhiukhincbit,lcclnhkhngtngtcviccthanhghicachtrong
bnhdliu,baogmcclnh:CLRWDT,NOP,RETURN,RETFIE,SLEEP
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
10/47
Cclnhnyvkhngchaccthanhghitrongmlnh,nnphnuOPCODEcans
l000000(6bittbit13nbit8ul0).Nhhnhsau:
13
12
11
10
Phnmhophnbitcclnh
Hnh5:Mlnhcacclnhiukhincbit
Vymtiulmchngtathcmcl,lmsaocclnhnyphnbitcvilnh
MOVWF,vlnhMOVWFcngcphnOPCODEl000000nhsau:
13
12
11
10
achcaFtrongbnh
Hnh6:MlnhcalnhMOVWF
CcbnlurnglnhMOVWFthchtighiktquslF,dovtrbitd(bit
7)sl1.Trongkhi,cclnhiukhincbit,mlnhcantivtrbit7sl0.
Nhvy,cclnhcmhomtcchhonton.Trongphntiptheocachngny,
chngtiscpntnglnhvcchsdngcclnhny.Tuynhin,chngtikhng
nhclicthmlnhcatnglnh,bivthitnghrngnkhngcnthitnavmc
chcachngtilvitcunschhngdncbn,chkhngisuvovnnghin
cumcodephttrinsuvPIC.
2.3.
Schukcamtlnh:
(chavitxong)
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
11/47
3.
Giithchtplnh
Phnnychngticgnggiithchtnglnhmtcchthtklng,ccbncth
hiurvsdngchnhxctnglnh.
Ngoira,vldohngdnvgipccbnlmquenvitplnhcaPICmtcch
nhanhchng,chngtiquytnhovtrcamtslnhtrongtplnh,nhmgipcho
ccbnddngghinhhn.
Trongphntplnhny,phnghichchomilnhlrtquantrng.Nlphnchng
timuntrnhbyv
(chavitxong)
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
12/47
[nhn]
ADDLW
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
=14
Ghich:
vitmtshthpphn(hcs10)ccbnvitdXXX,vitmtstheohnh
phn(cs2)ccbnvitbXXXXXXXX,vvitmtshthplcphn(cs16)cc
bnvithXXhoc0xXX.
Vd:d50,d103,b01101101,b11011011,hC3,0xA8,0x44
DngPICmchngtatmhiulccMCU8bit.Dovy,khngthnomtthanhghi
dliucthchamtsmgitrcanlnhngitrcththhinbng8bit.
Nhc li rng, mt s 8 bit ch c th th hin mt s nh phn t b00000000 n
b11111111,haymtsthpphntd0nd255vsthplcphnt0x00n
0xFF.Mtkhiphptoncnglmtrn8bit,nchcthgiliktqul8bit,cngi
trtrnsbbqua.Tuynhin,ccbittrngthiC,Z,DCsbochochngtabitrng
thanhghibtrn.
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
13/47
[nhn]
ADDWF
F,
;NidungcathanhghiW
;ccngvinidungcathanhghiF,
;ktqucctlivod.
Thchinlnh:d=W+F
Ccbittrngthibnhhng:C,DC,Z
Nud=W(0)thktquscctvoW,nud=F(1)thktqusccttrlivoF.
Nukhngvitdphasau,xemnhmcnhd=F.
Vd:
Banu:
CONG_3ADDWF
BIEN,
;W=200+50
Ktqu:
=?
DC
DC
=?
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_4ADDWF
BIEN,
Ktqu:
;BIEN=250+50
C
DC
Ghich:Lmthnottnchomtthanhghi?Chngtacnhiucchttncho
mtthanhghi.
Cchthnhtdng
ORG0x20
BIEN
RES 1
;BIENcdil1bytebtutach
BIEN_2
RES 2
;0x20.Haynicchkhc,BIENchnhl
;thanhghicach0x20.Cchnydng
;ttnchohnglotbinlintipnhau.
;BIEN_2scdi2bytebtut0x21
Cchthhaidngcblock.Cchthbadng#DEFINEttnchohngshoct
tn cho bin c a ch c nh sn. Hai cch sau chng ta s nhc ti trong phn
DIRECTIVE
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
14/47
[nhn]
ANDLW
;AndnidungcathanhghiW
;vis8bitk,
;ktqucctlivoW.
Thchinlnh:W=Wandk
Ccbittrngthibnhhng:Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=0xA3
AND_1
ANDLW
Ktqu:
0x5F
=0x03
=?
;W=0xA3and0x5F
=0
Ghich:
Zthayikhivchkhiktquctrvcgitrb00000000.Ccbnghinhn
mtcchrtnginZ=ZERO.Khiktqucamtphptnhtonnobng
ZEROthbitZ=1,vnukhngphilZEROthbitZ=0.
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
15/47
[nhn]
ANDWF
F,
;NidungcathanhghiW
;candvinidungcathanhghiF,
;ktqucctlivod.
Thchinlnh:d=WandF
Ccbittrngthibnhhng:Z
Nud=W(0)thktquscctvoW,nud=F(1)thktqusccttrlivoF.
Nukhngvitdphasau,xemnhmcnhd=F.
Vd:
Banu:
=0x17
AND_2
ANDWF
Ktqu:
REG =0xC2
REG, F
=0x17
=?
;REG=0x17and0xC2
REG =0x02
=0
Ghich:
Zthayikhivchkhiktquctrvcgitrb00000000.Ccbnghinhn
mtcchrtnginZ=ZERO.Khiktqucamtphptnhtonnobng
ZEROthbitZ=1,vnukhngphilZEROthbitZ=0.
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
16/47
[nhn]
BCF
F,
;XobitthbcathanhghiF
Thchinlnh:F(b)=0
Ccbittrngthibnhhng:Khngbitnobnhhng
Vd:
Banu:
REG =b11000111
BIT_1
BCF
Ktqu:
REG,
REG =b01000111
;REG(7)=0
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
17/47
[nhn]
BSF
F,
;tbitthbcathanhghiF
;ln1
Thchinlnh:F(b)=1
Ccbittrngthibnhhng:Khngbitnobnhhng
Vd:
Banu:
REG =b01000111
BIT_2
BSF
Ktqu:
REG,
REG =b11000111
;REG(7)=1
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
18/47
[nhn]
BTFSC
F,
;NubitthbcathanhghiF
;cgitr0,thnhycchramt
;dnglnh
Thchinlnh:ifF(b)=0,bqualnhtiptheo
Ccbittrngthibnhhng:Khngbitnobnhhng
Vd:
Banu:
REG =b01000111
BIT_3
BTFSC
REG,
FALSE_3
GOTO
LAMVIEC_1
;bqualnhny,thchinNOP
TRUE_3
GOTO
LAMVIEC_2
;thchinlnhnygotoLAMVIEC_2
Ktqu:
FALSE_3
;REG(7)=0
ThchinlnhnhnTRUE_3,chkhngthchinlnhnhn
Ccbnxemtipthdny
Banu:
REG =b11000111
BIT_4
BTFSC
REG,
;REG(7)=1
FALSE_4
BCF
REG,
;thchinlnhnyREG(0)=0
TRUE_4
GOTO
LAMVIEC_2
Ktqu:
theo.
;thchinlnhnygotoLAMVIEC_2
REG =b11000110,saulnhnhnTRUE_4vncthchintip
Ghich:
Nunhlnhkimtralsai,cnghabitbcathanhghiFl1,lnhtiptheosc
thchinnhtrongvdBIT_4.Khi,lnhBTFSCchtn1chukmy
Tuynhin,nuktqukimtralng,cnghalbitbcathanhghiFl0,thayv
thchinlnhtiptheonhvdBIT_4,nsthchinmtlnhNOP(khnglmg
c),saunnhyxungTRUE_3gingnhthdBIT_3.
ChnhvthchinmtlnhNOP,chonntrongtrnghpkimtrang,chngta
cthcoinhlnhBTFSCtn2chukmy,vtrongtrnghpkimtrakhng
ng,nvnchtn1chukmy.
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
19/47
[nhn]
BTFSS
F,
;NubitthbcathanhghiF
;cgitr1,thnhycchramt
;dnglnh
Thchinlnh:ifF(b)=1,bqualnhtiptheo
Ccbittrngthibnhhng:Khngbitnobnhhng
Vd:
Banu:
REG =b11000111
BIT_5
BTFSS
REG,
FALSE_5
GOTO
LAMVIEC_3
;bqualnhny,thchinNOP
TRUE_5
GOTO
LAMVIEC_4
;thchinlnhnygotoLAMVIEC_4
Ktqu:
FALSE_5
;REG(7)=1
ThchinlnhnhnTRUE_5,chkhngthchinlnhnhn
Ccbnxemtipthdny
Banu:
REG =b01000111
BIT_6
BTFSS
REG,
FALSE_6
GOTO
LAMVIEC_3
;thchinlnhnygotoLAMVIEC_3
TRUE_6
GOTO
LAMVIEC_4
;contrnhysangLAMVIEC_3
;REG(7)=1
Ktqu: NhynLAMVIEC_3
Ghich:
VdBIT_6lmtvdinhnhtronglnhrnhnhiukin.Nukimtramt
iukhinnonghaysai,bnskimtramtbitbitnghaysai.Thng
thng,vicrnhnhnythngcthchinviccbittrngthinhZ,DC,C
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
20/47
[nhn]
CALL
;Gimtchngtrnhcon
Thchinlnh:(PC)+1>TOS
k>PC(10:0)
(PCLATH(4:3))>PC(12:11)
Ccbittrngthibnhhng:Khngbitnobnhhng
kchcthlscgitrtngngmtsthpphnt0n2047
(chavitxong)
Vd:
Ghich:
(phncclnhchavitxong)
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
21/47
[nhn]
CLRF
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
22/47
[nhn]
CLRW
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
23/47
[nhn]
CLRWDT
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
24/47
[nhn]
COMF
F,
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
25/47
[nhn]
DECF
F,
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
26/47
[nhn]
DECFSZ
F,
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
27/47
[nhn]
GOTO
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
28/47
[nhn]
INCF
F,
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
29/47
[nhn]
INCFSZ
F,
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
30/47
[nhn]
IORLW
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
31/47
[nhn]
IORWF
F,
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
32/47
[nhn]
MOVLW
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
33/47
[nhn]
MOVF
F,
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
34/47
[nhn]
MOVWF
F,
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
35/47
[nhn]
NOP
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
36/47
[nhn]
RETFIE
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
37/47
[nhn]
RETLW
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
38/47
[nhn]
RETURN
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
39/47
[nhn]
RLF
F,
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
40/47
[nhn]
RRF
F,
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
41/47
[nhn]
SLEEP
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
42/47
[nhn]
SUBLW
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
43/47
[nhn]
SUBWF
F,
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
44/47
[nhn]
XORLW
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
45/47
[nhn]
XORWF
F,
;NidungcathanhghiW
;ccngvis8bitk,
;ktqucctlivoW.
Thchinlnh:W=W+k
Ccbittrngthibnhhng:C,DC,Z
kchcthlscgitrtngngmtsthpphnt0n255
Vd:
Banu:
=200 C
CONG_1
ADDLW
Ktqu:
=?
d50
=250 C
DC
=?
;W=200+50
DC
=?
Nubygichngtatiptcthchinphpcngnhsau
CONG_2
ADDLW
d20
;W=250+20
Ktqu:
DC
Ghich:
=14
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
46/47
4.
Tngktchng
Quachngny,ccbnhccnhngvnsau:
CutrccamtlnhMPASMcvitnhthnovcchghichthch
Quytct[nhn]
CclnhchititvcthcadngPICmidrange,ccthamscatnglnh
Kinthcvmlnh,dimlnh,chukmy
Tmli,quabihcny,ccbnckinthclptrnhchomtviiukhin
PIC,vicctcvngin,vcththchinmtsthuttontnhtonviviiukhin.
Nhvy,nhngbitpcuichngnysgipccbnntpmtcchnhanhchngnhng
ghcc.
Mtvnquantrngmccbncnphinh,lvicvitchngtrnhlmsaocho
thtrrng,nhndchu,bivccchngtrnhvitbngMPASMnhthnythngrt
di,nukhngbtrhpl,chngtrnhcaccbnsrtkhcoivstrnnrirm.Vic
vitchthchcngcthlmrichngtrnhnuchthchqunhiu.
Chnhvvy,trongphnCutrcmtchngtrnhMPASM,chngtistrnhbychi
tithnvmtchunchngtrnhmchngtichornghpl,ngthicnglkinh
nghimcanhngngilptrnhlunmviPIChngdn.
Trongphnny,chngtichnumtsyut,khiccbnlmnhngbitpcbn,
ccbnlmquendndnthiquennyvskhngkhkhnchoccbnkhivitnhng
chngtrnhln:
ct1tngng3ktTAB
ct2tngng2ktTAB
ct3tngng2ktTAB
ct4tngng1ktTAB
chthchcvitcchct4khong2n3ktTAB
Nhn,Lnh,ccthamsvitbngchINHOA
Chthchvitbngchthng,tingVit,khngdu
Vd:
|3ktTAB
|2TAB
|2TAB
NHAN_1
ADDLW
b10101010
NHAN_2
ADDWF
REG_1,
|TAB|3TAB
;chuthich
;phepcong
Ngiboco:
onHip
Tiliu:
BOOK03.02
Ngy:
10/31/2005
Trang:
47/47
Bitp1:phpcngchoccbin2byte
ChobinAgm
A2 A1 2bytevthanhghiB
B2 B1 gm2byte.
CcbnhythchinmtonchngtrnhtnhtngcaA+BvluvothanhghiC
gm3byte,
C3
C2
C1 trongA1,A2,B1,B2lccbytemangccgitr
btk.
Bitp2:thchinvnglpvkimtraiukinlp
ThchinvnglpctrnhbybngngnngPascalsaubngngnngMPASM:
A:=0;
B:=0;
ForI:=1to100do
Begin
A:=A+1;
B:=B+2;
End;
TrongA,B,Ilccthanhghi(hayccbin)8bitthngthng.
Bitp3:kimtraiukin,phptrvlnhGOTO
ChoAvBlhaithanhghi8bitbtk.KimtraiukinA>BthnhyvNHAN_1,
nuA=BthnhyvNHAN_2,nuA<BthnhyvNHAN_3.
If(A>B)thengotoNHAN_1
Else
If(A=B)thengotoNHAN_2
ElsegotoNHAN_3;
Bitp4:tngtcbitvdchbit
ChothanhghiAcgitrbtk,vthanhghiBcgitrbanubtk.Btuon
lnh,choB=0.DchnidungthanhghiAsangtritngbitmt.Nubitbdchitrnthanh
ghiAl1thtngthanhghiBlnmtnv.Nubitbdchil0thtrthanhghiBimt
nv.Thchinvicnychoht8bitcathanhghiA.
Thchintipvicbtttbit7cathanhghiB.Nusbitmanggitr0cathanhghiA
nhiuhnsbitmanggitr1thbit7cathanhghiBsmanggitr0,vngcli.Dng4
bitutincathanhghiB(bit3bit2bit1bit0)thhinhiusgiasbitmanggi
tr0vsbitmanggitr1trongthanhghiA.