You are on page 1of 12

Bi 1: 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. 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 cho ngi 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 tcchung 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.

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.

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

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

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 : #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 ( ) {... ... } 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 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() ) : 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 <lcd.c> 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