'{$STAMP BS2} asciiCharacter VAR Byte serialData VAR Bit(8) counter VAR Nib transmitterPin CON 9 Send_Data: PAUSE 5000 DEBUG "sending", CR asciiCharacter = "a" serialData(0)=asciiCharacter.BIT0 serialData(1)=asciiCharacter.BIT1 serialData(2)=asciiCharacter.BIT2 serialData(3)=asciiCharacter.BIT3 serialData(4)=asciiCharacter.BIT4 serialData(5)=asciiCharacter.BIT5 serialData(6)=asciiCharacter.BIT6 serialData(7)=asciiCharacter.BIT7 Start_Bit: HIGH transmitterPin PAUSE 1000 Send_Byte: FOR counter = 0 TO 7 IF serial(counter) = 1 THEN Send_Low Send_High: HIGH transmitterPin GOTO Send_Next_Bit Send_Low: LOW transmitterPin Send_Next_Bit: PAUSE 1000 NEXT LOW 9 GOTO Send_Data Receiver Code '{$STAMP BS2} counter VAR Nib firstRead VAR Bit serialData VAR Bit(8) asciiCharacter VAR Byte Check_For_Start_Bit: IF IN5 = 1 THEN Check_For_Start_Bit: PAUSE 1250 FOR counter = 0 TO 7 Get_Data: firstBit = IN5 PAUSE 1 IF IN5 = firstBit THEN Store_Bit GOTO Get_Data Store_Bit: serialData(counter) = temp PAUSE 1000 NEXT Read_Character: asciiCharacter = 0 FOR counter = 7 TO 0 asciiCharacter = asciiCharacter * 2 asciiCharacter = asciiCharacter + serialData(counter) NEXT DEBUG ASC? asciiCharacter GOTO Check_For_Start_Bit