📄 i2c_wr.asm
字号:
*************************************************
*FILE: I2C_WR.ASM
*日期:2005年11月25日*
*************************************************
* I2C_R 是I2C读数据程序
* I2C_W 是I2C写数据程序
* I2C_W_INT 写初始化
* I2C_R_INT 读初始化
* 内带先写后读数据校对程序(REST_7-30)
*************************************************
**************** I2C串口通信 ********************
READ .set 0380h ;读EEPROM,DSP存放数据首地址
W_ADDS .set 0380h
R_ADDS .set 0800h
W_CNT .set 0A0h ;写控制字节
ADDESS .set 0 ;24LC16B的块内地址
R_MUN .set 47 ;48字节数(16BIT)
ADSS .set 4 ;页面地址
************************************************
.def I2C_W,I2C_W_INT,I2C_R_INT
.def I2C_R
.def I2C_COUNT
.def R_MUN,READ,W_CNT
************************************************
.include "SPWM.H"
************************************************
.bss I2C_WR_CNT,1
.bss I2C_COM,1
.bss I2C_DAT,1
.bss I2C_BIT,1
.bss I2C_ASK,1
.bss I2C_COME,1
.bss I2C_COUNT,1
.bss I2C_ADDS,1
.bss I2C_MUN,1
.bss I2C_BAG,1
.bss I2C_TIME,1
.bss I2C_COUNT0,1
.bss I2C_COUNT1,1
.bss I2C_COUNT2,1
.bss I2C_INT2,1
************************************************
.text
************************************************
I2C_W_INT:
LDP #0
LACL WR_CNT
BCND I2C_END,NEQ
LACL WRITEDAT
SUB #1234
BCND I2C_END,NEQ
SPLK #1,WR_CNT
LDP #ADSS
SPLK #ADDESS,I2C_ADDS
SPLK #0,I2C_COUNT
SPLK #8,I2C_MUN ;每次写8字节数(16BIT)
SPLK #6,I2C_BAG ;共6x8=48字节数(16BIT): DATT0-DATT47
SPLK #0,I2C_COUNT2
LACL #W_CNT
SACL I2C_WR_CNT
LAR AR0,#READ
I2C_END:
RET
************************************************
I2C_R_INT:
LDP #0
LACL #W_CNT
SACL I2C_CNT
LAR AR0,#R_MUN ;AR0:读写的字节数(16BIT)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -