《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 業(yè)界動態(tài) > 串行實(shí)時(shí)時(shí)鐘芯片DSl302程序設(shè)計(jì)中的問題與對策

串行實(shí)時(shí)時(shí)鐘芯片DSl302程序設(shè)計(jì)中的問題與對策

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

  摘 要: 指出了串行實(shí)時(shí)時(shí)鐘芯片DSl302程序設(shè)計(jì)中幾個(gè)易被疏忽而導(dǎo)致錯(cuò)誤的問題,分析了問題的原因,并給出了解決問題的方法。
  關(guān)鍵詞: 串行時(shí)鐘 程序設(shè)計(jì) 問題 原因 解決方法


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


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


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


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

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
榴莲视频成人在线观看| 欧美好骚综合网| 亚洲毛片av| 久久精品72免费观看| 亚洲宅男天堂在线观看无病毒| 亚洲三级色网| 亚洲大片免费看| 有坂深雪在线一区| 黄色成人av网| 国产日韩欧美日韩| 国产区日韩欧美| 国产日韩欧美在线播放| 国产欧美69| 国产精品亚洲аv天堂网| 欧美亚男人的天堂| 国产精品久久久久aaaa| 国产精品久久久久av| 国产精品mm| 国产精品一区二区久久精品| 国产精品久久久久aaaa樱花 | 国产精品国产亚洲精品看不卡15| 欧美日韩精品久久久| 欧美日韩伦理在线免费| 欧美系列一区| 国产精品一卡二| 国产视频欧美视频| 国产在线观看一区| 亚洲高清在线精品| 亚洲精选久久| 中日韩高清电影网| 亚洲欧美日韩综合国产aⅴ | 欧美在线视频全部完| 亚洲第一黄网| 亚洲人体一区| 在线视频日韩| 亚洲欧美日韩人成在线播放| 欧美一区二区三区播放老司机| 久久av一区二区三区亚洲| 久久免费黄色| 欧美精品日韩精品| 国产精品乱码久久久久久| 国产亚洲欧美另类中文| 玉米视频成人免费看| 亚洲国产综合91精品麻豆| 一片黄亚洲嫩模| 欧美一级在线视频| 亚洲高清视频中文字幕| 一区二区三区成人| 久久精品国产久精国产思思| 欧美第一黄网免费网站| 国产精品高潮久久| 国产一区二区三区在线观看网站| 亚洲高清不卡在线| 一区二区三区精品视频| 久久大香伊蕉在人线观看热2| 亚洲美女在线看| 欧美亚洲网站| 欧美 日韩 国产精品免费观看| 欧美日韩在线视频一区二区| 国产裸体写真av一区二区| 亚洲成人资源| 亚洲一区二区在| 亚洲精品国精品久久99热| 亚洲欧美日韩国产综合精品二区| 久久手机精品视频| 国产精品qvod| 亚洲福利视频免费观看| 亚洲一区国产一区| 亚洲乱码国产乱码精品精| 欧美一级艳片视频免费观看| 欧美成人蜜桃| 国产日韩欧美中文在线播放| 亚洲精品影院在线观看| 久久成人一区| 亚洲欧美综合另类中字| 欧美黄色小视频| 国产一区二区三区高清在线观看| 日韩午夜在线| 亚洲国产你懂的| 亚洲欧美www| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产精品欧美一区二区三区奶水| 亚洲国产精品一区二区第一页| 亚洲欧美欧美一区二区三区| 99视频精品| 免费av成人在线| 国产日韩欧美电影在线观看| av成人国产| 亚洲日产国产精品| 久久精品观看| 国产精品久久久久久久一区探花| 亚洲国产精品一区二区尤物区| 欧美一区二区三区日韩| 亚洲男人av电影| 欧美日本不卡高清| 亚洲电影成人| 久久成人资源| 久久久久久久久久码影片| 国产精品青草综合久久久久99| 亚洲国产另类久久久精品极度| 欧美一级黄色录像| 亚洲欧美激情精品一区二区| 欧美日本一区二区视频在线观看 | 1204国产成人精品视频| 亚洲曰本av电影| 亚洲一区影音先锋| 欧美日韩午夜在线视频| 亚洲经典在线看| 亚洲欧洲精品一区| 麻豆国产va免费精品高清在线| 国产一区二区成人| 欧美一进一出视频| 久久本道综合色狠狠五月| 国产伦理一区| 午夜亚洲性色福利视频| 欧美一级专区| 国产欧美日韩视频| 午夜精品久久久久久久99黑人 | 欧美综合国产| 国产乱码精品| 亚洲欧美一区二区视频| 欧美一级黄色录像| 国产精品私房写真福利视频| 亚洲调教视频在线观看| 亚洲欧美国产高清va在线播| 国产精品久久久久影院亚瑟| 亚洲视频第一页| 午夜精品久久久久| 国产麻豆精品在线观看| 亚洲制服少妇| 久久精品1区| 极品裸体白嫩激情啪啪国产精品 | 亚洲激情av在线| 欧美成人a∨高清免费观看| 在线成人免费视频| 亚洲免费观看高清在线观看 | 亚洲五月婷婷| 国产精品任我爽爆在线播放| 亚洲欧美美女| 久久亚洲综合网| 亚洲国产高清自拍| 一本久道久久综合婷婷鲸鱼| 欧美日韩一区二区三区免费看| 一区二区冒白浆视频| 午夜在线不卡| 黄色欧美日韩| 99精品99久久久久久宅男| 国产精品福利在线| 久久精品国产精品| 欧美精品自拍| 亚洲一区日本| 久久人人九九| 亚洲日本中文字幕免费在线不卡| 亚洲图色在线| 国产日产亚洲精品系列| 亚洲第一成人在线| 欧美日韩另类综合| 午夜精品久久久久久久蜜桃app| 久久天堂国产精品| 亚洲精品一区二区三区樱花| 亚洲欧美日本精品| 国产在线视频欧美| 99国产精品久久久| 国产精品网站视频| 亚洲激情视频在线播放| 欧美午夜www高清视频| 性做久久久久久| 欧美久久久久久久久久| 亚洲一区精品视频| 麻豆成人综合网| 亚洲视频精选| 美日韩在线观看| 亚洲午夜精品一区二区| 久久裸体艺术| 亚洲免费久久| 久久久无码精品亚洲日韩按摩| 亚洲精品一区在线观看香蕉| 久久精品国产69国产精品亚洲| 亚洲激情av| 久久国产一区| 亚洲精品一区二区网址| 久久久久国产精品www| 亚洲看片一区| 久久久久久电影| 9久re热视频在线精品| 久久综合网络一区二区| 亚洲视频一区二区在线观看| 免费观看一区| 亚洲欧美怡红院| 欧美日本在线一区| 久久精品免费播放| 国产精品久久久久久久久久三级 | 亚洲精选一区二区| 国产麻豆午夜三级精品| 99国产精品久久久| 激情五月综合色婷婷一区二区| 亚洲欧美日韩区| 亚洲精品视频一区二区三区| 久久露脸国产精品| 亚洲欧美另类国产|