Back to PCAM+ page.
Back to Chapter 7 TSOP1738 RC5 Interfacing with 8051 MicrocontrollerThe TSOP1738 is an Infrared receiver.RC5 is the IR transmission protocol developed by Philips. This is used for remote controls of TVs and other equipment. The PCAM+ kit is equipped with an on-board TSOP1738. The code below is used to decode the RC5 signal transmitted by the TV remote included PCAM+ product. Start by wiring the following connections: - Connect Port pin P3.3 of the 89S52 microcontroller to the output pin of TSOP1738, which is marked as IR38 on the PCAM+ board.
- Connect the row of 8 LEDs to the Port P2 pins (P2.0 to LED pin 1; P2.1 to LED pin 2; etc.).
This project will cause the the LEDs to display the binary value of the buttons pressed on the TV remote.Use only remote that is supplied with the kit. Other remotes will not work. Below is the source code you need to write in 8051IDE: VAR1 equ 07h ;Variable for delay VAR2 equ 08h ;Variable for delay TEMP equ 10H ;Temp variable COUNT equ 11H ;Count variable ADDR equ 12H ;Device address received from RC5 CMD equ 13H ;Command value received from RC5 FLIP bit 00H ;Flip bit TOG bit 01H ;Temp bit for flip IR equ P3.3 ;IR Receiver connected to this pin
MOV SP,#60H ;Stack pointer initialization CLR TOG ;Clear temp bit
MAIN: JB IR,$ ;Wait for first bit MOV VAR2,#6h Delay3024: MOV VAR1,#229 ;3.024mS delay DJNZ VAR1,$ DJNZ VAR2,Delay3024
MOV C,IR ;Read Flip bit
MOV FLIP,C CLR A MOV COUNT,#5 ;Count for address Get_Address: ACALL DELAY_1728ms MOV C,IR RLC a DJNZ COUNT,Get_Address MOV ADDR,A ;Save the address CLR A
MOV COUNT,#6 ;Count for Command Get_COMMAND: ACALL DELAY_1728ms MOV C,IR RLC A DJNZ COUNT,Get_COMMAND MOV TEMP,CMD ;Save the old command MOV CMD,a ;Save the new command MOV A,ADDR ;Check for valid address CJNE A,#00,INVALID MOV A,TEMP CJNE A,CMD,VALID ;Check for valid command
INVALID: LJMP MAIN VALID: CLR A MOV C,FLIP RLC A MOV TEMP,A CLR A MOV C,TOG RLC A CJNE A,TEMP,VALID1 SJMP INVALID VALID1: MOV C,FLIP MOV TOG,C MOV A,CMD CLR C MOV P2,CMD LJMP MAIN
DELAY_1728ms: MOV VAR2,#6d Loop1728: MOV VAR1,#128 ;1.728mS delay for each bit DJNZ VAR1,$ DJNZ VAR2,Loop1728 RET Save this code, assemble it and flash it to the PCAM+ kit using the HandyProgUSB programmer. Once done and with PCAM+ powered, you should see the row of LEDs light up the binary value for each button pressed on the TV remote. Proceed to Chapter 9
Back to PCAM+ page. |