#include "c:\miniide\hcs12.inc" PM7 equ BIT7 PM6 equ BIT6 prologue macro bset PTM,PM7 ; pull FS to high bclr PTM,PM6 ; pull CS to low bclr PTM,PM7 ; pull FS to low endm epilogue macro bset PTM,PM7 ; pull FS to high bset PTM,PM6 ; pull CS to high endm org $1500 lds #$1500 ; set up the stack pointer bset DDRM,$C0 ; configure the PM6 and PM7 pins for output jsr openspi0 ; configure SPI0 properly forever prologue ; activate an FS pulse and pull CS to low ldaa #$40 ; output 0V from OUT pin jsr putcspi0 ; " ldaa #0 ; " jsr putcspi0 ; " epilogue ; pull PM7 and PM6 to high ldy #1 ; wait for 1 ms jsr delayby1ms ; " prologue ; activate an FS pulse and pull CS to low ldaa #$44 ; output 1V from OUT pin jsr putcspi0 ; " ldaa #0 ; " jsr putcspi0 ; " epilogue ; pull PM7 and PM6 to high ldy #1 ; wait for 1 ms jsr delayby1ms ; " prologue ; activate an FS pulse and pull CS to low ldaa #$48 ; output 2V from OUT pin jsr putcspi0 ; " ldaa #0 ; " jsr putcspi0 ; " epilogue ; pull PM7 and PM6 to high ldy #1 ; wait for 1 ms jsr delayby1ms ; " prologue ; activate an FS pulse and pull CS to low ldaa #$44 ; output 1V from OUT pin jsr putcspi0 ; " ldaa #0 ; " jsr putcspi0 ; " epilogue ; pull PM7 and PM6 to high ldy #1 ; wait for 1 ms jsr delayby1ms ; " prologue ; activate an FS pulse and pull CS to low ldaa #$48 ; output 2V from OUT pin jsr putcspi0 ; " ldaa #0 ; " jsr putcspi0 ; " epilogue ; pull PM7 and PM6 to high ldy #1 ; wait for 1 ms jsr delayby1ms ; " prologue ; activate an FS pulse and pull CS to low ldaa #$44 ; output 1V from OUT pin jsr putcspi0 ; " ldaa #0 ; " jsr putcspi0 ; " epilogue ; pull PM7 and PM6 to high ldy #1 ; wait for 1 ms jsr delayby1ms ; " prologue ; activate an FS pulse and pull CS to low ldaa #$48 ; output 2V from OUT pin jsr putcspi0 ; " ldaa #0 ; " jsr putcspi0 ; " epilogue ; pull PM7 and PM6 to high ldy #1 ; wait for 1 ms jsr delayby1ms ; " prologue ; activate an FS pulse and pull CS to low ldaa #$4C ; output 3V from the OUT pin jsr putcspi0 ; " ldaa #0 ; " jsr putcspi0 ; " epilogue ; pull PM7 and PM6 to high ldy #1 ; wait for 1 ms jsr delayby1ms ; " jmp forever openspi0 movb #0,SPI0BR ; set baud rate to 12 MHz movb #$54,SPI0CR1 movb #$02,SPI0CR2 movb #0,WOMS ; enable Port S pull-up rts #include "c:\miniide\delay.asm" #include "c:\miniide\spi0util.asm" end