📄 24c512.hpl
字号:
; Orange programmer module v2.0
; (c) 1999 Alex Plusov
; CHIP=24C32(4096),24C65(8192,24C128(16384),24C256(32768),24C512(65536)
SOCKET=1 ;"I2C"
PINO=SCL,0
PINO=SDA,1
PINO=WP, 2
PINO=A0, 3
PINO=A1, 4
PINO=A2, 5
PINI=SDA,1
CDELAY=2 ; one cycle time
[INIT]
A0=0,A1=0,A2=0
[READ]
SDA=1,SCL=1,SDA=0,SCL=0 ; start
R0=0xA0
LOOP=(7,0) {SDA=R0[I],SCL=1,SCL=0} ; out 8 bits
SDA=1,SCL=1,SDA?0 ; ack check
SCL=0,SDA=0
LOOP=(15,8) {SDA=ADR[I],SCL=1,SCL=0} ; out 8 bits adr Hi
SDA=1,SCL=1,SDA?0 ; ack check
SCL=0,SDA=0
LOOP=(7,0) {SDA=ADR[I],SCL=1,SCL=0} ; out 8 bits adr Lo
SDA=1,SCL=1,SDA?0 ; ack check
SCL=0,SDA=0
SDA=1,SCL=1,SDA=0,SCL=0 ;start
R0=0xA1
LOOP=(7,0) {SDA=R0[I],SCL=1,SCL=0} ; out 8 bits
SDA=1,SCL=1,SDA?0 ; ack check
SCL=0,SDA=1
LOOP=(7,0){SCL=1,DATA[I]=SDA,SCL=0} ;read byte
SDA=1,SCL=1,SCL=0,SDA=0 ;programmer no ack
SDA=0,SCL=1,SDA=1,SCL=0 ;stop
[WRITE]
WP=0
SDA=1,SCL=1,SDA=0,SCL=0 ;start
R0=0xA0
LOOP=(7,0) {SDA=R0[I],SCL=1,SCL=0} ; out 8 bits
SDA=1,SCL=1,SDA?0 ; ack check
SCL=0,SDA=0
LOOP=(15,8) {SDA=ADR[I],SCL=1,SCL=0} ; out 8 bits adr Hi
SDA=1,SCL=1,SDA?0 ; ack check
SCL=0,SDA=0
LOOP=(7,0) {SDA=ADR[I],SCL=1,SCL=0} ; out 8 bits adr Lo
SDA=1,SCL=1,SDA?0 ; ack check
SCL=0,SDA=0
LOOP=(7,0){SDA=DATA[I],SCL=1,SCL=0} ; write byte
SDA=1,SCL=1,SDA?0 ; ack check
SCL=0,SDA=0
SCL=0,SCL=1,SDA=1 ;stop
P=5000 ; write delay
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -