update đồ án vi điều khiển đồng hồ thời gian thực ds1307

Upload: trungnb22

Post on 06-Apr-2018

310 views

Category:

Documents


10 download

TRANSCRIPT

  • 8/3/2019 Update n vi iu khin ng h thi gian thc DS1307

    1/20

    Update n vi iu khin ng h thigian thc DS1307 +89S52

    25-11-2011 |fee_08 |2 phn hi Mch ng h hin th gi pht giy ,c kh nng lu gi khi mt in .Thch hp chonhng ai mun t tay lm cho ring mnh ,hoc tng bn b.

    Mch s dng chip thi gian thc DS 1307 hot ng tn s 32768kHZ c nui bngngun d phng 3V c th hot ng trong thi gian 5 nm khi k c ngun in

    I, Ni qua v chun giao tip I2cGiao thc u tin truyn thng ni tip c pht trin bi Philips Semiconductor vc gi l bus I2C. V ngun gc n c thit k l iu khin lin thng IC (Inter-Intergrated Circuit) nn n c t tn l I2C. Tt c cc chip c tch hp v tng thchvi I2C u c thm mt giao din tch hp trn Chip truyn thng trc tip vi ccthit b tng thch I2C khc. Vic truyn d liu ni tip theo hai hng 8 bit c thcthi theo 3 ch sau: Chun (Standard)100 Kbits/sec Nhanh (Fast)400 Kbits/secTc cao (High speed)3.4 Mbits/sec ng bus thc hin truyn thng ni tip I2C

    http://machdientu.net/author/fee_08http://machdientu.net/author/fee_08http://machdientu.net/mach-tong-hop/update-do-an-vi-dieu-khien-dong-ho-thoi-gian-thuc-ds1307-89s52.htm#respondhttp://machdientu.net/mach-tong-hop/update-do-an-vi-dieu-khien-dong-ho-thoi-gian-thuc-ds1307-89s52.htm#respondhttp://machdientu.net/author/fee_08http://machdientu.net/mach-tong-hop/update-do-an-vi-dieu-khien-dong-ho-thoi-gian-thuc-ds1307-89s52.htm#respond
  • 8/3/2019 Update n vi iu khin ng h thi gian thc DS1307

    2/20

    gm hai ng l ng truyn d liu ni tip SDA v ng truyn nhp xung ng hni tip SCL. V c ch hot ng l ng b nn n cn c mt nhp xung tn hiu ngb. Cc thit b h tr I2C u c mt a ch nh ngha trc, trong mt s bit ach l thp c th cu hnh. n v hoc thit b khi to qu trnh truyn thng l n vCh v cng l n v to xung nhp ng b, iu khin cho php kt thc qu trnh

    truyn. Nu n v Ch mun truyn thng vi n v khc n s gi km thng tin ach ca n v m n mun truyn trong d liu truyn. n v T u c gn v nha ch thng qua n v Ch c th thit lp truyn thng v trao i d liu. Bus dliu c thit k cho php thc hin nhiu n v Ch v T trn cng Bus. Qutrnh truyn thng I2C c bt u bng tn hiu start to ra bi n v Ch. Sau nv Ch s truyn i d liu 7 bit cha a ch ca n v T m n mun truyn thng,theo th t l cc bit c trng s ln nht MSB s c truyn trc. Bit th tm tiptheo s cha thng tin xc nh n v T s thc hin vai tr nhn (0) hay gi (1) dliu. Tip theo s l mt bit ACK xc nhn bi n v nhn nhn c 1 byte trc hay khng. n v truyn (gi) s truyn i 1 byte d liu bt u bi MSB. Ti imcui ca byte truyn, n v nhn s to ra mt bit xc nhn ACK mi. Khun mu 9 bit

    ny (gm 8 bit d liu v 1 bit xc nhn) s c lp li nu cn truyn tip byte na. Khin v Ch trao i xong d liu cn n s quan st bit xc nhn ACK cui cng risau s to ra mt tn hiu dng STOP kt thc qu trnh truyn thng. I2C l mtgiao din truyn thng c bit thch hp cho cc ng dng truyn thng gia cc n vtrn cng mt bo mch vi khong cch ngn v tc thp. V d nh truyn thnggia CPU vi cc khi chc nng trn cng mt bo mch nh EEPROM, cm bin, ngh to thi gian thc Hu ht cc thit b h tr I2C hot ng tc 400Kbps, mts cho php hot ng tc cao vi Mbps. I2C kh n gin thc thi kt ni nhiun v v n h tr c ch xc nh a ch.

    II, S lc v chip thi gian thc Ds1307

    DS1307 l chip ng h thi gian thc (RTC : Real-time clock), khi nim thi gian thc y c dng vi ngha thi gian tuyt i m con ngi ang s dng, tnh bnggiy, pht, gi DS1307 l mt sn phm ca Dallas Semiconductor (mt cng ty thucMaxim Integrated Products). Chip ny c 7 thanh ghi 8-bit cha thi gian l: giy, pht,gi, th (trong tun), ngy, thng, nm. Ngoi ra DS1307 cn c 1 thanh ghi iu khinng ra ph v 56 thanh ghi trng c th dng nh RAM. DS1307 xut hin 2 gi SOICv DIP c 8 chn

    Cc chn ca DS1307 c m t nh sau: X1 v X2: l 2 ng kt ni vi 1 thch anh32.768KHz lm ngun to dao ng cho chip. VBAT: cc dng ca mt ngun pin

  • 8/3/2019 Update n vi iu khin ng h thi gian thc DS1307

    3/20

    3V nui chip. GND: chn mass chung cho c pin 3V v Vcc. Vcc: ngun cho giaodin I2C, thng l 5V v dng chung vi vi iu khin. Ch l nu Vcc khng ccp ngun nhng VBAT c cp th DS1307 vn ang hot ng (nhng khng ghi vc c). SQW/OUT: mt ng ph to xung vung (Square Wave / Output Driver),tn s ca xung c to c th c lp trnh. Nh vy chn ny hu nh khng lin

    quan n chc nng ca DS1307 l ng h thi gian thc, chng ta s b trng chn nykhi ni mch. SCL v SDA l 2 ng giao xung nhp v d liu ca giao din I2C. C th kt ni DS1307 bng mt mch in n gin nh sau:

    Cu to bn trong DS1307 bao gm mt s thnh phn nh mch ngun, mch dao ng,mch iu khin logic, mch giao din I2C, con tr a ch v cc thanh ghi (hay RAM).S dng DS1307 ch yu l ghi v c cc thanh ghi ca chip ny. V th c 2 vn cbn l cu trc cc thanh ghi v cch truy xut cc thanh ghi ny thng qua giao dinI2C. Nh trnh by, b nh DS1307 c tt c 64 thanh ghi 8-bit c nh a ch t 0n 63 (t 00H n 3FH theo h HexaDecimal). Tuy nhin, thc cht ch c 8 thanh ghiu l dng cho chc nng ng h (RTC) cn li 56 thanh ghi b trng c th cdng cha bin tm nh RAM nu mun. By thanh ghi u tin cha thng tin v thigian ca ng h bao gm: giy (SECONDS), pht (MINUETS), gi (HOURS), th(DAY), ngy (DATE), thng (MONTH) v nm (YEAR). Vic ghi gi tr vo 7 thanh ghiny tng ng vi vic ci t thi gian khi ng cho RTC. Vic c gi tr t 7thanh ghi l c thi gian thc m chip to ra. V d, lc khi ng chng trnh, chngta ghi vo thanh ghi giy gi tr 42, sau 12s chng ta c thanh ghi ny, chng ta thuc gi tr 54. Thanh ghi th 8 (CONTROL) l thanh ghi iu khin xung ng raSQW/OUT (chn 6). Tuy nhin, do chng ta khng dng chn SQW/OUT nn c th bqua thanh ghi th 8. T chc b nh ca DS1307 c trnh by trong hnh 3. V 7 thanhghi u tin l quan trng nht trong hot ng ca DS1307, chng ta s kho st ccthanh ghi ny mt cch chi tit. Trc ht hy quan st t chc theo tng bit ca ccthanh ghi ny nh trong hnh

  • 8/3/2019 Update n vi iu khin ng h thi gian thc DS1307

    4/20

  • 8/3/2019 Update n vi iu khin ng h thi gian thc DS1307

    5/20

    T chc cc thanh ghi thi gian Thanh ghi giy (SECONDS): thanh ghi ny l thanh ghiu tin trong b nh ca DS1307, a ch ca n l 000. Bn bit thp ca thanh ghi nycha m BCD 4-bit ca ch s hng n v ca gi tr giy. Do gi tr cao nht ca ch

    s hng chc l 5 (khng c giy 60) nn ch cn 3 bit (cc bit SECONDS 6:4) l c thm ha c (s 5 =101, 3 bit). Bit cao nht, bit 7, trong thanh ghi ny l 1 iu khin ctn CH (Clock halt treo ng h), nu bit ny c set bng 1 b dao ng trong chipb v hiu ha, ng h khng hot ng. V vy, nht thit phi reset bit ny xung 0ngay t u. Thanh ghi pht (MINUTES): c a ch 01H, cha gi tr pht ca ng h.Tng t thanh ghi SECONDS, ch c 7 bit ca thanh ghi ny c dng lu m BCDca pht, bit 7 lun lun bng 0. Thanh ghi gi (HOURS): c th ni y l thanh ghiphc tp nht trong DS1307. Thanh ghi ny c a ch 02H. Trc ht 4-bits thp cathanh ghi ny c dng cho ch s hng n v ca gi. Do DS1307 h tr 2 loi hthng hin th gi (gi l mode) l 12h (1h n 12h) v 24h (1h n 24h) gi, bit6 (hnh4) xc lp h thng gi. Nu bit6=0 th h thng 24h c chn, khi 2 bit cao 5 v 4

    dng m ha ch s hng chc ca gi tr gi. Do gi tr ln nht ca ch s hng chctrong trng hp ny l 2 (=10, nh phn) nn 2 bit 5 v 4 l m ha. Nu bit6=1th h thng 12h c chn, vi trng hp ny ch c bit 4 dng m ha ch s hngchc ca gi, bit 5 (mu orange trong hnh 4) ch bui trong ngy, AM hoc PM. Bit5 =0l AM v bit5=1 l PM. Bit 7 lun bng 0. Thanh ghi th (DAY ngy trong tun): nm a ch 03H. Thanh ghi DAY ch mang gi tr t 1 n 7 tng ng t Ch nht n th7 trong 1 tun. V th, ch c 3 bit thp trong thanh ghi ny c ngha. Cc thanh ghi cnli c cu trc tng t, DATE cha ngy trong thng (1 n 31), MONTH cha thng (1

  • 8/3/2019 Update n vi iu khin ng h thi gian thc DS1307

    6/20

    n 12) vYEAR cha nm (00 n 99). Ch , DS1307 ch dng cho 100 nm, nn gitr nm ch c 2 ch s, phn u ca nm do ngi dng t thm vo (v d 20xx).Ngoi cc thanh ghi trong b nh, DS1307 cn c mt thanh ghi khc nm ring gi lcon tr a ch hay thanh ghi a ch (Address Register). Gi tr ca thanh ghi ny l ach ca thanh ghi trong b nh m ngi dng mun truy cp.

    III,AT89S52: S KHI V S CHN

    Vi iu khin 8051 c Intel cho ra i vo nm 1980 thuc vi iu khin u tin cah MCS-51. Hin ti rt nhiu nh sn xut nh Siemens, Advanced Micro Devices,Fusisu v Philips tp trung pht trin cc sn phm trn c s 8051.Atmel l hng chora i cc chip 89C51, 52, 55 v sau ci tin thm, hng cho ra i 89S51, 89S52,89S8252 Cu hnh 89S52: + 8KB b nh chng trnh. + Dao ng bn ngoi vithch anh

  • 8/3/2019 Update n vi iu khin ng h thi gian thc DS1307

    7/20

    V c bn th cc chip nu trn ging nhau, ch c mt s tnh nng c ci tin thm.Cc phin bn v sau cng c nhiu khi tnh nng c bit hn. Chng ta xem bng so

    snh mt s loi ph bin nh di y.

  • 8/3/2019 Update n vi iu khin ng h thi gian thc DS1307

    8/20

    Chc nng cc chn 89S52 P0,1,2,3 c chc nng c bn xut/nhp. Ring P0, P2 cnc chc nng kt ni b nh m rng, s c kho st trong phn m rng b nh. P1:Chn T2 v T2EX dng cho timer/ counter 2. Hai chc nng ny s kho st trong phnTimer. Chn SS\, MOSI, MISO, SCK truyn d liu theo chun SPI ng thi c chcnng kt ni vi mch np chng trnh. Xem hnh

  • 8/3/2019 Update n vi iu khin ng h thi gian thc DS1307

    9/20

    Mch np :

    Chn ALE, PSEN, WR\, RD\ dng kt ni b nh m rng. Chn EA\ c chc nngchn b nh chng trnh: EA\=GND: Chn b nh ngoi, EA\=VCC chn b nh ni. Chn Xtal1 v Xtal2 gn vi thch anh

    IV, THUT TON GIAO TIP I2C VI VI IU KHIN 89S52

  • 8/3/2019 Update n vi iu khin ng h thi gian thc DS1307

    10/20

    iu kin START and STOP START v STOP l nhng iu kin bt buc phi c khimt thit b ch mun thit lp giao tip vi mt thit b no trong mng I2C. STARTl iu kin khi u, bo hiu bt u ca giao tip, cn STOP bo hiu kt thc mtgiao tip. Hnh 11 m t iu kin START v iu kin STOP khi giao tip I2C giaDS1307 vi Vi iu Khin.

    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 ri (bus free), sn sng cho mtgiao tip. Hai iu kin START v STOP l khng th thiu trong vic giao tip gia ccthit b I2C, tt nhin l trong giao tip ny cng khng ngoi l. 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 hiu mt iu kin START iu kin STOP:Mt s chuyn i trng thi t mc thp ln cao trn ng SDA trong khi ng SCLang mc cao. C hai iu kin START v STOPu c to ra bi thit b ch. Sautn 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 pha thit b ch. Sau khi c mtiu kin START, trong qua trnh giao tip, khi c mt tn hiu START c lp li thayv mt tn hiu STOP th bus I2C vn tip tc trong trng thi bn. Tn hiu START vlp li START u c chc nng ging nhau l khi to mt giao tip.

    Ch hot ng

  • 8/3/2019 Update n vi iu khin ng h thi gian thc DS1307

    11/20

    Ch hot ng ca I2C DS1307 c th hot ng 2 ch sau: ch slavenhn (ch DS1307 ghi ): chui d liu v chui xung clock s c nhn thng qua

    SDA v SCL. Sau mi byte c nhn th 1 bit ACKnowledge s c truyn. Cc iukin START v STOP s c nhn dng khi bt u v kt thc 1 truyn 1 chui, nhndng a ch c thc hin bi phn cng sau khi chp nhn a ch ca slave v bit mtchiu. Ch slave pht ( ch DS1307 c ): byte u tin slave nhn c tng tnh ch slave ghi. Tuy nhin trong ch ny th bit chiu li ch chiu chuyn ngcli. Chui d liu c phat i trn SDA bi DS1307 trong khi chui xung clock vochn SCL

    lm vic vi DS1307, ta thc hin cc bc nh sau: START I2C Ghi: 0DxH (yl a ch ca DS1307 do nh sn xut quy nh trong giao tip I2C) vi: x=0: Ghi d liuvo DS1307 x=1: c d liu vo DS1307 Ghi tham s x ny vo, c ngha l vic tip

    theo l chng tag hi hay c d liu t con DS1307 ty vo gi tr x=0 (ghi d liu) hayx=1 (c d liu). Ghi vo a ch thanh ghi cn ghi hoc cn c (bng thanh ghica DS1307 ny c gi thiu hnh 3 & hnh 4). Ghi hoc c d liu. STOPI2C

    Mt v d minh ha cho vic c ghi Thanh ghi c a ch 01H cha Data v pht,mun set pht vo DS1307 chng ta lm theo quy trnh: STARTGhi: 0D0HGhi tip:01HGhi tip:Ghi tip hoc STOP nu ch mun ci t thi gian cho pht.

    Nu mun Ghi vo a ch 01H ri k tip Ghi vo a ch 04H chng hn th chng taphi START li t uGhi vo 0D0H ( xc nh s Ghi vo DS1307 _ hng giao

  • 8/3/2019 Update n vi iu khin ng h thi gian thc DS1307

    12/20

    tip l Ghi vo) Ghi tip 04HGhi d liu ca thanh ghi cn ci tSTOP I2C. Tng t, nu chng ta mun c th trc ht chng ta phi ghi vo a ch cn c: tcl vn tip tc tin hnh 3 th tc STARTGhi 0D0HGhi vo a ch (a ch cathanh ghi m ta mun c d liu). Sau , mi START li ri ghi li 0D1H (lc ny mithng bo l ta s c t DS1307), tip theo c c bnh thng (thanh ghi c c s l

    thanh ghi c a ch ta mi va ghi vo), tip tc c th a ch cn c s t ng tngln cho n khi STOP I2C.

    V, S KHI TNG QUT CA MCH NG H

    Da vo s khi ca giao tip trn, iu c bn l chng ta phi vit mt phn mmkhi to DS1307, thc ra l chng trnh giao tip I2C, c gi tr trong Ram ca conDS1307 lu tm thi vo trong Ram ca 89S52. Sau , vit thm mt phn mm cni dung trong Ram ny a ra hin th bng phng php qut. n gin, vic cd liu t DS1307 lu vo trong Ram ca 89S52 v hin th gi_pht_giy, c chia ralm 2 chng trnh con nh, nu c phm nhn th s nhy n chng trnh con x lphm nhn ring.

  • 8/3/2019 Update n vi iu khin ng h thi gian thc DS1307

    13/20

    S nguyn l:

    S mch in:

  • 8/3/2019 Update n vi iu khin ng h thi gian thc DS1307

    14/20

  • 8/3/2019 Update n vi iu khin ng h thi gian thc DS1307

    15/20

    VI,THIT K PHN MM

    Nh trnh by trong phn thut ton gaio tip v s khi tng qut, th chng trnhMAIN ca chng ta s gm 3 mc chnh c m t c th trong lu ca chng trnhMAIN hnh

  • 8/3/2019 Update n vi iu khin ng h thi gian thc DS1307

    16/20

    Gii thch lu chnh ny: Bt u, chng trnh s gi chng trnh con c d liu tcon DS1307 vi chun giao tip I2C bng phng php c trnh by c th mc 4(thut ton giao tip), sau , s gi chng trnh con qut Led 7 on hin th 6 s: 2s hin th gi tr ca Gi, 2 s hin th gi tr ca Pht, 2 s hin th gi tr ca Giy. Nuphm MODE (chn ch ci t) khng c nhn th vng lp ca chng trnh ny schy v tn. Nu phm MODE c nhn, n s nhy ti chng trnh con ci t gihay pht cn ty thuc vo s ln nhn phm MODE. Sau y ta i vo chi tit ca tng

    khi nh:

    C D LIU T DS1307 LU VO TRONG RAM CA 89S52 Xem lu chngtrnh nh hnh di. y, cc chng trnh con nh hn, chng hn nh: CTCSEND_START, SEND_STOP, SEND_BYTE, v.v. c cp n trong mc 4(thut ton giao tip c cp trn).

  • 8/3/2019 Update n vi iu khin ng h thi gian thc DS1307

    17/20

    VII, HIN TH BNG PHNG PHP QUT LED 7 ON

  • 8/3/2019 Update n vi iu khin ng h thi gian thc DS1307

    18/20

    VIII, CI T THI GIANTrong lu gii thut trn hnhtrn[img]http://files.myopera.com/PeterLeDucAn/blog/mach-dong-ho-dung-hinh%2021.JPG[/img], cho chng ta thy, vng lp ca chng trnh s chy v tn cho nkhi c phm MODE c n xung. Khi , n nhy n CTC gii quyt vic ci tthi gian. Lu gii thut ca CTC x l ci t phm c th hin hnh

  • 8/3/2019 Update n vi iu khin ng h thi gian thc DS1307

    19/20

    Lu CTC ci t gi CTC ci t pht cng c nguyn tc tng t nh ci t ginn khng c ni ra y. Nhn vo lu chng ta thy, ThanhGhi=02H, l a chca thanh ghi Gi trong con DS1307, nh vy, mc ch ca vic nh ngha nhThanhGhi l xc nh a ch thay i gi tr trong nh RAM ca con DS1307. CTCci t gi s lp v tn v CTC hin thi gi s ch cho hin th 2 Led 7 on, ch hin thgi trong khi ci t, tt c cc n Led cn li u tt ht. Trong khi CTC ci t ang

    chy v tn, nu c phm INC hoc DEC c nhn th n s nhy n CTC tng hocgim ty vo phm c nhn. CTC tng gi c ch ra hinh 22 bn di y, nguyntc ca CTC gim gi cng nh vy.

  • 8/3/2019 Update n vi iu khin ng h thi gian thc DS1307

    20/20

    Lu CTC tng gi Nu nhn phm tng qu 23, th chng trnh s t thi gian li gitr l 00h.

    the end!