📄 24c16.hpl
字号:
; Orange programmer module v2.0
; (c) 1999 Alex Plusov
; (c) June 03. 2000 V. G.
; CHIP=24C04 (512x8), 24C08 (1024x8), 24C16 (2048x8)
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=4 ; one cycle time
[_START]
SDA=1,SCL=1,SDA=0,SCL=0 ; Start 10
[_STOP]
SDA=0,SCL=1,SDA=1,SCL=0 ; Stop 01
[INIT]
A0=0,A1=0,A2=0
WP=0
[READ]
_START
R0=0xA
LOOP=(3,0) {SDA=R0[I],SCL=1,SCL=0} ; out 4 bits DeviceAdr
LOOP=(10,8){SDA=ADR[I],SCL=1,SCL=0} ; out 3 bits Hi(Adr)
SDA=0,SCL=1,SCL=0 ; out 1 bit, 0=Write Mode
SDA=1,SCL=1,SDA?0,SCL=0 ; ACKN check
; end out DeviceAdr, Hi(Adr), Mode
LOOP=(7,0) {SDA=ADR[I],SCL=1,SCL=0} ; out 8 bits Lo(Adr)
SDA=1,SCL=1,SDA?0,SCL=0 ; ACKN check
; end out Lo(Adr)
_START
R0=0xA
LOOP=(3,0) {SDA=R0[I],SCL=1,SCL=0} ; out 4 bits DeviceAdr
LOOP=(10,8) {SDA=ADR[I],SCL=1,SCL=0} ; out 3 bits Hi(Adr)
SDA=1,SCL=1,SCL=0 ; out 1 bit, 1=Read Mode
SDA=1,SCL=1,SDA?0,SCL=0 ; ACKN check
; end out DeviceSelect
LOOP=(7,0) {SCL=1,DATA[I]=SDA,SCL=0} ; read byte Data
SDA=1,SCL=1,SCL=0 ; out master NO_ACKN
_STOP
[WRITE]
_START
R0=0xA
LOOP=(3,0) {SDA=R0[I],SCL=1,SCL=0} ; out 4 bits DeviceAdr
LOOP=(10,8) {SDA=ADR[I],SCL=1,SCL=0} ; out 3 bits Hi(Adr)
SDA=0,SCL=1,SCL=0 ; out 1 bit, 0=Write Mode
SDA=1,SCL=1,SDA?0,SCL=0 ; ACKN check
; end out DeviceAdr, Hi(Adr), Mode
LOOP=(7,0) {SDA=ADR[I],SCL=1,SCL=0} ; out 8 bits Lo(Adr)
SDA=1,SCL=1,SDA?0,SCL=0 ; ACKN check
; end out Lo(Adr)
LOOP=(7,0) {SDA=DATA[I],SCL=1,SCL=0} ; out byte Data
SDA=1,SCL=1,SDA?0,SCL=0 ; ACKN check
; end out Data
_STOP
P=10000 ; delay: (Write Time)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -