Sample Code :
' =========================================================================
'
' File....... CompRepeater.BS2
' Purpose.... Repeater program for Azimuth 1000 digital compass.
' Author..... O.A.A
' E-mail..... info@osmanardali.com
' Started.... 01 Dec 2005
' Updated....
'
' {$STAMP BS2}
' {$PBASIC 2.5}
'
' =========================================================================
' -----[ Program Description ]---------------------------------------------
' -----[ Revision History ]------------------------------------------------
' -----[ I/O Definitions ]-------------------------------------------------
datain PIN 0 ' "SEROUT" from another BS1/BS2 module
NMEAin PIN 1 ' NMEA Data
pindp1 PIN 2
pindp2 PIN 3
pin1A PIN 4
pin1B PIN 5
pin1C PIN 6
pin1D PIN 7
pin2A PIN 8
pin2B PIN 9
pin2C PIN 10
pin2D PIN 11
pin3A PIN 12
pin3B PIN 13
pin3C PIN 14
pin3D PIN 15
' -----[ Constants ]-------------------------------------------------------
Baud CON 16572 ' 4800 baud , no parity , inverted
' -----[ Variables ]-------------------------------------------------------
digit VAR Nib
Bearing VAR Word
' -----[ Initialization ]--------------------------------------------------
DIRB = %1111 ' ones digit
DIRC = %1111 ' tens digit
DIRD = %1111 ' hundreds digit
' Segment test
DIRD = %0000
DIRC = %0000
DIRB = %0111
PAUSE 100
DIRD = %0000
DIRC = %0111
PAUSE 100
DIRD = %0000
PAUSE 100
DIRB = %1111 : DIRC = %1111 : DIRD = %1111
' -----[ Program Code ]----------------------------------------------------
PAUSE 3500
Label_00:
SERIN NMEAin,Baud,1000,Label_00,[WAIT("$HCHDM"),DEC Bearing]
digit = Bearing // 10
GOSUB ABCD
DIRB = digit
digit = (Bearing // 100) / 10
GOSUB ABCD
DIRC = digit
digit = Bearing / 100
GOSUB ABCD
DIRD = digit
GOTO Label_00
END
'--------------[ Subroutines ]---------------------------------------------
'--------------[ Subroutine ABCD ]-----------------------------------------
'Purpose : Convert decimal digit to ABCD inputs of 7447 display driver.
ABCD:
LOOKUP digit,[%1111,%1110,%1101,%1100,%1011,%1010,%1001,%1000,%0111,%0110,%0101,%0100,%0011,%0010,%0001,%0000],digit
RETURN
Sample Code :
' =========================================================================
'
' File....... Display3LCD.BS2
' Purpose.... Driving three 7 segment LCD displays
' using 7447 display drivers.
' Author..... O.A.A
' E-mail..... info@osmanardali.com
' Started.... Feb 2007
' Updated....
'
' {$STAMP BS2}
' {$PBASIC 2.5}
'
' =========================================================================
' -----[ Program Description ]---------------------------------------------
' -----[ Revision History ]------------------------------------------------
' -----[ I/O Definitions ]-------------------------------------------------
datain PIN 0 ' "SEROUT" from another BS1/BS2 module
NMEAin PIN 1 ' NMEA Data
pindp1 PIN 2
pindp2 PIN 3
pin1A PIN 4
pin1B PIN 5
pin1C PIN 6
pin1D PIN 7
pin2A PIN 8
pin2B PIN 9
pin2C PIN 10
pin2D PIN 11
pin3A PIN 12
pin3B PIN 13
pin3C PIN 14
pin3D PIN 15
' -----[ Constants ]-------------------------------------------------------
Baud CON 16780
' -----[ Variables ]-------------------------------------------------------
Number VAR Word
digit VAR Byte
' -----[ Initialization ]--------------------------------------------------
DIRB = %1111 ' ones digit
DIRC = %1111 ' tens digit
DIRD = %1111 ' hundreds digit
' Segment test
DIRD = %0000
DIRC = %0000
DIRB = %0111
PAUSE 100
DIRD = %0000
DIRC = %0111
PAUSE 100
DIRD = %0000
PAUSE 100
DIRB = %1111 : DIRC = %1111 : DIRD = %1111
' -----[ Program Code ]----------------------------------------------------
Label_00:
SERIN datain,Baud,[WAIT("!"),Number.BYTE0,Number.BYTE1]
' display "Number" in digits 1 to 3
digit = Bearing // 10
GOSUB ABCD
DIRB = digit
digit = (Bearing // 100) / 10
GOSUB ABCD
DIRC = digit
digit = Bearing / 100
GOSUB ABCD
DIRD = digit
GOTO Label_00
END
' -----[ Subroutines ]-----------------------------------------------------
' ------[ Subroutine DCBA ]----------------------------------------------
' Purpose : Convert decimal digit to ABCD inputs of 7447 display driver
ABCD:
LOOKUP digit,[%1111,%1110,%1101,%1100,%1011,%1010,%1001,%1000,%0111,%0110,%0101,%0100,%0011,%0010,%0001,%0000],digit
RETURN
RETURN