新建 文本文档.txt

来自「24C256的C51源程序 //ESDA-数据 //ECL」· 文本 代码 · 共 251 行

TXT
251
字号
    24C256心片的读写程序

  scl equ p1.6
  sda equ p1.7
   org 0h
   sjmp main
   
   
   
   org 30h
  main:
   
   ;;;;;;;;;;;;;;;;;
   ;写开始位 ;
   ;;;;;;;;;;;;;;;;;
   
   lcall start
   ;;;;;;;;;;;;;;;;;
   ;写设备起始地址 ;
   ;;;;;;;;;;;;;;;;;
   
   mov a,#0a4h
   mov r3,#08h
  a1: rlc a
   mov sda,c
   setb scl
   lcall delay
   clr scl
   lcall delay
   cpl p1.1
   djnz r3,a1
   setb sda
   lcall delay
   ;;;;;;;;;;;;;;;;;
   ;读发送信号 ;
   ;;;;;;;;;;;;;;;;;
   clr sda
   lcall delay
   setb scl
   lcall delay
   clr scl
   lcall delay
   cpl p1.1
   
   ;;;;;;;;;;;;;;;;;
   ;送 A15-A8地址 ;
   ;;;;;;;;;;;;;;;;;
   mov a,#00h
   mov r3,#08h
  a2: rlc a
   mov sda,c
   setb scl
   lcall delay
   clr scl
   lcall delay
   cpl p1.1
   djnz r3,a2
   setb sda
   ;;;;;;;;;;;;;;;;;
   ;读发送信号 ;
   ;;;;;;;;;;;;;;;;;
   setb scl
   lcall delay
   clr scl
   lcall delay
   cpl p1.1
   ;;;;;;;;;;;;;;;;;
   ;送 A15-A8地址 ;
   ;;;;;;;;;;;;;;;;;
   mov a,#00h
   mov r3,#08h
  a3: rlc a
   mov sda,c
   setb scl
   lcall delay
   clr scl
   lcall delay
   cpl p1.1
   djnz r3,a3
   setb sda
   ;;;;;;;;;;;;;;;;;
   ;读发送信号 ;
   ;;;;;;;;;;;;;;;;;
   setb scl
   lcall delay
   clr scl
   lcall delay
   cpl p1.1
   ;;;;;;;;;;;;;;;;
   ;送8位数据 ;
   ;;;;;;;;;;;;;;;;
   mov a,#05h
   mov r3,#08h
  a4: rlc a
   mov sda,c
   setb scl
   lcall delay
   clr scl
   lcall delay
   cpl p1.1
   djnz r3,a4
   setb sda
   ;;;;;;;;;;;;;;;;;
   ;读发送信号 ;
   ;;;;;;;;;;;;;;;;;
   setb scl
   lcall delay
   clr scl
   lcall delay
   cpl p1.1
   ;;;;;;;;;;;;;;;;;
   ;写停止位 ;
   ;;;;;;;;;;;;;;;;;
   clr sda
   lcall delay
   setb scl
   lcall delay
   setb sda
   lcall delay
   
   ; ;;;;;;;;;;;;;;;
   ;开始写 ;
   ;;;;;;;;;;;;;;;;;
   ;;;;;;;;;;;;;;;;;
   ;写设备地址 ;
   ;;;;;;;;;;;;;;;;;
   mov a,#0a4h
   mov r3,#08h
  b1: rlc a
   mov sda,c
   setb scl
   lcall delay
   clr scl
   lcall delay
   cpl p1.1
   djnz r3,b1
   setb sda
   ;;;;;;;;;;;;;;;;;
   ;读发送信号 ;
   ;;;;;;;;;;;;;;;;;
   setb scl
   lcall delay
   clr scl
   lcall delay
   cpl p1.1
   
   ;;;;;;;;;;;;;;;;;
   ;送 A15-A8地址 ;
   ;;;;;;;;;;;;;;;;;
   mov a,#00h
   mov r3,#08h
  b2: rlc a
   mov sda,c
   setb scl
   lcall delay
   clr scl
   lcall delay
   cpl p1.1
   djnz r3,b2
   setb sda
   ;;;;;;;;;;;;;;;;;
   ;读发送信号 ;
   ;;;;;;;;;;;;;;;;;
   setb scl
   lcall delay
   clr scl
   lcall delay
   cpl p1.1
   ;;;;;;;;;;;;;;;;;
   ;送 A15-A8地址 ;
   ;;;;;;;;;;;;;;;;;
   mov a,#00h
   mov r3,#08h
  b3: rlc a
   mov sda,c
   setb scl
   lcall delay
   clr scl
   lcall delay
   cpl p1.1
   djnz r3,b3
   setb sda
   ;;;;;;;;;;;;;;;;;
   ;读发送信号 ;
   ;;;;;;;;;;;;;;;;;
   setb scl
   lcall delay
   clr scl
   lcall delay
   cpl p1.1
   ;;;;;;;;;;;;;;;;;
   ;读8位地址 ;
   ;;;;;;;;;;;;;;;;;
   mov r3,#08h
  read: setb scl
   lcall delay
   mov sda,c
   rlc a
   ;mov r6,a
   clr scl
   lcall delay
   djnz r3,read
   setb sda
   mov r4,a
   ;;;;;;;;;;;;;;;;;
   ;写发送信号 ;
   ;;;;;;;;;;;;;;;;;
   mov sda,c
   setb scl
   lcall delay
   clr scl
   lcall delay
   ;;;;;;;;;;;;;;;;;
   ;写停止位 ;
   ;;;;;;;;;;;;;;;;;
   lcall stop
   
   sjmp $
   
   
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ; 起始信号 ;
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  start: clr scl
   setb sda
   lcall delay
   setb scl
   lcall delay
   clr sda
   lcall delay
   clr scl
   ret
  ;;;;*********************;;;;
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ; 停止信号 ;
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  stop: clr scl
   clr sda
   lcall delay
   setb scl
   lcall delay
   setb sda
   lcall delay
   ret
  delay: mov r2,#0c7h
  n2: mov r1,#07h
  n1: djnz r1,n1
   djnz r2,n2
   nop
   ret
   end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?