导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→我这里有一个24C16的程序,但是不能运行阿,请各位帮我看看

* 98736: 我这里有一个24C16的程序,但是不能运行阿,请各位帮我看看!!!!?

   laoyu 
laoyu发表的帖子 

 我这里有一个24C16的程序,但是不能运行阿,请各位帮我看看!!!!?
 ORG 0000H
 AJMP MAIN
 ORG 0100H
MAIN: 
SCL EQU P1.0    ;定义端口
SDA EQU P1.1
 MOV SP,#40H
 MOV DPTR,#DIS_CODE
 MOV R2,#00H  ;计算表格中调用的数
 ACALL START
WRITE: MOV A,#0A0H
 ACALL SEND
 ACALL ACKC
 MOV A,#01H
 ACALL SEND
 ACALL ACKC
WRT: MOV A,R2
 MOVC A,@A+DPTR
 ACALL SEND
 ACALL ACKC
 INC R2
 CJNE R2,#08H,WRT
 ACALL STOP
 ACALL DELAY
READ: ACALL START
 MOV A,#0A1H
 ACALL SEND
 ACALL ACKC
 MOV A,#01H
 ACALL SEND
 ACALL ACKC
 MOV R1,#70H
KAI: ACALL REV
 CLR C
 ACALL ACKS
 MOV @R1,A
 INC R1
 CJNE R1,#78H,KAI
 ACALL STOP 
XIANSHI:MOV R1,#70H
JIA: MOV A,@R1
 MOV P0,A
 INC R1
 ACALL DEL50MS
 CJNE R1,#78H,JIA
 SJMP XIANSHI

;-----------------------------------;
;开始信号的传递
START: CLR SCL 
 SETB SDA
        ACALL DELAY
 SETB SCL
 ACALL DELAY
 CLR SDA
 ACALL DELAY 
 CLR SCL
 RET 
;停止信号的传递
STOP: CLR SCL
 CLR SDA
 ACALL DELAY
 SETB SCL
 ACALL DELAY
 SETB SDA
 ACALL DELAY
 RET
;发送一个字节
SEND: MOV R0,#08H
SEND0: RLC A
 MOV SDA,C
 SETB SCL
 ACALL DELAY
 CLR SCL
 DJNZ R0,SEND0
 SETB SDA
 RET 
;接受一个字节
REV: MOV R0,#08H
REV0: SETB SCL
 MOV C,SDA
 RLC A
 CLR SCL
 DJNZ R0,REV0
 RET
;接受一个应答位
ACKC: SETB SCL
 ACALL DELAY
 MOV C,SDA
 CLR SCL
 RET
;发送一个应答位
ACKS: SETB SCL
 ACALL DELAY
 MOV SDA,C
 CLR SCL
 RET
;延时程序
DELAY: NOP 
 NOP 
 NOP
 RET
;------------------------------;
DEL50MS:MOV R5,#50
DEL2: MOV R6,#40
DEL1: MOV R7,#250
DEL: DJNZ R7,DEL
 DJNZ R6,DEL1
 DJNZ R5,DEL2
 RET 
DIS_CODE:
; 写入到AT24C01的数据串

 DB 07EH
 DB 0BDH
 DB 0DBH
 DB 0E7H
 DB 0DBH
 DB 0BDH
 DB 07EH
 DB 0FFH


 END

发表时间:2006年10月19日11:56:11

  
回复该帖

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

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

  98778.[详细]不要这样吧!
摘要:晕,现在还使用汇编呀,去网上下一个C ,IIC 的EEPROM 程序到处都可以下!......(65字)
- [lzf2008][856次] 2006年10月20日

[上一篇帖子]:[分享]你知道π的值吗?你知道π的值吗? 我这里可以计算都安30000位.还有源代码.kuz
[下一篇帖子]:请问哪位高手知道7404和74hc04的区别?应用时应该注意些什么?谢谢阿!!!谢谢阿!