Upload
tinhlanhthai
View
89
Download
7
Embed Size (px)
DESCRIPTION
Đồ án điều khiển động cơ dùng 16F887
Citation preview
B CNG THNG
TRNG I HC CNG NGHIP TP.HCM
KHOA CNG NGH IN T
N 1
IU KHIN NG C DC
GIAO TIP MY TNH
Sinh vin thc hin: 1. NGUYN VN TIN 09076481
2. MNH CNG 09073041
Lp : DHDT5A
M lp hc phn : 240207701
TP H Ch Minh, Thng 9 nm 2012
B CNG THNG
TRNG I HC CNG NGHIP TP.HCM
KHOA CNG NGH IN T
N 1
IU KHIN NG C DC
GIAO TIP MY TNH
Ging vin hng dn: TS. NGUYN MINH NGC
Sinh vin thc hin: 1. NGUYN VN TIN 09076481
2. MNH CNG 09073041
Lp : DHDT5A
M lp hc phn : 240207701
TP. H Ch Minh, Thng 9 nm 2012
LI CM N
Chng em xin by t li bit n su sc n:
Ban Gim Hiu Trng H Cng Nghip Tp H Ch Minh
Khoa Cng Ngh in T
Cc(thy) c b mn in T Cng Nghip
Thy Phm Quang Tr nhit tnh gip chng em v phn Vi x l PIC16F887
c bit l Ging vin: TS. Nguyn Minh Ngc hng dn tn ty v truyn t cho
chng em nhiu kinh nghim ln kin thc lm ti ny.
Chng em cng xin chn thnh cm n n th vin nh trng gip v to iu
kin cho chng em rt nhiu trong qu trnh tm ti liu cho ti.
Chng em xin chc tt c cc thy c di do sc kho v thnh cng hn na trong cng
vic ca mnh.
TP. H Ch Minh, thng 09 nm 2012
NHN XT CA GING VIN
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
TP. H Ch Minh, Ngy Thng Nm
Ging vin hng dn
MC LC
I . Khi qut ti ..................................................................................................... 02
I.1 Gii thiu s lc cc modul ca mch ........................................................ 02
I.2 S nguyn l ............................................................................................... 03
I.3 Cch vn hnh mch ...................................................................................... 04
I.4 Khuyt im ca mch ................................................................................... 08
II . Gii thiu cc linh kin s dng trong mch .................................................... 08
II.1 Vi iu khin PIC16F887 ............................................................................. 08
II.1.1 Khi qut ............................................................................................... 08
II.1.2 S chn ca PIC16F887 .................................................................. 10
II.1.3 T chc b nh ..................................................................................... 11
II.1.3.1 B nh chng trnh ............................................................... 11
II.1.3.2 B nh d liu .......................................................................... 12
II.1.3.3 Thanh ghi chc nng c bit SFR ........................................ 14
II.1.3.4 Thanh ghi dng chung v Stack ............................................. 14
II.1.4 Chc nng cc PORT trong PIC16F887 ............................................ 15
II.1.4.1 PORT A .................................................................................... 15
II.1.4.2 PORT B .................................................................................... 15
II.1.4.3 PORT C .................................................................................... 16
II.1.4.4 PORT D .................................................................................... 16
II.1.4.5 PORT E .................................................................................... 16
II.1.5 Cc vn v timer .............................................................................. 16
II.1.5.1 Timer 0 ...................................................................................... 16
II.1.5.2 Timer 1 ...................................................................................... 19
II.1.5.3 Timer 2 ...................................................................................... 22
II.1.6 Ngt (interrup) ...................................................................................... 24
II.1.6.1 Gii thiu .................................................................................. 24
II.1.6.2 Ngt Timer 1 ............................................................................ 27
II.1.6.3 Ngt USART ............................................................................ 27
II.1.7 PWM(Pulse Width Modulation) ......................................................... 28
II.1.8 AUSART ................................................................................................ 31
II.1.8.1 Gii thiu .................................................................................. 31
II.1.8.2 Qu trnh truyn d liu ......................................................... 32
II.1.8.3 Qu trnh nhn d liu ............................................................ 35
II.2 in tr .......................................................................................................... 37
II.3 T in ........................................................................................................... 38
II.4 Diode ............................................................................................................... 40
II.4.1 LED(diode pht quang) ....................................................................... 40
II.4.2 Diode chnh lu ..................................................................................... 40
II.5 Jack cm ........................................................................................................ 41
II.6 Nt nhn, bn phm ...................................................................................... 41
II.7 IC 7805, 7812 thuc h 78xx ........................................................................ 41
II.8 IC L298 .......................................................................................................... 42
II.9 IC Max 232 .................................................................................................... 45
II.10 LCD 2x16 ..................................................................................................... 46
II.11 i tng iu khin ng c DC ............................................................. 47
III. Cc khi chc nng ca n ........................................................................... 48
III.1 Gii thiu s khi ca ton b mch .................................................... 49
III.2 S nguyn l phn cng v chc nng tng phn .............................. 49
III.2.1 Khi ngun .......................................................................................... 49
III.2.2 Khi trung tm PIC16F887 ............................................................... 50
III.2.3 Khi hin th LCD .............................................................................. 51
III.2.4 Khi nt nhn ..................................................................................... 52
III.2.5 Khi cng sut(khi o chiu ng c) ........................................... 52
III.2.6 Khi RS232 .......................................................................................... 53
IV. S gii thut ca chng trnh ..................................................................... 54
IV.1 Lu gii thut ca chng trnh trn vi iu khin PIC16F887 ....... 54
IV.2 Lu gii thut ca phn mn iu khin trn my tnh ..................... 62
Ti liu tham kho ..................................................................................................... 90
LI M U
Trong thi i khoa hc k thut pht trin ngy nay, cc my mc thit b l
khng th thiu c trong cuc sng hng ngy. M ng c l thnh quan trng khng
th thiu c trong cc loi my mc thit b , my mc thit b cng hin i th ng
c ca n phi hin i. Mun nm bt v dng my mc thit b mt cch hiu qu th
chng ta phi tc ng vo n n pht huy ht tim lc.
ng c DC l mt i tng iu khin thng gp trong thc t, n ng dng
rng ri trong hc tp, cng nghip, dn dng, quc phng...
Trong cc dy chuyn sn xut, ng c dng ko bng ti hay ng c dng
cn vt liu, giy, nha, cao su, thp v nhng ng dng trong cng nghip dt may, ha
cht, cu ng Hay ng c in mt chiu dng trong cc robot ngy nay.
Ngoi ra, cc thng s ca ng c s c iu khin trn mt thit b iu khin
nh PC, PLC, CNC, Vi X L gim st qu trnh hot ng ca ng c.
Vi nhng ng dng rng ri ca ng c DC nu trn nn nhm chng xin em
chn ti iu khin tc ng c DC bng my tnh nghin cu.
Vi ti ny, v vi nhng kin thc nhm chng em hc tp c ti trng.
Em xin chn Vi x l PIC16F887 l khi iu khin ng c, vit phn mn trn my
tnh gim st vic iu khin ng c.
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 2 Mnh Cng
NI DUNG
I. Khi qut ti
I.1 Gii thiu s lc cc modul ca mch
Tn ti : iu khin tc ng c DC giao tip my tnh.
Yu cu t ra: Lp trnh PIC16F887 bng ngn ng C iu khin tc ng
c DC c giao tip vi my tnh v encoder hi tip tc . Tc c ci t t phm
nhn hoc trn phn mm my tnh v tc tc thi hi tip t encoder c hin th
trn mn hnh LCD 16x2 v mn hnh phn mm.
Tm tt hng thc hin ti :
S dng Pic 16F887 l vi iu khin trung tm. Dng chng trnh MPLAB
vit bng nmgn ng lp trnh C v bin dch chng trnh.
Xy dng khi phm nhn gm 8 phm t tc v iu khin ng c
DC ch bng tay:
2 nt nhn thay i chiu ng c quay (+) hoc (-) v cho php ng c hot ng.
2 phm tng hoc gim gi tr tc t 1 nt Stop cho dng ng c v reset li gi tr tc t 2 nt chn khong cch tng hoc gim gia 2 gi tr tc . nt dng chn ch iu khin bng tay hoc giao din my
tnh.
Hin th tc dng mn hnh LCD 16x2, ch 4 bit nhn d liu t PIC.
S dng mch cu H l IC L298 o chiu ng c
S dng 2 knh PWM ca vi iu khin PIC iu khin tc
i tng iu khin l ng c DC 12V c gn encoder.
Phn b cp ngun cho ton mch dng IC 7805 n p in p ra 5V
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 3 Mnh Cng
I.2 S nguyn l mch
Hnh : S nguyn l mch
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 4 Mnh Cng
I.3 Cch vn hnh mch
B1: Bt ngun cho cc b phn trong mch khi ng t bit PIC v LCD
B2: Chn ch iu khin bng tay hoc giao din my tnh bng cch nhn nt
trong khi nt nhn.
B3(ch bng tay): Nhp tc t bng cch tng hoc gim gi tr trong
khong t 300-2300 vng/pht, chn chiu quay ca ng c, reset li tc mi cho
ng c v cho ng c chy vi tc mi. Tt c thng tin tc t v tc gi
v,chiu quay... s c hin th bi LCD. iu khin cc chc nng ny u dng bng
nt nhn ca khi nt nhn.
B4: Cho dng ng c v nu mun iu khin thng qua giao din my tnh th
chn ch iu khin PC. Trng hp ny khc phc c nhc im l khng phi
tng gim gi tr qua nhiu ln nhn nt(hoc nt lin tc) m ch cn nhp gi tr c
th mong mun.
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 5 Mnh Cng
B5(ch giao tip PC): ch ny vi iu khin v my tnh s c lin kt
vi nhau v iu khin ng c bng phn mm trn my tnh. Trn phn mm vn c cc
chc nng t tc , o chiu ng c, thu nhn tc tc thi ca ng c ang quay
hin ti. Cn cho php thay i tc t, thng k d liu thu thp c theo dng biu
d quan st v nhn xt nh gi.
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 6 Mnh Cng
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 7 Mnh Cng
Hnh nh phn mn iu khin trn PC.
V th tc ng c c v trn my tnh tc l 1950 RPM(C o chiu ng
c 1 ln)
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 8 Mnh Cng
I.4 Khuyt im ca mch:
Do khng p dng cc phng php iu khin hin i( v d : PID, iu khin
m,...) nn tc ng c c phn cha hon ton n nh vi c sai lch.
Mch cu H s dng L298 ch iu khin c ti ng c c cng sut nh.
Khi hin th, do tnh cht ca LCD nn hn ch trong vic hin th thng tin( hin
th tng i t), kh quan st gi tr hin th trong khang cch xa.
Phn giao din my tnh cng cha tht hon thin v mt chun ca mt phn
mm, cha c kh nng iu khin t xa( khng dy online hoc dng mng iu
khin). Biu thng k m t thng xuyn b chng ln vi nhau bi cc gi tr t
mi v c.
II. Gii thiu cc linh kin s dng trong mch
II.1 Vi iu khin PIC16F887
II.1.1 Khi qut
PIC l tn vit tt ca Programmable Intelligent Computer do hng General
Instrument t tn cho con vi iu khin u tin ca ho. Hng Microchip tip tc pht
trin sn phm ny cho n ngy nay.
PIC16F887 l dng PIC kh ph bin, y cc tnh nng phc v cho hu ht tt
c cc ng dng trong thc t. L dng PIC d dng lm quen v hc tp, t tip cn
n cc dng cao cp hn.
PIC16F887 thuc h vi iu khin 16FXXX nn s c chung cc t tnh sau:
Ngn ng lp trnh n gin vi 35 tp lnh.
Tt c c thc hin trong mt chu k my ngoi tr c 1 s cu lnh c thc
hin nhiu hn 1 cu lnh. 1 chu k lnh bng 4 ln chu k dao ng ca thch
anh.
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 9 Mnh Cng
B nh chng trnh Flash 8192 words, c kh nng ghi, xa ln ti 100 ngn ln.
B nh Ram 368 Byte. B nh EEPROM 256 Byte.
Kh nng ngt ngoi, ngt ni(ngt timer, ngt Uart).
C 14 chn chuyn i ADC(anlog to Digital converter).
in th hot ng t 2.0V n 5.5V.
C 3 timer: timer0, timer2 l nhng timer 8 bit, timer1 l timer 16 bit.
C 2 knh Capture/compare/PWM 10 bit.
Do yu cu ca n nn chng em ch tp trung tm hiu cc tnh nng chnh ca
PIC c lin quan n ti nh:
T chc b nh Chc nng ca cc I/O Cch thit lp v nhim v ca timer 1, 2, 3. Cch thit lp v nhim v ca PWM. Cch thit lp v nhim v ca UART nh ngha v ngt, tim hiu v ngt v cch thc hot ng ca ngt
Ta c s nguyn l ca PIC16F887 nh sau:
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 10 Mnh Cng
II.1.2 S chn ca PIC16F887.
Ta c s chn nh sau:
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 11 Mnh Cng
T s trn ta c th thy rng:
PIC16F887 c tng cng l 40 chn(loi 40 chn nh hnh)
40 chn c chia thnh 5 PORT I/O, 2 chn cp ngun, 2 chn GND, 2 chn dng
cho dao ng thch anh v 1 chn reset PIC
5 PORT ca PIC16F887 bao gm:
PORT A: 6 chn t RA0 n RA5. PORT B: 8 chn t RB0 n RB7. PORT C: 8 chn t RC0 n RC7. PORT D: 8 chn t RD0 n RD7. PORT E: 3 chn t RE0 n RE2.
II.1.3 T chc b nh.
II.1.3.1 B nh chng trnh.
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 12 Mnh Cng
B nh chng trnh ca PIC16F887 l b
nh Flash, dung lng b nh l 8K word(1
word = 14bit) v c phn thnh 4 trang nh
hnh bn.
Khi reset, b m chng trnh s ch n
a ch 0000h. khi c ngt b m chng trnh
s ch n a ch 0004h. B nh chng trnh
khng bao gm b nh Stack v khng c a
ch ha bi b m chng trnh.
II.1.3.2 B nh d liu.
B nh d liu ca PIC16F887 c chia
thnh 4 bank. Mi bank c dung lng l 128 byte.
Mi bank s c cc thanh ghi chc nng c bit nm cc nh a ch thp v
cc thanh ghi mc ch dng chung GPR nm vng a ch cn li ca mi bank. Vng
nh cha cc thanh ghi mc ch dng chung ny chnh l ni ngi dng s lu tr d
liu ca chng trnh.
Trong cu trc b nh d liu ca PIC16F887, cc thanh ghi SFR no c s
dng nhiu s c t tt c cc bank thun tin trong vic truy xut.
Da trn s 4 bank b nh d liu PIC16F887 ta c th nhn xt nh sau:
Bank 0: gm cc nh t 00h n 77h. Cc thanh ghi PORT A, PORT B, PORT
C, PORT D, PORT E u c ch bank 0. Cc thanh ghi dng chung ch d liu
c a ch t 20h n 7Fh. Ngoi ra cn 1 s thanh ghi khc s th hin trn hnh.
Bank 1: gm cc nh t a ch 80h n FFh. Cc thanh ghi TRISA, TRISB,
TRISC, TRISD, TRISE s c ch bank ny. a ch cc thanh ghi dng chung l
t A0h n EFh.
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 13 Mnh Cng
Bank 2: gm cc nh t a ch 100h n 17Fh.
Bank 3: gm cc nh t a ch 180h n 1FFh
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 14 Mnh Cng
II.1.3.3 Thanh ghi chc nng c bit SFR(Special Function Register)
y l cc thanh ghi c s dng bi CPU hoc c dng thit lp v iu
khin cc khi chc nng c tch hp sn bn trong vi iu khin. c 2 loi thanh ghi
SRF l:
Thanh ghi SRF lin quan n cc chc nng bn trong CPU
Thanh ghi SRF dng thit lp v iu khin cc khi chc nng beeb ngoi(
ADC, PWM,)
Mt s thanh ghi chc nng c bit:
Thanh ghi STATUS(03h, 83h, 103h, 183h): thanh ghi cha kt qu thc hin cc
php ton ca khi ALU.
Thanh ghi OPTION_REG(81h, 181h): thanh ghi cho php c v ghi, cho php
iu khin cha nng pull-up ca cc chn PORTB, cnh tc ng ca ngt ngoi vi v b
m Timer 0.
Thanh ghi INTCON(0Bh, 8Bh, 10Bh, 18Bh): thanh ghi cho php c, cha cc
bit iu khin v cc c khi timer0 trn, ngt ngoi vi RB0/INT...
Thanh ghi PIE1(8Ch): cha cc bit iu khin ca khi ngt ngoi vi.
Thanh ghi PIR1(0Ch): cha cc c ngt ca cc khi chc nng ngoi vi, cc ngt
ny c cho php bi cc bit trong thanh ghi PIE1.
Thanh ghi PIE2(8Dh): cha cc bit iu khin ngt ca cc khi chc nng
CCP2, SSP bus, ngt ca b so snh v ngt khi ghi d liu vo EEPROM.
Thanh ghi PCON(8Eh): cha cc c hiu cho bit trng thi reser ca vi iu
khin.
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 15 Mnh Cng
II.1.3.4 Thanh ghi dng chung GPR(general Purpose Register) v Stack
Cc thanh ghi ny c th truy xut trc tip hay gin tip thng qua thanh ghi
FSG(File Select Register). y l cc thanh ghi bnh thng, ngi dng c th s dng
theo mun ca mnh cha cc gi tr, bin s hoc cc tham s.
Stack khng nm trong b nh chng trnh hay b nh d liu m l mt vng
nh c bit khng cho php ghi hay c. khi c lnh gi n(ngt trong chng trnh) th
gi tr ca b m trong chng trnh s t ng c ct vo trong Stack. Sau khi thc
hin xong khi lnh ngt th chng trnh s t ng ly gi tr trong Stack tip tc
cng vic.
II.1.4 Chc nng cc PORT trong PIC16F887
II.1.4.1 PORT A
PORT A gm c 6 chn I/O. c ngha l va c th xut, va c th nhp. Chc
nng I/O c iu khin bi thanh ghi TRISA. Mun t chc nng cho cc chn, ta ch
cn set cc bit iu khin c trong thanh ghi TRISA vi iu khin c th hiu l xut
hay nhp. Tng ng, ta cng c th lm tng t cho cc PORT khc.
Ngoi ra, PORT A cn c 1 s chc nng quan trng sau:
Ng vo Analog ca b ADC, ng vo in th so snh
Ng vo xung Clock ca timer0 chn T0CKI(RA4) thc hin cc
nhim v m xung thng qua timer0
Ng vo ca b giao tip MSSP(Master Synchronous Serial Port)
II.1.4.2 PORT B
PORT B gm c 8 chn I/O. thanh ghi iu khin xut nhp l TRISB
Ngoi ra 1 s chn ca port ny c lin quan n vic np chng trnh cho vi iu
khin cc ch np khc nhau. PORT B ca PIC16F887 c tch hp tnh nng in
tr ko ln trn ton PORT c iu khin bi chng trnh.
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 16 Mnh Cng
II.1.4.3 PORT C
C 8 chn I/O c iu khin di thanh ghi TRISC. Ngoi ra, PORT C cn c
cc chc nng quan trng nh sau:
Ng vo xung Clock cho Timer1
B PWM thc hin chc nng iu ng xung ra bi 2 chn RC1(CCP2),
RC2(CCP1).
Tch hp cc b giao tip I2C, SPI, SSP, USART(chn RC6-TX, chn RC7-
RX)
II.1.4.4 PORT D
Cng c 8 chn I/O c iu khin xut nhp bi thanh ghi TRISD. Ngoi ra cn
l cng xut d liu chun giao tip song song PSP.
II.1.4.5 PORT E
Cng c 3 chn I/O c iu khin xut nhp bi thanh ghi TRISE. Cc chn ny
c ng vo l Analog(c th chuyn i thng Digital).
C chn iu khin ng ngt cho PWM chn RE0.
II.1.5 Cc vn v timer
PIC 16F887 c tt c 3 b timer: timer 0(8 bit), timer 1(16 bit), timer 2(8 bit)
II.1.5.1 Timer 0
L b nh thi, b m c nhng u im sau: 8 bit cho b nh thi hoc b m.
C kh nng c v vit
C th dng ng h bn trong hoc bn ngoi
C th chn xung ca h
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 17 Mnh Cng
C th chn h s chia t l
Ngt trn timer
Hot ng ca timer 0:
Timer 0 c th hot ng nh mt b nh thi hoc mt b m. Vic chn chc
nng ny c thc thin bng cch xc lp bit TOCS ca thanh ghi OPTION_REG
Nu dng h s chia t l th phi t bit PSA = 0 ca thanh ghi OPTION_REG
Trong ch s dng b nh thi, gi tr s tng sau 1 chu k lnh(nu khng
chn h s chia t l). Gi tr ca n s c vit trong thanh ghi TRM0.
Khi dng xung bn ngoi. Phi p ng cc iu kin xung Clock bn ngoi
ng b vi xung clock ni(Tosc).
H s chia t l cho timer0 th khng c kh nng c v vit. chn h s chia t
l cho timer 0 ta cn tt bit PAS v chn cc gi tr cho cc bit PS1, PS2, PS0.
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 18 Mnh Cng
B chia t l gip ngi s dng qun l tt hn thi gian ca timer0 vo nhng
mc ch khc nhau.
Ngt ca b timer 0
Ngt ca timer 0 hot ng khi thanh ghi TMR0 trn t FFh v 00h. lc bit
TOIF s c bt ln 1. Bit ny phi c xa bng phn mn c th cho php T0IE
c set.
Cc thanh ghi lin quan n Timer0 bao gm
Thanh ghi OPTION_REG: iu khin hot ng ca Timer0
Bit 7 RBPU kch hot chc nng in tr ko ln
1 = kch hot chc nng in tr ko ln PORT B 0 = khng s dng
Bit 6: chn chc nng cho ngt ngoi(trong ti khng s dng)
Bit 5 TOCS bit la chn ngun xung
1 = Clock ngoi t chn T0CKI 0 = Clock trong vi iu khin Focs/4
Bit 4 TOSE bit la chn cnh xung
1 = tng khi chn T0CKI c xung ln. 0 = tng khi chn T0CKI c xung xung.
Bit 3 PSA bit chn b chia t l
1 = gn b chia t l cho WDT 0 = gn b chia t l cho timer0
Bit PS: l nhng bit la chn h s chia t l theo bng bn
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 19 Mnh Cng
Thanh ghi TRM0: cha gi tr ca b nh thi timer0
Thanh ghi INTCON:(s trnh by trong phn ngt) cho php ngt hot ng, l thanh ghi
cha cc bit iu khin v cc c bit khi timer0 trn, ngt ngoi vi
II.1.5.2 Timer 1
Gii thiu v timer 1
Timer 1 l b nh thi 16 bit, gi tr timer 1 s c lu trong hai thanh ghi 8 bit
TMR1H:TMR1L. C ngt ca Timer1 l bit TMR1IF, bit iu khin ca timer1 l
TMR1IE. Cp thanh ghi TMR1 s tng t 0000h n FFFFh ri trn v 0000h. nu ngt
cho php n s xy ra khi gi tr TMR1 trn t FFFFh v 0000h, lc ny TMR1IF s c
bt ln v cn phi xa bng phn mn.
S khi ca timer1:
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 20 Mnh Cng
Timer1 c 3 ch hot ng: Ch hot ng nh thi ng b: ch c la chn bi bit
TMR1CS. Trong ch ny xung cp cho timer1 l Fosc/4.
Ch m ng b: gi tr ca timer1 s tng khi c cch ln vo chn
T1OSI/RC1. Xung clock s c ng b vi xung clock ni, hot ng
ny c thc hin ngay sau khi qua b chia t l
Ch m bt ng b: ch ny hot ng khi bit T1SYNC c set.
B nh thi tip tc m trong qu trnh ng(Sleep) ca vi iu khin v c
kh nng to ra 1 ngt khi timer1 trn thot khi trng thi ng.
Cc thanh ghi lin quan ti Timer1 bao gm:
INTCON: cho php ngt hot ng.
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 21 Mnh Cng
PIR1: cha c ngt timer1(TMR1IF)
PIE1: cho php ngt timer1(TRM1IE)
3 thanh ghi ny s trnh by cc thanh ghi ca Ngt trong PIC16F887
TMR1L: cha gi tr 8 bit thp ca b m timer1
TMR1H: Cha gi tr 8 bit cao cu b m timer1
T1CON: xc lp cc thng s cho b timer1
Bit 7,6 khng c s dng trong timer1
Bit 5,4 T1CKPS: la chn t l chia u vo
11 = 1:8 t l chia 10 = 1:4 t l chia 01 = 1:2 t l chia 00 = 1:1 t l chia
Bit 3 T1OSCEN iu khin b dao ng ca Timer1
1 = cho php dao ng 0 = khng cho php hot ng
Bit 2 T1SYNC bit iu khin xung ngoi ng b khi TMR1CS = 1
0 = ng b clock ngoi 1 = khng ng b xung clock ngoi
Bit 1 TRM1CS bit la chn ngun xung
1 = xung t chn RC0/T1OSO/T1CKI 0 = xung ni Fosc/4
Bit 0 TRM1ON dng iu khin timer1
1 = cho php timer1
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 22 Mnh Cng
0 = khng cho php timer1
II.1.5.3 Timer 2:
gii thiu chung: L b nh thi 8 bit bao gm:
1 b tin nh prescaler (1:1,1:4,1:16). 1 b hu nh Postscaler (1:1 n 1:16). 1 thanh ghi chu k PR2.
Vic kt hp timer 2 vi 2 b nh t l cho php n hot ng nh 1 b nh thi
16 bit.Module timer 2 cung cp thi gian hot ng cho ch iu bin xung PWM nu
module CCP c s dng.
Hot ng: Ngun xung clock u vo ca b Timer 2 l xung ca mt phn t xung clock ca
h thng (Fosc/4). Tip theo xung clock s c chia tip b tin nh Prescaler vi cc
t l (1:1,1:4,1:16). Ng ra ca b tin nh lm tng b m TMR2.Vic la chn t l b
tin nh c th iu khin bng cc bit T2CKPS.
Hnh th hin s khi ca timer2
Gi tr ca TMR2 v PR2 s c so snh vi nhau, gi tr ca TMR2 tng t 00h
n khi no bng vi gi tr ca PR2 th lc s xy ra 2 vn :
TMR2 s Reset tr v 00h trong chu trnh k tip. B hu nh Postscaler s c tng ln
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 23 Mnh Cng
Ng ra ca gi tr so snh gia TMR2 v PR2 s c chia t l tip b hu nh
Postscaler vi cc h s (1:1 n 1:16).Ng ra ca b hu nh Timer 2 Postscaler s
c s dng bt bit c ngt TMR2IF trong thanh ghi PIR1.
Vic la chn t l b hu nh c th iu khin bng cc bit TOUTPS.
Thanh ghi TMR2 v PR2 u c kh nng c v ghi. Khi reset, TMR2 s tr v
gi tr 00h, cn PR2 s tr v gi tr FFh.
Timer 2 c bt hot ng khi bt bit TMR2ON trong thanh ghi T2CON ln 1
v bit TMR2ON xung 0 th s tt Timer 2.
Thanh ghi iu khin Timer 2 (thanh ghi T2CON):
Bit 7 : mc nh l 0, khng s dng trong ti ca n
Bit 6-3 : TOUTPS : bit iu khin t l chia b hu nh Postscaler
Timer 2:
Bit 2 TMR2ON l bit cho php Timer 2 hot ng
1 = Timer 2 hot ng 0 = Timer 2 tt
Bit T2CKPS: bit iu khin b chia t l ca b tin nh Prescaler
Timer 2
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 24 Mnh Cng
0 0 = 1:1 0 1 = 1:4 1 1 = 1:16
II.1.6 Ngt (interrup)
II.1.6.1 Gii thiu
PIC 16F887 c cc ngun to ra ngt c iu khin bi thanh ghi INTCON( bit
GIE). Bn cnh mi ngt cn c 1 bit iu khin v c ngt ring. Cc c ngt vn
c set bnh thng khi tha mn iu kin ngt xy ra bt chp trng thi ca bit GIE,
tuy nhin hot ng ngt vn ph thuc vo bit GIE v cc bit khc. Bit iu khin ngt
RB0/INT v TMR nm trong thanh ghi INTCON, thanh ghi ny cn cha bit cho php
cc ngt ngoi vi PEIE. Bit iu khin cc ngt nm trong thanh ghi PIE1 v PIE2. C
ngt ca cc ngt nm trong thanh ghi PIR1 v PIR2.
Trong mt thi im ch c mt chng trnh ngt c thc thi, chng trnh ngt
c kt thc bng lnh RETFIE. Khi chng trnh ngt c thc thi, bit GIE t ng
c xa, a ch lnh tip theo ca chng trnh chnh c ct vo trong b nh Stack
v b m chng trnh s ch n a ch 0004h. Lnh RETFIE c dng thot khi
chng trnh ngt v quay v chng trnh chnh, ng thi bit GIE cng s c set
cho php cc ngt hot ng tr li. Cc c hiu c dng kim tra ngt no ang
xy ra v phi c xa bng chng trnh trc khi cho php ngt tip tc hot ng tr
li ta c th pht hin c thi im tip theo m ngt xy ra.
i vi cc ngt ngoi vi nh ngt t chn INT hay ngt t s thay i trng thi
cc pin ca PORTB, vic xc nh ngt no xy ra cn 3 hoc 4 chu k lnh ty thuc vo
thi im xy ra ngt.
Cn ch l trong qu trnh ngt c thc thi,ch c gi tr ca b m chng
trnh c ct vo trong Stack,trong khi mt s thanh ghi quan trng s khng c ct
v c th b thay i gi tr trong qu trnh thc thi chng trnh ngt. iu ny nn c
x l bng chng trnh trnh hin tng trn xy ra.
Cc ngun ngt ca PIC 16F887:
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 25 Mnh Cng
RTCC hoc TIMER0 : ngt trn Timer 0
RB: ngt khi c s thay i trng thi trn cc chn RB4-RB7 PORTB
EXT (External Interrupt): ngt ngoi khi c s thay i trng thi chn
RB0 ca PORTB.
AD: ngt khi b chuyni tn hiu tng t sang tn hiu s
TBE: ngt khi b m ca cng RS232 rng.
RDA: ngt khi cng RS232 nhn tn hiu
TIMER1: ngt khi timer1 b trn
TIMER2: ngt khi timer 2 b trn
CCP1;CCP2: ngt khi b capture hoc b Compare(b so snh in p) hot
ng knh 1 hoc 2.
SSP: ngt khi SPI hoc I2C hot ng
PSP: ngt khi truyn nhn d liu song song
BUSCOL: ngt khi xung t ng truyn.
EEPROM: ngt khi ghi xong d liu
COMP: ngt sau khi thc hin so snh tn hiu.
Hnh trn l s hot ng ngt ca PIC16F887.
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 26 Mnh Cng
Thanh ghi INTCON :Thanh ghi iu khin ngt
Bit 7: GIE: bit cho php ngt ton cc
1= cho php ngt 0 = khng cho php ngt
Bit 6: PEIE :bit cho php ngt thit b ngoi vi
1 = cho php ngt 0 = khng cho php ngt
Bit 5 : T0IE : bit cho pho ngt Timer 0
1 = cho php ngt timer 0 0 = khng cho php ngt timer 0
Bit 4: INTE: bit cho php ngt ngoi
1 = cho php ngt 0 = khng cho php ngt
Bit 3 : RBIE : bit cho php ngt RB4-RB7
1 = cho php ngt 0 = khng cho php ngt
Bit 2: TOIF : c bo trn timer 0
1 = trn timer 0 0 = timer 0 cha trn
bit 1 INTF: c ngt ngoi RB0/INT
bit 0 RBIF: c ngt RB4-RB7
cho php ngt ngoi hot ng ngoi thanh ghi OPTION_REG hot ng th
cn thm 3 bit set ln 1 l bit GIE, INTE, INTF ca thanh ghi INTCON.
Trong khun kh ni dung n ny s dng 2 loi ngun ngt l ngt timer1 khi
timer1 trn v ngt AUSART khi truyn d liu t trn my tnh xung vi iu khin
PIC16887.
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 27 Mnh Cng
II.1.6.2 Ngt Timer 1: Cp thanh ghi TMR1H v TMR1L cha gi tr m ca Timer 1, chng tng t gi tr 0000h n gi tr FFFFh, n gia tr ny nu tip tc tng th timer 1 s b trn v
quay li gi tr 0000h. V ngt xut hin khi trn qu gi tr FFFFh khi ny c ngt
TMR1IF s c t. Ngt c th hot ng hoc khng hot ng nh vic t hoc xa
bit TMR1IE.
S hot ng ca timer 1
Thanh ghi iu khin timer 1(T1CON) c gii thiu trn.
Cc bit trong cc thanh ghi lin quan ngt Timer 1:
Sau khi TMR1ON = 1 : timer 1 hot ng th khi ngt cn :
Thanh ghi PIE1 : bit TMR1IE= 1 : khi ng bit cho php ngt
Timer 1
Thanh ghi PIR1 : bit TMR1IF = 1 : bit c bo trn timer 1 ngt
Thanh ghi INTCON : bit PEIE = 1 : bit cho php ngt ngoi vi
II.1.6.3 Ngt USART
Ngt AUSART l ngt ngoi vi trong ngt. ngt ny xy ra khi c d liu truyn t
my tnh xung vi iu khin. N c iu khin bi bit RCIE trong thanh ghi PIE1 v
RCIF trong thanh ghi PIR1. Khi c s truyn d liu t giao tip chun AUSART th bit
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 28 Mnh Cng
RCIF c set ln 1. Lc ny ngt xy ra, tt nhin lc ta phi cho php ngt
AUSART t bit RCIE. Bit RCIF s c xa bng phn mn i ngt th 2 xy ra.
Thanh ghi PIE1:
Thanh ghi PIR1:
II.1.7 PWM(Pulse Width Modulation)
iu khin tc ng c DC th c nghiu cch khc nhau. Nhng vi nhng
g chng em c hc th nhm chung em xin a ra phng php iu ch rng
xung(PWM) iu khin tc .
Tm hiu v PWM l g:
L phng php iu ch dng xung vung c Duty Cylce thay i c ti mt tn s
xc nh trc ng ra. Cung cp nhng tnh nng thun li cho vic iu khin v kt
ni vi ng c qua khi mch cu.
C lin quan mt thit vi cc thanh ghi CCP
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 29 Mnh Cng
Cch hot ng ca PWM
Tnh hiu iu ch c s ra
2 chn CCP1 v CCP2
Cc thanh ghi lin quan ti
PWM l PR2, T2CON, CCPRxL,
CCPxCON.
Khi ch PWM th ta cn
iu khin cc chn CPP l cc
chn Output bng cch iu khin
thanh ghi TRISC l ng ra. Sau
ta s t gi tr cho chu k xung da
vo bit PR2(tc l ly thi gian ca
timer2 iu khin chu k xung
ca PWM).
Ta c cng thc tnh chu k xung vo cng thc sau y:
Thit lp rng xung bng cch a gi tr vo cho bit CCPRxL ca thanh ghi
CCP1CON. Sau ta s thit lp b chia tng ca timer 2 l 1:1 da vo thanh ghi
T2CON l cc bit T2CKPS c ni trong timer2.
Ta c cng thc tnh gi tr cho rng xung nh sau:
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 30 Mnh Cng
Gi tr trong thanh ghi TRM2 bng vi gi tr trong thang ghi PR2 th thanh ghi
TRM2 s t ng c xa bt u 1 chu k mi.
By gi ta s xt 1 v d d hiu hn phn ny:
V d: Cho dao ng ni Thch Anh l 4 MHz. ta c chu k PR2 = 99, b chia tng ca timer2 l 1:1. Tnh gi tr chu k PWM, mun chu k lm vic bng 50% th ta s c gi tr ca CCPRxL l bao nhiu?
Gii:
Theo cng thc tnh gi tr chu k.
PWM Period = 4*Tosc*(PR2+1)*gi tr b chia trc ca timer2
Vi Tosc = 1/Fosc
Vy ta s c chu k ca PWM l:
PWM = 4 * 0.00000025 * (99+1) * 1 = 0.0001 (s) = 0.1(ms)
By gi, ta mun chu k lm vic l 50% tc l thi gian ca rng xung l 0.1/50% = 0.05 (ms)
Vy p dng cng thc tnh rng xung, ta c:
Pulse Width = * Tosc * gi tr b chia trc ca timer2
0.05(ms) = * 0.00000025 * 1
==> = 0.00005 / 0.00000025 = 200
Nhng y l gi tr ca 10bit trong c 8 bit xc nh gi tr(CCPRxL) v 2 bit iu khin(CCPxCON).
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 31 Mnh Cng
By gi ta c. 200 = 2^7+2^6+2^3 = 00110010 00 => b i 2 bit cui. ta s c c
CCPRxL = 2^5 + 2^4 + 2^1 = 50;
Vy gi tr ca CCPRxL = 50 th rng xung s l 50%.
Cng thc tnh gi tr tring bnh ca in p ra ti:
Ud = Umax * (t0 / T) hay Ud = Umax * D
Vi Ud: l in p ra ti
Umax: l in p ngun cung cp
t0: l thi gian c xung
T: chu k ton b thi gian c thi gian c xung v khng c xung
D: h s chu k lm vic ca xung
V d: C in p ngun l 12V, chu k lm vic l 45% in p ra trn ti l
12 * 45% = 5.4(V)
II.1.8 AUSART
II.1.8.1 Gii thiu :
L giao tip ngoi vi qua chun ni tip cn c gi l giao din truyn thng ni
tip.C th s dng giao din ny cho cc giao tip vi cc thit b ngoi vi, vi cc vi
iu khin khc hay vi my tnh. Cc dng ca giao din AUSART ngoi vi bao gm:
Bt ng b ng b_Master mode ng b_Slave mode Nhn v truyn: bt ng b song cng hoc ch/t ng b bn song cng.
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 32 Mnh Cng
Hnh thc s dng thng thng: giao tip qua RS232 vi cng ni tip ca PC(
cn driver cho b chuyn dch mc RS232).
Trong ni dung n ch gii thiu ch nhn v truyn: bt ng b bn song
cng.
ch truyn ny AUSART hot ng theo chun NRZ( None-Return-Zero),
ngha l cc bit truyn i s bao gm 1 bit Start, 8 hay 9 bit d liu ( thng thng l 8
bit), 1 bit Stop. Bit LSB s c truyn i trc. Cc khi truyn v nhn d liu c lp
vi nhau s dng chung tn s tng ng vi tc baund cho qu trnh dch d liu (tc
baund thng gp 16 hay 64 ln tc dch d liu ty theo gi tr ca bit BRGH), v
m bo tn h1 bit Start, 8 hay 9 bit d liu ( thng thng l 8 bit), 1 bit Stop. Bit
LSB s c truyn i trc. Cc khi truyn v nhn d liu c lp vi nhau s dng
chung tn s tng ng vi tc baund cho qu trnh dch d liu (tc baund thng
gp 16 hay 64 ln tc dch d liu ty theo gi tr ca bit BRGH), v m bo tn
hiu qu ca d liu th hai khi truyn v nhn phi dng chung mt nh dng d liu.
II.1.8.2 Qu trnh truyn d liu:
Cc thanh ghi lin quan n qu trnh truyn d liu:
Thanh ghi INTCON (a ch 0Bh, 8Bh, 10Bh, 18Bh): cho php ton b cc ngt.
Thanh ghi PIR1( a ch 0Ch):cha c hiu TXIF( ch trng thi ca thanh ghi TXREG).
Thanh ghi PIE1( a ch 8Ch): cha bit cho php ngt truyn TXIE Thanh ghi RCSTA( a ch 18h): cha bit cho php cng truyn d liu Thanh ghi TXREG( a ch 19h): thanh ghi cha d liu cn truyn Thanh ghi TXSTA(a ch 98h): xc lp cc thng s cho giao din Thanh ghi SPBRG(a ch 99h): quyt nh tc baund(8 bit cho
AUSART,16 bit cho EUSART).
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 33 Mnh Cng
Truyn d liu theo giao din AUSART bt ng b tun t theo cc bc sau:
To xung truyn baund bng cch a gi tr cn thit vo thanh ghi SPBRG
L thanh ghi cha gi tr to xung clock cho b to xung BRG( Baund Rate
Generator). Tn s xung clock do BRG to ra c tnh theo cng thc sau v c iu
khin bi bit BRGH(Vi X l gi tr cha trong thanh ghi SPBRG).
SYNC BRGH=0(Low Speed) BRGH=1(High Speed)
0
1
(Bt ng b) Baund Rate=Fosc/(64(X+1))
(ng b) Baund Rate = Fosc/(4(X+1))
Baund Rate = Fosc/(16(X+1))
N/A
Cho php cng giao din ni tip bt ng b bng cch clear bit SYNC v set bit PSEN(thanh ghi TXSTA v thanh ghi RCSTA).
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 34 Mnh Cng
Thanh ghi TXSTA:
bit 7 CSRC : chn ngun ng b:
1 = ch ch ( xung ng h c pht ra t BRG) 0 = ch T(xung ng g t ngun ngoi)
bit 6 TX9: bit cho php truyn 9 bit
Bit 5 TXEN : bit cho php truyn, 1 kch hot TX , 0 : cm TX
Bit 4 SYNC : ch AUSART, 1 : ng b, 0 : bt ng b
Bit 3 SENB : bit dnh cho ch EUSART
Bit 2 BRGH : chn tc baund, 1: tc cao, 0: tc thp
Bit 1 TRMT : bit trng thi truyn ca thanh ghi dich TSR, 1 : TSR
trng , 0: TSR y.
Bit 0 TX9D : truyn d liu t bit 9 trong d liu 9 bit.
Thanh ghi RCSTA:
Bit 7 SPEN : khi ng PORT ni tip, 1: khi ng, 0: khng khi
ng
Bit 6 RX9 : 1: khi ng nhn 9 bit d liu, 0 : nhn 8 bit d liu
Bit 5 SREN : phng thc ng b ch, 1: khi ng tn hiu RX, 0
khng khi ng tn hiu RX
Bit 4 CREN : tip tc khi ng nhn d liu, 1: khi ng, 0: khng
khi ng
Bit 3 ADDEN: khi ng tng bit a ch, 1: khi ng, 0: khng khi
ng
Bit 2 FERR: 1 : kim tra li s kin(bit Stop khng c xa)
Bit 1 OERR: 1 li s kin trn
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 35 Mnh Cng
Bit 0 RX9D : nhn bit d liu th 9
Set bit TXIE nu cn s dng ngt truyn ( thanh ghi PIE1)
Set bit TX9(thanh ghi TXSTA) nu nh dnh d liu cn truyn l 9 bit
Set bit TXEN( thanh ghi TXSTA) cho php truyn d liu
Nu nh dng d liu l 9 bit,a bit d liu th 9 vo bit TX9D(thanh ghi
TXSTA).
a 8 bit d liu cn truyn vo thanh ghi TXREG
Nu s dng ngt truyn,cn kim tra li cc bit GIE v PEIE(thanh ghi
INTCON).
II.1.8.3 Qu trnh nhn d liu:
Cc thanh ghi lin quan n qu trnh nhn d liu:
Thanh ghi INTCON (a ch 0Bh, 8Bh, 10Bh, 18Bh): cho php ton b cc ngt.
Thanh ghi PIR1( a ch 0Ch): cha c hiu RCIF
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 36 Mnh Cng
Thanh ghi PIE1( a ch 8Ch): cha bit cho php ngt truyn RCIE Thanh ghi RCSTA( a ch 18h): xc nh cc trng thi trong qu trnh
nhn d liu
Thanh ghi RCREG( a ch 19h): thanh ghi cha d liu nhn c Thanh ghi TXSTA(a ch 98h): xc lp cc thng s cho giao din Thanh ghi SPBRG(a ch 99h): quyt nh tc baund(8 bit cho
AUSART,16 bit cho EUSART).
Nhn d liu theo giao din AUSART bt ng b tun t theo cc bc sau:
Thit lp tc Baund( a gi tr thch hp vo thanh ghi SPBRG v bit
BRGH).
Cho php cng giao tip AUSART bt ng b( clear bit SYNC thanh ghi
TXSTA v set bit SPEN thanh ghi RCSTA
` Nu s dng ngt nhn d liu, set bit RCIE thanh ghi PIE1
Nu d liu truyn nhn c nh dng 9 bit, set bit RX9 thanh ghi RCSTA
Cho php nhn d liu bng cch set bit CREN thanh ghi RCSTA
Sau khi d liu c nhn, set bit RCIF(thanh ghi PIR1) v ngt c kch
hot(nu bit RCIE c set).
c gi tr thanh ghi RCSTA c bit d liu th 9 v kim tra xem qu trnh
nhn d liu c b li khng.
c 8 bit d liu t thanh ghi RCREG
Nu qu trnh truyn nhn c li xy ra, xa li bng cch xa bit CREN
thanh ghi RCSTA
Nu s dng ngt nhn cn set bit GIE v GEIE( thanh ghi INTCON).
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 37 Mnh Cng
II.2 in tr(k hiu R)
in tr c chc nng hn dng (cn tr dng in) i qua mt vt th dn in.
Cng thc : URI
=
n v o in tr trong h SI : Ohm ( ).
K hiu nh hnh v bn:
Cch xc nh vng mu trn thn in tr:
in tr thng c 4 vng mu tng ng vi cc mu trong bng sau: en, nu, , cam, vng, lc, lam, tm, xm, trng v thm 2 mu sai
s l vng nh, bc.
Vng 1,2 l vng th hin gi tr Vng 3 l vng th hin h s m c s 10 Vng 4 th hin sai s(sai lch) ca in tr.
in tr c 5 vng mu: Vng 1,2,3 l vng th hin gi tr Vng 4 l vng th hin h s m c s 10 Vng 5 l vng th hin sai s ca in tr.
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 38 Mnh Cng
in tr cng sut lm vic chu c dng v p ln, khi lm vic thng s ta nhit nn thng c v bc s bn ngoi v hnh dng ln hn in tr bnh thng.
II.3 T in:
L linh kin th ng to bi hai b mt dn in c ngn cch bi in mi. Khi c chnh lch in th ti hai b mt, ti cc b mt s xut hin in tch cng cng nhng tri du.
C kh nng tch tr nng lng in do s tch t ca in tch trn hai b mt to ra kh nng tch tr nng lng in trng ca t in v c tnh tr khng i vi in xoay chiu.
Dng lc phng ngun vo trong b ngun v trnh tn s cao trong b giao tip RS-232.
in dung: i lng vt l c trng kh nng tch in gia 2 bn cc ca t in.
Cng thc : SCd
= n v l Fara(F)
L hng s in mi ca lp cch in d L chiu dy ca lp cch in S L din tch bn cc ca t in
K hiu :
Cc loi t in gii hn s dng trong n ny gm
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 39 Mnh Cng
T khng phn cc (t gm) : t khng c cc tnh v chng c lm bng ceramic, bn ngoi bc keo hoc nhum mu. Trong n ny c t c m 104, tc c gi tr l 100nF hay 0.1uF .
Cch quy c cch c gi tr ca t khng phn cc: Gi tr in dung quy c ghi theo n v l pF v ghi bng 3 con s,
C=(2 s u)x10(s th 3)pF
Dung sai(nu c) c ghi bng cc ch ci A,B,C...Z.Gi tr quy c ch ra trn bng sau:
T ha (t phn cc) : l loi t in c 2 u (-), (+)r rng,khng th mc ngc u trong mng in DC, thng l t tantalium,v cn mc in p chu ng cao hn mc p t trn linh kin khi mch hot ng. Gm cc loi 1000uF(25V), 10uF(50V), 2200uF(25V), 470uF(25V).
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 40 Mnh Cng
II.4 DIODE
II.4.1 LED (diode pht quang)
l linh kin c cc tnh nhm bo hiu c tn hiu (dng in) i qua bng cch pht sng.
Trong khung kh n, LED dng bo c ngun cc khi ngun, khi bn phm, khi iu khin v khi hin th LCD, tn hiu i chiu ng c trong khi cn sut L298.
II.4.2 Diode chnh lu
L linh kin to t ghp ni mt bn dn in m vi mt bn dn in dng.
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 41 Mnh Cng
K hiu :
Chc nng ging nh van mt chiu, dn in khi phn cc thun v kha khi phn cc nghch thng dng chnh lu dng xoay chiu.
Trong ni dung n ny, chc nng chnh l chnh lu in p xoay chiu ra ca my bin p b ngun dng 4 diot mc thnh cu hoc dng linh kin cu diot trn hoc dt c dng mc inh mc 1A.
II.5 Jack cm
C th dng cc loi nh Jac DC, domino, header... kt ni v lin lc cc thit b thuc cc khi ring bit li vi nhau.
II.6 Nt nhn, bn phm
L linh kin c chc nng ra lnh mt vic g thng qua tc ng nhn nt.
Trong khun kh n ny, ch yu dng lm chc nng Reset khi vi iu khin v chn cc lnh iu khin trong ch bng tay ca khi nt nhn.
II.7 IC 7805,7812 thuc h 78xx
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 42 Mnh Cng
H 78 thuc h IC n p in p ngun u ra dng. K hiu xx l gi tr in p u ra: 05 tng ng in p ra l 5V, 12 tng ng in p ra l 12Vdc.
C 2 loi IC 7805 v 7812 u c 3 chn:
chn 1: Vin- chn ngun u vo chn 2 : Ground chn ni t chn 3 : chn Vout chn ngun u ra.
IC7805 :
u vo Vin>3V. Gii in p cho php u vo ln nht l 40V. u ra n nh 5V, dy in p n nh lun nm trong on [4.75 5.25]V, dng
ra t 0.5-1A nu 7V
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 43 Mnh Cng
S chn theo datasheet:
Cc chn input1, 2, 3, 4 l cc chn ng vo tn hiu cho con L298, mi cp chn 1, 2 v 3, 4 s s dng b 4 con transistor ring quyt nh ng ra logic xc inh chiu quay ca ng c. Vy L298 s dng nhiu nht 2 mch cu H bn trong.
Cc chn output 1, 2 v 3, 4 l cc chn ng ra tn hiu logic tng ng vi cp ng vo input 1, 2 v 3, 4.
GND : chn ni t. Enable A : l chn cho php mch cu H vi ng vo v ra l 1, 2 hot ng.
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 44 Mnh Cng
Enable B: l chn cho php mch cu H vi ng vo v ra l 3, 4 hot ng. Sense A, B l dng ra qua ti ca 2 mch cu H Vs supply voltage: in p cung cp cho L298 hot ng ln n 50V Vss: logic supply voltage : in p logic cung cp cho L298.
Gii thiu mch cu H:
Mch c cu to bi 4 transitor hay Fet hoc 2transitor v 2 Fet.
Tc dng ca cc transitor v Fet l cc van ng ngt dng in t ngun xung ti vi cng sut ln. Tn hiu iu khin l tn hiu nh(dng hay in p) v cho dn dng v in p ln cung cp cho ti.
Mch cu H c th o chiu dng in qua ti nn thng c dng trong cc mch iu khin o chiu ng c bng cch m kha cc van ng chiu.
Trong khun kh n ny s dng mch cu H 4 con transitor v L298 cng l IC cu H dng transitor nn ch gii thiu v mch cu H dng transitor m thi:
S nguyn l mch cu H dng 4 transitor cng knh N.
Xt ch thun v ngch nh sau:
Nh chng ta bit iu kin ng m cc transitor l:
i vi knh N m th Ube>0 v m transitor bng dng in i vi knh P m th Ube
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 45 Mnh Cng
ch thun nu cp 4 tn hiu iu khin vo 4 con transitor v iu kin c dng chy qua ti trong 1 thi im l:
Tn hiu 1 =1 ( tc l m transitor Q1) Tn hiu 2= 0( tc l ng transitor Q2) Tn hiu 3= 0( tc l ng transitor Q3) Tn hiu 4= 1( tc l m transitor Q4)
y l dng i ca chiu thun: dng t ngun qua Q1, qua ti v sau l qua Q4 xung t.
iu khin ch nghch
ch nghch nu cp 4 tn hiu iu khin vo 4 con transitor v iu kin c dng chy qua ti trong 1 thi im l:
Tn hiu 1 =0 ( tc l ng transitor Q1) Tn hiu 2 =1 ( tc l m transitor Q1) Tn hiu 3 =1 ( tc l m transitor Q1) Tn hiu 4 =0 ( tc l ng transitor Q1)
y l dng i ca chiu thun: dng t ngun qua Q2,qua ti v sau l qua Q3 xung t.
II.9 IC Max 232
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 46 Mnh Cng
Vi mch Max 232 ca hng MAXIM l mt vi mch chuyn dng trong giao din ni tip vi my tnh. Chng c nhim v chuyn i mc TTL li vo thnh mc +10V ...-10V pha truyn v cc mc +3...15V hoc -3...-15V thnh mc TTL pha nhn.
S chn nh trn :
VCC: ngun in p cung cp cho Max232 t -0.3V n 6V VS+: in p ng ra dng cung cp t -0.3V n 15V VS-: in p ng ra m cung cp -0.3V n -15V T1 in, T2 in, R1 in, R2 in : l cc chn truyn d liu t my tnh n max232 v
nhn d liu t max232 n my tnh giao tip gia my tnh v max232. T2out, T2out, R1out, R2out : giao tip gia max232 v vi iu khin. Truyn v
nhn d liu t max232 n vi iu khin v t vi iu khin v max232. GND : chn ni t. C1, C2, C3, C4 : cc chn iu kin kch hot max232.
II.10 LCD 2x16
Thit b hin th LDC(Liquid Crystal Display) c s dng rng ri trong nhiu
lnh vc, c bit l trong ng dng ca vi iu khin. LCD c u im l rt d s dng
v hin th r rng, gi thnh r, c th hin th c cc k t, hnh v
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 47 Mnh Cng
Tm hiu chc nng cc chn ca LCD 2x16
Chn s 1 Vss: l chn ni t cho LCD
Chn s 2 Vdd: l chn cp ngun cho LCD, thng th cp ngun
5V(trong gi tr cho php ca LCD)
Chn s 3 Vee: Chn ny dng chnh nt ca LCD, thng c ni
vi 1 bin tr iu chnh c
Chn s 4 RS: Chn dng chn thanh ghi.
Logic 0: Bus DB0 DB7 s vi b m a ch ca LCD Logic 1: Bus DB0 DB7 s ni vi thanh ghi d liu DR bn trong
LCD
Chn s 5 R/W: chn chn ch c ghi d liu
Logic 0: ch ghi Logic 1: Ch c
Chn s 6 E: chn iu khin cho php.
Chn s 7 n 17(DB0 DB7): chn d liu cho LCD.
Ch 8 bit: d liu c truyn trn c 8 ng(khng s dng cch ny)
Ch 4 bit: d liu truyn trn 4 ng t DB4 DB7, bit cao MSB l DB7
Ngoi ra cn c tp lnh ca LCD, v cu hnh ca n. Nhng trong khun kh
ca n, chng em ch xin gii thiu qua s chn
ca LCD nh trn.
II.11 i tng iu khin ng c DC
ng c DC l ng c in 1 chiu. Stator ca
ng c in 1 chiu thng l 1 hay nhiu cp nam
chm vnh cu, hay nam chm in, rotor c cc cun
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 48 Mnh Cng
dy qun v c ni vi ngun in mt chiu.
Bn trong ng c c gn 1 encoder ng trc vi trc ca n xc nh tc ,
v tr ca ng c.
Cc thng s ca ng c ca n chng em l:
Ca hng Kysan SKU s hiu l 1112347, m RS-455PA-18140 in p cp cho ng c l 12VDC Tc ti a 21V l 4500 RPM( 12V th l 2300 RPM) S xung ca encoder 67 xung/1 vng.
Nguyn l hot ng ca b encoder: n gm c 1 a c khc 67 vch xc
nh 1 vng, c 1 b thu pht LED hng ngoi. mi ln qua 1 vch th b thu pht s
truyn v 1 xung. Tc l ht 1 vng th s c 67 xung c a v vi iu khin. t ta
c th tnh c gi tr tc quay ca ng c
M hnh a encoder hnh bn hon ton ging
vi m hnh m em lm trong n ca mnh. Ch khc
l s vch khc trn a nhiu hn(67 vch). Khi s
dng a ny th s khng bit c u l quay tri,
u l quay phi v s xung hin v nh nhau:
C ch sinh lc quay ca ng c DC:
Khi c mt dng in chy qua cun dy qun xung quanh mt li st non, cnh
pha bn cc dng s b tc ng bi mt lc hng ln, trong khi cnh i din li b
tc ng bng mt lc hng xung theo nguyn l bn tay tri ca Fleming. Cc lc ny
gy tc ng quay ln cun dy, v lm cho rotor quay. lm cho roto quay lin tc v
ng chiu, mt b c gp in s lm chuyn mch dng in sau mi v tr ng vi 1/2
chu k. Ch c vn l khi mt ca cun dy song song vi cc ng sc t trng.
Ngha l lc quay ca ng c bng 0 khi cun dy lch 90o so vi phng ban u ca
n, khi Roto s quay theo qun tnh.
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 49 Mnh Cng
III. Cc khi chc nng ca n
III.1 Gii thiu s khi ca ton b mch
Ta c th tm tt ton b h thng bi s sau y:
III.2 S nguyn l phn cng v chc nng tng phn
III.2.1 Khi ngun
S nguyn l ca mch nh hnh v:
Chc nng chnh: bin i ngun xoay chiu AC 12V thnh ngun 1 chiu DC
5V, 12V cung cp cho cc khi khc
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 50 Mnh Cng
Jac-AC : kt ni ngun 12VAC t bin p. Cu diot 1A: chc nng chnh lu ton k bin i AC thnh DC t ha : t c cc tnh nhm lc phng tn hiu, tn hiu ra s trn tru gn nh
thng hn mc in p mong mun m khng tng gim p lin tc.
t gm : gip lc nhng thnh phn tn hiu bc cao IC 7812 : n p in p u ra 12Vdc, dng 1A IC 7805: n p in p u ra 5Vdc, dng 1A. LED : bo c ngun
III.2.2 Khi trung tm PIC 16F887
S khi hnh v nh sau:
Chc nng chnh: l khi iu khin trung tm, iu khin ng c, giao tip
truyn nhn vi my tnh....
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 51 Mnh Cng
PIC 16F877 : l chip vi iu khin 8 bit ca Microchip. Chc nng giao tip my tnh iu khin ng c.
Button SW_RS: l nt nhn Reset. Vcc: ngun nui cho Pic l ngun +5V. T gm tr s 104 : chc nng lc nhiu ngun cung cp u vo cho Pic. Thc anh 4Mhz + 2 t gm 22p : chc nng to ngun xung nhp cho chip. Cc gic cm vi cc khi khc.
III.2.3 Khi hin th LCD
Chc nng chnh: hin th thng tin cn thit mt cch trc quan ln mn hnh
LCD nh cc gi tr tc mong mun, tc ng c quay c, th hin cc ch
ngi s dng c th chn la.
C kh nng hin th k t a nng, trc quan(ch s, k t ha), d dng a
vo mch ng dng thoe nhiu giao thc giao tip khc nhau, tn rt t ti nguyn h
thng v gi thnh r...
LCD (2x16) 2 hng 16ct : nhm hin th thng tin. CONTRAS+Vee : chn ny kt hp bin tr dng hiu chnh tng phn ca
LCD
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 52 Mnh Cng
Vcc: chn cp ngun cho LCD,khi thit k mch ta ni chn ny vi Vcc=5V ca mch iu khin
GND: chn ni t cho LCD CTRL LCD : 3bit iu khin DATA LCD (D0-D7):Tm ng ca bus d liu dng trao i thng tin vi vi
iu khin.C 2 ch s dng 8 ng bus ny:
T C 104 : lc nhiu ngun vo cho LCD LED : khi led sng bo hiu c in p vo trong LCD. Bin tr 10K.
III.2.4 Khi nt nhn
Chc nng chnh: gm 8 nt nhn vi cc chc nng ring bit nhm chn la
ch v iu khin ng c ch bng tay.
III.2.5 Khi cng sut( khi o chiu ng c)
S khi nguyn l nh hnh v:
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 53 Mnh Cng
Chc nng chnh : khi dng o chiu quay ca ng c bng cch ng m
cc van transitor trong mch cu H ca con IC cu H L298.
Vss,Vs : mc in p logic v in p cung cp cho L298 hot ng 2 chn Enable A, B kt ni chn RE0(chn s 8): chn cho php 2 khi cu H bn
trong L298 hot ng khi RE0 c kch.
IN1, 2, 3, 4 c kt ni chn CCP1, CCP2(chn 17,16) kt ni tn hiu o chiu ng c. Nu CCP1=1, CCP2=0(tc IN1, 4 m, IN2, 3 ng) th ng c
quay thun, cn nu ngc li th ng c quay nghch.
D1, 2, 3, 4: gip trnh dng in ngc v bo v cc linh kin khc do ti ng c c tnh cht cm khng. Ngun cp cho ng c l 12V.
M1, 2 l tn hiu ng ra tng ng iu khin chiu quay ng c.
III.2.6 Khi RS232:
S khi nguyn l nh hnh v:
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 54 Mnh Cng
Chc nng chnh: giao tip truyn nhn d liu gia my tnh v vi iu khin
thng qua mt chip MAX232.
MAX232 : l chip truyn nhn d liu gia vi iu khin v my tnh. Truyn nhn d liu gia MAX232 vi vi iu khin thng qua 2 chn RXD, TXD
ca vi iu khin.
- RXD ng vai tr nhn tn hiu t vi iu khin v qua chn T2in, qua
T2out ca MAX232 n chn 2(chn RXD ca cng COM) v truyn d
liu ln my tnh.
- Khi tn hiu iu khin t my tnh s i qua chn 3(chn TXD ca cng
COM) n chn R2in, ri R2out ca MAX232 ri n chn TXD ca vi
iu khin.
cc t 10u
IV. S gii thut ca chng trnh
IV.1 Lu gii thut ca chng trnh trn vi iu khin PIC16F887
Trnh by hm chnh di v c cc chng trnh con na c trnh by trong
phn di y.
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 55 Mnh Cng
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 56 Mnh Cng
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 57 Mnh Cng
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 58 Mnh Cng
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 59 Mnh Cng
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 60 Mnh Cng
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 61 Mnh Cng
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 62 Mnh Cng
IV.2 Lu gii thut ca phm mn iu khin trn my tnh
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 63 Mnh Cng
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 64 Mnh Cng
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 65 Mnh Cng
Code iu khin chng trnh trn PIC16F887.
// DO AN 1 - BO MON DIEN TU CONG NGHIEP TRUONG DAI HOC CONG NGHIEP TP.HCM
// NOI DUNG: DIEU KHIEN DONG CO DC VA HIEN THI TOC DO DONG CO DC BANG PIC16F887
// NGUOI THUC HIEN: NGUYEN VAN TIEN - DO MANH CUONG
// MSSV: 09076481 - 09073041 - DHDT5A
// GIANG VIEN DUONG DAN: T.S - NGUYEN MINH NGOC
#include
#include
#include
#include
#include
#include "lcd.h"
#include "uart.h"
__CONFIG(INTIO & WDTDIS & PWRTEN & MCLREN & UNPROTECT & DUNPROTECT & BORDIS & IESODIS & FCMDIS & LVPDIS);
#define _XTAL_FREQ 4000000
const char dat_line01[] = " DO AN 1 ";
const char dat_line02[] = "V.TIEN - M.CUONG";
const char dat_line03[] = "GVHD TS-N.M.NGOC";
const char dat_line04[] = " BO MON D.T.C.N ";
const char dat_line05[] = "CAN KET NOI VOI ";
const char dat_line06[] = "PC DE DIEU KHIEN";
const char dat_line07[] = " B:19200--8 BIT ";
const char dat_line08[] = " STOP BIT: 1 ";
const char dat_line09[] = "0:Che Do DK PC ";
const char dat_line010[]="1:Che Do DK Tay ";
const char dat_line1[] = " Ket Noi T.Cong ";
const char dat_line2[] = " G.T Chuan UART ";
const char dat_line3[] = " DAT TOC DO ";
const char dat_line4[] = " CHO DONG CO ";
char dat_line5[] = "Toc Do :0000 RPM";
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 66 Mnh Cng
const char dat_line51[] ="Toc Do :0000 RPM";
const char dat_line6[] = " An Star ";
char dat_line7[] = "Encoder 0000 RPM";
const char dat_line9[] = "2:Reset 4:Chon";
const char dat_line8[] = " ***STOP*** ";
const char dat_line10[]= " TOC DO
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 67 Mnh Cng
ANS5 = 0; // Chan motor enable la digital IO.
TRISE0 = 0; // Chan motor enable la digital output.
RE0 = 1; // Logic 1, cho phep motor chay.
TRISC1 = 0; // Chan CCP2 la output.
TRISC2 = 0; // Chan CCP1 la output.
PORTC = 0; //
CCP1CON = 0x00; // Bat CCP1. Cau hinh CCP1 la PWM.
CCP2CON = 0x00; // Tat CCP2, chan RC1 do PORTC dieu khien
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//.. Ham cai dat thoi gian cho PWM
void timer2(void)
{
// Thuc hien cau hinh cho Timer2 de hoat dong PWM.
// U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
// T2CON = | |TOUTPS3|TOUTPS2|TOUTPS1|TOUTPS0| TMR2ON|T2CKPS1|T2CKPS0|
T2CON = 0; // Dat cac gia tri prescaler = 1:1; postscaler = 1:1.
TMR2ON = 1;
PR2 = 99; // Thoi gian timer tran: T = Tclk * prescaler * (PR2+1) .
// = 1us * 1 * 100
// => Chu ky PWM = 100us.
// => Tan so PWM = 1/T = 10KHz (voi Fosc = 4MHz).
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void init_PORTB(void)
{
PORTB = 0XFF;
TRISB = 0XFF;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//.. Ham khoi tao timer 0 dung de count so xung cua encoder
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 68 Mnh Cng
void timer0()
{
//DUNG DE DOC SO XUNG TU ENCODER
T0CS = 1; // CHON NGUON XUNG LA XUNG TU ENCODER
T0SE = 1; // CHON CHUC NANG DEM CANH LEN CUA TIMER0.
PSA = 1; // KHONG SU DUNG BO CHIA TANG.
TRISA4 = 1; // PHAI CHO NO LA INPUT THI TA MOI CO THE DOC DC GIA TRI CUA TIMER0
TMR0 = 0; //GAN GIAI TRI BAN DAU CHO TIMER0 LA 0
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//.. Ham khoi tao timer 1 dung de lay gia tri count tu timer0.
void timer1()
{
// CAC THU TUC DE KHOI TAO NGAT TIMER1.
TMR1IF = 0; // Co xet ngat
TMR1IE = 1; // Co bao ngat
GIE = 1; // khoi dong ngat
PEIE = 1; // Dung de ngat Ngoai Vi
RCIE = 1; //Cho Phep Ngawt UART
TMR1H = 0X3C; // Khoi tao TMR1L va TMR1H.
TMR1L = 0XB0;
T1CKPS0 = 1; // Cau hinh prescaler la 1:2.
T1CKPS1 = 0;
TMR1ON = 1; // CHO TIMER1 HOAT DONG
TMR1CS = 0; // CHON NGUON DAO DONG NOI LA Fosc/4
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//.. Ham dung de ngat. lay gia TMR0 va mang A[]
void demxung(void)
{
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 69 Mnh Cng
if(TMR1IE && TMR1IF)
{
A[luot] = TMR0; // LAY GIA TRI CUA TIMER0 VAO MANG A[]
TMR0 = 0; // DAN LAI GIA TRI 0 CUA TIMER0.
TMR1H = 0X3C; // TMR1H:TMR1L = -50,000 = 3C:B0 HEX.
TMR1L = 0XB0;
TMR1IF = 0; //XOA CO BAO NGAT TIMER0
tien=1;
}
}
void ngat(void)
{
if(RCIE && RCIF) // Kiem tra cho phep ngat thu cua UART.
{
RCIF = 0; // Xoa co ngat thu (co the bo lenh nay).
dat_string[byte_num] = RCREG; // Nhan chuoi thong tin (gom 5 byte) tu UART.
byte_num++; // Tang bien dem so luong byte da nhan trong chuoi.
if (byte_num==4) // Kiem tra so byte du lieu nhan duoc.
{
byte_num = 0;// Dat lai so thu byte trong chuoi (tong so byte trong chuoi la 5).
dat_OK = 1;// Da nhan du 5 byte du lieu.
}
}
}
void interrupt isr(void)
{
demxung();
ngat();
if(tien==1)
{
tien=0;
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 70 Mnh Cng
luot++;
if(luot>=10)
{
luot=0;
}
TMR0=0;
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void connect()
{
if((dat_OK == 1)&&(strcmp(dat_string,LED1_ctrl) == 0))// Neu nhan du 5 byte ma va trung voi ma dieu khien LED1.
{
dat_OK = 0; // Xoa de tiep nhan 5 byte du lieu tiep theo.
dieukhien1=1; //Gan gia tri dieu khien cho chuong trinh
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//.. Ham de tinh tong tat ca cac xung cua encoder trong 1 lan ngat(tuc 0.1 s)
//.. Va xuat Toc do DONG CO ra LCD
void tinhthoigian()
{
int xuat=0;
int cuong=0;
if(luot==9)
{
for(int i=0;i
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 71 Mnh Cng
//////////////// DK PID //////////////////
xuat = (double)( count * 1.066666666666666666667);
int tam = xuat - tocdo;
if( tam > 0)
{
pwm = pwm - 1;
}
else if( tam < 0)
{
pwm = pwm + 1;
}
int tr1 = pwm/100;
int ng1 = pwm%100/10;
int dv1 = pwm%100%10;
dat_line11[13] = tr1+48;
dat_line11[14] = ng1+48;
dat_line11[15] = dv1+48;
/////////////////////////////////////////////////////////////
int ng2 = tocdo/1000;
int tr2 = tocdo%1000/100;
int ch2 = tocdo%1000%100/10;
int dv2 = tocdo%1000%100%10;
dat_line11[3] = ng2+48;
dat_line11[4] = tr2+48;
dat_line11[5] = ch2+48;
dat_line11[6] = dv2+48;
/////////////////////////////////////////////////////////////
int ng = xuat/1000;
int tr = xuat%1000/100;
int ch = xuat%1000%100/10;
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 72 Mnh Cng
int dv = xuat%1000%100%10;
dat_line7[8] = ng+48;
dat_line7[9] = tr+48;
dat_line7[10] = ch+48;
dat_line7[11] = dv+48;
gui_string[0] = dat_line7[7];
gui_string[1] = ng+48;
gui_string[2] = tr+48;
gui_string[3] = ch+48;
gui_string[4] = dv+48;
for(int i=0;i
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 73 Mnh Cng
lcd_gotoxy(i,0);
lcd_putc(dat_line01[i]);
lcd_gotoxy(i,1);
lcd_putc(dat_line02[i]);
}
__delay_ms(100);
}
for(int j=0;j
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 74 Mnh Cng
dat_line5[8] = ng+48;
dat_line5[9] = tr+48;
dat_line5[10] = ch+48;
dat_line5[11] = dv+48;
for(int i=0;i='0')&&(dat_string[0]
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 75 Mnh Cng
tocdo = ngan1*1000+tram1*100+chuc1*10+donvi1*1;
}
void gui()
{
if((48
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 76 Mnh Cng
if((dat_OK == 1) && (strcmp(dat_string,chay_ctrl) == 0)) // Neu nhan du 5 byte ma va trung voi ma dieu khien LED1.
{
dat_OK = 0; // Xoa de tiep nhan 5 byte du lieu tiep theo.
while(1)
{
if(reset==1)
{
break;
}
else
{
for(int i=0;i
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 77 Mnh Cng
CCP1CON = 0; CCP2CON = 0; }
co=0;
dat_line7[7]='-';
}
if(quantrong%2==1)
{
for(int j=0;j
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 78 Mnh Cng
dat_OK=0;
break;
}
if((dat_OK == 1) && (strcmp(dat_string,reset_ctrl)==0))
{
reset=1;
dat_OK=0;
CCP1CON = 0x00; CCP2CON = 0x00;
CCPR1L = 0;
CCPR2L = 0;
RE0 = 1;
for(int i=0;i
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 79 Mnh Cng
{
CCP1CON = 0x00;
CCP2CON = 0x00;
CCPR1L = 0; // Dat chu ky nhiem vu (Duty) cho CCP1.
CCPR2L = 0;
for(int i=0;i
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 80 Mnh Cng
}
if(RB1==0X00)
{
cong = 1;
}
// Ham dung de dat lai gia tri cho toc do neu nhu toc do nho hon 300
if ((tocdo
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 81 Mnh Cng
}
}
for(int i=0;i
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 82 Mnh Cng
if((RB6==0X00)&&(tocdo>0))
{
tocdo = tocdo - cong;
int ng = tocdo/1000;
int tr = tocdo%1000/100;
int ch = tocdo%1000%100/10;
int dv = tocdo%1000%100%10;
dat_line5[8] = ng+48;
dat_line5[9] = tr+48;
dat_line5[10] = ch+48;
dat_line5[11] = dv+48;
}
}
if((RB2==0x00)||(RB3==0x00))
{
co=0;
break;
}
}
pwm = tocdo/22;
}
void dongco1()
{
while(1)
{
for(int i=0;i
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 83 Mnh Cng
}
tinhthoigian(); // GOI HAM TINH THOI GIAN DE XUAT TOC DO DONG CO TU ENCODER
if(RB2==0x00)
{
for(int i=0;i
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 84 Mnh Cng
{
while(1)
{
if(dieukhien3==0)
{
while(1)
{
CCP1CON = 0x00; CCP2CON = 0x00;
CCPR1L = 0; // Dat chu ky nhiem vu (Duty) cho CCP1.
CCPR2L = 0;
RE0 = 1;
if(RB5==0X00)
{
dieukhien3=1;
break;
}
}
}
else if(dieukhien3==1)
{
dieukhien3=0;
break;
}
}
}
if(RB4==0x00)
break;
}
}
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 85 Mnh Cng
void stop1()
{
while(1)
{
CCP1CON = 0x00; // Bat CCP1. Cau hinh CCP1 la PWM.
CCP2CON = 0x00; // Tat CCP2, chan RC1 do PORTC dieu khien
CCPR1L = 0; // Dat chu ky nhiem vu (Duty) cho CCP1.
CCPR2L = 0;
for(int i=0;i
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 86 Mnh Cng
{
while(1)
{
if(RB7==0x00)
{
dieukhienpc=1;
break;
}
if(RB6==0x00)
{
dieukhientay=1;
break;
}
}
}
void pc(void)
{
for(int j=0;j
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 87 Mnh Cng
{
lcd_gotoxy(i,0);
lcd_putc(dat_line05[i]);
lcd_gotoxy(i,1);
lcd_putc(dat_line06[i]);
}
__delay_ms(100);
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void main()
{
init_PORTB();
lcd_init();
uart_init();
PWM();
timer2();
timer0();
timer1();
ANSEL = 0; // Cau hinh tat ca chan Analog la chan Digital I/O.
ANSELH = 0; // Neu khong co thi cac chan RB chu chan AN se khong kich hoat tinh nang dien tro keo len
// PHAI KICH HOAT DIEN TRO KEO LEN NOI BEN TRONG PPIC16887 DE VIET CAC CHUONG TRINH BEN DUOI(RB0-RB2 SANG)
RBPU = 0; // Kich hoat tinh nang Pull-up.
WPUB = 0xFF; // Kich hoat tinh nang Weak Pull-up (RB0).
vao();
while(1)
{
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 88 Mnh Cng
for(int j=0;j
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 89 Mnh Cng
for(int j=0;j
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 90 Mnh Cng
if(nhayqua=='t')
{
nhayqua='0';
pwm=0;
break;
}
tocdodat1();
dongco1();
if(reset == 1)
{
reset = 0;
goto A1;
}
__delay_ms(100);
__delay_ms(100);
stop1();
goto A1;
}
__delay_ms(100);
}
}
}
iu khin ng c DC GVHD: TS. Nguyn Minh Ngc
Nguyn Vn Tin Trang 91 Mnh Cng
TI LIU THAM KHO:
1. Website: Google.com.vn v nhiu website khc na
2. Ti liu Datasheet PIC16F887, L298, Max 232, IC 78xx, LCD
3. Ti liu 201 ASP v8.0 ca Microchip
4. Ti liu hng dn hc Th nghim Vi X L ca thy Phm Quang Tr
5. Gio trnh cn bn lp trnh C ca trng i hc khao hc t nhin
6. Catalog v cc loi ng c DC ca Kysan Motors
7. V nhiu ti liu khc na c trn internet, th vin trng i hc Cng
Nghip TP. HCM