求解LCD_WRITE
CALL IIC_IDLE
BSF STATUS,RP0
BSF SSPCON2,SEN ;发送启动信号
BCF STATUS,RP0
BTFSS PIR1,SSPIF
GOTO $-1
BCF PIR1,SSPIF
MOVLW B'01110000' ;发送地址(70H)及读写控制位(写:BIT0=0)
MOVWF SSPBUF
CALL WRTACKTEST ;等待PCF8576DT发回应答信号
BCF PIR1,SSPIF
;
MOVLW B'11001000' ;发送显示方式
MOVWF SSPBUF ;
CALL WRTACKTEST
BCF PIR1,SSPIF
;
MOVLW B'11100000' ;发送器件选择
MOVWF SSPBUF ;
CALL WRTACKTEST
BCF PIR1,SSPIF
;
MOVLW B'00000000' ;发送地址指针
MOVWF SSPBUF ;
CALL WRTACKTEST
BCF PIR1,SSPIF
;
MOVLW 50H ;要发送的显示数据的首地址(50-57H)
MOVWF FSR
LCD_DATA
MOVF INDF,0
MOVWF SSPBUF ; 发送数据
CALL WRTACKTEST
BCF PIR1,SSPIF
INCF FSR,1
BTFSS FSR,3 ;58H?
GOTO LCD_DATA
;
BSF STATUS,RP0
BSF SSPCON2,PEN ;发送停止信号
BCF STATUS,RP0
BTFSS PIR1,SSPIF
GOTO $-1
BCF PIR1,SSPIF
RETURN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
IIC_IDLE
BSF STATUS,RP0 ;检测总线空闲
BTFSC SSPSTAT,R_W
GOTO $-1
MOVF SSPCON2,W
ANDLW 0X1F
BTFSS STATUS,Z
GOTO $-3
BCF STATUS,RP0
RETURN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
WRTACKTEST ;检测应答信号
BCF PIR1,SSPIF
BTFSS PIR1,SSPIF
GOTO $-1
RETURN
求解以上程序,不胜感激