24c02编程怎么编?

来源:百度知道 编辑:UC知道 时间:2024/05/26 10:46:18

;SDA EQU P1.6 ;(你可以根据你的情况变更引脚)
;SCL EQU P1.7
;D15US,D1MS子程序分别为15uS和1mS延时程序,请根据你的晶体自行编写。
;**************************************************************
;24C01写初始.(传递的数据在R7中).
;**************************************************************
sda bit p1.7
scl bit p1.6

org 0000
ajmp star
org 00040

star:
mov p3,#00H
mov 30H,#01H
mov 31h,#88h

nop
nop
nop
acall at2401w
nop
nop
nop
nop
nop

ajmp $

AT2401W: MOV P1,#0FFH ;置SDA/SCL=1
LCALL R2STAR ;写开始状态字
MOV R7,#10100000B ;SET 2401=写
LCALL R2SEND ;送
MOV ACC,30H ;30H指向2401数据的起始地址
MOV R7,ACC ;将要写2401的起始地址送到R7
LCALL R2SEND
MOV ACC,31H ;取第一个号
MOV R7,ACC ;数据传递到R7
LCALL R2SEND ;写具体号码
LCALL R2STOP ;停止
LCALL D1MS ;等待一定时间使24C01内部写完成
RET
;------------------------------------------
;写到2401 本程序开始及结束SDA & SCL 均=0 ,发送数据在R7
;---------