Lưu ý
lập trình CCS C cho PIC
T
Ậ
P LÊNH CCS C CHO PIC 16F877A
1. Ch
ỉ
th
ị
ti
ề
n x
ử
lý.
1.
INCLUDE
Cú pháp:
include Khai báo ch
ỉ
định đườ
ng d
ẫ
n cho trình biên d
ị
ch
Ví d
ụ
:
include
ho
ặ
c
include < C:\INCLUDES\CCSC\VIDU.C >
2.
BIT
Cú pháp:
bit name=x.y T
ạ
o bi
ến 1bit có tên là name đặ
t
ở
byte x v
ị
trí y. Thường dung để
ki
ể
m tra ho
ặ
c gán giá tr
ị
cho thanh ghi. Điể
m khác so v
ớ
i dùng bi
ế
n 1 bit t
ừ
khai báo
int1
là:
int1
t
ố
n 1 bit b
ộ
nh
ớ
, còn
BIT
thì không t
ố
n thêm b
ộ
nh
ớ
do name ch
ỉ
da
nh định đạ
i di
ệ
n chi bit ch
ỉ
đị
nh
ở
bi
ến x, thay đổ
i name [0/1] s
ẽ
thay đổ
i giá tr
ị
tương ứ
ng y -
\> thay đổ
i giá tr
ị
Ví d
ụ
:
bit TMR1IF=0x0B.2
; => t
ạ
o bi
ến 1bit tên TMR1IF đặ
t
ở
byte có đị
a ch
ỉ
0x0B
ở
v
ị
trí th
ứ
2.
3.
BYTE
Cú pháp:
byte name=x Gán tên bi
ến name cho đị
a ch
ỉ
- name thườ
ng trùng v
ới tên thanh ghi có đị
a ch
ỉ
x
Ví d
ụ
:
byte portB=0x06;
4.
DEFINE
Cú pháp:
define name text
Dùng để
khai báo m
ộ
t chu
ỗ
i ho
ặ
c s
ố
có tên là name Ví d
ụ
:
define constan 123456;
5.
USE:
Cú pháp:
use delay[clock=speed]
Dùng để
khai báo t
ốc độ
dao độ
ng c
ủ
a th
ạ
ch anh và có ch
ỉ
th
ị
này thì b
ạ
n m
ớ
i s
ử
d
ụng đượ
c các hàm tr
ễ
th
ờ
i gian delay_ms hay delay_us Cú pháp:
use fast_io[port] Port là các c
ổ
ng vào ra c
ủ
a PIC [t
ừ
A -> G] Có ch
ỉ
th
ị
này thì chúng ta có th
ể
điề
u ch
ỉ
nh các port ch
ỉ
v
ớ
i 1 l
ệ
nh
như
output_low[]
,
input_high[]
...Chú ý: trong hàm main [] b
ạ
n ph
ả
i dùng hàm
set_tris_x[]
để
ch
ỉ
rõ chân vào ra thì ch
ỉ
th
ị
trên m
ớ
i có hi
ệ
u l
ự
c, n
ế
u không
chương trình sẽ
ch
ạ
y sai!
Ví d
ụ
:
USE FAST_IO [A];
B
ạ
n có th
ể
tìm đọ
c thêm m
ộ
t s
ố
ch
ỉ
th
ị
USE I2C,
USE RS232 cũng như mộ
t s
ố
ti
ề
n x
ử
lý khác trong tài li
ệ
u CCS C b
ả
n ti
ế
ng vi
ệ
t c
ủ
a Nguy
ễn Xuân Trường đi
kèm
ở
trên.
2. Các hàm delay
Để
s
ử
d
ụ
ng các hàm delay ph
ả
i khai báo ti
ề
n x
ử
lý như đã nói ở
trên ví d
ụ
:
use delay [clock=20000000];
Hàm delay không s
ử
d
ụ
ng b
ấ
t k
ỳ
m
ộ
t timer nào. Có 3 hàm ph
ụ
c v
ụ
: 1. Delay_cycles [count] count: h
ằ
ng s
ố
t
ừ
0 - 255, là s
ố
chu k
ỳ
l
ệ
nh. 1 chu k
ỳ
l
ệ
nh b
ằ
ng 4 chu k
ỳ
máy nhé!
ví d
ụ
: delay_cycles [25]
; v
ớ
i t
ầ
n s
ố
dao độ
ng th
ạ
ch anh OSC=20MHZ thì hàm delay này 5us=5*10^-6s 2. Delay_us [time] Time là bi
ế
n s
ố
thì giá tr
ị
t
ừ
0-255, n
ế
u là h
ằ
ng s
ố
thì 0-65535.
ví d
ụ
: int time=100;
delay_us [time]; //delay 100us
delay_us [1000]; //delay 1000us
3. Delay_ms [time]
Tương tự
v
ớ
i
delay_us
nhưng với đơn vị
là ms=10^-3s.
3. Các hàm vào ra trong CCS C
VDD and VSS are the pins for providing power. For PIC 16F877A, VDD = 5V and VSS = GND [0V]. Pin 13 & 14, OSC1 and OSC2 are for connecting oscillator which will provide the necessary clock for the operation of microcontroller. The 1st pin MCLR is the reset pin of PIC Microcontroller, it is an active low input. It