Ngibáocáo:
ĐoànHip
Tàiliu:
BOOK03.02
Ngày:
10/31/2005
Trang:
1/47
BOOKn
o
03.02
Giđn:
ĐoànHip,DMĐ,ĐTA,MTĐ,www.picvietnam.com
Nidung:
TplnhPICMidrange
MICROSOFTWORD
Tómtt:
HngdnvtplnhcadòngPICMidrange
1. CácquyccangônngMPASM
[nhãn] LNH thams1, thams2
Mtdòngnhthnàyđcgilàmtdònglnh.ChngtrìnhMPASMđcchialàm4
ctrõràng.Ctthnhtđvitnhãn,ctthhaiđvittênlnhmunthchinmàchúngta
strìnhbàydikia,ctth3làthamsthnhtcalnh,ctthtlàthamsthhaica
lnh.Giathamsthnhtvàthamsth2luôncáchnhaumtduphy(,).Cácctđc
cáchnhaubngítnhtmtkýtTAB(khongtrngrng).Đdàicakhongtrngnàycó
10/31/2005
Trang:
2/47
[nhãn]đcvittrongctthnhtcadònglnh.[nhãn]khôngđcbtđubngcácký
tđcbitnh:*,&,khongtrng,cáccons(0,1,2…)…Giacáckýtcanhãncễngkhông
đccócáckýtđcbit*,^,khongtrng,…
Đdàicamt[nhãn]khônggiihn,tuynhiên,chúngtaphivitsaocho[nhãn]luôn
nmtrongctthnhtcadònglnh,đdàinhãnvaphiđdquansát,đthôngtingi
nhvàthuntinkhilptrình.
Chúngtahoàntoàncóthkýhiucác[nhãn]làNHAN_1,NHAN_2…nhngnidung
thôngtincanhãnkhôngđđthhincôngvicsđcthchin,nhvysrtkhónh
khilptrình,nhtlàkhichngtrìnhcacácbndàivàcóđnhàngchchàngtrămnhãn
trongchngtrình.
Víd:
nhãnđúngvànhãnsai
HELLOnhãnđúng
hellonhãnđúng
good_byenhãnđúng
goodbye_1 nhãnđúng
2_hello nhãnsai(btđubngmtcons)
good^byenhãnsai(cókýtđcbittrongnhãn)
bonjournhãnsai(cókhongtrngtrongnhãn)
welcomenhãnsai(btđunhãnbngkýttrng)1.2. LNHvàcácthams:
LNHlàtêncacáclnhginhđclitkêtheobngchcáiABCbêndi.LNH
[nhãn] SLEEP
1.3. Quyckíhiu:
W=Workingregister:thanhghiW.
F =Fileregister:thanhghiF
d =destination(đích):nud=0,ktquctvàoW.Nud=1,ktquctvàoF.
k =Literalvalue:làs8bithocmtđachtrongbnhchngtrình11bit.
b =bitaddress:đachcabittrong1byte(thanhghi)nàođó.
1.3.1. ThanhghiW:
Chúngtathyrng,bnchtcacácdònglnhđcthchintrênmáytínhlàcácphép
toánđcthaotáctrêncácthanhghi.Dovy,btkmtcâulnhnàocễngsthchinmt
phéptoánnàođó,vàktqucaphéptoánđóphiđcsdngchocáclnhtiptheo,nu
khôngdònglnhđótrnênmtdònglnhvônghĩa.
NgoitrlnhNOPlàlnhkhôngthchinthaotácgìvàtnđimtchukmáy,nhng
nócótácdngđcânbngthigianthchincácđonchngtrìnhtngđng.Chúngta
snóivviccânbngthigianthchinchngtrìnhbnglnhNOPtrongcácphnvgii
thutlptrìnhphíasau.
Vnđchúngtôiđcpđây,đólàvictínhtoánsđcxyranhthnàobêntrongvi
điukhin.NucácbnlàngiđãhclptrìnhPascal,C,hoccácngônngcpcaokhác,
cácbnsthyrngkhithchinphéptoáncnghaibinbvàc,sauđógánvàobina,các
bncóthlàmmtcáchtrctipnhsau:
Ngibáocáo:
ĐoànHip
Tàiliu:
BOOK03.02
Ngày:
10/31/2005
Trang:
4/47
đcluvàothanhghiW.Nhvy,thanhghiWvacóthcoilàmtthanhghitm,liva
cóthcoilàmtthanhghihotđngliêntctrongquátrìnhchychngtrìnhcabn.Bn
cễngluônluônnhrngtimithiđimthchinmtdònglnh,chđcphépthaotác
vimtthanhghiduynht,và(hoc)thanhghiW.Khôngcómtlnhnàochophéptng
tácvihaithanhghikhácnhaumàmttronghaithanhghiđókhôngphithanhghiW.Điu
thhaicnghinh,đólàccómtlnhtngtácvithanhghiW,thìscómtlnhtng
Ngibáocáo:
ĐoànHip
Tàiliu:
BOOK03.02
Ngày:
10/31/2005
Trang:
5/47
ngtngtácvithanhghi(bin)F.Điungclikhôngđúng.Nhngnucómtlnhnào
tngtácvithanhghiF,thìktquđucóthđcghivàothanhghiWhocthanhghiF.
Hãychúýtictbênphicabngtrênd(đích)cóthlàthanhghiWhocthanhghiF.
Luý:Chúngtahòantoàncóththaythdtngngvi0làWvà1làFđdnh.Chng
trìnhdchMPASMchophépghinhvy.
Víd:haicâulnhnàylàtngđng
TANG_1 INCF BIEN_1, 1
TANG_1 INCF BIEN_1, F
ChaicâulnhnàyđutăngBIEN_1lên1đnvvàctgiátrtănglênđóvàoliBIEN_1.
NuvitbngPascal,câulnhtrênsnhsau:
BIEN_1:=BIEN_1+1;
1.3.3. Đachbitb:
Điuchúngtasquantâmđâylàthamsbtrên.Thamsbchxuthintrong4lnh
chomidònglnhhocmtđoncácdònglnhđsaunàydkimtra,sacha,hocgiúp
chongikháccóthđcđcddànghncácnidungmìnhvit.
Ttccácchúthíchđuphinmtrênmtdòngvànmsauduchmphytrêndòngđó.
Nuchúthíchnàodàihnmtdòngthìphicóduchmphyđucácdòngbêndi
Víd:
;
;Chúngtathchinmtvídtínhtoán
;theocôngthca:=b+c
;bngngônngMPASM
;
CONG MOVF b, W ;chuyngiátrtthanhghibvàoW
ADDWF c, W ;cnggiátrWvàc,ghilivàoW
MOVWF a ;ghigiátrtngvàoa
;tisaochúngtaphilàmthnày?
;tivìkhôngthlàmkhác!
;
;Ktthúctínhtoán
;
Ttccácchúthích,cáckýtbtkđcvitphíasaudu“;”trêncùngmtdòngđuvô
nghĩađivichngtrìnhdch,vàchngtrìnhdchskhôngdchttcnhnggìnmphía
sauduchmphytrongdòngđó.
Vnđnysinhvivicvitchúthíchđólàphivitlàmsaovađđcóthddàng
kimtralisaunày,vàkhôngvitquánhiusphimtnhiuthigianvitchúthíchhnlà
vitlnhthcthi.Chnghnvídvvicvitchúthíchnhtrênkialàquátha,vàchúngta
khôngcnphivitquánhiunhth.
Hãythvitthnàythìsao?
CONG MOVF b, W
ADDWF c, W
đngchoPICbngthchanhbivìnhngcáchtodaođngkhácđucósntrongdatasheet.
(chavitxong)
2.2. Đdàimãlnh
ĐdàimãlnhcadòngPICmidrangelà14bitvàđcđánhsnhsau:
13 12 11 10 9 8 7 6 5 4 3 2 1 0
Hình1:MãlnhcadòngPICmidrange
Cễngnhchúngtađãnóitrên,tplnhPICmidrangecóthđcchiathành3loich
yu,lnhtngtácbyte,lnhtngtácbitvàcáclnhđiukhin.Skhácnhaucacáclnh
nàylàgì?
Cácbnchúýrng,vilnhtngtácbyte,thìchúngtaluôncó2thôngslàFvàd,trong
đóFlàđachthanhghi,haynóingngnlàthanhghi,vàdlàbitđchnxemktquđc
Ngibáocáo:
ĐoànHip
Tàiliu:
BOOK03.02
Ngày:
10/31/2005
Trang:
8/47
lungclivàoFhayluraW.Trongkhiđó,lnhtngtácbitcncó3bitđmãhoávtrí
cabittrongmtthanhghinàođó(t0đn7,nghĩalàt000đn111).
Vicáclnhđiukhinvàtínhtoán,thìchúngtacócácgiátr8bitk(t0đn255),vàhai
lnhđcbitCALLvàGOTOthìgiátrklà11bit(t0đn2047).
ChúngtasxemxétcáchtchcmãlnhcadòngPICmidrangecácmcdiđây.
BOOK03.02
Ngày:
10/31/2005
Trang:
9/47
PhnOPCODEcacáclnhtngtácbitcómãhoábtđubng01ngvibit12và13.
Chínhvìvy,phncònliđphânbitcáclnhkhimãhoáchcònli2bit,nênchcóthmã
hoáđc4lnh.Dođó,chúngtathyrngchcó4lnhtngtácbitlàBCF,BSF,BTFSCvà
BTFSS.
2.2.3. Cáclnhđiukhin
13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 1 OPCODE k(8bit)
Hình3:Mãlnhcacáclnhđiukhin
Chúngtathyrng,mãlnhcacáclnhđiukhincễngchcó6bit,8bitcònliđc
dànhchophngiátrknhpvào.Khácvicáclnhtngtácbytecó7bitdùngđchđach
mtthanhghivà1bitddùngđchnvtríđíchcaphéptính.
Haibit12và13canhómlnhnàyđcmcđnhlà11.PhnOPCODE6bitchcònli4
bitđphânbitcáclnhtrongnhómnày.Tuynhiên,trongnhómlnhnày,ngitakhông
dùnght16lnhmàchdùng6lnhlà:ADDLW,ANDLW,IORLW,MOVLW,SUBLWvà
XORLW
2.2.4. LnhGOTOvàCALL
13 12 11 10 9 8 7 6 5 4 3 2 1 0
1 0 0 CALLk(11bit)
1 0 1 GOTOk(11bit)
1 ĐachcaFtrongbnh
Hình6:MãlnhcalnhMOVWF
CácbnluýrnglnhMOVWFthìđíchtiđghiktquslàF,dođóvtríbitd(bit
7)slà1.Trongkhiđó,cáclnhđiukhinđcbit,mãlnhcanótivtríbit7slà0.
Nhvy,cáclnhđcmãhoámtcáchhoàntoàn.Trongphntiptheocachngnày,
chúngtôisđcpđntnglnhvàcáchsdngcáclnhnày.Tuynhiên,chúngtôikhông
nhclicthmãlnhcatnglnh,bivìthitnghĩrngnókhôngcnthitnavìmc
đíchcachúngtôilàvitcunsáchhngdncbn,chkhôngđisâuvàovnđnghiên
cumãcodeđpháttrinsâuvPIC.
2.3. Schukcamtlnh:
(chavitxong)
Ngibáocáo:
ĐoànHip
Tàiliu:
BOOK03.02
Ngày:
10/31/2005
Trang:
11/47
3. Giithíchtplnh
Phnnàychúngtôicgnggiithíchtnglnhmtcáchthtklng,đcácbncóth
hiurõvàsdngchínhxáctnglnh.
Ngoàira,vìlýdohngdnvàgiúpcácbnlàmquenvitplnhcaPICmtcách
nhanhchóng,chúngtôiquytđnhđovtrícamtslnhtrongtplnh,nhmgiúpcho
cácbnddàngghinhhn.
Trongphntplnhnày,phnghichúchomilnhlàrtquantrng.Nólàphnchúng
tôimuntrìnhbàyv
phân(cs2)cácbnvitb’XXXXXXXX’,vàvitmtshthplcphân(cs16)các
bnvith’XX’hoc0xXX.
Víd:d’50’,d’103’,b’01101101’,b’11011011’,h’C3’,0xA8,0x44…
DòngPICmàchúngtatìmhiulàcácMCU8bit.Dovy,khôngthnàomtthanhghi
dliucóthchamtsmàgiátrcanólnhngiátrcóththhinbng8bit.
Nhc li rng, mt s 8 bit ch có th th hin mt s nh phân t b’00000000’đn
b’11111111’,haymtsthpphântd’0’đnd’255’vàsthplcphânt0x00đn
0xFF.Mtkhiphéptoáncnglàmtràn8bit,nóchcóthgiliktqulà8bit,còngiá
trtrànsbbqua.Tuynhiên,cácbittrngtháiC,Z,DCsbáochochúngtabitrng
thanhghibtràn.
Ngibáocáo:
ĐoànHip
Tàiliu:
BOOK03.02
Ngày:
10/31/2005
Trang:
13/47
[nhãn] ADDWF F, d ;NidungcathanhghiW
;đccngvinidungcathanhghiF,
;ktquđcctlivàod.
Thchinlnh:d=W+F
Cácbittrngtháibnhhng:C,DC,Z
Nud=W(0)thìktqusđcctvàoW,nud=F(1)thìktqusđccttrlivàoF.
Nukhôngvitdphíasau,xemnhmcđnhd=F.
Víd:
Trang:
14/47
[nhãn] ANDLW k ;“And”nidungcathanhghiW
;vis8bitk,
;ktquđcctlivàoW.
Thchinlnh:W=Wandk
Cácbittrngtháibnhhng:Z
kchcóthlàscógiátrtngđngmtsthpphânt0đn255
Víd:
Banđu: W =0xA3Z =?
AND_1 ANDLW 0x5F ;W=0xA3and0x5F
Ktqu: W =0x03 Z =0
Ghichú:
Zthayđikhivàchkhiktquđctrvcógiátrb’00000000’.Cácbnghinhnó
mtcáchrtđnginZ=ZERO.Khiktqucamtphéptínhtoánnàođóbng
ZEROthìbitZ=1,vànukhôngphilàZEROthìbitZ=0.
Ngibáocáo:
ĐoànHip
Tàiliu:
BOOK03.02
Ngày:
10/31/2005
16/47
[nhãn] BCF F, b ;XoábitthbcathanhghiF
;
;
Thchinlnh:F(b)=0
Cácbittrngtháibnhhng:Khôngbitnàobnhhng
Víd:
Banđu: REG =b’11000111’
BIT_1 BCF REG, 7 ;REG(7)=0
Ktqu: REG =b’01000111’
Ngibáocáo:
ĐoànHip
Tàiliu:
BOOK03.02
Ngày:
10/31/2005
Trang:
17/47
[nhãn] BSF F, b ;ĐtbitthbcathanhghiF
;lên1
;
TRUE_3 GOTO LAMVIEC_2 ;thchinlnhnàygotoLAMVIEC_2
Ktqu: ThchinlnhnhãnTRUE_3,chkhôngthchinlnhnhãn
FALSE_3
Cácbnxemtipthídnày
Banđu: REG =b’11000111’
BIT_4 BTFSC REG, 7 ;REG(7)=1
FALSE_4 BCF REG, 0 ;thchinlnhnàyREG(0)=0
TRUE_4 GOTO LAMVIEC_2 ;thchinlnhnàygotoLAMVIEC_2
Ktqu: REG =b’11000110’,sauđólnhnhãnTRUE_4vnđcthchintip
theo.
Ghichú:
Nunhlnhkimtralàsai,cónghĩabitbcathanhghiFlà1,lnhtiptheosđc
thchinnhtrongvídBIT_4.Khiđó,lnhBTFSCchtn1chukmáy
Tuynhiên,nuktqukimtralàđúng,cónghĩalàbitbcathanhghiFlà0,thayvì
thchinlnhtiptheonhvídBIT_4,nósthchinmtlnhNOP(khônglàmgì
c),sauđónónhyxungTRUE_3gingnhthídBIT_3.
ChínhvìthchinmtlnhNOP,chonêntrongtrnghpkimtrađúng,chúngta
cóthcoinhlnhBTFSCtn2chukmáy,vàtrongtrnghpkimtrakhông
đúng,nóvnchtn1chukmáy.
Ngibáocáo:
ĐoànHip
Tàiliu:
BOOK03.02
Ngày:
10/31/2005
Trang:
19/47
BOOK03.02
Ngày:
10/31/2005
Trang:
20/47
[nhãn] CALL k ;Gimtchngtrìnhcon
Thchinlnh:(PC)+1>TOS
k>PC(10:0)
(PCLATH(4:3))>PC(12:11)
Cácbittrngtháibnhhng:Khôngbitnàobnhhng
kchcóthlàscógiátrtngđngmtsthpphânt0đn2047
(chavitxong)
Víd:
Ghichú:
(phncáclnhchavitxong)
Ngibáocáo:
ĐoànHip
Tàiliu:
BOOK03.02
Ngày:
10/31/2005
Trang:
21/47
[nhãn] CLRF F ;NidungcathanhghiW
;đccngvis8bitk,
;ktquđcctlivàoW.
Cácbittrngtháibnhhng:C,DC,Z
kchcóthlàscógiátrtngđngmtsthpphânt0đn255
Víd:
Banđu: W =200 C =? DC =? Z =?
CONG_1 ADDLW d’50’ ;W=200+50
Ktqu: W =250 C = DC = Z =
Nubâygichúngtatiptcthchinphépcngnhsau
CONG_2 ADDLW d’20’ ;W=250+20
Ktqu: W =14 C = DC = Z =
Ghichú:
Ngibáocáo:
ĐoànHip
Tàiliu:
BOOK03.02
Ngày:
10/31/2005
Trang:
23/47
[nhãn] CLRWDT;NidungcathanhghiW
;đccngvis8bitk,
;ktquđcctlivàoW.
Thchinlnh:W=W+k
Cácbittrngtháibnhhng:C,DC,Z
kchcóthlàscógiátrtngđngmtsthpphânt0đn255
Banđu: W =200 C =? DC =? Z =?
CONG_1 ADDLW d’50’ ;W=200+50
Ktqu: W =250 C = DC = Z =
Nubâygichúngtatiptcthchinphépcngnhsau
CONG_2 ADDLW d’20’ ;W=250+20
Ktqu: W =14 C = DC = Z =
Ghichú:
Ngibáocáo:
ĐoànHip
Tàiliu:
BOOK03.02
Ngày:
10/31/2005
Trang:
25/47
[nhãn] DECF F, d ;NidungcathanhghiW
;đccngvis8bitk,
;ktquđcctlivàoW.
Thchinlnh:W=W+k
Cácbittrngtháibnhhng:C,DC,Z
kchcóthlàscógiátrtngđngmtsthpphânt0đn255
Víd:
Banđu: W =200 C =? DC =? Z =?
CONG_1 ADDLW d’50’ ;W=200+50