Datasheet
REV. A
–14–
AD8801/AD8803
PSHY
PSHA
*
* Enter Contents of SDI1 Data Register
*
LDAA $0000 Hi-byte data loaded from memory
STAA SDI1 SDI1 = data in location 0000H
*
* Enter Contents of SDI2 Data Register
*
LDAA $0001 Low-byte data loaded from memory
STAA SDI2 SDI2 = Data in location 0001H
*
LDX #SDI1 Stack pointer at 1st byte to send via SDI
LDY #$1000 Stack pointer at on-chip registers
*
* Reset AD8801 to one-half scale (AD8803 does not have a Reset input)
*
BCLR PORTC,Y $02 Assert /RS
BSET PORTC,Y $02 De-assert /RS
*
* Get AD8801/03 ready for data input
*
BCLR PORTD,Y $20 Assert /CS
*
TFRLP LDAA 0,X Get a byte to transfer via SPI
STAA SPDR Write SDI data reg to start xfer
*
WAIT LDAA SPSR Loop to wait for SPIF
BPL WAIT SPIF is the MSB of SPSR
* (when SPIF is set, SPSR is negated)
INX Increment counter to next byte for xfer
CPX #SDI2+1 Are we done yet ?
BNE TFRLP If not, xfer the second byte
*
* Update AD8801 output
*
BSET PORTD,Y $20 Latch register & update AD8801
*
PULA When done, restore registers X, Y & A
PULY
PULX
RTS ** Return to Main Program **
Listing 3. AD8801/AD8803 to MC68HC11 Interface Program Source Code










