#include "c:\miniIDE\hcs12.inc" org $1000 ds.b 1 org $1500 lds #$1500 jsr openDS1307 swi openDS1307 ldaa #$D0 ; place DS1307 ID in A jsr sendSlaveID brclr IBSR,RXAK,sndRegAdr ; did DS1307 acknowledge? ldab #$FF ; return error code -1 rts sndRegAdr movb #$07,IBDR ; send out the control register address brclr IBSR,IBIF,* ; wait until the register address is shifted out movb #IBIF,IBSR ; clear the IBIF flag brclr IBSR,RXAK,sndok ; did DS1307 acknowledge? ldab #$FF rts sndok stab IBDR ; send out control byte brclr IBSR,IBIF,* ; wait until the control byte is shifted out movb #IBIF,IBSR bclr IBCR,MSSL ; generate stop condition rts sendSlaveID brset IBSR,IBB,* ; wait until I2C bus is free bset IBCR,TXRX+MSSL ; generate a start condition staa IBDR ; send out the slave address wait_I2C brclr IBSR,IBIF,* ; wait for address transmission to complete movb #IBIF,IBSR ; clear the IBIF flag rts end