' ' Program: DigiTalker Circuit Interface Test ' Author: (c) 2007 by A Fox Consulting & Design ' http://www.afox-consulting.com ' Date: 10/29/2007 ' ' {$STAMP BS2} ' {$PBASIC 2.5} DT_CLOCK PIN 0 ' pin 11 (SCL) on 74LS595 DT_DATA PIN 1 ' pin 14 (SDI) on 74LS595 DT_LATCH PIN 2 ' pin 12 (SDL) on 74LS595 DT_WRITE PIN 3 ' pin 4 (~WR) on DigiTalker DT_CS PIN 4 ' pin 3 (~CS) on DigiTalker DT_INTR PIN 5 ' pin 6 (INTR) on DigiTalker a VAR Byte i VAR Byte ' Stuff to say 'WordData DATA 0,71,65,2,121,2,80,129,5,71,81,70,81,70,76,76,76,66,66 WordData DATA $53,$4B,$60,$75,$03,$1D,$52,$47 DATA $47,$07,$09,$7A,$04,$4D,$81,$47 DATA $47,$78,$49,$8E,$43,$6A,$20,$01 DATA $47,$41,$45,$41,$45,$42,$47,$42 WordDataL CON 32 Init: ' Set initial state LOW DT_LATCH HIGH DT_WRITE HIGH DT_CS ' The DigiTalker will say hello, so wait for speech to finish DO WHILE DT_INTR = 0 LOOP PAUSE 1000 Main: FOR i = 0 TO WordDataL - 1 READ (WordData+i), a GOSUB SayWord NEXT PAUSE 5000 GOTO main SayWord: ' Load shift register with data byte for DigiTalker SHIFTOUT DT_DATA, DT_CLOCK, MSBFIRST, [a] LOW DT_CS PAUSE 1 LOW DT_WRITE PAUSE 1 ' Latch the data PULSOUT DT_LATCH, 5 PAUSE 1 HIGH DT_WRITE PAUSE 1 HIGH DT_CS ' Wait for speech to complete DO WHILE DT_INTR = 0 LOOP RETURN