导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→遇到奇怪问题[ningling_21]

 *第28655篇: 遇到奇怪问题

  
楼 主:ningling_21 2008年7月2日22:47
 遇到奇怪问题
遇到奇怪问题
我用AT89S52和DS1307(I2C接口的时钟芯片)和LCD模块做时钟显示,配有按键,但是有个怪现象,显示的时间是从时钟芯片中读出的,但是走时2个小时就会有时间偏差,一般会有50多分钟,走6-7个小时,时间停住了,硬件实在没什么问题,希望高手指点迷津,不胜感激。
I2C读写代码如下:
P3.0-------SCL
P3.1-------SDA
;-----------------
wr_byte:  mov r7,#8
          clr c
          mov a,i2c_wdata
          rlc a
   wlp:   jnb cy,wr00
          setb vsda
          ajmp wp1
   wr00:  clr vsda
   wp1:   nop
          nop                         ;add 2008-4-30
          nop                         ;add 2008-4-30
          setb vscl
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-4-30
          nop                         ;add 2008-4-30
          clr vscl
          nop
          rlc a
          djnz r7,wlp
          setb vsda
          nop
          setb vscl
          clr flag1  ;nop
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop      
          nop      
          mov c,vsda;
          nop       
          jnc cend0 ;
          setb flag1 ;
cend0:   clr vscl  
          ret
;-----------------------

read_data:clr c
          mov i2c_rdata,#00   
          mov r7,#8
  lop1:   setb vsda            ;input
          nop
          nop                  ;add 2008-4-30
          setb vscl
          nop                  ;nop
          nop                  ;add 2008-4-30
          nop                  ;nop
          nop                  ;nop
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                  ;nop
          mov c,vsda           ;start read
          mov a,i2c_rdata      ;nop
          rlc a                ;nop
          mov i2c_rdata,a      ;nop
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop                         ;add 2008-5-15
          nop
          clr vscl             ;
          nop                  ;nop
          djnz r7,lop1
          ret

  
2楼:ningling_21 2008年7月3日21:49
 请问高手怎么解决
请问高手怎么解决?
  
3楼:peaceliu 2008年7月5日11:06
 检查一下晶振
检查一下晶振。晶振是32.768K的吗?
  
4楼:ningling_21 2008年7月5日20:28
 是32.768K的晶振
正是这个晶振,原来在一个用三星的MCU做的款产品上就用这个电路,没有什么问题,
用51的MCU来实现这个功能怎么会出问题呢,难道51的MCU的口线驱动能力有问题?

>>>>>>对该主题发表你的看法

本主题贴数4,分页: [第1页]


[上一篇主题]:超值提供国内性价比最好的2410开发板,带gprs接口和实验教程

[下一篇主题]:世界上最小的串口转以太网模块