iic.asm

来自「mega128+VS1003做的mp3的程序 可以用WINAVR编译」· 汇编 代码 · 共 80 行

ASM
80
字号
;-----------------------------------------------------------
                     PUBLIC     _WRITE_DS1302
                     PUBLIC     _READ_DS1302
                     PROC       SEGMENT      CODE
                     RSEG       PROC

            SCL      BIT    P3.4    ;IIC时钟端口
            SDA      BIT    P3.2    ;IIC数据端口
            RST      BIT    P3.1

;---------------------------------------------------------------------
_WRITE_DS1302: ;写一个字节到DS1302指定地址参数:地址、写入数据
                     MOV    R4,#8D
                     CLR    RST
                     CLR    SCL
                     SETB   SDA
                     SETB   RST
                     MOV    A,R7
WRITE_DS13020:       RRC    A
                     MOV    SDA,C
                     NOP
		     NOP
                     SETB   SCL
                     NOP
		     NOP
                     CLR    SCL
                     DJNZ   R4,WRITE_DS13020

                     MOV    R4,#8D
                     MOV    A,R5
WRITE_DS13021:       RRC    A
                     MOV    SDA,C
                     NOP
		     NOP
                     SETB   SCL
                     NOP
		     NOP
                     CLR    SCL
                     DJNZ   R4,WRITE_DS13021
                     CLR    RST
                     CLR    SCL
                     RET
;---------------------------------------------------------------------
_READ_DS1302: ;从DS1302中读一个字节参数:地址、返回数据
                     MOV    R4,#8D
                     CLR    RST
                     CLR    SCL
                     SETB   SDA
                     SETB   RST
                     MOV    A,R7
READ_DS13020:        RRC    A
                     MOV    SDA,C
                     NOP
		     NOP
                     SETB   SCL
                     NOP
		     NOP
                     CLR    SCL
                     DJNZ   R4,READ_DS13020
                     SETB   SDA
                     MOV    R4,#8D
                     CLR    A

READ_DS13021:        MOV    C,SDA
                     RRC    A
                     SETB   SCL
                     NOP
		     NOP
                     CLR    SCL
                     NOP
		     NOP
                     DJNZ   R4,READ_DS13021
                     CLR    RST
                     CLR    SCL
                     MOV    R7,A
                     RET
;---------------------------------------------------------------------------------------------
		     END

⌨️ 快捷键说明

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