适用于PIC系列,汇编、内存紧张的朋友用
SDA EQU 5 ;'OC'
SCL EQU 4
ACKF EQU 0
EE_VCC EQU 2
EE_WP EQU 1 ;'H' DISABLE 'L'ENABLE
DO EQU 7
TX_BUF EQU 0X30
BUF_IN EQU 0X31
EEPROM EQU 0X32
BIT_COUNT EQU 0X33
byte_count equ 0x34
ACK EQU 0X35
rom_buf1 equ 0x36
rom_buf2 equ 0x37
rom_buf3 equ 0x38
rom_buf4 equ 0x39
rom_buf5 equ 0x3a
;**********************启动信号***************************************
BSTART:
BSF PORTA,SDA
NOP
NOP
NOP
NOP
NOP
NOP
BSF PORTA,SCL
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
BCF PORTA,SDA
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
BCF PORTA,SCL
NOP
NOP
RETLW 0
;***********************停止信号********************************
BSTOP:
BCF PORTA,SDA
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
BSF PORTA,SCL
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
BSF PORTA,SDA
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
BCF PORTA,SCL
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RETLW 0
;**********************发送N_ACK**************************
SEND_ACK:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
BCF PORTA,SDA
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
BSF PORTA,SCL
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
BCF PORTA,SCL
NOP
NOP
NOP
NOP
NOP
NOP
RETLW 0
;**********************发送N_ACK**************************
READ_ACK:
BSF TRISA,SDA ;SET SDA IN
CLRF ACK
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
BSF PORTA,SCL
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
BTFSS PORTA,SDA
INCF ACK,F
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
BCF PORTA,SCL
BCF TRISA,SDA ;SET SDA OUT
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RETLW ACK;0
;**********************发送一个字节**************************
BYTEOUT:
MOVLW D'8'
MOVWF BIT_COUNT
TXLP
nop
nop
CALL BITOUT
RLF TX_BUF,F
DECFSZ BIT_COUNT,F
GOTO TXLP
CALL READ_ACK
;CALL BITIN ;ACK
;BTFSC EEPROM,DI
; BSF PORTC,ACKF
RETLW 0
;************************接收一个字节*****************************
BYTEIN:
BSF TRISA,SDA ;SET SDA IN
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』