Sony IR Remote


Results 1 to 40 of 41

Thread: Sony IR Remote

Threaded View

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


    Did you find this post helpful? Yes | No

    Default

    This is my last variant of code; works fine in ISIS, hope to my car too.
    Code:
    ' 
    '       Varianta cu ASM from www.rentron.com
    '              Thanks to Mr.Bruce !
    '
    '           PIC12F675:                    +--U--+                                         
    '                                    +5V  [     ]  GND                                    
    '                         key 5 |---/--- >[     ]< ---/---| key 1     
    '                         key 4 |---/--- >[     ]< ---/---| key 2                   
    '       pull-up!          key 3 |---/--- >[     ]>--[4K7]-- NPN Transistor, IR LED  
    
    @ DEVICE PIC12F675, intrc_osc, wdt_off, pwrt_on, mclr_off, bod_off
    INCLUDE "MODEDEFS.BAS" 
    DEFINE OSC  4
    
    CMCON=7
    OPTION_REG.7=0
    TRISIO  = %00111011
    WPU=%00111011
    IOCB=%00111011
    ANSEL=0
    
    but1 var gpio.0
    but2 var gpio.1
    LED  var gpio.2
    but3 var gpio.3
    but4 var gpio.4
    but5 var gpio.5
    
    zecime   CON  3      '// = ( 3 * 25uS) = 0.07 mS burst
    zero     CON 12      '// =( 12 * 25us) = 0.30 mS burst
    unu      CON 24      '// = (24 * 25uS) = 0.60 mS burst
    
    delay		var word
    i 		var byte
    cycles	var byte
    acycles     var byte
    
    GIE  var intcon.7 ' global interrupt enable 1=on ; 0=off
    gpie var intcon.3 ' port change interrupt enable 1=0n ; 0=off
    gpif var intcon.0 ' port change interrupt flag bit
    
    GIE=0
    GPIE=1
    
    '=========================================
    
    main:
    
     @ sleep
     pause 100
    
    IF but1=0 then 			; VOLUME UP
    acycles= unu + zero + zecime  		' ~ 970 uS
          delay=970
        	GOSUB IR_REMOTE
    ENDIF 
    
    IF but2=0 then 			; VOLUME DOWN
    acycles= unu + unu + zecime   		' ~ 1270 uS
    	delay= 1270
    	GOSUB IR_REMOTE
    ENDIF 
    
    IF but3=0 then 			; BUTTON UP
    acycles= unu + unu + zero + zecime 		' ~ 1570 uS
          delay = 1570
    	GOSUB IR_REMOTE
    ENDIF 
    
    IF but4=0 then 			; BUTTON DOWN
    acycles= unu + unu + unu + zecime  		' ~ 1870 uS
          delay = 1870
    	GOSUB IR_REMOTE
    ENDIF 
    
    IF but5=0 then 			; MUTE
    acycles= unu + unu + unu + zero + zecime 	' ~ 2170 uS
          delay = 2170  
    	GOSUB IR_REMOTE
    ENDIF 
    
    GPIF=0  'Clear port change interrupt flag
    PAUSE 50
    
    Goto Main
    
    '=========================================
    ir_REMOTE:
    cycles=acycles
    call Pulse
    
    pauseus  delay          
    
    cycles=zero + zecime     			' ~ 670 uS   
    call Pulse
    
    return
    '=========================================
    Pulse:                '// Emits # of 40kHz bursts held in variable Cycles
    ASM                   ;// with auto delay between bursts
       bsf gpio, 2        ;// 1uS, LED=on [need 25uS total
       goto $+1           ;// 3uS (2uS per goto $+1)
       goto $+1           ;// 5uS
       goto $+1           ;// 7uS
       goto $+1           ;// 9uS
       goto $+1           ;// 11uS
       goto $+1           ;// 13uS 
       bcf gpio, 2        ;// 14uS, LED=off
       goto $+1           ;// 16uS
       goto $+1           ;// 18uS
       goto $+1           ;// 20uS
       goto $+1           ;// 22uS
       decfsz _Cycles,F   ;// 23uS
       goto _Pulse        ;// 25us
    ENDASM
     
    RETURN                '// Return to Main
    
    '========================================
    END
    If see obviously mistakes, please tell me. Thank You, all !
    Attached Images Attached Images  

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