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

download Update đồ án vi điều khiển đồng hồ thời gian thực DS1307

of 20

Transcript of Update đồ án vi điều khiển đồng hồ thời gian thực DS1307

  • 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!