Professional Documents
Culture Documents
Huong Dan CCS
Huong Dan CCS
242
1. Tng Quan V CCS
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.
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
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 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 .