dong_co_dc_1207

20
LUN VĂN TT NGHIP ĐỀ TÀI Lp trình PIC16F877A điu khin tc độ động cơ DC

Upload: truong-tuan-vu

Post on 09-Nov-2015

5 views

Category:

Documents


3 download

DESCRIPTION

dong_co_dc_1207

TRANSCRIPT

  • LUN VN TT NGHIP

    TI

    Lp trnh PIC16F877A iu khin tc

    ng c DC

  • n 2 GVHD: Nguyn Thanh Tho

    SVTH:Trn Tng Bng

    V Vn Chnh

    2

    MC LC

    Chng I: KHI QUT TI ............................................................................................3 I/ Tm tt ti: .......................................................................................................................3 Nu l ch 2 th ta phi nhp them thi gian, sau nhn phm ENTER.............................5 CHNG II: ..............................................................................................................................6 GII THIU V CC LINH KIN PHN T S DNG TRONG MCH...................6 I.Vi iu khin PIC16F877A ...................................................................................................6 1. Khi qut v vi iu khin PIC16F877A ............................................................................6 S chn ................................................................................................................................9 S nguyn l...........................................................................................................................9 2. T chc b nh: ..................................................................................................................10 2.1. B nh chng trnh: ......................................................................................................11 2.2. B nh d liu:.................................................................................................................11 2.3. Stack..................................................................................................................................14 3. Khi qut v chc nng ca cc port trong vi iu khin PIC16F877A .......................14 4. Cc vn v Timer ...........................................................................................................16 4.1. Timer0 ..............................................................................................................................16 4.2.TIMER1.............................................................................................................................20 5. NGT (INTERRUPT): ......................................................................................................23 6. Phng php iu ch xung PWM: ..................................................................................28 6.2. Nguyn l ca PWM: .......................................................................................................29 Ud = Umax . (t0/T) hay Ud = Umax.D .........................................................................................30 6.3. Cch thit lp ch PWM cho PIC16F877A..............................................................30 II. Mch cu H ( H-Bridge Circuit ). ....................................................................................32 Hnh 18: Mch cu H ...............................................................................................................32 Kho st hot ng ca mch cu H.........................................................................................32 Hnh19: Nguyn l hot ng ca mch cu H........................................................................33 III/LCD ....................................................................................................................................34 VD: Kiu hin th (1 hng / 2 hng), chiu di d liu (8 bit / 4 bit), .................................36 IV. i tng iu khin: ng c DC ................................................................................41 M hnh th 1 ...........................................................................................................................42 M hnh th 2 ...........................................................................................................................43 CHNG 3:.............................................................................................................................45 I/ THIT K MCH PHN CNG:...................................................................................45 II/ Gii thiu v chng trnh vit code v bin dch: ........................................................49 Return(bin);}...........................................................................................................................50 III/ Lu gii thut: ............................................................................................................51 CODE CHNG TRNH .....................................................................................................55

  • n 2 GVHD: Nguyn Thanh Tho

    SVTH:Trn Tng Bng

    V Vn Chnh

    3

    Chng I: KHI QUT TI

    I/ Tm tt ti:

    1/ Gii thiu s lc cc modul ca mch:

    -Tn ti n 2:Lp trnh PIC16F877A iu khin tc ng c DC

    -Yu cu t ra: Lp trnh C cho Pic 16F877A iu khin tc cho ng c DC c

    gn encoder hi tip tc .Tc c ci t t bn phm v tc tc thi hi tip

    t encoder c hin th trn mn hnh LCD 16x2.

    -Tm tt hng thc hin ti:

    S dng Pic 16F877A l vi iu khin trung tm. Dng chng trnh CCS lp trnh C v bin dch chng trnh.

    Xy dng khi bn phm gm 16 phm nhp tc v iu khin ng c DC:

    10 phm t 0 n 9 ci t tc (vng /phc). 1 phm SET (hay ENTER) lu tc ci t. 1 phm CLEAR xa tc ci t. 1 phm SAVE lu tc vo epprom. 3 phm iu iu khin: quay thun (FORWARD), quay nghich

    (REVERSE), dng (STOP).

    Hin th tc dng mn hnh LCD 16x2, lp trnh ch 4 bit (s dng 4 chn nhn d liu t Pic).

    S dng mch cu H l IC L298N o chiu ng c. S dng 2 knh PWM ca vi iu khin Pic thay i gi tr p trung bnh t

    vo ng c iu khin tc .

    i tng iu khin l ng c DC 12V c gn Encoder. Ngoi ra trn mch cn c 1 phm ngun (POWER) cp in t adapter cho

    mch v 1 phm RESET cho pic 16F877A.

  • n 2 GVHD: Nguyn Thanh Tho

    SVTH:Trn Tng Bng

    V Vn Chnh

    4

    cp ngun cho mch ta dng adapter AC/DC (220V/12V) v khi ngun s dng IC 7805 n p in p 5V cung cp cho Pic.

    2/ S nguyn l mch:

    3/Cch vn hnh mch:

    Bc 1: Bt ngun (nhn nt POWER), ch cho Pic v mn hnh LCD khi ng, mn hnh

    hin th: CHN CH :

    Chng trnh c 2 ch lm vic: ch 1 l bm tc t, c lu tc vo

    epprom; ch 2 l bm tc c nh thi gian thay i chiu quay.

    Bc 2:

    b2

    a7

    b0b1

    a4a5a6

    p0 p1 p2 p3

    p0

    p3

    p1p2

    a7a4 a5 a6b0 b2b1

    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/CCP2 16

    RC2/CCP1 17

    RC3/SCK/SCL 18

    RD0/PSP0 19

    RD1/PSP1 20

    RB7/PGD 40RB6/PGC 39

    RB5 38RB4 37

    RB3/PGM 36RB2 35RB1 34

    RB0/INT 33

    RD7/PSP7 30RD6/PSP6 29RD5/PSP5 28RD4/PSP4 27RD3/PSP3 22RD2/PSP2 21

    RC7/RX/DT 26RC6/TX/CK 25

    RC5/SDO 24RC4/SDI/SDA 23

    RA3/AN3/VREF+5

    RC0/T1OSO/T1CKI 15

    MCLR/Vpp/THV1

    U1

    PIC16F877A

    C1

    30pF

    C2

    30pF

    X1CRYSTAL

    R910k

    R15k

    R25k

    R35k

    R45k

    VCC

    VCC

    C310uF

    R52k2

    CCP1CCP2

    CLK

    1 2 3

    4 5 6

    7 8 9

    0 (10)

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

    CLEAR (11)

    set (12)

    13

    D7

    14D

    613

    D5

    12D

    411

    D3

    10D

    29

    D1

    8D

    07

    E6

    RW5

    RS

    4

    VSS

    1

    VD

    D2

    VEE

    3

    LCD116_X_2_LCD

    RV1

    1K

    VI1 VO 3

    GND

    2

    U27805

    321

    J1

    JACK C4100uF

    C5100nF

    C6100uF

    C7100nF

    D8LED

    R261k

    +12V +5V

    12

    J2

    TERMINAL2

    IN15

    IN27

    ENA6

    OUT1 2

    OUT2 3

    ENB11 OUT3 13

    OUT4 14

    IN310

    IN412

    SENSA1

    SENSB15 GND

    8

    VS

    4

    VCC

    9 U1

    L298

    +12V

    R10.5

    R20.5

    M1

    M2CLK1

    2345

    J3

    SIL-100-05+88.8

    D11

    N40

    07

    D21

    N40

    07D

    31N

    4007

    D41

    N40

    07

    +12V

    M1 M2

    CLK

    RESET

    Hnh 1: S nguyn l mch

  • n 2 GVHD: Nguyn Thanh Tho

    SVTH:Trn Tng Bng

    V Vn Chnh

    5

    Nhp tc t bn phm cc phm t 0 n 9.Nu nhp sai ta nhn phm CLEAR con

    tr trn LCD s xa ht cc s nhp, ta phi nhp li t u.Sau khi nhp xong,

    nhn phm ENTER lu tc t, tc t c tnh theo n v vng/pht.

    Nu l ch 2 th ta phi nhp them thi gian, sau nhn phm ENTER

    Bc 3: iu khin ng c ta nhn phm: quay thun (FORWARD), quay nghch

    (REVERSE), dng (STOP).

    Bc 4: nhp li tc ta nhn phm CLEAR ri tin hnh t tc nh bc 2.

    -Tc tc thi ca ng c s c cp nht mi 0,5s v s c so snh vi tc

    t a ra tnh hiu iu khin, ng thi c mi 0,5s tc s hin th trn mn

    hnh LCD.

    4/ Khuyt im ca mch: -Do khng p dng cc phng php iu khin (v d nh: PID, iu khin m,)

    nn tc ng c cha c n nh.

    -Mch cu H s dng IC L298 ch iu khin c ng c DC c cng sut nh.

    -i vi khi hin th, do tnh cht ca mn hnh LCD nn b hn ch quan st gi tr

    hin th khong cch xa.

    5/ Hng pht trin ti:

    - Ci thin n nh tc ng c bng phng php PID hay iu khin m.

    - Tnh ton thit k mch cng sut c th iu khin c ng c c cng sut

    ln hn.

    - S dng led 7 on tng kh nng quan st ca khi hin th.

    - Kt ni vi my tnh, s dung visual basic lp trnh iu khin tc ng c

    DC.

  • n 2 GVHD: Nguyn Thanh Tho

    SVTH:Trn Tng Bng

    V Vn Chnh

    6

    CHNG II: GII THIU V CC LINH KIN PHN T S DNG TRONG MCH

    I.Vi iu khin PIC16F877A

    1. Khi qut v vi iu khin PIC16F877A

    a/ 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 h.Hng Micrchip tip tc

    pht trin sn phm ny v cho n hng to ra gn 100 loi sn phm khc

    nhau.

    - PIC16F887A l dng PIC kh ph bin, kh y tnh nng phc v cho hu ht

    tt c cc ng dng thc t. y l dng PIC kh d cho ngi mi lm quen vi

    PIC c th hc tp v to nn tn v h vi iu khin PIC ca mnh.

    - PIC 16F877A thuc h vi iu khin 16Fxxx c cc t tnh sau:

    Ngn ng lp trnh n gin vi 35 lnh c di 14 bit. Tt c cc cu lnh thc hin trong 1 chu k lnh ngoi tr 1 s cu lnh r

    nhnh thc hin trong 2 chu k lnh. Chu k lnh bng 4 ln chu k dao ng ca

    thch anh.

    B nh chng trnh Flash 8Kx14 words, vi kh nng ghi xo khong 100 ngn ln.

    B nh Ram 368x8bytes. B nh EFPROM 256x8 bytes. Kh nng ngt (ln ti 14 ngun c ngt trong v ngt ngoi).

  • n 2 GVHD: Nguyn Thanh Tho

    SVTH:Trn Tng Bng

    V Vn Chnh

    7

    Ngn nh Stack c chia lm 8 mc. Truy cp b nh bng a ch trc tip hoc gin tip. Di in th hot ng rng: 2.0V n 5.5V. Ngun s dng 25mA. Cng sut tiu th thp:

  • n 2 GVHD: Nguyn Thanh Tho

    SVTH:Trn Tng Bng

    V Vn Chnh

    8

    Hnh 2: S nguyn l PIC 16F877A

  • n 2 GVHD: Nguyn Thanh Tho

    SVTH:Trn Tng Bng

    V Vn Chnh

    9

    b/S chn v s nguyn l ca PIC16F877A

    S chn

    S nguyn l

    Hnh 3: S chn ca PIC 16F877A

  • n 2 GVHD: Nguyn Thanh Tho

    SVTH:Trn Tng Bng

    V Vn Chnh

    10

    c/Nhn xt:

    T s chn v s nguyn l trn, ta rt ra cc nhn xt ban u nh sau :

    - PIC16F877A c tt c 40 chn

    - 40 chn trn c chia

    thnh 5 PORT, 2 chn cp

    ngun, 2 chn GND, 2

    chn thch anh v mt

    chn dng RESET vi

    iu khin.

    - 5 port ca PIC16F877A

    bao gm :

    + PORT B: 8 chn

    + PORT D: 8 chn

    + PORT C: 8 chn

    + PORT A: 6 chn

    + PORT E: 3 chn

    2. T chc b nh:

    Cu trc b nh ca vi iu khin

    PIC16F877A bao gm b nh

    chng trnh (Program memory) v

    b nh d liu (Data Memory).

  • n 2 GVHD: Nguyn Thanh Tho

    SVTH:Trn Tng Bng

    V Vn Chnh

    11

    2.1. B nh chng trnh:

    B nh chng trnh ca vi iu khin PIC16F877A l b nh flash, dung lng b

    nh 8K word (1 word = 14 bit) v c phn thnh nhiu trang (t page0 n page 3) .

    Nh vy b nh chng trnh c kh nng cha c 8*1024 = 8192 lnh (v mt lnh

    sau khi m ha s c dung lng 1 word (14 bit). m ha c a ch ca 8K word

    b nh chng trnh, b m chng trnh c dung lng 13 bit (PC).

    Khi vi iu khin c reset, b m chng trnh s ch n a ch 0000h (Reset

    vector).Khi c ngt xy ra, b m chng trnh s ch n a ch 0004h (Interrupt

    vector). B nh chng trnh khng bao gm b nh stack v khng c a ch ha

    bi b m chng trnh.

    2.2. B nh d liu:

    - B nh d liu ca PIC16F877A

    c chia thnh 4 bank. Mi

    bank c dng lng 128 byte.

    - Nu nh 2 bank b nh d liu ca 8051 phn chia ring bit : 128 byte u tin

    thuc bank1 l vng Ram ni ch cha d liu, 128 byte cn li thuc bank 2 l

    cng cc thanh ghi c chc nng c bit SFR m ngi dng khng c cha d

    liu khc, cn 4 bank b nh d liu ca PIC16F877A c t chc theo cch

    khc.

    - Mi bank ca b nh d liu PIC16F877A bao gm c cc thanh ghi c chc nng

    c bit SFR nm cc cc nh a ch thp v cc thanh ghi mc ch dng

    chung GPR nm vng a ch cn li ca mi bank thanh ghi. Vng nh cc

    thanh ghi mc ch dng chung ny chnh l ni ngi dng s lu d liu trong

    qu trnh vit chng trnh. Tt c cc bin d liu nn c khai bo cha trong

    vng a ch ny.

    - Trong cu trc b nh d liu ca PIC16F877A, cc thanh ghi SFR no m thng

    xuyn c s dng (nh thanh ghi STATUS) s c t tt c cc bank

    thun tin trong vic truy xut. S d nh vy l v, truy xut mt thanh ghi no

    trong b nh ca 16F877A ta cn phi khai bo ng bank cha thanh ghi ,

    Hnh 5: Cu trc b nh chng trnh PIC 16F877A

  • n 2 GVHD: Nguyn Thanh Tho

    SVTH:Trn Tng Bng

    V Vn Chnh

    12

    vic t cc thanh ghi s dng thng xuyn gip ta thun tin hn rt nhiu trong

    qu trnh truy xut, lm gim lnh chng trnh.

    Da trn s 4 bank b nh d liu PIC16F877A ta rt ra cc nhn xt nh sau :

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

    cha d liu ca ngi dng a ch t 20h n 7Fh. Cc thanh ghi PORTA,

    PORTB, PORTC, PORTD, PORTE u cha bank0, do truy xut d liu cc

    thanh ghi ny ta phi chuyn n bank0. Ngoi ra mt vi cc thanh ghi thng dng

    khc ( s gii thiu sau) cng cha bank0

    - Bank1 gm 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

    cha bank1

    - Tng t ta c th suy ra cc nhn xt cho bank2 v bank3 da trn s trn.

    Cng quan st trn s , ta nhn thy thanh ghi STATUS, FSR c mt trn c 4

    bank. Mt iu quan trng cn nhc li trong vic truy xut d liu ca PIC16F877A

    l : phi khai bo ng bank cha thanh ghi .Nu thanh ghi no m 4 bank u cha

    th khng cn phi chuyn bank.

  • n 2 GVHD: Nguyn Thanh Tho

    SVTH:Trn Tng Bng

    V Vn Chnh

    13

    2.2a/ 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 bn trong vi iu khin. C th phn

    thanh ghi SFR lm hai lai: thanh ghi SFR lin quan n cc chc nng bn trong

    (CPU) v thanh ghi SRF dng thit lp v iu khin cc khi chc nng bn

    ngoi (v d nh ADC, PWM, ).

    - Mt s thanh ghi cc nng c bit:

    Thanh ghi STATUS (03h, 83h, 103h, 183h):thanh ghi cha kt qu thc hin php ton ca khi ALU, trng thi reset v cc bit chn bank cn truy xut

    trong b nh d liu.

    Thanh ghi OPTION_REG (81h, 181h): thanh ghi ny cho php c v ghi, cho php iu khin chc nng pull-up ca cc chn trong PORTB, xc lp cc

    tham s v xung tc ng, cnh tc ng ca ngt ngoi vi v b m Timer0.

    Thanh ghi INTCON (0Bh, 8Bh,10Bh, 18Bh): thanh ghi cho php c v ,cha cc bt iu khin v cc c hiu khi timer0 b trn, ngt ngoi vi

    RB0/INT v ngt interrput-on-change ti cc chn ca PORTB.

    Thanh ghi PIE1 (8Ch): cha cc bit iu khin chi tit cc ngt ca cc khi chc nang ngoai vi.

    Thanh ghi PIR1 (0Ch) cha c ngt ca cc khi chc nng ngoi vi, cc ngt ny c cho php bi cc bit iu khin cha trong thanh ghi PIE1.

    Thanh ghi PIE2 (8Dh): cha cc bit iu khin cc ngt ca cc khi chc nng CCP2, SSP bus, ngt ca b so snh v ngt ghi vo b nh EEPROM.

    Thanh ghi PCON (8Eh): cha cc c hiu cho bit trng thi cc ch reset

  • n 2 GVHD: Nguyn Thanh Tho

    SVTH:Trn Tng Bng

    V Vn Chnh

    14

    ca vi iu khin.

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

    Cc thanh ghi ny c th c truy xut trc tip hoc gin tip thng qua thanh ghi

    FSG (File Select Register).y l cc thanh ghi d liu thng thng, ngi s dng

    c th ty theo mc ch chng trnh m c th dng cc thanh ghi ny cha cc

    bin s, hng s, kt qu hoc cc tham s phc v cho chng trnh.

    2.3. Stack

    - Stack khng nm trong b nh chng trnh hay b nh d liu m l mt vng

    nh c bit khng cho php c hay ghi. Khi lnh CALL c thc hin hay khi mt

    ngt xy ra lm chng trnh b r nhnh, gi tr ca b m chng trnh PC t ng

    c vi iu khin ct vo trong stack. Khi mt trong cc lnh RETURN, RETLW hat

    RETFIE c thc thi, gi tr PC s t ng c ly ra t trong stack, vi iu khin

    s thc hin tip chng trnh theo ng qui trnh nh trc.

    - B nh Stack trong vi iu khin PIC h 16F87xA c kh nng cha c 8 a

    ch v hot ng theo c ch xoay vng. Nghia l gi tr ct vo b nh Stack ln th 9

    s ghi ln gi tr ct vo Stack ln u tin v gi tr ct vo b nh Stack ln th

    10 s ghi ln gi tri6 ct vo Stack ln th 2.

    - Cn ch l khng c c hiu no cho bit trng thi stack, do ta khng bit

    c khi no stack trn. Bn cnh tp lnh ca vi iu khin dng PIC cng khng

    c lnh POP hay PUSH, cc thao tc vi b nh stack s hon ton c iu khin

    bi CPU.

    3. Khi qut v chc nng ca cc port trong vi iu khin PIC16F877A

    a/ PORTA:

    Hnh 7: Cu trc thanh ghi chc nng chung ca PIC 16F877A

  • n 2 GVHD: Nguyn Thanh Tho

    SVTH:Trn Tng Bng

    V Vn Chnh

    15

    -PORTA (RPA) bao gm 6 I/O pin.y l cc chn hai chiu (bidirectional

    pin), ngha l c th xut v nhp c.Chc nng I/O ny c iu khin bi thanh

    ghi TRISA (a ch 85h). Mun xc lp chc nng ca mt chn trong PORTA l

    input, ta set bit iu khin tng ng vi chn trong thanh ghi TRISA v ngc

    li, mun xc lp chc nng ca mt chn trong PORTA l output, ta clear bit iu

    khin tng ng vi chn trong thanh ghi TRISA. Thao tc ny hon ton tng t

    i vi cc PORT v cc thanh ghi iu khin tng ng TRIS (i vi PORTA l

    TRISA, i vi PORTB l TRISB, i vi PORTC l TRISC, i vi PORTD l

    TRISD vi vi PORTE l TRISE).

    -Ngoi ra, PORTA cn c cc chc nng quan trng sau :

    Ng vo Analog ca b ADC : thc hin chc nng chuyn t Analog sang Digital

    Ng vo in th so snh Ng vo xung Clock ca Timer0 trong kin trc phn cng : thc hin

    cc nhim v m xung thng qua Timer0

    Ng vo ca b giao tip MSSP (Master Synchronous Serial Port) - Cc thanh ghi SFR lin quan n PORTA bao gm:

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

    TRISA (a ch 85h) : iu khin xut nhp.

    CMCON (a ch 9Ch) : thanh ghi iu khin b so snh.

    CVRCON (a ch 9Dh) : thanh ghi iu khin b so snh in p.

    ADCON1 (a ch 9Fh) : thanh ghi iu khin b ADC.

    b/PORTB:

    - PORTB (RPB) gm 8 pin I/O. Thanh ghi iu khin xut nhp tng ng l

    TRISB.

    - Bn cnh mt s chn ca PORTB cn c s dng trong qu trnh np

    chng trnh cho vi iu khin vi cc ch np khc nhau. PORTB cn lin

    quan n ngt ngoi vi v b Timer0. PORTB cn c tch hp chc nng in

    tr ko ln c iu khin bi chng trnh.

    - Cc thanh ghi SFR lin quan n PORTB bao gm:

  • n 2 GVHD: Nguyn Thanh Tho

    SVTH:Trn Tng Bng

    V Vn Chnh

    16

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

    TRISB (a ch 86h, 186h) : iu khin xut nhp

    OPTION_REG (a ch 81h, 181h): iu khin ngt ngoi vi v b Timer0.

    c/PORTC:

    PORTC c 8 chn v cng thc hin c 2 chc nng input v output di s iu

    khin ca thanh ghi TRISC tng t nh hai thanh ghi trn.

    Ngoi ra PORTC cn c cc chc nng quan trng sau :

    - Ng vo xung clock cho Timer1 trong kin trc phn cng

    - B PWM thc hin chc nng iu xung lp trnh c tn s, duty cycle: s

    dng trong iu khin tc v v tr ca ng c v.v.

    - Tch hp cc b giao tip ni tip I2C, SPI, SSP, USART

    d/PORTD:

    -PORTD c 8 chn. Thanh ghi TRISD iu khin 2 chc nng input v output ca

    PORTD tng t nh trn.PORTD cng l cng xut d liu ca chun giao tip song

    song PSP (Parallel Slave Port).

    -Cc thanh ghi lin quan n PORTD bao gm:

    Thanh ghi PORTD: cha gi tr cc pin trong PORTD.

    Thanh ghi TRISD: iu khin xut nhp.

    Thanh ghi TRISE: iu khin xut nhp PORTE v chun giao tip PSP.

    e/PORTE:

    -PORTE c 3 chn.Thanh ghi iu khin xut nhp tng ng l TRISE.Cc chn

    ca PORTE c ng vo analog Bn cnh PORTE cn l cc chn iu khin ca

    chun giao tip PSP.

    -Cc thanh ghi lin quan n PORTE bao gm:

    PORTE: cha gi tr cc chn trong PORTE.

    TRISE: iu khin xut nhp v xc lp cc thng s cho chun giao tip PSP.

    ADCON1: thanh ghi iu khin khi ADC.

    4. Cc vn v Timer PIC16F877A c tt c 3 timer : timer0 (8 bit), timer1 (16 bit) v timer2 (8 bit).

    4.1. Timer0

    a/ L b nh thi hoc b m c nhng u im sau:

  • n 2 GVHD: Nguyn Thanh Tho

    SVTH:Trn Tng Bng

    V Vn Chnh

    17

    8 bit cho b nh thi hoc b m. C kh nng c v vit. C th dng ng bn trong hoc bn ngoi. C th chn cnh xung ca xung ng h. C th chn h s chia u vo (lp trnh bng phn mn). Ngt trn.

    b/ Hot ng ca Timer 0:

    Timer 0 c th hot ng nh mt b nh thi hoc mt b m.Vic chn b nh thi hoc b m c th c xc lp bng vic xo hoc t bt TOCS

    ca thanh ghi OPTION_REG.

    Nu dng h s chia xung u vo th xo bit PSA ca thanh ghi OPTION_REG.

    Trong ch b nh thi c la chn bi vic xo bit T0CS (OPTION REG), n s c tng gi tr sau mt chu k lnh nu khng chn h s

    chia xung u vo.V gi tr ca n c vit ti thanh ghi TMR0.

    Khi dng xung clock bn ngoi cho b nh thi Timer0 v khng dng h s chia clock u vo Timer0 th phi p ng cc iu kin cn thit c th

    hot ng l phi bo m xung clock bn ngoi c th ng b vi xung

    clock bn trong (TOSC).

    H s chia dng cho Timer 0 hoc b WDT. Cc h s nay khng c kh nng c v kh nng vit. chn h s chia xung cho b tin nh ca Timer0

    hoc cho b WDT ta tin hnh xo hoc t bt PSA ca thanh ghi

    OPTION_REG

    Nhng bt PS2, PS1, PS0 ca thanh ghi OPTION_REG dng xc lp cc h s chia.

    B tin nh c gi tr 1:2 chng hn, c ngha l : bnh thng khng s dng b tin nh ca Timer0 (ng ngha vi tin nh t l 1:1) th c khi c tc

    ng ca 1 xung clock th timer0 s tng thm mt n v. Nu s dng b tin

    nh 1:4 th phi mt 4 xung clock th timer0 mi tng thm mt n v. V

    hnh chung, gi tr ca timer0 (8 bit) lc ny khng cn l 255 na m l

    255*4=1020.

  • n 2 GVHD: Nguyn Thanh Tho

    SVTH:Trn Tng Bng

    V Vn Chnh

    18

    c/ Ngt ca b Timer0 Ngt ca b Timer 0 c pht sinh ra khi thanh ghi TMR0 b trn tc t

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

    Bt ny phi c xa bng phn mm nu cho php ngt bit T0IE ca

    thanh ghi INTCON c set.Timer0 b dng hot ch SLEEP

    ngt Timer 0 khng nh thc b x l ch SLEEP.

    d/ Cc thanh ghi lin quan n Timer0 bao gm:

    - Thanh ghi OPTION_REG : iu khin hot ng ca Timer0

    bit 5 TOCS la chn ngun clock 1=Clock ngoi t chn T0CKI 0=Clock trong Focs/4

    bit 4 T0SE bit la chon sn xung clock 1=Timer 0 tng khi chn T0CKI t cao xung thp(sn xung) 0=Timer 0 tng khi chn T0CKI t thp ln cao(sn xung)

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

    bit 2:0 PS2:PS1 la chn h s chia h s xung theo bng 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

    Hnh 8: Cu trc thanh ghi OPTION_REG REGISTER iu khin hot ng ca Timer0

  • n 2 GVHD: Nguyn Thanh Tho

    SVTH:Trn Tng Bng

    V Vn Chnh

    19

    101 1:64 1:32 110 1:128 1:64 111 1:256 1:128

    - Thanh ghi TMR0 i ch 01h v 101h : cha gi tr ca b nh thi Timer0

    - Thanh ghi INTCON : cho php ngt hot ng

    Thanh ghi cha cc bit iu khin v cc bt c hiu khi timer0 b trn, ngt ngoi

    vi RB0/INT v ngt interrupt_on_change ti cc chn ca PORTB.

    Bit 7 GIE Global Interrupt Enable bit GIE = 1 cho php tt c cc ngt.

    GIE = 0 khng cho php tt c cc ngt.

    Bit 6 PEIE Pheripheral Interrupt Enable bit PEIE = 1 cho php tt c cc ngt ngoi vi.

    PEIE = 0 khng cho php tt c cc ngt ngoi vi.

    Bit 5 TMR0IE Timer0 Overflow Interrupt Enable bit TMR0IE = 1 cho php ngt Timer0.

    TMR0IE = 0 khng cho php ngt Timer0.

    Bit 4 RBIE RB0/INT External Interrupt Enable bit RBIE = 1 cho php tt c cc ngt ngoi vi RB0/INT

    RBIE = 0 khng cho php tt c cc ngt ngoi vi RB0/INT

    Bit 3 RBIE RB Port change Interrupt Enable bit RBIE = 1 cho php ngt RB Port change

    RBIE = 0 khng cho php ngt RB Port change

    Bit 2 TMR0IF Timer0 Interrupt Flag bit TMR0IF = 1 thanh ghi TMR0 b trn (phi xa c hiu bng chng

    trnh).

    Hnh 9: Cu trc thanh ghi INTCON cho php ngt Timer0 hot ng

  • n 2 GVHD: Nguyn Thanh Tho

    SVTH:Trn Tng Bng

    V Vn Chnh

    20

    TMR0IF = 0 thanh ghi TMR0 cha b trn.

    Bit 1 INTF BR0/INT External Interrupt Flag bit INTF = 1 ngt RB0/INT xy ra (phi xa c hiu bng chng trnh).

    INTF = 0 ngat RB0/INT cha xay ra.

    Bit 0 RBIF RB Port Change Interrupt Flag bit RBIF = 1 t nht c mt chn RB7:RB4 c s thay i trng thi. Bt ny

    phi c xa bng chng trnh sau khi kim tra li cc gi tr chn

    ti PORTB.

    RBIF = 0 khng c s thay i trng thi cc chn RB7:RB4.

    4.2.TIMER1

    a/Timer1 l b nh thi 16 bit, gi tr ca Timer1 s c lu trong hai thanh ghi 8

    bit TMR1H:TMR1L. C ngt ca Timer1 l bit TMR1IF, bit iu khin ca Timer1 l

    TRM1IE.Cp thanh ghi ca TMR1 s tng t 0000h ln n FFFFh ri sau trn v

    0000h. Nu ngt c cho php, n s xy ra khi khi gi tr ca TMR1 trn t FFFFh

    ri v 0000h, lc ny TMR1IF s bt ln.

    b/ 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, bit T1SYNC khng c tc

    dng.

    Ch m ng b: trong ch ny, gi tr ca timer1 s tng khi c xung cnh ln vo chn T1OSI/RC1. Xung clock ngoi s c ng b vi xung

    clock ni, hot ng ng b c thc hin ngay sau b tin nh t l xung

    (prescaler).

    Ch m bt ng b:ch ny xy ra khi bit T1SYNC c set. B nh thi s tip tc m trong sut qu trnh ng (Sleep) ca vi iu khin v c kh

    nng to mt ngt khi b nh thi trn v lm cho vi iu khin thot khi

    trng thi ng.

    c/ Cc thanh ghi lin quan n Timer1 bao gm:

    INTCON (a ch 0Bh, 8Bh, 10Bh, 18Bh): cho php ngt hot ng (2 bit GIE v PEIE).

    PIR1 (a ch 0Ch): cha c ngt Timer1 (TMR1IF).