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

* 63919: 24C02为何仅能连续存入28个字节

   guest 
guest发表的帖子 

 请看
LO24CXXX_ADDR EQU 08H
        RW24CXXX_TIMES EQU 09H
BEGIN:
        MOV SP,#40H
         

WRITE_XIANGXICHENGJIAO1:                ;RO,RAM为写入地址,LO24CXXX为24C02写入地址
        MOV R0,#10H
        MOV LO24CXXX_ADDR,#00H          ;写24C02 00H-08H的数据
        MOV RW24CXXX_TIMES,#08
        LCALL WRITE_24C02
WRITE_XIANGXICHENGJIAO2:
        MOV R0,#18H
        MOV LO24CXXX_ADDR,#08H          ;写24C02 08H-0FH的数据
        MOV RW24CXXX_TIMES,#08
        LCALL WRITE_24C02
                                        ;如果需要再写,则地址和,R0设置一下就可以连续写入60个BYTE
                                             
        AJMP $     
        
        
        ;这里是连续写入多字节数据
WRITE_24C02:
              
WRITE_24C02PER:
               CLR C
               LCALL START_BIT        ;初始化
               
               MOV A,#01H
               RLC A
               ADD A,#0A0H            ;
               LCALL  WRITE_BIT       ;送出写控制字
              
               MOV A,LO24CXXX_ADDR      ;把低地址送入A中
               LCALL WRITE_BIT
              
WRITE_BYTE:    MOV A,@R0           ;向24CXXX写入单个字节
               LCALL   WRITE_BIT   ;写入数据
               INC R0
               LCALL DELAY_24
               DJNZ RW24CXXX_TIMES,WRITE_BYTE
               LCALL STOP_BIT      ;停止写入数据
WRITE_ENDDING: LCALL DELAY2MS_24
               RET

START_BIT:      NOP            ;开始位
                SETB SLK_24CXXX
                SETB SDA_24CXXX
                LCALL DELAY_24
                CLR SDA_24CXXX
                LCALL DELAY_24
                RET
                


WRITE_BIT:      CLR C
                MOV   R7,#08H  ;循环次数
WRITE_LOP:      NOP
                CLR SLK_24CXXX
                NOP
                RLC A
                MOV SDA_24CXXX,C
                NOP
                SETB SLK_24CXXX
                NOP
                DJNZ R7,WRITE_LOP
                CLR SLK_24CXXX            ;应答发送请求
                lCALL DELAY_24
                SETB SLK_24CXXX
                lCALL DELAY_24
                CLR SLK_24CXXX
                LCALL DELAY_24
                RET
                
                
DELAY_25:      MOV R4,#00H               ;以下为延时
               MOV R5,#04H
               AJMP DELAY2_24

DELAY_24:      MOV R4,#03H
               MOV R5,#01H
               AJMP DELAY2_24

DELAY2MS_24:
               MOV    R4,#00H
               MOV    R5,#06H                   ;20ms延时
DELAY2_24:     DJNZ   R4,DELAY2_24
               DJNZ   R5,DELAY2_24
               RET

发表时间:2004年10月7日15:16:33

  
回复该帖

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

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

  63959.[详细]老兄这么帮忙,我真是太感激了,不过我还没有理解,我看后再请教,谢谢!
摘要:老兄这么帮忙,我真是太感激了,不过我还没有理解,我看后再请教,谢谢!......(68字)
- [zhongqiu][1049次] 2004年10月8日

  64004.[详细]承蒙各位老兄关照,我编了一个程序,请务必指教一下该程序的问题在24C02的连续写入出现的问题,传口..
摘要:承蒙各位老兄关照,我编了一个程序,请务必指教一下 该程序的问题在24C02的连续写入出现的问题,传口没有问题,目前如果仅向24C02写入00H-07H(即块写入中的第一块)则正常接收,计数正常,但一旦写入第二块,第三块等等,则往后......(5449字)
- [zhongqiu][1136次] 2004年10月9日

[上一篇帖子]:自己顶一顶。
[下一篇帖子]:居然看都没人看一眼