thiet ke he thong giao tiep i2c giua hai vi dieu khien pic (1)

Upload: escape-exist

Post on 13-Apr-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    1/68

    B GIO DC V O TAOTRNG.

    n

    Thit k h thng giao tip I2C giahai vi iu khin PIC

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    2/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 1Lp: T1001

    LI M U

    Ngy nay, cng vi s pht trin khng ngng ca cuc cch mng khoa

    hc v k thut,ngnh k thut in t ang dn khng nh vai tr ngy cng

    ln ca mnh a con ngi bc sang k nguyn mi:k nguyn s. Trong s

    takhng th khng ni n k thut vi iu khin. K thut vi iu khin

    ang c ng dng rng ri v thm nhp vo nhiu lnh vc k thut v i sng

    x hi.Hu ht cc thit b k thut t n gin cho n phc tp nh thit b

    iu khin t ng, thit b vn phng, cc thit b trong gia nh u dng cc

    b vi iu khin.Cng vi n con ngi cng ngy cng hon thin cc chun

    giao tip kt ni cc thit b in t vi nhau thc hin vic trao i thng

    tin, iu khin cc c cu chp hnh mt cch thun li hn.

    Vi nhng kin thc c hc v nhng kin thc cp nhp,

    nghin cu cng vi s hng dn ca thy gio hng dn.Em chn ti:

    Thit k h thng giao tip I2C gia hai vi iu khin PIC.

    n ca em gm 2 phn:

    Chngmt :Tng quan v pic v giao tip I2C.

    Chnghai :Thit k h thng giao tip I2C gia 2 pic16F877A

    Trong qu trnh lm n tt nghip,do hn ch v thi gian,ti liu nn

    khng trnh khi nhng thiu st. Em rt mong c s gp ca thy c trong

    hi ng v cc bn n tt nghip ca em c hon thin hn.

    Em xin gi li cm n chn thnh nnh trng cng thy c trong khoa

    in t, c bit l thy on Hu Chc gip em hon thnh n ny.

    Hi Phng, ngy 30 thng 10 nm 2010

    Sinh vin

    Bi Vn Nguyn

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    3/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 2Lp: T1001

    CHNG 1. TNG QUAN

    1. S lc v vi x l v vi iu khin.

    Trong nhng thp nin cui th k XX, t s ra i ca cng ngh bndn, k thut in t c s pht trin vt bc. Cc thit b in t sau

    c tch hp vi mt cao v rt cao trong cc din tch nh, nh vy cc

    thit b in t nh hn v nhiu chc nng hn. Cc thit b in t ngy cng

    nhiu chc nng trong khi gi thnh ngy cng r hn, chnh v vy in t c

    mt khp mi ni.

    Bc t ph mi trong cng ngh int, cng ty Intel cho ra i b vix l u tin, tc l phn cng ch ng vai tr th yu, phn mm (chng

    trnh) ng vai tr ch o i vi cc chc nng cn thc hin. Nh vy vi x

    l c s mm do ha trong cc chc nng ca mnh. Ngy nay vi x l c tc

    tnh ton rt cao v kh nng x l rt ln.

    Vi x l c cc khi chc nng cn thit ly d liu, x l d liu v

    xut d liu ra ngoi sau khi x l. V chc nng chnh ca Vi x l chnh lx l d liu, chng hn nh cng, tr, nhn, chia, so snh.v.v....Vi x l khng

    c kh nng giao tip trc tip vi cc thit b ngoi vi, n ch c kh nng nhn

    v x l d liu m thi.

    vi x l hot ng cn c chng trnh km theo, cc chng trnh

    ny iu khin cc mch logic v t vi x l x l cc d liu cn thit theo

    yu cu.Chng trnh l tp hp cc lnh x l d liu thc hin tng lnhc lu tr trong b nh, cng vic thc hnh lnh bao gm: nhn lnh t b

    nh, gii m lnh v thc hin lnh sau khi gii m.

    thc hin cc cng vic vi cc thit b cui cng, chng hn iu

    khin ng c, hin th k t trn mn hnh .... i hi phi kt hp vi x l vi

    cc mch in giao tip vi bn ngoi c gi l cc thit b I/O (nhp/xut)

    hay cn gi l cc thitb ngoi vi. Bn thn cc vi x l khi ng mt mnh

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    4/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 3Lp: T1001

    khng c nhiu hiu qu s dng, nhng khi l mt phn ca mt my tnh, th

    hiu qu ng dng ca Vi x l l rt ln. Vi x l kt hp vi cc thit b khc

    c s trong cc h thng ln, phc tp i hi phi x l mt lng ln cc

    php tnh phc tp,c tc nhanh.Chng hn nh cc h thng sn xut tng trong cng nghip, cc tng i in thoi, hoc cc robot c kh nng

    hot ng phc tp v.v..

    B Vi x l c kh nng vt bc so vi cc h thng khc v kh nng

    tnh ton, x l, v thay i chng trnh linh hot theo mc ch ngi dng,

    c bit hiu qu i vi cc bi ton v h thng ln.Tuy nhin i vi cc

    ng dng nh, tm tnh ton khng i hi kh nng tnh ton ln th vic ngdng vi x l cn cn nhc. Bi v h thng d ln hay nh, nu dng vi x l

    th cng i hi cc khi mch in giao tip phc tp nh nhau. Cc khi ny

    bao gm b nh cha d liu v chng trnh thc hin, cc mch in giao

    tip ngoi vi xut nhp v iu khin tr li, cc khi ny cng lin kt vi vi

    x l th mi thc hin c cng vic. kt ni cc khi ny i hi ngi

    thit k phi hiu bit tinh tng v cc thnh phn vi x l, b nh, cc thit bngoi vi. H thng c tora kh phc tp,chim nhiu khng gian,mch in

    phc tp v vn chnh l trnh ngi thit k.Kt qu l gi thnh sn

    phm cui cng rt cao, khng ph hp p dng cho cc h thng nh.

    V mt s nhc im trn nn cc nh ch to tch hp mt t b nh v

    mt s mch giao tip ngoi vi cng vi vi x l vo mt IC duy nht c gi

    l Microcontroller-Vi iu khin. Vi iu khin c kh nng tng t nh khnng ca vi x l,nhng cu trc phn cng dnh chongi dng n gin hn

    nhiu.Vi iu khin ra i mang li s tin li i vi ngi dng,h khng cn

    nm vng mt khi lng kin thc qu ln nh ngi dng vi x l,kt cu

    mch in dnh cho ngi dng cng tr nn n gin hn nhiu v c kh

    nng giao tip trc tip vi cc thit b bn ngoi.Vi iu khin tuy c xy

    dng vi phn cng dnh cho ngi s dng n gin hn,nhng thay vo li

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    5/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 4Lp: T1001

    im ny l kh nng x l b gii hn(tc x l chm hn v kh nng tnh

    ton t hn,dung lng chng trnh b gii hn).Thay vo ,vi iu khin c

    gi thnh r hn nhiu so vi vi x l,vic s dng n gin,do n c ng

    dng rng ri vo nhiu ng dng c chc nng n gin, khng i hi tnhton phc tp.

    Vi iu khin c ng dng trong cc dy chuyn t ng loi nh, c c

    robot c chc nng n gin, trong my git, t v.v...

    Nm 1976 Intel gii thiu b vi iu khin (microcontroller) 8748, mt

    chip tng t nh cc b vi x l v l chip u tin trong h MCS-48. phc

    tp, kch thc v kh nng ca Vi iu khin tng thm mt bc quan trng vonm 1980 khi intel cho ra chip 8051,b Vi iu khin u tin ca h MCS-51

    v l chun cng ngh cho nhiu h vi iu khin c sn xut sau ny.Sau

    rt nhiu h vi iu khin ca nhiu nh ch to khc nhau ln lt c a ra

    th trng vi tnh nng c ci tin ngy cng mnh.

    Cc vi iu khin thng dng:

    + H vi iu khin AMCC: do tp on Applied Micro Circuits

    Corporation sn xut. Thng 5/2004, h vi iu khin ny c pht trin v

    a ra th trng bi IBM, bao gm:

    403 PowerPC CPU

    PPC 403GCX

    405 PowerPC CPUPPC 405EP

    PPC 405GP/CR

    PPC 405GPr

    PPC NPe405H/L

    440 PowerPC Book-E CPU

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    6/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 5Lp: T1001

    PPC 440GP

    PPC 440GX

    PPC 440EP/EPx/GRx

    PPC 440SP/SPe

    + H vi iu khin Atmel:

    Dng Atmel AT91 (Kin trc ARM THUMB)

    Dng AT90, Tiny & MegaAVR (Atmel Norway design)

    Dng Atmel AT89 (Kin trc Intel 8051/MCS51)

    Dng MARC4

    + H vi iu khin Freescale Semiconductor:

    Nm 2004, nhng vi iu khin ny c pht trin v tung ra th

    trng bi Motorola.

    Dng 8-bit

    68HC05 (CPU05)68HC08 (CPU08)

    68HC11 (CPU11)

    Dng 16-bit

    68HC12 (CPU12)

    68HC16 (CPU16)Freescale DSP56800 (DSPcontroller)

    Dng 32-bit

    Freescale 683XX (CPU32)

    MPC500

    MPC 860 (PowerQUICC)

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    7/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 6Lp: T1001

    MPC 8240/8250 (PowerQUICC II)

    MPC 8540/8555/8560 (PowerQUICC III)

    + H vi iu khin Intel

    Dng 8-bit

    8XC42

    MCS48

    MCS51

    8061

    8xC251

    Dng 16-bit

    80186/88

    MCS96

    MXS296

    Dng 32-bit

    386EX

    i960

    + H vi iu khin Microchip

    12-bit instruction PIC

    14-bit instruction PIC

    PIC16F84

    16-bit instruction PIC

    Trong h vi iu khin Microchip c ng dng ph bin nht, c

    bit l PIC16F877A c tch hp thm nhng thnh phn mi nh b chuyn

    i A/D 10 bits, v lp trnh phn mm iu khin cng n gin hn.

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    8/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 7Lp: T1001

    2.Tng quan v vi iu khin PIC

    2.1.PI C lg?

    PIC l vit tt ca thut ng Programable Interlligent Compurter,c

    th tm dch l my tnh thng minh kh trnh do hng Gnenral Intrusment t

    tn cho vi iu khin u tin u tin ca h PIC 1650 c thit k dng lm

    cc thit b ngoi vi cho vi iu khin CP1600.Vi iu khin ny sau c

    nghin cu pht trin thm v t hnh thnh nn dng vi iu khin PIC nh

    ngy nay.

    2.2c im ca PIC so vi cc loi vi iu khin khc

    Hin nay trn th trng c rt nhiu loi vi iu khin khc nhau nh:

    8051. Motorola 68HC, AVR, ARMTuy vy PIC vn c s dng ngy cng

    c ph bin bi:

    - D dng mua c th trng Vit Nam.

    - Gi thnh khng qu t.

    - C y tnh nng ca 1 vi iu khin khi hot ng c lp.- L s b xung ttv kin thc cng nh v ng dng cho h vi iu

    khin mang tnh truyn thng nh 8051.

    - C s h tr ca nh sn xut v trnh bin dch, cc cng c lp

    trnh,mch np t n gin n mc cao.

    - Cc tnh nng a dng ca vi iu khin PIC,ngy cngc m rng,

    pht trin.

    2.3 Kin trc ca PIC

    Kin trc phn cng ca vi iu khin c thit k theo 2 dng kin

    trc:kin trc Von Neuman v kin trc Havard

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    9/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 8Lp: T1001

    Hnh 1.1. Kin trc Harvard v kin trc Von-Neumann.

    T chc phn cng ca PIC c t chc theo kiu kin trc Harvard.

    im khc bit gia kin trc Harvard v Von-Neumann l cu trc b nh d

    liu v b nh chng trnh.

    i vikin trc Von-Neumann,b nh d liu v b nh chng trnh

    nm chung trong cng mt b nh.Do ta c tht chc, cn i mt cch

    linh hot b nh chng trnh v b nh d liu.Tuy nhin iu ny ch c

    ngha khi tc x l ca CPU l rt cao,v vi cu trc trong cng mt thi

    im CPU ch c th tng tc vi b nh d liu hoc b nh chng trnh.

    Nh vy c th ni cu trc Von-Neumann khng ph hp vi cu trc ca vi

    iu khin.

    i vi cu trc Harvard,b nh chng trnh v b nh d liu tch

    thnh hai b nh ring bit.Do cng mt thi im CPU c th tng tc vi

    c hai b nh,nh vy tc x l c ci thin ng k.

    Mt im cn ch na l tp lnh trong kin trc Harvard c th c

    ti u ty theo yu cu kin trc ca vi iu khin m khng ph thuc vo cu

    trc d liu.V d vi vi iu khin dng16F di lun l 14 bt( trong khi d

    liu c t chc thnh tng byte). c im ny cminh hatrong hnh 1.1.

    2.4. RISC v CISC

    Nh trn,kin trc Harvard l khi nim mi hn so vi kin trc Von-

    Neumann.Khi nim ny c ci thin nhmci tin tc thc thi ca vi iu

    khin.Qua vic tch ri b nh chng trnh v b nh d liu,bus chng trnh

    Datamemory CPU

    Program

    mem

    ory

    CPU

    Programand

    datamemory

    8 148

    Von_NeumannHarvard

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    10/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 9Lp: T1001

    v bus d liu.CPU c th cng mt lc truy xut c b nh chng trnh v b

    nhd liu,gip tng tc x l d liu nn gp i.ng thi cu trc lnh

    khng cn ph thuc vo cu trc d liu na m c th linh ng iu chnh ty

    theo kh nng v tc ca tng vi iu khin.V tip tc ci tin tc thcthi lnh,tp lnh ca h vi iu khin PIC c thit k sao cho chiu di m lnh

    lun c nh (v d vi h 16Fxxxx chiu di m lnh lun l 14 bit),v cho php

    thc thi trong mt chu k xung clock (ngoitr mt s trng hp c bit nh

    lnh nhy,lnh gi chng trnh con-cn hai xung ng h).iu ny c ngha l

    tp lnh ca vi iu khin thuc cu trc Harvard s t lnh hn,ngn hn,n

    gin hn p ng yu cu m ho lnh bng mt s lng bit nht nh.

    Vi iu khin c t chc theo kin trc Harvard cn c gi l vi iu

    khin RISC (Reducer Instruction Set Computer) hay l vi iu khin c tp lnh

    rt gn.Vi iu khin c thit k theo kiu kin trc Von-Neuman cn c

    gi l vi iu khin CISC (Complex Instruction Set Computer) hay vi iu khin

    c tp lnh phc tp v lnh ca n khng phi l mt s cnh m lun l bi

    s ca 8bit (1 byte).2.5. PIPELINING (x l song song)

    y chnh l c ch x l lnh ca cc vi iu khin PIC.Mt chu k lnh

    ca vi iu khin s bao gm 4 xung clock.V d ta s dng oscillator c tn s

    4 MHZ th xung lnh c tns l 1 MHZ (chu ki lnh l 1 ns).Gi s ta c 1

    on chng trnh nh sau:

    1.MOVLW 55h2.MOVWF PORT B

    3.CALL SUB_1

    4.BSF PORT A,BIT 3

    5. instruction @ address SUB_1

    y ta ch bn n quy trnh vi iu khin x l on chng trnh trn

    thng qua tng chu k lnh.qu trnh s c thcthi nh sau:

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    11/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 10Lp: T1001

    Hnh 1.2. C ch PIPELINING

    TCY0: c lnh 1.

    TCY1: thcthi lnh 1,c lnh 2.

    TCY2: thc thi lnh 2,c lnh 3.

    TCY3: thc thi lnh 3,c lnh 4.

    TCY4: v lnh 4 khng phi l lnh s c thc thi theo quy trnh thc

    thi ca chng trnh (lnh tip theo c thc thi phi l lnh u tin ti labelSUB_1) nn chu trnh thc thi ca lnh ny ch c dng c lnh u tin

    ti label SUB_1.Nh vy c th xem lnh 3 cn 2 chu k xung clock thc thi.

    TCY5: thc thi lnh u tin ca SUB_1 v c lnh tip theo ca

    SUB_1.Qu trnh ny c thc hin tng t cho cc lnh tip theo ca

    chng trnh.

    Thng thng thc thi mt lnh,ta cn mt chu k lnh gi lnh ,

    v mt chu k xung clock na gii m v thc thi lnh. Vi c ch pipelining

    c trnhby trn,mi lnh xem nh ch c thc thi trong mt chu k lnh.

    i vi cc lnh m qu trnh thc thi lm thay i gi tr thanh PC (Program

    Counter) cn hai chu k lnh thc thi v phi thc hin vic gi lnh a ch

    thanh PC ch ti.Sau khi xc nh ng v tr lnh trong thanh ghi PC,mi

    lnh ch cn mt chu k lnh thc thi xong.

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    12/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 11Lp: T1001

    2.6. Cc dng PIC v cch la chn vi iu khin PIC

    Cc k hiu cavi iu khin PIC:

    PIC12xxxx : di lnh 12 bt.

    PIC16xxxx: di lnh 14 bit.

    PIC18xxxx: di lnh 16 bit.

    C : PIC c b nh EPROM.

    F : PIC c b nh plash.

    LF : PIC c b nh plash hot ng in p thp.

    LV : tng t nh LF, y l k hiu c.

    Bn cnh c mt s vi iu khin c k hiu l xxFxxx l EEPROM,

    nu c thm ch A cui l plash (v d 16F877 l EEEROM, 16F877A l

    plash).

    Ngoi ra cn c thm mt dng vi iu khin PIC mi l dsPIC.

    Vit Nam ph bin nht l cc h vi iu khinPIC do hng Microchipsn xut.

    Cch la chn mt vi iu khin PIC cho ph hp:

    - Trc ht cn bit s chn ca vi iu khin cn thit cho ng dng.

    C nhiu vi iu khin PIC c s lng chn khc nhau,c vi iu khin ch c

    8 chn, c loi 28,40, 44 chn.

    - Cn chn vi iu khin PIC c b nhplash c th np xo chng

    trnh c nhiu ln hn.

    - Tip n cn ch n cc khi chc nng c tch hp sn trong vi

    iu khin,cc chun giao tip bn trong.

    - B nh chng trnh m vi iu khin cho php.

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    13/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 12Lp: T1001

    2.7. Ngn ng lp trnh cho PIC

    Ngn ng lp trnh cho PIC rt a dng.Ngn ng lp trnh cp thp c

    MPLAB (c cung cp min ph bi nh sn xut Microchip),cc ngn ng

    lp trnh cp cao hn bao gm C,Basic, Pascal,Ngoi ra cn mt s ngn nglp trnh dnh ring cho PIC nh PICBasix, MikroBasix

    2.8. Mch np PIC

    y cng l mt dng sn phm rt a dng dnh cho vi iu khin PIC.

    C th s dng cc mch np c cung cp bi nh sn xut l hng Microchip

    nh PICSTARTplus, MPLAB ICD 2, MPLAB PM 3, PRO MATE II.C th s

    dng cc sn phm ny np cho vi iu khin khc thng qua chng trnh

    MPLAB. Dng sn phm chnh thng ny c u th l np c cho tt c cc

    vi iu khin PIC.Tuy nhin gi thnh rt cao v gp rt nhiu kh khn trong

    qu trnh mua snphm.

    Ngoi ra do tnh nng cho php nhiu ch np khc nhau,cn c rt

    nhiu mch np c thit k dnh cho vi iu khin PIC. C th s lc mt s

    mch np PIC nh sau:

    - JDM Programmer: mch np ny dnh cho chng trnh Icprog cho

    php np cc vi iu khin PIC c h tr tnh nng np chng trnh in p

    thp ICSP (In Circuit Serial Programming ). Hu ht cc mch np u h tr

    tnh nng np chng trinh ny.

    - WARP-13A v MCP USB: hai mch np ny ging nh mch np

    PICSTART PLUS do nh sn xut Microchip cung cp, tng thch vi trnh

    bin dch MPLAB,ngha l ta c th trc tipdng chng trnh MPLAB

    np cho vi iu khin PIC m khng cn s dng mt chng trnh np khc,

    chng hn nh Icprog.

    - Mch np Universal ca Williem, y khng phi mch np chuyn

    dng dnh cho PIC nh P16PR040.

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    14/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 13Lp: T1001

    Cc mch np k trn u c u im rt ln l n gin, r tin,hon ton

    c th t lp rp mt cch d dng,mi thng tin v s mch np,thit k thi

    cng, kim tra v chng trnh np d dng tm c. Tuy nhin cc mch np

    trn vn cn mt s nhc im l hn ch v s vi iu khin c h tr, bncnh mi mch np cn c s dng vi mt chng trnh np thch hp.

    Sau khi trnh by tng quan v vi iu khin PIC.Em xin trnh by v

    mt loi vi iu khin PIC c s dng rt rng ri hin nay l 16F877A.

    3. Tng quan v PIC 16F877A

    3.1. S khi v bng m t chc nng cc chn ca PIC16F877A

    Hnh 1.3a. PIC 16F877A

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    15/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 14Lp: T1001

    Hnh 1.3.b. S khi ca PIC16F877A

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    16/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 15Lp: T1001

    Bng m t chc nng cc chn ca PIC16F877A

    Pin NameDIP

    Pin#

    PLCC

    Pin#

    QFT

    Pin#

    I/O/P

    TypeBuffer Type Description

    OSC1/CLKIN 13 14 30 1 ST/CMOS(4)

    u vo ca xung dao

    ng thch anh/ng voxung clock ngoi

    OSC2/CLKOUT 1 2 18 O -

    u ra ca xung daong thch anh. Ni vi

    thch anh hay cnghng trong ch dao

    ng ca thchanh.Trong ch RC,ng ra ca chn OSC2.

    MCLR /Vpp 1 2 18 I/P ST

    Ng vo ca Master

    Clear(Reset) hoc ngvo in th c lptrnh. Chn ny cho

    php tn hiu Reset thitb tc ng mc thp.

    RA0/AN0 2 3 19 I/O TTL

    PORTA l port vo rahai chiu. RA0 c thlm ng vo tung t

    th 0.

    RA1/AN1 3 4 20 I/O TTL

    RA1 c th lm ng vo

    tung t th 1

    RA2/AN2/VREF

    4 521

    I/O TTLRA2 c th lm ng votung t 2 hoc in p

    chun tng t m.

    RA3/AN3/VREF+ 5 6 22 I/O TTL

    RA3 c th lm ng votung t 3 hoc in pchun tng t dng.

    RA4/T0CKI 6 7 23 I/O ST

    RA4 c th lm ng vo

    xung clock cho b nhthi Timer0.

    RA5/ SS /AN4 7 8 24 I/O TTLRA5 c th lm ng vo

    tng t th 4

    RB0/INTRB1RB2

    333435

    363738

    89

    10

    I/OI/OI/O

    TTL/ST(1)TTLTTL

    PORTB l port haichiu.

    RB0 c th lm chnngt ngo

    RB3/PGM 36 39 11 I/O TTL

    RB3 c th lm ng vo

    ca in th c lptrnh mc thp.

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    17/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 16Lp: T1001

    RB4

    RB5RB6/PGC

    RB7/PGD

    37

    3839

    40

    41

    4243

    44

    14

    1516

    17

    I/O

    I/OI/O

    I/O

    TTL

    TTLTTL/ST(2)

    TTL/ST(3)

    Interrupt-on-change pin.Interrupt-on-change pin.Interrupt-on-change pin

    hocIn-Crcuit Debugger pin

    .Serial programmingclock.

    Interrupt-on-change pinhoc

    In-Crcuit Debugger pin.

    Serial programmingdata .

    RC0/T1OSO/T1CKI 15 16 32 I/O ST

    PORTC l port vo ra

    hai chiu.RC0 c th l ng voca b dao ng Timer1

    hoc ng xung clockcho Timer1

    RC1/T1OSI/CCP2 16 18 35 I/O ST

    RC1 c th l ng voca b dao ng Timer1

    hoc ng voCapture2/ng ra

    compare2/ng vo

    PWM2.

    RC2/CCP1 17 19 36 I/O ST

    RC2 c th ng vocapture1/ng ra

    compare1/ng voPWM1

    RC3/SCK/SCL 18 20 37 I/O STRC3 c th l ng vo

    xung

    RC4/SDI/SDA 23 25 42 I/O ST

    Clock ng b nitip/ng ra trong c hai

    ch SPI v I2CRC4 c th l d liubn trong SPI(ch

    SPI) hoc d liuI/O(ch I 2 C).

    RC5/SDO 24 26 43 I/O STRC5 c th l d liungoi SPI(ch SPI)

    RC6/TX/CK 25 27 44 I/O STRC6 c th l chn

    truyn khng ng bUSART hoc ng b

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    18/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 17Lp: T1001

    vi xung ng h

    RC7/RX/DT 26 29 1 I/O ST

    RC7 c th l chn nhnkhng ng b USART

    hoc ng b vi dliu.

    RD0/PSP0RD1/PSP1RD2/PSP2RD3/PSP3RD4/PSP4RD5/PSP5RD6/PSP6RD7/PSP7

    1920212227282930

    2122232430313233

    383940412345

    I/OI/OI/OI/OI/OI/OI/OI/O

    ST/TTL(3)ST/TTL(3)ST/TTL(3)ST/TTL(3)ST/TTL(3)ST/TTL(3)ST/TTL(3)ST/TTL(3)

    PORTD l port vo rahai chiu hoc l

    parallel slave port khigiao tip vi bus ca b

    vi x l.

    RE0/RD /AN5 8 9 25 I/O ST/TTL(3)

    PORTE l port vo rahai chiu.

    RE0 c th iu khinvic c parrallel slaveport hoc l ngoc vo

    tng t th 5.

    RE1/WR /AN6 9 10 26 I/O ST/TTL(3)

    RE1 c th iu khinvic ghi parallel slaveport hoc l ng vo

    tng t th 6.

    RE2/CS /AN7 10 11 27 I/O ST/TTL(3)

    RE2 c th iu khinvic chn parallel slave

    port hoc l ng votng t th 7

    VssVDD

    12,3111,32

    13, 3412, 35

    7, 286, 29

    PP

    Cung cp ngun dngcho cc mc logicv

    nhng chn I/O.

    NC1,17,28, 40

    12,1333, 4

    Nhng chn ny khngc ni bn trong v

    n c trng

    Ghi ch: I = input; O = output; I/O = input/output; P = power- = Not used; TTL = TTL input; ST = Schmitt Trigger input

    1. L vng m c ng vo Trigger Schmitt khi c cu hnh nh ngt ngoi.

    2. L vng m c ng vo Trigger Schmitt khi c s dng trong ch

    9 Serial Programming.

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    19/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 18Lp: T1001

    3. L vng m c ng vo Trigger Schmitt khi c cu hnh nh ng

    vo ra mc ch chung v l ng vo TTL khi s dng trong ch Parallel

    Slave Port (cho vic giao tip vi cc bus ca b vi x l).

    4. L vng m c ng vo Trigger Schmitt khi c cu hnh trong ch dao ng RC v mt ng vo CMOS khc.

    3.2. T chc b nh

    C 2 khi b nh trong cc vi iu khin h PIC16F87X, b nh chng

    trnh v b nh d liu, vi nhng bus ring bit c th truy cp ng thi.

    Hnh 1.4.Ngn xp v bn b nh chng trnh PIC16F877A

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    20/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 19Lp: T1001

    3.2.1. T chc ca bnh chng trnh

    Cc vi iu khin h PIC16F877A c b m chng trnh 13 bit c kh

    nng nh v khng gian b nh chng trnh ln n 8Kb.Cc IC PIC16F877A

    c 8Kb b nh chng trnh FLASH, cc IC PIC16F873/874 ch c 4 Kb.Vect

    RESET t ti a ch 0000h v vect ngt ti a ch 0004h.

    3.2.2. T chc b nh d liu

    B nh d liu c chia thnh nhiu dy v cha cc thanh ghi mc ch

    chung v cc thanh ghi chc nng c bit. BIT RP1 (STATUS ) v RP0

    (STATUS ) l nhng bit dng chn cc dy thanh ghi.

    RP1:RP0 Bank

    00 0

    01 1

    10 2

    11 3

    Chiu di ca mi dy l 7Fh (128 byte). Phn thp ca mi dy dng

    cha cc thanh ghi chc nng c bit.Trn cc thanh ghi chc nng c bit l

    cc thanh ghi mc ch chung, c chc nng nh RAM tnh. Thng th nhng

    thanh ghi c bit c s dng t mt dy v c th c nh x vo nhng dy

    khc gim bt on m v kh nng truy cp nhanh hn.

    3.2.3. Cc thanh ghi mc ch chung

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

    ghi FSG (File Select Register).

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    21/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 20Lp: T1001

    Hnh 1.5. Cc thanh ghi ca PIC16F877A

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    22/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 21Lp: T1001

    3.2.4. Cc thanh ghi chc nng c bit

    Cc thanh ghi chc nng c bit (Special Function Resgister) c s

    dng bi CPU v cc b nh ngoi vi iu khin cc hot ng c yu cu

    ca thit b. Nhng thanh ghi ny c chc nng nh RAM tnh. Danh sch nhng

    thanh ghi nay c trnh by bng di. Cc thanh ghi chc nng c bit c

    th chia thnh hai loi: phn trung tm (CPU) v phn ngoi vi.

    3.2.5. Cc thanh ghi trng thi

    Hnh 1.6.Thanh ghi trng thi (a ch 03h, 83h, 103h, 183h)

    Thanh ghi trng thi cha cc trng thi s hc ca b ALU, trng thi

    RESET v nhng bits chn dy thanh ghi cho b nh d liu. Thanh ghi trng

    thi c th l ch cho bt k lnh no, ging nh nhng thanh ghi khc. Nu

    thanh ghi trang thi l ch cho mt lnh m nh hng n cc c Z, DC hoc

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    23/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 22Lp: T1001

    C, v sau nhng bit ny s c v hiu ho. Nhng bit ny c th t hoc

    xo tu theo trng thi logic ca thit b. Hn na hai bit TO v PD th khng

    cho php ghi, v vy kt qu ca mt tp lnh m thanh ghi trng thi l ch c

    th khc hn d nh. V d, CLRF STATUS s so 3 bit cao nht v t bit Z.Lc ny cc bit ca thanh ghi trng thi l 000u u1uu (u = unchanged). Ch c

    cc lnh BCF, BSF, SWAPF v MOVWF c s dng thay i thanh ghi

    trng thi, bi v nhng lnh ny khng lm nh hng n cc bit Z, DC hoc C

    t thanh ghi trng thi. i vi nhng lnh khc th khng nh hng n nhng

    bit trng thi ny.

    3.3. Cc cng ca PIC 16F877A

    3.3.1. PORTA v thanh ghi TRISA

    Hnh 1.7.a.S khi ca chn RA3:RA0 v RA5

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    24/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 23Lp: T1001

    Hnh 1.7.b. S khi ca chn RA4/T0CKI

    3.3.2 PORTB v thanh ghi TRISB

    PORTB c rng 8 bit, l port vo ra hai chiu. Ba chn ca PORTB

    c a hp vi chc nng lp trnh mc in th thp (Low Voltage

    Programming ): RB3/PGM, RB6/PGC v RB7/PGD. Mi chn ca PORTB c

    mt in tr ko bn trong. Mt bit iu khin c th m tt c nhng in tr

    ko ny ln. iu ny c thc hin bng cch xo bit

    RBPU(OPTION_REG). Nhng in tr ny b cm khi c mt Power-on

    Reset. Bn chn ca PORTB: RB7 n RB4 c mt ngt thay i c tnh

    .Ch nhng chn c cu hnh nh ng vo mi cth gy ra ngt ny. Nhng

    chn vo (RB7:RB4) c so snh vi gi tr c cht trc trong ln c

    cui cng ca PORTB. Cc kt qu khng ph hp ng ra trn chn RB7:RB4

    c OR vi nhau pht ra mt ngt Port thay i RB vi c ngt l RBIF

    (INTCON). Ngt ny c th nh thc thit b t trng thi ngh (SLEEP).

    Trong th tc phc v ngt ngi s dng c th xo ngt theo cch sau:

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    25/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 24Lp: T1001

    a) c hoc ghi bt k ln PORTB. iu ny s kt thc iu kin khng ho hp.

    b) Xo bit c RBIF.

    Hnh 1.8.a.S khi cc chn RB3:RB0

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    26/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 25Lp: T1001

    Hnh 1.8.b.S khi cc chn RB7:RB4

    3.3.3 PORT C v thanh ghi TRIS C

    PORTC c rng l 8 bit, l port hai chiu. Thanh ghi d liu trc tip

    tng ng l TRISC. Cho tt c cc bit ca TRISC l 1 th cc chn tng ng

    PORTC l ng vo. Cho tt c cc bit ca TRISC l 0 th cc chn tng ng

    PORTC l ng ra. PORTC c a hp vi vi chc nng ngoi vi, nhng chn

    ca PORTC c m Trigger Schmitt ng vo. Khi b I2C c cho php, chn

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    27/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 26Lp: T1001

    3 v 4 ca PORTC c th cu hnh vi mc I2C bnh thng, hoc vi mc

    SMBus bng cch s dng bit CKE (SSPSTAT). Khi nhng chc nng ngoi

    vi c cho php, chng ta cn phi quan tm n vic nh ngha cc bit ca

    TRIS cho mi chn ca PORTC.Mt vi thit b ngoi vi ghi ln bit TRIS thto nn mt chn ng ra, trong khi nhng thit b ngoi vi khc ghi ln bit

    TRIS th s to nn mt chn ng vo. Khi nhng bit TRIS ghi b tc ng

    trong khi thit b ngoi vi c cho php, nhng lnh c thay th ghi (BSF, BCF,

    XORWF) vi TRISC l ni n cn phi c trnh. Ngi s dng cn phi ch

    ra vng ngoi vi tng ng m bo cho vic t TRIS bit l ng.

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    28/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 27Lp: T1001

    Hnh 1.9.aS khi ca cc chn RC

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    29/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 28Lp: T1001

    Hnh 1.9.b S khi ca cc chn RC v RC

    3.3.4. PORT D v thanh ghi TRIS D

    PORTD l port 8 bit vi m Trigger Schmitt ng vo. Mi chn c th

    c cu hnh ring l nh mt ng vo hoc ng ra. PORTD c th c cu

    hnh nh port ca b vi x l rng 8 bit (parallel slave port) bng cch t bit

    iu khin PSPMIDE (TRISE ). Trong ch ny, m ng vo l TTL.

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    30/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 29Lp: T1001

    Hnh 1.10.S khi ca PORTD (trong ch l port I/O)

    3.3.5 PORT E v thanh ghi TRIS E

    PORTE c ba chn (RE0/RD/AN5, RE1/WR/AN6, v RE2/CS/AN7) mi

    chn c cu hnh ring l nh nhng ng vo hoc nhng ng ra. Nhng chn

    ny c m Trigger Schmitt ng vo. Nhng chn ca PORT E ng vai tr

    nh nhng ng vo iu khin vo ra cho Port ca vi x l khi bit PSPMODE

    (TRISE ) c t. Trong ch ny, ngi s dng cn phi chc chn

    rng nhng bit TRISE c t, v chc rng nhng chn ny c cu

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    31/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 30Lp: T1001

    hnh nh nhng ng vo s. Cng bo m rng ADCON1 c cu hnh cho

    vo ra s. Trong ch ny, nhng m ng vo l TTL.

    Nhng chn ca PORTE c a hp vi nhng ng vo tng t.Khi

    c chn cho ng vo tng t, nhng chn ny s c gi tr "0". TRIS E iukhin hng ca nhng chn RE ch khi nhng chn ny c s dng nh

    nhng ng vo tng t. Ngi s dng cn phi gi nhng chn c cu hnh

    nh nhng ng vo khi s dng chng nh nhng ng vo tng t.

    Hnh 1.11. S khi ca PORTE (trong ch I/O port)

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    32/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 31Lp: T1001

    3.4 Hot ng canh thi

    3.4.1 B nh thi TIMER0

    B nh thi/b m Timer0 c cc c tnh sau:

    B nh thi / b m 8 bit

    Cho php c v ghi

    B chia 8 bit lp trnh c bng phn mm

    Chn xung clock ni hoc ngoi

    Ngt khi c s trn t FFh n 00h

    Chn sn cho xung clock ngoi

    S khi ca b nh thi Timer0 v b chia dng chung vi WDT c

    a ra trong hnh 1.14.

    Hnh 1.12. S khi ca b nh thi Timer0 v b chia dng chung vi WDT

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    33/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 32Lp: T1001

    Ch nh thi (Timer) c chn bng cch xo bit T0CS

    (OPTION_REG). Trong ch nh thi, b nh thi Timer0 s tng dn

    sau mi chu k lnh (khng c b chia). Nu thanh ghi TmR0 c ghi th s

    tng s b ngn li sau hai chu k lnh.Ch m (Counter) c chn bng cch xo bit T0CS

    (OPTION_REG). Trong ch m, Timer0 s tng dn mi cnh ln

    xung ca chn RA4/T0CKI. S tng sn c xc nh bi bit Timer0 Source

    Edge Select, T0SE (OPTION_RE). B chia ch c dng chung qua li

    gia b nh thi Timer0 v b nh thi Watchdog. B chia khng cho php

    c hoc ghi.Ngt Timer0

    Ngt TMR0 c pht ra khi thanh ghi TMR0 trn t FFh n 00h. S trn

    ny s t bit T0IF (INTCON). Ngt ny c th c giu i bng cch xa

    bit T0IE (INTCON) . Bit T0IF cn phi c xa trong chng trnh bi th

    tc phc v ngt ca b nh thi Timer0 trc khi ngt ny c cho php li.

    S dng Timer0 vi xung clock ngoi

    Khi b chia khng c s dng, clock ngoi t vo th ging nh b

    chia ng ra. S ng b ca chn T0CKI vi clock ngoi c thc hin bng

    cch ly mu b chia ng ra trn chn Q2 v Q4. V vy thc s cn thit

    chn T0CKI mc cao trong t nht 2 chu k my v mc thp trong t nht 2

    chu k my.

    B chia

    Thit b PIC16F87X ch c mt b chia m c dng chung bi b nh

    thi TIMER0 v b nh thi Watchdog. B chia c cc H s chia dng cho

    Timer0 hoc b WDT. Cc h s ny khng c kh nng c v kh nng vit.

    chn h s chia xung vo Timer0 hoc cho b WDT ta tin hnh xo hoc

    t bit PSA ca thanh ghi OPTION_REG.

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    34/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 33Lp: T1001

    Nhng bit PS2, PS1, PS0 ca thanh ghi OPTION_REG dng xc

    lp cc h s chia.

    3.4.2. B nh thi TIMER1

    B nh thi TIMER1 l mt b nh thi/b m 16 bit gm hai thanh

    ghi TMR1H (Byte cao) v TMR1L (byte thp) m c th c hoc ghi. Cp

    thanh ghi ny tng s m t 0000h n FFFFh v bo trn s xut hin khi c

    s chuyn s m t FFFFh xung 0000h. Ngt, nu c php c th pht ra

    khi c s m trn v c t bit c ngt TMR1IF. Ngt c th c php

    hoc cm bng cch t hoc xo bit cho php ngt TMR1IE.

    B nh thi Timer1 c th c cu hnh hot ng mt trong hai ch sau:

    nh thi mt khong thi gian (timer)

    m s kin (Counter)

    Vic la chn mt trong hai ch c xc nh bng cch t hoc xo

    bit iu khin TMR1ON.

    ---- ---- T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON

    Bit7

    Bit0

    Bit 7-6 Khng c nh ngha

    Bit 5-4 bit chn b chia clock cho timer1

    Bit 3 bit iu khin cho php b dao ng Timer1

    Bit 2 bit iu khin clock ngoi Timer

    Bit 1 bit chn ngun clock cho Timer1

    Bit 0 bit iu khin hot ng ca Timer1

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    35/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 34Lp: T1001

    Ch Timer

    Ch Timer c chn bng cch xo TMR1CS. Trong ch ny,

    Ngun clock t vo Timer l mch dao ng FOSC/4. Bit iu khin ng b

    khng b tc ng v clock ngoi lun lun ng b.

    Hnh 1.12.a.Cnh tng timer1

    Ch counter

    Trong ch ny, b nh thi tng s m qua clock ngoi. Vic tng

    xy ra sau mi sn ln ca xung clock ngoi. B nh thi phi c mt sn ln

    trc khi vic m bt u.

    Hnh 1.12.bS khi b nh thi timer1

    3.4.3. B nh thi TIMER2

    B nh thi TIMER2 l b nh thi 8 bit vi mt b m v mt b

    potscaler. N thng dng chung vi b CCP trong ch PWM (s c

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    36/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 35Lp: T1001

    cp phn sau). Thanh ghi TMR2 c th c hoc ghi v c xo khi c bt k

    tn hiu reset no ca thit b.

    B nh thi TIMER2 c mt thanh ghi chu k 8 bit, PR2. B nh thi

    tng s m ln t 00h n gi tr c ghi trong thanh ghi TR2 v sau resetli gi tr 00h trong chu k k tip. PR2 l thanh ghi c th c hoc ghi.

    Gi tr trng hp trong thanh ghi TMR2 c i qua b postscaler 4 bit

    pht ra mt ngt TMR2 (c t bit c ngt TMR2IF). B nh thi TIMER2

    c th c tt (khng hot ng) bng cch xo bt iu khin TMR2ON

    gimthiu cng sut tiu tn ngun.

    Hnh 1.13.aS khi ca TIMER2

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    37/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 36Lp: T1001

    Hnh 1.13.b.T2CON: Thanh ghi iu khin Timer2 (a ch 12h)

    Mt c im khc ca vi iu khin Pic16F877A l c b dao ng ch

    trn chip iu, n s gip trnh c nhng sai s khng cn thit trong vic to

    xung dao ng, vi iu khin Pic16F877A c kh nng t Reset bng b WDT,

    v c thm 256 byte EEPROM.

    4. Giao tip I2C

    4.1.Gii thiu chung v I2C

    Ngy nay trong cc h thng thng tin in t hin i, rt nhiu

    ICs hay thit b ngoi vi cn phi giao tip vi cc ICs hay thit b ngoi vi khc

    - giao tip vi th gii bn ngoi.Vi mc tiu t c hiu qu cho phn cng

    tt nht vi mch in n gin,Philips pht trin mt chun giao tip ni

    hai dy c gi l I2C.I2C l tn vit tt ca cm t Inter Intergrated Circuit-

    bus giao tip gia cc IC vi nhau.

    I2C mc d c pht trin bi Philips nhng n c rt nhiu nh sn

    xut trn th gii s dng.I2C tr thnh mt chun cng nghip cho cc giao

    tip iu khin.C th k ra mt vi tn tui ngoi Philips nh Texas Intrusment

    (TI), Maxim dallas, Analog device, National Semiconductor Bus I2C c

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    38/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 37Lp: T1001

    dng lm bus giao tip ngoi vi cho rt nhiu loi IC khc nhau nh cc loi vi

    iu khin 8051, PIC, AVR, ARM, chip nh nh Ram tnh (Static ram),

    EEPROM,b chuyn i tng t s(ADC), s tng t (DAC),IC iu khin

    LCD, LED

    Hnh 1.14 Bus I2C v thit b ngoi vi

    4.1.1 c im giao tip I2C

    Mt giao tip I2C gm c hai dy: serial data (SDA) v serial clock

    (SCL). SDA l ng truyn d liu theo hai hng,cn SCL l ng truyn

    xung ng h v ch theo mt hng. Khi mt thit b ngoi vi kt ni vong I2C thchn SDA ca n s cni vi dy SDA ca bus,chn SCL

    c ni vi dy SCl.

    Hnh 1.15.a Kt ni thit b vo bus I2C ch chun(Standard mode) v ch nhanh (Fast mode)

    Mi dy SDA hay SCL u c ni vi in p dng ca ngun cp

    thng qua mt in tr ko ln(full-up resistor). S cn thit ca cc in tr ko

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    39/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 38Lp: T1001

    ny l v chn giao tip I2C ca cc thit b ngoi vi thng l dng cc mng h

    (open-drain or open-collector). Gi tr cc in tr ny khc nhau ty vo tng

    thit b v chun giao tip,thng dao ng trong khong t 1k n 4,7k.

    Tr li vi hnh 1.15.a ta thy c rt nhiu thit b (ICs) cng ckt ni vo mt bus I2C,tuy nhin s khng xy ra chuyn nhm ln gia cc

    thit b,bi mi thit b s c nhn ra bi mt a ch duy nhtc mi quan

    h ch/t tn ti trong sut thi gian kt ni. Mi thit b c th hot ng nh

    l thit b nhn d liu hay c th va truyn va nhn.Hot ng truyn hay

    nhn con ph thuc vo thit b l ch(mater) hay t (slave).

    Mt thit b hay mt IC khi kt ni vi bus I2C, ngoi mt a ch (duynht) phn bit,n cn c cu hnh l thit b ch (mater) hay t (slave).C

    s phn bit bi trn mt bus I2C th quyn iu khin thuc v thit b ch

    (mater). Thit b ch ng vai tr to xung ng h (clock) cho ton h thng.

    Khi gia hai thit b ch/t giao tip th thit b ch c vai tr to xung ng h

    v qun l a ch ca thit b t trong sut qu trnh giao tip.Thit b ch ng

    vai tr ch ng,cn thit b t ng vai tr b ng trong vic giao tip.

    Hnh 1.15.b Truyn nhn d liu gia ch/t

    Nhn hnh trn ta thy xung ng h ch c mt hng t ch n t cn

    lung d liu c th i theo hai hng t ch n t hay ngc li t t n ch.

    Vi d liu truyn trn bus I2C,mt bus I2C chun truyn 8 -bt d liu

    c hng trn ng truyn vi tc 100 kbit/s - ch chun (standard-

    mode). Tc truyn c th ln ti 400 kbit/s - ch nhanh (Fast-mode) v

    cao nht 3,4 Mbit/s - ch cao tc (high speed mode).

    Mt bus I2C c th hot ng nhiu ch khc nhau:

    - Mt ch - mt t (one masterone slave).

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    40/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 39Lp: T1001

    - Mt ch - nhiu t (one mastermutil slave).

    -Nhiu ch - nhiu t (mutil master mutil slave).

    D ch no, mt giao tip I2C u da vo quan h ch/t . Gi thit

    1 thit bA mun gi d liu n thit b B,qu trnh cthc hin nh sau:- Thit b A (ch) xc nh ng a ch ca thit b B (t), cng vi

    vic xc nh a ch, thit b A s quyt nh vic c hay ghi vo thit b t.

    - Thit b A gi d liu ti thit b B.

    - Thit b A kt thc qu trnh truyn d liu.

    Khi A mun nhn d liu t B,qu trnh din ra nh trn ch khcl A

    s nhn d liu t B.Trong giao tipny A l ch cn B vn l t.Chi tit vic

    thit lp mt giao tip gia hai thit b s c m t chi tit y trong cc

    mc di y.

    4.1.1.1 START and STOP condi tions (iu kin)

    START and STOP l nhng iu kin bt buc phi c khi mt thit b

    ch mun thit lp giao tip vi mt thit b no trong giao tip I2C.START

    l iu kin khi ubo hiu bt u giao tip, cn STOP bo hiu kt thc

    mt giao tip.Hnh di y m t iu kin START v STOP

    Ban u khi cha thc hin qu trnh giao tip,c hai ng SDA v

    SCL u mc cao (SDA=SCL=HIGH).Lc ny bus I2C c coi l di (bus

    free),sn sng cho mt giao tip.Hai iu kin START,STOP khng th thiu

    trong vic giao tip gia cc thit b I2C vi nhau.

    Hnh 1.16. iu kin Start v Stop.

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    41/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 40Lp: T1001

    iu kin START: mt s chuyn i trng thi t cao xung thp trn

    ng SDA trong khi ng SCl ang mc cao (cao =1,thp =0) bo

    iu kin STOP :mt s chuyn i trng thi t mc thp nn cao trn

    ng SDA trong khi ng SCL mc cao.

    C hai iu kin START v STOP u c to ra bi thit b ch.Sau

    tn hiu START,bus I2C coi nh ang trong trng thi lm vic (busy). Bus

    I2C s ri, sn sng cho mt giao tip mi sau tn hiu STOP t thit b ch.

    Sau khi c mt iu kin START,trong qu trnh giao tip,khi c mt

    tn hiu START c lp li thay v c mt tn hiu STOP th bus I2C vn tip

    tc trnh thi bn.Tn hiu START v lp li START u c chc nng ging

    nhau l khi to mt giao tip.

    4.1.1.2nh dng d liu truyn

    D liu c truyn trn bus I2C theo tng bit,bit d liu c truyn i

    ti mi sn dng ca xung ng h trn dy SCL,qu trnh thay i bit d

    liu xy ra khi SCl ang mc thp.

    Hnh 1.17.a. Qu trnh truyn 1 bit d liu

    Mi byte d liu c truyn c di l 8 bits. S lng byte c

    truyn trong mt ln l khng hn ch.Mi byte c truyn i theo sau l mt

    bit ACK bo hiu nhn d liu.Bit c trng s cao nht (MSB) s c

    truyn i u tin,cc bit s c truyn i ln lt.Sau 8 xung clock trn dy

    SCl, 8 bit d liu c truyn i. Lc ny thit b nhn sau khi nhn 8

    bit d liu s ko SDA xung mc thp to mt xung ACK ngvi xung clock

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    42/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 41Lp: T1001

    th 9 trn dy SDA bo hiu nhn 8 bit. Thit b truyn khi nhn c

    bit ACK s tip tc thc hin qu trnh truyn hoc kt thc.

    Hnh 1.18.b. D liu truyn trn bus I2C

    Hnh 1.18.c. Bit ACK trn bus I2C

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    43/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 42Lp: T1001

    Hnh 1.18.d. Lu thut ton qu trnh truyn nhn d liu

    Mt byte truyn i c km theo bit ACK l iu kin bt buc, nhm m

    bo qu trnh truyn nhn din ra chnh xc.Khi khng nhn c ng a ch

    hay khi mun kt thc qu trnh giao tip, thit b nhn s gi mt xung Not-

    ACK (SDA mc cao) bo cho thit b ch bit, thit b ch s to xung

    STOP kt thc hay lp li mt xung START bt u qu trnh mi.

    4.1.1.3nh dng a ch thit b

    Mi thit b ngoi vi tham gia vo bus I2C u c mt a ch duy nht,

    nhm phn bit gia cc thit b vi nhau. di a ch l 7 -bit, iu c

    ngha l trn mt bus I2C ta c th phn bit c ti a 128 thit b.Khi thit b

    ch mun giao tip vi thit b ngoi vi no trn bus I2C, n s gi 7 bit a ch

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    44/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 43Lp: T1001

    cathit b ra bus ngay sau xung START.Bye u tin c gi s bao gm

    7 bit a ch v mt bit th 8 iu khin hng truyn.

    Hnh 1.19. Cu trc byte d liu u tin

    Mi thit b ngoi vi s c mt a ch ring do nh sn xut ra n

    quy nh. a ch c th l c nh hay thay i. Ring bit iu khin hng

    s quy nh chiu truyn d liu.Nu bit ny bng 0 c ngha l byte d liutip theo sau s c truyn t ch n t,cn ngc li nu bng 1 th cc

    byte theo sau byte u tin s l d liu t con t gi n con ch.Vic thit lp

    gi tr cho bit ny do con ch thi hnh,con t s tu theo gi tr m c s

    phn hi tng ng n con ch.

    4.1.1.4 Truyn d liu trn bus I2C,ch Master- Slave

    Vic truyn d liu din ra gia con ch v con t.D liu truync th theo hai hng t ch n t hay ngc li.Hng truyn c quy nh

    bi bit th 8 trong byte u tin c truyn i.

    Hnh .1.20.a Qu trnh truyn d liu

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    45/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 44Lp: T1001

    + Truyn d liu t ch n t (ghi d liu) :thit b ch khi mun

    ghi d liu n con t,qu trnh thc hin l:

    - Thit b chto xung START.

    - Thit b ch gi a ch cho thit b t m n cn giao tip

    cng vi bit =0 ra bus v i xung ACK phn hi t con t.

    - Khi nhn c xungACK bo nhn din ng thit b

    t, con ch bt u gi d liu n con t theo tng byte mt.Theo sau mi

    byte ny u l mt xung ACK.S lng byte truyn l khng hn ch.

    - Kt thc qu trnh truyn,con ch sau khi truyn byte cui

    to xung STOP bo hiu kt thc.

    Hnh 1.20.b Ghi d liu t ch n t

    + Truyn d liu t t n ch (c d liu):thit b ch mun c

    d liu t thit b t,qu trnh c thc hin nh sau:

    - Khibus ri,thit b ch to xung START,bo hiu bt u giao tip.

    - Thit b ch gi a ch thit b t cn giao tip cng vi bit =1 v

    i xung ACK t pha thit b t.

    - Sau xung ACK u tin,thit b t s gi tng byte ra bus, thit b ch

    s nhn d liu v tr v xung ACK.S lng byte khng hn ch.

    - Khi mun kt thc qu trnh giao tip thit b ch gi xung Not-ACK v

    to cung STOP kt thc.

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    46/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 45Lp: T1001

    Hnh 1.20.c c d liu t thit b t

    + Qu trnh kt hp ghi v c d liu:gia hai xung START v

    STOP, thit b ch c th thc hin vic c hay ghi nhiu ln vi mt hay nhiu

    thit b. thc hin vic ,sau qu trnh ghi hay c,thit b ch lp li mt

    xung START v li gi li a ch ca thit b t v bt u mt qu trnh mi.

    Hnh 1.20.d Qu trnh phi hp c/ghi d liu

    Ch giao tip Master- Slave l ch c bn trong mt bus I2C,ton

    b bus c qun l bi mt Master duy nht.Trong ch ny khng xy ra

    tnh trng xung t bus hay mt ng b xung clock v ch c mt master duy

    nht c th to xung clock.

    4.1.1.5 Ch Multi-MasterTrn bus I2C c th c nhiu hn 1 Master iu khin bus.Khi bus

    I2C s hot ng ch Multi-Master.

    4.2 I2C trong vi iu khin PIC

    4.2.1 Tng quan chung

    Vit Nam PIC 16Fxxxx c s dng v cp nhiu nht l 16F84,

    16F628, 16F88, 16F87x. Trong :

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    47/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 46Lp: T1001

    - 16F84, 16F628 khng tch hp chun I2C.

    - 16F88 tch hp I2C nhng ch h tr ch Slave khng dng c

    ch Master.

    - 16F87x tch hp I2C cch Master v Slave.

    Do nu mun s dng ch Master vi cc PIC 16F84,16F628,

    16F88 chng ta phi gy dng bng phn mm.

    4.2.2 Truyn v nhn d liu dng I2C

    4.2.2.1 Qu trnh truyn mt byte d liu t Master qua Slave

    Nguyn tc truyn mt byte d liu gm cc bc c bn sau:- Gi bit start t Master n Salve . i cho n khi truyn xong.

    - Gi a ch ca Slave ln ng truyn chn Slave no hot ng ,

    i cho n khi truyn xong.

    - Gi a ch cn lu d liu ti. i cho n khi truyn xong.

    - Gi d liu cn truyn ti Slave . i cho n khi truyn xong.

    - Tip tc gi d liu..

    - Khi mun kt thc th gi bit Stop ln ng truyn.

    4.2.2.2 Qu trnh nhn d liu t Slave

    Qu trnh nhn d liu t Slave din ra theo cc bc sau:

    -Gi bit Start t Master v Slave. i cho n khi truyn xong.

    -Gi a ch ca Slave (bit0 = 0) ln ng truyn.Dng chn Slave

    no hot ng. i cho n khi truyn xong.

    -Gi a ch ca d liu cn nhn. i cho n khi truyn xong.

    -Gi bit Restart. i cho n khi truyn xong.

    -Gi a ch Slave ln ng truyn (bit 0 =1 bo rng hotng sp ti

    l c ). i cho ti khi truyn xong.

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    48/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 47Lp: T1001

    -c d liu t Slave. i cho n khi truyn xong.

    -Pht bit ACK bo tip tc nhn d liu . i cho n khi truyn xong.

    -.

    -c d liu t Slave. i cho n khi c xong.

    -Pht bit NACK bo rng qu trnh nhn d liu kt thc . i cho

    n khi truyn xong.

    Pht bit Stop kt thc

    4.2.3 Giao tip I2C trong vi iu khin 16F87x

    4.2.3.1 Cch s dng I2C ch Master

    Trong PIC 16F87x c 3 thanh ghi iu khin qu trnh truyn v

    nhn d liu l SSPSTAT ( 94h bank 1 ), SSPCON1 ( 14h bank 0 ),

    SSPCON2 ( 91h bank1) . Trong th:

    - SSPSTAT:

    SSPSTAT: MSSP STATUS REGISTER (I2C mode ) (ADDRESS 94h )

    SMP : Chn Speed chun (=1:100 Khz,1 Mhz, =0 :400Khz )

    CKE

    R/W : Bo rng qu trnh truyn vn ang din ra

    BF : Bo rng SSPBUF vnang y (trong c hai trng hp transmit,

    receive).

    - SSPCON1:

    SSPCON1 : MSSP CONTROL REGISTER 1 (I2C mode) ( ADDRESS 14h)

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    49/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 48Lp: T1001

    WCOL : bo rng c s xp chng d liu.

    SSPEN : enable ch I2C.

    SSPM3 : SSPM10 : chn ch vi ch I2C Master

    l: 1000.

    -SSPCON2:

    SSPCON2: MSSP CONTROL REGISTER 2 (I2C) (ADDRESS 91h

    mode ).

    - ACKSTAT:bit ACK c nhn t slave ( =0,ch dng trong transmit).

    - ACKDT, ACKEN: dng pht bit ACK hay NACK t Master (trong

    ch Receive ACKDT = 0 l ACK,=1 l NACK)

    - RCEN : tn hiu bo hiu qu trnhnhn (ch dng trong Receive, khi

    RCEN = 1, Master nhn tn hiu t slave)

    - PEN , RSEN , SEN : bit khi to qu trnh truyn stop,restart, start.

    iu khin tc baud ca ch , ngi ta dng thanh ghi SSPADD.

    I2C lm vic 3 ch chun (tt nhin ch tng i ) :100Kb, 400 Kb,

    1Mb.Nu ta dng thch anh 4Mhz v cn s dng tc 100 Kb th ta phi np

    gi tr vo thanh ghi SSPADD l 28H vi tc 400Kb ta cn gi tr 0Ah.

    Cn lu v nhn gi liu ngi ta dng thanh ghi SSPBUF.

    Nh vy c c thy 5 thanh ghi c dng n SSPSTAT, SSPCON1,

    SSPCON2 (chn ch v iu khin ng truyn ) , SSPADD (khi to tc

    baud) v SSPBUF dng lu tr d liu trong hai qu trnh Recevie v

    Tranmister.

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    50/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 49Lp: T1001

    4.2.3.2. Hm khi to I2C trong pic 16F87x

    Cng tng t nh khi dng USTAR,LCD, PWM u tin ta phi khi

    to cc gi tr ban u ca chng. Chng ta nn tch ring hm khi to ny

    thnh mt chng trnh con.

    Vic khito theo cc bc nh sau:

    -Chn ch Master mode bng vic SSPM3:SSPM0 = 1000.

    -Enable Master mode : SSpen=1.

    -Chn baud chun vi 100 Kb th SMP=1.

    - Xt tc baud ca ng truyn:vi 100 Kb th SSPDD=28h.4.2.2.3 Qu trnh truyn nhn trong PIC 16F87x

    1.Phng thc truyn v nhn d liu trong PIC 16F87x

    a. Nhn d liu

    bt u nhn d liu tSlave th Master phi xt bit RCEN = 1, cng

    tng t nh cc bit Stop,Start, y cng lmt hot ng ,sau khi bit cui

    cng c nhn th RCEN s t ng Clear,do bt u qu trnh Read. Tip

    theo th ta s phi tip tc SETRCEN (i vi qu trnh c t nht 2 ln tr ln)

    tip tc mt hot ng mi,m bo rng qu trnh transmit kt thc v

    sn sng cho hot ng Receive. Khi qu trnh truyn kt thc ta gi bit ACK

    ti Slave bo cho Slave bit rng Master sn sng nhn d liu tip theo.

    b. Qu trnh truyn d liu

    Qu trnh truyn d liu ngay sau khi chng ta ghi d liu cn

    truyn ln thanh ghi SSPBUF. Qu trnh Transmit bt u (lc bt u ghi d

    liu ln SSPUF) khi cc hot ng ca n ktthc.

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    51/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 50Lp: T1001

    Hnh 1.21. Dng xung ca qutrnh truyn v nhn PIC 16F877A

    2. Hm MaitMSSP v cc bit chc nng trong PIC 16F877A

    truyn v nhn trong I2C to thnh khi ngi ta dng cc bit Stop,

    Start, Restart, ACK,NACK (ng vi PEN,SEN, RSEN, ACKEN, ACKDT).

    Qu trnh hot ng cc bit ny kh ging nhau bt u pht i: ta

    phi xt bit tng ng trong thanh ghi .V d mun gi bit STOP ta ch cnPEN = 1, tng t vi cc bit kia v khi truyn xong ri thcc bit s t ng

    chuyn v 0 (bng Hardware) .

    Qu trnh ny ch c tc dng khi I2C hon thnh xong nhim v trc

    .Nh vy ta cn bit lc no chng trnh hon thnh xong nhim v y

    chnh l vai tr ca c SSPIF trong thanh ghi PIR1.Cng tng t nh cc c

    khc , SSPIF bo cho I2C bit l hot ng kt thc bng cch Set t 0 ln 1

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    52/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 51Lp: T1001

    v ta phi xo c ny bng phn mm cho cc hot ng tip theo. Do yu cu

    ca I2C l: khi hot ng ny kt thc th mi cho php hot ng kia bt u.

    C s khc bit mt cht trong bit ACK bit v NACK bit l: ACKEN gi

    bit ACK ni chung i,cn ACKDT dng chn bit gi i l ACK ( =0 ), hayNACK ( =1 ).

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    53/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 52Lp: T1001

    CHNG 2:THIT KH THNG GIAO TIP I2C GIA 2 PIC

    2.1 S khi h thng

    Vi nhng l thuyt trnh by trn ta c th thit lp c giao tip

    I2C gia 2 PIC. phn ny em trnh by vic thit k h thng giao tip I2C

    gia2 PIC. 2 PIC giao tip I2C vi nhau thng qua 2 ng dy l SDA v

    SCL. Trn 2 dy u c ni vi in p dng ca ngun cp thng qua mt

    in tr ko ln.Mt PIC em s dng cvai tr l PIC ch (Master)v 1 PIC l

    t (Slave) . Trong h thng giao tip I2C gia 2 PIC em s dng thm thit b

    ngoi vi v kt qu ca trnh thc hin giao tip c hin th trn mn hnh

    LCD. 1 PIC s nhn tn hiu t thit b ngoi vi v thc hin qu trnh x l tn

    hiu . Sau s thc hin giao tip I2C. Qu trnh x l, hin th thc hin

    trn PIC ch hoc t. phn cng ca em lm, em s dng PIC ch (master)

    thc hin vic nhn, x l d liu t ngoi vi. Sau kt qu c truyn qua

    PIC t v nhn ngc li thng qua giao tip I2C. V hin th kt qu nn LCD.

    2.2 S chi tit

    PIC HINTHPIC

    NGOIVI

    NGUNNUI

    I2C

    Hnh 2.1. S khi h thng giao tip I2C gia 2 PIC

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    54/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 53Lp: T1001

    2.2 S chi tit

    Hnh 2.2. S mch chi tit giao tip I2C vi 2 PIC

    tng minh vic truyn nhn d liu gia hai vi iu khin PIC y

    em s dng mch o nhit dng cm bin nhit LM335. Tn hiu in p li

    ra ca cm bin c a vo b bin i tng t s ca vi iu khin PIC. C

    th a vo hoc ca vi iu khin ch (Master) hoc ca vi iu khin t

    (Slave). Trong thit k em a tn hiu vo chn AN0 ca vi iu khin ch. S

    mch o nh hnh 2.3 di y.

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    55/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 54Lp: T1001

    Hnh 2.3. Mch cm bin o nhit dng ly d liu truyn nhn cho giao tip

    I2C.

    2.3 Thit k cc khi

    2.3.1 Khi ngun nui

    a.S khi

    b. S nguyn l

    Hnh 2.5. S chi tit mch ngun.

    Ngun n nh cung cp cho h thng l ngun +5V.

    Bin p B npAC

    DC

    Hnh 2.4. S khi ngun nui

    bchnhlu

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    56/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 55Lp: T1001

    Mch trn ly ngun mt chiu t mt my bin p vi in p t 6V n

    12V a vo ng vo. Sau cho qua IC n p 7805 to ng ra OUT +5V n

    nh cp cho ton mch. T in ng vai tr n nh v chng nhiu cho ngun.

    2.3.2 PIC 26F877A

    y em s dng mPIC ng vai tr l Master, mtPIC l Slave, giao

    tip vi nhau thng qua giao tip I2C.

    S chn chi tit vi iu khin PIC16F877A c cho di y.

    Hnh 2.6. S chn chi tit

    vi iu khin hot ng ta cn cp ngun cho n, PIC 16F877A c 4

    chn cp ngun trong chn 11, 32 ni ngun +5V, chn 12, 31 ni t. Sau khi

    cp ngun ta cn cung cp tip xung clock cho hot ng ca vi iu khin. y

    ta s dng thch anh lm ngun xung cp cho PIC qua chn 13,14 ca PIC. Tuy

    nhin nh ta bit, cc xung dao ng do thch anh to ra cng khng thc s

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    57/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 56Lp: T1001

    n nh mt cch tuyt i, v cch khc phc l gn thm cc t lc vo thch

    anh. Thch anh s dng y l 20MHz. Vy ta s mc c s mch

    nguyn l ca khi ny nh sau:

    Hnh 2.7 S mch 16F877A

    Chn s 1 MCLR c u ni thm nh trn ng vai tr reset PIC, lm

    vic sn xung (mc 1 v 0). Khi SW1 m in p vo chn s 1 l +5V

    (mc 1) PIC khng c reset, khi SW1 ng, mch kn, chn s 1 ni t, in

    p vo s l 0V (mc 0) l mc kch hot, hot ng ca PIC c reset li.Do giao tip gia 2 PIC l giao tip I2C nn 2 chn 18(SDA) 23 (SCL)

    cu 2 PIC c ni vi nhau. Mi dy SDA hay SCL u c ni vi in p

    dng ca ngun cp thng qua mt in tr ko ln (full-up resistor).

    2.3.3 Khi hinth

    Ngy nay, thit b hin thLCD (Liquid Crystal Display) c s dng

    trong rt nhiu cc ng dng ca VK. LCD c rt nhiu u im so vi cc

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    58/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 57Lp: T1001

    dng hin thkhc nh n c khnng hin thk ta dng, trc quan (ch, s

    v k tha), ddng a vo mch ng dng theo nhiu giao thc giao tip

    khc nhau, tn rt t ti nguyn h thng v gi thnh r... y em s dng

    HD44780 ca Hitachi, mt loi thit bhin thLCD rt thng dng nc ta,cthl sdng LCD_DM 1602A).

    Hnh 2.8 S chi tit LCD 16x2

    LCD1602 l loi 2 dng, 16 k t, s dng ngun nui thp (t 2,5 n

    5V). C th hot ng hai ch 4 bit hoc 8 bit (trong ti ny em s dng

    ch 4 bit). Vi u vo 4 bit c ly t 4 chn D4D7 ca LCD ni t

    RB2RB5 ca vi iu khin PIC. Chn RW ng vai tr chn ch c ghi

    cho LCD, mc logic 0 LCD hot ng ch ghi, ngc li ch c.

    Chn RS ca LCD c ni vi chn RB6ca Vi iu khin. ChnE ca LCD

    c ni vi chn RB7ca Vi iu khin. Cc tn hiu iu khin cho php hin

    th trn LCD c thc hin thng qua lp trnh.

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    59/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 58Lp: T1001

    2.3.4 Khi ngoi vi

    Nh trnh by trn.

    2.4 Lu thut ton

    Vi Master

    Start

    End

    KhitoLCD,ADC,I

    2C

    cADC

    Gihm WriteI2C

    Gihm ReadI2C

    Gic.trnhcon hinth

    LCD

    Tiptc

    No

    Yes

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    60/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 59Lp: T1001

    Vi Slave

    truynliMaster

    NhntMaster

    KhitoI2C

    Delay

    Gihm ngti2c_isr ( )

    Start

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    61/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 60Lp: T1001

    2.5 Thit kchng trnh

    Cho Master

    #include

    #fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG,

    NOBROWNOUT, NOLVP, NOCPD, NOWRT

    #use Delay (Clock=4000000)

    #include

    #use i2c (master, sda=PIN_C4, scl=PIN_C3, force_hw)

    #use fast_io (b)

    #use fast_io (c)

    void convert_bcd (unsigned int data)

    {

    int8 d1, d2, d3;

    d1=(int8) data/100;d2=(int8) (data/10)%10;

    d3=(int8) data%10;

    d1=d1+0x30;

    d2=d2+0x30;

    d3=d3+0x30;lcd_putcmd (line_2+11);

    lcd_putchar (d1);

    lcd_putcmd (line_2+12);

    lcd_putchar (d2);

    lcd_putcmd (line_2+13);

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    62/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 61Lp: T1001

    lcd_putchar (d3);

    lcd_putcmd (line_2+14);

    lcd_putchar (" ");

    lcd_putcmd (line_2+15);

    lcd_putchar ("C");

    }

    void write_I2C (int8 value, int8 slave_addr)

    {

    i2c_start ();

    i2c_write (slave_addr);

    i2c_write (value);

    i2c_stop ();

    }

    int8 read_I2C (int8 slave_addr)

    {

    int8 value_re;

    i2c_start();

    i2c_write (slave_addr + 1);

    value_re = i2c_read (0);

    i2c_stop ();

    return value_re;

    }

    void main ()

    {

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    63/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 62Lp: T1001

    int8 value;

    const int8 slave_addr = 0x10;

    set_tris_b (0x00);

    set_tris_c (0x80);

    set_tris_a (0xff);

    lcd_init ();

    lcd_putcmd (line_1);

    printf (lcd_putchar,"Giao tiep I2C");

    lcd_putcmd (line_2);

    printf (lcd_putchar,"Value:");

    setup_adc_ports (AN0);

    setup_adc (ADC_CLOCK_INTERNAL);

    set_ADC_channel (0);

    read_adc (adc_start_only);

    delay_us (10);

    while (1)

    {

    value=(float) read_adc ();

    write_I2C (value, slave_addr); // Gui di

    delay_ms (50);

    value = read_I2C (slave_addr); // Nhan lai

    value = (value - 139.23)/0.513;

    convert_bcd (value);

    delay_ms (10);

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    64/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 63Lp: T1001

    output_d (value);

    }

    }

    Cho Slave

    #include

    #fuses XT,NOWDT,NOPROTECT,NOLVP

    #use delay (Clock=4000000)

    #ues i2c (SLAVE,SDA=PIN_C4,SCL=PIN_C3.address=0x10,force_hw)

    int8 value = 0x01;

    #INT_SSP

    Void i2c_isr ( )

    {

    Int8 state;

    state = i2c_isr_state ();

    if (state < 0x80)

    value = i2c_read ();

    if (state == 0x80) {

    i2c_write (value);

    }

    }

    void main ( )

    {

    Enable_int errupts (GLOBAL);

    Enable_int erupts (INT_SSP);

    set_tris_b (0x00);

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    65/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 64Lp: T1001

    hile (1) {

    output_b (value) ;

    }

    }

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    66/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 65Lp: T1001

    KT LUN

    Sau thi gian nghin cu v lm n, cng vi s gip tn tnh ca

    cc thy c gio v cc bn. c bit l thy on Hu Chc em hon thnhnhim v n ca mnh.

    Qua n em thy c ng dng quan trng ca vi iu khin .Giao tip

    I2C giao tip trongo lng v iu khin, s dng vi iu khin chng ta thu

    thp c cc i lng cn o, x l cc i lng v a ra kt qu mong

    mun. Hin nay vi iu khin rt a nng, nh gn, do p dng vi iu khin

    vo trong cuc sng l rt cn thit.Mc d rt c gng nhng trong qu trnh lm n tt nghip, do s hn

    ch v thi gian, ti liu v trnh c hn nn khng trnh khi c thiu st.

    Em rt mong c s gp , ch bo ca cc thy c v cc bn gip em nng

    cao kin thc, chuyn mn phc v cho cng vic sau ny.

    Em xin chn thnh cm n!

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    67/68

    TRNG I HC DN LP HI PHNG

    Sinh vin: Bi Vn Nguyn 66Lp: T1001

    MC LC

    LI M U...................................................................................................... 1

    CHNG 1. TNG QUAN................................................................................. 2

    1. S lc v vi x l v vi iu khin................................................................. 2

    2.Tng quan v vi iu khin PIC..................................................................... 7

    2.1.PI C lg? ........................................................................................................ 7

    2.2 c im ca PIC so vi cc loi vi iu khin khc.................................. 7

    2.3 Kin trc ca PIC.......................................................................................... 7

    2.4. RISC v CISC............................................................................................... 8

    2.5. PIPELINING (x l song song)................................................................... 9

    2.6. Cc dng PIC v cch la chn vi iu khin PIC................................. 11

    2.7. Ngn ng lp trnh cho PIC...................................................................... 12

    2.8. Mch np PIC............................................................................................. 12

    3. Tng quan v PIC 16F877A......................................................................... 13

    3.1. S khi v bng m t chc nng cc chn ca PIC16F877A............... 13

    3.2. T chc b nh............................................................................................. 183.2.1. T chc ca b nh chng trnh............................................................. 19

    3.2.2. T chc b nh d liu............................................................................. 19

    3.2.3. Cc thanh ghi mc ch chung.................................................................. 19

    3.2.4. Cc thanh ghi chc nng c bit............................................................. 21

    3.2.5. Cc thanh ghi trng thi............................................................................ 21

    3.3. Cc cng ca PIC 16F877A......................................................................... 223.3.1. PORTA v thanh ghi TRISA ................................................................... 22

    3.3.2 PORTB v thanh ghi TRISB ...................................................................... 23

    3.3.3 PORT C v thanh ghi TRIS C .................................................................... 25

    3.3.4. PORT D v thanh ghi TRIS D .................................................................. 28

    3.3.5 PORT E v thanh ghi TRIS E .................................................................... 29

    3.4 Hot ng ca nh thi................................................................................ 31

  • 7/25/2019 Thiet Ke He Thong Giao Tiep i2c Giua Hai Vi Dieu Khien Pic (1)

    68/68

    TRNG I HC DN LP HI PHNG

    3.4.1 B nh thi TIMER 0............................................................................... 31

    3.4.2. B nh thi TIMER1............................................................................... 33

    3.4.3. B nh thi TIMER2............................................................................... 34

    4. Giao tip I2C.................................................................................................. 364.1.Gii thiu chung v I2C............................................................................... 36

    4.1.1 c im giao tip I2C............................................................................. 37

    4.2 I2C trong vi iu khin PIC............................................................... 45

    4.2.1 Tng quan chung...................................................................................... 45

    4.2.2 Truyn v nhn d liu dng I2C........................................................ 46

    4.2.3 Giao tip I2C trong vi iu khin 16F87x.............................................. 47

    CHNG 2: ...................................................................................................... 52

    THIT K H THNG GIAO TIP I2C GIA 2 PIC............................. 52

    2.1 S khi h thng..................................................................................... 52

    2.2 S chi tit................................................................................................. 52

    2.3 Thit k cc khi.......................................................................................... 54

    2.3.1 Khi ngun nui....................................................................................... 54

    2.3.2 PIC 26F877A............................................................................................. 55

    2.3.3 Khi hin th ............................................................................................. 56

    2.3.4 Khi ngoi vi............................................................................................. 58

    2.4 Lu thut ton........................................................................................ 58

    2.5 Thit k chng trnh................................................................................. 60

    KT LUN ......................................................................................................... 65