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

* 36285: 24C08的问题

   wuxi3000 
wuxi3000发表的帖子 

 24C08的问题
24C08的问题   
我写的个24C08的测试程序,:在24C08的01H位置写入#08H,然后读出来送P0,P0接的是数码管

可是很怪: 我在开发板上用仿真器单步运行输出数据在数码管上显示OK,而全速运行,就好像死掉了,

我有测试过:08_ACK子程序,把"JC  $ "此句干掉,全速运行就可以.

为什么加上这句,单步可以,全速不行呢????
SCL EQU P2.2
   SDA EQU P2.3
   ORG 0000H
      AJMP MAIN
      ORG 0030H
MAIN: ACALL C08_START   /*发送开始信号*/
      MOV A,#0A0H    /*发送物理器件地址信号*/
   ACALL C08_WHITE
   ACALL C08_ACK       /*应答信号*/
   MOV A,#01H    /*发送要写的RAM地址*/
   ACALL C08_WHITE
   ACALL C08_ACK       /*应答信号*/
   MOV A,#08H    /*发送#08H数据*/     
   ACALL C08_WHITE   
   ACALL C08_ACK       /*应答信号*/
   ACALL C08_STOP   /*停止信号*/

   
   
   ACALL C08_START   /*发送开始信号*/
   MOV A,#0A0H    /*发送物理器件地址信号*/
   ACALL C08_WHITE
   ACALL C08_ACK       /*应答信号*/
   MOV A,#01H    /*伪写操作*/
   ACALL C08_WHITE   
   ACALL C08_ACK       /*应答信号*/
   ACALL C08_START
   MOV A,#0A1H         /*发送读物理器件地址信号*/
   ACALL C08_WHITE
   ACALL C08_ACK
   ACALL C08_READ      /*读数据*/
   MOV  P0,A
   SETB P3.7
   CLR P3.7
   LJMP MAIN

C08_START:SETB SDA
          SETB SCL
    CLR  SDA
    CLR  SCL
    RET
C08_WHITE:
          MOV R0,#08
LOOP:     RLC A
          MOV SDA,C
    SETB SCL
    CLR SCL
    DJNZ R0,LOOP
    RET
C08_ACK:  SETB SDA
          SETB SCL
    MOV C,SDA
    JC  $ 
          CLR SCL
    RET
C08_READ:
          MOV R0,#08
LOOP1:    SETB SCL
          MOV C,SDA
    RLC A
    CLR SCL 
    DJNZ R0,LOOP1
    RET

C08_STOP: 
          CLR SDA
    SETB SCL
    SETB SDA
    CLR SCL
    RET
          END 




发表时间:2008年12月16日16:40:10

  
回复该帖

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

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

[上一篇帖子]:1heheshe0518@yahoo.com.cn 非常感谢
[下一篇帖子]:[求助]老择:       你好