
Ngườibáocáo:NguyễnChíLinhTàiliệu:TUT01.01.PVN
Ngày:9/8/2006Trang:1/32
TUT01.01.PVN
Gửiđến:www.picvietnam.com
Nộidung:LậptrìnhchoPICbằngCCS ver3.242
MICROSOFTWORD
Tómtắt:
TàiliệuhướngdẫnsửdụngtrìnhbiêndịchCCScholậptrìnhPIC.TìmhiểutôngquanvềCCS
vàcáchtạomộtProjecttrongCCS.
ChươngtrìnhmẫuchoPIC16F877
Cácvídụlậptrìnhđơngiản:quétLED,ADC,RS232…
1. TổngquanvềCCS
1.1. VìsaotasửdungCCS?
Sựrađờicủamộtloạiviđiềukhiểnđikèmvớiviệcpháttriểnphầnmềmứngdụngcho
việclậptrìnhchoconviđiềukhiểnđó.Viđiềukhiểnchỉhiểuvàlàmviệcvớihaiconsố0
và1.BanđầuđểviệclậptrìnhchoVĐKlàlàmviệcvớidãycácconsố0và1.Saunàykhi
kiếntrúccủaViđiềukhiểnngàycàngphứctạp,sốluợngthanhghilệnhnhiềulên,việclập
trìnhvớidãycácsố0và1khôngcònphùhợpnữa,đòihỏirađờimộtngônngữmớithay
thế.VàngônngữlậptrìnhAssembly.ỞđâytakhôngnóinhiềuđếnAssmebly.Saunàykhi
ngônngữCrađời,nhucầudùngngônngữCđềthaychoASMtrongviệcmôtảcáclệnh
lậptrìnhchoViđiềukhiểnmộtcáchngắngọnvàdễhiểuhơnđãdẫnđếnsựrađờicủa
nhiềuchươngtrìnhsoạnthảovàbiêndịchCchoViđiềukhiển:KeilC,HT‐PIC,MikroC,
CCS…
TôichọnCCSchobàigiớithiệunàyvìCCSlàmộtcôngcụlậptrìnhCmạnhchoVi
điềukhiểnPIC.NhữngưuvànhượcđiểmcủaCCSsẽđượcđềcậpđếntrongcácphần
dướiđây.
1.2. GiớithiệuvềCCS?
CCSlàtrìnhbiêndịchlậptrìnhngônngữCchoViđiềukhiểnPICcủahãngMicrochip.
Chươngtrìnhlàsựtíchhợpcủa3trìnhbiêndichriêngbiếtcho3dòngPICkhácnhauđó
là:
‐ PCBchodòngPIC12‐bitopcodes
‐ PCMchodòngPIC14‐bitopcodes
‐ PCHchodòngPIC16và18‐bit
Tấtcả3trìnhbiêndichnàyđuợctíchhợplạivàotrongmộtchươngtrìnhbaogồmcả
trìnhsoạnthảovàbiêndịchlàCCS,phiênbảnmớinhấtlàPCWHCompilerVer3.227

Ngườibáocáo:NguyễnChíLinhTàiliệu:TUT01.01.PVN
Ngày:9/8/2006Trang:2/32
GiốngnhưnhiềutrìnhbiêndichCkhácchoPIC,CCSgiúpchongườisửdụngnắmbắt
nhanhđượcviđiềukhiểnPICvàsử dụngPICtrongcácdựán.Cácchươngtrìnhdiều
khiểnsẽđượcthựchiệnnhanhchóngvàđạthiệuquảcaothôngquaviệcsửdụngngôn
ngữlạptrìnhcấpcao–NgônngữC
Tàiliệuhướngdẫnsửdụngcórấtnhiều,nhưngchitiếtnhấtchínhlàbảnHelpđikèm
theophầnmềm(tàiliệuTiếngAnh).Trongbảntrợgiúpnhàsảnxuấtđãmôtảrấtnhiềuvề
hằng,biến,chỉthịtiềnxủalý,cấutrúccáccâulệnhtrongchươngtrình,cáchàmtạosẵncho
ngườisửdụng…NgoàiravềTiếngViệtcũngcóbảndịchcủatácgiảTrầnXuânTrường,
SVK2001DHBKHCM.TàiliệunàydịchtrêncơsởbảnHelpcủaCCS,tuyrằngchưađầy
đủnhưngđâylàmộttàiliệuhay,nếubạntìmhiểuvềPICvàCCSthìnêntìmtàiliệunày
vềđọc.ĐịachỉDownloadtàiliệu:www.picvietnam.com‐>MụcnóivềCCS.
2. TạoPROJECTđầutiêntrongCCS
ĐểtạomộtProjecttrongCCScónhiềucách,cóthểdùngProjectWizard,ManualCreat,
hayđơngiảnlàtạomộtFilesmớivàthêmvàođócáckhaibáobanđầucầnthiếtvà“bắt
buộc”.
Dướiđâysẽtrìnhbàycáchtạomộtprojecthợplệtheocả3phươngpháp.Mộtđiềuta
cầnchúýkhitạomộtProjectđólà:khitạobắtcứmộtProjectnàomớithìtanêntạomột
thưmụcmớivớitênliênquanđếnProjecttađịnhlàm,rồilưucácfilesvàođó.Khilập
trìnhvàbiêndịch,CCSsẽtạorarấtnhiềufileskhácnhau,dođónếuđểchungcácProject
trognmộtthưmụcsẽrấtmấtthờigiantrongviệctìmkiếmsaunày.Đâycũnglàquytắc
chungkhitalàmviệcvớibấtkỳphầnmềmnào,thiếtkếmạchhaylậptrình.
ViệcđầutiênbạncầnlàmlàkhởiđộngmáytínhvàbậtchươngtrìnhPICCCompiler.
2.1. TạomộtPROJECTsửdụngPICWizard
TrướchếtbạnkhởiđộngchươngtrìnhlàmviệcPICCCompiler.Từgiaodiệnchương
trìnhbạndichuộtchọnProject‐>New‐>PICWizardnhấnnúttráichuộtchọn.

Ngườibáocáo:NguyễnChíLinhTàiliệu:TUT01.01.PVN
Ngày:9/8/2006Trang:3/32
Saukhinhấnchuột,mộtcửasổhiệnrayêucầubannhậptênFilescầntạo.Bạntạomột
thưmụcmới,vàothưmụcđóvàlưutênfilescầntạotạiđây.
Hình2.0:CửasổSaveAs
Nhưvậylàxongbướcđầutiên.SaukhinhấnnútSave,mộtcửasổNewProjecthiệnra.
TrongcủasổnàybaogồmrấtnhiềuTab,mỗiTabmôtảvềmộtvàitínhnăngcủaconPIC.
TasẽchọntínhnăngsửdụngtạicácTabtươngứng.
DướiđâysẽtrìnhbàyýnghĩatừngmụcchọntrongmỗiTab.Cácmụcchọnnàychính
làđềcậpđếncáctínhnăngcủamộtconPIC,tùytheotừngloạimàsẽcócácTabtươngứng.
Đốivớitừngdựánkhácnhau,khitacầnsửdụngtínhnăngnàocủaconPICthìtasẽchọn
mụcđó.Tổngcộngcó13Tabđẻtalưachọn.TôigiớithiệunhữngTabchínhthườnghay
đượcsửdụng.

Ngườibáocáo:NguyễnChíLinhTàiliệu:TUT01.01.PVN
Ngày:9/8/2006Trang:4/32
2.1.1. TabGeneral
TabGeneralchophéptalựachọnloạiPICmàtasửdụngvàmộtsốlựachọn
khácnhưchọntầnsốthạchanhdaođộng,thiếtlậpcácbitCONFIGnhằmthiếtlập
chếđộhoạtđộngchoPIC.
Hình2.1:TabGeneral
‐ Device:LiệtkêdanhsáchcácloạiPIC12F,16F,18F…TasẽchọntênViđiềukhiển
PICmàtasửdụngtrongdựán.LấyvídụchọnPIC16F877A
‐ OscilatorFrequency:Tầnsốthạchanhtasửdụng,chọn20MHz(tùytừngloại)
‐ Fuses:ThiếtlậpcácbitConfignhư:Chếđộdaođộng(HS,RC,Internal),chếđộbảo
vệCode,Brownoutdetected…
‐ ChọnkiểucontrỏRAMlà16‐bithay8‐bit
2.1.2. TabCommunications
TabCommunicationsliệtkêcácgiaotiếpnốitiếpmàmộtconPIChỗtrợ,thườnglà
RS232vàI2C,cùngvớicáclựachọnđểthiếtlậpchếđộhoạtđộngchotừngloạigiaotiếp.
GiaotiếpRS232
MỗimộtViđiềukhiểnPIChỗtrợmộtcổngtruyềnthôngRS232chuẩn.Tabnày
chophéptalựachọnchânRx,Tx,tốcđộBaud,Databit,BitParity…
GiaotiếpI2C
ĐểsửdụngI2CtatíchvàonútchọnUseI2C,khiđótacócáclựachọn:Chân
SDA,SCL,Tốcđộtruyền(Fast‐Slow),chếđộMasterhaySlave,địachỉchoSalve.

Ngườibáocáo:NguyễnChíLinhTàiliệu:TUT01.01.PVN
Ngày:9/8/2006Trang:5/32
Hình2.2:TabCommunications
2.1.3.TabSPIandLCD
TabnàyliệtkêchongườidùngcáclựachọnđốivớigiaotiếpnốitiếpSPI,chuẩn
giaotiếptốcđộcaomàPIChỗtrợvềphầncứng.ChúýkhitadùngI2Cthìkhông
thểdùngSPIvàngượclại.Đểcóthểsửdụngcảhaigiaotiếpnàycùngmộtlúcthì
buộcmộttrong2giaotiếpphảilậptrìnhbằngphầnmềm(giồngnhưkhidùngI2C
chocácchipAT8051,khôngcóhỗtrợphầncứngSSP).
PhầncấuhìnhchoLCDdànhchocácchípdòng18Fvà30F.
Hình2.3:TabSPIandLCD
2.1.4.TabTimer
Liệtkêcácbộđếm/địnhthờimàcácconPICdòngMid‐rangecó:Timer0,timer1,
timer2,WDT…