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

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

  
楼 主:laoyu 2006年10月19日11:56
 我这里有一个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

  
2楼:lzf2008 2006年10月20日10:40
 不要这样吧!
晕,现在还使用汇编呀,去网上下一个C ,IIC 的EEPROM 程序到处都可以下!

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

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


[上一篇主题]:[分享]你知道π的值吗?

[下一篇主题]:请问哪位高手知道7404和74hc04的区别?应用时应该注意些什么?谢谢阿!!!