You are on page 1of 47

Ngiboco:

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:

=200 BIEN =50

CONG_3ADDWF

BIEN,

;W=200+50

Ktqu:

=250 BIEN =50

=?

DC

DC

=?

=?

Nubygichngtatiptcthchinphpcngnhsau
CONG_4ADDWF

BIEN,

Ktqu:

=200 BIEN =44

;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.

You might also like