Professional Documents
Culture Documents
B mn iu khin t ng
N TT NGHIP
ti:Thit k b iu khin PID s trn nn vi iu khin PIC
Gio vin hng dn : PGS.TS Phan Xun Minh Sinh vin thc hin : Phm Vn Cng Hong Vn Qun Lp : KT1 Kho : 49
H Ni 5 - 2009
Mc lc
Li m u .......................................................................................... 5 Li cm n........................................................................................... 6
Chng 1 : H vi iu khin PIC v vi iu khin PIC18F4520 ..........................7 1.1 Gii thiu chung .......................................................................................... 7 1.2 . Vi iu khin Pic18F4520 ......................................................................... 8 1.2.1. T chc b nh (Memory Organization) ........................................... 13 1.2.2. 8 x 8 HARDWARE MULTIPLIER ................................................... 22 1.2.3. Ngt (Interrupts) ................................................................................. 23 1.2.4. Cng vo ra (I/O Port)........................................................................ 32 1.2.5. B nh thi (Timer) .......................................................................... 33 1.2.6. B truyn nhn d liu ng b (EUSART-Enhanced Universal Synchronous Asynchronous Receiver Transmitter)..................................... 37 1.2.7. Module chuyn i tong t sang s 10 bit (A/D) ............................ 50 Chng 2 : Thit k b iu khin PID s...........................................................57 2.1 Thit k m hnh phn cng mch iu khin........................................... 57 2.1.1. Yu cu thit k .................................................................................. 57 2.1.2. Cc khi chc nng trn kit iu khin.............................................. 58
a) Khi vi iu khin trung tm....................................................................................58 b) Khi giao tip my tnh qua cng ni tip ...............................................................59 c) Khi bn phm ..........................................................................................................60 d) Khi hin th LCD 2x16(2 dng, 16ct) ..................................................................61 e) Khi mch ng lc iu khin................................................................................62 f) Khi ngun 12V/5V..................................................................................................62 g) Cc khi khc ...........................................................................................................63
2.2 Thit k phn mm trn nn vi iu khin PIC ......................................... 64 2.2.1. Yu cu phn mm ............................................................................. 64 2.2.2. Gii thut chng trnh ...................................................................... 65
a) Loop iu khin........................................................................................................65 b) Thut ton PID s.....................................................................................................66
2.2.3. Thit k phn mm iu khin v gim st trn my tnh ................. 69 2.3 Kit iu khin............................................................................................. 71 Chng 3 : ng dng b iu khin PID s iu khin ng c mt chiu .......72 3.1 i tng iu khin ................................................................................. 72 3.1.1. Thng s k thut ................................................................................ 72 Phm Vn Cng - Hong Vn Qun. Lp KT1-K49
1
3.1.2. Nhn dng m hnh ng hc ca ng c in mt chiu ............... 72 3.1.3. Thu thp d liu vo/ra ca ng c in mt chiu t thcnghim. 72 3.1.4. Nhn dng ng c in mt chiu bng Toolbox Identification cu Matlab........................................................................................................... 74 3.1.5. nh gi cht lng m hnh ............................................................. 76 3.2 Thit k lut iu khin PID...................................................................... 77 3.2.1. Phng php Ziegler-Nichols1 .......................................................... 77 3.2.2. Phng php IMC .............................................................................. 77 3.2.3. M phng v nh gi cht lng b iu khin ............................... 78 3.3 Thit b chp hnh(IC L298) ..................................................................... 78 3.4 Cm bin (Encoder) ................................................................................... 81 3.5 H thng iu khin................................................................................... 84 3.6 Mt s hnh nh v Kit iu khin ng c s dng vi iu khin PIC .. 86 3.7 :Kt qu thc nghim................................................................................. 87 3.8 So snh kt qu m phng v thc t ........................................................ 88
MC LC HNH V
Hnh 1.1 S khi kin trc vi iu khin PIC18F4520 ............................................. 9 Hnh 1.2 S chn vi iu khin Pic18F4520 ........................................................... 10 Hnh 1.3: T chc b nh chng trnh ....................................................................... 13 Hnh 1.5: Clock/Instruction Cycle................................................................................ 15 Hnh 1.6 Instruction Pipeline Flow .............................................................................. 15 Hnh 1.7 Instruction In Program Memory.................................................................... 16 Hnh 1.8 S cu trc b nh d liu Pic18F4520 ................................................... 16 Hnh 1.9 S cu trc thanh ghi ca Pic18F4520 ..................................................... 17 Hnh 1.10 Pic 18 Interrup logic .................................................................................... 23 Hnh 2.1 M hnh khi mch iu khin...................................................................... 57 Hinh 2.2.S khi vi iu khin trung tm ............................................................... 58 Hinh 2.3 Mch np cho vi iu khin trung tm .......................................................... 58 Hinh 2.4 Khi giao tip my tnh Max232................................................................... 59 Hnh 2.5 : Cu to cng COM...................................................................................... 59 Hinh 2.6 Modul bn phm ............................................................................................ 60 Bng s lc chc nng LCD 2x16 ............................................................................. 61 Hnh 2.7 Khi hin th LCD ......................................................................................... 62 Hinh 2.8 Khi thit b chp hnh.................................................................................. 62 Hnh 2.9 S khi ngun........................................................................................... 62 S nguyn l kit iu khin..................................................................................... 63 S mch in hai lp ................................................................................................... 64 Hnh 2.10 Lu loop iu khin................................................................................ 65 Hnh 2.11 Lu hm ngt dng to chu l trch mu................................................. 66 Hnh 2.12 S b iu khin PID s ......................................................................... 67 Hnh 2.13 Chng bo ho tch phn ............................................................................. 68 Hnh 2.14. Giao din giao tip PC................................................................................ 69 Hnh 3.1 ng c s dng trong n......................................................................... 72 Hinh 3.2 S thu thp d liu nhn dng .................................................................. 72 Hnh 3.2 c tnh thu thp d liu nhn dng............................................................. 73 Hnh 3.3Chn u vo v m hnh nhn dng ca i tng ...................................... 75 Hnh 3.4Phng thc nhn dng v nh gi m hnh thu c ................................. 75 Hnh 3.5 c tnh qu i tng sau khi nhn dang ............................................... 76 Hnh 3.6 Sai lch m hnh nhn dng........................................................................... 76
Hnh 3.7 M phng trn Simulink cc phng php iu khin ................................ 78 Hnh 3.9 c tnh m phng ........................................................................................ 78 Hnh 3.10 S chn L298.......................................................................................... 79 Hnh 3.11: Cc ch ca L298 .................................................................................. 80 Hnh 3.12 : S gii php .......................................................................................... 81 Hnh 3.13 : M hnh1 - En coder quang tng i ...................................................... 81 Hnh 3.14 : Phng thc hot ng Encoder quang tng i.................................... 82 Hnh 3.15 : M hnh 2 -En coder quang tng i ...................................................... 82 Hnh 3.16 : S xung ca En coder quang tng i(m hnh 2) ............................ 83 Hnh 3.17 S h thngiu khin ng c .............................................................. 84 Hnh 3.18 Cu trc h thng iu khin....................................................................... 84 Hnh 3.19 Cu trc khi iu khin ng c................................................................ 85 Mt s hnh nh mch iu khin ng c mt chiu.................................................. 86 Hnh 3.20 c tnh vi b iu khin PI...................................................................... 87 Hnh 3.21 c tnh vi b iu khin PID ................................................................... 87 Hnh 3.22 H thng khi c nhiu................................................................................. 88 Hnh 3.23 c tnh khi h thng c thay i gi tr t ............................................... 88
Li m u
Khoa hc cng ngh hin i c nhng bc tin nhanh v xa i theo l nhng thnh tu ng dng trong mi lnh vc di sng, cng nghip. K thut iu khin trong tin trnh hon thin l thuyt cng to cho mnh nhiu pht trin c ngha. By gi khi nhc ti iu khin con ngi dng nh hnh dung n s chnh xc, tc x l v thut ton thng minh ng ngha l lng cht xm cao hn. C th ni trong lnh vc iu khin v trong cng nghip th b iu khin PID c ng dng kha rng ri, mt gi php a nng chocc ng dng c Analog cng nh Digital. Thng k cho thy c ti hn 90% cc b iu khin s dng trong thc t l PID. R rng nu c thit k v chn la cc thng s hp l cho b iu khin PID th vic t c cc ch tiu cht lng mong mun l kh thi B iu khin PID cng gip ngi s dng d dng tch hp cng nh chn cc lut iu khin nh : t l(P), tch phn(I), t l tch phn(PI), t l vi phn(PD) sao cho ph hp i vi cc i tng iu khin. Nhiu qu trnh trong cng nghip vic s dng b iu khin PID l khng th thay th nh khng ch nhit , mc, tc ? Ngay c nhng l thuyt iu khin hin i cng khng cho ta nhng hiu qu cao nh b iu khin PID mang li.Ngoi ra b iu khin PID cn ng dng nhiu trong iu khin thch nghi,bn vng vn mang li hiu qu cao trong cc c cu chnh nh. Bi ton thit k v iu khin ng c mt chiu l bi ton c bn v quen thuc trong ngnh iu khin t ng. C th thit k iu khin cho i tng ngc in mt chiu theo nhiu phng php nh :dng PLC & bin tn, in t cng sut, vi iu khin Mi phng php c u v nhc im khc nhau nhng u c mc ch n nh v iu khin c tc ng c. Ngy nay vi iu khin pht trin su rng v ngy cng ng dng nhiu trong ci t thit k b iu khin cho cc i tng cng nghip. Trn c s mun tm hiu v lnh vc vi iu khin chng em chn ti: Thit k b iu khin PID s trn nn vi iu khinPIC. V kh nng v thi gian c hn nn khng th trnh khi nhng thiu st trong n. Do vy chng em rt mong c thy c v bn b ng gp xy dng n ca chng em c hon thin hn. H Ni, ngy thng nm 2009 Sinh vin Phm Vn Cng Hong Vn Qun Lp KT1 - K49
Li cm n
u tin chng em xin chn thnh gi li cm n ti nh trung, khoa in, b mn KT, cc thy c dy d v du dt chng em trong sut 5 nm hc va qua c c nhng kin thc chuyn mn c s sau ny chng em c th vo i lm vic, s dng c ch cho x hi. thc hin thnh cng n l s hng dn, ch bo tn tnh ca PGS.TS Phan Xun Minh, Ngi hng dn tn tnh , gip chng em nh hng, gp v cung cp tng cng nh ch dn ti liu v cc tin trnh thc hin n .S hng dn ca c l mt yu t quan trng chng em c th hon thnh n ny . Cui cng chng em xin chn thnh gi nhng li cm n su sc n cha m v gia nh, nhng ngi lun st cnh cng chng em, nui dng chm sc chng em to iu kin tt nht cho chng em hc tp c kt qu nh ngy hm nay. Chng em xin chn thnh cm n
Vi iu khin Pic
y l h VK c ch to theo kin trc RISC (Reduced Intruction Set Computer) c cu trc kh phc tp. Ngoi cc tnh nng nh cc h VK khc, n cn tch hp nhiu tnh nng mi rt tin li cho ngi thit k v lp trnh. Pic18F4520 nm trong dng sn phm PIC18F2420/2520/4420/4520 ca nh sn xut Microchip vi c im 28/40/44 -Pin Enhanced Flash Microcontrollers with 10Bit A/D and nanoWatt Technology. Dng sn phm ny c nhiu ci tin ng k v tnh nng so cc dng Pic trc nh : - B nh chng trnh c tng cng (16Kbytes for PIC18F2420/4420 devices and 32Kbytes for PIC18F2520/4520 devices).
Vi iu khin Pic
I/O ports (3 bidirectional ports on 28-pin devices, 5 bidirectional ports on 40/44-pin devices). Tng cng modul CCP. S dng cng ngh nanoWatl
Dng sn phm ny ni chung c nhiu s tng ng v tnh nng nhng c th chia lm hai nhm Pic18F2420/2520 vi 28 chn v Pic 18F4420/4520 vi 40 hoc 44 chn ghp ni. Phn ny ch yu chng ta tm hiu Pic18F4520 nhng nhng c im cc Pic khc thuc dng ny s hon ton tng t vi cc k hiu tng ng. Trong n chng ta quan tm ch yu Pic18F4520 loi PDIP s dng trong mch thit k.
75 lnh mnh, hu ht cc lnh thc hin trong bn chu k xung. Tc thc hin ln ti 10 triu lnh trong 1s vi tn s 40Mhz C b nhn cng . - Cc b nh chng trnh v d liu c nh 32 Kbytes b nh flash c kh nng t lp trnh trong h thng c th thc hin c 100.000 ln ghi/xa 256 bytes EEPROM c th thc hin c 1.000.000 ln ghi/xa256 bytes SRAM - Nhng ngoi vi tiu biu 4 b nh thi/b m 8 bit vi cc ch t l t trc v ch so snh. B m thi gian thc vi b to dao ng ring bit 2 knh PWM 13 knh ADC 10 bit B truyn tin ni tip USART kh trnh Watchdog Timer kh trnh vi b to dao ng bn trong ring bit B so snh tng t - Cc c im c bit khc Power on Reset v d Brown out kh trnh
Vi iu khin Pic
B to dao ng RC c nh c bn trong Cc ngun ngt bn trong v bn ngoi - I/O v cc kiu ng gi 32 ng I/O kh trnh ng gi 40-pin PDIP, 44-lead TQFP, v 44-pad MLF
Vi iu khin Pic
S chn ca cc vi iu khin Pic18F4420/4520
Hnh 1.2 S chn vi iu khin Pic18F4520 Sau y l gii thiu cu to chn loi 40 chn (40 Pin PDIP):
10
Vi iu khin Pic
Chn 13(OSC1/CLKI/RA7): vi OSC1l u vo b dao ng thch anh hoc l u vo ngun xung t bn ngoi, khi ta ni dy vi cc thit b tng t th u vo ny dng ST( Schmitt Trigger input ith CMOS levels).CLKI l u vo CMOS cho ngun xung bn ngoi v lun c ghp ni vi chn OSC1. Cn RA7 l chn vo ra s dng chung . Chn 14(OSC2/CLKO/RA6): OSC2 l u ra b dao ng thch anh c ni vi thch anh hoc b cng hng d la chn dng b dao ng thch anh. CLK0 c tn s bng tn s ca OSC1 rng chu k lnh, RA6 l u vo ra chung. Cc chn cng vo ra hai chiu Port B. Port B c th lp trnh bng phn mm khi cho ko u vo bn trong yu ln trn ton b u vo. Chn 33(RB0/INT0/FLT0/AN12): Vi RB0 l cng vo ra s, INT0 l u vo ngt ngoi Interrup 0, FLT0 l u vo bo li PWM c tng cng CCP1, AN12 u vo tng t Input 12. Chn 34(RB1/INT1/AN10): RB1 l u vo ra s, INT1 u vo ngt ngoi Interrup1, AN10 u tng t Input 10. Chn 35(RB2/INT2/AN8): RB2 l u vo ra s, INT2 u vo ngt ngoi Interrup2, AN8 u tng t Input 8. Chn 36 (RB3/AN9/ccp2): RB3 l u vo ra s, AN9 u tng t Input 9, CCP2 ( Capture 2 input/Compare 2 output/PWM2 output.) Chn 37(RB4/KBI0/AN11):): RB4 l u vo ra s, KBI0 thay i m ngt, AN11 u tng t Input 9. Chn 38(RB5/KBI1/PGM): RB5 u vo ra s, KBI1 thay i m ngt, PGM cho php c th lp trnh ISCPTM in p thp. Chn 39(RB6/KBI2/PGC): RB6 l u vo ra s, KBI2 thay i m ngt, PGC chn dng trong mch chy v xung lp trnh ICSP. Chn 40(RB7/KBI3/PGD): RB7 u vo ra s, KBI3 thay i m ngt, PGD chn dng trong mch chy v xung lp trnh ICSP. Cc chn cng Port C Chn 15(RC0/T1OSO/T13CKI):RC0 u vo ra s, T1OSO u ra b dao ng Timer1, T13CKI u vo xung bn ngoi Timer1/Timer3. Chn 16(RC1/T1OSI/CCP2): RC1 u vo ra s, T1OSI u vo b dao ng Timer1, CCP2(Capture 2 input/Compare 2 output/PWM2 output.). Chn 17(RC2/CCP1/P1A): RC2 l u vo ra s, CCP1(Capture1 input/Compare 1 output/PWM1 output.), P1A u ra tng cng CCP1. Chn 18(RC3/SCK/SCL): RC3 l u vo ra s, SCK u vo ra chui xung vo ra cho SPI la chn, SCL u vo ra a chui xung vo ra cho I2CTM la chn.
11
Vi iu khin Pic
Chn 23(RC4/SDI/SDA): RC4 l u vo ra s, SDI u vo d liu API, SDA u vo ra d liu cho I2C. Chn 24(RC5/SDO): RC5 u vo ra s, SDO u ra d liu SPI. Chn 25(RC6/TX/CK): RC6 u vo ra s, TX u ra chuyn i d b EUSARRT, CK du vo ra xung ng b EUSART. Chn 26(RC7/RX/DT): RC7 u vo ra s, RX u vo nhn d b EUSART, DT u vo ra d liu ng b EUSART. Cc chn cng Port D( Port D c th vo ra hai hng hoc cng song song ph thuc(PSP) cho giao din vi x l v khi cc u vo phi l TTL.. Chn 19(RD0/PSP0): RD0 u vo ra s, PSP0 cng d liu song song ph thuc. Chn 20(RD1/PSP1): RD1 u vo ra s, PSP1cng d liu song song ph thuc Chn 21(RD2/PSP2): RD2u vo ra s, PSP2 cng d liu song song ph thuc Chn 22(RD3/PSP3): RD3 u vo ra s, PSP3 cng d liu song song ph thuc Chn 27(RD4/PSP4): RD4 u vo ra s, PSP4 cng d liu song song ph thuc Chn 28(RD5/PSP5/P1B): RD5 u vo ra s, PSP5 cng d liu song song ph thuc, P1B u ra c tng cng CCP1. Chn 29(RD6/PSP6/P1C): RD6 u vo ra s, PSP6 cng d liu song song ph thuc, P1C u ra c tng cng CCP1. Chn 30(RD7/PSP7/P1D): RD7 u vo ra s, PSP7 cng d liu song song ph thuc, P1D u ra c tng cng CCP1. Cc chn cng Port E Chn 8(RE0/ RD /AN5): RE0 u vo ra s, RD u vo iu khin c cho cng PSP, AN5 u vo tng t Input5. Chn 9(RE1/ WR /AN6): RE1 u vo ra s, WR u vo iu khin vit d liu cng PSP, AN6 u vo tng t Input6. Chn 10(RE2/ CS /AN7): RE2 u vo ra s, CS iu khin chn Chip cho cng PSP, AN7 u vo tng t Input7. - u RE3 nm chn 1 Cc chn khc Chn 12,31(VSS): ni t chun cho I/O v logic. Chn 11,32(VDD): cungcp ngun dng cho I/O v logic. Loi 44 chn c thm mt s chn ph khc khi cn thit ta c th d dng tra trong DataSheet. Chi tit hn chng ta c th thy qua s khi ca Pic18F4420/4520 trong ti liu do microchip cung cp s c hon ton y thng tin. c im cu to.
12
Hnh 1.3: T chc b nh chng trnh T chc b nh chng trnh(Program Memory Organization) Dng vi iu khin Pic18xxxx l thit b vi 21bit b m chng trinh PC (Program counter) c th qun l 2Mbyte b nh chng trnh. Vi Pic18F4520 c 32Kbytes b nh Flash c th lu tr ln ti 16,384 cu lnh n, dng Pic ny c hai vector ngt: Reset vector c a ch 0000h v Interrupt vector a ch 0008h v 0018h. B m chng trnh PC (Program Counter) PC c rng 21 bits phn chia trn 3 thanh ghi 8 bits: thanh ghi PCL, thanh ghi PCH, thanh ghi PCU. D liu bytes a ch ca PC c lu trong b nh chng trnh. Khi s dung cn lu ti cu trc lnh c lm thay i gi tr PC hay khng.
13
Vi iu khin Pic
Khi phc da ch ngn xp (RETURN ADDRESS STACK) y ta c th cho php lu tr gi 31 chng trnh v cc ngt xy ra. Trong thc thi ngn xp cu trc lnh CALL v RCALL l c quan tm. S ngn xp dng:
Bit 7 (STKFUL): bit c bo ngn xp y Gi tri 1 c ngha l ngn xp y hoc trn Gi tr 0 th ngn xp vn cha b y hoc trn Bit 6 (STKUNF): bit c bo trn di Gi tr 1: xy ra trn di Gi tr 0: khng c trn di Bit 5 (Unimplementad): mang gi tr 0 Bit 4-0 (SP<4:0>:Cc bit xc nh con tr ngn xp Chng ta c th xa bit 6 v bit 7 nh phn mm hoc bi mt POR FAST REGISTER STACK Nhm thanh ghi ny gm c cc thanh ghi: Status, WREG, BSR gip vic khi phc nhanh lu chn cho cc ngt. V d mt chng trnh:
14
Vi iu khin Pic
Vic qun l tt b nh chng trnh s gip ta thc hin chng trnh tt hn cng nh ti u cu lnh. Chu k lnh Pic 18Fxxx Bt k mt vi iu khin Pic no khi nhn mt xung t bn trong hay bn ngoi u x l theo mt chu k gm 4 bc. H 18Fxxxx cng vy chu k lnh c x l song song (Pipelining) qua 4 bc Q1,Q2,Q3,Q4.
15
Vi iu khin Pic
Hnh 1.7 Instruction In Program Memory T chc d liu b nh(Data Memory Organization) Pic18Fxxxx l h Statis Ram mi thanh ghi b nh d liu c 12 bit a ch, cho php truy nhp ti 4096 bytes d liu b nh. Khng gian b nh chia lm 16 bank gm 256 byte mi bank Pic18F4520 nh s pha sau. B nh d liu bao gm : thanh ghi chc nng c bit (SFRs), thanh ghi mc ch chung (GPRs). Thanh ghi SFR dng iu khin trng thi v chc nng thit b ngoi vi, trong khi thanh ghi GPR dng lu tr hoc lm vng nh tm thi ang hot ng ca cc ng dng.
Hnh 1.8 S cu trc b nh d liu Pic18F4520 Theo cu trc lnh v kin trc dng Pic18Fxxxx cho php cc bank hot ng ng thi. Ton b b nh d liu c th cho php truy nhp c hng, v hng hay a ch c ch s, c im chung ca cc thanh ghi l cho php x l trong mt chu k
16
Vi iu khin Pic
n. Pic 18Fxxxx cung cp mt AccesBank gm 256 byte b nh cho php truy cp nhanh ti SFRs v phn Bank0 ca GPR nu khng s dng BSR. Chi tit cc bank thanh ghi v chc nng ta c th theo di k hn trong dataSheet Sau y l mt s cu trc cc thanh ghi in hnh:
Hnh 1.9 S cu trc thanh ghi ca Pic18F4520 Thanh ghi Status (Status Register)
Bit 7-5 (Unimplemented): mang gi tr 0 Bit 4 (N): bit xc nh du(Negative bit) dc s dng cho s c du(s b 2), n c xc dnh khi kt qu mang du m(ALU MSB=1) Gi tr 1: kt qu l m Gi tr 0: kt qu l dng Bit 3 (OV): bt bo trn(overflow bit) c s dng cho s c du (s b 2), n xc nh bo trn cho di 7 bit ci l nguyn nhn thayi trng thi v du bit 7. Gi tr 1: xy ra trn Gi tr 0 : khng xy ra trn Bit 2 (Z): bt khng (Zero bit) Gi tr 1: kt qu cc php ton s hc v logic l bng 0 Gi tr 0 : kt qu cc php ton khc 0 Bit 1 (DC): Digit Carry/ borrow bit. S dng cho cc lnh ADDWF, ADDLW, Gi tr 1: xy ra vic thao tc 4 bit thp.
SUBLW v SUBWF
17
Vi iu khin Pic
Gi tr 0 : khng xy ra vic thao tc 4 bit thp. Bit 1 (DC): Carry/ borrow bit. S dng cho cc lnh ADDWF, ADDLW, Gi tr 1: xy ra vic thao tc bit quan trng. Gi tr 0 : khng xy ra vic thao tc vi bit quan trng. Cc kiu a ch d liu(Data Addressing Modes) C bn kiu ch nh sau: a ch c sn (Inherent addressing) a ch bng ch (Literal addressing) a ch c hng (Direct addressing) a ch v hng (Indirect addressing) Cc ch ny c ch a ch theo hng khi s dng c lin h thanh ghi FSR
SUBLW v SUBWF
B nh d liu v cu trc lnh c m rng(Data Memory and the Extended Instruction Set) Pic 18 c kh nng cho ta m rng cu trc lnh nh Access Bank v cho ta gp di lnh khi la chon a ch khng gian b nh. N c th mang li nhiu ngha v kch thc b nh. Vi ch ny ch yu thay i cu trc kiu a ch c hng v v hng cn hai ch a ch bng ch v c sn l khng thay i, c th ta c th theo i nh hnh v
18
Bng vit hot ng lu tr d liu t b nh d liu htng qua gi trong b nh chng trnh:
19
Vi iu khin Pic
Control Registers C bn thanh ghi iu khin: EECON1 register EECON2 register TABLAT (TABLE LATCH ) register TBLPTR(TABLE POINTER) registers Ta a ra thanh ghi EECON1 v d:
Bit 7 (EEPGD): bit la chn b nh Flash v b nh d liu EEPROM Gi tr 1:Cng vo cho b nh Flash. Gi tr 0: Cng vo cho b nh EEPROM. Bit 6 (CFGS): bit la chn b nh Flash , b nh d liu EEPROM hoc thanh ghi cu hnh (Configuration register): Gi tr 1:Cng vo cho thanh ghi cu hnh. Gi tr 0: Cng vo cho b nh EEPROM hoc b nh Flash . Bit 5 (Unimplemented): mang gi tr 0 Bit 4 (FREE): bit cho php xa b nh Flash theo hng: Gi tr 1: Xo b nh chng trnh theo a ch hng bi TBLPTR trn c s lnh WR k tip. Gi tr 0: Ch thc hin hot ng vit. Bit 3 (WRERR): bit c bo li trren b nh Flash v b nh d liu EEPROM. Gi tr 1: Mt hot ng vit kt thc sm. Gi tr 0: Hot ng vit c hon tt. Bit 2 (WREN): bt cho php hot ng vit trn b nh Flash v b nh d liu EEPROM. Gi tr 1: Cho php vit theo chu k trn b nh Flash v b nh d liu EEPROM. Gi tr 1: Ngn cn vit theo chu k trn b nh Flash v b nh d liu EEPROM. Bit 1 (WR): bit iu khin hot ng vit. Gi tr 1: Bt u chu k xa/vit d liu trn b nh d liu EEPROM hoc b nh chng trnh. Gi tr 0: Chu k vit trn b nh EEPROM hon tt. Bit 0 (RD): Bit iu khin hot ng c. Gi tr 1: Bt u hot ng c d liu EEPROM. Gi tr 0: Cha bt u hot ng c d liu. Ta c th xc nh hoc iu khin cc bit 0 v bit 1 nh phn mm.
20
Vi iu khin Pic
Reading the Flash Program Memory Khi c d liu chng ta s dng cu trc lnh TBLRD ly d liu t b nh ti b nh RAM. Hot ng theo hnh sau:
Erasing Flash Program Memory Vic thc hin xo d liu c th thng qua ngi lp trnh hoc thng qua iu khin ISCP. Chng ta c th xo khi nh nht 32 t ti 64 byte, c kh nng cho ta xo khi ln nhng thng qua cng iu khin. Hot ng ny c h tr t thanh ghi EECON1. Writing to Flash Program Memory Ta c th thc hin vit d liu t bn trong ti d liu cn thit ti b nh. kh nng vit c th t 16 t ti 32 byte v thng qua bng vit vi h tr khong 32 thanh ghi cho lp trnh.
21
22
23
Vi iu khin Pic
By gi chng ta s tm hiu cu trc mt s thanh ghi in hnh s dng phc v hot ng ngt: INTCON Registers Thanh ghi ny cho php dc ghi cc ngt v cho php u tin ngt c c Flag bit. INTCON 1 Registers
bit 7 (GIE/GIEH): bit cho php ngt ton cc. Khi IPEN = 0: Gi tr 1: Cho php ton b hot ng ngt. Gi tr 0: Khng thc hin ton b hot ng ngt. Khi IPEN = 1: Gi tr 1: Cho php ton b hot ng ngt vi mc u tin cao. Gi tr 0: Khng thc hin ton b hot ng ngt t ngoi vi. bit 6 (PEIE/GIEL): bit cho php cc ngt t ngoi vi thc hin. Khi IPEN = 0: Gi tr 1: Cho php ton b hot ng ngt t ngoi vi. Gi tr 0: Khng thc hin ton b hot ng ngt t ngoi vi. Khi IPEN = 1: Gi tr 1: Cho php ton b hot ng ngt t ngoi vi vi mc u tin thp. Gi tr 0: Khng thc hin ton b hot ng ngt t ngoi vi vi mc u tin thp. bit 5 (TMR0IE): bit cho php ngt bo trn TMR0 Gi tr 1: Cho php ngt bo trn TMR0. Gi tr 0: Khng cho php ngt bo trn TMR0. bit 4 (INT0IE): bit cho php ngt ngoi INT0 Gi tr 1: Cho php ngt ngoi INT0 . Gi tr 0: Khng cho php ngt ngoi INT0 bit 3 (RBIE): bit cho php thay i RB Port Gi tr 1: Cho php ngt thay i RB Port . Gi tr 0: Khng cho php ngt thay i RB Port . bit 2 (TMR0IF): bit c ngt bo trnTMR0 Gi tr 1: thanh ghi TMR0 xy ra trn (c th xo bng phn mm). Gi tr 0: Khng xy ra trn thanh ghi TMR0. bit 1 (INT0IF): bit c bo ngt ngoi INT0
24
Vi iu khin Pic
Gi tr 1: xy ra ngt ngoi INT0 (c th xo bng phn mm). Gi tr 0: Khng xy ra ngt ngoi INT0. bit 0 (RBIF): bit c bo thay i RB Port Gi tr 1: c thay i trng thi ca chn mang gi tr nh nht ca RB<7:4>(c th xo bng phn mm). Gi tr 0: Khng c thay trng thi cc chn RB<7:4>. INTCON 2 Registers
bit 7 ( RBPU ): bit cho php ko ln cng PORT B. Gi tr 1: ton b PORT B khng c ko ln. Gi tr 0: Cho php ton b PORT B c ko ln bi mt gi tr cng cht ring l.. bit 6 (INTEDG0): bit la chn bin ngt ngoi s 0. Gi tr 1: tng bin ngt. Gi tr 0: gim bin ngt bit 5 (INTEDG1): bit la chn bin ngt ngoi s 1. Gi tr 1: tng bin ngt. Gi tr 0: gim bin ngt bit 4 (INTEDG2): bit la chn bin ngt ngoi s 2. Gi tr 1: tng bin ngt. Gi tr 0: gim bin ngt bit 3 (Unimplemented): mang gi tr 0 bit 2 (TMR0IP): bit u tin ngt bo trn TMR0 Gi tr 1: mc u tin cao Gi tr 0: mc u tin thp. bit 1 (Unimplemented): mang gi tr 0 bit 0 (RBIP): bit u tin ngt thay i RB Port Gi tr 1: mc u tin cao Gi tr 0: mc u tin thp. INTCON 3 Registers
25
Vi iu khin Pic
bit 7 (INT2IP): bit u tin ngt ngoi INT2. Gi tr 1: mc u tin cao Gi tr 0: mc u tin thp. bit 6 (INT1IP): bit u tin ngt ngoi INT1. Gi tr 1: mc u tin cao Gi tr 0: mc u tin thp. bit 5 (Unimplemented): mang gi tr 0 bit 4 (INT2IE): bit cho php ngt ngoi INT 2. Gi tr 1: Cho php ngt ngoi INT2 thc hin. Gi tr 0: Khng cho php ngt ngoi INT2 thc hin. bit 3 (INT1IE): bit cho php ngt ngoi INT 1. Gi tr 1: Cho php ngt ngoi INT1 thc hin. Gi tr 0: Khng cho php ngt ngoi INT1 thc hin. bit 2 (Unimplemented): mang gi tr 0 bit 1 (INT2IF): bit c bo ngt ngoi INT2 Gi tr 1: xy ra ngt ngoi INT2 (c th xo bng phn mm). Gi tr 0: Khng xy ra ngt ngoi INT2. bit 0 (INT1IF): bit c bo ngt ngoi INT1 Gi tr 1: xy ra ngt ngoi INT1 (c th xo bng phn mm). Gi tr 0: Khng xy ra ngt ngoi INT1. PIR Registers Cc thanh ghi ny xc nh c ngt cho thit b ngoi vi. Cng lc c hai thanh ghi phc v cho hai thit b ngoi vi l PIR1 v PIR2. PIR1 Registers
bit 7 (PSPIF): bit c thc hin ngt khi c/vit cng song song ph thuc (Parallel Slave Port) Gi tr 1: hot ng c hoc vit c th da ti(c th xo bng phn mm) Gi tr 0: Khng c hot dng c vit. bit 6 (ADIF): A/D Converter Interrupt Flag bit Gi tr 1: Mt hot ng chuyn i A/D hon tt (c th xo bi phn mm). Gi tr 0 : Hot ng chuyn i A/D cha hon tt. bit 5 (RCIF): bit c bo ngt nhn EUSART .
26
Vi iu khin Pic
Gi tr 1:EUSART nhn t b m v RCREG l y(c xo khi RCREG c c) Gi tr 0: EUSART nhn t b m l rng. bit 4 (TXIF): bit c bo ngt vic truyn t EUSART Gi tr 1:EUSART truyn ti b m v TXREG l y(c xo khi TXREG c vit) Gi tr 0: EUSART nhn t b m l rng. bit 3 ( SSPIF): bit c bo ngt cng Master Synchronous Serial Port Gi tr 1:Hot ng truyn/nhn hon tt (c th xa bi phn mm) Gi tr 0:ang i truyn nhn. bit 2 (CCP1IF): bit c bo ngt CCP1 La chn kiu Capture : Gi tr 1: thanh ghi TMR1 theo kiu capture xy ra (phi xo bi phn mm) Gi tr 0: Khng xy ra kiu capture trn vi thanh ghi TMR1 . La chn kiu Compare : Gi tr 1: thanh ghi TMR1 theo kiu compare xy ra (phi xo bi phn mm) Gi tr 0: Khng xy ra kiu compare trn vi thanh ghi TMR1 . La chn kiu PWM: khng s dng kiu la chon ny. bit 1 (TMR2IF):bit c bo ngt lin ktTMR2 ti PR2 Gi tr 1:Xy ra lin kt TMR2 ti PR2 (phi c xo bi phn mm) Gi tr 0:Khng xy ra lin kt TMR2 ti PR2. bit 0 (TMR1IF): bit c bo ngt trnTMR1 Gi tr 1: thanh ghi TMR1 trn (phi c xo bi phn mm) Gi tr 0: Khng c trn trn thanh ghiTMR1. PIR 2 Register
bit 7 (OSCFIF): bit c bo ngt khi c li b dao ng Oscillator Gi tr 1:thit b b dao ng li, xung u vo tc ng thay i ti INTOSC (phi c xa bi phn mm). Gi tr 0:Xung thit b hot ng. bit 6 (CMIF): Bit c bo ngt b so snh. Gi tr 1: u vo b so snh l thay i (phi xo bi phn mm). Gi tr 0: Khng c thay i u vo b so snh. bit 5 (Unimplemented): mang gi tr 0
27
Vi iu khin Pic
bit 4 (EEIF):bit c bo ngt hot ng vit d liu b nh EEPROM/Flash Gi tr 1: Hot ng vit hon tt (phi xo bi phn mm). Gi tr 0: Hot ng vit cha hon tt hoc cha bt u. bit 3 (BCLIF): bit c bo ngt c xung t Bus Gi tr 1: xy ra xung t trn Bus (phi xo bi phn mm) Gi tr 0: Khng xy ra xung t Bus. bit 2 (HLVDIF): Bit c bo ngt c d in p (High/Low-Voltage) Gi tr 1: iu kin xy ra in p mc cao/thp (hng xavs ng bi VDIRMAG bit, HLVDCON<7>) Gi tr 0: Khng xy ra vi mc in p cao/thp. bit 1 (TMR3IF): bit c bo trn TMR3 Gi tr 1: C trn trn thanh ghi TMR3 (phi xa bi phn mm) Gi tr 0: Khng c trn thanh ghi TMR3. bit 0 (CCP2IF): bit c bo ngt trn CCP2 La chn kiu Capture : Gi tr 1: thanh ghi TMR1 theo kiu capture xy ra (phi xo bi phn mm) Gi tr 0: Khng xy ra kiu capture trn vi thanh ghi TMR1 . La chn kiu Compare : Gi tr 1: thanh ghi TMR1 theo kiu compare xy ra (phi xo bi phn mm) Gi tr 0: Khng xy ra kiu compare trn vi thanh ghi TMR1 . La chn kiu PWM: khng s dng kiu la chon ny. PIE Registers Ging nh cc thanh ghi PIR nhng thanh ghi PIE dng cho php ngt thit b ngoi vi v cng gm hai thanh ghi PIE1 v PIE2. PIE1 Registers
bit 7 (PSPIE): bit cho php ngt khi c/vit qua cng song song ph thuc Gi tr 1:cho php ngt khi c/vit qua cng sng song ph thuc Gi tr 0:khng cho php ngt khi c/vit qua cng sng song ph thuc bit 6 (ADIE): Bit cho php ngt khi c chuyn i A/D Gi tr 1: cho php ngt khi c chuyn i A/D Gi tr 0: Khng cho php ngt khi c chuyn i A/D bit 5 (RCIE): Bit cho php ngt khi USART nhn Gi tr 1: cho php ngt khi EUSART nhn Gi tr 0: Khng cho php ngt khi EUSART nhn bit 4 (TXIE):Bit cho php ngt khi EUSART truyn
28
Vi iu khin Pic
Gi tr 1: cho php ngt khi EUSART truyn Gi tr 0: Khng cho php ngt khi EUSART truyn bit 3 (SSPIE): bit cho php ngt khi giao tip cng Master Synchronous Gi tr 1: cho php ngt khi giao tip cng Master Synchronous Gi tr 0: Khng cho php ngt khi giao tip cng Master Synchronous. bit 2 (CCP1IE): Bit cho php ngt CCP1 Gi tr 1: cho php ngt CCP1 Gi tr 0: Khng cho php ngt CCP1 . bit 1 (TMR2IE): bit cho php ngt khi c lin kt TMR2 ti PR2. Gi tr 1: cho php ngt khi c lin kt TMR2 ti PR2. Gi tr 0: Khng cho php ngt khi c lin kt TMR2 ti PR2. bit 0 (TMR1IE): bit cho php ngt khi c trn TMR1 Gi tr 1: cho php ngt khi c trn TMR1 Gi tr 0: Khng cho php ngt khi c trn TMR1 PIE2 Registers
bit 7 (OSCFIE): bit cho php ngt khi c li b dao ng Oscillator Gi tr 1:cho php Gi tr 0:Khng cho php bit 6 (CMIE): Bit cho php bo ngt b so snh. Gi tr 1: cho php . Gi tr 0: Khng cho php . bit 5 (Unimplemented): mang gi tr 0 bit 4 (EEIE):bit cho php bo ngt hot ng vit d liu b nh EEPROM/Flash Gi tr 1: cho php Gi tr 0: Khng cho php bit 3 (BCLIE): bit cho php bo ngt c xung t Bus Gi tr 1: cho php Gi tr 0: Khng cho php. bit 2 (HLVDIE): Bit cho php bo ngt c d in p (High/Low-Voltage) Gi tr 1: cho php. Gi tr 0: Khng cho php. bit 1 (TMR3IE): bit cho php bo trn TMR3 Gi tr 1: cho php. Gi tr 0: Khng cho php. bit 0 (CCP2IE): bit cho php bo ngt trn CCP2 Gi tr 1: cho php. Gi tr 0: Khng cho php.
29
Vi iu khin Pic
IPR Registers Ging nh cc thanh ghi PIR,PIE phuc v hot ng ngt, thanh ghi IPR dng xc nh gi tr u tin cho php ngt thit b ngoi vi v cng gm hai thanh ghi IPR1 v IPR2. IPR1 Registers
bit 7 (PSPIP): bit u tin ngt khi c/vit qua cng sng song ph thuc Gi tr 1:mc u tin cao. Gi tr 0:mc u tin thp. bit 6 (ADIP): Bit u tin ngt khi c chuyn i A/D Gi tr 1:mc u tin cao. Gi tr 0:mc u tin thp. bit 5 (RCIE): Bit cho php ngt khi USART nhn Gi tr 1:mc u tin cao. Gi tr 0:mc u tin thp. bit 4 (TXIP):Bit u tin ngt khi EUSART truyn Gi tr 1:mc u tin cao. Gi tr 0:mc u tin thp. bit 3 (SSPIP): bit u tin ngt khi giao tip cng Master Synchronous Gi tr 1:mc u tin cao. Gi tr 0:mc u tin thp. bit 2 (CCP1IP): Bit u tin ngt CCP1 Gi tr 1:mc u tin cao. Gi tr 0:mc u tin thp. bit 1 (TMR2IP): bit u tin ngt khi c lin kt TMR2 ti PR2. Gi tr 1:mc u tin cao. Gi tr 0:mc u tin thp. bit 0 (TMR1IP): bit u tin ngt khi c trn TMR1 Gi tr 1:mc u tin cao. Gi tr 0:mc u tin thp. IPR2 Registers
30
Vi iu khin Pic
bit 7 (OSCFIP): bit u tin ngt khi c li b dao ng Oscillator Gi tr 1:mc u tin cao. Gi tr 0:mc u tin thp. bit 6 (CMIP): Bit u tin bo ngt b so snh. Gi tr 1:mc u tin cao. Gi tr 0:mc u tin thp. bit 5 (Unimplemented): mang gi tr 0 bit 4 (EEIP):bit u tin bo ngt hot ng vit d liu b nh EEPROM/Flash Gi tr 1:mc u tin cao. Gi tr 0:mc u tin thp. bit 3 (BCLIP): bit u tin bo ngt c xung t Bus Gi tr 1:mc u tin cao. Gi tr 0:mc u tin thp. bit 2 (HLVDIP): Bit u tin bo ngt c d in p (High/Low-Voltage) Gi tr 1:mc u tin cao. Gi tr 0:mc u tin thp. bit 1 (TMR3IP): bit u tin bo trn TMR3 Gi tr 1:mc u tin cao. Gi tr 0:mc u tin thp. bit 0 (CCP2IP): bit u tin bo ngt trn CCP2 Gi tr 1:mc u tin cao. Gi tr 0:mc u tin thp. RCON Register Thanh ghi ny c bit c (Flag bit) s dng xc nh ngyn nhn Reset v khi dng cc trng thi Idle v Sleep. Thanh ghi ny cha bit IPEN cho php mc u tin ngt.
bit 7 (IPEN): bit cho php u tin ngt Gi tr 1:cho php mc u tin ngt Gi tr 0: khng cho php mc u tin ngt bit 6 (SBOREN): Bit cho php lp trnh phn mm BOR Vi BOREN1:BOREN0 = 01: Gi tr 1 : Cho php BOR Gi tr 0 : Khng cho php BOR Vi BOREN1:BOREN0 = 00,10or11 khng cho php v mang gi tr 0 bit 5 (Unimplemented): mang gi tr 0 bit 4 (RI): bit c ca cu trc lnh RESET Gi tr 1:Khng thc hin cu trc lnh RESET Gi tr 0: khng thc hin cu trc lnh RESET RESET thit b.
31
Vi iu khin Pic
bit 3 ( TO ):Bit c bo b nh thi Watchdog Time-out Gi tr 1:Cp ngun in bi cu trc lnh CLRWDT hoc SLEEP. Gi tr 0: Xy ra trn b nh thi WDT time-out . bit 2 (PD): Bit c bo d mt ngun Gi tr 1:Cp ngun in bi cu trc lnh CLRWDT . Gi tr 0: Thc hin thit lp bi cu trc lnh SLEEP. bit 1 (POR): bit d RESET trng thi ngun khi chy Gi tr 1:Khng xy ra RESET ngun (c thit lp bi vi chng trnh) . Gi tr 0:Xy ra RESET ngun(cn phi thit lp bi phn mm sau khi RESET xy ra) bit 0 (BOR): Bit cho bit trng thi RESETyu ngun Gi tr 1:Khng xy ra RESET yu ngun (c thit lp bi vi chng trnh) . Gi tr 0:Xy ra RESET yu ngun(cn phi thit lp bi phn mm sau khi RESET xy ra) Ngoi ra Pic18 cng cung cp cho ta cc cng c phc v ngt khc nh : INTx Pin Interrupts TMR0 Interrupt PORTB Interrupt-on-Change Context Saving During Interrupts
32
Vi iu khin Pic
bit 7 (IBF): bit bo trng thi u vo b m y. Gi tr 1:Mt t c nhn v ang ch CPU c. Gi tr 0: Khng nhn mt t no. bit 6 (OBF): bit bo trng thi u ra b m y Gi tr 1:u ra b m vn gi d vit mt t trc .. Gi tr 0: u ra b im c. bit 5 (IBOV): bit la chn kim tra d trn u vo b m Gi tr 1:xy ra hot ng vit khi m mt t trc b m cha c c(cn xo biphn mm) Gi tr 0: Khng xy ra trn. bit 4 (PSPMODE): bit la chon kiu cho cng PSP Gi tr 1:hot ng cng PSP Gi tr 0: hot ng nh cng vo ra thng thng. bit 3 (Unimplemented): mang gi tr 0 bit 2 (TRISE2): bt iu khin hng cho RE2 Gi tr 1:u vo Gi tr 0: u ra bit 1 (TRISE1): bt iu khin hng cho RE1 Gi tr 1:u vo Gi tr 0: u ra bit 0 (TRISE0): bt iu khin hng cho RE0 Gi tr 1:u vo Gi tr 0: u ra Parallel Slave Port(PSP) y c th coi l s thm chc nng ca cc cng vo ra ni chung. PSP c chuyn i t cc chn PortD. PSP c iu khin bi 4 bit cao ca thanh ghi TRISE. Trong TRISE<4>-PSPMODE coi l bt diu khin cng. PSP cng c tng cng modul CCP n c th l giao din c hng ti mt vi iu khin 8 bit.
33
Vi iu khin Pic
L chon gii hn cho xung t bn ngoi Ngt - m - trn c trng cho Timer0 l thanh ghi T0CON
bit 7(TMR0ON): bit iu khin ng m Timer0 Gi tr 1:cho php hot ng Gi tr 0: dng hot ng bit 6 (T08BIT): bit iu khin Timer0 8-Bit/16-Bit Gi tr 1:Timer0 cu hnh nh 8-bit timer/counter Gi tr 0: Timer0 cu hnh nh 16-bit timer/counter bit 5 (T0CS): bit la chn ngun xung cho Timer0 Gi tr 1:truyn trn chn T0CKI Gi tr 0: chu k xung lnh bn trong (CLKO) bit 4 (T0SE): bit la chon gii hn ngun choTimer0 Gi tr 1: truyn trn chn T0CKI thay i t cao-thp. Gi tr 0: truyn trn chn T0CKI thay i t thp-cao. bit 3 (PSA): bit thit lp b m gp trc choTimer0 Gi tr 1: khng thit lp b m gp trc Timer0. Xung du vo Timer0 c chuyn hng bi b m gp trc.. Gi tr 0: thit lp b m gp trc Timer0. Xung du vo Timer0 tr thnh du ra b m gp trc.. bit 2-0 (T0PS<2:0>): bit la chon b m gp trc cho Timer0 111 = 1:256 gi tr b m gp trc 110 = 1:128 gi tr b m gp trc 101 = 1:64 gi tr b m gp trc 100 = 1:32 gi tr b m gp trc 011 = 1:16 gi tr b m gp trc 010 = 1:8 gi tr b m gp trc 001 = 1:4 gi tr b m gp trc 000 = 1:2 gi tr b m gp trc Timer1 module c trng c bn ca b nh thi ny gm: Kh nng la chon bng phn mm ging nh b nh thi 16bit hoc b dm. Kh nng nh thanh ghi c vit c 8bit(TMR1H, TMR1L). Kh nng la chon ngun xung bn trong qua b dao ng Oscillator. Ngt-Trn Reset nh b to s kin dc bit CCP
34
Vi iu khin Pic
C bo trng thi xung thit b Thanh ghi T1CON s dng iu khin Timer1
bit 7 (RD16): bit cho php la chn cc ch c/vit 16-Bit Gi tri 1: cho php thanh ghi c/vit ca Timer1 trong hot ng nh mt s 16 bit. Gi tri 0: cho php thanh ghi c/vit ca Timer1 trong hot ng nh mt s 8 bit. bit 6 (T1RUN): Bit trng thi h thng xung Timer1 Gi tri 1: xung thit b l dn xut t b dao ng Timer1. Gi tri 0: xung thit b l dn xut t mootj ngun khc. bit 5-4 (T1CKPS<1:0>): bit la chn xung u vo b m gp trc cho Timer1 11 = 1:8 Gi tr b m gp trc 10 = 1:4 Gi tr b m gp trc 01 = 1:2 Gi tr b m gp trc 00 = 1:1 Gi tr b m gp trc bit 3 (T1OSCEN): bit cho php b dao ng Timer1 Gi tri 1: Cho php Gi tri 0: Dng b dao ng Timer1 . bit 2 ( T1SYNC ): bit la chn xung ng b u vo bn ngoi cho Timer1 Khi TMR1CS = 1: Gi tri 1: khng phi xung ng b u vo bn ngoi Gi tri 0: xung ng b u vo bn ngoi Khi TMR1CS = 0: bit ny khng s dng v lc ny Timer1 s dng ngun xung t bn trong bit 1 (TMR1CS): bit la chn ngun xung cho Timer1 Gi tri 1: ngun xung t bn ngoi qua chn RC0/T1OSO/T13CKI Gi tri 0: ngun xung t bn trong (Fosc/4) bit 0 (TMR1ON): bit hot ng Timer1 Gi tri 1: Cho php Gi tri 0: Dng Timer1 . Timer1 c th hot ng mt trong 3 ch B nh thi (Timer) B m ng b (Synchronous Counter) B m khng ng b(Asynchronous Counter) Vic s dng Timer1 ph thuc vo vic s dng thanh tho thanh ghi T1CON.
35
Vi iu khin Pic
Timer2 Module c im ni bt Timer2 gm: B nh thi 8bit(TMR2) v thanh ghi ghi Period(PR2) Kh nng c v vit c. Lp trnh phn mm Ngt trn TMR2 nh PR2 Ci t khi xung cho modul MSSP Timer 2 iu khin hot ng da thanh ghi T2CON
bit 7 (Unimplemented): mang gi tr 0 bit 6-3 (T2OUTPS<3:0>): bit la chn u ra Timer2 sau khi dng. 0000 = 1:1 sau khi dng 0001 = 1:2 sau khi dng 1111 = 1:16 sau khi dng bit 2 (TMR2ON): Bit hot dng Timer2 Gi tri 1: Cho php Gi tri 0: Dng Timer1 . bit 1-0 (T2CKPS<1:0>): bit chn xung b m gp trc cho Timer2 00 = b m gp trc 1 01 = b m gp trc 4 1x = b m gp trc 16 Timer 3 Module c im Timer3 bao gm: La chon c hot ng bng phn mm ging nh b m thi gian 16 bit. Kh nng c v vit c ging thanh ghi 8 bit(TMR3H-TMR3L). La chn cc ngun xung c bn trong v ngoi nh b dao ng Ngt- Trn Modul Reset trn CCP (c bit vi kt qu Trigger) Timer 3 iu chnh nh thanh ghi T3CON
bit 7(RD16): (RD16): bit cho php la chn cc ch c/vit 16-Bit Gi tri 1: cho php thanh ghi c/vit ca Timer1 trong hot ng nh mt s 16 bit.
36
Vi iu khin Pic
Gi tri 0: cho php thanh ghi c/vit ca Timer1 trong hot ng nh mt s 8 bit. bit 6,3 (T3CCP<2:1>): bit cho php Timer3 v Timer1 lin kt CCPx modules Gi tri 1x : Timer3 l cu hnh ngun xung capture/compare cho CCP modules Gi tri 01: Timer3 l cu hnh ngun xung capture/compare cho CCP2 modules, Timer1 l cu hnh ngun xung capture/compare cho CCP1 modules Gi tri 00 : Timer1 l cu hnh ngun xung capture/compare cho CCP modules bit 5-4 ((T3CKPS<1:0>): bit la chn xung u vo b m gp trc cho Timer3 11 = 1:8 Gi tr b m gp trc 10 = 1:4 Gi tr b m gp trc 01 = 1:2 Gi tr b m gp trc 00 = 1:1 Gi tr b m gp trc bit 2 ( T3SYNC ): bit iu khin xung ng b u vo bn ngoi cho Timer3 Khi TMR3CS = 1: Gi tri 1: khng phi xung ng b u vo bn ngoi Gi tri 0: xung ng b u vo bn ngoi Khi TMR3CS = 0: bit ny khng s dng v lc ny Timer3 s dng ngun xung t bn trong bit 1 (TMR3CS): bit la chn ngun xung cho Timer3 Gi tri 1: ngun xung t bn ngoi t bb dao ng Timer1 hoc T13CKI Gi tri 0: ngun xung t bn trong (Fosc/4) bit 0 (TMR1ON): bit hot ng Timer1 Gi tri 1: Cho php Gi tri 0: Dng Timer1 .
1.2.6. B truyn nhn d liu ng b (EUSART-Enhanced Universal Synchronous Asynchronous Receiver Transmitter)
Module thu pht ng b v khng ng b (EUSART) l mt trong hai module vo ra ni tip .(Ni chung EUSART cng c bit n nh giao din truyn thng ni tip hoc SCL).EUSART c th cu hnh nh h thng khng ng b song cng m n c th giao tip vi thit b ngoi vi, nh l cc thit b u cui v cc my tnh c nhn. N cng c th c cu hnh nh l ch bn song cng, h thng ng b c th giao tip vi thit b ngoi vi, nh l b A/D hoc D/A, v cc EEPROMs Module thu pht ng b v khng ng b m rng USART c tch hp , bao gm s d tc baud t ng v hiu chnh, t ng nhn bit qu trnh nhn d liu v 12 bit k t ngt truyn. Ph hp vi vic s dng h thng Bus kt ni cc b. Module thu pht ng b v khng ng b EUSART c th c cu hnh theo nhng phng thc sau : Ch d b (song cng) vi: T ng nhn k t
37
Vi iu khin Pic
T ng hiu chnh baud Truyn gin on 12 bit Ch ng b chnh (song cng ton phn) vi xung nhp chn. Ch ng b ph (bn song cng ) vi xung nhp chn Cc chn ca EUSART c t Port C cu hnh cho RC6/TX/CK v RC7/RX/DT nh l mt EUSART. bit SPEN (RCSTA<7>) c t bng ( = 1) bit TRISC<7> c t (= 1) bit TRISC<6> c t (= 1) S hot ng ca module EUSART m rng c iu khin thng qua ba thanh ghi sau: Thanh ghi iu khin v trng thi truyn (TXSTA) Thanh ghi iu khin v trng thi nhn (RCSTA) iu khin tc truyn (BAUDCON).
Bit 7 CSRC : bit chn ngun clock Ch khng ng b: Khng dng. Ch ng b: 1= Ch Master (clock c pht bn trong t BRG) 0=Ch Slave (clock t ngun bn ngoi) Bit 6 TX :Bit cho php ch truyn 9 bit 1= Chn truyn 9 bit 0= Chn truyn 8 bit. bit 5 TXEN: Bit cho php truyn 1= Cho php truyn . 0 = Khng cho php truyn. bit 4 SYNC: Bit chn ch EUSART 1 = Ch ng b 0 = Ch khng ng b. bit 3 SENDB: Bit gi k t gin on Ch khng ng b: 1 = Gi k t ngt ng b ln truyn tip theo (c xa bi phn cng khi hon thnh) 0 = K t ngt truyn xong. Ch ng b : Khng dng. bit 2 BRGH: Bit chn tc cao
38
Vi iu khin Pic
Ch khng ng b: 1= Tc cao 0 = Tc thp. Ch ng b: Khng s dng trong ch ny. bit 1 TRMT: Bit trng thi thanh ghi dch TSR. 1 = TSR rng. 0 = TSR y. bit 0 TX9D: D liu ca bit th 9 c th l a ch / d liu hoc a ch. THANH GHI IU KHIN V TRNG THI NHN.
bit 7 SPEN: Bit cho php cng truyn ni tip. 1 = Cho php hot ng (cu hnh RX/DT v TX/CK cc chn ny ging cc chn cng vo ni tip) 0 = Khng cho php (c t khi Reset) bit 6 RX9: Bit cho php nhn 9 bit 1 = Chn ch nhn 9 bit 0 = Chn ch nhn 8 bit bit 5 SREN: Bit cho php nhn ring r. Ch khng ng b: Khng s dng Ch ng b Master: 1 = Cho php nhn ring r. 0 = Khng cho php ring r. Bit ny c xa sau khi qu trnh nhn hon thnh. Ch ng b Slave: Khng dng ch ny. bit 4 CREN: Bit cho php tip tc nhn. Ch khng ng b: 1 = Cho php nhn. 0 = Khng cho php nhn. Ch ng b: 1 = Cho php nhn n khi bit , CREN, c xa (CREN overrides SREN) 0 = Khng cho php tip tc nhn. bit 3 ADDEN: Cho php nh a ch. Ch khng ng b nhn 9 bit (RX9 = 1): 1 = Cho php nh a ch , cho php ngt np d liu vo m khi RSR<8> c t. 0 = Khng cho php nh a ch, tt c cc byte c nhn v bit th 9 c c s dng nh bit chn l. Ch khng ng b nhn 8 bit (RX9 = 0):Khng dng. bit 2 FERR: Bit bo li khung truyn.
39
Vi iu khin Pic
1 = C li(C th c xa khi c thanh ghi RCREG v nhn gi tri byte tip theo) 0 = Khng c li. bit 1 OERR: Bit bo trn. 1 = Li trn (C th c xa khi xa bit CREN) 0 = Khng c li trn. bit 0 RX9D: D liu ca bit th 9. y c th l bit a ch / d liu hoc bit chn l v phi c tnh ton bng phn cng. THANH GHI IU KHIN TC TRUYN
bit 7 ABDOVF: Bit trng thi t ng nhn tc truyn. 1 = xy ra tc ng thanh ghi iu khin tc truyn trng cc ch la chn pht hin trng thi t ng boud (phi xo bi phn mm) 0 = khng xy ra bit 6 RCIDL: Bit bo trng thi nhn 1 = Khng nhn 0 = Xy ra qu trnh nhn bit 5 RXDTP: Bit xc nh mc tch cc d liu nhn Ch khng ng b: 1 = D liu nhn (RX) c o (mc tch cc thp) 0 = D liu nhn (RX) khng c o (mc tch cc cao) Ch ng b: 1 = D liu (DT) c o (mc tch cc thp) 0 = D liu (DT) khng o (mc tch cc cao) bit 4 TXCKP: Bit chn trng thi tch cc d liu v xung nhp. Ch khng ng b: 1 = Trng thi khng truyn (TX) l mc thp. 0 = Trng thi khng truyn (TX) l mc cao. Ch ng b: 1 = Trng thi khng hot ng ca clock (CK) l mc cao. 0 = Trng thi khng hot ng ca clock (CK) l mc thp. bit 3 BRG16: Bit cho php thanh ghi pht tc baud 16 bit. 1 = Cho php thanh ghi pht tc baud 16 bit SPBRGH v SPBRG 0 = Cho php thanh ghi pht tc baud 8 bit ch thanh SPBRG hot ng, SPBRGH khng hot ng. bit 2 Khng xc nh : xem nh bng 0 bit 1 WUE: Bit kch hot. Ch khng ng b: 1 = EUSART s tip tc ly mu trn chn RX ngt c to ra khi gim; bit ny c xa khi phn cng tng ln.
40
Vi iu khin Pic
0 = Chn RX khng c theo di hoc tng ln. Ch ng b: Khng dng cho ch ny. bit 0 ABDEN: Bit cho php t ng d baud. Ch khng ng b: 1 = Cho php o tc baud khi truyn k t tip theo. Cn nhn trng ng b (55h);c xa bi phn cng khi hon thnh. 0 = Khng tc baud hoc hon thnh. Ch ng b: Khng s dng cho ch ny.
T NG D TC BAUD Module USART m rng h tr ch d v hiu chnh tc baud t ng. y l c trng hot ng ch c trong ch khng ng b v trong khi bit c xa.
41
Vi iu khin Pic
Tc baud c o lin tc bt u khi bit start c nhn v bit ABDEN c set.Kt qu tnh ton c t ly trung bnh. Trong ch t d tc baud (ABD) , xung nhp ca BRG c o hn na b m BRG thu thp tn hiu RX, tn hiu RX l thi gian BRG. Trong ch ABD, b pht tc baud t bn trong c s dng nh b m thi gian chu k bit ca thu thp chui byte ni tip. Khi m bit ABDEN c set, trng thi my s xa BRG v ch bit start. T ng d tc baud phi nhn byte vi gi tr 55h (ASCII U, n cng l k t ng b LIN bus) tnh ton tn s chnh xc. Php o c ly trn c hai mc cao v thp lm gim tnh i xng ca tn hiu thu thp. Sau khi start bit, SPBRG bt u m, n s m sn ln u tin u tin ca RX. Sau khi 8 bit trn chn RX hoc sn ln th 5 ca RX , mt gi tr tng chu k BRG c t trong cp thanh ghi SPBRGH :SPBRG. Mt khi c sn ln th 5 ,th bit ABDEN s t ng c xa. Nu thanh ghi BGR xy ra trn (trn t FFFFh n 0000h), s kin ny c bo hiu bi trng thi bit ABDOVF (BAUDCON<7>). Bit ny c set bng phn cng khi xy ra trn v c th set hoc xa bng phn mn . Ch ABD vn hot ng khi xy ra s kin trn v bit ABDEN vn c t (Figure 18-2). Trong khi hiu chnh chu k tc baud, gi tri thanh ghi BRG c t bng 1/8 tc xung nhp ban u . Xung nhp BRG c thit lp bi cc bit BRG16 v BRGH . Bit BRG16 c t c lp, c SPBRG v SPBRGH c s dng nh b m 16 bit. Cho php ngi lp trnh l khng c nh trong ch 8 bit bng cch kim tra thanh ghi SPBRGH c bng 00h khng . Trong qu trnh ABD din ra , trng thi b vi x l trong ch EUSRT l trng thi rnh ri(Idle). Bit bo ngt RCIF c t khi pht hin ra sn ln th 5 trn RX. Cn c gi tr trong thanh ghi RCREG xa c ngt RCIF. Gi tr cha trong RCREG c th b i. Ch truyn EUSART v ABD( Auto Baud Rate Detect) Khi xung nhp BRG c gi trong qu trnh ABD ,ch truyn EUSART khng c s dng trong qu trnh ABD hot ng . iu ny c ngha l bt c khi no bit ABDEN c set ,thi TXREG khng th c ghi . Ngi s dng phi m bo rng bit ABDEN khng c set trong qu trnh truyn lin tip. Khi hot ng ca EUSART s khng xc inh.
42
43
Vi iu khin Pic
2. Cho php cng khng ng b ni tip bng cch xa bit SYNC, v t bit SPEN. 3. Nu mun c ngt ,set bit cho php TXIE. 4. Nu truyn khung d liu 9 bit, set bit truyn TX9. C th c s dng nh bit a ch hoc d liu. 5. Cho php truyn bng cch set bit TXEN, V bit TXIF cng s c set. 6. Nu chn truyn 9 bit trong khung d liu ,th bit th 9 s c np vo bit TX9D. 7. Np d liu t thanh ghi TXREG (bt u qu trnh truyn). 8. Nu s dng ngt, th phi m bo rng hai bit GIE v PEIE trong thanh ghi INTCON (INTCON<7:6>) c set.
CH NHN KHNG NG B EUSART. S khi nhn l khi trong hnh 18-6. D liu c nhn trn chn RX v c a ti khi khi phc d liu. Khi khi phc d liu thc t c tc dch cao gp 16 ln tc baud, v vy khi nhn hot ng tc bit hoc tn s dao ng . Ch ny thng c s dng trong h thng RS 232. Cc bc thit lp ch nhn khng ng b: 1. Khi to cho thanh ghi SPBRGH:SPBRG c tc baud thch hp. set hoc xa bit BRGH v BRG16 c c tc baud mong mun. 2. Cho php cng khng ng b ni tip bng cch xa bit SYNC, v set bit SPEN. 3. Nu mun c ngt , th set bit cho php ngt RCIE. 4. Nu mun nhn khung d liu 9 bit th set bit RX9. 5. Cho php qu trnh nhn bng cch set bit CREN. 6. C bo nhn RCIFs c set khi qu trnh nhn hon thnh v s xut hin mt ngt nu nh bit cho php ngt nhn RCIE c set. 7. c thanh ghi RCSTA ly bit th 9 (nu nhn l 9 bit) v xc nh li xy ra trong lc nhn. 8. Ly 8 bit d liu cn li bng cch c thanh ghi RCREG register. 9. Nu c li trong qu trnh nhn th xa li bng cch xa bit cho php nhn CREN. 10. Nu s dng ngt th phi m bo rng cc bit GIEv PEIE trong thanh ghi INTCON (INTCON<7:6>) phi c set.
44
Vi iu khin Pic
THIT LP CH 9 BIT D A CH. Ch ny thng c s dng trong h thng RS-485 . Thit lp cho ch nhn khng ng b c d a ch: 1. Khi to cho thanh ghi SPBRGH:SPBRG c tc baud thch hp. set hoc xa bit BRGH v BRG16 c c tc baud mong mun. 2. Cho php cng truyn khng ng b ni tip bng cch xa bit SYNC v set bit SPEN. 3. Nu cn s dng ngt th set bit RCENv chn mc u tin mong mun bng bit RCIP . 4. Set bit RX9 cho php nhn 9 bit. 5. Set bit ADDEN cho php d a ch . 6. Cho php nhn bng cch set bit CREN. 7. Bit RCIF s c set khi khi qu trnh nhn hon thnh. Ngt s c xc nhn nu bit RCIE v bit GIE bits are sec set. 8. c thanh ghi RCSTA xc nh li trong qu trnh nhn, hoc c bit d liu th 9 (nu c th dng). 9. c thanh ghi RCREG xc nu thit b l a ch. 10. Nu c li th xa bit CREN . 11. Nu thit b xc nh c a ch , xa bit ADDENv cho php nhn tt c d liu vo m v ngt CPU. T NG KCH HOT K T NGT NG B. Trong sut ch sleep , tt c cc xung ca ch EUSART b treo. Bi v vy , b pht tc baud khng hot ng v nhn mt byte khng th thc hin c. c im ca ch kch hot t ng cho php kch hot hot ng tr li trn ng RX/DT trong khi EUSART hot ng trong ch khng ng b. c im ca kch hot t ng c cho php hot ng bng vic set bit WUE (BAUDCON<1>). Mt khi set bit ny, thng thng nhn lin tip trn RX/DT l khng th v EUSART cn li trong trng thi Idle , s kin kch hot c lp vi ch ca CPU. S kin kch hot bao gm khi xut hin sn xung trn ng RX/DT . (N trng vi k t ngt ng b v k t kch hot giao thc LIN )
45
Vi iu khin Pic
Sau s kin kch hot , module s pht ra mt ngt RCIF. Ngt ny c pht ng b vi xung Q trong ch hot ng bnh thng. (hnh 18-8) v ch khng ng b, nu chp hot ng trong ch sleep (hnh 18-9). iu kin xy ra ngt l phi xa bng cch c thanh ghi RCREG . Bit WUE c t ng xa mt khi trn ng RX xut hin sn ln sau s kin kch hot ngt. Vo thi im , module EUSART trong ch Idle v tr li hot ng bnh thng. Tn hiu s dng trong s kin ngt ng b l s kin trn. Phi thn trng khi s dng Auto-Wake-up Khi m chc nng t ng kch hot c nhn bit bi sn ln trn chn RX/DT, thng tin v thay i trng thi trc khi bit Stop l tn hiu li End-of-Character (EOC) v nguyn nhn l li d liu hoc li khung truyn . lm vic ng th k t truyn ban u phi l 0s. y c th l 00h (8 bits) theio chun thit b RS-232 hoc 000h (12 bits) theo chun LIN. B dao ng bt u hot ng cng phi c xem xt, c bit l ng dng trong vic s dng b dao ng bt u ngng hot ng (i.e., XT or HS mode). K t ngt ng b (tn hiu kch hot ) phi di v sau phi cho php thi gian cho php b dao ng bt u v cung cp gi tr khi to cho EUSART. Cn phi c bit thn trng khi s dng bit WUE . Thi gian ca s kin bit WUE v bit RCIF c th b ri lon khi n xc nh gi tr ca d liu nhn when it comes to determining the validity of received data. Nh lu , set bit WUE khi s dng EUSART . Bit WUE c xa sau khi trn chn RX/DT xut hin sn ln. iu kin ca ngt l n phi c xa bng cch c thanh ghi RCREG. Thng thng , d liu trong RCREG s l d liu gi v nn c b. Thc t l bit WUE c xa (hoc vn c set) v c RCIF c set nn khng c s dng nh d liu ban u trong thanh ghi RCREG. Ngi s dng nn xem xt cc trin khai phng php song song trong firmware (l phn mm nh trong b nh ch c) nhn d liu nguyn vn. m bo rng khng b mt d liu, kim tra bit RCIDL xc nhn rng mt hot ng nhn d liu l khng xy ra trong qu trnh ny. Nu hot ng nhn khng xy ra th bit WUE c th sau c t trc khi vo ch Sleep K T NGT LIN TIP Module EUSART c th gi k t ngt lin tip c bit . K t ngt ny cn cho chun LIN. K t ngt truyn bao gm bit Start theo sau l 12 bit v mt bit Stop. Khung k t ngt c gi bt c khi no bit SENDB v bit TXEN (TXSTA<3> v TXSTA<5>) c set trong khi thanh ghi dch truyn c np d liu . Ch rng gi tr d liu ghi vo thanh TXREG s c b qua v tt c cc bit 0s(k hiu cho cc bit) s c truyn. Bit SENDB s c t ng reset bi phn cng bit Stop tng ng c gi. iu ny cho php ngi s dng np li gi tr truyn FIFO vi byte truyn tip theo sau k t ngt (thng thng k t ng b ch r trong LIN). Ch rng gi tr d liu ghi vo TXREG cho k t ngt c b qua. Cch vit n gin ch phc v cho cc mc ch khi ng n gin. Bit TRMT ch ra rng khi qu trnh truyn l khng hot ng hoc ch Idle,ging nh qu trnh truyn bnh thng . Xem hnh 18-10 cho thi gian ca chui k t ngt. Ngt v truyn ng b lin tip.
46
Vi iu khin Pic
Sau khi c ngt th chui lin tip s c gi bt u bng khung thng ip , sau l byte n Auto-Baud Sync . y mt s thnh phn chnh thng thng ca mt LIN bus. 1. Cu hnh EUSART c ch mong mun. 2. Set bit TXEN v bit SENDB t ch k t ngt. 3. Np vo TXREG mt k t gi bt u truyn (gi tr ny s c loi b ). 4. Ghi 55h vo TXREG np k t ng b vo m truyn FIFO. 5. Sau khi ngt c gi , bit SENDB c reset bi phn cng. K t ng b by gi c truyn trong ch cu hnh sn ri. Khi thanh ghi TXREG tr nn rng, c bit bi bit TXIF, byte d liu tip theo c th ghi vo TXREG.
NHN MT K T NGT. Module USART m rng c th nhn mt k t ngt bng hai cch. Phng php u tin l cu hnh tc baud bng 9/13 tn s bnh thng. iu ny cho php bit Stop truyn ng v tr ly mu (13 bits cho bit Start chng ngt v 8 bit d liu cho d liu bnh thng). Phng php th 2 s dng c im ca t ng kch hot ( auto-wake-up) m t trong mc 18.2.4 Auto-Wake-up on Sync Break Character. Bi vic cho php c im ny, EUSART s ly mu hai ln truyn tip theo trn RX/DT,bi v ngt RCIF v nhn d liu byte tip theo sau mt ngt khc.
Ch ng b chnh EUSART
Ch ng b chnh c nhp vo bng cch set bit CSRC (TXSTA<7>). Trong ch ny , d liu c truyn theo phng thc bn song cng (truyn v nhn ch c xy ra vo mt thi im). Khi truyn d liu , qu trnh nhn b cm v ngc li . Ch ng b c cho php bng cch set bit SYNC (TXSTA<4>). Ngoi ra, bit cho php SPEN (RCSTA<7>) c set cu hnh cho chn TX v chn RX tng ng vi ng xung nhp CK (clock) v ng d liu DT (data) . Ch chnh ch ra rng qu trnh truyn chnh to xung nhp trn ng CK. Chiu xung nhp c chn bng bit TXCKP (BAUDCON<4>); t bit TXCKP t trng thi Idle trn CK nh mc cao, trong khi xa trng thi Idle nh l mc thp. S chn ny c cung cp h tr thit b Microwire devices vi module ny. EUSART SYNCHRONOUS MASTER TRANSMISSION Khi biu truyn EUSART a ra trn hnh 18-3. Trung tm ca khi truyn l thanh ghi dch ( ni tip) TSR. Thanh ghi dch thu c d liu t thanh ghi m
47
Vi iu khin Pic
c/ghi TXREG. Thanh ghi TXREG c np d liu t phn mm . Thanh ghi TSR khng c np d liu cho n khi bit cui cng c truyn t ln np trc. Ngay khi bit cui cng c truyn, thanh ghi TSR c np gi tr mi t TXREG (nu cho php ). Mt khi thanh ghi TXREG truyn d liu cho thanh ghi TSR (xy ra trong mt TCY), thanh ghi TXREG b trng v bit c TXIF (PIR1<4>) c set . Ngt c th c cho php hoc khng cho php bng cch t hoc xa bit cho php ngt TXIE (PIE1<4>). TXIF c set cho d trng thi ca bit cho php ngt TXIE th no;n c th c xa trong phn mm. N ch s c reset khi d liu mi c np li thanh ghi TXREG . Trong khi bit c TXIF bo trng thi ca thanh ghi TXREG th bit khc l bit TRMT (TXSTA<1ch trng thi thanh ghi TSR . Thanh ghi TRMT ch c c khi bit bo trng thi thanh khi TSR l trng rng c set. Khng c ngt logic no c to ra t bit ny v vy ngi s dng phi gim st bit ny xc nh thanh ghi TSR c rng khng. Thanh ghi TSR khng c cho sn trong b nh v vy n khng c sn cho ngi s dng. Thit lp ch truyn ng b ch: 1. Khi to cho thanh ghi SPBRGH:SPBRG c tc baud thch hp. set hoc xa bit BRGH v BRG16 c c tc baud mong mun. 2. Cho php cng ni tip chnh ng b bng cch set bit SYNC, SPEN v CSRC. 3. Nu mun c ngt, set bit cho php TXIE. 4. Set bit RX9 cho php nhn 9 bit. 5. Cho php truyn bng cch set bit TXEN. 6. Nu chn truyn 9 bit trong khung d liu ,th bit th 9 s c np vo bit TX9D. 7. Bt u truyn bng cch np d liu vo thanh ghi TXREG . 8. Nu s dng ngt th phi m bo rng cc bit GIEv PEIE trong thanh ghi INTCON (INTCON<7:6>) phi c set. CH NHN NG B MASTER Mt khi ch ng b c chn, nhn d liu c cho php bng cch set bit Single Receive Enable SREN (RCSTA<5>), hoc bit cho php tip tc nhn CREN (RCSTA<4>). D liu l cc mu trn chn RX khi c sn xung ca xung nhp. Nu bit cho php SREN c set ,ch khi c t n c nhn. Nu bit cho php CREN c set, qu trnh nhn s tip tc cho n khi bit CREN c xa. Nu c hai bit c set , th CREN c u tin. Thit lp ch nhn ng b Master: 1. Khi to cho thanh ghi SPBRGH:SPBRG c tc baud thch hp. set hoc xa bit BRGH v BRG16 c c tc baud mong mun. 2. Cho php cng ni tip chnh ng b bng cch set bit SYNC, SPEN v CSRC. 3. Chc chn rng bit CREN v SREN c xa. 4. Nu cho php ngt, set bit RCIE. 5. Set bit RX9 cho php nhn 9 bit. 6. Nu nhn ring r , set bit SREN. tip tc nhn set bit CREN. 7. Bit c ngt RCIFs c set khi qu trnh nhn hon thnh v mt ngt s c pht ra nu bit cho php RCIE c set. 8. c thanh ghi RCSTA xc nh li trong qu trnh nhn, hoc c bit d liu th 9 (nu c th dng).
48
Vi iu khin Pic
9. c 8 bit d liu nhn bng cch c thanh ghi RCREG . 10. Nu c li th xa li bng cch xa bit CREN . 11. Nu s dng ngt th phi m bo rng cc bit GIEv PEIE trong thanh ghi INTCON (INTCON<7:6>) phi c set. Ch ng b Slave ca EUSART. Ch ng b Slave c a vo hot ng bng cch xa bit CSRC (TXSTA<7>). Ch ny khc vi ch ng b Master Synchronous Master mode trong xung nhp c cung cp t bn ngoi chn CK (thay v cung cp t bn trong trong ch Master ). iu ny cho php thit b truyn v nhn d liu trong ch tit kim nng lng. CH TRUYN NG B SLAVE CA EUSART. Hot ng ca ch Master v Slave l ging nhau , ngoi tr trong ch Sleep. Nu hai t c vit ln TXREG v sau ch SLEEP hng dn c thc hin nh sau: a) T u tin s ngay lp tc c chuyn vo thanh ghi TSR v truyn. b) T th hai cn li trong thanh ghi TXREG . c) Bit c TXIF s khng c set. d) Khi t th nht c truyn khi thanh ghi TSR,thanh ghi TXREG s truyn t th hai cho thanh ghi TSR v bit c TXIF by gi s c set. e) Nu bit cho php TXIE c set , ngt s kch hot chip t ch Sleep. Nu ngt ton cc c cho php , chng trnh s phn nhnh vector ngt . Thit lp ch truyn ng b Slave: 1. Cho php cng ni tip Slave bng cch set bit SYNC v bit SPEN v xa bit CSRC. 2. Xa bit CREN v bit SREN. 3. Nu cho php ngt, set bit TXIE. 4. Set bit RX9 cho php nhn 9 bit. 5. Cho php truyn bng cch set bit cho php TXEN . 6. Nu chn truyn 9 bit c chn ,bit th 9 c np t bit TX9D. 7. Bt u truyn bng cch np d liu cho thanh TXREG. 8. Nu s dng ngt th phi m bo rng cc bit GIEv PEIE trong thanh ghi INTCON (INTCON<7:6>) phi c set. CH NHN NG B SLAVE CA EUSART. Hot ng ca ch Master v Slave l ging nhau , ngoi tr trong ch Sleep hoc ch Idle v bit SREN l bit dont care trong ch Slave. Nu nhn c cho php bi vic set bit CREN bit u tin ch hoc ch Idle , sau khi mt t c th nhn trong ch tit kim nng lng. Mt khi mt t c nhn , thanh ghi RSR s truyn d liu cho thanh ghi RCREG ; nu bit cho php RCIE c set, ngt c pht s c kch hot chp trong ch tit kim nng lng. Nu ngt ton cc c cho php , chng trnh s phn nhnh vector ngt . Thit lp ch nhn ng b Slave : 1. Cho php cng ni tip Slave bng cch set bit SYNC v bit SPEN v xa bit CSRC. 2. Nu cho php ngt, set bit cho php RCIE. 3. Set bit RX9 cho php nhn 9 bit. 4. Cho php nhn bng cch set bit cho php CREN .
49
Vi iu khin Pic
5. Bit c RCIF s c set khi nhn hon thnh . Mt s c pht nu bit cho php RCIE c set . 6. c thanh ghi RCSTA nhn bit th 9 ( nu cho php ) v c xc nh nu c li xy ra trong qu trnh nhn. 7. c 8 bit d liu nhn bng cch c thanh ghi RCREG . 8. Nu c li xy ra ,xa li bng cch xa bit CREN. 9. Nu s dng ngt th phi m bo rng cc bit GIEv PEIE trong thanh ghi INTCON (INTCON<7:6>) phi c set.
bit 7-6 Unimplemented: mang gi tr 0 bit 5-2 CHS3:CHS0: bit la chn kenh tng t 0000 = Channel 0 (AN0) 0001 = Channel 1 (AN1) 0010 = Channel 2 (AN2) 0011 = Channel 3 (AN3) 0100 = Channel 4 (AN4) 0101 = Channel 5 (AN5) (1,2) 0110 = Channel 6 (AN6) (1,2) 0111 = Channel 7 (AN7)(1,2) 1000 = Channel 8 (AN8) 1001 = Channel 9 (AN9) 1010 = Channel 10 (AN10) 1011 = Channel 11 (AN11) 1100 = Channel 12 (AN12) 1101 = Khng xc nh(2)
50
Vi iu khin Pic
1110 = Khng xc nh (2) 1111 = Khng xc nh (2) bit 1 GO/DONE: A/D trng thi bit chuyn i Khi bit ADON = 1: 1 = A/D ang trong qu trnh chuyn i. 0 = A/D Idle bit 0 ADON: bit hot ng A/D 1 = A/D Module chuyn i c cho php. 0 = A/D Module chuyn i khng cho php . Thanh ghi ADCON1
bit 7-6 Unimplemented: mang gi tr 0 bit 5 VCFG1: Bit cu hnh in p chun (VREF- source) 1 = VREF- (AN2) 0 = VSS bit 4 VCFG0: bit cu hnh in p chun (VREF+ source) 1 = VREF+ (AN3) 0 = VDD bit 3-0 PCFG3:PCFG0: A/D Nhng bt cu hnh iu khin cng:
51
Vi iu khin Pic
bit 7 ADFM: bit chn nh dng cho A/D 1 = Cn chnh bn phi 0 = Cn chnh bn tri bit 6 Unimplementednmng gi tr 0 bit 5-3 ACQT2:ACQT0:bit la chn thi gian thu nhn A/D 111 = 20 TAD 110 = 16 TAD 101 = 12 TAD 100 = 8 TAD 011 = 6 TAD 010 = 4 TAD 001 = 2 TAD 000 = 0 TAD bit 2-0 ADCS2:ADCS0: bt la chn xung chuyn i A/D 111 = FRC ( xung dn xut t b dao ng A/D RC ) 110 = FOSC/64 101 = FOSC/16 100 = FOSC/4 011 = FRC 010 = FOSC/32 001 = FOSC/8 000 = FOSC/2 in p chun tng t c chn bi phn mm l mt trong hai mc tch cc ca thit b cung cp in p l tch cc dng v tch cc m (VDD v VSS), hoc mc in p trn cc RA3/AN3/ VREF+ v cc chn RA2/AN2/VREF-/CVREF . B bin i tng t s A/D c c im l c th hot ng khi thit b ch Sleep . Hot ng trong ch Sleep, xung nhp chuyn i A/D c th c ly t b dao ng RC bn ngoi ca b chuyn i A/D. u ra ca mu v gi tr gi c ly t u vo ca b chuyn i, m n a ra thng qua vic ly xp x. Mt thit b c reset th buc phi reset tt c cc thanh ghi trng thi ca n .Khi module A/D module b tt v bt c qu trnh chuyn i no cng b b . Mi cng c ni vi b bin i A/D c th cu hnh nh mt u vo tng t hoc nh cng v ra s. Thanh ghi ADRESH v thanh ghi ADRESL cha kt qu ca chuyn i A/D.Khi chuyn i A/D hon thnh kt qu c np vo cp thanh ghi ADRESH:ADRESL ,bit GO/DONE ( thanh ghi ADCON0 ) c xa v bit c ngt A/D ( ADIF) c set. S khi ca module trong hnh 19-1. Yu cu khi s dng b thu nhn A/D i vi b A/D m bo chnh xc t np in phi c cho php np y mc in p u vo . Module vo tng t trong hnh 19-3. Tr khng ngun (RS) v tr khng bn trong cng tc ly mu (RSS) nh hng trc tip n thi gian np CHOLD. Tr khng trn cc cng tc ly mu (RSS) thay i khc nhau trn thit in p khc nhau (VDD). Tr khng ngun nh hng trc tip n in p offset ( in p lch) u vo tng t (r in trn chn ). Gi tr tr khng ln nht cho php ca ngun tng t l 2.5 k . Sau khi knh u vo tng t c chn ( thay
52
Vi iu khin Pic
i ), knh ny phi ly mu trong thi gian nh nht yu cu trc khi bt u chuyn i . Tnh ton thi gian nh nht yu cu To calculate the minimum acquisition time, Cng thc 19-1 c th c s dng . Trong cng thc ny cho rng 1/2 bit c trng s ln ( LSb error ) c s dng (1024 bc cho A/D). 1/2 bit c trng s ln li l li ln nht cho php ca A/D p ng phn gii nh . V d 19-3 ch ra cch tnh thi gian b nht cn thit TACQ. Tnh ton ny da trn cc gi thit thng s h thng sau: CHOLD = 25 pF Rs = 2.5 k Conversion Error 1/2 LSb VDD =5V Rss = 2 k Temperature = 85C (system max.) EQUATION:ACQUISITION TIME
53
Vi iu khin Pic
thi ca bit ACQT2:ACQT0 v tng thch vi thit b m khng cung cp cho lp trnh thi gian thu nhn. Trong c hai trng hp ,khi chuyn i hon thnh th bit th bit GO/DONE c xa, c ADIF c set v A/D bt u ly mu c chn mt ln na . Nu thi gian thu nhn c lp trnh , khng c g xc nh nu thi gian thu nhn kt thc nu qu trnh truyn bt u .
54
Vi iu khin Pic
A/D c chn .Hot ng trong ch Sleep cn chn ngun xung nhp FRC ca A/D . Nu bit ACQT2:ACQT0 c set thnh 000 v qu trnh chuyn i c bt u , th qu trnh chuyn i s c tr trong mt chu k lnh cho php thc hin lnh SLEEP i vo ch Sleep . Bit IDLEN(OSCCON<7>) phi c xa trc khi qu trnh chuyn i.
S bin i A/D
Hnh 19-4 minh ha hot ng ca b bin i A/D sau khi bit GO/DONE c set v bit ACQT2:ACQT0 c xa. Mt s bin i c bt u sau khi lnh cho php i vo ch Sleep . Hnh 19-5 minh ha hot ng ca b bin i sau khi bit GO/DONE c set v bit ACQT2:ACQT0 c set thnh 010, v chn thi gian thu nhn bng 4TAD trc khi chuyn i bt u . Xa bit GO/DONE trong qu trnh chuyn i s b qua dng chuyn i . Cp thanh ghi kt qu ca chuyn i A/D s khng c cp nht khi mu chuyn i mi hon thnh mt phn . iu ny c ngha rng thanh ghi ADRESH:ADRESL s tip tc cha gi tr ca ln chuyn i trc (hoc gi tr ghi vo thanh ghi ADRESH:ADRESL ). Sau khi chuyn i A/D c hon thnh hoc hy b , thi gian ch 2TAD l cn thit trc ln thu nhn tip theo c th bt u . Sau thi gian ch ny , knh thu nhn c chn th t ng bt u hot ng .
Phng in
Giai on phng in c s dng khi to gi tr cho dy t in.Dy t in ny c phng in trc tt c cc mu . c im ny gip ti u ha b khuch i,nh l mch cn np mng t in ,ch khng phi np /phng in da trn s o lng gi tr .
55
Vi iu khin Pic
(hoc Timer3) c reset t ng lp li chu k chuyn i vi mc ch ti u ha phn mm(chuyn ADRESH:ADRESL n v tr mong mun ). Knh u vo tng t tng ng phi c chn v chu k chuyn i nh nht cng c t bi ngi s dng, thi gianTACQ tng ng c chn trc khi s kin kch hot c bit set bit GO/DONE (bt u qu trnh chuyn i ). Nu module A/D khng c cho php hot ng (bit ADON c xa), s kin kch hot ngt c bit s b b qua bi module A/D, nhng vn reset b m ca Timer1 (hoc Timer3) .
----------------------------o0o---------------------------
56
57
Hinh 2.2.S khi vi iu khin trung tm Khi vi iu khin trung tm c nhim v iu khin qun l, gim st, iu khin hot ng ton b cc modul s dng trong mch c ngha l mi hot ng trong h thng trn c s diu khin Pic18F4520. Ngoi ra: - Vi iu khin Pic18F4520 s dng mch dao ng thch anh ngoi tn s 10MHz. - S dng mch np PicKit2 ring np chng trnh cho PIC18F4520
58
Hinh 2.4 Khi giao tip my tnh Max232 Cng ni tip ca my tnh l cng COM( Comunication Port) giao tip d liu hai chiu gia my tnh PC v ngoi vi vi nhiu u im . Ngy nay, mi my tnh c nhn u c mt hoc mt vi cng ni tip theo chun RS-232 (cng COM), c th s dng kt ni vi cc thit b ngoi vi hoc cc my tnh khc. Nhiu thit b cng nghip cng tch hp cng RS-232 phc v cho cng vic lp trnh hoc tham s ha. Cu to cng COM - TxD (Transmit Data): ng gi d liu - RxD (Receive Data): ng nhn d liu - RTS (Request To Send): Yu cu gi; b truyn t ng ny ln mc hot ng khi sn sng truyn d liu. - CTS (Clear To Send): Xo gi; b nhn t ng ny ln mc hot ng thng bo cho b truyn l n sn sng nhn d liu.
59
60
61
Hnh 2.7 Khi hin th LCD S dng mt bin tr 100K iu chnh tng phn ca LCD. Ch dng LCD hin th (Write) nn chn R/W c ni mass.
Hinh 2.8 Khi thit b chp hnh Khi mch lc ny lm vic ng theo nguyn l trnh c cu chp hnh (IC L298) trnh by chng 3 ng dng b iu khin PID s iu khin ng c mt chiu . f) Khi ngun 12V/5V
62
63
S mch in hai lp
64
Thit k b iu khin PID s trn nn vi iu khin PIC 2.2.2. Gii thut chng trnh
a) Loop iu khin BEGIN
Khi to cc gi tr ban u
Start ? Yes Cp nht d liu t ADC CPU Tnh ton thut ton PID
No
Digital
PWM
CPU
ADC
X l truyn thng
END
65
Start Interrupt
If (Bin m < Constant) then bin m++ Else bin m=Constant; thc hin thut ton Flag=1;
End Interrupt Hnh 2.11 Lu hm ngt dng to chu l trch mu Trong gi T l chu k trch mu chng trnh th ta s xy dng c quan h bin Constant v T theo khung thi gian hot ng ca timer. iu c ngha ln trong vic qun l chnh xc vic to thi gian trch mu. b) Thut ton PID s * ) Lut PID trn min thi gian ( lin tc ) c m t bi cng thc: (3.1) KR = H s t l TC = Hng s thi gian tch phn TV = Hng s thi gian vi phn * ) Xp x thnh phn I (3.2) Bn cht l php tnh xp x din tch ca hm e (t) - Xp x theo nguyn tc hnh ch nht : Trong :
66
- Vi phn xp x bc 2 :
- Vi phn xp x bc 1 :
*) Xp x lut PID Thay cc cng thc xp x trn vo cng thc: uk = upk + uik + udk - Vi xp x thnh phn I theo phng php hnh ch nht v thnh phn D theo bc 1
(3.3)
- Vi xp x thnh phn I theo phng php hnh ch thang v thnh phn D theo bc2:
- Theo Takahashi c th lm gim bt bin ln iu khin khi i lng ch o ( gi tr t ) c t bin nhanh bng cch, thay v ek = wk xk ch s dng ek = - xk. T ta c :
(3.4)
M hnh b iu khin PID s:
67
68
Thit k b iu khin PID s trn nn vi iu khin PIC 2.2.3. Thit k phn mm iu khin v gim st trn my tnh
Chng ta thc hin thit k giao din giao tip vi iu khin v my tnh bng ngon ng Visual Basic6.0(VB).Trong mi trng lp trnh VB, vic to ra mt giao din ha l tng i n gin. VB h tr cho ngi s dng nhng m un i tng ph bin gip cho cng vic ca ngi lp trnh tr nn nh nhng hn rt nhiu. Vic to giao din ch l la chn nhng i tng v vo mt giao din (form) c sn cng vi vic thit lp cc thng s cho i tng. y, giao din c to tng i n gin nhng p ng c nhng yu cu m cng vic t ra. Yu cu cng vic: Thu nhn d liu do ngi dng nhp vo (cc gi tr Kp, Ki, Kd , thng s cn t c ) Phn tch, x l d liu nhn, truyn xung cho vi iu khin PIC qua cng ni tip Nhn d liu truyn v t PIC v hin th ln mn hnh ha thy c kh nng p ng ca h thng
69
70
Sn phm kit iu khin c c sau khi thit k c cc khi chc nng nh nu phn trn vi c im : - C cc cng vo tng t : 0 - 5V, 0 - 20mA. - C cc cng ra s ( xung s v logic) - Thi gian trch mu ti thiu l 2.55*10-5 s, tuy nhin vi thi gian trch mu nh ta phi lu ti thi gian tnh ton ca cc cu lnh. Vi thi gian trch mu ln ( v d trong ng dng iu khin nhit ) ta c th b qua thi gian tnh ton ca VXL. - C cc khi hin th LCD, Led . - C khi giao tip truyn thng ni tip my tnh RS232. - Khi ngun 5V v 12V - Ci cnh bo
71
Hnh 3.1 ng c s dng trong n Chng ta s dng Servo Motor vi cc thng s c bn nh sau: in p ngunti a l 24V. Tc ti a l 3000 vng/pht. C gn lin Encoder quang tng i 100xung . Cng sut 30-50w.
(3-1)
Cc tham s m hnh ng c in mt chiu s c nhn dng t thc nghim v gii thiu trong phn tip theo.
72
Hnh 3.2 c tnh thu thp d liu nhn dng Trong giao in phn mm gim st h thng chng ta c th ly trc tip d liu vo/ra xut ra file nh dng Exel. Nh vy chng ta c tp d liu i tng lu trn file: C:\data.xls. Chng ta hon ton c th chuyn d liu dng khc s dng nhn dng nh file .mat, .dat Matlab vn h tr cc d liu nh dng ny. Khi thu thp d liu i tng ta cho in p du vo ng c l 9V, thi gian trch mu 5ms .
73
Thit k b iu khin PID s trn nn vi iu khin PIC 3.1.4. Nhn dng ng c in mt chiu bng Toolbox Identification cu Matlab
Sau khi thu thp d liu vo ra ca ng c ta tin hnh nhn dng i tng s dng toolbox ca Matlab (System Identification toolbox) . Khi nhn dng i tng s dng d liu trong min thi gian Time Domain Data. Cc bc tin hnh nhn dng trn Matlab tm lc nh sau :
Cc cu lnh tin hnh nhn dng d liu trong ca s Matlab: >> X=xlsread('D:\data.xls',1) >> u1=X(:,1) >> y1=X(:,2) >> save identdata u1 y1 >> ident // c d liu lu trong data1.xls // u vo in p bc nhy // u ra tc y1 // lu file d liu di dng identdata.mat // m ca s nhn dng
74
Hnh 3.4Phng thc nhn dng v nh gi m hnh thu c Sau khi tin hnh nhn dng chng ta thu c m hnh ca i tng vi hm truyn: WDT ( s ) =
K Vi =0.31528 ,T=0.0057876 , K=138.67 1 + 2 *Ts + (Ts ) 2
75
Hnh 3.6 Sai lch m hnh nhn dng C th nh gi sai lch m hnh thc i tng l khong 5.5% lc th chp nhn c. M hnh tng ng c in mt chiu chng ta nhn dng c l kh chnh xc.
76
Ta c :
77
Thit k b iu khin PID s trn nn vi iu khin PIC 3.2.3. M phng v nh gi cht lng b iu khin
M hnh Simulink:
Hnh 3.9 c tnh m phng R dng hai phng php u cho c tnh h thng sai lch v o qu iu chnh bng khng nhng IMC cho ta thi gian qu Tqd=140ms, cn ZieglerNichols cho Tqd=230ms. Nh vy phng php IMC cho ta kt qu tt hn.
78
Hnh 3.10 S chn L298 Chc nng cc chn : MW.15 1.15 Power SO 2;19 Tn Sense A sense B 2;3 4;5 Out1 Out2 4 6 Vs Chc nng Ni chn ny qua in tr cm ng dng xung GND iu khin dng ti . Ng ra ca cu A . Dng ca ti mc gia 2 chn ny c qui nh bi chn 1. Chn cp ngun cho tng cng sut. Cn c mt t in khng cm khng 100nF ni gia chn ny v chn GND Chn ng vo ca cu A, tng thch chun TTL Chn ng vo enable (cho php) tng thch chun TTL. Mc thp chn ny s cm (disable) ng ra cu A (i vi chn EnableA) v/hoc cu B ( i vi chn EnableB) Chn t (Ground) Chn cp ngun cho khi logic. Cn c t in 100nF ni gia chn ny vi GND Cc chn logic ng vo ca cu B
5;7
7;9
Input1 Input2
6;11
8;14
EnableA EnableB
8 9 10;12
1;10;11;20 12 13;15
13;14
16;17
Output3 Output4
3;18
N.C
Hnh 3.11: Cc ch ca L298 Hai chn C,D ca L298 iu khin chiu ng c, phanh ng c. Chn Enable ca L298 dng lm u vo bm xung PWM cho ng c c th iu khin tc ng c. Bng ch ca trong qu trnh iu khin ng c : u vo M1A=1; M1B=0 M1E=1 M1E=0 M1A=0; M1B=1 M1A=M1B M1A=X; M1B=X Chc nng Tin ng c Li ng c Dng khn cp (phanh) Dng khng phanh
Trong thc t ng dng ny, ng c DC ch c dng ti 200mA khi hot ng bnh thng, v ln n ti a 2A khi qu ti. Tuy nhin cng cn thit k mt b iu khin m c th s dng cho cc ng c ln n 4A. Vic hn ch dng cho ng c l rt cn thit, c nhiu tnh hung khng mong i xy ra, v vy cn phi c ch hn dng bng phn mm. Trong cc trng hp nguy him nh ngn mch do va chm, hoc tut dy ni, cn c mch bo v chng ngn mch bng phn cng p ng kp thi. Cn iu khin PWM tn s cao trnh ting n do ng c to ra, nht l nhng ting ku nghe rt r khong tn s 1KHz n 3KHz. B iu khin PWM thng thng c iu khin 5KHz.Ni song song hai cu H iu khin ng c ln n 4A.
80
Hnh 3.12 : S gii php L298 khng c Diode ni bo v, do cn c 4 Diode ngoi bo v. m bo iu khin PWM tn s cao, cn dng Diode nhanh c in tr thp. Diode chuyn dng iu khin ng c l cc Diode fast recovery Schottky. Nhng tn s khong 5KHz vn c th dng loi 1N4007. Lu rng, khi hot ng L298 rt nng, do vy cn cn phi lp ming tn nhit. Hai chn RC0 v RC1 iu khin chiu quay ca ng c: + ) RC0 = 1 v RC1 = 0 quay thun + ) RC0 = 0 v RC1 = 1 quay nghch + ) RC0 = RC1 = 0 hoc RC0 = RC1 = 1 ng c dng quay Chn PWM c a vo chn Enable ca L298, do vy ch cn iu chnh ln ca Dutycycle ca PWM ta c th iu chnh c in p u ra ca L298 a vo ng c ( 0V : 12V ).
Mo hnh th 1
81
Hnh 3.14 : Phng thc hot ng Encoder quang tng i 2 ben mat cua cai a tron o, se co mot bo thu phat quang. Trong qua trnh encoder quay quanh truc, neu gap lo rong th anh sang chieu qua c, neu gap manh chan th tia sang khong chieu qua c. Do o tn hieu nhan c t sensor quang la mot chuoi xung. Moi encoder c che tao se biet san so xung tren mot vong. Do o ta co the dung vi ieu khien em so xung o trong mot n v thi gian va tnh ra toc o ong c. Cai encoder ma em s dung trong o an cua mnh, hoan toan giong vi mo hnh tren. Tuy nhien, mo hnh tren co nhc iem ln la : ta khong the xac nh c ong c quay trai hay quay phai, v co quay theo chieu nao i na th ch co mot dang xung a ra. Ngoai ra iem bat au cua ong c, ta cung khong the nao biet c. Cai tien mo hnh 1 bang mo hnh 2 nh sau:
Mo hnh th 2
82
Hnh 3.16 : S xung ca En coder quang tng i(m hnh 2) Hai xung a ra t 2 vong lech nhau 90 o, neu vong ngoai nhanh pha hn vong trong th chac chan ong c quay t trai sang phai va ngc lai. Mot lo vong trong cung dung e phat hien iem bat au cua ong c. Co the viet chng trnh cho vi ieu khien nhan biet : neu co mot xung phat ra t vong trong cung nay, tc la ong c a quay ung mot vong. Vi nhng ac tnh tren, encoder dung rat pho bien trong viec xac nh v tr goc cua ong c.. Van e quan trong trong viec tm mua nhng loai ong c co gan encoder nh the nay e lam o an oi vi sinh vien la : cap mat quang 2 ben encoder e tao xung thng b chet va khong co o thay the. Mot loai encoder th 2 cung pho bien hien nay, o la :absolute encoder. Mo hnh a quang cua loai nay nh sau:
83
84
85
86
87
88
Kt lun
Kt lun
Cc kt qu t c Trn c s thit k phn cng v phn mm khi thc hin n t c mt s kt qu sau: V phn cng: Tm hiu v vi iu khin Pic i su tm hiu mt s thut ton iu khin nh b iu khin PID, b iu khin m Nhn dng v m phng i tng iu khin (ng c mt chiu kch t c lp) trn Matlab. Thit k kit phn cng cho vi iu khin Pic 18F4520 c kh nng iu khin nhiu i tng (ng c mt chiu. l nhit). vi cc thut ton iu khin khc nhau To c giao din v giao tip c PC v vi iu khin trung tm
Mt s im hn ch Trong gian on lm n, chng em rt c gng nghin cu, thit k c c nhng kt qu nu trn. Tuy nhin do thi gian v kin thc ca chng em c hn, mt khc mt s iu kin v thit b khng cho php nn trong n cn nhng hn ch : S dng Encoder c phn gii cha cao nn vn gy ra nhiu sai s trong qu trnh tnh ton. Pic 18F4520 l dng vi iu khin 8 bits c tc tnh ton v b nh chng trnh khng ln nn kh p dng cho nhng b iu khin cn nhiu b nh nh : b iu khin m... Kt qu thu c vn c sai s so vi m hnh l tng thit k trn Matlab. Mt s modul trn Kit cha c khai thc.
Hng khc phc cc im hn ch Da trn c s hn ch chng ta c hng khc phc : C th s dng ng c c encoder 500 xung/vng hoc 1000 xung/vng khc phc sai s . S dng dng Pic 16 bits, 32 bits..........
Hng pht trin ti - Thit k b iu khin thch nghi PID, b iu khin m hc theo m hnh mu : FMRLC, hoc b iu khin ng dng mng Nron.
89
Kt lun
M rng thm cc i tng thc m Kit c th lm vic c nh l nhit, bnh mc Do l do v thi gian nhng l do khch quan khc nn n c thc hin vn cn nhiu khim khuyt. Chng em rt mong nhn c nhng kin ng gp qu bu ca cc thy c. Mt ln na, chng em xin chn thnh cm n c gio PGS.TS Phan Xun Minh hng dn chng em tn tnh trong qu trnh thc hin n ny. ----------------------------o0o----------------------------
90
91
Ph lc Code phn mm
Ph lc Code phn mm
//code bn phm// #ifndef __pvc_keypad_H #define __pvc_keypad_H #define row1 PORTAbits.RA2 #define row2 PORTAbits.RA3 #define row3 PORTAbits.RA4 #define row4 PORTAbits.RA5 #define col1 PORTBbits.RB4 #define col2 PORTBbits.RB5 #define col3 PORTBbits.RB6 #define col4 PORTBbits.RB7 /*******************************************************************/ unsigned char col(void) { col4 = 1; if (row1 & row2 & row3 & row4) { col4 = 0; return 4; } col4 = 0; col3 = 1; if (row1 & row2 & row3 & row4) { col3 = 0; return 3; } col3 = 0; col2 = 1; if (row1 & row2 & row3 & row4) { col2 = 0; return 2; } col2 = 0; col1 = 1; if (row1 & row2 & row3 & row4) { col1 = 0; return 1; } col1 = 0; }
92
Ph lc Code phn mm
/*************************************************************/ unsigned char row(void) { if (!row4) return 4; else if (!row3) return 3; else if (!row2) return 2; else if (!row1) return 1; } /************************************************************/ unsigned char get_keypad(void) { if((col()==1) && (row()==1)) return 7; if((col()==1) && (row()==2)) return 4; if((col()==1) && (row()==3)) return 1; if((col()==1) && (row()==4)) return 0; if((col()==2) && (row()==1)) if((col()==2) && (row()==2)) if((col()==2) && (row()==3)) if((col()==2) && (row()==4)) if((col()==3) && (row()==1)) if((col()==3) && (row()==2)) if((col()==3) && (row()==3)) if((col()==3) && (row()==4)) if((col()==4) && (row()==1)) if((col()==4) && (row()==2)) if((col()==4) && (row()==3)) if((col()==4) && (row()==4)) } #endif /////// code LCD///// #ifndef __pvc_lcd_H #define __pvc_lcd_H #define #define #define #define LCD_RS PORTEbits.RE1 LCD_RW PORTCbits.RC3 LCD_E PORTEbits.RE2 LCD_DATA PORTD return return return return return return return return return return return return 8; 5; 2; 'Q'; 9; 6; 3; 'L'; 'P'; 'V'; 'C'; 'M';
93
Ph lc Code phn mm
{ unsigned char data; TRISD=0xff; LCD_RS=0; LCD_RW=1; do { LCD_E=1; Delay10TCYx(2); LCD_E=0; data=PORTD; data=data&0x80; } while(data==0x80); } /*****************************************************************/ void write_cmd_lcd(char cmd) { busy_lcd(); TRISD=0x00; LCD_RW = 0; LCD_RS = 0; LCD_E = 1; LCD_DATA = cmd; LCD_E = 0; } /****************************************************************/ void init_lcd (void) { write_cmd_lcd(0b00111000); write_cmd_lcd(0b00001100); write_cmd_lcd(0b00000110); write_cmd_lcd(0b00000001); write_cmd_lcd(0x02); } /****************************************************************/ void write_data_lcd(char data) { if(data=='\n') { write_cmd_lcd(0xC0); // Dua con tro ve dau dong thu 2 return; } if(data=='\1') {
94
Ph lc Code phn mm
write_cmd_lcd(0x01); return; } busy_lcd(); TRISD=0x00; LCD_RW = 0; LCD_RS = 1; LCD_E = 1; LCD_DATA = data; LCD_E = 0; } /*****************************************************************/ void write_str_lcd(char *str) { while(*str) { write_data_lcd(*str); str++; } } #endif /******************************************* CPU PIC18F4520 Frequency 40MHz *******************************************/ #include<stdio.h> #include<p18f4520.h> #include<delays.h> #include<adc.h> #include<timers.h> #include<pvc_lcd.h> #include<pvc_keypad.h> #include<pwm.h> #include<usart.h> //============================================ #pragma config OSC=HSPLL #pragma config BOREN=OFF #pragma config WDT=OFF // Xoa man hinh hien thi
95
Ph lc Code phn mm
#pragma config #pragma config #pragma config #pragma config MCLRE=ON PBADEN=OFF LVP=OFF PWRT=ON
long vc=0; long w=0; long pc=0,ic=0,dc=0; char p_h=0,p_l=0,i_h=0,i_l=0,d_h=0,d_l=0; char mode=0; char w_h=0,w_l=0; //============================================= char flag=0; char co_tocdo=0; char timer0_flag=0; //============================================= float u_p=0,u_i=0,u_d=0,k_p=0,k_i=0; //long u=0,v=0; float u=0,v=0; float e=0; float pre_e=0; float sum_e=0; float tocdothuc=0; float pre_tocdothuc=0; float pre_ui=0; float pre_u=0; unsigned long counter=0,dienap=0; unsigned long tocdodat=0; unsigned int dutycycle=0; //============================================= unsigned char temp,msg[35]; unsigned int j=0; unsigned int jlcd=0; unsigned short long k=0; unsigned int k_usart=0; char pad=0;
96
Ph lc Code phn mm
char message[35]; char pvcm[32]={"\1 Pham Van Manh \n My Brother "}; void delay10ms (void) { Delay10KTCYx(10); } void delay500ms (void) { Delay10KTCYx(500); } void counter1_isr(void); void counter2_isr(void); void usart_isr(void); void keypad_isr(void); void timer0_isr(void); void pvc(void) { e= tocdodat - tocdothuc; u_p =pc*e; u_i=pre_ui + 0.0457*ic*pre_e ; u_d=dc*(e-pre_e)/0.0457; u= (u_p+u_i+u_d/10)/12800; pre_e=e; pre_ui=u_i; if(u>=11.8) { u=11.8; sum_e -= e; } if(u<=0) { u=0; sum_e -= e; } dutycycle = 256*u/12;
97
Ph lc Code phn mm
SetDCPWM1(dutycycle); return; } //=============================================== #pragma code high_vector=0x08 void interrupt_at_high_vector(void) { _asm GOTO keypad_isr _endasm } #pragma code //=================================== #pragma interrupt keypad_isr void keypad_isr(void) { INTCONbits.INT0IF=0; delay10ms(); co_tocdo=1; if(!(row1 & row2 & row3 & row4)) { pad = get_keypad(); if (pad>=0 && pad<=9) sprintf(&message[0],"\1 KeyPad = %u ",pad); else sprintf(&message[0],"\1 KeyPad = %c ",pad); write_str_lcd(&message[0]); } } //************************************************* #pragma code low_vector = 0x18 void interurrupt_at_low_vector(void) { if(INTCON3bits.INT1IF) { _asm GOTO counter1_isr _endasm } if(INTCON3bits.INT2IF)
98
Ph lc Code phn mm
{ _asm GOTO counter2_isr _endasm } if(PIR1bits.RCIF) { _asm GOTO usart_isr _endasm } if(INTCONbits.TMR0IF) { _asm GOTO timer0_isr _endasm } } //******************************************************************** #pragma interruptlow usart_isr void usart_isr(void) { INTCONbits.GIE = 0; pad=0; if(k_usart==0) { mode=ReadUSART(); } if(k_usart==1) { w_h = ReadUSART(); } if(k_usart==2) { w_l = ReadUSART(); } if(k_usart==3) { p_h = ReadUSART(); } if(k_usart==4) {
99
Ph lc Code phn mm
p_l = ReadUSART(); } if(k_usart==5) { i_h = ReadUSART(); } if(k_usart==6) { i_l = ReadUSART(); } if(k_usart==7) { d_h = ReadUSART(); } if(k_usart==8) { d_l = ReadUSART(); k_usart=0; flag=1; } else k_usart++; INTCONbits.GIE = 1; } //======================================== #pragma interruptlow counter1_isr void counter1_isr(void) { counter++; INTCON3bits.INT1IF=0; } //ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc #pragma interruptlow counter2_isr void counter2_isr(void) { counter++; INTCON3bits.INT2IF=0;
100
Ph lc Code phn mm
} //ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc //tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt #pragma interruptlow timer0_isr void timer0_isr(void) { INTCONbits.GIE = 0; if(j<7)//0.026s { j++; } else { j=0; tocdothuc = counter*6.565; counter=0; timer0_flag=1; } INTCONbits.TMR0IF=0; INTCONbits.GIE = 1; } //tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt void main() { OpenUSART (USART_TX_INT_OFF & USART_RX_INT_ON & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_HIGH,64); OpenADC( ADC_FOSC_32 &ADC_RIGHT_JUST &ADC_6_TAD,ADC_CH0&ADC_INT_OFF, 0); RCONbits.IPEN=1; // cho phep uu tien ngat
101
Ph lc Code phn mm
INTCON=0xC0; // mo tat ca cac ngat INTCONbits.INT0IE =1; INTCON2=0x00; // ngat tai INT1,INT2 on falling edge INTCON2bits.TMR0IP=0; //Ngat timer0 thap INTCON3=0x18; // cho phep ngat INT1,INT2 PIE1bits.RCIE=1; IPR1bits.RCIP=0; PIE1bits.TXIE=0; // Khong cho ngat khi truyen du lieu ADCON1 = 0x0d; TRISC = 0x80; PORTCbits.RC5 =1; TRISD = 0x00; TRISE = 0x00; TRISA = 0xff; TRISB = 0b00001111; // Khoi tao cho Kepad PORTB = 0X00; // Khoi tao cho Kepad ADCON1 = 0x0E; // Lay nguon la 5V va 0v cua mach init_lcd(); write_str_lcd(&pvcm[0]); OpenTimer2( TIMER_INT_OFF & T2_PS_1_1 & T2_POST_1_16 ); delay500ms(); PORTCbits.RC5 = 1; //----------------------------------------------------------------------------------while(1) { //fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ff if(flag) { while(1) {
102
Ph lc Code phn mm
flag=0; sum_e=0; k=0; j=0; counter=0; if((pad=='P')||(pad=='V')||(pad=='M')||(pad=='Q')) break; if(mode) { tocdodat= w_h*256 + w_l; pc=p_h*256+p_l; ic=i_h*256+i_l; dc=d_h*256+d_l; OpenPWM1(63);//156.25kHz 256 PORTCbits.RC0 = 0; PORTCbits.RC1 = 1; } else { dutycycle=0; ClosePWM1(); tocdodat=0; PORTCbits.RC0 = 0; PORTCbits.RC1 = 0; pc=0; ic=0; dc=0; u=0; v=0; pre_u=0; pre_ui=0; pre_e=0; sum_e=0; }
103
Ph lc Code phn mm
OpenTimer0( TIMER_INT_ON & T0_8BIT & T0_SOURCE_INT & T0_PS_1_256 ); while(1) { if((pad=='P')||(pad=='V')||(pad=='M')||(pad=='Q')||(flag==1)) break;
if(timer0_flag) { timer0_flag=0; k++; jlcd++; pvc(); } if(k==2) { k=0; w=tocdothuc; while (BusyUSART()); WriteUSART(w/256); while (BusyUSART()); WriteUSART(w%256); while (BusyUSART()); vc=u*1000; WriteUSART(vc/256); while (BusyUSART()); WriteUSART(vc%256); } if(jlcd==10) { jlcd=0; w=tocdothuc;
104
Ph lc Code phn mm
sprintf(&msg[0],"\1 Toc do la: \n %lu (rpm)",w); write_str_lcd(&msg[0]); } } } } //ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff //pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp if(pad=='P') { while(1) {
if((pad=='V')||(pad==0)||(pad=='M')||(pad=='C')) break; OpenPWM1(63);//156.25khz 256 SetDCPWM1(192);// 9V PORTCbits.RC0 = 0; PORTCbits.RC1 = 1; OpenTimer0( TIMER_INT_ON & T0_8BIT &
105
Ph lc Code phn mm
{ timer0_flag=0; w=tocdothuc; while (BusyUSART()); WriteUSART(w/256); while (BusyUSART()); WriteUSART(w%256); while (BusyUSART()); WriteUSART(9000/256); while (BusyUSART()); WriteUSART(9000%256); sprintf(&msg[0],"\1 Toc do la: \n %lu (rpm)",w); write_str_lcd(&msg[0]); } } } } //pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp //vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv if(pad=='V') { while(1) { if((pad==0)||(pad=='P')||(pad=='M')||(pad=='C')) break; dutycycle=0; ClosePWM1(); tocdodat=0; pc=0; ic=0; dc=0;
106
Ph lc Code phn mm
pre_e=0; sum_e=0; u=0; v=0; pre_u=0; pre_ui=0; PORTCbits.RC0 = 0; PORTCbits.RC1 = 0; write_str_lcd(&pvcm[0]); } } //vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv //ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc if(pad=='C') { tocdodat=0; sprintf(&message[0],"\1Nhap toc do:\nNhan L de OK"); write_str_lcd(&message[0]); do{ if(co_tocdo) { co_tocdo=0; if((pad>=0)&&(pad<=9)) { tocdodat=tocdodat+pad; sprintf(&message[0],"\1V dat: %lu (rpm)\nNhan L de OK ",tocdodat); write_str_lcd(&message[0]); tocdodat=tocdodat*10; } } } while(pad !='L'); tocdodat = tocdodat/10;
107
Ph lc Code phn mm
while(1) { sprintf(&message[0],"\1V dat: %lu (rpm)\nNhan Q(M) de chay ",tocdodat); write_str_lcd(&message[0]); if((pad==0)||(pad=='P')||(pad=='V')||(pad=='M')||(pad=='C')||(pad=='Q')) break; } } //ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc //mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm if(pad=='M') { OpenPWM1(63);//156.25kHz 256 PORTCbits.RC0 = 0; PORTCbits.RC1 = 1; OpenTimer0( TIMER_INT_ON & T0_8BIT &
T0_SOURCE_INT & T0_PS_1_256 ); pc=5; ic=300; sum_e=0; while(1) { if((pad=='P')||(pad=='V')||(pad=='C')||(pad=='Q')||(pad==0)) break; if(timer0_flag) { timer0_flag=0; jlcd++; pvc();
108
Ph lc Code phn mm
} if(jlcd==10) { jlcd=0; w=tocdothuc; sprintf(&msg[0],"\1W dat: %lu(rpm)\nW thuc: %lu(rpm)",tocdodat,w); write_str_lcd(&msg[0]); } } } //mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm //qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq if(pad=='Q') { OpenPWM1(63);//156.25kHz 256 PORTCbits.RC0 = 0; PORTCbits.RC1 = 1; OpenTimer0( TIMER_INT_ON & T0_8BIT &
109
Ph lc Code phn mm
if(timer0_flag) { timer0_flag=0; jlcd++; pvc(); } if(jlcd==10) { jlcd=0; w=tocdothuc; sprintf(&msg[0],"\1W %lu(rpm)",tocdodat,w); write_str_lcd(&msg[0]); } } } //qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq //-------------------------------------------------------------------------------------------------} }
dat:
%lu(rpm)\nW
thuc:
110