⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iic_asm.asm

📁 一段C的小程序
💻 ASM
字号:
SCL     bit  P1.1    ;24c512时钟口线   //这是我的片选信号P23()
SDA     bit  P1.0    ;24c512数据口线  //这是我的片选信号P22()
WP     bit  P2.3     ;24c512数据口线  //这是我的片选信号P22()

index   equ  60h
addrlo  equ  61h
addrhi  equ  62h
kount   equ  63h  ;24c512占用RAM 地址60---63h
EnableWrite  equ 64h ;如果写入的地址小于150h,这时该值为aa-->enable ,else 不能写!

DDDDDCODE SEGMENT CODE  UNIT  ;程序段

;*********************************************************
;H_ADDR IN R7;L_ADDR IN R5; BYTE NUMBER IN R3
;*********************************************************
;24C512写程序
;要写的数据r3个防在RAM oxd0 开始;
;写入24C512的r7_r5开始的地址
PUBLIC _IIC_WRITE_ONEBYTE
RSEG DDDDDCODE
_IIC_WRITE_ONEBYTE: mov r0,#0d0h
                    mov r4,#0a6h
                    mov kount,r3
                    mov index,r0
                    mov addrlo,r5
                    mov addrhi,r7   ;0020,40,8
                    ;---------------------------------------------
                   cjne r7,#000h,writeokA  ;如果低位为0

                    mov r0,#064h
                    cjne @r0, #0aah ,endme
                           jmp writeok
                    ;---------------------------------------------
writeokA:
                    cjne r7,#001h,writeok  ;如果低位为1
                    cjne r5,#050h,writeokB  ;如果高位为1
                           jmp writeok

writeokB:    jnc  writeok
                    mov r0,#064h
                    cjne @r0, #0aah ,endme
                    jmp writeok



writeok:            mov r0,#0d0h
                    CLR WP
	            call  write_block   ////
                    SETB WP
endme:
                  mov r0,#000h
                  mov EnableWrite,r0
                    ret
;24C512读程序
;从24C512 的r7_r5地址读出r3个数据放在oxd0;
PUBLIC _IIC_READ_ONEBYTE              ;入口地址
RSEG   DDDDDCODE
_IIC_READ_ONEBYTE:    mov r0,#0d0H
                      mov r4,#0a6h
                      mov addrlo,r5   ;0020 READ
	              mov addrhi,r7
                      mov kount,r3
                      mov index ,r0
	              call  verify_block_fill
                      ret
;以下为读写模块;请不要改变

⌨️ 快捷键说明

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