標(biāo)題: 搞定DS1302為什么老是讀出00H 事實(shí)勝于雄辯 [打印本頁(yè)]

作者: hongniu    時(shí)間: 2015-6-23 20:53
標(biāo)題: 搞定DS1302為什么老是讀出00H 事實(shí)勝于雄辯
DS1302為什么老是讀出00H?是寫沒(méi)寫進(jìn)去?還是讀沒(méi)讀出來(lái)?哈哈,如果寫不進(jìn)去會(huì)讀出一串FFH,如果讀出問(wèn)題的話,也不會(huì)是00H,昨夜編好實(shí)驗(yàn),無(wú)果,甚怒!關(guān)機(jī)寬衣,忽覺(jué)大事不好,莫非我的循環(huán)太大了?那會(huì)導(dǎo)致一直在寫00H,一直在讀00H正好與實(shí)驗(yàn)結(jié)果吻合,無(wú)奈舍友下寢,時(shí)間太晚,不好開(kāi)機(jī)打擾,意覺(jué)明日復(fù)戰(zhàn),遂罷!早至工地,連工示之至東門待人!吾遂往,無(wú)事!思昨夜程序,應(yīng)如是!至響歸,開(kāi)機(jī),改小循環(huán),波特率9600寫入,果如是!大喜!遂作此篇!曰:事實(shí)勝于雄辯!
;美國(guó)達(dá)拉斯的實(shí)時(shí)時(shí)鐘DS1302
ORG 0000H
CE EQU P3.5
IO EQU P3.3
SCLK EQU P3.4
AJMP MAIN
ORG 0030H
MAIN:
     LCALL WRITE1302
ppp: LCALL READ1302  ;注意,這里是第一遍寫入,循環(huán)不能調(diào)到main,否則,一直在寫你永遠(yuǎn)讀不出時(shí)鐘哈哈哈,終于成功了!
  MOV P0,A
SJMP ppp

WRITE1302:MOV R1,#8
          CLR CE
          CLR SCLK
    SETB CE
    NOP
    NOP
    NOP
    NOP ;復(fù)位1302
    MOV A,#80H  ;寫控制指令
     LCALL WRITE
   MOV A,#00H
   MOV R1,#8                 
   LCALL WRITE
   RET
WRITE: RRC A
    MOV IO,C
    NOP
    NOP
    SETB SCLK
    NOP
    NOP
    NOP
    CLR SCLK
    NOP
    NOP
    DJNZ R1,WRITE
    RET
READ1302:MOV R1,#8
          CLR CE
          CLR SCLK
    SETB CE
    NOP
    NOP
    NOP
    NOP
    MOV A,#81H
    LCALL WRITE
    LCALL READ
    RET
READ:  MOV R1,#8
  SETB SCLK
  NOP
  NOP
  NOP
RED:    CLR SCLK
  NOP
  MOV C,IO
  RRC A
  NOP
  NOP
  SETB SCLK
  NOP
  NOP
  DJNZ R1,RED
  RET
END




作者: amchina    時(shí)間: 2015-6-24 07:40
和我一樣,是新手,那個(gè)地方要循環(huán)都不知道




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1