Professional Documents
Culture Documents
PIC C18 - Hitech C PDF
PIC C18 - Hitech C PDF
www.biglab.edu.vn
LI NI U
Ti liu ny cng vi cng chng trnh l ti liu hng dn chnh thc cho hc vin tham
gia kha hc PIC C18 Full do Nhm o To BigLab ph trch.
Ti liu c gi tr lu hnh ni b, c cung cp min ph cho hc vin tham gia kha hc.
Mi thc mc v ti liu xin lin h trc tip vi ging vin ng lp.
Ti liu c bin son ln u chc chn cn nhiu thiu st, rt mong s gp ca qu hc
vin, c gi. Mi kin ng gp xin lin h email: vxquoc@gmail.com
www.biglab.edu.vn
MC LC
B CHNG TRNH TI BIGLAB ........................................................................... 8
CNG CHNG TRNH PIC TOTAL ............................................................ 11
Bi 1 : NHNG KHI NIM BAN U ................................................................... 17
1.1 VI IU KHIN L G ...................................................................................... 17
1.2 TNG TH KIN TRC PHN CNG VI IU KHIN ................................ 19
1.3 LA CHN DNG VI IU KHIN ................................................................ 22
1.4 CC NGN NG LP TRNH CHO VI IU KHIN ..................................... 22
Bi 2 : K THUT LP TRNH C ............................................................................. 24
2.1 KHI QUT NGN NG C .............................................................................. 24
2.2 NHNG VN LIN QUAN KHI S DNG C CHO LP TRNH PIC ....... 31
Bi 3 : B NH, B DAO NG V THANH GHI H THNG .......................... 33
3.1 B NH ............................................................................................................. 33
3.2 B DAO NG .................................................................................................. 36
3.3 TIN X L V THANH GHI H THNG ...................................................... 38
3.4 BI TP .............................................................................................................. 39
Bi 4 : IO PORT OUTPUT ....................................................................................... 40
4.1 GII THIU PHN CNG ................................................................................ 40
4.2 BI TP - CC NG DNG CA IO PORT-PHN OUTPUT ........................ 42
4.3 BI TP V NH: ............................................................................................. 44
4.4 PH LC CHUN LOGIC NG RA CA IO PORT ..................................... 45
Bi 5 : NGT (INTERRUPTS) .................................................................................... 46
5.1 NH NGHA NGT .......................................................................................... 46
5.2 PHN LOI NGT ............................................................................................ 46
5.3 HOT NG CA NGT ................................................................................. 47
5.4 TNG TC VI NGT ................................................................................... 49
www.biglab.edu.vn
5.5 BI TP .............................................................................................................. 51
Bi 6 : IO PORT - INPUT ............................................................................................ 52
6.1 M T PHN CNG ......................................................................................... 52
6.2 BI TP NG DNG IO PORT - INPUT ....................................................... 52
6.3 PH LC ............................................................................................................ 53
Bi 7 : TIMER .............................................................................................................. 55
7.1 NHNG KHI NIM ......................................................................................... 55
7.2 HOT NG CA TIMER ................................................................................ 56
7.3 TNG TC VI TIMER.................................................................................. 59
7.4 BI TP .............................................................................................................. 60
Bi 8 : BI TP GIA KHA.................................................................................... 61
8.1 YU CU............................................................................................................ 61
8.2 M T PHN CNG ......................................................................................... 61
8.3 GII THUT ...................................................................................................... 62
8.4 CHNG TRNH ............................................................................................... 62
Bi 9 : NGN NG LP TRNH C NNG CAO ...................................................... 63
9.1 TI LIU THAM KHO .................................................................................... 63
9.2 CC HM THNG DNG TRONG TH VIN C CHUN:............................ 63
Bi 10 : IO PORT NNG CAO LCD ....................................................................... 66
10.1 TNG QUAN V LCD ....................................................................................... 66
10.2 CU TRC PHN CNG (LCD- HD 44780) ................................................... 67
10.3 TP LNH ........................................................................................................... 67
10.4 TNG TC VK - LCD .................................................................................... 67
Cc hm tng tc c bn: ......................................................................................... 68
Bi 11 : TIMER 1, 2, 3.................................................................................................. 70
11.1 TI LIU THAM KHO .................................................................................... 70
www.biglab.edu.vn
www.biglab.edu.vn
www.biglab.edu.vn
www.biglab.edu.vn
Bng 2.1
Bng 2.2
Bng 2.3
Bng 2.4
Bng 4.1
Bng 4.2
Bng 4.3
Bng 9.1
www.biglab.edu.vn
C kh
in t
SolidWorks
cn bn
AutoCAD
cn bn
Thit k vi
SolidWorks
Thit k vi
AutoCAD
OrCAD
cn bn
in t
thc hnh
Lp trnh vi iu khin
PIC C bn
in t
KTS
PIC Full
PIC Full
CCSC
ARM
Total
PIC Full
C18
PIC ng dng
in t ng dng
PIC - iu
khin ng
c
PIC Giao
tip khng
dy
PIC C#
9
-
www.biglab.edu.vn
in t:
-
Lp trnh nhng:
Cc lp lp trnh nhng l mt mng ln c quan tm nht ca b chng trnh ti BigLab.
Hin ti BigLab c cc chng trnh lp trnh cho vi iu khin: PIC, ARM trong b chng
trnh cho vi iu khin PIC c thit k cng phu v c th nghim qua nhiu kha hc.
Chng trnh PIC c thit k theo 2 hng chnh:
-
10
www.biglab.edu.vn
+ CCSC: y l trnh bin dch d s dng, khng cn kin thc chuyn su v h thng. Lp
ny thch hp cho nhng bn i lm v mong mun c kin thc v lp trnh vi iu khin s
dng trong cng vic c th.
+ C18: l trnh bin dch chuyn su ca Microchip vit ring cho dng PIC18. s dng
trnh bin dch ny i hi cc bn phi c kin thc su v phn cng vi iu khin. Chnh v th
s thng qua vic lp trnh cc bn s hiu r v hot ng ca vi iu khin hn, t d dng
tm hiu nhng dng vi iu khin khc (nh ARM,...).
-
y l b chng trnh lp trnh vi iu khin PIC c thit k c bit dnh cho cc bn sinh
vin, nhng ngi c thi gian, lng am m cng nh s kin nhn theo ui v nm vng
dng vi iu khin PIC. Lp u tin trong b ny l lp PIC C bn: lp ny s cung cp nhng
kin thc c bn v lp trnh C, vi iu khin PIC, cc nguyn l hot ng ca vi iu khin, v
cc module h thng. Cc lp tip theo ca chng trnh l cc lp ng dng vi iu khin vo
vic gii quyt cc bi ton thc t nh iu khin ng c, giao tip my tnh, giao tip khng
dy... cc lp ny cc bn s c hc cc module ngoi vi tng ng, sau s ng dng cc
module ny vo thc t cng vic.
Ton b chng trnh ny c thit k s dng trnh bin dch C18, l mt trnh bin dch
chuyn su do Microchip pht trin chuyn dng cho dng vi iu khin PIC18F.
Lp hc NG HNH, bui ni chuyn chuyn :
Ngoi nhng chng trnh c nh trn Nhm cn thung xuyn m cc lp hc NG HNH
(min ph) v ch nht hng tun. y l ni cc bn c c hi hc tp min ph, gp g giao lu
v c c hi tm hiu thm v lnh vc mnh ang theo ui.
Bn cnh cc bui hc NG HNH l cc bui ni chuyn chuyn chia s kinh nghim
hc tp, cp nht kin thc cng ngh... cng c t chc thng xuyn.
y l cc chng trnh c cc Ging vin trng i Hc Bch Khoa TPHCM thc hin
nhm to mt khng kh gp g giao lu, kt ni vi ton th cc bn sinh vin k thut cng
to dng mt cng ng vng mnh hn trong lnh vc k thut iu khin t ng.
Mi thc mc xin lin h website chnh thc ca nhm: www.biglab.edu.vn hoc thng qua
din n: www.dieukhienvietnam.com
11
www.biglab.edu.vn
Chng trnh xy dng da trn dng vi iu khin PIC18 ca hng Microchip. Ngn ng lp
trnh s dng: C18. Dng vi iu khin s dng th nghim l PIC18F4620.
Chng trnh s cung cp cho hc vin nhng kin thc v vi iu khin PIC t c bn ti nng
cao. Gip hc vin thc hnh thnh tho vic s dng cc module chc nng trong vi iu khin,
tin ti ng dng vi iu khin PIC gii quyt cc vn thc t. Chng trnh cng c nhiu
bi tp thc hnh thc t lin quan.
cng chi tit (18 bui)
-
12
o Hm
o Ton t
o Cu trc v cch thc thi chng trnh C
o Nhng kin thc cn bn v t ch b nh PIC
Bui 3: T chc phn cng ca PIC
o Thanh ghi h thng
o Cc vn lin quan ti b dao ng, tin x l
o Gii thiu cc module ca vi iu khin
o Bi tp: Vit code ci t phn cng cho vi iu khin PIC
o Gii thiu cc phn mm v ngn ng s dng
Trnh bin dch C complier
C complier v MPLAB
Proteus v m phng bng Proteus
Bui 4: Cc module cn bn ca vi iu khin PIC
o L thuyt:
T chc phn cng
Cc thanh ghi iu khin PORT
o Bi tp:
Lp trnh xut led n
Bui 5: Cc module cn bn ca vi iu khin PIC (tt)
o Bi c:
Lp trnh hin th led 7 on
o L thuyt:
T chc phn cng ca interrupt
Cc thanh ghi iu khin interrupt trong PIC
o Bi tp v nh:
Lp trnh s dng c phm n bng ngt ngoi
Bui 6: Cc module cn bn ca vi iu khin PIC (tt)
o Bi c:
Lp trnh c s ln nhn phm hin th ra led 7 on
o L thuyt:
Cc thanh ghi iu khin input
o Bi tp:
Lp trnh c 4 phm n (s dng phng php qut)
o Bi tp v nh:
Lp trnh c 4 phm n bng phng php ngt RB
Bui 7: Cc module cn bn ca vi iu khin PIC (tt)
o Bi c:
Lp trnh qut phm ma trn
o L thuyt:
T chc phn cng timer
Cc thanh ghi iu khin timer trong PIC
Watch Dog Timer (WDT)
o Bi tp:
www.biglab.edu.vn
13
www.biglab.edu.vn
14
www.biglab.edu.vn
15
www.biglab.edu.vn
16
www.biglab.edu.vn
PHN BI GING
PIC C18
17
www.biglab.edu.vn
1.1 VI IU KHIN L G
1.1.1 Vi nt v lch s
Nhng thp k cui ca th k XX, vi s pht trin ca cng ngh bn dn, k thut in t c
nhng bc pht trin vt bc. Ngy cng c nhiu linh kin c tch hp trong mt th tch
nh hn. Nhng thit b ny gi l cc vi mch tch hp.
Nm 1971 Intel cho ra i b vi x l u tin, chip 4004, cha 2300 transistor. S kin ny
c xem nh l mt bc t ph v cng ngh. Vi s pht trin khng ngng, ngy nay s
transitor tch hp trong vi x l ln con s hng chc triu (b vi x l Penltum 4 cha 55 triu
transistor).
Nh vy vi x l m mt mch tch hp cha hng ngn thm ch hng triu transitor kt ni
vi nhau. Cc transistor cng nhau lm vic tnh ton, x l, lu tr Chc nng c th ca
vi x l c xc nh bng phn mm.
1.1.2 T vi x l ti vi iu khin
Vi x l ch c tc dng tnh ton, thc hin mt chc nng no c th (v d iu khin
ng c) vi x l phi c kt ni vi cc thit b, c th l cc mch in bn ngoi. H thng
d ln hay nh, nu dng vi x l th cng i hi cc khi mch in giao tip phc tp nh
nhau. Cc khi ny bao gm b nh cha d liu v chng trnh thc hin, cc mch in giao
tip ngoi vi xut nhp v iu khin tr li, cc khi ny cng lin kt vi vi x l th mi thc
hin c cng vic. kt ni cc khi ny i hi ngi thit k phi hiu bit tinh tng v
cc thnh phn vi x l, b nh, cc thit b ngoi vi. H thng c to ra kh phc tp, chim
nhiu khng gian, mch in phc tp. V thc hin vic nay yu cu trnh ngi thit k phi
cao. Kt qu l gi thnh sn phm cui cng rt cao, khng ph hp p dng cho cc h thng
nh.
Chnh v yu cu vi iu khin ra i. Vi iu khin l s tch hp mt t b nh v mt s
mch giao tip ngoi vi cng vi vi x l vo mt IC duy nht. Vi iu khin c kh nng tng t
Nhm bin son BigLab
17
18
www.biglab.edu.vn
nh kh nng ca vi x l, nhng cu trc phn cng dnh cho ngi dng n gin hn nhiu. Vi
iu khin ra i mang li s tin li i vi ngi dng, h khng cn nm vng mt khi lng
kin thc qu ln nh ngi dng vi x l. Thm vo , kt cu mch in dnh cho ngi dng
cng tr nn n gin hn nhiu, v c kh nng giao tip trc tip vi cc thit b bn ngoi. V
d nhin v th gi thnh ca vi iu khin cng r hn nhiu so vi vi x l. Nhng thay cho
nhng li im ny l kh nng x l b gii hn (tc x l chm hn v kh nng tnh ton t
hn, dung lng chng trnh b nh hn).
Vi nhng u im , ngy nay, vi iu khin ring l c s dng rng ri vo nhiu ng
dng c chc nng n gin, khng i hi tnh ton phc tp. Vi s tch hp nhiu chun giao
tip khc nhau, cc vi iu khin c kh nng kt ni vi nhau to thnh mt h thng ln khi
yu cu phc tp v h thng tng ln. Do vi iu khin l thnh phn khng th thiu trong
cc h thng s d ln hay nh m c kh nng lp trnh.
1.1.3 ng dng ca vi iu khin
Nh ni trn, vi iu khin c ng dng nhiu trong cc h thng va phi. Nhng h
thng ny c th k n nh: cc thit b gia nh, cc thit b vn phng, cc ng dng cng
nghip nh, chiMt vi ng dng vi iu khin c cho bng sau:
Bng 1.1
Thit b gia nh
Thit b vn phng
in trong nh
Tivi
Tr chi in t
L vi sng
VCR
Nhc c in t
Ca t ng
Camera
iu ha nhit
Dng c th thao
iu khin t xa
chi tr em
in thoi
My photocopy
H thng an ninh
My Fax
My tnh c nhn
My in
iu khin ng c
H thng o lng
Thit b ABS
19
www.biglab.edu.vn
Timer/
Counter
CPU
Address, Data, Control BUS
B dao
ng
B nh
I/O
PORT
Ngoi vi
20
www.biglab.edu.vn
21
www.biglab.edu.vn
22
www.biglab.edu.vn
di chuyn cc d liu trn cc BUS nn rng ca BUS (hay s bit) l rt quan trng i vi hiu
sut cng nh tc ca my. Tc ca my tnh s tng khi s bit ca BUS tng ln.
23
www.biglab.edu.vn
CCSC
Hi-Tech C
B trnh bin dch C18, C30, C33, l b trnh bin dch c hng Microchip thit k chuyn
dng lp trnh cho vi iu khin PIC v n c a ra khi mt dng vi iu khin PIC no
ra i. Chnh v c im ny cc trnh bin dch ny rt ph hp vi vic lp trnh cho dng vi
iu khin m n h tr. y l mt dng ngn ng thao tc trn phn cng, c th can thip vo
cp thanh ghi ca vi iu khin quy nh chc nng ca tng module cn bn trong vi iu
khin. ng thi ngn ng cng h tr cc hm tnh ton, cch khai bo, cc cu trc lnh ca
ngn ng C cn bn. iu ny gip ngi lp trnh d dng hn rt nhiu so vi vic s dng hp
ng m vn m bo hiu r c cch thc lm vic ca vi iu khin mc thanh ghi.
24
www.biglab.edu.vn
Bi 2 : K THUT LP TRNH C
Bi 2 bn v cc vn c bn ca lp trnh C da trn ANSI C.
H nh phn:
H s dng cc k s 0 v 1 biu din s. VD: 1101, 1001
H thp phn:
H s dng cc k s t 0 n 9 biu din s. Cc con s ny c dng cng vi du
. phn cch phn thp phn v phn nguyn. Ngoi ra, phn bit s m v s dng ngi
ta cn thm du - v du + trc k s.
VD: 15; 12.96; -902.6
H thp lc phn:
H s dng cc k s 0 n 9 cng cc k t A n F biu din s.
VD: 9AF; 6BC
2.1.2.1 Bin
Bin c v nh mch mu trong chng trnh truyn d liu t hm ny sang hm khc. Mt
bin c c trng bi 2 c tnh: kiu bin v tm vc ca bin. Bng di y lit k cc kiu
bin c h tr trong C:
Bin : <kiu d liu> <tn bin> = <gi tr>;
Phn khai bo gi tr c th cn hoc khng.
o Bin ton cc l bin xut hin khi chng trnh thc thi, tn ti sut trong thi gian
chng trnh thc thi ch c gii phng khi chng trnh kt thc.
o Tt c cc hm trong chng trnh u c th truy xut gi tr ca bin ton cc
Nhm bin son BigLab
24
25
www.biglab.edu.vn
Bin a phng:
o Bin a phng l bin xut hin khi on chng trnh cha bin a phng thc
thi, gii phng khi on chng trnh kt thc.
o Ch chng trnh con, on chng trnh cha bin a phng mi c truy xut
bin
o Bin a phng c khai bo trong on chng trnh, chng trnh con
Kiu bin:
Bng 2.1
2.1.2.2 Hng
Hng s trong C c ngha theo ng hng s ton hc. C ngha l gi tr ca hng s khng
thay i trong sut qu trnh chng trnh thc thi.Hng s lun c tm vc ton cc.
khai bo hng s thuc mt kiu d liu no ta thm t kha const vo pha trc t
kha quy nh kiu d liu.
Hng: const <kiu d liu> <tn hng> = <gi tr>;
Bt buc phi c phn khai bo gi tr.
VD: const int8 a = 10;
26
www.biglab.edu.vn
2.1.2.3 Mng
Khai bo:
const<kiu d liu mng><tn mng>[<kch thc mng>] = {<gi tr cc phn t
mng>};
VD: const int8 vidu[2] = {1,2};
Lu :
Mng hng s thng dng lm bng tra (v d bng tra cc hm lng gic)
PIC16F thng khng qu 60 byte d l khai bo con tr 16 bit hay 8 bit. Tuy nhin nn
khai bo con tr 16 bit v lc s trnh li xy ra: not enough RAM for all variable
PIC18F Kch thc bin mng khng gii hn. Nu khai bo con tr 8 bit th bin mng
ti a l 256 byte, nu l 16 bit th ton b khng gian b nh RAM
27
www.biglab.edu.vn
Tnh ton vi s m: Khi tnh ton vi s m bt buc ta phi khai bo kiu d liu l s
c du (mc nh l khng du) nu khng s gp kt qu tng t nh trng hp trn s.
2.1.4
Ton t
2.1.4.1 Ton t
Bng 2.3
Ton t trong C
STT
Loi ton t
Tn ton t
K hiu
Chc nng
Nhn
Nhn 2 s
Chia
Chia 2 s
28
www.biglab.edu.vn
Cng
Cng 2 s
Tr
Tr 2 s
Chia ly d
Chia ly d 2 s nguyn
Not bit
Dch tri
<<
Dch phi
>>
AND
&
V tng bit
10
XOR
11
OR
OR tng bit
AND
&&
OR
||
OR logic 2 gi tr logic
So snh bng
==
So sng bng 2 s
15
So snh khc
!=
So snh khc 2 s
16
SS b hn
<
SS b hn 2 s
17
SS b hn, bng
<=
SS b hn hoc bng 2 s
18
SS ln hn
>
SS ln hn 2 s
19
SS ln hn, bng
>=
SS ln hn hoc bng 2 s
Ton t bit
12
Ton t logic
13
Ton t quan h
14
STT
Tn
M c
Ton t
Nhm
Primary
1(high)
() . []
Left to Right
Unary
Right to Left
Binary
Arithmetic
Shift
Relational
Equality
Bitwise
/ *%
Left to Right
+-
Left to Right
>> <<
Left to Right
Left to Right
== !=
Left to Right
&
Left to Right
29
www.biglab.edu.vn
Bitwise
Left to Right
10
Bitwise
10
Left to Right
11
Logical
11
&&
Left to Right
12
Logical
12
||
Left to Right
13
Conditional
13
? :
Right to Left
Left to Right
14
Assigment
14 (low)
|= ^=
2.1.5 Hm
2.1.5.1 C php hm
Mt hm C phi bao gm mt kiu tr v (kiu tr v void nu khng c gi tr tr v), mt
tn xc nh, mt danh sch cc tham s trong ngoc n (nu danh sch ny khng c tham s
no th ghi l void bn trong du ngoc), sau l khi cc cu lnh (hay khi m) v/hay cc cu
lnh return. (Nu kiu tr v l void th mnh ny khng bt buc phi c. Ngc li, cng
khng bt buc ch c mt cu lnh return m ty theo k thut, ngi lp trnh c th dn dng
m sao cho mi hng ch nhnh u c tr v ng kiu.)
<kiu_tr_v> tn_hm(<danh sch tham s>)
{
<cc_cu_lnh>
return <bin (hay gi tr) c kiu l kiu_tr_v>;
}
Trong , <danh sch tham s> ca N bin th c khai bo nh l kiu d liu v tch ri
nhau bi du phy ,
Ton b danh sch ny c t trong ngoc n ngay sau tn_hm.
-
Th d:
Vit hm add tnh tng hai s c kiu integer, hm abs tnh tr tuyt i ca s c kiu integer,
v chng trnh (hm main) hin th hai dng 1 + 1 = 2 v absolute value of -2 is
Nhm bin son BigLab
29
30
www.biglab.edu.vn
y n c gi l tham s hnh thc, ch mang tnh hnh thc.x l tham s thc s. Vic gi x
vo cho hm test thay th cho n c gi l truyn tham s. Vi nhng hm khng c tham s th
khng phi truyn. C 3 loi truyn tham s:
31
www.biglab.edu.vn
Tham kho:http://www.cplusplus.com/doc/tutorial/pointers/
32
www.biglab.edu.vn
33
www.biglab.edu.vn
3.1 B NH
Ti liu tham kho: Datasheet 18F4620 18F2550
3.1.1.1 T chc phn cng tng qut ca mt b VK PIC:
Sau y, ta phn tch cu trc c bn ca mt b VK PIC. (ta xt b VK 18F4620)
34
www.biglab.edu.vn
(Program Memory)-18F4620:
Nh chng ta c th thy b nh chng
trnh c chia lm 3 phn chnh:
Program Counter:
Phn ny l mt thanh ghi 21 bits (tn gi
l thanh ghi PC) cha gi tr a ch ca cu lnh hin thi trong Program Memory.
Stack Memory:
y l b nh vi 31 (mi c 21 bits) nhm ghi li a ch vo ra ca cc chng trnh con.
Ta ly v d nh th ny khi ta chy chng trnh chnh ti a ch l 0x0082 v ta gi mt
chng trnh con (chng trnh con ny c bt u ti a ch 0x0346) nh th a ch 0x0082 s
Nhm bin son BigLab
35
www.biglab.edu.vn
36
www.biglab.edu.vn
3.2 B DAO NG
Ti liu tham kho: chng 2-datasheet
Vai tr ca b dao ng:
B dao ng (hay cn c tn gi khc l b to xung) l phn to xung nhp hot ng chnh
cho VK.
Ti sao ta li phi cn ti b dao ng ?
B to dao ng nhm to ra cc h xung c chu k c nh nhm ng b ha d liu ca
VK, hay ni cch khc hn, thi gian chu k ca h xung dao ng chnh l n v c bn o
m thi gian hot ng ca cc module trong VK.
Phn loi cc b dao ng thng dng trong VK:
37
www.biglab.edu.vn
y l b to xung n gin, d hiu
v d s dng nht.
Tn hiu dao ng vo VK theo ng
OSC1 v ra theo ng OCS2. T C1 v C1
ng vai tr nh b n nh xung nhp.
Gi tr C1 v C2 thay i theo tn s
38
www.biglab.edu.vn
Khai bo vng lp trnh trong program memory, vng d liu trong data memory.
39
www.biglab.edu.vn
Khai bo vng lp trnh cho program memory, vng d liu trong data memory v khai bo cho
vector ngt s c ni r hn trong nhng phn lin quan tip theo. ni dung bi ny ch gii
thiu dng #pragma cho khai bo thanh ghi h thng
3.3.2 Khai bo thanh ghi h thng
C php:
#pragma config <thanh_ghi_h_thng> = <gi_tr>
Cc thanh ghi h thng: (tham kho DATASHEET-chng 23, 25, hoc c th dng
Help/Topic/PIC C18 Config Settings)
y ch trnh by nhng thanh ghi h thng gi chc nng ci t cho b dao ng.
i vi PIC18F4620:
#pragma config OSC = XT // khai bo xung s dng thch anh
i vi PIC18F4550:
#pragma config PLLDIV = 5 // Khai s dng thch anh 20MHz
#pragma config CPUDIV = OSC1_PLL2 #pragma config USBDIV = 1
#pragma config FOSC = XTPLL_XT
// GV s ging thm phn ny lp
Lu :
Chc nng no ca thanh ghi h thng khng s dng u khai bo l OFF, cc chc nng
cn li c chn con s thp nht.
3.4 BI TP
40
www.biglab.edu.vn
Bi 4 : IO PORT OUTPUT
Bi 4 gii thiu v module u tin trong vi iu khin IO PORT. y l phn quan trng bc
nht trong vi iu khin v tt c cc ng dng u cn dng n. Hc vin cn nm r phn cng
v cch tng tc phn cng, t p dng vo cc ng dng c th c hng dn trong bi.
41
www.biglab.edu.vn
4.1.2.2 PORT B
PORTB vi 8 chn giao tip bn ngoi, ngoi chc nng I/O n cn l ni c cc chn ngt
ngoi v ngt thay i trng thi. Ch khi t ch ngt th cc chn I/O phi ch Input.
Mt s chn Port B l c i cng chc nng Analog nn khi s dng phi khai bo chn ny l
analog hay digital trong thanh ghi ADCON1. PORTB c th c ko ln ngun yu bng cch
ci t bit RBPU trong thanh ghi INTCON2. Cc thanh ghi lin quan vi PORTB khi s dng
c cho ti bng 10-4.
4.1.2.3 PORT C
Vi 8 chn giao tip bn ngoi, PORT C l ng ra Digital thun ty.
Cc thanh ghi tc ng ln PORTC c cho trong bng 10-6:
42
www.biglab.edu.vn
43
www.biglab.edu.vn
44
www.biglab.edu.vn
Phng php qut l phng php tn dng s lu nh trong mt ngi, bng cch s dng cc
hm delays trong hin th. Trong mt ln qut, chng trnh ch hin th mt LED 7 on, nhng
do s dng tn s qut cao (>24Hz) kch/tt chn ngun ca LED 7 on nn mt ngi b lm
tng l cc LED7 on c hin th cng lc.
4.3 BI TP V NH:
Hin th ma trn LED 4x4.
45
www.biglab.edu.vn
46
www.biglab.edu.vn
Bi 5 : NGT (INTERRUPTS)
5.1 NH NGHA NGT
Ngt (interrupt) l qu trnh tm thi dng chng trnh chnh, thc thi mt chng trnh
khc, chng trnh ny cn c gi l chng trnh thc thi ngt. Hot ng ngt gip h thng
ca chng ta c t tt hn cc c tnh thi gian thc.
47
www.biglab.edu.vn
Vector ngt ca dng 18F c cha trong Program Memory (b nh chng trnh), vi
hai vector ngt:
48
www.biglab.edu.vn
Khai bo bt tt (enable).
Khai bo u tin (priority)
C ngt (flag).
49
www.biglab.edu.vn
+ Thanh ghi PIE: lot thanh ghi PIE (2 thanh ghi) cha cc khai bo bt/tt ngt cho ngoi vi.
+ Thanh ghi IPR: lot thanh ghi IPR (2 thanh ghi) cha cc khai bo mc u tin ngt cho
ngoi vi.
3 bits cn phi quan tm trong qu trnh tng tc vi ngt: IPEN, GIE v PEIE:
IPEN (Interupt Priority Enable) RCON<7>: bit ny cho php chng ta c s dng n
tnh nng mc u tin ngt hay khng.
GIE (Global Interrupt Enable) - INTCON<7>: bit ny cho php ton b cc ngt c s
dng hay khng,
PEIE (Peripheral Interrupt Enable) INTCON<6>: bit ny cho php cc ngt phn ngoi
vi c c s dng hay khng.
Ngt ngoi: Loi ngt ny c kch thch khi c s thay i trng thi ca cc chn INTx.
Ngt RB (ngt PortB): Loi ngt ny c kch hot khi c s thay i trng thi bt k ca
mt trong cc chn R4 R7.
C 2 loi ngt ny c xp vo loi ngt External, thi gian t khi xut hin ngt n khi
chng trnh ngt hot ng c th t 3 ti 4 chu k lnh.
5.4.1 Quy trnh khai bo ngt:
X l ngt
50
www.biglab.edu.vn
Reset c ngt
Chng ta xt ti v d di y:
#include <p18cxxx.h>
// phn khai bo vec t ngt
void ISR_function(void); // khai bo prototype cho chng trnh ngt
#pragma code interrupt_vector = 0x08 // bt u khai bo vector ngt
void int_function (void)
{
_asm GOTO
ISR_function _endasm
}
// kt thc khai bo vector ngt
#pragma code
void main(void)
{
// bt u phn khai bo ngt
INTCONbits.GIE = 1;
INTCONbits.INT0IE = 1;
51
www.biglab.edu.vn
5.5 BI TP
S dng PIC 18F4620 c s ln nhn phm hin th ra LED 7 on(s dng ngt ngoi)
Ti liu tham kho
Trch t datasheet PIC18F4550
52
www.biglab.edu.vn
Bi 6 : IO PORT - INPUT
6.1 M T PHN CNG
Kin trc phn cng xem bi 4.
53
www.biglab.edu.vn
6.3 PH LC
Cc mc in p s dng ch input
54
www.biglab.edu.vn
55
www.biglab.edu.vn
Bi 7 : TIMER
7.1 NHNG KHI NIM
7.1.1 Timer l g?
Timer trong PIC l mt chui flip-flop chia cho 2 nhn ngun vo l xung clock t b to dao
ng. u ra ca flip-flop th nht l u vo ca flip-flop th hai v c nh th tip tc cho cc
cp tip theo (s tng t nh mch m ln). Mi flip flop nh vy tng ng vi mt ng ra
ca timer (1 bit timer). Timer 16 bit l mt chui 16 flip flop, 8 bit l mt chui 8 flip flop Ng
ra ca flip flop cui cng c gi l c (timer flag). Khi timer trn th bit ny s c kch hot.
S kch hot ny c a vo b interrupt to ra mt ngt timer (s c bn trong phn ngt),
ng thi tn hiu ny cng c a ra mt b reset reset ton b ng ra ca flip-flop li t
u. Mch ci t timer s ci t cc gi tr cho cc flip-flop ny ng theo m nh phn ca gi
tr ci t. V vy timer bao gi cng l m ln nu ng ra l tch cc mc cao (Q), v ngc li
s l m xung nu ng ra l tch cc mc thp (Q b).
56
www.biglab.edu.vn
Khi timer clock c chn t ngun xung nhp dao ng chnh ca Fosc/4 vi Fosc l tn
s dao ng ca ngun.
57
www.biglab.edu.vn
58
www.biglab.edu.vn
PSA = 0 s dng ch t l cho ngun clock trc khi vo clock cho timer0, gi tr t
l c quy nh trong bit T0PS
111: 1:256
110: 1:128
101: 1:64
100: 1:32
011: 1:16
010: 1:8
001: 1:4
000: 1:2
59
www.biglab.edu.vn
Thanh ghi TMR0L cha gi tr ca timer0 khi ch 8bit hoc cha gi tr byte thp ca
timer0 khi ch 16 bit.
Thanh ghi TMR0H cha gi tr byte cao ca timer0 khi ch 16 bit. Ch l khi s
dng ch 8 bit th thanh ny khng c ngha.
Thanh ghi TRISA: set TRISA4 = 1 khi s dng ch counter (clock ngoi).
Ci t
Hot ng
Ch timer trn
Np li timer
= 2 (
)
4
60
www.biglab.edu.vn
7.4 BI TP
7.4.1 Yu cu: Dng timer0 vit hm delay cho h thng.
61
www.biglab.edu.vn
Bi 8 : BI TP GIA KHA
8.1 YU CU
62
www.biglab.edu.vn
Kt ni PORT s c hng dn ti lp
63
www.biglab.edu.vn
C Program Language.
n tp kin thc c:
Cc cu trc lnh
Bng 9.1
char
Kiu k t
1B d liu
float
-1.175e-38 3.402e38
Kiu s thc
4Bs d liu
signed long
-2147483648 2147483647
unsigned long
0 4294967295
atoi(data):
atol(data):
64
www.biglab.edu.vn
atof(data):
Chc nng: chuyn i kiu d liu (data) t dng chui sang dng s thc float.
9.2.2
Yu cu bt buc:
#include <string.h>
strlen(str):
strcat(str1,str2):
strcpy(str1, str2):
65
www.biglab.edu.vn
#include <math.h>
abs(data):
Tham s truyn vo: data truyn vo thuc kiu s (char, int, long, float)
Tham s truyn vo: d liu a vo bt buc phi l kiu s (char, int, long, float)
Tham s truyn vo: d liu a vo bt buc phi l kiu s (char, int, long, float)
66
www.biglab.edu.vn
V mt kch thc loi LCD ny kh a dng, mt s kch thc thng dng trn th trng
nh: 128 x 64, 240 x 128
Ngoi ra LCD cn c th tch hp tnh nng nhn d liu dng TouchScreen (TouchScreen
LCD). Chng trnh ny ch xt ti LCD dng Character LCD c iu khin bi chip HD
44780.
67
www.biglab.edu.vn
68
www.biglab.edu.vn
BusyXLCD():
C bo xem LCD c bn hay khng ?
Thng c dng trc cc lnh ghi d liu, khai bo a ch con tr
OpenXCLD(thuc_tnh_LCD)
Lnh khi to XLCD, c dng khi bt u s dng LCD, vi thng s thuc_tnh_LCD bao
gm:
Loi tng tc:
FOUR_BIT
LINE_5X7
LINE_5X10
69
www.biglab.edu.vn
void DelayPORXLCD(void)
{
// Delay 15 ms
// phn hm ny s c hng dn k hn lp
}
void DelayXLCD(void)
{
// Delay 5 ms
// phn ny cng s c hng dn k hn lp
70
www.biglab.edu.vn
Bi 11 : TIMER 1, 2, 3
11.1 TI LIU THAM KHO
O
Datasheet
heet PIC18F4620 ch
chng 12, 13, 14
71
www.biglab.edu.vn
Timer1 Interrupt:
TIMER_INT_ON
TIMER_INT_OFF :
72
T1_16BIT_RW
T1_SOURCE_EXT :
T1_SOURCE_INT :
Prescalers:
T1_PS_1_1
t l 1:1
T1_PS_1_2
t l 1:2
T1_PS_1_4
t l 1:4
T1_PS_1_8
t l 1:8
T1_OSC1EN_OFF :
T1_SYNC_EXT_ON
s dng b ng b xung
T1_SYNC_EXT_OFF
Timer2 Interrupt:
s dng ngt Timer1
TIMER_INT_ON
TIMER_INT_OFF :
Prescalers
T2_PS_1_1
t l 1:1
T2_PS_1_4
t l 1:4
T2_PS_1_16
t l 1:16
T2_PS_1_1
t l 1:1
T2_PS_1_2
t l 1:2
Postscaler:
Hnh 3.1
T1_OSC1EN_ON
www.biglab.edu.vn
73
www.biglab.edu.vn
......
T2_PS_1_15
t l 1:15
T2_PS_1_16
t l 1:16
Timer3 Interrupt:
TIMER_INT_ON
TIMER_INT_OFF :
T3_16BIT_RW
T3_SOURCE_INT :
Prescaler:
T3_PS_1_1
t l 1:1
T3_PS_1_2
t l 1:2
T3_PS_1_4
t l 1:4
T3_PS_1_8
t l 1:8
s dng b ng b xung
T1_SYNC_EXT_OFF
74
www.biglab.edu.vn
.....
CloseTimerX();
75
www.biglab.edu.vn
76
www.biglab.edu.vn
2 1
3 1.5
438
5 1.5
77
www.biglab.edu.vn
Config1:
Khai bo Tad:
ADC_FOSC_2
Tad
2Fosc
ADC_FOSC_4
Tad
4Fosc
ADC_FOSC_8
Tad
8Fosc
ADC_FOSC_16
Tad
16Fosc
ADC_FOSC_32
Tad
32Fosc
ADC_FOSC_64
Tad
64Fosc
78
www.biglab.edu.vn
ADC_RIGHT_JUST :
ADC_LEFT_JUST :
ADC_0_TAD
ADC_2_TAD
Tacq =
2 Tad
ADC_4_TAD
Tacq =
4 Tad
ADC_6_TAD
Tacq =
6 Tad
ADC_8_TAD
Tacq =
8 Tad
ADC_12_TAD
Tacq =
12 Tad
ADC_16_TAD
Tacq =
16 Tad
ADC_20_TAD
Tacq =
20 Tad
Tacq =
0 Tad
Config2:
ADC_CH0
Knh 0 (AN0)
ADC_CH1
Knh 1 (AN1)
ADC_CH2
Knh 2 (AN2)
ADC_CH3
Knh 3 (AN3)
ADC_CH4
Knh 4 (AN4)
ADC_CH5
Knh 5 (AN5)
ADC_CH6
Knh 6 (AN6)
ADC_CH7
Knh 7 (AN7)
ADC_CH8
Knh 8 (AN8)
ADC_CH9
Knh 9 (AN9)
ADC_CH10
Knh 10 (AN10)
ADC_CH11
Knh 11 (AN11)
79
www.biglab.edu.vn
ADC_CH12
Knh 12 (AN12)
ADC_CH13
Knh 13 (AN13)
ADC_CH14
Knh 14 (AN14)
ADC_CH15
Knh 15 (AN15)
ADC_INT_ON
ADC_INT_OFF
S dng ngt
ADC_VREFPLUS_VDD
ADC_VREFMINUS_VDD :
ADC_CH0
Knh 0 (AN0)
ADC_CH1
Knh 1 (AN1)
ADC_CH2
Knh 2 (AN2)
ADC_CH3
Knh 3 (AN3)
ADC_CH4
Knh 4 (AN4)
ADC_CH5
Knh 5 (AN5)
ADC_CH6
Knh 6 (AN6)
ADC_CH7
Knh 7 (AN7)
ADC_CH8
Knh 8 (AN8)
ADC_CH9
Knh 9 (AN9)
ADC_CH10
Knh 10 (AN10)
80
ADC_CH11
www.biglab.edu.vn
Knh 11 (AN11)
81
www.biglab.edu.vn
Bi 13 : USART
13.1 TI LIU THAM KHO
Serial Port Complete Jan Alexson
Datasheet PIC 18F4620 Chng 18
u im ln nht ca chun giao tip ni tip l bng thng nh, chun phn cng n gin
(ch c 1 hay 2 ng d liu). Bn cnh , chun giao tip ni tip c khuyt im ln nht l,
thi gian truyn chm, nhng nh c s pht trin ca k thut nn dn dn nhng khuyt im
c loi b.
13.2.2 Truyn thng ng b v bt ng b:
Truyn thng ng b l kiu tryn c chun ha v mt thi gian, nn khi d liu c
truyn i chng ta cn phi c tn hiu bo trc. Khi y, chun truyn ng b ny cn t nht hai
Nhm bin son BigLab
82
www.biglab.edu.vn
chn (mt chn d liu v mt chn xung nhp). Nhng nh m tin cy trong truyn nhn
cao hn, d liu sai st t hn.
Khc vi chun truyn thng ng b, chun truyn bt ng b l chun truyn m chng ta
khng cn c tn hiu bo trc. Nhng nhn bit d liu truyn nhn chng ta cn tun th cc
nguyn tc chung trong truyn nhn, nn t chng ta c chun truyn nhn cho cc giao tip bt
ng b.
13.2.3 Baud Rate:
Baud Rate l mt chun v thi gian cho vic truyn nhn, hay ni cch khc Baud Rate chnh
l s bit truyn c trong mt giy.
13.2.4 Frame truyn:
Do truyn thng bt ng b rt d xy ra sai lch trong qu trnh truyn nhn, nn ngi ta mi
ra quy nh v frame truyn. Frame truyn l mt gi d liu truyn trong bao gm cc thnh
phn c bn sau:
Start bit : bit bo bt u gi truyn.
Stop bit : bis bo kt thc gi truyn.
Data : d liu cn truyn.
Parity bit: bit kim tra li, thng c 2 loi bit parity (chn v l)
// GV s hng dn thm phn ny
83
www.biglab.edu.vn
Khai bo ng b / bt ng b.
84
Khai bo ngt.
Khai bo tc Baud
www.biglab.edu.vn
Ch USART:
85
www.biglab.edu.vn
Khai bo truyn nhn ng b (ch p dng khi chng ta s dng truyn nhn ng b)
Truyn nhn ng b:
86
www.biglab.edu.vn
87
www.biglab.edu.vn
88
www.biglab.edu.vn
89
www.biglab.edu.vn
90
www.biglab.edu.vn
91
www.biglab.edu.vn
Tn hiu Pharse A v pharse B thng lch nhau chu k, thng th chng ta dng hai tn
hiu ny nhn bit chiu quay ca encoder.
14.4.4 Cc phng php c tn hiu encoder:
Dng chc nng Capture:
Ta dng chc nng capture o chu k ca encoder, t chng ta c th tnh ton c vn
tc ca ng c DC.
Dng chc nng Timer1:
Ta dng chn T13CKI thu nhn tn hiu t encoder gi v (xem xung t encoder nh mt
ngun xung). Bn cnh ta c th kt hp thm chc nng Timer 0 tnh ton vn tc ca ng
c DC.
Dng chc nng ngt ngoi:
Dng cc knh ngt INTx thu nhn tn hiu t encoder (xem xung t encoder nh mt ngun
kch). Bn cnh , ta c th kt hp thm chc nng Timer0 (o thi gian) tnh ton vn tc
ca ng c DC.
92
www.biglab.edu.vn
Bi 15 : SPI I2C
CC PHNG PHP LU TR D LIU
15.1 TI LIU THAM KHO
SCK : xung gi nhp cho giao tip SPI, xung clock c pht ra t chip Master v chip
Slave s nhn xung v ng b qu trnh truyn nhn. Nh c chn SCK m qu trnh
truyn nhn din ra t li hn, v nhanh hn.
SDI : chn pht d liu cho Master / Slave.
SDO : chn thu nhn d liu cho Master/Slave.
SS (Select Slave) : i vi Master th y s l chn chn chip Slave no s truyn, cn i
vi chip Slave th y l chn cho php c truyn nhn vi chip Master.
93
www.biglab.edu.vn
SPI_FOSC_4 SPI
SPI_FOSC_16 SPI
SPI_FOSC_64 SPI
SPI_FOSC_TMR2 SPI
Ch Slaver:
SLV_SSON
s dng chn SS
SLV_SSOFF
bus_config:
MODE_00
ch 0, 0
MODE_01
ch 0, 1
MODE_10
ch 1, 0
MODE_11
ch 1, 1
smp_config:
SMPEND
ly mu vo cui xung
SMPMID
ly mu vo gia xung
putcSPI(data) :
gi mt byte d liu.
putsSPI(string)
gi mt chui d liu.
Ch bin ThS. V Xun Quc vxquoc@gmail.com
94
www.biglab.edu.vn
(qu trnh gi master phi c khi u v kt thc bng vic kch xung v chn SS)
DataRdySPI() :
Master l chip gi vai tr iu phi thng tin trong mng iu khin, khi cn giao tip vi
Slave no th Master ch vic gi a ch n Slave , v bt u qu trnh giao tip.
Slave: l chip thc thi trong mng giao tip, trong mi chip Slave c chc mt a ch trong
mng giao tip.
SDA : l ng truyn d liu chnh cho c giao tip, tt c d liu phi c truyn trn
ng d liu ny.
SCL: l ng xung nhp ng b ha vic truyn nhn cho giao tip.
15.6.2.1 Cc bit iu khin cho giao tip I2C:
Start : iu kin bt u t trng thi ngh, khi Master mun bt u qu trnh truyn nhn,
th bt buc Master phi ko SDA t cao xung thp trong khi SCK vn mc cao.
Stop: iu kin kt thc, khi Master mun kt thc vic truyn nhn d liu th bt buc
Master phi ko SDA t cao xung thp trong khi SCL vn cn ang mc cao. Quy trnh
Stop xy ra ch khi vic truyn nhn kt thc.
Repeat : Khi vic truyn nhn kt thc thay v Master kt thc qu trnh truyn truyn nhn
bng Stop bit, nhng Master li gi tip Start bit , trong trng hp ny ta gi l Repeat
Start. Trng hp ny xy ra khi Master mun nhn d liu lin tip t Slave.
Nhm bin son BigLab
94
95
www.biglab.edu.vn
ACK: y l bit dng bo hiu xem vic truyn d liu hon thnh cha. Thng bit
ny c gi t Slave, Slave dng n bo cho Master mnh nhn d liu.
15.6.2.2 a ch Slave:
a ch thng c gi i t Master n Slave, a ch cha Slave m n mong mun truyn
ti. a ch cng l gi d liu u tin ca mt ln truyn. Cu trc gi a ch bao gm:
7 bits a ch.
1 bit iu khin hng truyn (Read/Write).
15.6.2.3 Kt cu mt gi truyn:
Mt gi truyn c bn bao gm:
96
www.biglab.edu.vn
97
www.biglab.edu.vn
a l 16, 65536 bytes). dng PIC18F dung lng Data EEPROM c gii hn 1024
bytes (PIC18F4620), chnh v vy CPU cn 10 ng a ch c th truy xut ht vng
nh ny. EEADR cha 8 bit thp v EEADRH cha 2 bit cao ca a ch.
-
EEDATA: l thanh ghi cha d liu xut, nhp cho EEPROM. iu ny c ngha l ti mt
thi im ta ch c th truy xut 1 nh ca b nh ny
98
www.biglab.edu.vn
Bi 16 : BI TP TNG KT
16.1 YU CU
u vo:
-
u ra:
-
99
www.biglab.edu.vn