You are on page 1of 6

Hng dn lp trnh cho PIC bng CCS ver3.

242
1. Tng Quan V CCS

1.1. V sao ta s dng CCS?


S ra i ca mt loi vi iu khin i km vi vic pht trin phn mm ng dng cho vic lp trnh cho con vi iu
khin . Vi iu khin ch hiu v lm vic vi hai con s 0 v 1. Ban u vic lp trnh cho VK l lm vic vi dy
cc con s 0 v 1. Sau ny khi kin trc ca Vi iu khin ngy cng phc tp, s lung thanh ghi lnh nhiu ln, vic
lp trnh vi dy cc s 0 v 1 khng cn ph hp na, i hi ra i mt ngn ng mi thay th. V ngn ng lp trnh
Assembly. y ta khng ni nhiu n Assmebly. Sau ny khi lp trnh cho Vi iu khin mt cch ngn gn v d
hiu hn dn n s ra i cangn ng C ra i, nhu cu dng ngn ng C thay cho ASM trong vic m t cc
lnh nhiu chng trnh son tho v bin dch C cho Vi iu khin : Keil C, HTPIC, MikroC,CCS
Ti chn CCS cho bi gii thiu ny v CCS l mt cng c lp trnh C mnh cho Vi iu khin PIC. Nhng u v nhc
im ca CCS s c cp n trong cc phn di y.
Bn c th xem v ti chng trnh CCS ti y:

[Download] CCS 4.104 FULL - Trnh Bin Dch Vi iu Khin PIC

1.2. Gii thiu v CCS


CCS l trnh bin dch lp trnh ngn ng C cho Vi iu khin PIC ca hng Microchip.
Chng trnh l s tch hp ca 3 trnh bin dich ring bit cho 3 dng PIC khc nhau l:
PCB cho dng PIC 12bit opcodes
PCM cho dng PIC 14bit opcodes
PCH cho dng PIC 16 v 18bit
Tt c 3 trnh bin dich ny uc tch hp li vo trong mt chng trnh bao gm c trnh son tho v bin dch l
CCS, phin bn mi nht l PCWH Compiler Ver 3.227.
Ging nh nhiu trnh bin dich C khc cho PIC, CCS gip cho ngi s dng nm bt nhanh c vi iu khin PIC v
s dng PIC trong cc d n. Cc chng trnh diu khin s c thc hin nhanh chng v t hiu qu cao thng qua
vic s dng ngn ng lp trnh cp cao Ngn ng C.Ti liu hng dn s dng c rt nhiu, nhng chi tit nht chnh
l bn Help i km theo phn mm (ti liu Ting Anh). Trong bn tr gip nh sn xut m t rt nhiu v hng, bin,
ch th tin xa l, cu trc cc cu lnh trong chng trnh, cc hm to sn chongi s dng

2. To PROJECT u tin trong CCS


to mt Project trong CCS c nhiu cch, c th dng Project Wizard, Manual Creat, hay n gin l to mt Files
mi v thm vo cc khai bo ban u cn thit v bt buc.
Di y s trnh by cch to mt project hp l theo c 3 phng php. Mt iu ta cn ch khi to mt Project
l: khi to bt c mt Project no mi th ta nn to mt th mc mi vi tn lin quan n Project ta nh lm, ri lu
cc files vo . Khi lp trnh v bin dch, CCS s to ra rt nhiu files khc nhau, do nu chung cc Project trogn
mt th mc s rt mt thi gian trong vic tm kim sau ny. y cng l quy tc chung khi ta lm vic vi bt k phn
mm no, thit k mch hay lp trnh.
Vic u tin bn cn lm l khi ng my tnh v bt chng trnh PIC C Compiler.

2.1. To mt PROJECT s dng PIC Wizard


Trc ht bn khi ng chng trnh lm vic PIC C Compiler. T giao din chng trnh bn di chut chnProject >
New > PIC Wizard nhn nt tri chut chn.

Sau khi nhn chut, mt ca s hin ra yu cu ban nhp tn Files cn to. Bn to mt


th mc mi, vo th mc v lu tn files cn to ti y.

1
Ca s Save As
Nh vy l xong bc u tin. Sau khi nhn nt Save, mt ca s New Project hin ra. Trong ca s ny bao gm rt
nhiu Tab, mi Tab m t v mt vi tnh nng ca con PIC. Ta s chn tnh nng s dng ti cc Tab tng ng.
Di y s trnh by ngha tng mc chn trong mi Tab. Cc mc chn ny chnh l cp n cc tnh nng ca
mt con PIC, ty theo tng loi m s c cc Tab tng ng. i vi tng d n khc nhau, khi ta cn s dng tnh nng
no ca con PIC th ta s chn mc . Tng cng c 13 Tab ta la chn. Ti gii thiu nhng Tab chnh thng hay
c s dng.

2.1.1. Tab General


Tab General cho php ta la chn loi PIC m ta s dng v mt s la chn khc nh chn tn s thch anh dao ng,
thit lp cc bit CONFIG nhm thit lp ch hot ng cho PIC.

Tab General
Device: Lit k danh sch cc loi PIC 12F, 16F, 18F Ta s chn tn Vi iu khin PIC m ta s dng trong d n.
Ly v d chn PIC16F877A.
Oscilator Frequency: Tn s thch anh ta s dng, chn 20 MHz (ty tng loi)
Fuses: Thit lp cc bit Config nh: Ch dao ng (HS, RC, Internal ), ch bo v Code, Brownout detected
Chn kiu con tr RAM l 16bit hay 8bit.

2.1.2. Tab Communications


Tab Communications lit k cc giao tip ni tip m mt con PIC h tr, thng l RS232 v I2C, cng vi cc la
chn thit lp ch hot ng cho tng loi giao tip.
Giao tip RS232
Mi mt Vi iu khin PIC h tr mt cng truyn thng RS232 chun. Tab ny cho php ta la chn chn Rx, Tx, tc
Baud, Data bit, Bit Parity
Giao tip I2C
s dng I2C ta tch vo nt chn Use I2C, khi ta c cc la chn: Chn SDA, SCL, Tc truyn (Fast Slow),
ch Master hay Slave, a ch cho Salve.

2
Tab Communications
2.1.3. Tab SPI and LCD
Tab ny lit k cho ngi dng cc la chn i vi giao tip ni tip SPI, chun giao tip tc cao m PIC h tr v
phn cng. Ch khi ta dng I2C th khng th dng SPI v ngc li. c th s dng c hai giao tip ny cng mt
lc th buc mt trong 2 giao tip phi lp trnh bng phn mm (ging nh khi dng I2C cho cc chip AT8051, khng c
h tr phn cng SSP).
Phn cu hnh cho LCD dnh cho cc chp dng 18F v 30F.

Tab SPI and LCD


2.1.4. Tab Timer
Lit k cc b m/nh thi m cc con PIC dng Midrange c: Timer0, timer1, timer2, WDT
Trong cc la chn cu hnh cho cc b m /nh thi c: chn ngun xung ng h (trong/ngoi), khong thi gian xy
ra trn

Tab Timer

3
2.1.5. Tab Analog
Lit k cc la chn cho b chuyn i tng t/s (ADC) ca PIC. Ty vo tng IC c th m c cc la chn khc
nhau, bao gm:
La chn cng vo tng t
Chn chn in p ly mu (Vref)
Chn phn gii: 8bit = 0 ~ 255 hay 10bit = 0~1023
Ngun xung ng h cho b ADC (trong hay ngoi), t m ta c c tc ly mu, thng ta chn linternal 26
us.
Khi khng s dng b ADC ta chn none

Tab Analog
2.1.6. Tab Other
Tab ny cho php ta thit lp cc thng s cho cc b Capture/Comparator/PWM.
Capture Bt gi
Chn bt gi xung theo sn dng (rising edge) hay sn m (falling edge) ca xung vo
Chn bt gi sau 1, 4 hay 16 xung (copy gi tr ca TimerX vo thanh ghi lu tr CCCPx sau 1, 4 hay 16 xung).
Compare So snh
Ta c cc la chn thc hin lnh khi xay ra bng nhau gia 2 i tng so snh l gi tr ca Timer1 vi gi tr lu
trong thanh ghi so snh. Bao gm:
o Thc hin ngt v thit lp mc 0
o Thc hin ngt v thit lp mc 1
o Thc hin ngt nhng khng thay i trng thi ca chn PIC.
o a Timer1 v 0 nhng khng thay i trng thi chn.
PWM iu ch rng xung
La chn v tn s xung ra v duty cycle. Ta c th la chn sn hay t chn tn s, tt nhin tn s ra phi nm trong
mt khong nht nh.
Comparator So snh in p
La chn mc in p so snh Vref. C rt nhiu mc in p ta la chn. Ngoi ra ta cn c th la chn cho u
vo ca cc b so snh.

Tab Other
4
2.1.7. Tab Interrupts v Tab Driver
Tab Interrupts cho php ta la chn ngun ngt m ta mun s dng. Ty vo tng loi PIC m s lng ngun ngt
khc nhau, bao gm: ngt ngoi 0(INT0), ngt RS232, ngt Timer, ngt I2CSPI, ngt onchange PORTB.v.v
Tab Drivers c dng la chn nhng ngoi vi m trnh dch h tr cc hm giao tip. y l nhng ngoi vi m
ta s kt ni vi PIC, trong cc IC m CCS h tr, ng ch l cc loi EEPROM nh 2404, 2416, 2432, 9346,
9356Ngoi ra cn c IC RAM PCF8570, IC thi gian thc DS1302, Keypad 3x4, LCD, ADC Chi tit ta c th xem
trong th mc Driver ca chng trnh: \...\PICC\Drivers

Tab Interrupts

Tab Driver

Sau cc bc chn trn, ta nhn OK kt thc qu trnh to mt Project trong CCS, mt Files ten_project.cc to ra,
cha nhng khai bo cn thit cho PIC trong mt Files ten_project.h.
Sau y l v d v cu trc 1 chng trnh trong CCS :

Code Mu:
#include < 16F877 .h >
#device PIC6f877 *=16 ADC=10
#use delay(clock=20000000)
....
int16 a,b;
....
void xu_ly_ADC ( )
{
...
}
#INT_TIMER1
Void xu_ly_ngat_timer ( )
{
...
5
}

void main ( )
{
...
...
}
+ u tin l cc ch th tin x l : # . . . c nhim v bo cho CCS cn s dng nhng g trong chng trnh C nh dng
VXL g , c dng giao tip PC qua cng COM khng , c dng ADC khng , c dng DELAY khng , c bin dch km
cc file hay khng . . .
+ Cc khai bo bin .
+ Cc hm con do ta vit : xu_ly_ADC () , . . .
+ Cc hm phc v ngt theo sau bi 1 ch th tin x l cho bit dng ngt no.
+ Chng trnh chnh .
+ Mt chng trnh C c th c vit lun tun trong hm main () , nu chng rt ngn v n gin. Nhng khi chng
trnh bt u di ra , phc tp ln 1 cht th phi phn chia trong cc hm con .

Cc hm ny c th l :
1/ Hm khng tr v gi tr.
V d :
void xu_ly( )
{
z= x+y;
}
Hm trn ch thc hin cc lnh trong thn hm , khi gi hm ny ch n gin vit : xu_ly( ) ;
2/ Hm c tr v tr.
V d :
int xu_ly ( int a , int b)
{
......
return (a+b) ;
}
Hm trn s tr v tng (a+b) . Khi s dng , v d tnh tng 2 bin e ,f , chng trnh nh sau (trong hm main() ) :
void main()
{
int e ,f ,g ;
e=7 ;
f= 4;
g = xu_ly(e ,f ); // gi tr g = 28
}
+ Mi hm con nn c vit thc hin 1 chc nng chuyn bit no . Bn trong 1 hm con c th gi 1 hay nhiu
hm khc . Cch thc hot ng nh vit 1 chng trnh C trn my tnh .
+ Nu chng trnh ln hn na c th lm file c rt di v do rt kh kim sot , nn s cn phn chia ra cc file c .
trong file chnh cha hm main s c bin dch . Cc file c khc cha cc hm phc v chuyn bit nh : cho LCD ,
. . .Trong file chnh ch cn thm dng #include < filex.c > l tt c hm cn dng cha trong file x s c bin dch vo
file hex chung. Cc v d trong th mc ca CCS nu c s dng LCD s chn 1 dng #include v do s gi c
cc hm trong file ny m khng cn phi vit li . iu ny c ngha l ta c th vit cc file c cha m tng qut c th
dng chung cho nhiu project , tc l ti s dng m , thay v phi vit li chuyn bit cho tng project . y l cch lm
chuyn nghip cho nhng project ln .

You might also like