;*********************************************************************** ; ;Apple-Remote-Empfänger 2008 ;PIC16F84A 4Mhz ;Maximilian M. ;*********************************************************************** ; TSOP1738 ; |--| PortA,0 |----|PortB,0-5 ; | |------------|PIC |----------- ; |--| ----|16F | ; Quarz |84A | ; ----| | ; ----|----|---- ; |_VCC |_GND ; ;*********************************************************************** LIST P=PIC16F84A #include ERRORLEVEL -302 ERRORLEVEL -305 __CONFIG _PWRTE_ON & _WDT_OFF & _HS_OSC CBlock 0x32 Taste11 Taste22 Taste33 Taste44 Taste55 Taste66 Counter1 Counter2 Counter3 Code1 Code2 Zahl1 endc org 0 goto main main bsf STATUS, RP0 ;Wechsel zu Bank 1 movlw B'00000001' ;Schreibe Zahl in Work-Register 7Ausgänge 1 Eingänge movwf TRISA ;Schreibe Zahl in das TRISA Register movlw B'11000000' ;Schreibe Zahl in Work-Register 6Ausgänge 2 Eingänge movwf TRISB ;Schreibe Zahl in das TRISB Register bcf STATUS, RP0 ;Wechsel zurück zu Bank 0 movlw B'10100000' ;Play/Pause movwf Taste11 ;Schreibe Zahl in Taste 11 movlw B'01010000' ;Plus movwf Taste22 ;Schreibe Zahl in Taste 22 movlw B'00110000' ;Minus movwf Taste33 ;Schreibe Zahl in Taste 33 movlw B'01100000' ;Rechts movwf Taste44 ;Schreibe Zahl in Taste 44 movlw B'10010000' ;Links movwf Taste55 ;Schreibe Zahl in Taste 55 movlw B'11000000' ;Menu movwf Taste66 ;Schreibe Zahl in Taste 66 movlw D'175' movwf Zahl1 goto Empfangen ;Springe zu Empfangen Empfangen btfsc PORTA,0 goto Empfangen goto Empfangen2 Empfangen2 btfss PORTA,0 goto Empfangen2 goto Empfangen3 Empfangen3 btfsc PORTA,0 goto Empfangen3 goto IREmpfang IREmpfang btfss PORTA,0 goto IREmpfang goto Counter11 Counter11 INCF Counter1,1 btfsc PORTA,0 goto Counter11 goto Abfrage Abfrage movlw Counter1 sublw 0x43 BTFSC STATUS, C goto Low1 goto High1 High1 bsf Code1,7 rrf Code1 INCF Counter2,1 movlw Counter2 sublw 16 BTFSS STATUS, Z goto IREmpfang goto CommandEmpfang Low1 bcf Code1,7 rrf Code1 INCF Counter2,1 movlw Counter2 sublw 16 BTFSS STATUS, Z goto IREmpfang goto CommandEmpfang CommandEmpfang btfss PORTA,0 goto CommandEmpfang goto Counter11Command Counter11Command INCF Counter3,1 btfsc PORTA,0 goto Counter11Command goto AbfrageCommand AbfrageCommand movlw Counter3 sublw 0x43 BTFSC STATUS, C goto LowCommand goto HighCommand HighCommand bsf Code2,7 rrf Code2 INCF Counter3,1 movlw Counter3 sublw 8 BTFSS STATUS,Z goto CommandEmpfang goto Auswertung1 LowCommand bcf Code2,7 rrf Code2 INCF Counter3,1 movlw Counter3 sublw 8 BTFSS STATUS,Z goto CommandEmpfang goto Auswertung1 Auswertung1 movlw Code2 sublw 0x32 btfss STATUS, Z goto Auswertung2 goto Ausgang1 Auswertung2 movlw Code2 sublw 0x33 btfss STATUS, Z goto Auswertung3 goto Ausgang2 Auswertung3 movlw Code2 sublw 0x34 btfss STATUS, Z goto Auswertung4 goto Ausgang3 Auswertung4 movlw Code2 sublw 0x35 btfss STATUS, Z goto Auswertung5 goto Ausgang4 Auswertung5 movlw Code2 sublw 0x36 btfss STATUS, Z goto Auswertung6 goto Ausgang5 Auswertung6 movlw Code2 sublw 0x37 btfss STATUS, Z goto Stack goto Ausgang6 Stack goto Empfangen Ausgang1 bsf PORTB,0 Ausgang2 bsf PORTB,1 Ausgang3 bsf PORTB,2 Ausgang4 bsf PORTB,3 Ausgang5 bsf PORTB,4 Ausgang6 bsf PORTB,5 END