Professional Documents
Culture Documents
laLI 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 CCSC ti Nhm o to in t lp trnh BigLab. 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
Nhm o to k thut BigLab - Gio trnh PIC - CCSC MC LC B CHNG TRNH TI BIGLAB ........................................................................... 7 CNG CHNG TRNH PIC - CCSC ............................................................. 10 Bi 1 : NHNG KHI NIM BAN U .................................................................... 16 1.1 VI IU KHIN L G ...................................................................................... 16 1.2 TNG TH KIN TRC PHN CNG VI IU KHIN ................................ 18 1.3 LA CHN DNG VI IU KHIN ................................................................ 21 1.4 CC NGN NG LP TRNH CHO VI IU KHIN ..................................... 21 Bi 2 : K THUT LP TRNH C ............................................................................. 23 2.1 KHI QUT NGN NG C .............................................................................. 23 2.2 NHNG VN LIN QUAN KHI S DNG C CHO LP TRNH PIC ....... 34 Bi 3 : PRE-PROCESSOR DIRECTIVE .................................................................... 36 3.1 TNG TH KIN TRC PHN CNG VI IU KHIN ................................ 36 3.2 B NH ............................................................................................................. 38 3.3 B DAO NG .................................................................................................. 42 3.4 CC CH TH TIN X L TRONG CCSC ...................................................... 46 3.5 BI TP .............................................................................................................. 49 Bi 4 : IO PORT OUTPUT ....................................................................................... 50 4.1 GII THIU PHN CNG ................................................................................ 50 4.2 TP LNH TNG TC PORT TRONG CCSC ............................................... 51 4.3 BI TP - CC NG DNG CA IO PORT-PHN OUTPUT ........................ 52 4.4 BI TP V NH: ............................................................................................. 54 4.5 PH LC CHUN LOGIC NG RA CA IO PORT ..................................... 55 Bi 5 : NGT (INTERRUPTS) .................................................................................... 56 5.1 NH NGHA NGT .......................................................................................... 56 5.2 PHN LOI NGT ............................................................................................ 56
Nhm o to k thut BigLab - Gio trnh PIC - CCSC 5.3 HOT NG CA NGT ................................................................................. 57 5.4 TNG TC VI NGT ................................................................................... 57 5.5 BI TP .............................................................................................................. 60 Bi 6 : IO PORT - INPUT ............................................................................................ 61 6.1 M T PHN CNG ......................................................................................... 61 6.2 BI TP NG DNG IO PORT - INPUT ....................................................... 61 6.3 PH LC ............................................................................................................ 64 Bi 7 : TIMER .............................................................................................................. 66 7.1 TIMER................................................................................................................. 66 7.2 TNG TC VI TIMER.................................................................................. 68 7.3 BI TP .............................................................................................................. 69 7.4 M RNG WATCH DOG TIMER (WDT) ...................................................... 70 Bi 8 : BI TP GIA KHA .................................................................................... 71 8.1 YU CU............................................................................................................ 71 8.2 M T PHN CNG ......................................................................................... 71 8.3 GII THUT ...................................................................................................... 72 8.4 CHNG TRNH ............................................................................................... 72 Bi 9 : NGN NG LP TRNH C NNG CAO ...................................................... 73 9.1 CC KIU D LIU NNG CAO TRONG C ................................................... 73 9.2 CC HM THNG DNG TRONG TH VIN C CHUN:............................ 73 Bi 10 : LCD ................................................................................................................. 76 10.1 TNG QUAN V LCD ....................................................................................... 76 10.2 GIAO DIN LCD - HD 44780 ............................................................................. 77 10.3 CC HM TNG TC VI LCD TRONG CCSC .......................................... 77 10.4 BI TP .............................................................................................................. 78 Bi 11 : ADC (ANALOG DIGITAL CONVERT) .................................................... 79
Nhm o to k thut BigLab - Gio trnh PIC - CCSC 11.1 TNG QUAN V ADC....................................................................................... 79 11.2 CC HM TNG TC ADC TRONG CCSC .................................................. 80 11.3 QUY TRNH TNG TC ADC TRONG CCSC ............................................... 81 11.4 BI TP .............................................................................................................. 82 Bi 12 : USART ............................................................................................................ 83 12.1 KHI QUT V CC CHUN GIAO TIP ...................................................... 83 12.2 CC HM TNG TC VI USART TRONG CCSC...................................... 84 12.3 BI TP .............................................................................................................. 86 Bi 13 : PWM / CAPTURE / COMPARE ................................................................... 87 13.1 TNG QUAN V PWM/CAPTURE/COMPARE ............................................... 87 13.2 QUY TRNH S DNG MODULE PWM TRONG PIC ..................................... 88 13.3 BI TP .............................................................................................................. 89 13.4 PHN M RNG - ENCODER .......................................................................... 89 Bi 14 : SPI I2C ......................................................................................................... 92 14.1 TNG QUAN V SPI ......................................................................................... 92 14.2 HOT NG CA SPI ...................................................................................... 92 14.3 SPI TRONG PIC .................................................................................................. 92 14.4 M RNG I2C ................................................................................................. 93 14.5 CC PHNG PHP LU TR D LIU ...................................................... 95 Bi 15 : BI TP TNG KT .................................................................................... 97 15.1 YU CU............................................................................................................ 97 15.2 M T PHN CNG ......................................................................................... 98 15.3 GII THUT ...................................................................................................... 98 15.4 CHNG TRNH ............................................................................................... 98
Bng 10.1 Bng cc nh dng cstring trong LCD ........................................................... 77 Bng 11.1 Cc trng thi s dng ca b chuyn i ADC trong CCSC .......................... 80 Bng 11.2 Cc trng thi s dng ca knh ADC trong CCSC (PIC18F4620).................. 81 Bng 12.1 Cc la chn ci t cho USART trong CCSC ................................................ 84 Bng 13.1 Mt s ch hot ng ca CCP .................................................................. 88
C kh
in t
Lp trnh vi iu khin
SolidWorks cn bn
AutoCAD cn bn
OrCAD cn bn
in t thc hnh
PIC C bn
PIC Full
ARM Total
Thit k vi SolidWorks
Thit k vi AutoCAD
in t KTS
in t ng dng
PIC ng dng
PIC - iu khin ng c
PIC C#
8 -
Nhm o to k thut BigLab - Gio trnh PIC - CCSC Lp c bn s cung cp nhng kin thc c bn v cc phn mm, cc phng php dng hnh c bn. i tng ca lp c bn l cc bn sinh vin nm 2, 3 ln u tin tip xc vi phn mm Lp thit k: Cc bn s c hc v phng php thit k, trnh t thit k trong c kh, thit k theo trnh t gia cng... Sau s ng dng cc kin thc v phn mm vo vic thit k c kh. i tng chnh ca lp thit k l nhng ai bit v AutoCAD v SolidWorks c bn, mong mun s dng n thit k cc chi tit c kh. in t: Lp in t thc hnh: lp ny cc bn s c hc v cc linh kin in t c bn da trn s phn tch vai tr ca chng trong cc mch in t nh mch ngun tuyn tnh, mch khuch i, mch ngun xung... Trong chng trnh cn tch hp vic s dng cc phn mm thng dng trong in t nh: phn mm thit k mch OrCAD, phn mm m phng mch Tina,... Lp in t k thut s vi iu khin: l phn sau ca lp in t thc hnh. Trong lp ny cc bn s c hc t cc nguyn l c bn ca h thng xung, s n vic thit k hon chnh mt mch k thut s. c bit lp cung cp cho cc bn nhng kin thc thit k mch giao lin quan ti vi iu khin (PIC, ARM...) nh mch hin th LED, mch giao tip my tnh, mch phm nhn.... Chng trnh c s dng cc phn mm in t nh: OrCAD, Circuit Maker, Proteus,... Lp in t ng dng: y l lp nng cao trong mng in t, cung cp cho cc bn nhng kin thc phi hp c th thit k mt mch 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: Hng y trong 1 kha:
l cc lp PIC Full. y l cc lp dy y v vi iu khin PIC. Cc bn s c hc t h thng ti cc module ngoi vi v s dng thnh tho ngn ng C lp trnh cho cc module ny. Trong hng ny chng trnh c chia ra lm 2 hng nh da trn vic s dng 2 trnh bin dch khc nhau: CCSC v C18.
Nhm o to k thut BigLab - Gio trnh PIC - CCSC + 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,...). Hng PIC C bn ng dng:
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
10
Chng trnh xy dng da trn dng vi iu khin PIC18 ca hng Microchip. Ngn ng lp trnh s dng: CCSC. Dng vi iu khin s dng th nghim l PIC18F4620 v PIC18F4550. 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. Bui 1: Nhng khi nim c bn v vi iu khin o Vi iu khin l g? Nhng dng vi iu khin c trn th trng o Cu trc phn cng vi cc dng vi iu khin c bn o Gii thiu phn mm s dng, kit th nghim, b th nghim PIC o B tc k thut lp trnh C cho vi iu khin Cc h s m Bin v hng Bui 2: B tc k thut lp trnh C cho vi iu khin (tt) o Con tr, mng o Cu trc lnh Cu trc iu kin Cu trc lp Cu trc la chn o Hm
10
11
Nhm o to k thut BigLab - Gio trnh PIC - CCSC 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: Cc ch th tin x l 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: Lp trnh s dng timer to hm delay
11
12
Nhm o to k thut BigLab - Gio trnh PIC - CCSC Bui 8: Cc module cn bn ca vi iu khin PIC (tt) o Bi c: Lp trnh dng hm delay iu khin I/O Port o Bi tp gia kho: Hc vin chn 1 trong 2 bi tp sau lm ti lp, cc bi cn li lm nh Bi tp 1: Lp trnh hin thc ng h s Bi tp 2: Lp trnh hin thc my tnh b ti n gin Bui 9: LCD Cc hm thao tc trn chui v hm chuyn i d liu trong C o Cc kiu d liu m rng o Tng tc vi cc hm trong th vin C o Hm chuyn i kiu d liu o Hm x l chui o LCD Kin trc phn cng LCD Cc thanh ghi, cc ch lm vic ca LCD Tp lnh LCD o Bi tp: Hin th d liu va nhp ra LCD o Bi tp v nh: Nhp d liu s t nt nhn, hin th d liu va nhp ra LCD Bui 10: Timer ngoi vi Counter Realtime timer o Gii thiu cc timer ngoi vi: timer 1, 2, 3 o Counter o Realtime timer T chc phn cng ca mch thi gian thc dng thch anh 32k o Bi tp: Lp trnh m xung encoder dng counter o Bi tp v nh: Thit k ng h thi gian thc dng thch anh thi gian thc v timer 1/3 Bui 11: ADC o C bn v nguyn l b chuyn i Analog Digital o Nhng thng s c trng ca b chuyn i o Cu trc b ADC trong PIC o Bi tp: c gi tr bin tr VR Hin th gi tr in tr hin thi ca VR ra LCD o Bi tp v nh: Thit k h thng gim st nhit phng c ADC t cm bin nhit Dng Timer ci t thi gian ly mu Hin th gi tr nhit ra LCD Bui 12: UART giao tip ni tip bt ng b o Chun giao tip ni tip Chun giao tip ni tip l g, cc ng dng Cc thng s c trng ca chun giao tip ni tip RS232
12
13
Nhm o to k thut BigLab - Gio trnh PIC - CCSC o UART trong PIC Chng trnh truyn nhn trn PIC Gii thiu v giao tip my tnh qua RS232 o Bi tp: Giao tip PIC My tnh: gim st nhit phng bng th trn my tnh Bui 13: PWM/Capture/Compare o PWM/Capture/Compare Nguyn l, ng dng? Cc thng s c trng o PWM/Capture/Compare trong PIC Thc hnh iu ch xung PWM, cc chc nng Capture, Compare trn kit th nghim o Bi tp: iu khin vn tc ng c DC dng PWM c gim st vn tc bng my tnh o Bi tp v nh: iu khin vn tc ng c c hi tip dng encoder Bui 14: Bi tp tng kt: o Thit k h thng gim st tc qut lm mt, t ng iu chnh tc theo nhit . iu khin ng c bng PWM c hi tip encoder c ADC t cm bin nhit cp nht gi tr vn tc Hin th nhit , tc ra LCD dng trn, dng di l thi gian ng c hot ng (tnh bng gi, pht, giy) Mi 1 pht lu gi tr vo EEPROM (optional)
Bui 15: SPI giao tip ni tip ng b; Cc phng php lu tr d liu o Chun giao tip SPI Chun giao tip SPI l g, cc ng dng? Cc thng s c trng ca chun giao tip SPI o SPI trong PIC T chc phn cng Tp lnh tng tc vi EEPROM Khi nim v chun giao tip I2C v cc phng php lu tr d liu. o Bi tp: Lu v c d liu t EEPROM ngoi qua SPI o Bi tp m rng: Lp trnh m phng giao tip gia 2 VK PIC dng SPI o Tng kt kha hc III. CC CHUYN NG DNG KM THEO SAU KHA HC 1. Chuyn 1: iu khin ng c bc c cu visme-ai c bi 2. Chuyn 2: iu khin vn tc ng c DC c hi tip 3. Chuyn 3: Cc chun giao tip khng dy (phn 1) 4. Chuyn 4: Cc chun giao tip khng dy (phn 2)
Nhm bin son BigLab Ch bin: ThS. V Xun Quc vxquoc@gmail.com 13
14
Nhm o to k thut BigLab - Gio trnh PIC - CCSC 5. Chuyn 5: iu khin 2 ng c DC phi hp (bn my 2D) 6. Chuyn 6: chuyn phi hp: Robot 2 bnh, Robot d line. 7. Chuyn 7: chuyn phi hp: Con lc ngc 8. Chuyn 8: chuyn phi hp: Xe 2 bnh t cn bng 9. Chuyn 9: iu khin ng c khng chi than iu khin lc nng qut 10. Chuyn 10: iu khin 2 ng c khng chi than cn bng 2 cnh qut 11. Chuyn 11: chuyn phi hp: Quad Rotor IV. TI LIU V THIT B HC TP 1. Ti liu hc tp - Ti liu hc tp chnh do trung tm cung cp - Cc ti liu tham kho s c gii thiu trong tng bui hc 2. Thit b hc tp - My tnh Laptop do hc vin t trang b - Kit th nghim do trung tm cung cp - Mch np, ngun v nhng linh kin khc do trung tm cung cp
14
15
15
16
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 Ch bin: ThS. V Xun Quc vxquoc@gmail.com
16
17
Nhm o to k thut BigLab - Gio trnh PIC - CCSC 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 Mt vi ng dng ca vi iu khin trong thc t in trong nh L vi sng Ca t ng Dng c th thao Thit b vn phng in thoi My Fax Thit b cng nghip iu khin ng c Thit b ABS Tivi VCR Camera iu khin t xa My photocopy My tnh c nhn H thng o lng iu khin chiu sang Tr chi in t Nhc c in t iu ha nhit chi tr em H thng an ninh My in
Thit b gia nh
17
18
18
19
19
20
Nhm o to k thut BigLab - Gio trnh PIC - CCSC cho vi iu khin ngi ta thng dng b dao ng t bn ngoi. Vn ny s c ni r bi 3. 1.2.2.4 B nh thi (timer) Cc ng dng iu khin thng thng u lin quan ti thi gian. Chnh v th b nh thi l mt phn khng th thiu trong cc vi iu khin. B nh thi thng thng dng : nh thi mt khong thi gian, m s kin, to xung 1.2.2.5 B iu khin ngt (Interrupt Control) Ngt l hnh ng dng mt chng trnh ang thc thi thc hin chng trnh ch nh ngt khi c mt tn hiu bo ngt. B ngt l mt mch logic mc ch l to ra mt xung kch hot ngt (tn hiu bo ngt) cho CPU. Ngt l mt phn v cng quan trng trong vi iu khin. N gip cho ngi lp trnh c nhiu sc mnh hn trong vic thit k mt ng dng. Mt chng trnh c iu khin bi ngt lm cho ta c cm gic c nhiu ng dng ang chy song song, trn thc t l chng chy ni tip nhau. 1.2.2.6 Cc thit b ngoi vi Thit b ngoi vi y c hiu l nhng module chc nng tch hp sn trong vi iu khin. Cc module ny tng dng vi iu khin l khc nhau ty theo dng vi iu khin c thit k dnh cho cc ng dng ph thng hay mt vi ng dng c bit no . Cc module bao gm: ADC, UART, SPI, I2C, PWM, Capture, Compare 1.2.2.7 Cc chn xut nhp Cc chn xut nhp l cc chn chc nng chnh ca vi iu khin. y c xem l ng ra chc nng ca vi iu khin c dng trc tip thit k cc ng dng iu khin. Hy tng tng cc chn xut nhp nh tay, chn ca mt con ngi nu thiu tay chn th con ngi s khng th c c mt thao tc no c. 1.2.2.8 BUS BUS l mt tp hp cc dy mang thng tin c cng mt mc ch. CPU s dng 3 BUS truy xut ti cc thnh phn xung quanh: BUS d liu, BUS iu khin v BUS a ch. c trng quan trng nht ca BUS l s bit. S bit l s dy mang thng tin ng thi ca mt BUS. S bit ca BUS a ch quy nh ln ca b nh m CPU c th truy xut c. S bit ca BUS d liu quy nh ln ca mt d liu trong b nh. S bit ca BUS iu khin ph thuc vo thit b cn iu khin. V my tnh thng dng ti khong 2/3 thi gian cho vic
20
21
Nhm o to k thut BigLab - Gio trnh PIC - CCSC 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.
Hnh 1.3 - Cc dng vi iu khin PIC hin nay 1.4 CC NGN NG LP TRNH CHO VI IU KHIN
lp trnh cho vi iu khin c cc ngn ng c bn sau:
22
Nhm o to k thut BigLab - Gio trnh PIC - CCSC Ngn ng my: l dng ngn ng nh phn (thng c bit n vi tn gi l ba
B trnh bin dch C18, C30, C32, 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.
22
23
Bi 2 : K THUT LP TRNH C
Bi 2 bn v cc vn c bn ca lp trnh C da trn ANSI C v ng dng ca n trong b trnh dch MPLAB - CCSC.
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 Cch chuyn i k s: (GV hng dn ti lp) 2.1.2 Bin, hng, mng
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. Tm vc truy xut bin:
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 o Bin ton cc c khai bo u chng trnh trong phn khai bo bin
Bin a phng:
23
24
Nhm o to k thut BigLab - Gio trnh PIC - CCSC 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 Cc kiu d liu trong C
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; 2.1.2.3 Mng Khai bo mng hng s:
25
Nhm o to k thut BigLab - Gio trnh PIC - CCSC const<kiu d liu mng><tn mng>[<kch thc mng>] = {<gi tr cc phn t mng>}; VD: const int8 vidu[2] = {1,2};
Lu : Nhng phn t no cha c t gi tr s mc nh gi tr l 0 Truy xut gi tr vt qu kch thc mng s lm chng trnh chy v tn Mng hng s thng dng lm bng tra (v d bng tra cc hm lng gic)
Khai bo bin mng: Khai bo tng t khai bo mng hng s.Tuy nhin khng c t kha const v khng cn ci
Kch thc mng ph thuc vo khai bo con tr v loi VDK 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
Mt s lu khi s dng bin, mng, hng s: Trn s: S trn s xy ra khi khai bo kiu d liu nh hn phm vi s s dng. Lc
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.
25
26
Nhm o to k thut BigLab - Gio trnh PIC - CCSC on code trn ta p kiu d liu ca php nhn 2 s 8 bit thnh mt s 16 bit. Vic ny s trnh li trn s cho php nhn, ng thi tit kim b nh, gim thi gian tnh ton (v nu khng phi khai bo li cc bin a, b) 2.1.3 Cu trc lnh Nu nh bin, hng, mng trong chng trnh c v nh h tun hon, ni lu chuyn mu (d liu) trong chng trnh th cc cu trc lnh c v nh h thn kinh, l h thng iu khin dng mu (d liu ). Mi hot ng trong chng trnh u da trn s iu khin ca cc cu trc lnh ny. Cu trc lnh c bn u tin cng l nguyn tc ca lp trnh C: Chng trnh s thc hin ln lt cc lnh theo th t t trn xung di. Ngha l nu khng c s iu khin no khc th dng lnh no ng trc s c bin dch v thc hin trc, dng no ng sau s c bin dch v thc hin sau. Ngoi ra gip cho ngi lp trnh d dng iu khin cc dng d liu trong chng trnh, C cn cung cp nhng cu trc lnh nng cao (c cho trong bng 2.2) 2.1.3.1 C php Bng 2.2 Cc cu trc lnh trong C
ng vi nhng cu trc lnh nng cao ny l nhng on s gii thut c trng ca n. 2.1.3.2 Gii thut Lu gii thut l lu th hin dng di chuyn d liu v cc thao tc x l d liu trong chng trnh. Nhng quy tc chung v cch th hin lu gii thut gip ngi lp trnh c th
27
Nhm o to k thut BigLab - Gio trnh PIC - CCSC d dng hiu v hin thc chng di dng cc dng lnh. Mt gii thut tng th c hnh thnh da trn nhng cm gii thut con, mi cm gii thut con ny ng vi mt dng cu trc iu khin. Sau y s trnh by nhng dng gii thut ca cc cu trc iu khin trong C: Bng 2.3 Cu trc If Lu gii thut ca cc cu trc lnh trong C Gii thut
If else
27
28
Switchcase
Start
Sai k = k1?
ng Cng vic 1
k = k2?
.....
Cng vic n
Stop
While
28
29
Dowhile
For
Start
Ch s = <gt u>
Sai k ch s? ng
Stop
29
30
Nhm o to k thut BigLab - Gio trnh PIC - CCSC 2.1.4 Ton t 2.1.4.1 Ton t Bng 2.4 Ton t trong C Loi STT 1 2 Ton t 3 4 5 6 7 Ton t bit tnh ton s ton t Tn ton t Nhn Chia Cng Tr Chia ly d Not bit Dch tri Dch phi AND XOR OR Ton t logic 13 Ton t 14 quan h 15 16 OR So snh bng So snh khc SS b || AND K hiu * / + % ~ << Nhn 2 s Chia 2 s Cng 2 s Tr 2 s Chia ly d 2 s Chc nng
nguyn
8 9 10 11 12
bit V tng bit XOR tng bit OR tng bit AND logic 2 gi tr logic OR logic 2 gi tr logic
==
So sng bng 2 s
!= <
So snh khc 2 s SS b hn 2 s
30
31
Nhm o to k thut BigLab - Gio trnh PIC - CCSC hn SS 17 hn, bng SS 18 hn SS 19 hn, bng 2.1.4.2 Mc u tin ca cc ton t Bng 2.5 STT 1 2 3 4 5 6 7 8 9 10 11 12 13 Bng so snh mc u tin ca cc ton t: Tn Primary Unary Binary Arithmetic Shift Relational Equality Bitwise Bitwise Bitwise Logical Logical Conditional M c 1(high) 2 3 4 5 6 7 8 9 10 11 12 13 Ton t () . [] ! ~ -(type) * & ++ --sizeof / *% +>> << < <= > >= == != & ^ | && || ? : Nhm Left to Right Right to Left Left to Right Left to Right Left to Right Left to Right Left to Right Left to Right Left to Right Left to Right Left to Right Left to Right Right to Left ln >= ln > b <= SS b hn hoc bng 2 s SS ln hn 2 s SS ln hn hoc bng 2 s
31
32
14
Assigment
14 (low)
Left to Right
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 2.1.5.2 Cc kiu truy xut bin trong hm Khi thc hin mt li gi hm ta phi cung cp y thng tin ph hp vi hm hm c th thc hin VD: void test(int8 n) {} test(x);
32
33
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: Truyn tham tr: Gi tr ca tham s thc s c gi n cho hm. Khi thc hin truyn tham s theo kiu ny th hm c gi ch tc ng ln bn sao ca tham s gc, do vy n ch lm thay i gi tr ca bn sao m khng nh hng n tham s gc. VD:
void test(int x) { x=x+10; } void main() { int n=5; test(n); cout<<"Gia tri n ="<<n<<endl; }
Kt qu sau khi thc hin chng trnh trn: Gia tri n = 5. y n vn gi nguyn gi tr ban
void test(int &x) { x=x+10; } void main() { int n=5; test(n); cout<<"Gia tri n ="<<n<<endl; }
33
34
Nhm o to k thut BigLab - Gio trnh PIC - CCSC Kt qu sau khi thc hin chng trnh trn: Gia tri n = 15. y n b thay i.Vic gi a ch (tham chiu) ca tham s n hm c gi, ngi ta gi l truyn tham chiu. Vi hm c c ch truyn tham chiu th n khng c vng nh ring cho tham s , khi thc hin li gi hm, n s gn cho tham s mt b danh (alias) - chnh l tn ca tham s hnh thc v t do tc
Tham kho:http://www.cplusplus.com/doc/tutorial/pointers/
34
35
35
36
Bi 3 : PRE-PROCESSOR DIRECTIVE
Bi 3 s gii thiu s lc v kin trc phn cng ca vi iu khin PIC. Sau bi ny s gii thiu cc ch th tin x l ng lu ci t phn cng trong CCSC, bao gm cc ch th khai bo processor, b dao ng, ch th define
c thit k dng lm cc thit b ngoi vi cho vi iu khin CP1600. Vi iu khin ny sau c nghin cu pht trin thm v t hinh thnh nn dng vi iu khin PIC ngy nay.
Sau y, ta phn tch cu trc c bn ca mt b VK PIC. (Xt VK 18F4620) T chc phn cng ca PIC c thit k theo kin trc Havard. Nh trong hnh trn ta c th nhn thy phn b nh d liu v b nh chng trnh l hon ton c lp v c truy xut bi 2 BUS khc nhau: Data BUS 8 bit v Instruction BUS 16 bit. V tnh cht c lp vi cu trc d liu nn tp lnh ca vi iu khin thuc cu trc Havard s t lnh hn, ngn hn, n gin hn
36
37
38
3.2 B NH
Ti liu tham kho: Chng 5,6,7 datasheet 18F4620 18F2550 3.2.1 C bn v t chc b nh ca VK PIC T chc b nh vi iu khin PIC c chia lm 3 thnh phn chnh: Program Memory (hay cn gi l Flash Memory b nh Flash, b nh lu tr) Data Memory (hay cn c tn gi l Data RAM Memory) Data EEPROM Memory
Ngoi ra cn c cc thnh phn ph khc b tr cho qu trnh hot ng ca mt b VK. 3.2.2 T chc b nh chng trnh (Program Memory) B nh chng trnh trong PIC l mt b nh Flash, dng lu tr chng trnh. Tuy nhin, n khng ging b nh chng trnh bnh thng l n c th c c, ghi, xa mt cch bnh thng. Thm vo , thao tc ghi, xa c th thc hin trn 64 byte ti cng mt thi im. iu ny gii thch v sao ta c th np, xa chng trnh trn vi iu khin nhiu ln. 3.2.2.1 Cc thnh phn b nh chng trnh Nh chng ta c th thy b nh chng trnh c chia lm 3 phn chnh:
39
Nhm o to k thut BigLab - Gio trnh PIC - CCSC Program Counter: Phn ny l mt thanh ghi 21 bits (c chia thnh 3 thanh ghi 8 bit, 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. Stack Memory c thc hin da trn c ch VO SAU RA TRC. Thanh ghi iu khin stack l STKPTR. Bnh thng bit trng thi STKUNF th hin stack cn trng s tch cc. Nu PC a vo stack 31 ln a ch m khng ly ra ln no th bit STKFUL s c a ln 1 bo stack y. Bit ny ch c clear bng phn mm hoc bng c ch POR. Hot ng ca POR trn stack ph thuc vo bit STVREN (Stack Overflow Reset Enable). Nu bit ny c set th POR s t ng reset h thng khi stack trn v h thng c th hot ng li bnh thng trng thi u. Ngc li, nu bit ny b clear th trong trng hp trn stack h thng s b treo v bt buc phi reset nng. y l mt ch quan trng khi lp trnh vi stack. Memory Space: y l phn cha ton b ni dung ca chng trnh iu khin (c m ha ra dng m hex).
40
41
Nhm o to k thut BigLab - Gio trnh PIC - CCSC 3.2.3 T chc b nh d liu (Data Memory) 3.2.3.1 T chc RAM Data Memory trong PIC l SRAM. Mi nh trong RAM c nh a ch bng 12 bit, do dung lng ti a ca RAM l 4096 nh. Ton b RAM c chia thnh 16 bank, mi bank cha 256 nh. PIC18F l loi PIC 8 bit nn mi nh tng ng l 1 byte. 16 bank ny c chia thnh cc phn ring bit sau: Access Ram:
41
42
Nhm o to k thut BigLab - Gio trnh PIC - CCSC 3.2.4 Data EEPROM Memory: Data EEPROM (Electric Eraseable Programmable ROM) l dng b nh lu tr d liu khng bay hi (khng mt d liu khi mt ngun cp). Chnh v th b nh ny c dng lu tr nhng d liu lu di ca ngi dng trn PIC. truy xut n s dng phng thc nh a ch gin tip thng qua cc thanh ghi SFR iu khin tng ng. Chnh v vy vic cp pht b nh trn EEPROM l hon ton do ngi dng lm ch. C 5 thanh ghi lin quan ti vic iu khin
3.3 B DAO NG
Ti liu tham kho: Chng 2 - datasheet PIC18F4620 3.3.1 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. B to dao ng nhm to ra cc h xung c chu k c nh, 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
Ngun xung
B iu ch xung
Xung ra
42
43
Nhm o to k thut BigLab - Gio trnh PIC - CCSC mm. lm vic ny chng ta cn phi can thip vo cc thanh ghi h thng ca vi iu khin. 3.3.2.2 Ngun xung to xung cho h thng vi iu khin c 2 cch c bn: dng thch anh v dng mch RC. Ngun xung bng thch anh:
44
45
Hnh 3.8 m t b iu ch xung bn trong vi iu khin PIC18F4620. Nhng c nh du pha bn tri l cc ng vo ca cc ngun xung, bn phi l xung ng ra cung cp cho CPU. B iu ch xung l phn cn li gia. Mi con ng i t ng vo ti ng ra th hin mt s ci t (iu ch) khc nhau. Cng vic ca ngi lp trnh l phi tnh ton, la chn mt con ng thch hp nht v ra lnh cho vi iu khin bit rng h chn con ng . la chn con ng ny chng ta cn xc nh r ngun xung l g v ch hot ng ca b iu ch dao ng l g. ci t ch hot ng cho b iu ch xung trong CCSC ta dng cc ch th tin x l chuyn dng c trnh by trong phn 3.4. 3.3.2.4 Cc thanh ghi h thng Thanh ghi h thng l ni ci t tt c cc chc nng ban u ca h thng. Cc ch th tin x l c gii thiu trong phn 3.4 thc cht l nhng lnh tng tc vi thanh ghi h thng ci t cc gi tr ca thanh ghi ny. Cc thanh ghi h thng c th tham kho trong phn Special Features of CPU trong Datasheet ca cc dng vi iu khin PIC.
46
Nhm o to k thut BigLab - Gio trnh PIC - CCSC Bng 3.1 Cc thanh ghi h thng ca PIC18F4620 (datasheet PIC18F4620 trg 251)
3.3.2.5 Thi gian khi ng ca h thng (Power Up Delay) Thi gian khi ng ca h thng l thi gian m thit b c gi ch Reset m bo ngun cung cp cho h thng v cc ch ci t phn cng ca h thng n nh trc khi CPU tin hnh truy xut b nh chng trnh. Thi gian ny c iu khin bi 2 timer chuyn dng: PWRT (Power up timer) timer ci t thi gian c nh khi ng h thng lin quan ti s n nh in p trn cc chn ngun; OST (Oscilator set timer) timer ci t thi gian khi ng ca b dao ng, ph thuc vo ch hot ng cng nh gi tr ca t C1, C2 ca b dao ng lin quan ti s n nh xung cp cho CPU v cc ch c ci t cc thanh ghi h thng (khong 2ms vo ch HS, HSPLL).
47
Nhm o to k thut BigLab - Gio trnh PIC - CCSC Trong : filename l mt tn file hp l trong my tnh. N c th bao gm ng dn trc tip. V d: #include <C:\INCLUDES\COMLIB\MYRS232.C> #define: Tin x l #define dng nh ngha mt i tng trong chng trnh. C php: #define <name> <object> Trong : <name> l tn nh danh mi ca i tng (tn ny c dng trong chng trnh), <object> l i tng cn nh ngha. V d: #define mainRelayControlPin PIN_D0
Trong v d trn, ngi dng mun nh ngha chn D0 trn PORTD l chn iu khin Relay chnh ca h thng. Sau khi dng tin x l ny, trong chng trnh i tng mainRelayControlPin s c hiu l PIN_D0. #device
HIGH_INTS=TRUE Cho php u tin trong ngt ICD=TRUE Cho php debug bng phn cng
47
48
y l tin x l khai bo phn cng s dng cho h thng. Bao gm b dao ng, cc
config thuc v thanh nghi h thng nh Watchdog, ch np, ch Reset, C php #FUSES <Options>
Trong CCSC c cc Options sau: Bng 3.3 Cc la chn ca tin x l #FUSES Tn Options LP B dao XT HS RC Watchdog WDT/NOWDT ngha Khai bo loi thch anh ngoi in p thp Khai bo s dng thch anh ngoi c F < 4MHz Khai bo s dng thch anh ngoi c F > 4MHz Khai bo s dng b dao ng RC C s dng WDT/khng s dng WDT C s dng ch bo v c ngc code np/ khng s dng ch bo v c ngc code np C s dng Power up Timer (PUT)/ Khng s dng PUT C s dng ch reset khi power down/ Khng s
ng
7 8
Mt vi ch cn ti cp , v d nh PROTECT cn ch r code c bo v cp my c 15 cp bo v, tng ng vi cc gi tr 0 ~ 15 (mc nh code s c bo v cp 15, 4 block u c bo v) #USE C php: #USE <Options>
48
49
Nhm o to k thut BigLab - Gio trnh PIC - CCSC Bng 3.4 Cc la chn ca tin x l #USE Tn Options Delay(clock = <f>) ngha Khai bo s dng thch anh c tn s f, tn s ny dng s dng cho cc lnh delay_us(), delay_ms(). Delay(clock = <f>, Khi ng li WDT sau mi lnh delay_us(), Tn s b dao ng 3 restart_wdt) delay_ms().
delay (clock=<f>, Type - loi b dao ng s dng: oscillator hay type) delay(clock=<f1>, type=<f2>) internal Clock s dng tn s f1, h thng s dng tn s f2
5 6 7 8
Port
FAST_IO I2C
Cc ngoi vi RS232 SPI V d: #use delay(clock=20M, oscillator) #use delay(internal=8M) #pragma C php: #pragma
<cmd>
y l tin x l c bn v mnh nht trong CCSC, c th dng ch th tin x l ny thay th cho tt c cc ch th tin x l trc .
V d: #pragma device PIC16C54
3.5 BI TP
Vit on chng trnh config cho PIC18f4550 vi cc yu cu sau: Thch anh s dng 20MHz Cp xung 48MHz cho CPU
49
50
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.
50
51
ng vi gi tr 1 trn bit tng ng th chn tng ng trn PORTX s c chc nng input, v
ngc li gi tr 0 quy nh chn tng ng chc nng output. 4.2.2 Cc lnh input input_X() Vi: X l tn PORT (A, B, C, D, E) Hm dng c vo trng thi logic ca cc chn trn PORT X. input(pin) Vi pin l cc k hiu chn (trn mt PORT) c nh ngha trong header file. Hm dng
51
52
(a)
(b)
53
Nhm o to k thut BigLab - Gio trnh PIC - CCSC Bng 4.1 Bng m dnh cho LED 7 on Anode chung
Hin th nhiu LED 7 on R rng, hin th mt LED 7 on ta cn 8 chn cp m cho 8 LED bn trong. Trong thc t, cc LED 7 on thng c s dng theo t hp vi nhau hin th cc s thp phn, ch t A ti F. iu ny i hi phi hin th nhiu LED 7 on trong mt h thng. V r rng, nu s chn iu khin LED l mt bi s ca 8 (mi LED mt 8 chn) l khng kh thi. Gii quyt cho vn ny ta xt s khi mch nh hnh 4.2. 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. B iu khin cp ngun c chc nng nhn lnh t CPU v cho php ti mt thi im nht nh LED no c sng. Phng php nh trn c gi l phng php qut. y l phng php c bn nht hin th LED 7 on. Ngoi ra cn c nhng phng php khc vi s h tr ca cc IC s nh: 7447, 74595
54
Nhm o to k thut BigLab - Gio trnh PIC - CCSC Bng 4.2 Bng m dnh cho LED 7 on Cathode chung
NGU N DC
B I U KHIN C P NGU N
LED
LED 7SEG
LED 7SEG
LED 7SEG
CPU
7SEG
B C P M HI N TH
55
56
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.
57
Hnh 5.2 - Quy trnh hot ng ca ngt trong VK 5.4 TNG TC VI NGT
Trong khun kh bi hc chng ta s c dp tng tc vi 2 loi ngt: 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:
57
58
Nhm o to k thut BigLab - Gio trnh PIC - CCSC Khai bo kch hot ngt ton cc
Trong chng trnh ngt X l ngt Reset c ngt 5.4.2 Cc hm tng tc vi ngt trong CCSC 5.4.2.1 Cc hm tng tc vi ngt disable_interrupts(level); Enable_interrupts (level); Clear_interrupts(level ); Disable ngt tng ng Kch hot ngt tng ng Xa c ngt tng ng
ext_int_edge(source, edge); ci t cnh ngt cho ngt ngoi INT, trong Source : l cc ngun ngt ngoi c cc gi tr l 0, 1, 2, edge: khai bo loi cnh xung bo ngt, c cc gi tr: L_TO_H ; H_TO_L Cc cp ngt level : Bng 5.1 STT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Cc cp ngt (level) Tn Level INT_AD INT_ADOF INT_BUSCOL INT_BUTTON INT_CANERR INT_CANIRX INT_CANRX0 INT_CANRX1 INT_CANTX0 INT_CANTX1 INT_CANTX2 INT_CANWAKE INT_CCP1 INT_CCP2 INT_CCP3 INT_CCP4 INT_CCP5 INT_COMP INT_COMP1 INT_COMP2 INT_CR INT_EEPROM ngha Analog to digital conversion complete Analog to digital conversion timeout Bus collision Pushbutton An error has occurred in the CAN module An invalid message has occurred on the CAN bus CAN Receive buffer 0 has received a new message CAN Receive buffer 1 has received a new message CAN Transmit buffer 0 has completed transmission CAN Transmit buffer 0 has completed transmission CAN Transmit buffer 0 has completed transmission Bus Activity wake-up has occurred on the CAN bus Capture or Compare on unit 1 Capture or Compare on unit 2 Capture or Compare on unit 3 Capture or Compare on unit 4 Capture or Compare on unit 5 Comparator detect Comparator 1 detect Comparator 2 detect Cryptographic activity complete Write complete
58
59
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
INT_EXT INT_EXT1 INT_EXT2 INT_EXT3 INT_I2C INT_IC1 INT_IC2 INT_IC3 INT_LCD INT_LOWVOLT INT_LVD INT_OSC_FAIL INT_OSCF INT_PSP INT_PWMTB INT_RA INT_RB INT_RC INT_RDA INT_RDA0 INT_RDA1 INT_RDA2 INT_RTCC INT_SPP INT_SSP INT_SSP2 INT_TBE INT_TBE0 INT_TBE1 INT_TBE2 INT_TIMER0 INT_TIMER1 INT_TIMER2 INT_TIMER3 INT_TIMER4 INT_TIMER5 INT_USB
External interrupt External interrupt #1 External interrupt #2 External interrupt #3 I2C interrupt (only on 14000) Input Capture #1 Input Capture #2 Input Capture #3 LCD activity Low voltage detected Low voltage detected System oscillator failed System oscillator failed Parallel Slave Port data in PWM Time Base Port A any change on A0_A5 Port B any change on B4-B7 Port C any change on C4-C7 RS232 receive data available RS232 receive data available in buffer 0 RS232 receive data available in buffer 1 RS232 receive data available in buffer 2 Timer 0 (RTCC) overflow Streaming Parallel Port Read/Write SPI or I2C activity SPI or I2C activity for Port 2 RS232 transmit buffer empty RS232 transmit buffer 0 empty RS232 transmit buffer 1 empty RS232 transmit buffer 2 empty Timer 0 (RTCC) overflow Timer 1 overflow Timer 2 overflow Timer 3 overflow Timer 4 overflow Timer 5 overflow Universal Serial Bus activity
59
60
Nhm o to k thut BigLab - Gio trnh PIC - CCSC Trong cc level c cho v c ngha nh bng 5.1
5.4.2.3 Mu chng trnh s dng ngt // Khai bo hm ngt Void Void { //Kch hot ngt ton cc //Kch hot level ngt tng ng While(1) { // User code } } // vng khai bo hm ngt # level Void { // code x l ngt // Reset c ngt } InterruptFunc() InterruptFunc(); main()
5.5 BI TP
S dng PIC 18F4620 c s ln nhn phm hin th ra LED 7 on(s dng ngt ngoi)
60
61
Bi 6 : IO PORT - INPUT
6.1 M T PHN CNG
Kin trc phn cng xem bi 4.
62
Nhm o to k thut BigLab - Gio trnh PIC - CCSC 6.2.2 Bi tp 2 - Lp trnh qut phm ma trn Vi cc ng dng ln, cn nhiu phm th khng th dng qu nhiu chn ca vi iu khin c phm. Vy lm th no dng t chn m vn c c nhiu phm? => Cn phi t hp phm theo mt qui lut v c tun t cc phm -> m ha phm Mt phng php thng dng nht l t hp phm ma trn: cc phm s c sp xp thnh mt ma trn MxN: S phm to ra l M.N S ng dy tn hiu cn c l M+N
VD: Ma trn 4x4 gm 16 phm, dng 8 ng tn hiu Ma trn 4x5 gm 20 phm, dng 9 ng tn hiu 6.2.2.1 M t phn cng S kt ni vt l ca cc phm ma trn c cho hnh di.
63
Nhm o to k thut BigLab - Gio trnh PIC - CCSC Lp trnh sao cho khi mi phm c nhn 4 LED s hin th gi tr nh phn ch a ch (1 16) ca phm trn bn phm 6.2.2.3 Gii thut Phn tch hot ng ca s phm ma trn hnh 6.2 Ti mi thi im ch nhn c 1 phm Ma trn c b tr thnh cc hng R1-> R4 v cc ct C1->C4 Cc ct s c cp mc in p 0 tun t: 0111, 1011, 1101, 1110, 0111. Ti mi trng thi ca cc ct, ton b tn hiu ti cc hng s c c v kim tra, mi mc in p 0 xut hin ti mt hng tng ng vi mt phm c nhn ( v tr tng ng) Tc thay i trng thi ti t hp cc ct gi l tc qut, tc qut phi ln hn tc ngi dng nhn phm th mi c c phm. V d ngi dng trong 1 giy c th nhn phm 3 ln th tc qut phi ln hn 4x3=12 Hz th mi c kh nng
63
64
Nhm o to k thut BigLab - Gio trnh PIC - CCSC -R1R2R3R4 = 1101? : ->phm 8 c nhn -R1R2R3R4 = 1110? : ->phm 0 c nhn Xut tn hiu ra cc ct C1C2C3C4: 1101
6.3 PH LC
Cc mc in p s dng ch input
64
65
Nhm o to k thut BigLab - Gio trnh PIC - CCSC Bng 6.1 Mc in p ch input
Ch : khi in p cung cp l mc nm gia mc logic 0 v 1 trn th hon ton khng c c, gy ra sai. Do khi thit k phi ch mc logic phi nm trong hai khong in p ny.
66
Bi 7 : TIMER
7.1 TIMER
7.1.1 Timer l g? Timer l b nh thi c chc nng nh mc mt khong thi gian. Timer c dng hoch
66
67
Nhm o to k thut BigLab - Gio trnh PIC - CCSC Gii hn ca thanh ghi gi tr c gi l gii hn ca timer v c hiu l s bit ca timer (s bit timer = s bit ca thanh ghi gi tr). Khi gi tr trong thanh ghi ny t gii hn timer s kch hot mt bit (gi l bit c timer) thng bo cho h thng bit l timer trn. Thanh ghi gi tr l mt thanh ghi vt l nn c th tng tc c bng phn mm. Da vo
MaxValue = 2s bit
Tn s xung fout Gii hn timer: MaxValue = 2 s bit timer (gi tr cui ca thanh ghi gi tr) Gi tr u ca thanh ghi gi tr: InitValue t thi gian timer cn nh thi (tnh theo s)
Gi:
Vi 2 gi tr u v cui ny ta d dng tnh c s xung m b m timer c th m c trc khi trn: S xung m c = MaxValue InitValue M: S xung m c = t. fout = ( T suy ra: InitValue = MaxValue - ( Hay:
. .
= 2 ( . )
67
68
y chnh l h thc tnh gi tr ci t cho thanh ghi gi tr ca timer da vo: s bit timer, thi
gian cn ci t v tn s xung ng vo. Trong trng hp vi iu khin, ch nh thi, tn s xung ng vo fin = FOSC/4 ta c h thc:
= 2 ( ) 4. .
Hot ng Kch hot timer Ch timer trn Khi timer trn x l reset c Np li timer
Trn y l quy trnh tng tc vi 1 timer. Tuy nhin, iu ny ch thc hin c khi ta tng tc vi cc thanh ghi quy nh timer (s dng trong cc ngn ng ASM, C18, C30, HiTechC...) i vi CCSC, th vin v timer c h tr sn nhiu hm tng tc. Ta s gii thiu tip theo phn tip theo sau y: 7.2.2 Cc hm tng tc vi timer trn PIC trong CCSC setup_timer_X(mode)
68
69
Nhm o to k thut BigLab - Gio trnh PIC - CCSC Bng 7.1 Cc ch (mode) C php RTCC_INTERNAL RTCC_EXT_L_TO_H RTCC_EXT_H_TO_L RTCC_DIV_2 RTCC_DIV_4 RTCC_DIV_8 RTCC_DIV_16 RTCC_DIV_32 RTCC_DIV_64 RTCC_DIV_128 RTCC_DIV_256 RTCC_OFF RTCC_8_BIT RTCC_16_BIT ngha Dng xung ni Dng xung ngoi cnh ln Dng xung ngoi cnh xung Prescaler = 2 Prescaler = 4 Prescaler = 8 Prescaler = 16 Prescaler = 32 Prescaler = 64 Prescaler = 128 Prescaler = 256 Tt timer0 Timer0 8 bit Timer0 16 bit
hm ny dng ci t gi tr cho thanh ghi gi tr timer. X: S timer (0, 1, 2, 3,...) Value: c tnh theo cng thc phn 7.1.2
Ring i vi timer0 c th dng hm ny: set_rtcc(value) value=get_timerX Hm dng c gi tr hin ti ca thanh ghi gi tr timer (thng dng trong ch counter) X: s timer (0, 1, 2, ...) Value: bin lu gi tr timer
Ngt lin quan: INT_TIMERX or INT_RTCC vi timer0 C timer c kt ni ti c ch ngt. Khi timer trn h thng s kch hot mt ngt. Chnh v l do ny khi ci t timer cn kt hp vi ci t ngt timer (cc thao tc ci t ngt xem li bi 5).
7.3 BI TP
7.3.1 Yu cu: Dng timer0 vit hm delay cho h thng.
69
70
Nhm o to k thut BigLab - Gio trnh PIC - CCSC 7.3.2 Gii thut (GV s ging trn lp) 7.3.3 Thc hnh: KIT th nghim s dng thch anh c tn s dao ng 25MHz.
71
Bi 8 : BI TP GIA KHA
8.1 YU CU
71
72
72
73
unsigned long
4294967295
atol(data): Chc nng: chuyn i d liu (data) sang kiu long Tham s truyn vo: a vo phi bt u bng k t, nu khng chng trnh s b li v khng thc hin c D liu tr v: tr v d liu kiu long
atof(data): Chc nng: chuyn i kiu d liu (data) t dng chui sang dng s thc float.
73
74
Nhm o to k thut BigLab - Gio trnh PIC - CCSC Tham s truyn vo: a vo phi bt u bng k t, nu khng chng trnh s b li v khng thc hin c. 9.2.2 D liu tr v: d liu tr v thuc kiu float
Cc hm x l chui:
Yu cu bt buc: #include <string.h> strlen(str): Chc nng: o di chui str Tham s truyn vo: str thuc kiu chui D liu tr v: gi tr tr v chnh l s k t trong chui str, kiu unsigned int
strcat(str1,str2): Chc nng: ni 2 chui str1 v str2 Tham s truyn vo: str1 v str2 thuc kiu chui D liu tr v: d liu tr v thuc kiu chui
strcpy(str1, str2): Chc nng: sao chp t chui str1 sang chui str2 Tham s truyn vo: str1 v str2 thuc kiu chui D liu tr v: khng c kiu d liu tr v
9.2.3 Cc hm ton hc: Yu cu bt buc: #include <math.h> abs(data): Chc nng: ly gi tr tuyt i mt s Tham s truyn vo: data truyn vo thuc kiu s (char, int, long, float) D liu tr v: d liu tr v l dng unsigned ca d liu truyn vo
74
75
Nhm o to k thut BigLab - Gio trnh PIC - CCSC Chc nng: dng ly cc gi tr arcsin, arccos, arctan ca d liu Tham s truyn vo: d liu a vo bt buc phi l kiu s (char, int, long, float) D liu tr v: kiu d liu tr v thuc kiu float
cos(data), sin(data), tan(data): Chc nng: dng ly cc gi tr sin, cos, tan ca d liu Tham s truyn vo: d liu a vo bt buc phi l kiu s (char, int, long, float) D liu tr v: kiu d liu tr v thuc kiu float
75
76
Bi 10 : LCD
10.1 TNG QUAN V LCD
10.1.1 LCD l g? LCD (Liquid Crystal Display) l mt thit b hin th dng im nh c mn hnh dng tinh th lng. LCD c s dng rt rng ri ngy nay. 10.1.2 Cc loi LCD trn th trng 10.1.2.1 Character LCD Character LCD l loi LCD ch th hin c cc k t (A Z, a z, 0 9). Thng thng trn th trng ch c mt s kch c LCD nh 16x2 (16 ct 2 dng), 20x4 (20 ct 4 dng).
77
Nhm o to k thut BigLab - Gio trnh PIC - CCSC 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.
Bng 10.1 Bng cc nh dng cstring trong LCD STT 1 Tn nh dng %c Character ngha
77
78
2 3 4 5 6 7 8 9 10 11 12 13 14 V d: -
String as character Signed interger 8bit Unsigned interger 8 bit Long unsigned int Long signed int Hex int (lower case) Hex int (upper case) Hex long int (lower case) Hex long int (upper case) Float with truncated decimal Float with rounded decimal Float in exponential format Kiu s thc c xc nh s s sau du phy
10.4 BI TP
S dng th vin lcd.c trong CCSC hin th ra LCD chui k t cho trc.
78
79
80
Nhm o to k thut BigLab - Gio trnh PIC - CCSC Gi s bn c mt b ADC 10 bits, gi tr tham chiu c chn l Vref+ = 5V - Vref- = 0V. Nu bn thu v mt tn hiu tun t 3V, th bn s thu v c gi tr ca ADC l
2 1 (3 0) = 614 50
Nhng nu chng ta chn Vref+ = 5V v Vref- = 1.5V, khi ta thu v mt tn hiu tun t mc 3V, ta s nhn c gi tr nh sau
80
81
Nhm o to k thut BigLab - Gio trnh PIC - CCSC setup_adc_ports(mode) Hm khai bo s dng cc PORT trong ADC. Cc mode s dng nh sau: Bng 11.2 Cc trng thi s dng ca knh ADC trong CCSC (PIC18F4620) STT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Trng thi NO_ANALOGS ALL_ANALOG AN0_TO_AN11 AN0_TO_AN10 AN0_TO_AN9 AN0_TO_AN8 AN0_TO_AN7 AN0_TO_AN6 AN0_TO_AN5 AN0_TO_AN4 AN0_TO_AN3 AN0_TO_AN2 AN0_TO_AN1 AN0 set_adc_channel(channel) Hm ci t knh ADC s dng. Trong : channel l gi tr quy nh s knh, 0, 1, 2, 3... read_adc() Hm c gi tr ADC, hm tr v gi tr kiu int16. ngha Khng s dng analog Tt c cc knh u c s dng Cc knh t 0 ti 11 Cc knh t 0 ti 10 Cc knh t 0 ti 9 Cc knh t 0 ti 8 Cc knh t 0 ti 7 Cc knh t 0 ti 6 Cc knh t 0 ti 5 Cc knh t 0 ti 4 Cc knh t 0 ti 3 Cc knh t 0 ti 2 Cc knh t 0 ti 1 Knh s 0
Vn hnh: Chn knh ADC cn c : dng hm set_adc_channel(channel) Delay khong 2us : dng hm delay_us(2); : dng hm read_adc();
c gi tr ADC
81
82
11.4 BI TP
Bi tp 1:
82
83
Bi 12 : USART
12.1 KHI QUT V CC CHUN GIAO TIP
USART (Universal Synchronous & Asynchronous serial Receiver and Tranreceiver) c ngh l Chun truyn nhn ni tip ng b v bt ng b, y l mt thut ng ch mt chun giao tip. Ngoi ra, chng ta cn phn bit thut ng UART (ngha l chun truyn nhn bt ng b), thng ch mt thit b phn cng. Khi chng ta s dng chun giao tip USART, chng ta phi s dng thm mt b phn phn cng nh km, thng th b phn phn cng ny l mt mch m dng chuyn in p 0V n 5V sang mt mc in p khc cho ph hp vi loi giao tip. Sau y, chng ta s cng tm hiu nhng khi nim c bn ca USART: 12.1.1 Giao tip ni tip: Giao tip ni tip l kiu truyn nhn m d liu i trong bus d liu dng tng bit mt, khc vi chun truyn nhn song song khi m d liu c truyn trong bus dng gi d liu. Hnh nh sau gip chng ta d hnh dung hn chun giao tip ni tip/ song song:
84
Nhm o to k thut BigLab - Gio trnh PIC - CCSC 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.
12.1.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. 12.1.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)
84
85
5 6 7 8 9 10 11 12 13 14 15 16
BRGH1OK ENABLE=pin DEBUGGER RESTART_WDT PARITY=X BITS =X LONG_DATA DISABLE_INTS STOP=X TIMEOUT=X UART1 UART2
S dng buadrate mc cao Chn ny s c kch khi c tn hiu truyn (thng dng iu khin RS485 Cho php debugger hot ng khi truyn nhn Cho php hm getc() clear WDT Khai bo parity bit, x c th l N, E, hay O. Khai bo s bit truyn, x c th 8-9 Khai bo hm getc() tr v 1 s int16 (c s dng khi truyn nhn 9 bit) Tt ngt Ci t stop bit (mc nh l 1) Ci t thi gian timeout khi nhn d liu Ci t chn truyn nhn cho module UART1 Ci t chn truyn nhn cho module UART2
Ngoi ra ta c th dng hm setup_uart(baud, stream) thay i ci t ca module USART trong khi chng trnh hot ng thay v ci t ban u bi ch th tin x l nh cch trn. 12.2.2 Cc hm truyn d liu Putc(character) Hm gi 1 byte qua RS232 Puts(cstring) Hm gi 1 chui qua RS232 Printf(option) Hm gi d liu qua RS232 (xem thm bi LCD) 12.2.3 Cc hm nhn d liu Value = Getc() Hm nhn mt byte d liu t RS232, hm tr v kiu int8
85
86
Nhm o to k thut BigLab - Gio trnh PIC - CCSC gets(string) hoc Value = fgets(string, stream) Hm nhn 1 chui t RS232, hm tr v d liu string. Stream l ID ca thit b
12.3 BI TP
Bi tp 1: Vit chng trnh truyn nhn 1 byte qua chun RS232 Bi tp 2: Gi cc d liu thu thp c t ADC bi 11 ln my tnh
86
87
88
88
89
12 13 14
Hm ci t cho timer 2 dng trong module PWM. Trong Prescaler: h s chia trc (xem trong header file phn timer) Postscaler: h s chia sau Period: l mt s nguyn 8 bit, th hin chu k ca xung PWM c tnh theo cng thc: (T trong cng thc tnh theo n v l giy)
( = ) 4. .
Set_PWMX_duty(duty cycle) Hm dng ci t gi tr duty cylce cho b iu ch rng xung PWM. Gi tr duty cycle l mt con s t 0 255 c tnh ton theo t l phn trm da trn thng s period.
13.3 BI TP
Bi tp 1: S dng chc nng PWM iu khin tc ng c DC Bi tp 2: Thit k h thng gim st tc ng c DC bng my tnh Bi tp 3: Thit k h thng iu chnh tc ng c DC (u vo c th l analog hoc digital)
89
90
chnh xc ca mt encoder ph thuc rt ln vo s vch khc trn a kim loi, cng nh thi gian p ng ca b cm bin quang hc. 13.4.2 Phn loi encoder: C 2 loi encoder: Encoder tuyt i : thng c ng dng nhiu trong cc h thng o v tr. Encoder tng i: loi encoder ny dng rt nhiu v kh ph bin. Nn t nay chng ta thng nht khi ni n encoder, th chnh l encoder tng i. 13.4.3 Tn hiu u ra encoder: Mt encoder thng c 5 chn, bao gm cc chn sau: 2 chn cho ngun v mass. 1 chn cho pharse A 1 chn cho pharse B 1 chn cho pharse Z
91
92
Hnh 14.1 - Truyn nhn qua SPI 14.3 SPI TRONG PIC
// GV s trnh by ti lp
93
l Repeat Start. Trng hp ny xy ra khi Master mun nhn d liu lin tip t
Slave. 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.
93
94
Nhm o to k thut BigLab - Gio trnh PIC - CCSC 14.4.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).
14.4.2.4 Cuc gi chung: Cuc gi chung l cuc gi m a ch c dng 0000000W (a ch = 0 v bt iu khin hng l W). Cuc gi chung xy ra khi Master mun truyn d liu cho tt c Slave. Tt nhin, trong trng hp ny Slave c th nhn hay khng nhn cuc gi chung t Master (ty theo Slave c c ci t ch cho php nhn cuc gi chung hay khng).
95
95
96
Nhm o to k thut BigLab - Gio trnh PIC - CCSC 14.5.3 Extenal EEPROM Memory Cc IC lu tr (chip nh) ngoi thng c giao tip ng b vi h thng (PIC) thng qua 1 trong 2 chun giao tip: SPI v I2C. Mi hot ng truy xut b nh u c thc hin thng qua cc chun giao tip ny. Chnh v th vic ci t v hot ng truy xut b nh ngoi l vic ci t v hot ng cc chun SPI hoc I2C. (xem bi 15). 14.5.4 Bi tp Lu tr d liu nhit tham kho bi tp tng kt vo DataEEPROM Memory.
96
97
Bi 15 : BI TP TNG KT
15.1 YU CU
u vo:
Cm bin nhit (analog sensor) Bin tr ci t gi tr nhit tham kho Nt nhn chn ch hot ng
u ra:
Hin th gi tr nhit hin ti v gi tr nhit tham kho ra LCD iu khin vn tc ng c qut (DC motor) iu ho nhit Kt qu c truyn ln my tnh lu tr, x l Optional: b nh ngoi EEPROM Hot ng: H thng c vai tr gim st v t ng iu chnh nhit ca mi trng. Nhit tham kho c ci t thng qua bin tr trong ch ci t (c chn bi nt nhn (c th dng ngt hoc counter).
97
98
Nhm o to k thut BigLab - Gio trnh PIC - CCSC Khi nhit cao hn gi tr tham kho, h thng s t ng khi ng qut lm gim nhit ca thit b cn gim st. Gi tr nhit tham kho v gi tr nhit hin thi c hin th ln 2 dng ca LCD. Sau mt thi gian nht nh h thng s t ng gi d liu nhit ln my tnh gim st, kim tra. Optional: C th lu tr gi tr d liu vo chp nh ngoi
98