Wired remote for Alpine


Results 1 to 39 of 39

Threaded View

  1. #22
    Join Date
    Dec 2008
    Location
    Ploiesti, ROMANIA
    Posts
    582


    Did you find this post helpful? Yes | No

    Default Re: Wired remote for Alpine

    Mr.Henrik wrote the code...me just put together parts...
    BUT : even if in Proteus the signal(s) appears to be OK, the HU-JVC don't react at all !
    Maybe the "timming" need to be more accurate ?! At this point, I'm hopeless and stuck ... Any help will be appreciated !
    Hex and dns attached...
    Code:
    ;***************************************************************************
    ;*
    ;*    Test variant, using 2N3904 on output - PORTC.0
    ;*
    ;***************************************************************************
    
    @ DEVICE PIC16F684, HS_OSC, WDT_OFF, PWRT_OFF, BOD_OFF, MCLR_OFF
    DEFINE OSC 20
    include "ALLDIGITAL.pbp"
    
    TRISA= 000011                           
    PORTA= 000011
    
    PORTC= 000000
                    
    CMCON0 = 000111              ' Disable analog comparators.     
    VRCON  = 000000               ' Disable Comparator Voltage Reference
    ANSEL  = 000000               ' Set pin'S to digital
    ADCON0 = 000000               ' Set up A/D converter - OFF 
    
    Pause 1000
    
    i VAR BYTE
    j VAR BYTE
    OutBuffer VAR BYTE[8]
    BitsToSend VAR BYTE
    
    
    Main:
    if porta.0 = 0 then gosub VolUp        ' just for test
    if porta.1 = 0 then gosub VolDn        ' just for test
    
    Pause 100                 ' do it for 0.1 sec
    Goto Main
    
    
    '-----------------------------------------------------------------------
    SendPreamble:        
    ; 01110111 01110111 01010101 11
        OutBuffer[0] = 010001 ; 101110 REVERSED BECAUSE OF USING TRANSISTOR AT OUTPUT !!!
        OutBuffer[1] = 010001 ; 101110
        OutBuffer[2] = 010101 ; 101010
        OutBuffer[3] = 111100 ; 000011
       
        BitsToSend = 26
        GOSUB SendBits
    RETURN
    '-----------------------------------------------------------------------
    AGC:
    TRISC.0 = 1 ; 0
    PauseUs 8584
    TRISC.0 = 0 ; 1
    PauseUs 4292
    RETURN
    '-----------------------------------------------------------------------
    SendPostAmble:
    ' 01111111 11111111 11111111 11111111 11110111 01110111 01110101 010111
        OutBuffer[0] = 000001 ; 111110
        OutBuffer[1] = 000000 ; 111111
        OutBuffer[2] = 000000 ; 111111
        OutBuffer[3] = 000000 ; 111111
        OutBuffer[4] = 110000 ; 001111
    
        
        BitsToSend = 36
        
        GOSUB SendBits
    RETURN
    '-----------------------------------------------------------------------
    SendFinalAmble:
    ' 01111111 11111111 11111111 11111111 11111111 11111111 11111111 111111
        OutBuffer[0] = 000001 ; 111110
        OutBuffer[1] = 000000 ; 111111
        OutBuffer[2] = 000000 ; 111111
        OutBuffer[3] = 000000 ; 111111
        OutBuffer[4] = 000000 ; 111111
        OutBuffer[5] = 000000 ; 111111
        OutBuffer[6] = 000000 ; 111111
        OutBuffer[7] = 000000 ; 111111
        
        BitsToSend = 54
        
        GOSUB SendBits
    RETURN
    '-----------------------------------------------------------------------
    VolUp:
        Gosub AGC
    ;==============================    
        GOSUB SendPreAmble    ; one
        ' Volume Up
        OutBuffer[0] = 010101 ; 101010
        OutBuffer[1] = 101010 ; 010101  
        OutBuffer[2] = 111110 ; 000001
        
        BitsToSend = 17
        GOSUB SendBits
        GOSUB SendPostAmble
    ;==============================    
        gosub SendPreamble    ; two
        ' Volume Up    
        OutBuffer[0] = 010101 ; 101010
        OutBuffer[1] = 101010 ; 010101  
        OutBuffer[2] = 111110 ; 000001
        
        BitsToSend = 17
        GOSUB SendBits   
        GOSUB SendPostAmble
    ;==============================    
        gosub sendPreamble    ; three
        ' Volume Up
        OutBuffer[0] = 010101 ; 101010
        OutBuffer[1] = 101010 ; 010101  
        OutBuffer[2] = 111110 ; 000001
        
        BitsToSend = 17
        GOSUB SendBits
        GOSUB SendFinalAmble    
    RETURN            ; end command
    '-----------------------------------------------------------------------
    
    VolDn:
        Gosub AGC
    ;==============================    
        GOSUB SendPreAmble
        ' 01111010 11110101 0101
        ' Volume Down
        OutBuffer[0] = 100001 ; 011110
        OutBuffer[1] = 010000 ; 101111
        OutBuffer[2] = 110101 ; 001010
        
        BitsToSend = 20
        GOSUB SendBits
        GOSUB SendPostAmble
    ;==============================
        GOSUB SendPreAmble
        ' 01111010 11110101 0101
        ' Volume Down
        OutBuffer[0] = 100001 ; 011110
        OutBuffer[1] = 010000 ; 101111
        OutBuffer[2] = 110101 ; 001010
        
        BitsToSend = 20
        GOSUB SendBits
        GOSUB SendPostAmble
    ;==============================
        GOSUB SendPreAmble
        ' 01111010 11110101 0101
        ' Volume Down
        OutBuffer[0] = 100001 ; 011110
        OutBuffer[1] = 010000 ; 101111
        OutBuffer[2] = 110101 ; 001010
        
        BitsToSend = 20
        GOSUB SendBits
        GOSUB SendFinalAmble    
    RETURN
    '-----------------------------------------------------------------------
    SendBits:
        BitsToSend = BitsToSend - 1
        For i = 0 to BitsToSend 
            TRISC.0 = OutBuffer.0[i]
            PauseUs 536
            @ nop
            @ nop  ; for 536.5 us
        NEXT
    RETURN
    '-----------------------------------------------------------------------
    END
    Attached Files Attached Files
    Last edited by fratello; - 23rd March 2012 at 14:01.

Members who have read this thread : 1

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts