《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 業界動態 > 串行實時時鐘芯片DSl302程序設計中的問題與對策

串行實時時鐘芯片DSl302程序設計中的問題與對策

2009-02-05
作者:樊貴卿1 李慶武1 靳建華1 2

  摘 要: 指出了串行實時時鐘芯片DSl302程序設計中幾個易被疏忽而導致錯誤的問題,分析了問題的原因,并給出了解決問題的方法。
  關鍵詞: 串行時鐘 程序設計 問題 原因 解決方法


  美國Dallas公司推出的串行接口實時時鐘芯片DSl302可對時鐘芯片備份電池進行涓流充電。由于該芯片具有體積小、功耗低、接口容易、占用CPU I/0口線少等主要特點,故該芯片可作為實時時鐘,廣泛應用于智能化儀器儀表中。
  筆者在調試中發現,在對DSl302編程中有幾個問題易被疏忽而導致錯誤,現提供給讀者參考。
1 讀操作出現的錯誤
  按照參考文獻[2]的讀操作程序框圖和參考文獻[1]、[2]所敘述的可知:單字節讀操作每次需16個時鐘,地址字節在前8個時鐘周期的上升沿輸入,而數據字節在后8個時鐘周期的下降沿輸出。據此結合圖1的硬件連接圖編制出了如下的單字節讀程序:


  DS_READ:SETB   P1.2  ??;令=0。
    CLR   P1.1   ;令SCLK=0。
    CLR   P1.2   ;令=1,啟動芯片。
    LCALL DS_WSUB  ??;寫8位地址。
    LCALL DS_RSUB  ??;讀出8位數據。
    RET
  DS_WSUB:MOV   R7,#08H
  WL00P: RRC   A    ;A為地址字節。
    MOV   P1.0,C
    SETB   P1.1 ?。辉跁r鐘上升沿
    NOP     ??;輸入地址字節。
    CLR   P1.1
    DJNZ R7,WL00P
    RET
  DS_RSUB:SETB   P1.0   ;為讀數據作準備。
    MOV R7,#08H
  RL00P:SETB   P1.1
    NOP
    CLR  P1.1  ;在第9個正脈沖的下
    MOV  C,P1.0 ??;降沿開始輸出數據
    RRC  A   ??;A中為讀出的數據。
    DJNZ R7,RL00P
    RET
  若使用如下程序對DSl302的RAM1(其內容為5AH)進行讀操作
  READ:MOV A,#11000101B ;RAMl單元的讀地址。
     LCAll DS_READ ;調用讀子程序。
  則程序執行后A中的數據為2DH,顯然讀出的數據不正確。若再使用一條RL A指令調整后,則A中為5AH,結果才正確。由此說明:使用上述程序讀出的RAM1單元中的第0位數據實為第1位數據,讀出的第7位數據實為第0位數據。
  經筆者仔細研究時序圖和多次試驗得知,問題的原因在于:對于讀操作時序,在SCLK出現第8個正脈沖時,上升沿輸入地址字節的最后一位數據,而在此正脈沖的下降沿就要輸出數據字節的第0位數據。然而筆者的程序中是在第9個正脈沖的下降沿才誤認為輸出了數據字節的第0位數據,此位數據事實上是第二個下降沿輸出的,故實為數據字節的第1位數據。經筆者實驗:只要保持為高電平,如果超過8個下降沿,它們將重新從第0位輸出數據位,因程序中輸出的最后一位數據位,是第9個下降沿輸出的數據位,故實為數據字節的第0位數據位。
  由此可見,單字節讀操作的時序圖如改為圖2所示時序圖,則讀者較容易理解可避免發生上述編程錯誤。


  只要將上述的DS_RSUB子程序改為如下的子程序即可解決上述問題:
  DS_RSUBl:SETB P1.0  ;為讀數據作準備
    MOV R7,#08H
  RL00P:  CLR P1.1    ;SCLK第8個正脈沖的
    MOV C,P1.0 ??;下降沿開始輸出數據。
    RAC
    SETB   P1.1
    DJNZ   R7,RL00P
    RET
2 禁止涓流充電出現的錯誤
  涓流充電寄存器(TCR)控制著DSl302的涓流充電特性。據參考文獻[1]、[2]介紹,寄存器的位(TCS)4~7決定著是否具備充電性能。僅在1010編碼的條件下才具備充電性能,其它編碼組合不允許充電。位2和3(DS)則在VCC2和VCC1之間選擇是一個還是兩個二極管串入其中。如果編碼是01,選擇一個二極管;如果編碼是10,選擇兩個;其它編碼將禁止充電。該寄存器的0和l位(RS)用于選擇與二極管相串聯的電阻值,其中編碼01為2kΩ;10為4kΩ;11為8kΩ;而00將不允許充電。筆者編制了如下的允許涓流充電的控制程序(選擇一個二極管,充電限流電阻為4kΩ):
  SETB   P1.2   ??;令=0
  CLR   P1.2     ;令SCLK=0
  CLR   P1.2   ??;令=1
  MOV   A,#90H   ?。籘CR的寫地址
  LCALL DS_WSUB
  MOV   A,#10100110B  ??;TCR的命令
  LCALL DS_WSUB
  用萬用表串入Vcc1與可充電池之間,執行程序后,則有電流流過萬用表,表示充電正常。筆者通過將上述程序的第6句改為:MOV A,#10100010B,即置DS為00來禁止涓流充電器工作。執行程序后,在Vcc1與電池之間串入萬用表,則仍有電流流過,表示尚未禁止充電。若將第6語句改為:MOV A,#10101110B,即置DS為11,執行上述程序后情況仍如此。若將第6語句改為:
  MOV A,#01010110B 即TCS≠1010
  或:  MOV A,#10100100B 即RS=00則充電被禁止。
  筆者誤認為芯片損壞,換上另一新購置的芯片,結果仍如此。隨即筆者取下圖1所示電路中的可充電池,換上一標稱為10kΩ的電阻對芯片進行了測試,測試結果如表1所示VCC2=5V。


  由此可見,當涓流充電控制寄存器中的DS位為00和11時并不能禁止充電,而是選擇了一個二極管充電,這說明參考文獻中介紹的有誤。若要想禁止充電器充電,應將第6句改為:MOV A,#0101XX00B 即TCS≠1010,RS=00,這樣,就能雙保險地禁止充電。
3 受干擾時鐘/日歷信息出現的錯誤
  筆者將DS1302應用于某產品中,發現系統受到干擾時,有時其時鐘停振不能正常工作,此時的時鐘/日歷信息也被修改。
  經分析得知:系統受到干擾程序飛跑,在看門狗復位前,CPU正好執行寫程序將寫保護寄存器的最高位置0為允許寫(實際上,在系統校時程序之后已將其置為1禁止寫),修改了時鐘/日歷信息且使秒寄存器的最高位置1,致使時鐘停振出現錯誤。
  為避免此類錯誤的產生,筆者采用的方法是:在寫程序中增加了某一檢測條件,此條件為系統中某一口線上的電平,低電平條件滿足。只有在實時校時過程中,才通過手動使此口線為低電平,實時校時過程完成后,又通過手動使此口線為高電平。這樣只有實時校時過程中,才允許修改時鐘/日歷信息,因此起到了時鐘/日歷信息的寫保護作用。
參考文獻
1 王明順,吳省.可涓流充電的串行實時時鐘芯片DS1302及應用設計.電子技術應用.1996(10)
2 李正軍,蔣閱峰.DS1302串行實時時鐘及其在智能電表中的應用.電子儀器儀表用戶.1996(2)

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产午夜精品一区二区三区欧美| 国产在线拍偷自揄拍精品| 亚洲一二三四区| 性视频1819p久久| av成人国产| 在线免费观看日韩欧美| 欧美日韩视频专区在线播放 | 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 99精品热视频| 亚洲黄色av| 欧美诱惑福利视频| 亚洲午夜激情| 亚洲美女av网站| 亚洲国产精品久久| 精品成人国产| 国产午夜精品久久久| 国产精品日日摸夜夜摸av| 欧美日韩在线一区二区| 欧美成人四级电影| 久色成人在线| 久久亚洲精品中文字幕冲田杏梨 | 久久国产精品久久国产精品| 亚洲一区在线播放| 中文精品99久久国产香蕉| 日韩视频在线免费观看| 亚洲人成人77777线观看| 久久精品91久久香蕉加勒比| 午夜久久美女| 午夜一级久久| 欧美亚洲视频在线看网址| 亚洲欧美制服另类日韩| 亚洲男女自偷自拍| 一区二区欧美日韩视频| 亚洲人成在线观看网站高清| 亚洲激情电影中文字幕| 亚洲第一精品电影| 亚洲国产精品第一区二区| 亚洲成人影音| 亚洲国内精品在线| 亚洲国产一区二区视频| 91久久久在线| 亚洲精品资源| 99视频在线精品国自产拍免费观看| 亚洲激情视频在线| 亚洲精品视频一区| 99re热这里只有精品视频| 亚洲人成网在线播放| 亚洲欧洲精品一区二区三区波多野1战4 | 国产亚洲第一区| 韩日精品视频| 在线观看视频欧美| 亚洲欧洲美洲综合色网| 亚洲乱码国产乱码精品精天堂 | 亚洲国产美女| 亚洲国产经典视频| 亚洲精品视频一区二区三区| 日韩一区二区精品视频| 一二三四社区欧美黄| 亚洲一区二区三区免费在线观看 | 亚洲精品久久久一区二区三区| 亚洲国产婷婷香蕉久久久久久| 亚洲精品免费一二三区| 99re热这里只有精品视频| 亚洲小说欧美另类社区| 性欧美在线看片a免费观看| 久久爱www久久做| 免费在线观看一区二区| 欧美日韩成人在线视频| 国产精品美女主播在线观看纯欲| 国产精品有限公司| 精品成人一区二区三区四区| 亚洲日本成人| 亚洲尤物在线视频观看| 久久精品一本| 最新69国产成人精品视频免费| 一区二区三区毛片| 欧美在线看片| 欧美成人三级在线| 国产精品入口夜色视频大尺度| 国语精品中文字幕| 亚洲国产精品va| 亚洲主播在线观看| 亚洲激情婷婷| 亚洲欧美色一区| 欧美 日韩 国产精品免费观看| 欧美色道久久88综合亚洲精品| 国产精品欧美日韩久久| 尤物在线观看一区| 亚洲一级影院| 最新亚洲电影| 亚洲影视在线| 欧美aa国产视频| 国产精品久久久久久久久借妻| 黄色成人av网站| 亚洲亚洲精品在线观看| 亚洲国产精品尤物yw在线观看| 亚洲午夜羞羞片| 女同一区二区| 国产伦理精品不卡| 亚洲精品一区二区网址 | 99视频+国产日韩欧美| 亚洲图片欧美日产| 亚洲日本欧美在线| 久久五月婷婷丁香社区| 国产区精品在线观看| 一本久久综合亚洲鲁鲁五月天 | 9久re热视频在线精品| 久久婷婷麻豆| 激情成人亚洲| 久久黄色小说| 久久久水蜜桃| 国产一区二区三区在线免费观看 | 亚洲精品小视频| 欧美福利影院| 亚洲国产精品美女| 亚洲人成绝费网站色www| 美女主播一区| 亚洲国产欧美不卡在线观看| 亚洲人成在线播放| 欧美激情亚洲综合一区| 亚洲福利久久| 亚洲茄子视频| 欧美精品一区二区三区在线看午夜| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲激情视频在线| 欧美成人一区二免费视频软件| 在线播放日韩| 亚洲日本欧美在线| 欧美日本亚洲韩国国产| 日韩一级在线观看| 亚洲欧美在线x视频| 国产精品网站在线观看| 午夜精品999| 久久蜜桃香蕉精品一区二区三区| 国外成人在线视频网站| 亚洲电影免费观看高清| 欧美成人激情视频免费观看| 亚洲国产色一区| 亚洲无限av看| 国产免费成人| 久久精品欧美日韩| 欧美高清视频免费观看| 亚洲精品一区在线观看香蕉| 亚洲午夜羞羞片| 国产美女搞久久| 亚洲激情二区| 欧美三级电影一区| 亚洲性线免费观看视频成熟| 久久精品成人一区二区三区| 在线成人小视频| 一本色道久久综合亚洲精品高清 | 亚洲女性喷水在线观看一区| 久久精品一区二区国产| 亚洲高清在线播放| 亚洲一区三区在线观看| 国产亚洲激情视频在线| 亚洲欧洲免费视频| 欧美四级在线观看| 久久成人在线| 欧美精品97| 亚洲自拍偷拍麻豆| 美女视频黄免费的久久| 日韩视频免费大全中文字幕| 欧美淫片网站| 亚洲第一福利视频| 亚洲欧美不卡| 在线播放日韩| 亚洲影院污污.| 一色屋精品视频在线看| 亚洲视频中文| 国产视频综合在线| 日韩写真在线| 国产区二精品视| 日韩网站在线看片你懂的| 国产精品最新自拍| 亚洲乱码视频| 国产午夜精品一区理论片飘花| 亚洲精品免费在线播放| 国产精品网站视频| 亚洲三级电影全部在线观看高清| 国产精品久久久久免费a∨大胸| 亚洲第一在线视频| 欧美午夜一区二区| 亚洲精品黄色| 国产女主播一区二区三区| 日韩视频在线一区二区| 国产精品影院在线观看| 亚洲另类黄色| 国产婷婷成人久久av免费高清| 99在线观看免费视频精品观看| 国产一区二区在线免费观看| 亚洲午夜91| 亚洲国产婷婷香蕉久久久久久| 欧美在线视屏 | 亚洲一二三四区| 欧美激情国产日韩精品一区18| 午夜在线电影亚洲一区| 欧美午夜视频| 日韩视频免费| 精品91视频|