Professional Documents
Culture Documents
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
11.2 CU TRC PHN CNG TIMER 1, 2, 3 (Tham kho bi s 7) ........................ 70 11.3 S DNG TH VIN C18 CHO VIC CI T TIMER ................................ 71 ...... 73 Bi 12 : ADC (ANALOG DIGITAL CONVERT) .................................................... 75 12.1 TI LIU THAM KHO .................................................................................... 75 12.2 TNG QUAN V ADC....................................................................................... 75 12.3 B CHUYN I ADC TRONG VK .............................................................. 76 Bi 13 : USART ............................................................................................................ 81 13.1 TI LIU THAM KHO .................................................................................... 81 13.2 KHI QUT V CC CHUN GIAO TIP ...................................................... 81 13.3 USART TRONG PIC ........................................................................................... 82 Bi 14 : PWM / CAPTURE / COMPARE ................................................................... 86 14.1 TI LIU THAM KHO .................................................................................... 86 14.2 TNG QUAN V PWM/CAPTURE/COMPARE ............................................... 86 14.3 QUY TRNH S DNG MODULE PWM TRONG PIC ..................................... 89 14.4 PHN M RNG - ENCODER .......................................................................... 89 Bi 15 : SPI I2C ......................................................................................................... 92 15.1 TI LIU THAM KHO .................................................................................... 92 15.2 TNG QUAN V SPI ......................................................................................... 92 15.3 HOT NG CA SPI ...................................................................................... 92 15.4 SPI TRONG PIC .................................................................................................. 93 15.5 TH VIN SPI TRONG C18 .............................................................................. 93 15.6 M RNG I2C ................................................................................................. 94 15.7 CC PHNG PHP LU TR D LIU ...................................................... 96 Bi 16 : BI TP TNG KT .................................................................................... 98 16.1 YU CU............................................................................................................ 98
www.biglab.edu.vn
16.2 M T PHN CNG ......................................................................................... 99 16.3 GII THUT ...................................................................................................... 99 16.4 CHNG TRNH ............................................................................................... 99
www.biglab.edu.vn
www.biglab.edu.vn
www.biglab.edu.vn
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#
9 -
www.biglab.edu.vn
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.
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,...). 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
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) 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
Ch bin ThS. V Xun Quc vxquoc@gmail.com
12
Nhm o To K Thut BigLab 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
Lp trnh s dng timer to hm delay 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: Hon thnh bi tp gia kho Bui 10: Lp trnh C nng cao o n tp cc lnh C c bn 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 Bui 11: I/O Port nng cao o Nhc li kin thc v PORT 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 (c th kt hp vi Basic KIT) Bui 12: Timer 1, 2, 3 o Counter Thanh ghi quy nh chc nng counter Ngt counter (nhc li c bn phn ngt) 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 13: 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 Cc thanh ghi quy nh cho b ADC o Ngt ADC o Bi tp: c gi tr bin tr VR
Ch bin ThS. V Xun Quc vxquoc@gmail.com
14
www.biglab.edu.vn
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 14: 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 o UART trong PIC T chc phn cng Ngt UART 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 15: PWM/Capture/Compare o PWM/Capture/Compare Nguyn l, ng dng? Cc thng s c trng o PWM/Capture/Compare trong PIC T chc phn cng Chng trnh thao tc 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 16: 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 17: 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
Ch bin ThS. V Xun Quc vxquoc@gmail.com
15
www.biglab.edu.vn
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 v nh: Lp trnh m phng giao tip gia 2 VK PIC dng SPI - Bui 18: Hon thnh bi tp, tng kt o n tp, kim tra cui kha o Tng kt o Gii thiu ng dng III. CC CHUYN NG DNG KM THEO SAU KHA HC 1. Chuyn 1: iu khin ng c: Step, DC motor 2. Chuyn 2: Giao tip khng dy 2 phn 3. Chuyn 3: PIC C# - Giao tip my tnh 4. Chuyn 4: iu khin 2 ng c DC phi hp bn my 2D 5. Chuyn 5: chuyn phi hp: Robot 2 bnh, Robot d line. 6. Chuyn 6: chuyn phi hp: Con lc ngc 7. Chuyn 7: chuyn phi hp: Xe 2 bnh t cn bng 8. Chuyn 8: iu khin ng c khng chi than iu khin lc nng qut 9. Chuyn 9: iu khin 2 ng c khng chi than cn bng 2 cnh qut 10. Chuyn 10: 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
16
www.biglab.edu.vn
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 Ch bin ThS. V Xun Quc vxquoc@gmail.com
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 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
19
www.biglab.edu.vn
Timer/ Counter
I/O PORT
B dao ng
B nh
Ngoi vi
20
www.biglab.edu.vn
21
www.biglab.edu.vn
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
Nhm bin son BigLab 21 Ch bin ThS. V Xun Quc vxquoc@gmail.com
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.
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:
Nhm bin son BigLab Ch bin ThS. V Xun Quc vxquoc@gmail.com
23
www.biglab.edu.vn
. Hp ng l ngn ng lp trnh gn vi ngn ng my nht v mi dng vi iu khin u lun c mt tp lnh hp ng nht nh. Nh sn xut cng bt buc phi c mt trnh
bin dch hp ng dnh ring cho dng vi iu khin . Ngn ng cp cao: Hu ht cc ngn ng cp cao dnh cho cc vi iu khin u dng li ngn ng C. Tuy nhin mi cp khc nhau ngn ng C cng chia ra nhiu dng khc nhau. Vi PIC chng ta c th c nhng trnh bin dch ngn ng C dnh ring nh sau:
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.
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
Nhm bin son BigLab 24 Ch bin ThS. V Xun Quc vxquoc@gmail.com
25
www.biglab.edu.vn
o Bin ton cc c khai bo u chng trnh trong phn khai bo bin 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 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;
26
www.biglab.edu.vn
Mt mng hng s c kch thc ti a ph thuc vo loi vi iu khin s dng. Vi VDK PIC16F: Kch thc mng hng s ti a l 256 byte Vi VDK PIC18F tr ln: Kch thc mng hng s ti a khng gii hn 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 : 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
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.
unsigned char a =8 , b=200; Int c; c= (int16) a * b; 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 Bng 2.2 Cc cu trc lnh trong C
2.1.4
Ton t
2.1.4.1 Ton t Bng 2.3 STT 1 2 Ton t trong C Loi ton t Ton t tnh ton s Tn ton t Nhn Chia K hiu * / Chc nng Nhn 2 s Chia 2 s
28
Cng Tr Chia ly d Not bit Dch tri Dch phi AND XOR OR AND OR So snh bng So snh khc SS b hn SS b hn, bng SS ln hn SS ln hn, bng
2.1.4.2 Mc u tin ca cc ton t Bng 2.4 STT 1 2 3 4 5 6 7 8 Bng so snh mc u tin ca cc ton t: Tn Primary Unary Binary Arithmetic Shift Relational Equality Bitwise M c 1(high) 2 3 4 5 6 7 8 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
29
www.biglab.edu.vn
9 10 11 12 13
9 10 11 12 13
^ | &&
Left to Right Left to Right Left to Right Left to Right 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 Ch bin ThS. V Xun Quc vxquoc@gmail.com
30
www.biglab.edu.vn
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);
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
31
Nhm o To K Thut BigLab void test(int &x) { x=x+10; } void main() { int n=5; test(n); cout<<"Gia tri n ="<<n<<endl; }
www.biglab.edu.vn
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/
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
Phn to xung (khi B): bao gm b to xung v cc chc nng i km vi n. Phn tnh ton (cn gi l b ALU khi C): m nhn vic tnh ton ca VK. Phn I/O (khi D): bao gm cc port input v output. Phn ngoi vi (khi E): qun l cc chc nng tng tc ngoi vi trong VK. (con s c ghi trn mi mi tn chnh l s bits d liu trong vic giao tip gia cc khi) Trong bi ny chng s xem xt hai khi chnh l khi b nh v khi to xung. 3.1.1.2 C bn v t chc b nh ca VK PIC Ti liu tham kho: chng 5,6,7-datasheet T chc b nh ca VK PIC c phn thnh ba 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. a) T chc b nh chng trnh
(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 Ch bin ThS. V Xun Quc vxquoc@gmail.com
35
www.biglab.edu.vn
c lu vo b nh stack, v h thng s nhy n v tr bt u ca chng trnh con, sau khi thc hin xong chng trnh con ri th h thng s m b nh stack ra v tm li gi tr 0x0082 tr v cho ng v tr trong chng trnh chnh. Stack Memory c thc hin da trn c ch VO SAU RA TRC
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: B to xung bng thch anh:
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
thch anh (c th tra bng 2.2 datasheet). B to xung bng RC: B to xung ny da vo c tnh dao ng c bn ca b RC. B dao ng loi ny tng i kh s dng, thch hp vi nhng ng dng cho php thay i tn s hot ng ca h thng. B dao ng ni: Trong mi VK u tn ti mt b dao ng ni, tc l chng ta c th s khng cn dng b dao ng bn ngoi m VK vn hot ng bnh thng. Khuyt im ca b dao ng ni l tn s hot ng thp hn so vi b dao ng gn ngoi, nhng b li chnh xc l tin cy cao hn, tiu tn t nng lng hn. y l b dao ng ti u nng lng cho vi iu khin PIC. Phn tch s khi ca mt b dao ng (18F4620): GV ng lp s ging dy trc tip phn ny. (hnh 3.4) Cc thanh ghi tng tc: OSCTUNE: thanh ghi chu trch nhim iu chnh vic hot ng ca b dao ng. OSCCON: thanh ghi chu trch nhim iu chnh gi tr hot ng ca b dao ng. (GV trc tip ni thm v phn ny)
38
www.biglab.edu.vn
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 : Bt buc phi khai bo y cc thanh ghi h thng. 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
Vit on chng trnh config cho PIC18f4550 vi cc yu cu sau: Thch anh s dng 20MHz S dng ch PLL cp xung 48MHz cho CPU
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.
4.1.1 M t phn cng Hnh bn l t chc phn cng c bn ca mt IO Port, vi cu to chnh l cc D Flip Flop c chc nng nh mt b cht d liu (data lacth). (GV s trnh by v hot ng c bn). C ba thanh ghi c bn dnh cho vic tng tc vi cc chc nng IO Port: Thanh ghi TRIS: thanh ghi quyt nh hng truyn ca IO port (input hay output). Thanh ghi PORT: thanh ghi ny nhn d liu vo t IO Port. Thanh ghi LAT: thanh ghi ny dng xut d liu ra IO Port. 4.1.2 S dng cc PORT trong PIC 4.1.2.1 PORT A PORTA c s chung chn vi mt s chc nng khc nh ADC v Oscillator. Khi s dng PORTA ti chn Analog cn thit phi t gi tr cho thanh ghi ADCON1 l bit tng ng ang ch analog hay digital, vi chn RA7 v RA6 do c ni vi chn Oscillator nn chn ny ch c s dng khi khng khng t ch oscillator.
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
4.1.2.5 Parallel slaver port Port D v E c thm chc nng lm cng giao tip song song t. Hot ng ch ny xem chi tit trong Datasheet.
43
www.biglab.edu.vn
T cu to phn cng ca LED 7 on nn chng ta s c 2 bng gii m khc nhau cho cc tn hiu u vo: Bng 4.2 Bng m dnh cho LED 7 on Anode chung
44
Nhm o To K Thut BigLab Bng 4.3 Bng m dnh cho LED 7 on Cathode chung:
www.biglab.edu.vn
Cc phng php hin th LED 7 on: C nhiu phng php hin th LED 7 on c dng hin nay nh: ni trc tip, dng IC7447, dng IC74595. Mi phng php c nhng u im, nhc im ring v ty thuc vo cc u, nhc im ny m s dng cc phng php . Chng trnh ch gii thiu phng php c bn nht trong hin th LED 7 on l ni mch trc tip v dng phng php qut. S mch: (GV s hng dn trc tip trn lp) Phng php qut:
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
48
www.biglab.edu.vn
Cc thanh ghi tng tc cho vector ngt (dng 18F4620): C 10 thanh ghi c s dng iu khin hot ng ngt chia lm 4 loi sau: RCON INTCON, INTCON2, INTCON3 PIR1, PIR2 PIE1, PIE2 IPR1, IPR2 + Thanh ghi RCON: Cha cc c ngt Reset, c ngt nh thc t ch Idle cho CPU. Thanh ghi ny cn cha bit PIEN (enable interrupt priority) + Thanh ghi INTCON: lot thanh ghi INTCON (3 thanh ghi) cha mt lot khai bo bt tt, mc u tin, c ngt cho cc loi ngt Timer0, RB, ngt ngoi (INT0, INT1, INT2). + Thanh ghi PIR: loi thanh ghi PIR (2 thanh ghi) cha cc c ngt ca nhng loi ngt ngoi vi (ADC, TIMER1, TIMER2, SSP, PSP, RS232 )
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. (GV hng dn thm phn s dng kt hp gia 3 bits ny vi nhau)
Khai bo vector ngt Khai bo s dng vecto ngt Khai bo s dng chng trnh ngt tng ng
50
www.biglab.edu.vn
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 } #pragma code void main(void) { // bt u phn khai bo ngt INTCONbits.GIE = 1; INTCONbits.INT0IE = 1; // kt thc phn khai bo ngt // phn chng trnh } #pragma interrupt ISR_function void ISR_function (void) { //chng trnh ngt // nh xa c ngt trc khi kt thc chng trnh ngt } // bt bits ngt ton cc // khi ng ngt ngoi 0 // kt thc khai bo vector ngt // chng trnh chnh ISR_function _endasm
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
Nhm o To K Thut BigLab 6.2.1.3 Gii thut (GV s ging trn lp) 6.2.2 Bi tp 2 - Lp trnh qut phm ma trn 6.2.2.1 M t phn cng S kt ni vt l ca cc phm ma trn c cho hnh di.
www.biglab.edu.vn
6.3 PH LC
Cc mc in p s dng ch input
54
www.biglab.edu.vn
ch ny s c mc in p chn I/O pin, v truyn d liu c c trong thng qua Data bus. Mc in p y ch c mt hoc hai gi tr l l 1 hoc 0, mc in p nhn ra cc mc nh sau: Mc logic 0: in p t Vss n 0,15Vdd khi in p cung cp cho chip l <4,5V, v Vss n 0,8 V nu in p t 4,5 n 5,5V. Mc logic 1: 0,25VDD + 0,8 n VDD khi in p cp b hn 4,5V, v t 2.0 n VDD nu in p cung cp cho chip t 4,5 n 5,5V. i vi nhng I/O c ng vo l Trigger Schmitt th in p vo tng ng l: Logic 0: l Vss n 0,2VDD, logic 1: 0,8VDD n VDD.
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.
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
Watch dog timer l b nh thi chuyn dng ci t thi gian time out cho h thng. Khi mt lnh ca h thng thc thi WDT s c reset, nu h thng treo trong thi gian vt qu thi gian ci t, WDT t ng reset li h thng. 7.1.3 Prescaler Prescaler l tham s cho b chia ca timer. Tham s ny c ci t bi ngi dng theo cc option nh trc. Tng ng vi tham s prescaler c chn, mi ln tng ca timer s c quy nh nh sau: Xung vo timer = Xung ngun / Prescaler
Nguyn l hot ng: timer0 ch 8 bt tc l c gi tr b m l 8 bit. Khi c mt xung timer clock th b m TMR0L tng ln mt gi tr, v d hin ti TMR0L = 122 sau khi c thm 1 timer clock th gi tr ca n l 123. n kh gi tr ca TMR0L = 255, sau khi nhn thm mt clock na n s tr v 0 ng thi c TMR0IF c set, c ny c xa bi ngi dng hay chng trnh. Gi tr ca thanh ghi TMR0L c th c c v ghi. Timer clock c th c chn cc ch sau: Khi timer clock c chn t ngun xung nhp dao ng chnh ca Fosc/4 vi Fosc l tn s dao ng ca ngun. Hoc c th c chn t ngun xung nhp bn ngoi ch counter.
57
www.biglab.edu.vn
Ngun clock c th l clock ca dao ng ni hoc ca ngun ngoi c th c chn thng qua bit T0CS. Ngun clock sau khi chn c th c a trc tip ti b ng b hoc c a vo b chia thng qua bit iu khin PSA, nu c a qua b chia th clock s c chia cho 2, 4, 8, 16,32, 64, 128 v 256 thng qua 3 bit iu khin T0PS. Sau khi qua b ng b th clock c a vo b m m thanh ghi TMR0L. 7.2.2 TIMER0 ch 16 bit
V cu to hon ton ging ch 8 bit tuy nhin c mt im khc l thanh ghi b m lc ny l 16 bit, tc l b n s m n 65535 ri khi chuyn v 0 s to set c TMR0IF. 7.2.3 Thanh ghi iu khin TIMER0 T0CON
Bit 7 TMR0ON: l bt cho php hot ng hoc khng hot ng timer0. TMR0ON = 1 cho php timer 0 hot ng TRM0ON = 0 khng cho php timer 0 hot ng Bit 6 T08BIT: l bit ci t timer 0 hot ng ch 8 bit hay 16 bit T08BIT = 1 Timer0 hot ng ch 8 bit T08BIT = 0 Timer0 hot ng ch 16 bit
58
Nhm o To K Thut BigLab Bit 5 T0CS: bit chn ngun clock cho timer 0 T0CS = 1 Clock s dng l ngun clock ngoi (ch counter) T0CS = 0 clock s dng l chu k lnh Fosc/4 Bit 4 T0SE: chn cnh clock khi s dng clock ngoi T0SE = 1 clock cnh xung chn T0CKI T0SE = 0 clock cnh ln chn T0CKI Bit 3 PSA: chn ch t l cho ngun clock
www.biglab.edu.vn
PSA = 1 khng s dng ch t l. (ngun clock s dng s tr thnh clock ca timer0) 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 Bit <2 0> T0PS: t gi tr t l cho b t l.
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 INTCON: l thanh ghi iu khin ngt + GIE/GIEH: bit iu khin cho php ngt ton b. + PEIE/GIEL: cho php ngt ngoi vi + TMR0IE: cho php ngt timer0+ TMR0IF: c bo ngt timer0 Thanh ghi TRISA: set TRISA4 = 1 khi s dng ch counter (clock ngoi).
= 2
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
63
www.biglab.edu.vn
unsigned long
4294967295
64
Nhm o To K Thut BigLab Chc nng: chuyn i d liu (data) sang kiu long
www.biglab.edu.vn
Tham s truyn vo: a vo phi bt u bng k t, nu khng chng trnh s b li v khng thc hin c
Chc nng: chuyn i kiu d liu (data) t dng chui sang dng s thc float. 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
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
65
www.biglab.edu.vn
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 acos(data), asin(data), atan(data):
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
66
www.biglab.edu.vn
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 16 x 2 (16 ct 2 dng), 20 x 4 (20 ct 4 dng).
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
Chng ta s s dng th vin xlcd.h, c h tr sn trong b cng c PIC18 Compiler. khai bo s dng th vin ny chng ta phi chn thm cu lnh. #include <xlcd.h> Cc hm tng tc c bn: 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 : tng tc d liu 4 bits.
EIGHT_BIT : tng tc d liu 8 bits. Kiu k t v cch hin th: LINE_5X7 : hin th trn mt dng, kiu ch 5x7
LINE_5X10
LINES_5X7 : hin th trn nhiu dng, kiu ch 5X7 putcXLCD(k_t) - WriteDataXLCD(k_t): Xut mt k t ln LCD. putsXLCD() putrsXLCD(): Xut mt chui k t ln XLCD. SetDDRamAddr(v_tr): Di chuyn con tr ca LCD n v tr cn xut d liu (v tr cn phi tun theo quy tc ca LCD). Lu , trc khi s dng lnh ny cn kim tra xem LCD c bn hay khng. Ngoi nhng hm c quy nh sn trong b th vin, ta cn c mt s hm cn phi c khai bo trong chng trnh (do nhng hm ny tuy thuc vo xung clock h thng). l cc hm sau y: void DelayFor18TCY(void) { Nop(); // lnh ny c lp li 18 ln }
Nhm bin son BigLab 68 Ch bin ThS. V Xun Quc vxquoc@gmail.com
69
Nhm o To K Thut BigLab 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 }
www.biglab.edu.vn
70
www.biglab.edu.vn
Bi 11 : TIMER 1, 2, 3
11.1 TI LIU THAM KHO O
Datasheet PIC18F4620 ch 12, 13, 14 heet chng MPLAB C18 Libraries
71
www.biglab.edu.vn
Hnh 11.3 - Cu trc phn cng Timer3 11.3 S DNG TH VIN C18 CHO VIC CI T TIMER N VI
Thng thng, s dng Timer1/2/3 chng ta c th dng cch tng tc thanh ghi trc tip ng th ng tr nh hc phn trc lm, nhng cch vi Timer1/2/3 s tng i mt thi gian. V th cho ng t th nn, trong hc phn ny chng ta s s dng th vin MPLAB C18: n s s dng th vin ny, chng ta cn khai bo tin x l: c #include <timers.h> Cc hm c bn trong th vin: vi (k hiu X l con s tng ng cho 1/2/3) ng OpenTimer1(config): Khai bo s dng Timer1 s Timer1 Interrupt: TIMER_INT_ON : s dng ngt Timer1 khng s dng ngt Timer1
72
Nhm o To K Thut BigLab T1_16BIT_RW Ngun xung s dng: T1_SOURCE_EXT : T1_SOURCE_INT : Prescalers: T1_PS_1_1 T1_PS_1_2 T1_PS_1_4 T1_PS_1_8 : : : : t l 1:1 t l 1:2 t l 1:4 t l 1:8 : s dng Timer 16 bits
www.biglab.edu.vn
s dng ngun xung ngoi (t chn T1CKI) s dng ngun xung t thch anh
Khai bo s dng thch anh ngoi: T1_OSC1EN_ON : s dng thch anh ngoi khng s dng thch anh ngoi
T1_OSC1EN_OFF :
Khai bo s dng b ng b xung: T1_SYNC_EXT_ON T1_SYNC_EXT_OFF Hnh 3.1 : : s dng b ng b xung khng s dng b ng b xung
73
www.biglab.edu.vn
OpenTimer3(config): Khai bo s dng Timer3 Timer3 Interrupt: TIMER_INT_ON : s dng ngt Timer1 khng s dng ngt Timer1
TIMER_INT_OFF : Khai bo s bits s dng: T3_8BIT_RW T3_16BIT_RW Ngun xung s dng: T3_SOURCE_EXT : T3_SOURCE_INT : Prescaler: T3_PS_1_1 T3_PS_1_2 T3_PS_1_4 T3_PS_1_8 : : : :
: :
s dng ngun xung ngoi (t chn T1CKI) s dng ngun xung t thch anh
Khai bo s dng b ng b xung: T1_SYNC_EXT_ON T1_SYNC_EXT_OFF : : s dng b ng b xung khng s dng b ng b xung
CloseTimerX(): Tt khng s dng b Timer1/2/3 ReadTimerX() : c gi tr t b Timer1/2/3 WriteTimerX(): Ghi gi tr v Timer1/2/ Quy trnh khai bo Timer cho ng dng: OpenTimerX(config); // Khi to Timer WriteTimerX(...);
Nhm bin son BigLab 73
74
Nhm o To K Thut BigLab ..... Bin = ReadTimerX();// c ly gi tr Timer .... CloseTimerX(); // ng TimerX khi khng s dng
www.biglab.edu.vn
75
www.biglab.edu.vn
12.2.3 Gi tr tham chiu: Gi tr tham chiu l cc gi tr cao nht v thp nhp ca b chuyn i ADC. Ta xt n mt v d sau y: 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 5 1 3 0 0 614
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:
Nhm bin son BigLab Ch bin ThS. V Xun Quc vxquoc@gmail.com
76
www.biglab.edu.vn
1.5
438
Vi b ADC 10 bits ta s cn 11 TAD chuyn i. Sau y ta v d cho thi gian chuyn i ca mt b ADC 10 bits:
77
www.biglab.edu.vn
// GV ng lp hng dn thm v config bit PBADEN 12.3.4 S dng th vin ADC trong C18 Chng ta s bt u tm hiu cch s dng cc hm trong th vin ADC ca PIC 18F4620. Trc tin, mun s dng th vin ADC trong MPLAB, chng ta phi khai bo: #include <adc.h> Vi cc hm sau: OpenADC(config1, config2, portconfig): Khi to ADC. Config1:
Khai bo Tad: ADC_FOSC_2 ADC_FOSC_4 ADC_FOSC_8 ADC_FOSC_16 ADC_FOSC_32 ADC_FOSC_64 : : : : : : Tad Tad Tad Tad Tad Tad = = = = = = 32Fosc 64Fosc 2Fosc 4Fosc 8Fosc 16Fosc
78
Nhm o To K Thut BigLab Khai bo kiu kt qu ADC: ADC_RIGHT_JUST : ADC_LEFT_JUST : bit thp bit cao bit cao bit thp
www.biglab.edu.vn
Khai bo thi gian tnh ton kt qu: ADC_0_TAD ADC_2_TAD ADC_4_TAD ADC_6_TAD ADC_8_TAD ADC_12_TAD ADC_16_TAD ADC_20_TAD Config2: : Tacq = : : : : : : : 0 Tad 2 Tad 4 Tad 6 Tad 8 Tad 12 Tad 16 Tad 20 Tad
ADC_CH0 ADC_CH1 ADC_CH2 ADC_CH3 ADC_CH4 ADC_CH5 ADC_CH6 ADC_CH7 ADC_CH8 ADC_CH9 ADC_CH10 ADC_CH11
: : : : : : : : : : : :
Knh 0 (AN0) Knh 1 (AN1) Knh 2 (AN2) Knh 3 (AN3) Knh 4 (AN4) Knh 5 (AN5) Knh 6 (AN6) Knh 7 (AN7) Knh 8 (AN8) Knh 9 (AN9) Knh 10 (AN10) Knh 11 (AN11)
Ch bin ThS. V Xun Quc vxquoc@gmail.com
79
www.biglab.edu.vn
: : : :
Khai bo s dng ngun chun: ADC_VREFPLUS_VDD : S dng ngun dng chun bn ngoi S dng ngun m chun t bn ngoi
ADC_VREFMINUS_VDD :
portconfig: khai bo s dng bao nhiu knh ADC (0 15). SetChanADC(channel): chn knh ADC (nu s dng nhiu knh ADC). channel: ADC_CH0 ADC_CH1 ADC_CH2 ADC_CH3 ADC_CH4 ADC_CH5 ADC_CH6 ADC_CH7 ADC_CH8 ADC_CH9 ADC_CH10 : : : : : : : : : : : Knh 0 (AN0) Knh 1 (AN1) Knh 2 (AN2) Knh 3 (AN3) Knh 4 (AN4) Knh 5 (AN5) Knh 6 (AN6) Knh 7 (AN7) Knh 8 (AN8) Knh 9 (AN9) Knh 10 (AN10)
80
www.biglab.edu.vn
ADC_CH11
Knh 11 (AN11)
BusyADC() : Kim tra xem ADC c bn hay khng ??? ConvertADC() : Chuyn i analog ReadADC(): c gi tr t knh ADC. CloseADC(): Kt thc vic s dng knh ADC. digital.
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 Ch bin ThS. V Xun Quc vxquoc@gmail.com
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
84
Nhm o To K Thut BigLab Khai bo s bits truyn nhn. Khai bo ngt. Khai bo tc Baud Quy trnh truyn d liu: Gn gi tr cho thanh ghi TXREG. Ch cho vic truyn thnh cng. Quy trnh nhn d liu: Thng chng ta lm theo 2 cch: Cch 1: S dng ngt RCIE Cch 2: Kim tra xem c ngt RCIF c bt ln hay khng
www.biglab.edu.vn
13.3.2 Th vin USART trong C18 #include <usart.h> Cc hm thng dng trong MPLAB bao gm cc hm sau: - OpenUSART(config, baud_rate): Khai bo giao tip USART: Config: Khai bo ngt sau khi truyn d liu: USART_TX_INT_ON : S dng ngt khi truyn d liu USART_TX_INT_OFF : Khng s dng ngt khi truyn d liu.
Khai bo ngt sau khi nhn d liu USART_RX_INT_ON : S dng ngt khi nhn d liu. USART_RX_INT_OFF : Khng s dng ngt khi nhn d liu.
85
www.biglab.edu.vn
Khai bo truyn nhn ng b (ch p dng khi chng ta s dng truyn nhn ng b) USART_SYNC_SLAVE : ng b truyn Slave USART_SYNC_MASTER : ng b truyn Master
Khai bo ch nhn d liu:5 USART_SINGLE_RX : Khai bo ch nhn d liu n USART_CONT_RX : Khai bo ch nhn d liu lin tc
Khai bo ch baud rate USART_BRGH_HIGH : Khai bo baud rate mc cao USART_BRGH_LOW : Khai bo baud rate mc thp baud_rate: Khai bo thng s baud rate ca h thng: Truyn nhn bt ng b, ch baud rate mc cao: FOSC / (16 * (spbrg + 1))
Truyn nhn ng b: FOSC / (4 * (spbrg + 1)) CloseUSART(): Tt giao tip USART. BusyUSART(): Kim tra xem d liu gi xong cha ??? putcUSART(data): gi mt byte k t. putsUSART(data): gi mt chui k t. DataRdyUSART(): Kim tra xem nhn c d liu cha ??? getcUSART(): nhn mt byte d liu getsUSART(data,length): nhn mt chui d liu, vi chiu di length. Cch s dng chng trnh m phng cng COM. // GV hng dn s dng ti lp.
86
www.biglab.edu.vn
87
Nhm o To K Thut BigLab 14.2.2 ng dng trong VK: 14.2.2.1 Chc nng Capture:
www.biglab.edu.vn
88
www.biglab.edu.vn
Cng thc tnh ton: (trnh by trong chng trnh) Khai bo config bit CCP2MX: // GV hng dn ti lp
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
93
www.biglab.edu.vn
Ch Slaver: SLV_SSON SLV_SSOFF : : s dng chn SS khng s dng chn SS (chn chn khc lm SS)
: :
94
www.biglab.edu.vn
(qu trnh gi master phi c khi u v kt thc bng vic kch xung v chn SS) DataRdySPI() : xt xem d liu sn sng nhn cha ??? (thng ch p dng cho
vic gi nhn mt byte d liu) data = getcSPI(): nhn mt byte d liu. getsSPI(data_string,length) CloseSPI(): : nhn mt string vi chiu di length. Tt giao tip SPI
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 Ch bin ThS. V Xun Quc vxquoc@gmail.com
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).
96
www.biglab.edu.vn
15.6.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).
97
www.biglab.edu.vn
EEADR, EEADRH: y l cp thanh ghi nh a ch ca vng nh cn truy xut trong EEPROM. Ty theo dung lng ca tng dng m s ng a ch c th khc nhau (ti
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. EECON1 v EECON2: l b thanh ghi iu khin hot ng ca Data EEPROM. Trong thanh ghi EECON2 khng phi l thanh ghi vt l cho nn ngi dng khng th tng tc
98
www.biglab.edu.vn
Bi 16 : BI TP TNG KT
16.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).
99
www.biglab.edu.vn
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