do_an_pic_1296

download do_an_pic_1296

of 61

Transcript of do_an_pic_1296

  • 8/3/2019 do_an_pic_1296

    1/61

    n 2 GVHD: Nguy n Thanh Th o

    Ch ng I: KHI QUT TI

    I/ Tm t t ti:

    1/ Gi i thi u s l c cc modul c a m ch:

    -Tn ti n 2:L p trnh PIC16F877A i u khi n t c ng c DC

    -Yu c u t ra: L p trnh C cho Pic 16F877A i u khi n t c cho ng c DC c

    g n encoder h i ti p t c .T c c ci t t bn phm v t c t c th i h i

    ti p t encoder c hi n th trn mn hnh LCD 16x2.

    -Tm t t h ng th c hi n ti:

    S d ng Pic 16F877A l vi i u khi n trung tm. Dng ch ng trnh CCS l p

    trnh C v bin d ch ch ng trnh. Xy d ng kh i bn phm g m 16 phm nh p t c v i u khi n ng c

    DC:

    10 phm t 0 n 9 ci t t c (vng /phc).

    1 phm SET (hay ENTER) l u t c ci t.

    1 phm CLEAR xa t c ci t.

    1 phm SAVE l u t c vo epprom.

    3 phm i u i u khi n: quay thu n (FORWARD), quay nghich

    (REVERSE), d ng (STOP).

    Hi n th t c dng mn hnh LCD 16x2, l p trnh ch 4 bit (s d ng 4

    chn nh n d li u t Pic).

    S d ng m ch c u H l IC L298N o chi u ng c .

    S d ng 2 knh PWM c a vi i u khi n Pic thay i gi tr p trung bnh t

    vo ng c i u khi n t c . i t ng i u khi n l ng c DC 12V c g n Encoder.

    Ngoi ra trn m ch cn c 1 phm ngu n (POWER) c p i n t adapter cho

    m ch v 1 phm RESET cho pic 16F877A.

    c p ngu n cho m ch ta dng adapter AC/DC (220V/12V) v kh i ngu n s

    d ng IC 7805 n p i n p 5V cung c p cho Pic.

    SVTH: Tr n T ng Bng V Vn Chnh 1

  • 8/3/2019 do_an_pic_1296

    2/61

    n 2 GVHD: Nguy n Thanh Th o

    2/ S nguyn l m ch:

    3/Cch v n hnh m ch:

    B c 1:

    B t ngu n (nh n nt POWER), ch cho Pic v mn hnh LCD kh i ng, mn hnh

    hi n th : CH N CH :

    Ch ng trnh c 2 ch lm vi c: ch 1 l bm t c t, c l u t c vo

    epprom; ch 2 l bm t c c nh th i gian thay i chi u quay.

    B c 2:

    Nh p t c t bn phm cc phm t 0 n 9.N u nh p sai ta nh n phm CLEAR

    con tr trn LCD s xa h t cc s nh p, ta ph i nh p l i t u.Sau khi nh p

    xong, nh n phm ENTER l u t c t, t c t c tnh theo n v

    vng/pht.

    SVTH: Tr n T ng Bng V Vn Chnh 2

    b2

    a7

    b0b1

    a4a5

    a6

    p0

    p1

    p2

    p3

    p0

    p3

    p1p2

    a7

    a4

    a5

    a6

    b0

    b2

    b1

    CCP2CCP1

    RA0/AN02

    RA1/AN13

    RA2/AN2/VREF-/CVREF4

    RA4/T0CKI/C1OUT6

    RA5/AN4/SS/C2OUT7

    RE0/AN5/RD8

    RE1/AN6/WR9

    RE2/AN7/CS10

    OSC1/CLKIN13

    OSC2/CLKOUT14

    RC1/T1OSI/CCP216

    RC2/CCP117

    RC3/SCK/SCL18

    RD0/PSP019

    RD1/PSP120

    RB7/PGD40

    RB6/PGC39

    RB538

    RB437

    RB3/PGM36

    RB235

    RB134

    RB0/INT33

    RD7/PSP730

    RD6/PSP629

    RD5/PSP528

    RD4/PSP427

    RD3/PSP322

    RD2/PSP221

    RC7/RX/DT26

    RC6/TX/CK25

    RC5/SDO24

    RC4/SDI/SDA23

    RA3/AN3/VREF+5

    RC0/T1OSO/T1CKI15

    MCLR/Vpp/THV1

    U1

    PIC16F877A

    C1

    30pF

    C2

    30pF

    X1CRYSTAL

    R910k

    R15k

    R25k

    R35k

    R45k

    VCC

    VCC

    C310uF

    R5

    2k2

    CCP1

    CCP2

    CLK

    1 2 3

    4 5 6

    7 8 9

    0 (10)

    FW(16) RV(15) STOP (14)

    CLEAR (11)

    set (12)

    13

    D7

    14

    D6

    13

    D5

    12

    D4

    11

    D3

    10

    D2

    9

    D1

    8

    D0

    7

    E

    6

    RW

    5

    RS

    4

    VSS

    1

    VDD

    2

    VEE

    3

    LCD116_X_2_LCD

    RV1

    1K

    VI1

    VO3

    GND

    2

    U27805

    321

    J1

    JACK C4100uF

    C5100nF

    C6100uF

    C7100nF

    D8LED

    R26

    1k

    +12V +5V

    12

    J2

    TERMINAL2

    IN15

    IN27

    ENA6

    OUT12

    OUT23

    ENB11

    OUT313

    OUT414

    IN310

    IN412

    SENSA1

    SENSB15

    GND

    8

    VS

    4

    VCC

    9 U1

    L298

    +12V

    R10.5

    R20.5

    M1

    M2CLK

    123

    45

    J3

    SIL-100-05+88.8

    D11N4007

    D21N4007

    D31N4007

    D41N4007

    +12V

    M1 M2

    CLK

    RESET

    Hnh 1: S nguyn l m ch

  • 8/3/2019 do_an_pic_1296

    3/61

    n 2 GVHD: Nguy n Thanh Th o

    N u l ch 2 th ta ph i nh p them th i gian, sau nh n phm ENTER

    B c 3:

    i u khi n ng c ta nh n phm: quay thu n (FORWARD), quay ngh ch

    (REVERSE), d ng (STOP).

    B c 4:

    nh p l i t c ta nh n phm CLEAR r i ti n hnh t t c nh b c 2.

    -T c t c th i c a ng c s c c p nh t m i 0,5s v s c so snh v i t c

    t a ra tnh hi u i u khi n, ng th i c m i 0,5s t c s hi n th trn

    mn hnh LCD.

    4/ Khuy t i m c a m ch:

    -Do khng p d ng cc ph ng php i u khi n (v d nh : PID, i u khi n m ,) nn t c ng c ch a c n nh.

    -M ch c u H s d ng IC L298 ch i u khi n c ng c DC c cng su t nh .

    - i v i kh i hi n th , do tnh ch t c a mn hnh LCD nn b h n ch quan st gi tr

    hi n th kho ng cch xa.

    5/ H ng pht tri n ti:

    - C i thi n n nh t c ng c b ng ph ng php PID hay i u khi n m .

    - Tnh ton thi t k m ch cng su t c th i u khi n c ng c c cng

    su t l n h n.

    - S d ng led 7 o n tng kh nng quan st c a kh i hi n th .

    - K t n i v i my tnh, s dung visual basic l p trnh i u khi n t c ng c

    DC.

    SVTH: Tr n T ng Bng V Vn Chnh 3

  • 8/3/2019 do_an_pic_1296

    4/61

    n 2 GVHD: Nguy n Thanh Th o

    CH NG II:

    GI I THI U V CC LINH KI N PH N T S D NG TRONG M CH

    I.Vi i u khi n PIC16F877A

    1. Khi qut v vi i u khi n PIC16F877A

    a/ Khi qut:

    - PIC l tn vi t t t c a Programmable Intelligent computer do hng General

    Instrument t tn cho con vi i u khi n u tin c a h .Hng Micrchip ti p t c pht tri n s n ph m ny v cho n hng t o ra g n 100 lo i s n ph m khc

    nhau.

    - PIC16F887A l dng PIC kh ph bi n, kh y tnh nng ph c v cho h u

    h t t t c cc ng d ng th c t . y l dng PIC kh d cho ng i m i lm quen

    v i PIC c th h c t p v t o n n t n v h vi i u khi n PIC c a mnh.

    - PIC 16F877A thu c h vi i u khi n 16Fxxx c cc t tnh sau:

    Ngn ng l p trnh n gi n v i 35 l nh c di 14 bit.

    T t c cc cu l nh th c hi n trong 1 chu k l nh ngo i tr 1 s cu l nh r

    nhnh th c hi n trong 2 chu k l nh. Chu k l nh b ng 4 l n chu k dao ng

    c a th ch anh.

    B nh ch ng trnh Flash 8Kx14 words, v i kh nng ghi xo kho ng 100

    ngn l n.

    B nh Ram 368x8bytes. B nh EFPROM 256x8 bytes.

    Kh nng ng t (ln t i 14 ngu n c ng t trong v ng t ngoi).

    Ngn nh Stack c chia lm 8 m c.

    Truy c p b nh b ng a ch tr c ti p ho c gin ti p.

    D i i n th ho t ng r ng: 2.0V n 5.5V.

    Ngu n s d ng 25mA.

    SVTH: Tr n T ng Bng V Vn Chnh 4

  • 8/3/2019 do_an_pic_1296

    5/61

    n 2 GVHD: Nguy n Thanh Th o

    Cng su t tiu th th p:

  • 8/3/2019 do_an_pic_1296

    6/61

    n 2 GVHD: Nguy n Thanh Th o

    SVTH: Tr n T ng Bng V Vn Chnh 6

    Hnh 2: S nguyn l PIC 16F877A

  • 8/3/2019 do_an_pic_1296

    7/61

    n 2 GVHD: Nguy n Thanh Th o

    b/S chn v s nguyn l c a PIC16F877A

    S chn

    S nguyn l

    SVTH: Tr n T ng Bng V Vn Chnh 7

    Hnh 3: S chn c a PIC 16F877A

    Hnh 4: S nguyn l cc Port c a PIC 16F877A

  • 8/3/2019 do_an_pic_1296

    8/61

    n 2 GVHD: Nguy n Thanh Th o

    c/Nh n xt:T s chn v s nguyn l trn, ta rt ra cc nh n xt ban u nh sau :

    - PIC16F877A c t t c 40 chn

    - 40 chn trn c chia thnh 5 PORT, 2 chn c p ngu n, 2 chn GND, 2

    chn th ch anh v m t chn dng RESET vi i u khi n.

    - 5 port c a PIC16F877A bao g m :

    + PORT B: 8 chn

    + PORT D: 8 chn

    + PORT C: 8 chn

    + PORT A: 6 chn

    + PORT E: 3 chn

    2. T ch c b nh :

    C u trc b nh c a vi i u khi n

    PIC16F877A bao g m b nh ch ng trnh (Program memory) v

    b nh d li u (Data Memory).

    2.1. B nh ch ng trnh:

    B nh ch ng trnh c a vi i u

    khi n PIC16F877A l b nh flash,

    dung l ng b nh 8K word (1 word

    = 14 bit) v c phn thnh nhi u

    trang (t page0 n page 3) . Nh

    v y b nh ch ng trnh c kh

    nng ch a c 8*1024 = 8192 l nh

    (v m t l nh sau khi m ha s c

    dung l ng 1 word (14 bit). m ha c a ch c a 8K word b nh ch ng

    trnh, b m ch ng trnh c dung l ng 13 bit (PC). SVTH: Tr n T ng Bng

    V Vn Chnh 8Hnh 5: C u trc b nh ch ng trnh PIC

    16F877A

  • 8/3/2019 do_an_pic_1296

    9/61

    n 2 GVHD: Nguy n Thanh Th o

    Khi vi i u khi n c reset, b m ch ng trnh s ch n a ch 0000h (Reset

    vector).Khi c ng t x y ra, b m ch ng trnh s ch n a ch 0004h (Interrupt

    vector). B nh ch ng trnh khng bao g m b nh stack v khng c a ch ha

    b i b m ch ng trnh.

    2.2. B nh d li u: - B nh d li u c a PIC16F877A c chia thnh 4 bank. M i bank c d ng

    l ng 128 byte.

    - N u nh 2 bank b nh d li u c a 8051 phn chia ring bi t : 128 byte u tin

    thu c bank1 l vng Ram n i ch ch a d li u, 128 byte cn l i thu c bank 2 l

    cng cc thanh ghi c ch c nng c bi t SFR m ng i dng khng c ch a

    d li u khc, cn 4 bank b nh d li u c a PIC16F877A c t ch c theo cch

    khc.

    - M i bank c a b nh d li u PIC16F877A bao g m c cc thanh ghi c ch c

    nng c bi t SFR n m cc cc nh a ch th p v cc thanh ghi m c ch

    dng chung GPR n m vng a ch cn l i c a m i bank thanh ghi. Vng nh

    cc thanh ghi m c ch dng chung ny chnh l n i ng i dng s l u d li u

    trong qu trnh vi t ch ng trnh. T t c cc bi n d li u nn c khai bo ch a

    trong vng a ch ny. - Trong c u trc b nh d li u c a PIC16F877A, cc thanh ghi SFR no m

    th ng xuyn c s d ng (nh thanh ghi STATUS) s c t t t c cc

    bank thu n ti n trong vi c truy xu t. S d nh v y l v, truy xu t m t

    thanh ghi no trong b nh c a 16F877A ta c n ph i khai bo ng bank ch a

    thanh ghi , vi c t cc thanh ghi s d ng th ng xuyn gip ta thu n tin h n

    r t nhi u trong qu trnh truy xu t, lm gi m l nh ch ng trnh.

    D a trn s 4 bank b nh d li u PIC16F877A ta rt ra cc nh n xt nh sau :

    -Bank0 g m cc nh c a ch t 00h n 77h, trong cc thanh ghi dng chung

    ch a d li u c a ng i dng a ch t 20h n 7Fh. Cc thanh ghi PORTA,

    PORTB, PORTC, PORTD, PORTE u ch a bank0, do truy xu t d li u cc

    thanh ghi ny ta ph i chuy n n bank0. Ngoi ra m t vi cc thanh ghi thng d ng

    khc ( s gi i thi u sau) cng ch a bank0

    SVTH: Tr n T ng Bng V Vn Chnh 9

  • 8/3/2019 do_an_pic_1296

    10/61

    n 2 GVHD: Nguy n Thanh Th o

    - Bank1 g m cc nh c a ch t 80h n FFh. Cc thanh ghi dng chung c a ch

    t A0h n Efh. Cc thanh ghi TRISA, TRISB, TRISC, TRISD, TRISE cng c

    ch a bank1

    - T ng t ta c th suy ra cc nh n xt cho bank2 v bank3 d a trn s trn.

    Cng quan st trn s , ta nh n th y thanh ghi STATUS, FSR c m t trn c 4

    bank. M t i u quan tr ng c n nh c l i trong vi c truy xu t d li u c a

    PIC16F877A l : ph i khai bo ng bank ch a thanh ghi .N u thanh ghi no m 4

    bank u ch a th khng c n ph i chuy n bank.

    SVTH: Tr n T ng Bng V Vn Chnh 10

    Hnh 6: C u trc b nh d li u c a PIC 16F877A

  • 8/3/2019 do_an_pic_1296

    11/61

    n 2 GVHD: Nguy n Thanh Th o

    2.2a/ Thanh ghi ch c nng c bi t SFR: (Special Function Register)

    - y l cc thanh ghi c s d ng b i CPU ho c c dng thi t l p v i u

    khi n cc kh i ch c nng c tch h p bn trong vi i u khi n. C th phn

    thanh ghi SFR lm hai l ai: thanh ghi SFR lin quan n cc ch c nng bn trong

    (CPU) v thanh ghi SRF dng thi t l p v i u khi n cc kh i ch c nng bn

    ngoi (v d nh ADC, PWM, ).

    - M t s thanh ghi c c nng c bi t:

    Thanh ghi STATUS (03h, 83h, 103h, 183h):thanh ghi ch a k t qu th c hi n

    php ton c a kh i ALU, tr ng thi reset v cc bit ch n bank c n truy xu t

    trong b nh d li u.

    Thanh ghi OPTION_REG (81h, 181h): thanh ghi ny cho php c v ghi, cho

    php i u khi n ch c nng pull-up c a cc chn trong PORTB, xc l p cc

    tham s v xung tc ng, c nh tc ng c a ng t ngo i vi v b m

    Timer0.

    Thanh ghi INTCON (0Bh, 8Bh,10Bh, 18Bh): thanh ghi cho php c v

    ,ch a cc bt i u khi n v cc c hi u khi timer0 b trn, ng t ngo i vi

    RB0/INT v ng t interrput-on-change t i cc chn c a PORTB.

    Thanh ghi PIE1 (8Ch): ch a cc bit i u khi n chi ti t cc ng t c a cc kh i ch c nang ngoai vi.

    Thanh ghi PIR1 (0Ch) ch a c ng t c a cc kh i ch c nng ngo i vi, cc

    ng t ny c cho php b i cc bit i u khi n ch a trong thanh ghi PIE1.

    Thanh ghi PIE2 (8Dh): ch a cc bit i u khi n cc ng t c a cc kh i ch c

    nng CCP2, SSP bus, ng t c a b so snh v ng t ghi vo b nh EEPROM.

    Thanh ghi PCON (8Eh): ch a cc c hi u cho bi t tr ng thi cc ch reset

    c a vi i u khi n.

    2.2b/ Thanh ghi muc ch chung GPR: (General Purpose Register)

    Cc thanh ghi ny c th c truy xu t tr c ti p ho c gin ti p thng qua thanh

    ghi FSG (File Select Register).y l cc thanh ghi d li u thng th ng, ng i s

    d ng c th ty theo m c ch ch ng trnh m c th dng cc thanh ghi ny

    ch a cc bi n s , h ng s , k t qu ho c cc tham s ph c v cho ch ng trnh.

    SVTH: Tr n T ng Bng V Vn Chnh 11

  • 8/3/2019 do_an_pic_1296

    12/61

    n 2 GVHD: Nguy n Thanh Th o

    2.3. Stack

    - Stack khng n m trong b nh ch ng trnh hay b nh d li u m l m t

    vng nh c bi t khng cho php c hay ghi. Khi l nh CALL c th c hi n hay

    khi m t ng t x y ra lm ch ng trnh b r nhnh, gi tr c a b m ch ng trnh

    PC t ng c vi i u khi n c t vo trong stack. Khi m t trong cc l nh RETURN,

    RETLW hat RETFIE c th c thi, gi tr PC s t ng c l y ra t trong stack,

    vi i u khi n s th c hi n ti p ch ng trnh theo ng qui trnh nh tr c.

    - B nh Stack trong vi i u khi n PIC h 16F87xA c kh nng ch a c 8

    a ch v ho t ng theo c ch xoay vng. Nghia l gi tr c t vo b nh Stack l n

    th 9 s ghi ln gi tr c t vo Stack l n u tin v gi tr c t vo b nh Stack

    l n th 10 s ghi ln gi tri6 c t vo Stack l n th 2.

    - C n ch l khng c c hi u no cho bi t tr ng thi stack, do ta khng bi t c khi no stack trn. Bn c nh t p l nh c a vi i u khi n dng PIC cng

    khng c l nh POP hay PUSH, cc thao tc v i b nh stack s hon ton c i u

    khi n b i CPU.

    3. Khi qut v ch c nng c a cc port trong vi i u khi n PIC16F877A

    a/PORTA:

    -PORTA (RPA) bao g m 6 I/O pin.y l cc chn hai chi u (bidirectional

    pin), ngha l c th xu t v nh p c.Ch c nng I/O ny c i u khi n b i

    thanh ghi TRISA ( a ch 85h). Mu n xc l p ch c nng c a m t chn trong PORTA

    l input, ta set bit i u khi n t ng ng v i chn trong thanh ghi TRISA v

    ng c l i, mu n xc l p ch c nng c a m t chn trong PORTA l output, ta clear

    bit i u khi n t ng ng v i chn trong thanh ghi TRISA. Thao tc ny hon ton

    t ng t i v i cc PORT v cc thanh ghi i u khi n t ng ng TRIS ( i v i

    PORTA l TRISA, i v i PORTB l TRISB, i v i PORTC l TRISC, i v i

    SVTH: Tr n T ng Bng V Vn Chnh 12

    Hnh 7: C u trc thanh ghi ch c nng chung c a PIC 16F877A

  • 8/3/2019 do_an_pic_1296

    13/61

    n 2 GVHD: Nguy n Thanh Th o

    PORTD l TRISD v i v i PORTE l TRISE).

    -Ngoi ra, PORTA cn c cc ch c nng quan tr ng sau :

    Ng vo Analog c a b ADC : th c hi n ch c nng chuy n t Analog

    sang Digital

    Ng vo i n th so snh

    Ng vo xung Clock c a Timer0 trong ki n trc ph n c ng : th c hi n

    cc nhi m v m xung thng qua Timer0

    Ng vo c a b giao ti p MSSP (Master Synchronous Serial Port)

    - Cc thanh ghi SFR lin quan n PORTA bao g m:

    PORTA ( a ch 05h) : ch a gi tr cc pin trong PORTA.

    TRISA ( a ch 85h) : i u khi n xu t nh p. CMCON ( a ch 9Ch) : thanh ghi i u khi n b so snh.

    CVRCON ( a ch 9Dh) : thanh ghi i u khi n b so snh i n p.

    ADCON1 ( a ch 9Fh) : thanh ghi i u khi n b ADC.

    b/PORTB:

    - PORTB (RPB) g m 8 pin I/O. Thanh ghi i u khi n xu t nh p t ng ng l

    TRISB.

    - Bn c nh m t s chn c a PORTB cn c s d ng trong qu trnh n p

    ch ng trnh cho vi i u khi n v i cc ch n p khc nhau. PORTB cn lin

    quan n ng t ngo i vi v b Timer0. PORTB cn c tch h p ch c nng i n

    tr ko ln c i u khi n b i ch ng trnh.

    - Cc thanh ghi SFR lin quan n PORTB bao g m:

    PORTB ( a ch 06h, 106h) : ch a gi tr cc pin trong PORTB

    TRISB ( a ch 86h, 186h) : i u khi n xu t nh p

    OPTION_REG ( a ch 81h, 181h): i u khi n ng t ngo i vi v b Timer0.

    c/PORTC:

    PORTC c 8 chn v cng th c hi n c 2 ch c nng input v output d i s i u

    khi n c a thanh ghi TRISC t ng t nh hai thanh ghi trn.

    Ngoi ra PORTC cn c cc ch c nng quan tr ng sau :

    - Ng vo xung clock cho Timer1 trong ki n trc ph n c ng

    SVTH: Tr n T ng Bng V Vn Chnh 13

  • 8/3/2019 do_an_pic_1296

    14/61

    n 2 GVHD: Nguy n Thanh Th o

    - B PWM th c hi n ch c nng i u xung l p trnh c t n s , duty cycle:

    s d ng trong i u khi n t c v v tr c a ng c v.v.

    - Tch h p cc b giao ti p n i ti p I2C, SPI, SSP, USART

    d/PORTD:

    -PORTD c 8 chn. Thanh ghi TRISD i u khi n 2 ch c nng input v output c a

    PORTD t ng t nh trn.PORTD cng l c ng xu t d li u c a chu n giao ti p

    song song PSP (Parallel Slave Port).

    -Cc thanh ghi lin quan n PORTD bao g m:

    Thanh ghi PORTD: ch a gi tr cc pin trong PORTD.

    Thanh ghi TRISD: i u khi n xu t nh p.

    Thanh ghi TRISE: i u khi n xu t nh p PORTE v chu n giao ti p PSP.

    e/PORTE:

    -PORTE c 3 chn.Thanh ghi i u khi n xu t nh p t ng ng l TRISE.Cc chn

    c a PORTE c ng vo analog Bn c nh PORTE cn l cc chn i u khi n c a

    chu n giao ti p PSP.

    -Cc thanh ghi lin quan n PORTE bao g m:

    PORTE: ch a gi tr cc chn trong PORTE.

    TRISE: i u khi n xu t nh p v xc l p cc thng s cho chu n giao ti p PSP. ADCON1: thanh ghi i u khi n kh i ADC.

    4. Cc v n v Timer

    PIC16F877A c t t c 3 timer : timer0 (8 bit), timer1 (16 bit) v timer2 (8 bit).

    4.1. Timer0

    a/ L b nh th i ho c b m c nh ng u i m sau:

    8 bit cho b nh th i ho c b m.

    C kh nng c v vi t.

    C th dng ng bn trong ho c bn ngoi.

    C th ch n c nh xung c a xung ng h .

    C th ch n h s chia u vo (l p trnh b ng ph n m n).

    Ng t trn.

    b/ Ho t ng c a Timer 0:

    SVTH: Tr n T ng Bng V Vn Chnh 14

  • 8/3/2019 do_an_pic_1296

    15/61

    n 2 GVHD: Nguy n Thanh Th o

    Timer 0 c th ho t ng nh m t b nh th i ho c m t b m.Vi c ch n

    b nh th i ho c b m c th c xc l p b ng vi c xo ho c t bt

    TOCS c a thanh ghi OPTION_REG.

    N u dng h s chia xung u vo th xo bit PSA c a thanh ghi

    OPTION_REG.

    Trong ch b nh th i c l a ch n b i vi c xo bit T0CS (OPTION

    REG), n s c tng gi tr sau m t chu k l nh n u khng ch n h s

    chia xung u vo.V gi tr c a n c vi t t i thanh ghi TMR0.

    Khi dng xung clock bn ngoi cho b nh th i Timer0 v khng dng h s

    chia clock u vo Timer0 th ph i p ng cc i u ki n c n thi t c th

    ho t ng l ph i b o m xung clock bn ngoi c th ng b v i xung

    clock bn trong (TOSC).

    H s chia dng cho Timer 0 ho c b WDT. Cc h s nay khng c kh nng

    c v kh nng vi t. ch n h s chia xung cho b ti n nh c a Timer0

    ho c cho b WDT ta ti n hnh xo ho c t bt PSA c a thanh ghi

    OPTION_REG

    Nh ng bt PS2, PS1, PS0 c a thanh ghi OPTION_REG dng xc l p

    cc h s chia. B ti n nh c gi tr 1:2 ch ng h n, c ngha l : bnh th ng khng s d ng

    b ti n nh c a Timer0 ( ng ngha v i ti n nh t l 1:1) th c khi c tc

    ng c a 1 xung clock th timer0 s tng thm m t n v . N u s d ng b

    ti n nh 1:4 th ph i m t 4 xung clock th timer0 m i tng thm m t n v .

    V hnh chung, gi tr c a timer0 (8 bit) lc ny khng cn l 255 n a m l

    255*4=1020.

    c/ Ng t c a b Timer0 Ng t c a b Timer 0 c pht sinh ra khi thanh ghi TMR0 b trn t c

    t FFh quay v 00h.Khi bt T0IF c a thanh ghi INTCON s c

    t. Bt ny ph i c xa b ng ph n m m n u cho php ng t bit

    T0IE c a thanh ghi INTCON c set.Timer0 b d ng ho t ch

    SLEEP ng t Timer 0 khng nh th c b x l ch SLEEP.

    d/ Cc thanh ghi lin quan n Timer0 bao g m: SVTH: Tr n T ng Bng

    V Vn Chnh 15

  • 8/3/2019 do_an_pic_1296

    16/61

    n 2 GVHD: Nguy n Thanh Th o

    - Thanh ghi OPTION_REG : i u khi n ho t ng c a Timer0

    bit 5 TOCS l a ch n ngu n clock 1=Clock ngoi t chn T0CKI

    0=Clock trong Focs/4

    bit 4 T0SE bit l a chon s n xung clock 1=Timer 0 tng khi chn T0CKI t cao xu ng th p(s n xu ng) 0=Timer 0 tng khi chn T0CKI t th p ln cao(s n xu ng)

    bit 3 PSA bit gn b chia xung u vo 1=gn b chia Prescaler cho WDT0=gn b chia Prescaler cho Timer 0

    bit 2:0 PS2:PS1 l a ch n h s chia h s xung theo b ng sau:

    PS2:PS0 Timer0 WDT

    000 1:2 1:1

    001 1:4 1:2

    010 1:8 1:4

    011 1:16 1:8

    100 1:32 1:16

    101 1:64 1:32110 1:128 1:64

    111 1:256 1:128

    - Thanh ghi TMR0 i ch 01h v 101h : ch a gi tr c a b nh th i Timer0

    - Thanh ghi INTCON : cho php ng t ho t ng

    Thanh ghi ch a cc bit i u khi n v cc bt c hi u khi timer0 b trn, ng t ngo i

    vi RB0/INT v ng t interrupt_on_change t i cc chn c a PORTB.

    SVTH: Tr n T ng Bng V Vn Chnh 16

    Hnh 8: C u trc thanh ghi OPTION_REG REGISTERi u khi n ho t ng c a Timer0

    Hnh 9: C u trc thanh ghi INTCON cho php ng t Timer0 ho t ng

  • 8/3/2019 do_an_pic_1296

    17/61

    n 2 GVHD: Nguy n Thanh Th o

    Bit 7 GIE Global Interrupt Enable bit

    GIE = 1 cho php t t c cc ng t.

    GIE = 0 khng cho php t t c cc ng t.

    Bit 6 PEIE Pheripheral Interrupt Enable bit

    PEIE = 1 cho php t t c cc ng t ngo i vi.

    PEIE = 0 khng cho php t t c cc ng t ngo i vi.

    Bit 5 TMR0IE Timer0 Overflow Interrupt Enable bitTMR0IE = 1 cho php ng t Timer0.

    TMR0IE = 0 khng cho php ng t Timer0.

    Bit 4 RBIE RB0/INT External Interrupt Enable bit

    RBIE = 1 cho php t t c cc ng t ngo i vi RB0/INT

    RBIE = 0 khng cho php t t c cc ng t ngo i vi RB0/INT

    Bit 3 RBIE RB Port change Interrupt Enable bit

    RBIE = 1 cho php ng t RB Port changeRBIE = 0 khng cho php ng t RB Port change

    Bit 2 TMR0IF Timer0 Interrupt Flag bit

    TMR0IF = 1 thanh ghi TMR0 b trn (ph i xa c hi u b ng ch ng

    trnh).

    TMR0IF = 0 thanh ghi TMR0 ch a b trn.

    Bit 1 INTF BR0/INT External Interrupt Flag bit

    INTF = 1 ng t RB0/INT x y ra (ph i xa c hi u b ng ch ng trnh).

    INTF = 0 nga t RB0/INT ch a xa y ra.

    Bit 0 RBIF RB Port Change Interrupt Flag bit

    RBIF = 1 t nh t c m t chn RB7:RB4 c s thay i tr ng thi. Bt

    ny ph i c xa b ng ch ng trnh sau khi ki m tra l i cc gi tr

    chn t i PORTB.

    RBIF = 0 khng c s thay i tr ng thi cc chn RB7:RB4. SVTH: Tr n T ng Bng

    V Vn Chnh 17

  • 8/3/2019 do_an_pic_1296

    18/61

    n 2 GVHD: Nguy n Thanh Th o

    4.2.TIMER1

    a/Timer1 l b nh th i 16 bit, gi tr c a Timer1 s c l u trong hai thanh ghi 8

    bit TMR1H:TMR1L. C ng t c a Timer1 l bit TMR1IF, bit i u khi n c a Timer1 l

    TRM1IE.C p thanh ghi c a TMR1 s tng t 0000h ln n FFFFh r i sau trn v

    0000h. N u ng t c cho php, n s x y ra khi khi gi tr c a TMR1 trn t FFFFh

    r i v 0000h, lc ny TMR1IF s b t ln.

    b/ Timer1 c 3 ch ho t ng :

    Ch ho t ng nh th i ng b : Ch c l a ch n b i bit

    TMR1CS. Trong ch ny xung c p cho Timer1 l Fosc/4, bit T1SYNC

    khng c tc d ng.

    Ch m ng b : trong ch ny, gi tr c a timer1 s tng khi c xung

    c nh ln vo chn T1OSI/RC1. Xung clock ngo i s c ng b v i xung

    clock n i, ho t ng ng b c th c hi n ngay sau b ti n nh t l xung

    (prescaler).

    Ch m b t ng b :ch ny x y ra khi bit T1SYNC c set. B

    nh th i s ti p t c m trong su t qu trnh ng (Sleep) c a vi i u khi n

    v c kh nng t o m t ng t khi b nh th i trn v lm cho vi i u khi n

    thot kh i tr ng thi ng . c/ Cc thanh ghi lin quan n Timer1 bao g m:

    INTCON ( a ch 0Bh, 8Bh, 10Bh, 18Bh): cho php ng t ho t ng (2 bit GIE

    v PEIE).

    PIR1 ( a ch 0Ch): ch a c ng t Timer1 (TMR1IF).

    PIE1 ( a ch 8Ch): cho php ng t Timer1 (TMR1IE).

    Ba thanh ghi v a nu trn s c trnh by ph n ch ng trnh ngt c a PIC

    TMR1L ( a ch 0Eh): ch a gi tr 8 bt th p c a b m Timer1.

    TMR1H ( a ch 0Eh): ch a gi tr 8 bt cao c a b m Timer1.

    Hai thanh ghi TMR1L v TMR1H l 2 thanh ghi ch a d li u 16 bit (l n l t

    ch a 4 bit th p v 4 bit cao) c a b m Timer1

    T1CON ( a ch 10h): xc l p cc thng s chi Timer

    SVTH: Tr n T ng Bng V Vn Chnh 18

    Hnh 10: C u trc thanh ghi T1CON i u khi n ho t ng c a Timer1

  • 8/3/2019 do_an_pic_1296

    19/61

    n 2 GVHD: Nguy n Thanh Th o

    - bit 7,6 khng s d ng

    - bit 5,4 T1CKPS1: T1CKPS0 l a ch n h s chia xung vo.

    T1CKPS1 T1CKPS000 1:101 1:210 1:4

    11 1:8- bit 3 T1OSCEN bit i u khi n b dao ng Timer1

    1= B dao ng ho t ng 0= B dao ng khng ho t ng

    - bit 2 bit i u khi n xung clock ngoi ng b

    khi TMR1CS=1

    - bit2=0 c ng clock ngoai

    =1 khng ng b clock ngoi

    khi TMR1CS=0 bit ny khng c tc d ng- bit 1 TMR1CS bit l a ch n ngu n xung clock vo

    TMR1CS=1 clock t chn RC0/T1OSO/T1CKI (s n ln)

    TMR1CS=0 clock trong Fosc/4

    - bit 0 bit b t t t Timer

    1= Timer 1 enable

    0=Timer 1 Disable

    4.3.Timer 2

    a/ Timer2: l b nh th i 8 bit bao g m m t b ti n nh (prescaler), m t b h u

    nh Postscaler v m t thanh ghi chu k vi t t t l PR2. Vi c k t h p timer2 v i 2 b

    nh t l cho php n ho t ng nh m t b inh th i 16 bit. Module timer2 cung

    c p th i gian ho t ng cho ch i u bi n xung PWM n u module CCP c

    ch n.

    SVTH: Tr n T ng Bng V Vn Chnh 19

  • 8/3/2019 do_an_pic_1296

    20/61

    n 2 GVHD: Nguy n Thanh Th o

    b/ Ho t ng c a b Timer2

    - Timer2 c dng ch y u ph n i u ch xung c a b CCP, thanh ghi

    TMR2 c kh nng c v vi t, n c th xa b ng vi c reset l i thi t b . u vo c a xung c th ch n cc t s sau; 1:1; 1:4 ho c 1:16 vi c l a

    ch n cc t s ny c th i u khi n b ng cc bit sau T2CKPS1 v bit

    T2CKPS0.

    - B Timer2 c 1 thanh ghi 8 bt PR2 . Timer 2 tng t gi tr 00h cho n

    kh p v i PR2 v ti p theo n s reset l i gi tr 00h v l nh k ti p th c

    hi n.Thanh ghi PR2 l m t thanh ghi c kh nng c v kh nng vi t.

    c/ Thanh ghi T2CON: i u khi n ho t ng c a Timer2

    - bit 7 khng s d ng SVTH: Tr n T ng Bng

    V Vn Chnh 20

    Hnh 11: S kh i Timer2

    Hnh 12: C u trc thanh ghi T2CON i u khi n ho t ng c a Timer2

  • 8/3/2019 do_an_pic_1296

    21/61

    n 2 GVHD: Nguy n Thanh Th o

    - bit 6-3 TOUTPS3: TOUTPS0 bit l a ch n h s u ra Timer 2 0000=1:10001=1:20010=1:3

    1111=1:16- bit 2 TMR2ON bit b t t t ho t ng Timer 2 1= enable0= disable

    - bit 1- 0 T2CKPS1:T2CKPS0 ch n h chia u vo 00 = 1:101 = 1:41x=1:16

    5. NG T (INTERRUPT):

    - PIC16F877A c n 14 ngu n t o ra ho t ng ng t c i u khi n b i thanh

    ghi INTCON (bit GIE). Bn c nh m i ng t cn c m t bit i u khi n v c ng t

    ring. Cc c ng t v n c set bnh th ng khi th a mn i u ki n ng t x y ra

    b t ch p tr ng thi c a bit GIE, tuy nhin ho t ng ng t v n ph thuc vo bit

    GIE v cc bit i u khi n khc. Bit i u khi n ng t RB0/INT v TMR0 n m trong

    thanh ghi INTCON, thanh ghi ny cn ch a bit cho php cc ng t ngo i vi PEIE. Bit

    i u khi n cc ng t n m trong thanh ghi PIE1 v PIE2.C ng t c a cc ng t n m trong thanh ghi PIR1 v PIR2.

    - Trong m t th i i m ch c m t ch ng tr nh ng t c th c thi, ch ng trnh

    ng t c k t thc b ng l nh RETFIE. Khi ch ng trnh ng t c th c thi, bit

    GIE t ng c xa, a ch l nh ti p theo c a ch ng trnh chnh c c t vo

    trong b nh Stack v b m ch ng trnh s ch n a ch 0004h. L nh RETFIE

    c dng thot kh i ch ng trnh ng t v quay tr v ch ng trnh chnh,

    ng th i bit GIE cng s c set cho php cc ng t ho t ng tr l i. Cc c

    hi u c dng ki m tra ng t no ang x y ra v ph i c xa b ng ch ng

    trnh tr c khi cho php ng t ti p t c ho t ng tr l i ta c th pht hi n c

    th i i m ti p theo m ng t x y ra.

    - i v i cc ng t ngo i vi nh ng t t chn INT hay ng t t s thay i tr ng thi

    cc pin c a PORTB (PORTB Interrupt on change), vi c xc nh ng t no x y ra

    c n 3 ho c 4 chu k l nh ty thu c vo th i i m x y ra ng t.

    SVTH: Tr n T ng Bng V Vn Chnh 21

  • 8/3/2019 do_an_pic_1296

    22/61

    n 2 GVHD: Nguy n Thanh Th o

    - C n ch l trong qu trnh th c thi ng t, ch c gi tr c a b m ch ng

    trnh c c t vo trong Stack, trong khi m t s thanh ghi quan tr ng s khng c

    c t v c th b thay i gi tr trong qu trnh th c thi ch ng trnh ng t.i u ny

    nn c x l b ng ch ng trnh trnh hi n t ng trn x y ra.

    - Cc ngu n ng t c a Pic 16F877A: 1) RTCC ho c TIMER0: ng t trn Timer0.

    2) RB: ng t khi c s thay i tr ng thi 1 trong cc chn t RB4 n RB7

    c a PORTB.

    3) EXT: (External Interrupt) ng t ngoi khi c s thay i tr ng thi chn

    RB0 ca PORTB.

    4) AD: ng t khi b chuy n i tnh hi u t ng t sang tnh hi u s chuy n

    i hon t t 1 tnh hi u.

    5) TBE: ng t khi b m c a c ng RS232 r ng.

    6) RDA: ng t khi c ng RS232 nh n tnh hi u.

    7) TIMER1: ng t khi timer1 b trn.

    8) TIMER2: ng t khi timer2 b trn.

    9) CCP1; CCP2: ng t khi b capture ho c b Compare (b so snh i n p)

    ho t ng; knh 1 ho c 2. 10) SSP: ng t khi SPI ho c I2C ho t ng.

    11) PSP: ng t khi truy n nh n d li u song song.

    12) BUSCOL: ng t khi xung t ng truy n.

    13) EEPROM: ng t khi ghi xong d li u.

    14) COMP: ng t sau khi th c hi n so snh tnh hi u.

    SVTH: Tr n T ng Bng V Vn Chnh 22

  • 8/3/2019 do_an_pic_1296

    23/61

    n 2 GVHD: Nguy n Thanh Th o

    V i ti i u khi n t c ng c DC chng em s d ng hai lo i ngu n ng t l ng t ngoi khi c s thay i tr ng thi chn RB0 c a PORTB v ng t trn

    Timer1, v th chng em s trnh by c th h n v nguyn l ho t ng v cc ci

    t c a hai lo i ng t ny trong ph n d i y:

    a/ Ng t ngoi (External Interrupt):

    - Ng t ny d a trn s thay i tr ng thi c a pin RB0/INT. C nh tc ng gy

    ra ng t c th l c nh ln hay c nh xu ng v c i u khi n b i bit

    INTEDG (thanh ghi OPTION_ REG ). Khi c c nh tc ng thch h p xu t

    hi n t i pin RB0/INT, c ng t INTF c set b t ch p tr ng thi cc bit i u

    khi n GIE v PEIE. Ng t ny c kh nng nh th c vi i u khi n t ch

    sleep n u bit cho php ng t c set tr c khi l nh SLEEP c th c thi.

    - Thanh ghi OPTION_REG: a ch 81h, 181h

    Thanh ghi ny cho php i u khi n ch c nng pull-up c a cc pin trong PORTB, xc

    SVTH: Tr n T ng Bng V Vn Chnh 23

    Hnh 13: S ho t ng ng t c a PIC 16F877A

  • 8/3/2019 do_an_pic_1296

    24/61

    n 2 GVHD: Nguy n Thanh Th o

    l p cc tham s v xung tc ng, c nh tc ng c a ng t ngo i vi RB0 (External

    Interrupt) v b m Timer0.

    Bit 7 PORTB pull-up enable bit

    = 1 khng cho php ch c nng pull-up c a PORTB

    = 0 cho php ch c nng pull-up c a PORTB

    Bit 6 INTEDG Interrupt Edge Select bit

    INTEDG = 1 ng t x y ra khi c nh d ng chn RB0/INT xu t hi n.

    INTEDG = 0 ng t x y ra khi c nh m chn BR0/INT xu t hi n.

    Bit 5 TOCS Timer0 Clock Source select bit

    TOSC = 1 clock l y t chn RA4/TOCK1. TOSC = 0 dng xung clock bn trong (xung clock ny b ng v i xung clock

    dng th c thi l nh).

    Bit 4 TOSE Timer0 Source Edge Select bit

    TOSE = 1 tc ng c nh ln.

    TOSE = 0 tc ng c nh xu ng.

    Bit 3 PSA Prescaler Assignment Select bit

    PSA = 1 b chia t n s (prescaler) c dng cho WDT

    PSA = 0 b chia t n s c dng cho Timer0

    Bit 2:0 PS2:PS0 Prescaler Rate Select bit

    Cc bit ny cho php thi t l p t s chia t n s c a Prescaler.

    SVTH: Tr n T ng Bng V Vn Chnh 24

    Hnh 14: C u trc thanh ghi OPTION_REG cho php ng t ngo i v ng t timer0

  • 8/3/2019 do_an_pic_1296

    25/61

    n 2 GVHD: Nguy n Thanh Th o

    b/ Ng t trn Timer1:

    - C p thanh ghi TMR1H v TMR1L ch a gi tr m c a Timer1, chng tng t

    ga tr 0000h n ga tr FFFFh n gi tr ny ti p t c tng th timer1 trn v

    quay l i gi tr 0000h.V ng t xu t hi n khi trn qu gi tr FFFFh khi ny c

    ng t TMR1IF s c t.Ng t c th ho t ng ho c khng ho t ng nh

    vi c t ho c xa bt TMR1IE.

    - Thanh ghi i u khi n Timer1 T1CON:

    bit 7,6 khng s d ng

    bit 5,4 T1CKPS1:T1CKPS0 l a ch n h s chia xung vo

    T1CKPS1:T1CKPS0 t l chia u vo 00 1:1

    01 1:2

    10 1:4

    11 1:8

    bit 3 T1OSCEN bit i u khi n b dao ng Timer1

    1= B dao ng ho t ng

    0= B dao ng khng ho t ng

    bit 2 bit i u khi n xung clock ngoi ng b

    khi TMR1CS=1

    bit2=0 c ng clock ngoi

    =1 khng ng b clock ngoi

    khi TMR1CS=0 bit ny khng c tc d ng

    bit 1 TMR1CS bit l a ch n ngu n xung clock vo

    TMR1CS=1 clock t chn RC0/T1OSO/T1CKI (s n ln)

    TMR1CS=0 clock trong Fosc/4

    SVTH: Tr n T ng Bng V Vn Chnh 25

  • 8/3/2019 do_an_pic_1296

    26/61

    n 2 GVHD: Nguy n Thanh Th o

    bit 0 bit b t t t Timer

    1= Timer 1 enable

    0=Timer 1 Disable

    6. Ph ng php i u ch xung PWM: i u khi n t c ng c DC ng i ta c th dng nhi u ph ng php khc

    nhau trong c m t ph ng php h t s c quan tr ng v thng d ng l ph ng php

    i u ch r ng xung kch (PWM).

    6.1. i u ch PWM l g?

    Ph ng php i u ch r ng xung PWM (Pulse Width Modulation) l ph ng php

    i u ch nh i n p ra t i hay ni cch khc l ph ng php i u ch d a trn s thay i r ng c a chu i xung kch i u khi n linh ki n ng ng t (SCR hay

    Transistor) d n n s thay i i n p ra t i.

    th d ng xung i u ch PWM

    6.2. Nguyn l c a PWM:y l ph ng php c th c hi n theo nguyn t c dng ng t ngu n c t i m t

    cch c chu k theo lu t i u ch nh th i gian ng ng t.Ph n t th c hi n nhi m v

    ng c t l cc van bn d n.S nguyn l i u khi n t i dng PWM.

    SVTH: Tr n T ng Bng V Vn Chnh 26

    Hnh 15: th d ng xung i u ch PWM

  • 8/3/2019 do_an_pic_1296

    27/61

    n 2 GVHD: Nguy n Thanh Th o

    Trong kho ng th i gian 0 - to ta cho van Q1 m ton b i n p ngu n Ud c a ra t i.

    Cn trong kho ng th i gian t t0 n T cho van Q1 kha, c t ngu n cung c p cho t i.V

    v y v i th i gian t0 thay i t 0 cho n T ta s cung c p ton b , m t ph n hay kha hon ton i n p cung c p cho t i.

    Cng th c tnh gi tr trung bnh c a i n p ra t i l:

    Ud = Umax . (t0/T) hay Ud = Umax.D

    Trong Ud: l i n p trung bnh ra t i.

    Umax: l i n p ngu n.

    t0: l th i gian xung s n d ng (van kha m )

    . T: th i gian c th i gian xung s n d ng v s n m. D = t0/T: h s i u ch nh hay PWM c tnh b ng %

    V d : i n p ngu n l 12V.

    N u h s i u ch nh l 20% => U d = 12.20% = 2.4 V

    N u h s i u ch nh l 50% => U d = 12.50% = 6 V

    V v y, trong ti: i u khi n tc ng c DC chng em s d ng ph ng

    php i u ch r ng xung PWM thay i i n p DC c p cho ng c t

    SVTH: Tr n T ng Bng V Vn Chnh 27

    Q1NPN

    Q1(B)

    PWM xung vung

    TAI

    NGUON

    Hnh 16: S nguyn l dng PWM i u khi n i n p t i (tri) S xung van i u khi n v u ra (ph i)

  • 8/3/2019 do_an_pic_1296

    28/61

    n 2 GVHD: Nguy n Thanh Th o

    thay i t c c a ng c DC. i v i PIC16F877A s d ng ph ng php ny

    ta c th s d ng b i u ch r ng xung (PWM) tch h p s n bn trong PIC v i 2

    ng ra xung t i hai chn CCP1 (17) v CCP2 (16).T i cc chn ny khi ho t ng s

    xu t chu i xung vung v i r ng i u ch nh c d dng.Xung ra ny dng

    t o tn hi u ng ng t Trasistor trong m ch ng l c, v i r ng xc nh s t o ra

    m t i n p trung bnh xc nh.

    6.3. Cch thi t l p ch PWM cho PIC16F877A

    - Khi ho t ng ch PWM (Pulse Width Modulation _ kh i i u ch

    r ng xung), tnh hi u sau khi i u ch s c a ra cc pin c a kh i CCP

    (c n n nh cc pin ny l output ). s d ng ch c nng i u ch ny

    tr c tin ta c n ti n hnh cc b c ci t sau:

    Thi t l p th i gian c a 1 chu k c a xung i u ch cho PWM (period) b ng

    cch a gi tr thch h p vo thanh ghi PR2.

    Thi t l p r ng xung c n i u ch (duty cycle) b ng cch a gi tr vo

    thanh ghi CCPRxL v cc bit CCP1CON.

    i u khi n cc pin c a CCP l output b ng cch clear cc bit t ng ng trong

    thanh ghi TRISC.

    Thi t l p gi tr b chia t n s prescaler c a Timer2 v cho php Timer2 ho t ng b ng cch a gi tr thch h p vo thanh ghi T2CON.

    Cho php CCP ho t ng ch PWM.

    - Trong gi tr 1 chu k (period) c a xung i u ch c tnh b ng cng th c:

    - o rong cua xung ieu che (duty cycle) c tnh theo cong

    thc:

    SVTH: Tr n T ng Bng V Vn Chnh 28

    PWM period = [(PR2) +1]*4*TOSC

    *(gia tr bo chia tan socua TMR2).

    PWM duty cycle = (CCPRxL:CCPxCON)*TOSC

    *(gia tr bo chia tanso TMR2)

  • 8/3/2019 do_an_pic_1296

    29/61

    n 2 GVHD: Nguy n Thanh Th o

    - Khi gia tr thanh ghi PR2 bang vi gia tr thanh ghi TMR2 th

    qua trnh sau xay ra: Thanh ghi TMR2 t ng c xa.

    Pin c a kh i CCP c set.

    Gi tr thanh ghi CCPR1L (ch a gi tr n nh r ng xung i u ch duty

    cycle) c a vo thanh ghi CCPRxH.

    II. M ch c u H ( H-Bridge Circuit ).

    1/ Cng d ng v nguyn l ho t ng: M ch c u H l m t m ch i n gip o chi u dng i n qua m t i

    t ng . i t ng l ng c DC m chng ta c n i u khi n .M c ch i u khi n

    l cho php dng i n qua i t ng theo chi u A n B ho c B n A .T gip

    i chi u quay c a ng c .

    Hi n nay, ngoi lo i m ch c u H c thi t k t cc linh ki n r i nh : BJT

    cng su t, Mosfet, Cn c cc lo i m ch c u H c tch h p thnh cc IC nh :

    L293D v L298D. Do i t ng i u khi n trong ti ny l ng c DC c i n

    SVTH: Tr n T ng Bng V Vn Chnh 29

    Hnh 17: S kh i CCP (PWMmode)(tri) Cc tham s c a PWM (ph i)

  • 8/3/2019 do_an_pic_1296

    30/61

    n 2 GVHD: Nguy n Thanh Th o

    p 12V v cng sut nh nn chng em dng m ch c u H o chi u ng c l IC

    L298.

    Hnh 18: M ch c u H

    Kh o st ho t ng c a m ch c u H

    Hnh19: Nguyn l ho t ng c a m ch c u H

    SVTH: Tr n T ng Bng V Vn Chnh 30

  • 8/3/2019 do_an_pic_1296

    31/61

    n 2 GVHD: Nguy n Thanh Th o

    2/ M ch c u H L298D:

    L298D l m t chip toch1 h p 2 m ch trong gi 15 chn. L298D c i n p danh

    ngha cao (l n h n 50V) v dng i n danh ngha l n h n 2A nn r t thch h p cho

    cc ng d ng cng su t nh nh cc ng c DC lo i v a v nh .

    SVTH: Tr n T ng Bng V Vn Chnh 31

    Hnh 20: S chn c a IC L298D (ph i) IC L298D (tri)

    Hnh 21: S nguyn l c a IC L298D

  • 8/3/2019 do_an_pic_1296

    32/61

    n 2 GVHD: Nguy n Thanh Th o

    C 2 m ch c u H trn m i chip L298D nn c th i u khi n 2 i t ng ring v i 1

    chip ny. M i m ch c u H bao g m 1 ng ngu n Vs (th t ra l ng chung cho 2

    m ch c u), m t chn current sensing (c m bi n dng) ph n cu i c a m ch c u H,

    chn ny khng c n i t m b tr ng cho ng i dng n i 1 i n tr nh g i

    l sensing resistor.B ng cacch1 o i n p r i trn i n tr ny chng ta c th tnh

    c dng qua i n tr , cng l dng qua ng c , m c ch c a vi c ny l xc

    nh dng qu t i. N u vi c o l ng l khng c n thi t th ta c th n i chn ny

    v i GND. ng c s c n i v i 2 chn OUT1, OUT2 ho c OUT3, OUT4.Chn

    EN (ENA v ENB) cho php m ch c u ho t ng, khi chn ny c ko ln m c

    cao.

    L298D khng ch c dng o chi u ng c m cn i u khi n v n t c ng

    c b ng PWM.Trong th c t , cng su t th c ma L298D c th t i nh h n gi tr

    danh ngha c a n (U =50V, I =2A). tng dng t i c a chp ln g p i, chng ta

    c th n i hai m ch c u H song song v i nhau (cc chn c ch c nng nh nhau c a 2

    m ch c u c n i chung).

    III/LCD

    1/Ch c nng v hnh d ng LCD. Ngy nay, thi t b hi n th LCD (Liquid Crystal Display) c s d ng trong r t

    nhi u cc ng d ng c a vi i u khi n.LCD c r t nhi u u i m so v i cc d ng

    hi n th khc: n c kh nng hi n th k t a d ng, tr c quan (ch , s v k t

    h a), d dng a vo m ch ng d ng theo nhi u giao th c giao ti p khc nhau, t n

    r t t ti nguyn h th ng v gi thnh r

    SVTH: Tr n T ng Bng V Vn Chnh 32

    Hnh 22: LCD v s chn

  • 8/3/2019 do_an_pic_1296

    33/61

    n 2 GVHD: Nguy n Thanh Th o

    2/ Ch c nng cc chnB ng Ch c nng cc chn c a LCD

    * Ghi ch: ch c, ngha l MPU s c thng tin t LCD thng qua cc chn DBx.

    Cn khi ch ghi,ngha l MPU xu t thng tin i u khi n cho LCD thng qua

    cc chn DBx.

    SVTH: Tr n T ng Bng V Vn Chnh 33

    Chns Tn Ch c nng

    1 VSS

    Chn n i t cho LCD, khi thi t k m ch ta n i chn ny v i GND c a m ch i u khi n

    2 VDD

    Chn c p ngu n cho LCD, khi thi t k m ch ta n i chn ny v i VCC=5V c a m ch i u khi n

    3 Vee Chn ny dng i u ch nh t ng ph n c a LCD.

    4 RS

    Chn ch n thanh ghi (Register select). N i chn RS v i logic 0 (GND) ho c logic 1 (V CC) ch n thanh ghi. + Logic 0: Bus DB0-DB7 s n i v i thanh ghi l nh IR c a LCD

    ( ch ghi - write) ho c n i v i b m a ch c a LCD ( ch c - read) . + Logic 1: Bus DB0-DB7 s n i v i thanh ghi d li u DR bn

    trong LCD

    5 R/W

    Chn ch n ch c/ghi (Read/Write). N i chn R/W v i logic 0

    LCD ho t ng ch ghi, ho c n i v i logic 1 LCD ch c.

    6 E

    Chn cho php (Enable). Sau khi cc tn hi u c t ln bus DB0- DB7, cc l nh ch c ch p nh n khi c 1 xung cho php c a chn E.+ ch ghi: D li u bus s c LCD chuy n vo (ch p

    nh n) thanh ghi bn trong khi pht hi n m t xung (high-to-low transition) c a tn hi u chn E. + ch c: D li u s c LCD xu t ra DB0-DB7 khi pht

    hi n c nh ln (low-to-high transition) chn E v c LCD gi bus n khi no chn E xu ng m c th p.

    7-14DB0-

    DB7

    Tm ng c a bus d li u dng trao i thng tin v i MPU. C 2 ch s d ng 8 ng bus ny : + Ch 8 bit: D li u c truy n trn c 8 ng, v i bit MSB

    l bit DB7.

    + Ch 4 bit: D li u c truy n trn 4 ng t DB4 t i DB7, bit MSB l DB7.

  • 8/3/2019 do_an_pic_1296

    34/61

    n 2 GVHD: Nguy n Thanh Th o

    3/ c tnh i n c a cc chn giao ti p:

    LCD s b h ng nghim tr ng, ho c ho t ng sai l ch n u b n vi ph m kho ng c tnh i n sau y:

    Chn c p ngu n (Vcc-GND) Min:-0.3V , Max+7VCc chn ng vo (DBx, E, ) Min:-0.3V , Max:

    (Vcc+0.3V)

    Nhi t ho t ng Min:-30C , Max:+75CNhi t b o qu n Min:-55C , Max:+125C

    4/ T p l nh c a LCD:

    Cc l nh c a LCD c th chia thnh 3 nhm nh sau:

    Cc l nh v ki u hi n th . VD: Ki u hi n th (1 hng / 2 hng), chi u di d li u (8 bit / 4 bit),

    Ch nh a ch RAM n i.

    Nhm l nh truy n d li u trong RAM n i. V i m i l nh, LCD c n m t kho ng th i gian hon t t, th i gian ny c th kh

    lu i v i t c c a MPU, nn ta c n ki m tra c BF ho c i (delay) cho LCD

    th c thi xong l nh hi n hnh m i c th ra l nh ti p theo.

    Tn l nh Ho t ng Texe

    (max)Clear

    Display

    M l nh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1

    DB0

    DBx = 0 0 0 0 0 0 0 1

    L nh Clear Display (x a hi n th ) s ghi m t kho ng tr ng-

    blank (m hi n k t 20H) vo t t c nh trong DDRAM,

    sau tr b m a AC=0, tr l i ki u hi n th g c n u n

    b thay i. Ngha l : T t hi n th , con tr d i v g c tri (hng

    u tin), ch tng AC. SVTH: Tr n T ng Bng

    V Vn Chnh 34

  • 8/3/2019 do_an_pic_1296

    35/61

    n 2 GVHD: Nguy n Thanh Th o

    Return

    home

    M l nh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1

    DB0

    DBx = 0 0 0 0 0 0 1 *

    L nh Return home tr b m a ch AC v 0, tr l i ki u hi n th g c n u n b thay i. N i dung c a DDRAM khng

    thay i.

    1.52

    ms

    Entry

    mode set

    M l nh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1

    DB0

    DBx = 0 0 0 0 0 1 [I/D] [S]

    I/D : Tng (I/D=1) ho c gi m (I/D=0) b m a ch hi n th

    AC 1 n v m i khi c hnh ng ghi ho c c vng

    DDRAM. V tr con tr cng di chuy n theo s tng gi m ny.

    S : Khi S=1 ton b n i dung hi n th b d ch sang ph i

    (I/D=0) ho c sang tri (I/D=1) m i khi c hnh ng ghi vng

    DDRAM. Khi S=0: khng d ch n i dung hi n th .

    N i dung hi n th khng d ch khi c DDRAM ho c c/ghi

    vng CGRAM.

    37 us

    Display

    on/off

    control

    M l nh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1

    DB0

    DBx = 0 0 0 0 1 [D] [C] [B]

    D: Hi n th mn hnh khi D=1 v ng c l i. Khi t t hi n th ,

    n i dung DDRAM khng thay i.

    C: Hi n th con tr khi C=1 v ng c l i. V tr v hnh d ng

    con tr , xem hnh 8

    B: Nh p nhy k t t i v tr con tr khi B=1 v ng c l i.

    Xem thm hnh 8 v ki u nh p nhy. Chu k nh p nhy

    kho ng 409,6ms khi m ch dao ng n i LCD l

    250kHz

    37 us

    Cursor or

    display

    M l nh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1

    DB0

    37 us

    SVTH: Tr n T ng Bng V Vn Chnh 35

  • 8/3/2019 do_an_pic_1296

    36/61

    n 2 GVHD: Nguy n Thanh Th o

    shift DBx = 0 0 0 1 [S/C] [R/L] * *

    L nh Cursor or display shift d ch chuy n con tr hay d li u

    hi n th sang tri m khng c n hnh ng ghi/ c d li u.

    Khi hi n th ki u 2 dng, con tr s nh y xu ng dng d i khi

    d ch qua v tr th 40 c a hng u tin. D li u hng u v

    hng 2 d ch cng m t lc.

    Function

    set

    M l nh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1

    DB0

    DBx = 0 0 1 [DL] [N] [F] * *

    DL: Khi DL=1, LCD giao ti p v i MPU b ng giao th c 8 bit (t bit DB7 n DB0).

    Ng c l i, giao th c giao ti p l 4 bit (t bit DB7 n bit

    DB0). Khi ch n giao th c 4 bit, d li u c truy n/nh n

    2 l n lin ti p. v i 4 bit cao g i/nh n tr c,

    4 bit th p g i/nh n sau.

    N: Thi t l p s hng hi n th . Khi N=0: hi n th 1 hng, N=1:

    hi n th 2 hng.

    F: Thi t l p ki u k t . Khi F=0: ki u k t 5x8 i m nh,

    F=1: ki u k t 5x10 i m

    * Ch :

    Ch th c hi n thay i Function set u ch ng trnh. V sau khi c th c

    thi 1 l n, l nh thay i Function set khng c LCD

    ch p nh n n a ngo i tr thi t l p chuy n i giao

    th c giao ti p.

    Khng th hi n th ki u k t 5x10 i m nh ki u hi n th 2 hng

    37 us

    Set

    CGRAM

    M l nh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1

    DB0

    37 us

    SVTH: Tr n T ng Bng V Vn Chnh 36

  • 8/3/2019 do_an_pic_1296

    37/61

    n 2 GVHD: Nguy n Thanh Th o

    address DBx = 0 1 [ACG][ACG][ACG][ACG][ACG]

    [ACG]

    L nh ny ghi vo AC a ch c a CGRAM. K hi u [ACG] ch

    1 bit c a chu i d li u

    6 bit. Ngay sau l nh ny l l nh c/ghi d li u t CGRAM

    t i a ch c ch nh

    Set

    DDRAM

    address

    M l nh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1

    DB0

    DBx = 1 [AD] [AD] [AD] [AD] [AD] [AD]

    [AD]

    L nh ny ghi vo AC a ch c a DDRAM, dng khi c n thi t

    l p t a hi n th mong mu n. Ngay sau l nh ny l l nh

    c/ghi d li u t DDRAM t i a ch c ch nh.

    Khi ch hi n th 1 hng: a ch c th t 00H n 4FH.

    Khi ch hi n th 2 hng, a ch t 00h n 27H cho

    hng th nh t, v t 40h n 67h cho hng th 2.

    Xem chi ti t hnh 4.

    37 us

    Read BF

    and

    address

    M l nh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1

    DB0

    DBx = [BF] [AC] [AC] [AC] [AC] [AC] [AC]

    [AC] (RS=0, R/W=1)

    Nh c p tr c y, khi c BF b t, LCD ang lm

    vi c v l nh ti p theo (n u

    c) s b b qua n u c BF ch a v m c th p. Cho nn, khi

    l p trnh i u khi n, b n ph i ki m tra c BF tr c khi ghi

    d li u vo LCD.

    Khi c c BF, gi tr c a AC cng c xu t ra cc bit

    [AC]. N l a ch c a

    CG hay DDRAM l ty thu c vo l nh tr c c

    0 us

    Write M l nh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 37 us

    SVTH: Tr n T ng Bng V Vn Chnh 37

  • 8/3/2019 do_an_pic_1296

    38/61

    n 2 GVHD: Nguy n Thanh Th o

    data to

    CG or

    DDRAM

    DB0

    DBx = [Write data]

    (RS=1, R/W=0)

    Khi thi t l p RS=1, R/W=0, d li u c n ghi c a vo cc chn DBx t m ch

    ngoi s c LCD chuy n vo trong LCD t i a ch c

    xc nh t l nh ghi a ch tr c (l nh ghi a ch cng

    xc nh lun vng RAM c n ghi)

    Sau khi ghi, b m a ch AC t ng tng/gi m 1 ty

    theo thi t l p Entry mode.

    L u l th i gian c p nh t AC khng tnh vo th i gian th c

    thi l nh.

    Read

    data from

    CG

    M l nh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1

    DB0

    DBx = [Read data] (RS=1, R/W=1)

    37 us

    IV. i t ng i u khi n: ng c DC

    - y l ng c s d ng trong ti:

    SVTH: Tr n T ng Bng V Vn Chnh 38

    Hnh 23: ng c DC c g n encoder s d ng trong n

  • 8/3/2019 do_an_pic_1296

    39/61

    n 2 GVHD: Nguy n Thanh Th o

    - Bn trong ng c c g n m t encoder ng tr c v i n dng xc nh t c

    v v tr c a ng c .

    - Cc thng s c a ng c nh sau:

    + i n p DC c p cho ng c : 12VDC

    + T c t i a 2000 vng/pht

    + S xung c a encoder 60xung/vng

    + i n c m L=102mH

    - ng c c t t c 5 dy ra:

    + 2 dy cung c p ngu n 12 V cho ng c + 2 dy ngu n 5V cung c p ngu n cho encoder

    + 1 dy tn hi u a xung encoder ra ngoi

    - Ph ng php i u khi n : Thay i t c ng c b ng cch thay i p c p vo

    cho ng c .

    - Nguyn l ho t ng c a c m bi n encoder: c nhi u lo i encoder khc nhau.

    M i lo i l i c m t nguyn l ho t ng khc nhau, trong khun kh bo co

    n, em xin trnh by ph n nguyn l lo i encoder trong ti m em s d ng:

    incremental encoder.

    -

    M hnh th 1

    SVTH: Tr n T ng Bng V Vn Chnh 39

    Hnh 24: Encoder

  • 8/3/2019 do_an_pic_1296

    40/61

    n 2 GVHD: Nguy n Thanh Th o

    Incremental encoder v c b n l m t a trn quay quanh m t tr c c c l

    nh hnh trn.

    2 bn m t c a ci a trn , s c m t b thu pht quang. Trong qu trnh

    encoder quay quanh tr c, n u g p l r ng th nh sng chi u qua c, n u g p

    mnh ch n th tia sng khng chi u qu c. Do tn hi u nh n c t sensor

    quang l m t chu i xung.M i encoder c ch t o s bi t s n s xung trn m t

    vng. Do ta c th dng vi i u khi n m s xung trong m t n v th i gian

    v tnh ra t c ng c .

    Encoder m em s d ng trong n c a mnh, hon ton gi ng v i m hnh trn.

    Tuy nhin, m hnh trn c nh c i m l n l: ta khng th xc nh c ng c

    quay tri hay quay ph i, v c quay theo chi u no i n a th ch c m t d ng xung

    a ra. Ngoi ra i m b t u c a ng c , ta cng khng th no bi t c.

    C i ti n m hnh 1 b ng m hnh 2 nh sau: SVTH: Tr n T ng Bng

    V Vn Chnh 40

    B thupht quang

    a kh cv ch

    Hnh 25: C u t o Encoder

  • 8/3/2019 do_an_pic_1296

    41/61

    n 2 GVHD: Nguy n Thanh Th o

    M hnh th 2

    Trong m hnh ny, ng i ta c t t c l 2 vng l . Vng ngoi cng gi ng

    nh m hnh 1, vng gi a l ch pha so v i vng ngoi l 90 . Khi , d ng xung ra

    t 2 vng trn nh sau :

    Hai xung a ra t 2 vng l ch nhau 90 , n u vng ngoi nhanh pha h n vng

    trong th ch c ch n ng c quay t tri sang ph i v ng c l i.

    SVTH: Tr n T ng Bng V Vn Chnh 41

    Hnh 27: th xung c a encoder c 2 vng v ch l nh pha nhau 90 0

    Hnh 26: a kh c 2 cng v ch l ch pha nhau 90 0

  • 8/3/2019 do_an_pic_1296

    42/61

    n 2 GVHD: Nguy n Thanh Th o

    L vng trong cng dng pht hi n i m b t u c a ng c .C th vi t

    ch ng trnh cho vi i u khi n nh n bi t: n u c m t xung pht ra t vng trong

    cng ny, t c l ng c quay ng m t vng.

    V i nh ng c tnh trn, encoder dng r t ph bi n trong vi c xc nh v tr gc

    c a ng c .. M t lo i encoder th 2 cng ph bi n hi n nay, l: absolute encoder.

    M hnh a quang c a lo i ny nh sau:

    CH NG 3:

    THI T K M CH PH N C NG

    CODE CH NG TRNH V L U GI I THU T

    I/ THI T K M CH PH N C NG:

    SVTH: Tr n T ng Bng V Vn Chnh 42

    Hnh 28: a kh c nhi u vng v ch khc nhau

  • 8/3/2019 do_an_pic_1296

    43/61

    n 2 GVHD: Nguy n Thanh Th o

    M ch c thi t k g m c cc kh i nh sau: kh i ngu n, kh i bn phm, kh i hi n

    th , kh i m ch cng su t, kh i i u khi n.

    1/Kh i ngu n:

    M ch l y ngu n xoay chi u qua adapter AC/DC 220VAC/12VDC , v c n p nh

    IC 7805.S nguyn l m ch:

    Ch c nng c a cc ph n t trong m ch:

    - IC 7805: ch c nng n p i n p 5V

    - C4 t ha (c phn c c) n p ng vo, i n dung c a t ny cng l n th i n

    p vo IC 7805 cng ph ng.

    - C5 v C7 t gi y (khng phn c c) l hai t l c nhi u t ng s cao ng vo

    v ng ra.

    - C6 t ha c tc d ng d p dao ng t kch khi s d ng IC n p dng 78xx.

    2/ Kh i m ch bn phm:

    M ch bn phm g m 16 phm, c b tr thnh 4 hng v 4 c t nh hnh v :

    SVTH: Tr n T ng Bng V Vn Chnh 43

    VI1

    VO3

    GND

    2

    U2

    7805

    3

    2

    1

    J1

    JACK C4

    100uF

    C5

    100nF

    C6

    100uF

    C7

    100nF

    D8

    LED

    R26

    1k

    +12V +5V

    1

    2

    J2

    TERMINAL2

    Hnh 29: Kh i m ch n p

    Hnh 30: IC7805

    B4B5

    B6

    B7

    A0A1

    A2

    A3

    1 2

    PHIM 1

    BUTTON

    1 2

    PHIM 4

    BUTTON

    1 2

    PHIM 7

    BUTTON

    1 2PHIM 16

    0

    1 2

    PHIM 2

    BUTTON

    1 2

    PHIM 5

    BUTTON

    1 2

    PHIM 8

    BUTTON

    1 2PHIM 15

    SAVE

    1 2

    PHIM 3

    BUTTON

    1 2

    PHIM 6

    BUTTON

    1 2

    PHIM 9

    BUTTON

    1 2PHIM 14

    CLEAR

    1 2

    PHIM 10

    FW

    1 2

    PHIM 11

    RV

    1 2

    PHIM 12

    STOP

    1 2PHIM 13

    ENTER

    1

    2

    3

    4

    56

    7

    8

    J1

    SIL-100-08

    1

    23

    J2

    SIL-100-03

    R1

    10k

    R2

    10k

    R3

    10k

    R4

    10k

    Hnh 31: Kh i m ch bn

  • 8/3/2019 do_an_pic_1296

    44/61

    n 2 GVHD: Nguy n Thanh Th o

    B n hng c n i v i Port B (t B4 n B7) c a vi x l, b n c t c n i v i Port

    A (t A0 n A3) c a vi x l v c n i v i ngu n VCC qua i n tr (ngha l cc

    chn c a Port A t A0 n A3 s lun nh n m c 1 khi khng c phm nh n), vi c

    lm ny nh m ph c v cho gi i thu t qut phm s c trnh by ph n sau.

    Trong s 16 phm c 10 phm nh p d li u s t 0 n 9, 6 phm i u khi n (FW,

    RV, STOP, ENTER, CLEAR, SAVE).

    Ngu n VCC trong s m ch bn phm l 5V, c c p t kh i m ch n p trn.V m ch bn phm truy n nh n d li u tr c ti p v i PIC nn c n i n p n

    nh.

    3/Kh i m ch hi n th :

    M ch hi n th bao g m mn hnh LCD giao ti p v i PIC qua Port D v i giao th c 4

    bit, ngoi ra cn c bi n tr i u ch nh sng c a LCD.

    Ngoi ra, cn c kh i hi n th g m 8 led n c h n dng b ng i n tr 220, c

    tc d ng text ch ng trnh,cc kh i khc v cng c dng bo hi u o

    chi u trong ch c ci t th i gian.

    SVTH: Tr n T ng Bng V Vn Chnh 44

    D7

    14

    D6

    13

    D5

    12

    D4

    11

    D3

    10

    D2

    9

    D1

    8

    D0

    7

    E

    6

    RW

    5

    RS

    4

    VSS

    1

    VDD

    2

    VEE

    3

    K

    16

    A

    15

    LCD1

    RT1602C

    D0D1D2

    D7

    D6

    D5

    D4

    48%

    RV1

    10k

    Hnh 32: Kh i m ch LCD v LED n

    1 2 3 4 5 6 7 8

    J5

    SIL-100-08

    D2

    LED

    D3

    LED

    D4

    LED

    D5

    LED

    D6

    LED

    D7

    LED

    D9

    LED

    D10

    LED

    R2

    330

    R3

    330

    R4

    330

    R5

    330

    R6

    330

    R7

    330

    R8

    330

    R9

    330

  • 8/3/2019 do_an_pic_1296

    45/61

    n 2 GVHD: Nguy n Thanh Th o

    4/Kh i m ch cng su t:

    M ch cng su t s d ng IC c u H L298, v i 2 knh A v B,m i knh v i i n p

    nh m c 50V v dng nh m c cho t i l 2A.Khi u song song 2 knh ta c dng c p cho t i ln n 4A (g p i).i n p i u khi n 5V.

    C u Diode dng ch ng dng i n ng c, do t i ng c c tnh ch t c m

    khng.Ngu n c p cho ng c 12V

    S dung IC c u H ny, khng nh ng dng o chi u ng c m cn i u

    khi n t c ng c b ng ph ng php bm xung (PWM). SVTH: Tr n T ng Bng

    V Vn Chnh 45

    IN15

    IN27

    ENA6

    OUT12

    OUT23

    ENB11

    OUT313

    OUT414

    IN310

    IN412

    SENSA1

    SENSB15

    GND

    8

    VS

    4

    VCC

    9 U1

    L298

    +12V

    +88.8

    R1

    0.5

    R2

    0.5

    D11N4007

    D21N4007

    D31N4007

    D41N4007

    +12V

    1

    2

    3

    J1

    Encoder

    M1

    M2

    M1 M2

    1

    2

    J2

    Motor

    M1

    M2

    CLK

    CLK1

    2

    J4

    Motor

    +12V

    1

    2

    3

    4

    5

    J3

    SIL-100-05

    Hnh 33: Kh i m ch cng su t s s ng IC L298

  • 8/3/2019 do_an_pic_1296

    46/61

    n 2 GVHD: Nguy n Thanh Th o

    5/ Kh i m ch i u khi n:

    Vi i u khi n trung tm l PIC 16F877A.V i ch c nng c a cc port nh sau:

    Port A (t A0 n A3) c set l ng vo nh n tnh hi u t 4 c t c a bm

    phm.

    Port B (t B3 n B7) l ng ra xu t tnh hi u ra 4 hng c a kh i bn phm,

    chn RB0 nh n tnh hi u xung t Encoder (v ng t ngoi x y ra khi tnh hi u

    thay i trn chn RB0);

    Ta s dung 2 chn RC1(CCP2) v RC2 (CCP1) c a Port C xu t tnh hi u

    PWM i u khi n ng c .

    Port D (tr chn RD3) g i tnh hi u n kh i hi n th LCD.Ba chn t RD0

    n RD2 n i v i 3 chn i u khi n c a LCD.B n chn t RD4 n RD7 n i v i 4 bt cao c a cc chn nh n d li u c a LCD.

    Th ch anh dng trong m ch gi tr 20MHz, v i 2 t C1,C2 l t gi y v i i n dung

    33uF. Pic reset khi chn s 1 MCLR n i mass.T C3 c tc d ng ch ng nhi u chn

    s 1.

    II/ Gi i thi u v ch ng trnh vi t code v bin d ch:

    Trong n ny nhm chng em s d ng ch ng trnh vi t code CCS, ch ng trnh

    cho php l p trnh ngn ng C cho vi i u khi n PIC c a Microchip. SVTH: Tr n T ng Bng

    V Vn Chnh 46

    RA0/AN02

    RA1/AN13

    RA2/AN2/VREF-/CVREF4

    RA4/T0CKI/C1OUT6

    RA5/AN4/SS/C2OUT7

    RE0/AN5/RD8

    RE1/AN6/WR9

    RE2/AN7/CS10

    OSC1/CLKIN13

    OSC2/CLKOUT

    14

    RC1/T1OSI/CCP216

    RC2/CCP117

    RC3/SCK/SCL18

    RD0/PSP019

    RD1/PSP120

    RB7/PGD40

    RB6/PGC39

    RB538

    RB437

    RB3/PGM36

    RB2 35RB1

    34RB0/INT

    33

    RD7/PSP7 30RD6/PSP6

    29RD5/PSP5

    28RD4/PSP4

    27RD3/PSP3

    22RD2/PSP2

    21

    RC7/RX/DT26

    RC6/TX/CK25

    RC5/SDO24

    RC4/SDI/SDA23

    RA3/AN3/VREF+5

    RC0/T1OSO/T1CKI15

    MCLR/Vpp/THV1

    U1

    PIC16F877A

    RSRW

    E

    D7D6

    D5

    D4

    12

    34

    5

    J3

    SIL-100-05

    X1

    20M

    C2

    33

    C1

    33

    1

    2

    34

    56

    7

    8

    J4

    SIL-100-08

    R1R2

    R3R4

    C1

    C2

    C3

    C4

    C1

    C2

    C3

    C4

    R4

    R3

    R2

    R1

    C3

    10uF

    R1

    10k

    SW1

    BUTTON

    D1

    1N4148

    1

    2

    3

    45

    67

    8

    J6

    SIL-100-08

    1

    2

    34

    56

    7

    8

    J7

    SIL-100-08

    1

    2

    345

    67

    8

    J8

    SIL-100-08

    12

    3

    J9

    SIL-100-03

    1

    2

    34

    56

    J10

    SIL-100-06

    R10

    10k

    Hnh 34: Kh i m ch i u khi n PIC 16F877A

  • 8/3/2019 do_an_pic_1296

    47/61

    n 2 GVHD: Nguy n Thanh Th o

    Ch ng trnh ny c cc cu l nh n gi n, d hi u, h tr bin d ch v i ch c nng

    hi n th l i v c nh bo ch ng trnh khng kh d ng. Ngoi ra n cn c th bin

    d ch t code C ra file.hex v c code Assemble.

    C u trc 1 ch ng trnh trong CCS:

    - u tin l cc ch th ti n x l : ( # . . . ) c nhi m v bo cho CCS c n s

    d ng nh ng g trong ch ng trnh C nh dng vi x l g , c dng giao ti p PC

    khng , ADC khng , DELAY khng , c s d ng ng t hay khng

    - Cc khai bo bi n.

    - Cc hm con.

    - Cc hm ph c v ng t theo sau b i 1 ch th ti n x l cho bi t dng ng t no. - Ch ng trnh chnh.

    V d v c u trc 1 ch ng trnh trong CCS:

    //------khai bo ti n x l-------

    #include

    #device PIC16F877 *=16 ADC=10

    #use delay (clock=20000000)

    // khai bo them n u c

    //------khai bo bi n-------

    Int a,b;

    Int16 x,y;

    ..

    //----------cc ch ng trnh con-------SVTH: Tr n T ng Bng

    V Vn Chnh 47

  • 8/3/2019 do_an_pic_1296

    48/61

    n 2 GVHD: Nguy n Thanh Th o

    Void xu_ly_ADC ()

    {

    }

    Int cai_dat_PWM ()

    {.

    Return(bi n);}

    //------hm ng t-------

    #INT_TIMER1

    Void xu_ly_ngt()

    {

    }

    //-------ch ng trnh chnh--------

    Void main()

    {

    ..}

    III/ L u gi i thu t:

    L u gi i thu t g m: l u ch ng trnh chnh, ch ng trnh qut phm, ch ng trnh ng t c a timer1. Ch ng trnh chnh l 1 vng l p v h n c nh ng ch ng trnh con nh :

    qut phm, check phm, ch n ch , tnh PWM, nh p d li u t c , nh p d li u th i gian, save vo epprom.

    Ch ng trnh qut phm th hi n gi i thu t nh n phm nh n v nh n bi t gi tr c a phm (phm nh n l phm no) .

    Ch ng trnh ng t timer 1 c tc d ng c p nh t gi tr t c , tnh ton gi tr PWM, v xu t tnh hi u n kh i hi n th .

    SVTH: Tr n T ng Bng V Vn Chnh 48

  • 8/3/2019 do_an_pic_1296

    49/61

    n 2 GVHD: Nguy n Thanh Th o

    CODE CH NG TRNH#include"E:/TL/DOAN2\cauH\MACH\15\main.h"#include

    //#include //dung cac ham toan hoc#use delay(clock=20000000)

    #use fast_io(a)#use fast_io(b)#use fast_io(c)#use fast_io(d)

    //==================khai bao ham con=============int quetphim();

    int checkphim(b);void pwm();

    void ghi_tocdo();void ghi_thoigian();

    void clear();void read_rom();//==================khai bao bien================int8 i,t,a,b,c,d,sttphim,duty,ct,l,m;

    int16 s_xung,s_vong,setpoint,error,luu,tg,tg1,dem;//================ bien luu eeprom==============

    int8 e0,e1,e2,e3,j,k;int16 e;//================chuong trinh quet phim==========//quet phim so

    int quetphim(){

    output_b(0xe0);// B4=0a=0;b=1;checkphim(b);

    if (a!=0){delay_ms(200);

    return (sttphim);}output_b(0xd0);// B5=0

    a=0;b=2;

    checkphim(b);if (a!=0){delay_ms(200);return (sttphim);}

    output_b(0xb0);// B6=0a=0;

    b=3;checkphim(b);

    if (a!=0)

    SVTH: Tr n T ng Bng V Vn Chnh 55

  • 8/3/2019 do_an_pic_1296

    50/61

    n 2 GVHD: Nguy n Thanh Th o

    {delay_ms(200);return (sttphim);}

    output_b(0x70);// B6=0a=0;

    b=4;checkphim(b);

    if (a!=0){delay_ms(200);return (sttphim);}}

    //============chuong trinh check phim=============int checkphim(b)

    {switch (b){case 1:

    if(!input(pin_a0)){sttphim=1;

    a=1;}else if(!input(pin_a1)){sttphim=2;a=1;}

    else if(!input(pin_a2)){sttphim=3;

    a=1;}else if(!input(pin_a3))

    { sttphim=10;//thuana=1;}

    else {}break;

    case 2:

    if(!input(pin_a0)){sttphim=4;

    a=1;}

    else if(!input(pin_a1)){sttphim=5;a=1;}

    else if(!input(pin_a2)){sttphim=6;

    a=1;}else if(!input(pin_a3)){sttphim=11;//nghicha=1;}

    else {}

    break;

    SVTH: Tr n T ng Bng V Vn Chnh 56

  • 8/3/2019 do_an_pic_1296

    51/61

    n 2 GVHD: Nguy n Thanh Th o

    case 3:if(!input(pin_a0))

    {sttphim=7;a=1;}

    else if(!input(pin_a1)){sttphim=8;

    a=1;}else if(!input(pin_a2)){sttphim=9;a=1;}

    else if(!input(pin_a3)){sttphim=12;//stop

    a=1;}else {}break;

    case 4:if(!input(pin_a0))

    {sttphim=0;//0a=1;}else if(!input(pin_a1)){sttphim=15;//save

    a=1;}else if(!input(pin_a2))

    {sttphim=14;//cleara=1;}

    else if(!input(pin_a3)){sttphim=13;//set

    a=1;}else {}break;}return (sttphim);

    }// chuong trinh nhan xung tu encoder

    //ngat ngoai, nhan xung tu encoder

    #int_extvoid RB0_isr(){

    s_xung++;//dem so xung o chan RB0}

    //ngat timer1, tinh toan pwm va hien thi#int_timer1void timer1_isr(){

    set_timer1(-62500);

    if (t==5){

    SVTH: Tr n T ng Bng V Vn Chnh 57

  • 8/3/2019 do_an_pic_1296

    52/61

    n 2 GVHD: Nguy n Thanh Th o

    S_vong=s_xung*2;//xung tren phut//ht

    lcd_gotoxy(1,1);printf(lcd_putc," ");

    if(ct==1){

    lcd_gotoxy(1,1);printf(lcd_putc,"TD_dat=%lu v/p",luu);}else {lcd_gotoxy(1,1);

    printf(lcd_putc,"TG_dat=%lu s",tg);}lcd_gotoxy(1,2);

    printf(lcd_putc," ");if (d==2){lcd_gotoxy(1,2);printf(lcd_putc,"TD_tt=-%luv/p",s_vong);}

    if (d==1){lcd_gotoxy(1,2);

    printf(lcd_putc,"TD_tt= %luv/p",s_vong);}//=========================//xuat pwmpwm();

    //========================s_xung=0;

    s_vong=0;t=0;

    set_timer1(-62500);}

    elset++;set_timer1(-62500);}

    //ngat timer0, dat thoi gian#int_timer0

    void time0_irs()

    {set_timer0(-235);if (dem>=tg1)

    {output_high(pin_e0);

    delay_us(100);output_low(pin_e0);dem=0;if (d==1)

    {d=2;}

    else if (d==2)

    SVTH: Tr n T ng Bng V Vn Chnh 58

  • 8/3/2019 do_an_pic_1296

    53/61

    n 2 GVHD: Nguy n Thanh Th o

    {d=1;}else{}

    set_timer0(-235);}

    else {dem++;

    set_timer0(-235);}}//chuong trinh chinhvoid main()

    {i=0;

    sttphim=0;setpoint=0;tg=0;duty=0;c=0;

    d=0;ct=0;l=0;m=0;

    e0=0;e1=0;e2=0;e3=0;e=0;k=0;//============================================================//1:ngo vao;0: la ngo ra

    set_tris_b(0b00001111);//4 chan RB4-RB7 xuat du lieu ra ban phimset_tris_a(0b00001111);//4 chan RA0-RA3 nhan du lieu tu ban phim

    set_tris_c(0b00000000);//2 chan RC0 va RC1 xuat PWMset_tris_D(0b00000000);//port D la port xuat du lieu ra LCD

    //============================================================

    setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);/* timer1 la bo dinh thoi su dung xung noi,bo chia 1:8 thay doi moi1600nsDung timer1 de ngat moi 0.1s do vay ta dat gia tri cho timer1 la :

    0.1s/1600ns=62500(D)=F424(H) =>gia tri nap la FFFF-F424=BDB*/setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);

    enable_interrupts(int_ext);//khoi dong ngat ngoai

    ext_int_edge(H_TO_L); // xung tu cao xuong thapenable_interrupts(global);// khoi dong bit ngat GIEsetup_timer_2(T2_DIV_BY_4,249,1);

    /*timer2 dung dinh thoi cho bo PWMmode: bo chia thoi gian (prescale) cua timer2 1:4

    period: gia tri nap chi thanh ghi PR2postscale : bo chi ra,chon 1:1 PWM khong dungThach anh 20MHz, PWM fre: 10000Hz, thay doi duty cycle(%) dethay doi toc do*/

    setup_ccp1(CCP_PWM);

    setup_ccp2(CCP_PWM);

    SVTH: Tr n T ng Bng V Vn Chnh 59

  • 8/3/2019 do_an_pic_1296

    54/61

    n 2 GVHD: Nguy n Thanh Th o

    set_pwm1_duty(0);set_pwm2_duty(0);

    //===========================================================

    lcd_init()lcd_send_byte(0,0x01);

    lcd_gotoxy(1,1);printf(lcd_putc,"CHUONG TRINH DK ");lcd_gotoxy(1,2);printf(lcd_putc," TD DONG CO DC ");

    delay_ms(1000);lcd_gotoxy(1,1);

    printf(lcd_putc," ");lcd_gotoxy(1,2);printf(lcd_putc," ");read_rom();

    lcd_gotoxy(1,1);printf(lcd_putc,"CHON CHE DO :_ ");

    while (true){while (c==0){

    quetphim();if (a!=0)

    {if (sttphim==1)

    { ct=1;c=1;

    lcd_gotoxy(1,1);printf(lcd_putc,"CHON CHE DO :_%u",ct);}if (sttphim==2){ ct=2;

    c=1;lcd_gotoxy(1,1);

    printf(lcd_putc,"CHON CHE DO :_%u",ct);}

    }}if (ct==1)

    {lcd_gotoxy(1,1);printf(lcd_putc,"TD_dat=_ v/p");

    lcd_gotoxy(1,2);printf(lcd_putc,"TD_luu=%lu v/p",e);}else {lcd_gotoxy(1,1);

    printf(lcd_putc,"TD_dat=_ v/p");

    lcd_gotoxy(1,2);

    SVTH: Tr n T ng Bng V Vn Chnh 60

  • 8/3/2019 do_an_pic_1296

    55/61

    n 2 GVHD: Nguy n Thanh Th o

    printf(lcd_putc,"TG_dat=_ s");}While (c==1)

    {quetphim();

    if (a!=0)

    {if (sttphim>=0 && sttphim9{if (m==0)

    {ghi_tocdo();}if((ct==2)&&(m==1))

    {ghi_thoigian();}}if (sttphim==14){clear();}

    if ((sttphim==13)&&(i==0)&&(e==0)){

    lcd_gotoxy(1,1);printf(lcd_putc," ");lcd_gotoxy(1,1);printf(lcd_putc,"Phai nhap TD_dat");

    delay_ms(1000);lcd_gotoxy(1,1);

    printf(lcd_putc," ");lcd_gotoxy(1,1);

    printf(lcd_putc,"TD_dat=_");}

    if ((sttphim==15)&&(i!=0)) //luu vao eeprom{write_eeprom(0,e0);delay_ms(100);

    write_eeprom(1,e1);delay_ms(100);

    write_eeprom(2,e2);

    delay_ms(100);write_eeprom(3,e3);delay_ms(100);

    write_eeprom(4,i);delay_ms(100);

    lcd_gotoxy(1,2);printf(lcd_putc," ");lcd_gotoxy(1,2);printf(lcd_putc," LUU THANH CONG ");

    }

    if ((sttphim==13)&&((i!=0)||(e!=0)))

    SVTH: Tr n T ng Bng V Vn Chnh 61

  • 8/3/2019 do_an_pic_1296

    56/61

    n 2 GVHD: Nguy n Thanh Th o

    {if (ct==1)

    {c=2;

    if (e!=0 && i==0)luu=e;}

    if ((ct==2)&&(l>=2)){c=2;}m=1;

    }}}while (c==2)

    {quetphim();if(a!=0){

    if(sttphim==10){

    lcd_gotoxy(1,2);printf(lcd_putc," ");lcd_gotoxy(1,2);printf(lcd_putc," QUAY THUAN ");

    if (ct==2){enable_interrupts(int_timer0);

    set_timer1(-235);}enable_interrupts(int_timer1);

    enable_interrupts(global);set_timer1(-62500);

    set_pwm1_duty(duty);d=1;}if (sttphim==11)

    {lcd_gotoxy(1,2);

    printf(lcd_putc," ");

    lcd_gotoxy(1,2);printf(lcd_putc," QUAY NGHICH ");if (ct==2)

    {enable_interrupts(int_timer0);set_timer1(-235);}

    enable_interrupts(int_timer1);enable_interrupts(global);set_timer1(-62500);set_pwm2_duty(duty);

    d=2;

    }

    SVTH: Tr n T ng Bng V Vn Chnh 62

  • 8/3/2019 do_an_pic_1296

    57/61

    n 2 GVHD: Nguy n Thanh Th o

    if (sttphim==12)//stop{

    disable_interrupts(int_timer0);set_timer0(0);

    disable_interrupts(int_timer1);set_pwm1_duty(0);

    set_pwm2_duty(0);lcd_gotoxy(1,2);printf(lcd_putc," ");lcd_gotoxy(1,2);

    printf(lcd_putc," STOP ");duty=0;

    d=0;}if (sttphim==14){

    clear();c=0;

    lcd_gotoxy(1,1);printf(lcd_putc," ");lcd_gotoxy(1,2);printf(lcd_putc," ");

    lcd_gotoxy(1,1);printf(lcd_putc,"CHON CHE DO :_ ");

    }}}}}

    void pwm()

    {if ((luu>s_vong)&& duty1000)

    duty=duty+50;else if (error>100)

    duty=duty+20;

    else if (error>30){duty=duty+5;}else if (error>20)

    duty=duty+1.5;else if (error>10)

    duty=duty+(0.05*error);else {duty=duty+(0.025*error);}}if (luu0))

    {error=s_vong-luu;

    if (error>=10)

    SVTH: Tr n T ng Bng V Vn Chnh 63

  • 8/3/2019 do_an_pic_1296

    58/61

    n 2 GVHD: Nguy n Thanh Th o

    duty=duty-(0.05*error);else (duty=duty-(0.02*error));

    }if(luu==s_vong)

    duty=duty;if((duty>=250)&&(luu>s_vong))

    { lcd_gotoxy(1,1);printf(lcd_putc," ");lcd_gotoxy(1,1);printf(lcd_putc," TD_tt=MAX ");}

    if (d==0){set_pwm1_duty(0);

    set_pwm2_duty(0);}else if (d==1){set_pwm1_duty(duty);set_pwm2_duty(0);}

    else{set_pwm1_duty(0);

    set_pwm2_duty(duty);}}//========chuong trinh con nhap toc do=======void ghi_tocdo()

    {if(i>=0&&i

  • 8/3/2019 do_an_pic_1296

    59/61

    n 2 GVHD: Nguy n Thanh Th o

    lcd_gotoxy(1,1);printf(lcd_putc,"0

  • 8/3/2019 do_an_pic_1296

    60/61

    n 2 GVHD: Nguy n Thanh Th o

    lcd_gotoxy(1,2);printf(lcd_putc,"TG_dat=_");

    }//=======chuong trinh con luu toc do vao epprom======

    void read_rom(){

    k=read_eeprom(4);for (j=0;j

  • 8/3/2019 do_an_pic_1296

    61/61

    n 2 GVHD: Nguy n Thanh Th o