Device 16F628A Xtal 4 All_Digital = true Config BODEN_ON , CP_OFF , DATA_CP_OFF , PWRTE_ON , WDT_OFF , LVP_OFF , MCLRE_ON , XT_OSC TRISA = %00000001 TRISB = 0 Declare RC5In_Pin = PORTA.0 Dim RC5_WORD As Word ' Create a WORD variable to receive the data Dim RC5_COMMAND As RC5_WORD.LowByte ' Alias the COMMAND byte to RC5_WORD low byte Dim RC5_SYSTEM As RC5_WORD.HighByte ' Alias the COMMAND byte to RC5_WORD high byte Dim MyRC5 As Byte Dim wtel As Word PORTB = 0 While 1 = 1 ' Create an infinite loop Repeat RC5_WORD = RC5In ' Receive a signal from the infrared sensor Until RC5_COMMAND <> 255 ' Keep looking until a valid header found GoSub DoeCommand Wend DoeCommand: Cls MyRC5 = RC5_COMMAND Select MyRC5 Case 1: GoSub com1 Case 2: GoSub com2 Case 3: GoSub com3 Case 4: GoSub com4 EndSelect Return WaitButton: wtel = 0 While wtel < 300 RC5_WORD = RC5In If RC5_COMMAND = 255 Then Inc wtel Else If RC5_COMMAND = MyRC5 Then wtel = 999 EndIf DelayMS 1 Wend Return com1: PORTB.0 = 1 com1_00: GoSub WaitButton If RC5_COMMAND = MyRC5 Then GoTo com1_00 PORTB.0 = 0 Return com2: PORTB.1 = 1 com2_00: GoSub WaitButton If RC5_COMMAND = MyRC5 Then GoTo com2_00 PORTB.1 = 0 Return com3: PORTB.2 = 1 com3_00: GoSub WaitButton If RC5_COMMAND = MyRC5 Then GoTo com3_00 PORTB.2 = 0 Return com4: PORTB.3 = 1 com4_00: GoSub WaitButton If RC5_COMMAND = MyRC5 Then GoTo com4_00 PORTB.3 = 0 Return End