97
 B CÔNG THƯƠNG TRƯỜNG ĐẠI HC CÔNG NGHIP TP.HCM KHOA CÔNG NGH ĐIN TỬ  ĐỒ ÁN 1 ĐIU KHIN ĐỘNG CƠ DC GIAO TIP MÁY TÍNH Sinh viên thc hin: 1. NGUYN VĂN TIN 09076481 2. ĐỖ MNH CƯỜ NG 09073041 Lớ  p : DHDT5A Mã lớ  p hc phn : 240207701 TP H Chí Minh, Tháng 9 năm 2012

Cuốn Báo Cáo Đồ Án

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