Infrared Receiver Interfacing (TSOP 1738)
...................................................................................................................................

This section describes how to interface an Infrared Receiver (TSOP 1738) to the microcontroller AT89C51/52
and to control 8 LED's through a RC5 Remote control.
The circuit explains how to connect an Infrared Sensor to the Microcontroller, the program to control 8 devices through a standard RC5 Remote control.

INCLUDE reg_51.pdf

INPUT   EQU     P3.2    ; Port3,Bit2 is used as input. The demodulated signal      
                                   ; with active low level is connected to this pin                               
RB0     EQU     000H    ; Select Register Bank 0
RB1     EQU     008H    ; Select Register Bank 1  ...poke to PSW to use
                                 
                                   
DSEG            ; This is internal data memory
ORG     20H     ; Bit adressable memory

FLAGS:  DS      1
CONTROL BIT     FLAGS.0  ; toggles with every new keystroke
NEW     BIT     FLAGS.1  ; Bit set when a new command has been received


COMMAND: DS     1       ; Received command byte
SUBAD:  DS      1       ; Device subaddress
TOGGLE: DS     1        ;Toggle every bit
ANS: DS        1        ;
ADDR:        DS        1
STACK:  DS      1       ; Stack begins here
CSEG            ; Code begins here
;---------==========----------==========---------=========---------
;              PROCESSOR INTERRUPT AND RESET VECTORS
;---------==========----------==========---------=========---------
         ORG     00H    ; Reset
         JMP     MAIN
         ORG     0003H  ; External Interrupt0
         JMP     RECEIVE       
       
;---------==========----------==========---------=========---------
;  ---------==========----------==========---------=========---------
;  Interrupt 0  routine
;  ---------==========----------==========---------=========---------
RECEIVE:
                       CPL P2.2
               MOV  2,#235               ; Time Loop (3/4 bit time)
             DJNZ 2,$                  ; Waste Time to sync second bit
                MOV  2,#235               ; Time Loop (3/4 bit time)
             Djnz 2,$                  ; Waste Time to sync second bit
       Mov  2,#134               ; Time Loop (3/4 bit time)
             Djnz 2,$                  ; Waste Time to sync second bit              
       clr        a
       mov        r6,#07h

pol1:        mov        c,Input
       rlc        a
       Mov  2,#235               ; Waste time for next BIT
             Djnz 2,$     
       Mov  2,#235               ; Time Loop (3/4 bit time)
             Djnz 2,$                  ; Waste Time to sync second bit
       Mov  2,#235               ; Time Loop (3/4 bit time)
             Djnz 2,$                  ; Waste Time to sync second bit
       Mov  2,#105               ; Time Loop (3/4 bit time)
             Djnz 2,$                  ; Waste Time to sync second bit
       djnz        r6,pol1
       MOV SUBAD,A
       
       mov        r6,#06h
pol2:        
       mov        c,Input
       rlc        a

       Mov  2,#235               ; Waste time for next BIT
             Djnz 2,$     
       Mov  2,#235               ; Time Loop (3/4 bit time)
             Djnz 2,$                  ; Waste Time to sync second bit
       Mov  2,#235               ; Time Loop (3/4 bit time)
             Djnz 2,$                  ; Waste Time to sync second bit
       Mov  2,#105               ; Time Loop (3/4 bit time)
             Djnz 2,$                  ; Waste Time to sync second bit
       djnz        r6,pol2
       Mov  COMMAND,A             ; Save Command at IRData memory
       

       MOV A,SUBAD
       MOV ADDR,A
       ANL A,#0FH
       MOV SUBAD,A
       CJNE A,#03H,ZXC1
       MOV A,COMMAND
       CPL A
       MOV COMMAND,A
       AJMP ASZ
ZXC1:        MOV A,SUBAD
       CJNE A,#00H,ANSS
       AJMP ASZ

ASZ:        MOV A,ADDR
       ANL A,#20H
       MOV TOGGLE,A
       CJNE A,ANS,ANSS
       AJMP WAR
ANSS:        JMP ANS1        
WAR:        
       
               MOV A,COMMAND
               CJNE A,#01H,DSP1
               CPL P0.0
DSP1:        CJNE A,#02H,DSP2
               CPL P0.1
DSP2:        CJNE A,#03H,DSP3
               CPL P0.2
DSP3:        CJNE A,#04H,DSP4
               CPL P0.3
DSP4:        CJNE A,#05H,DSP5
               CPL P0.4
DSP5:        CJNE A,#06H,DSP6
               CPL P0.5
DSP6:        CJNE A,#07H,DSP7
               CPL P0.6
DSP7:        CJNE A,#08H,DSP8
               CPL P0.7
DSP8:        CJNE A,#0CH,DSP9
               MOV P0,#0FFH
DSP9:        
                       
               MOV ANS,TOGGLE
               MOV A,ANS
               CPL ACC.5
               MOV ANS,A
               SETB   NEW           ; Set flag to indicate the new command

;################################################################        
ANS1:    
       RETI
       
;  ---------==========----------==========---------=========---------
;  Main routine. Program execution starts here.
;  ---------==========----------==========---------=========---------
MAIN:   
       MOV SP,#60H

       SETB   EX0                          ; Enable external Interrupt0
   CLR    IT0                          ; triggered by a high to low transition
       
       SETB EA; /* Enable global interrupt */
  MOV ANS,#00H                ;clear temp toggle bit
           
       CLR   NEW
               
       
LOO:        
       JNB NEW,LOO
       CLR NEW
       AJMP LOO               
       
       END
Click here to Download the Program...
· Home
· 8051 Forum
· Active Topics
· 8051 Free Projects
· Blog
· Top 10
· Datasheets
· Electronic Tutorials
· Electronic Projects
· 8051 Tutorials
· 8051 Course
· 8051 Code Library
· Visual Basic for mC
· 8051 Programmer
· Assembler/IDE
· Products
· Ebooks
· Supporting Tools
· Tag Cloud
· Guest Book
· Contact Me
· Privacy policy

8051 Microcontroller Projects, free ebooks, project codes, AVR Projects, 8051 tutorials, electronic projects, ECE CSE BE final year projects, Embedded systems, AVR codes, embedded technology, LCD Interfacing tutorial,final year project ideas project downloads, engineering projects, Examples projects, 8051 Libraries, 8052, Microcontroller, Microprocessor, 8085, 8051 codes, PCB designing, Project Kits, kit