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

* 51884: 遇到奇怪问题

   ningling_21 
ningling_21发表的帖子 

 遇到奇怪问题
遇到奇怪问题
我用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

发表时间:2008年7月2日22:47:59

  
回复该帖

本主题共有 4 帖,分页:>>>>>该主题的所有内容[4]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  51983.[详细]请问高手怎么解决
摘要:请问高手怎么解决?......(18字)
- [ningling_21][619次] 2008年7月3日

  52140.[详细]检查一下晶振
摘要:检查一下晶振。晶振是32.768K的吗?......(33字)
- [peaceliu][716次] 2008年7月5日

  52208.[详细]是32.768K的晶振
摘要:正是这个晶振,原来在一个用三星的MCU做的款产品上就用这个电路,没有什么问题, 用51的MCU来实现这个功能怎么会出问题呢,难道51的MCU的口线驱动能力有问题?......(162字)
- [ningling_21][685次] 2008年7月5日

[上一篇帖子]:超值提供国内性价比最好的2410开发板,带gprs接口和实验教程[upload=jpg]upload
[下一篇帖子]:世界上最小的串口转以太网模块CONEXTOP是一个源自德国的设备联网产品和方案供应商,有着超过10年